diff --git a/CHANGELOG.md b/CHANGELOG.md index 625e36fbde..b36c2eb3f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
Added +- Scene lighting and post-processing (see `Documentation/LightingAndEffects.md`). + Sky light that spreads through the terrain (caves get darker the deeper they go, digging lets light in), ambient light, and dynamic lights with soft terrain shadows. Every glow effect now casts light in its own color, so muzzle flashes, explosions, thrusters and fire light up their surroundings with no content changes. + Automatic edge normals for all sprites and terrain so edges catch the light, emissive palette colors (gold sparkle, tracers), HDR bloom, highlight compression, vignette and color grading (temperature, tint, contrast, split toning, film grain, chromatic aberration). + Time of day and day/night cycle (`TimeOfDay`, `DayLengthMinutes`), atmospheric haze on distant background layers, god rays into caves, and procedural rain and snow (`WeatherType`, `WeatherIntensity`, `Wind`) that stays out from under overhangs. + Heat haze above hot things, refraction shockwaves from explosions, and scorch marks with cooling, glowing crater rims. + Soft edged fog of war. + Visual-only render interpolation between simulation updates for smooth motion at any frame rate. + New `MovableObject` INI and Lua properties `LightColor` (Lua `SetLightColor(r, g, b)`, `LightRed/Green/Blue`), `LightRadius`, `LightIntensity`, `LightFlicker` and `LightOffset`. + New `PostProcessMan` Lua functions and properties: `AddLight(pos, radius, r, g, b, intensity)`, `TimeOfDay`, `DayLengthMinutes`, `WeatherType`, `WeatherIntensity`, `Wind`, `LightingEnabled`, `SetSkyColor(r, g, b)`, `SetAmbientColor(r, g, b)`, `SetColorGrade(temperature, tint, contrast)`, `SetSplitToning(...)`. + Lighting, Bloom and Heat/Shockwaves toggles in the Video settings, many new `Settings.ini` keys, and a Graphics Lab debug window (`ShowGraphicsLab`, `DebugMan:ShowGraphicsLab()`) for live tuning. + - Pathfinding and navigation overhaul, including jetpack/jump-aware pathfinding. Actors will now choose their path depending on how high they can jump, instead of always taking the shortest flying path. This will reduce instances of the AI getting stuck while trying to take paths that are impossible for them. Improvements to both `ACrab` and `AHuman` navigation. `ACrab`s are now aware of how to pathfind and navigate using their jetpack, and will use it where applicable. Actors are better at using their jetpack, and will use automovers if their jetpack is not sufficient to reach a destination. diff --git a/Data/Base.rte/AI/HumanBehaviors.lua b/Data/Base.rte/AI/HumanBehaviors.lua index 57a41815b7..921f130d5d 100644 --- a/Data/Base.rte/AI/HumanBehaviors.lua +++ b/Data/Base.rte/AI/HumanBehaviors.lua @@ -1107,7 +1107,8 @@ function HumanBehaviors.ShootTarget(AI, Owner, Abort) local TargetPoint = AI.Target.Pos + AI.TargetOffset; if (range < Owner.AimDistance + Weapon.SharpLength + FrameMan.PlayerScreenWidth*0.5) and - (not AI.isPlayerOwned or not SceneMan:IsUnseen(TargetPoint.X, TargetPoint.Y, Owner.Team)) + (not AI.isPlayerOwned or not SceneMan:IsUnseen(TargetPoint.X, TargetPoint.Y, Owner.Team)) and + not SceneMan:SmokeBlocksSight(Owner.EyePos, TargetPoint) -- lose track of targets hidden by smoke then if PrjDat.pen > 0 then if SceneMan:CastStrengthSumRay(Weapon.Pos, TargetPoint, 6, rte.grassID) * 5 < PrjDat.pen then diff --git a/Data/Base.rte/Activities.ini b/Data/Base.rte/Activities.ini index 3afa83591a..80cfe74733 100644 --- a/Data/Base.rte/Activities.ini +++ b/Data/Base.rte/Activities.ini @@ -288,6 +288,34 @@ AddActivity = GAScripted AddRequiredArea = LZ All +/////////////////////////////////////////////////////////////////////// +// Sandbox + + +AddActivity = GAScripted + PresetName = Sandbox + Description = Play god. Spawn armies, brains, bunkers and weapons for up to four sides, paint fire, water and lava, call down lightning and change the weather, then watch the AI fight it out. Take control of any unit whenever you like. Nobody wins and nothing ends. Press F7 for the sandbox tools. + SceneName = Ketanot Hills + TeamOfPlayer1 = 0 + MinTeamsRequired = 1 + Team1Name = Red + Team2Name = Green + Team3Name = Blue + Team4Name = Yellow + Team1Funds = 0 + Team2Funds = 0 + Team3Funds = 0 + Team4Funds = 0 + ScriptPath = Base.rte/Activities/Sandbox.lua + LuaClassName = SandboxActivity + DefaultRequireClearPathToOrbit = 0 + DefaultFogOfWar = 0 + DefaultDeployUnits = 0 + RequireClearPathToOrbitSwitchEnabled = 0 + FogOfWarSwitchEnabled = 0 + DeployUnitsSwitchEnabled = 0 + + /////////////////////////////////////////////////////////////////////// // Test Activities diff --git a/Data/Base.rte/Activities/Sandbox.lua b/Data/Base.rte/Activities/Sandbox.lua new file mode 100644 index 0000000000..f49e410c0f --- /dev/null +++ b/Data/Base.rte/Activities/Sandbox.lua @@ -0,0 +1,34 @@ +package.loaded.Constants = nil; require("Constants"); + +-- The Sandbox game mode. Almost everything happens in the sandbox tools (F7, Source/Managers/Sandbox.cpp): +-- the player is a god watching from a free camera, every unit is run by the AI, and nothing ever ends the game. + +function SandboxActivity:StartActivity(isNewGame) + for player = Activity.PLAYER_1, Activity.MAXPLAYERCOUNT - 1 do + if self:PlayerActive(player) and self:PlayerHuman(player) then + self:SetViewState(Activity.OBSERVE, player); + -- Start looking at the ground in the middle of the map. + local look = Vector(SceneMan.SceneWidth * 0.5, 0); + while look.Y < SceneMan.SceneHeight - 1 and SceneMan:GetTerrMatter(look.X, look.Y) == rte.airID do + look.Y = look.Y + 4; + end + look.Y = look.Y - FrameMan.PlayerScreenHeight * 0.15; + self:SetObservationTarget(look, player); + CameraMan:SetScrollTarget(look, 1, self:ScreenOfPlayer(player)); + end + end + -- Doors already in the scene open for everyone. + for actor in MovableMan.AddedActors do + if IsADoor(actor) then + actor.Team = Activity.NOTEAM; + end + end +end + +function SandboxActivity:UpdateActivity() + -- Nobody wins: the game only ends when you leave it. +end + +function SandboxActivity:OnSave() + -- Nothing extra to save, but saving needs this. +end diff --git a/Data/Base.rte/Devices.ini b/Data/Base.rte/Devices.ini index 6f95730a76..6d9316bf8c 100644 --- a/Data/Base.rte/Devices.ini +++ b/Data/Base.rte/Devices.ini @@ -22,6 +22,9 @@ IncludeFile = Base.rte/Devices/Weapons/RocketLauncher/RocketLauncher.ini // Explosives IncludeFile = Base.rte/Devices/Explosives/FragGrenade/FragGrenade.ini +IncludeFile = Base.rte/Devices/Explosives/Flare/Flare.ini +IncludeFile = Base.rte/Devices/Explosives/SmokeGrenade/SmokeGrenade.ini +IncludeFile = Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasGrenade.ini IncludeFile = Base.rte/Devices/Explosives/AntiPersonnelMine/AntiPersonnelMine.ini IncludeFile = Base.rte/Devices/Explosives/RemoteExplosive/RemoteExplosive.ini IncludeFile = Base.rte/Devices/Explosives/StandardBomb/StandardBomb.ini @@ -35,6 +38,8 @@ IncludeFile = Base.rte/Devices/Tools/Digger/Digger.ini IncludeFile = Base.rte/Devices/Tools/Scanner/Scanner.ini IncludeFile = Base.rte/Devices/Tools/Disarmer/Disarmer.ini IncludeFile = Base.rte/Devices/Tools/ConcreteSprayer/ConcreteSprayer.ini +IncludeFile = Base.rte/Devices/Weapons/LiquidSprayers/LiquidSprayers.ini +IncludeFile = Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.ini IncludeFile = Base.rte/Devices/Tools/Repeller/Repeller.ini IncludeFile = Base.rte/Devices/Tools/GrappleGun/GrappleGun.ini IncludeFile = Base.rte/Devices/Tools/Constructor/Constructor.ini diff --git a/Data/Base.rte/Devices/Explosives/Flare/Flare.ini b/Data/Base.rte/Devices/Explosives/Flare/Flare.ini new file mode 100644 index 0000000000..e974404451 --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/Flare/Flare.ini @@ -0,0 +1,81 @@ +// A thrown flare: lights the area around it in flickering red for about 45 seconds (see Flare.lua). + +AddDevice = TDExplosive + PresetName = Flare + Description = Throw it to light up the battlefield with a bright red glow for about 45 seconds. Handy at night. + AddToGroup = Bombs - Grenades + AddToGroup = Bombs + Mass = 0.5 + RestThreshold = -500 + HitsMOs = 1 + GetsHitByMOs = 1 + ScriptPath = Base.rte/Devices/Explosives/Flare/Flare.lua + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/RedSmall.png + EffectStartStrength = 1 + EffectStopStrength = 1 + PostEffectEnabled = 0 + EffectAlwaysShows = 1 + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Explosives/FragGrenade/FragGrenade.png + FrameCount = 2 + SpriteAnimMode = 0 + SpriteOffset = Vector + X = -3 + Y = -4 + EntryWound = AEmitter + CopyOf = Dent Metal + ExitWound = AEmitter + CopyOf = Dent Metal + GoldValue = 8 + Buyable = 1 + AtomGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 2 + Depth = 0 + DeepGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 4 + Depth = 10 + DeepCheck = 0 + JointStrength = 75 + JointStiffness = 0.5 + JointOffset = Vector + X = -1 + Y = 1 + DrawAfterParent = 0 + StanceOffset = Vector + X = 8 + Y = 6 + SharpStanceOffset = Vector + X = -7 + Y = 7 + SupportOffset = Vector + X = 1 + Y = -2 + SharpLength = 75 + ActivationSound = SoundContainer + AddSound = ContentFile + FilePath = Base.rte/Sounds/Devices/EmptyClick1.flac + StartThrowOffset = Vector + X = -11 + Y = -3 + EndThrowOffset = Vector + X = 12 + Y = -1 + TriggerDelay = 45000 + ActivatesWhenReleased = 1 + StrikerLever = MOSParticle + CopyOf = Grenade Pin + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Spark Yellow Particle + Count = 6 + Spread = 3.14 + MaxVelocity = 6 + MinVelocity = 2 + InheritsVel = 0 diff --git a/Data/Base.rte/Devices/Explosives/Flare/Flare.lua b/Data/Base.rte/Devices/Explosives/Flare/Flare.lua new file mode 100644 index 0000000000..58ea2a4d11 --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/Flare/Flare.lua @@ -0,0 +1,24 @@ +function Create(self) + self.lit = false; +end + +function Update(self) + -- Once thrown, the flare burns with a flickering red light until it fizzles out. + -- Lit once thrown: activated, or flying free of whoever held it. + if not self.lit and (self:IsActivated() or (self.ID == self.RootID and self.Age > 150 and self.Vel.Magnitude > 0.5)) then + self.lit = true; + self.LightRadius = 320; + self.LightIntensity = 3.0; + self.LightFlicker = 0.25; + self:SetLightColor(255, 70, 50); + self.PostEffectEnabled = true; + self.burnTimer = Timer(); + end + if self.lit and self.burnTimer then + -- Dim over the last few seconds of its life. + local remaining = 1 - self.burnTimer.ElapsedSimTimeMS / 45000; + if remaining < 0.15 then + self.LightIntensity = 3.0 * math.max(remaining / 0.15, 0); + end + end +end diff --git a/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.ini b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.ini new file mode 100644 index 0000000000..9d242dd52a --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.ini @@ -0,0 +1,164 @@ +/////////////////////////////////////////////////////////////////////// +// Fuel Barrel: leaks oil where it's shot (the oil runs and pools), and explodes in a shower of burning fuel when fire reaches it or it's shot to pieces. + + +AddEffect = MOPixel + PresetName = Leaking Fuel Drop + Mass = 0.03 + AirResistance = 0.01 + RestThreshold = 500 + HitsMOs = 0 + GetsHitByMOs = 0 + Color = Color + R = 64 + G = 19 + B = 12 + Atom = Atom + Material = Material + CopyOf = Oil + TrailColor = Color + R = 64 + G = 19 + B = 12 + TrailLength = 2 + + +AddEffect = AEmitter + PresetName = Fuel Leak + Mass = 0.0001 + HitsMOs = 0 + GetsHitByMOs = 0 + SpriteFile = ContentFile + FilePath = Base.rte/Effects/Wounds/MetalWoundA.png + FrameCount = 1 + SpriteOffset = Vector + X = -2 + Y = -2 + AtomGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 2 + Depth = 5 + DeepCheck = 0 + JointStrength = 10000 + JointStiffness = 1 + DrawAfterParent = 1 + AddEmission = Emission + EmittedParticle = MOPixel + CopyOf = Leaking Fuel Drop + Spread = 0.3 + MaxVelocity = 3 + MinVelocity = 1 + EmissionEnabled = 1 + EmissionCountLimit = 150 + EmissionsIgnoreThis = 1 + ParticlesPerMinute = 400 + BurstSize = 6 + BurstScale = 1 + BurstTriggered = 1 + EmissionDamage = 0 + + +AddDevice = TDExplosive + PresetName = Fuel Barrel + AddToGroup = Bombs + AddToGroup = Bunker Systems + Description = A drum of fuel. Shoot it and it leaks oil that runs downhill and pools; set it alight, or shoot it to pieces, and it explodes in a shower of burning fuel. + Mass = 40 + RestThreshold = -500 + HitsMOs = 1 + GetsHitByMOs = 1 + ScriptPath = Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.lua + AddCustomValue = NumberValue + Flammable = 1 + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.png + FrameCount = 1 + SpriteOffset = Vector + X = -5 + Y = -7 + EntryWound = AEmitter + CopyOf = Fuel Leak + ExitWound = AEmitter + CopyOf = Fuel Leak + GoldValue = 10 + Buyable = 1 + AtomGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 2 + Depth = 0 + DeepGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 4 + Depth = 10 + DeepCheck = 0 + JointStrength = 40 + JointStiffness = 0.5 + DrawAfterParent = 0 + StanceOffset = Vector + X = 7 + Y = 5 + SharpStanceOffset = Vector + X = 4 + Y = -4 + SupportOffset = Vector + X = 2 + Y = 2 + GibImpulseLimit = 3000 + GibWoundLimit = 14 + GibBlastStrength = 15 + GibSound = SoundContainer + AttenuationStartDistance = 250 + AddSound = Base.rte/Sounds/Explosions/Ballistic/ExplodeLarge1.flac + AddSound = Base.rte/Sounds/Explosions/Ballistic/ExplodeLarge2.flac + AddSound = Base.rte/Sounds/Explosions/Ballistic/ExplodeLarge3.flac + TriggerDelay = 600000 + ActivatesWhenReleased = 0 + AddGib = Gib + GibParticle = MOPixel + CopyOf = Glow Explosion Huge + MaxVelocity = 1 + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Fire Puff Large + Count = 8 + MinVelocity = 10 + MaxVelocity = 25 + LifeVariation = 0.20 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOPixel + CopyOf = Napalm Fuel + Count = 70 + Spread = 3.14 + MinVelocity = 4 + MaxVelocity = 14 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Flame Hurt Short + Count = 10 + Spread = 3.14 + MinVelocity = 3 + MaxVelocity = 9 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Explosion Smoke 1 + Count = 6 + Spread = 3.14 + MinVelocity = 2 + MaxVelocity = 6 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Gib Military Tiny A + Count = 4 + Spread = 3.14 + MinVelocity = 6 + MaxVelocity = 16 diff --git a/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.lua b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.lua new file mode 100644 index 0000000000..b5d2e4f865 --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.lua @@ -0,0 +1,29 @@ +function Create(self) + self.checkTimer = Timer(); +end + +function Update(self) + -- Once alight, it sputters for a moment and then goes up. + if self.fuse then + if self.flameTimer:IsPastSimMS(120) then + self.flameTimer:Reset(); + local flame = CreateMOSParticle("Body Flame", "Base.rte"); + flame.Pos = self.Pos + Vector(math.random(-4, 4), -6); + flame.Vel = Vector(math.random() - 0.5, -1.5); + MovableMan:AddParticle(flame); + end + if self.fuse:IsPastSimMS(self.fuseTime) then + self:GibThis(); + end + return; + end + if self.checkTimer:IsPastSimMS(250) then + self.checkTimer:Reset(); + -- Set alight by flames and napalm hitting it, burning ground around it, or a lucky shot when it's already riddled. + if self:GetNumberValue("Ignited") > 0 or SceneMan:IsBurningNear(self.Pos, 9) or (self.WoundCount >= 6 and math.random() < 0.1) then + self.fuse = Timer(); + self.flameTimer = Timer(); + self.fuseTime = 500 + math.random() * 1000; + end + end +end diff --git a/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.png b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.png new file mode 100644 index 0000000000..9cd59b1be2 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/FuelBarrel/FuelBarrel.png differ diff --git a/Data/Base.rte/Devices/Explosives/SmokeGrenade/SmokeGrenade.ini b/Data/Base.rte/Devices/Explosives/SmokeGrenade/SmokeGrenade.ini new file mode 100644 index 0000000000..9982a11b67 --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/SmokeGrenade/SmokeGrenade.ini @@ -0,0 +1,117 @@ +// Smoke grenade: a thick cloud that hides whoever is inside or behind it from enemies (SmokeBlocksSight). + +AddEffect = MOSParticle + CopyOf = Smoke Ball 1 + PresetName = Thick Smoke Ball + LifeTime = 9000 + GlobalAccScalar = -0.02 + AirResistance = 0.9 + AngularVel = 8 + +AddEffect = MOPixel + PresetName = Smoke Grenade Pop + Mass = 0.001 + LifeTime = 60 + HitsMOs = 0 + GetsHitByMOs = 0 + Color = Color + R = 255 + G = 0 + B = 255 + Atom = Atom + Material = Material + CopyOf = Air + TrailLength = 0 + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/YellowSmall.png + EffectStartStrength = 0.6 + EffectStopStrength = 0 + +AddDevice = TDExplosive + PresetName = Smoke Grenade + Description = Bursts into a thick, lingering cloud of smoke that blocks enemy sight for about ten seconds. Good for crossing open ground. + AddToGroup = Bombs + Mass = 0.5 + RestThreshold = -500 + HitsMOs = 1 + GetsHitByMOs = 1 + ScriptPath = Base.rte/Devices/Shared/Scripts/TrajectoryGuide.lua + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Explosives/FragGrenade/FragGrenade.png + FrameCount = 2 + SpriteAnimMode = 0 + SpriteOffset = Vector + X = -3 + Y = -4 + EntryWound = AEmitter + CopyOf = Dent Metal + ExitWound = AEmitter + CopyOf = Dent Metal + GoldValue = 6 + Buyable = 1 + AtomGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 2 + Depth = 0 + DeepGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 4 + Depth = 10 + DeepCheck = 0 + JointStrength = 75 + JointStiffness = 0.5 + JointOffset = Vector + X = -1 + Y = 1 + DrawAfterParent = 0 + StanceOffset = Vector + X = 8 + Y = 6 + SharpStanceOffset = Vector + X = -7 + Y = 7 + SupportOffset = Vector + X = 1 + Y = -2 + SharpLength = 75 + DetonationSound = SoundContainer + CopyOf = Explosion Bassy + AttenuationStartDistance = 120 + Volume = 0.35 + Pitch = 1.6 + ActivationSound = SoundContainer + AddSound = ContentFile + FilePath = Base.rte/Sounds/Devices/EmptyClick1.flac + StartThrowOffset = Vector + X = -11 + Y = -3 + EndThrowOffset = Vector + X = 12 + Y = -1 + TriggerDelay = 1500 + GibBlastStrength = 0.3 + ActivatesWhenReleased = 1 + StrikerLever = MOSParticle + CopyOf = Grenade Pin + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Thick Smoke Ball + Count = 80 + Spread = 3.14 + MaxVelocity = 7 + MinVelocity = 0.5 + LifeVariation = 0.3 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOPixel + CopyOf = Smoke Grenade Pop + Count = 1 + Spread = 3.14 + MaxVelocity = 0 + MinVelocity = 0 + LifeVariation = 0.3 + InheritsVel = 0 diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGas.lua b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGas.lua new file mode 100644 index 0000000000..9803816f01 --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGas.lua @@ -0,0 +1,18 @@ +function Create(self) + self.hurtTimer = Timer(); + self.radius = 70; +end + +function Update(self) + -- Twice a second, everyone close enough to the cloud's centre chokes a little. The cloud thins out as it ages. + if self.hurtTimer:IsPastSimMS(500) then + self.hurtTimer:Reset(); + local strength = math.max(1 - self.Age / self.Lifetime, 0); + local radius = self.radius * (0.7 + 0.3 * strength); + for actor in MovableMan.Actors do + if actor.Status < Actor.DYING and SceneMan:ShortestDistance(self.Pos, actor.Pos, SceneMan.SceneWrapsX):MagnitudeIsLessThan(radius) then + actor.Health = actor.Health - 2.5 * (0.4 + 0.6 * strength); + end + end + end +end diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA000.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA000.png new file mode 100644 index 0000000000..848f98e09a Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA000.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA001.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA001.png new file mode 100644 index 0000000000..fe15d76fdb Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA001.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA002.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA002.png new file mode 100644 index 0000000000..eff91e4a21 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA002.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA003.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA003.png new file mode 100644 index 0000000000..1fbeb0034f Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA003.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA004.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA004.png new file mode 100644 index 0000000000..a33faaf707 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA004.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA005.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA005.png new file mode 100644 index 0000000000..bcd771dd0d Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA005.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA006.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA006.png new file mode 100644 index 0000000000..67bf54e04c Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA006.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA007.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA007.png new file mode 100644 index 0000000000..5a53faa765 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA007.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA008.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA008.png new file mode 100644 index 0000000000..0b28eb8f2d Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA008.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA009.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA009.png new file mode 100644 index 0000000000..63f048b397 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA009.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA010.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA010.png new file mode 100644 index 0000000000..93dcbee816 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA010.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA011.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA011.png new file mode 100644 index 0000000000..03719061ef Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA011.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA012.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA012.png new file mode 100644 index 0000000000..fa9671accc Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA012.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA013.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA013.png new file mode 100644 index 0000000000..fa9671accc Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA013.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA014.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA014.png new file mode 100644 index 0000000000..ab4da719b5 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA014.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA015.png b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA015.png new file mode 100644 index 0000000000..fb7aafe781 Binary files /dev/null and b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA015.png differ diff --git a/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasGrenade.ini b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasGrenade.ini new file mode 100644 index 0000000000..26581602db --- /dev/null +++ b/Data/Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasGrenade.ini @@ -0,0 +1,114 @@ +// Toxic gas grenade: a green cloud that slowly hurts anyone breathing it, and blocks sight like smoke. + +AddEffect = MOSParticle + CopyOf = Thick Smoke Ball + PresetName = Toxic Gas Ball + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGasA.png + FrameCount = 16 + LifeTime = 8000 + GlobalAccScalar = -0.01 + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/GreenSmall.png + EffectStartStrength = 0.45 + EffectStopStrength = 0 + EffectAlwaysShows = 1 + +AddEffect = MOSParticle + CopyOf = Tiny Smoke Ball 1 + PresetName = Toxic Gas Cloud + LifeTime = 11000 + GlobalAccScalar = 0 + AirResistance = 1 + RenderOpacity = 0 + ScriptPath = Base.rte/Devices/Explosives/ToxicGasGrenade/ToxicGas.lua + +AddDevice = TDExplosive + PresetName = Toxic Gas Grenade + Description = Releases a cloud of choking gas that hurts anyone inside it for about ten seconds. The cloud also blocks sight. + AddToGroup = Bombs - Grenades + AddToGroup = Bombs + Mass = 0.5 + RestThreshold = -500 + HitsMOs = 1 + GetsHitByMOs = 1 + ScriptPath = Base.rte/Devices/Shared/Scripts/TrajectoryGuide.lua + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Explosives/FragGrenade/FragGrenade.png + FrameCount = 2 + SpriteAnimMode = 0 + SpriteOffset = Vector + X = -3 + Y = -4 + EntryWound = AEmitter + CopyOf = Dent Metal + ExitWound = AEmitter + CopyOf = Dent Metal + GoldValue = 14 + Buyable = 1 + AtomGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 2 + Depth = 0 + DeepGroup = AtomGroup + AutoGenerate = 1 + Material = Material + CopyOf = Military Stuff + Resolution = 4 + Depth = 10 + DeepCheck = 0 + JointStrength = 75 + JointStiffness = 0.5 + JointOffset = Vector + X = -1 + Y = 1 + DrawAfterParent = 0 + StanceOffset = Vector + X = 8 + Y = 6 + SharpStanceOffset = Vector + X = -7 + Y = 7 + SupportOffset = Vector + X = 1 + Y = -2 + SharpLength = 75 + DetonationSound = SoundContainer + CopyOf = Explosion Bassy + AttenuationStartDistance = 120 + Volume = 0.35 + Pitch = 1.6 + ActivationSound = SoundContainer + AddSound = ContentFile + FilePath = Base.rte/Sounds/Devices/EmptyClick1.flac + StartThrowOffset = Vector + X = -11 + Y = -3 + EndThrowOffset = Vector + X = 12 + Y = -1 + TriggerDelay = 1500 + GibBlastStrength = 0.3 + ActivatesWhenReleased = 1 + StrikerLever = MOSParticle + CopyOf = Grenade Pin + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Toxic Gas Ball + Count = 65 + Spread = 3.14 + MaxVelocity = 7 + MinVelocity = 1 + LifeVariation = 0.3 + InheritsVel = 0 + AddGib = Gib + GibParticle = MOSParticle + CopyOf = Toxic Gas Cloud + Count = 1 + Spread = 3.14 + MaxVelocity = 0 + MinVelocity = 0 + LifeVariation = 0 + InheritsVel = 0 diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer000.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer000.png new file mode 100644 index 0000000000..0d82e24935 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer000.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer001.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer001.png new file mode 100644 index 0000000000..6f6644e71f Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer001.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayerMagazine.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayerMagazine.png new file mode 100644 index 0000000000..007a8c8135 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayerMagazine.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/LiquidSprayers.ini b/Data/Base.rte/Devices/Weapons/LiquidSprayers/LiquidSprayers.ini new file mode 100644 index 0000000000..ae88d78735 --- /dev/null +++ b/Data/Base.rte/Devices/Weapons/LiquidSprayers/LiquidSprayers.ini @@ -0,0 +1,217 @@ +/////////////////////////////////////////////////////////////////////// +// Liquid sprayers: the Concrete Sprayer refitted to spray water, acid or burning fuel. +// Their drops settle into the terrain as flowing liquid (see FluidSim): water puts fires out, acid eats soft ground, napalm fuel pools and burns. +// A drop only flows if it's drawn in its liquid's own colour, so keep each drop's Color the same as its material's. + + +/////////////////////////////////////////////////////////////////////// +// Ammo + + +AddAmmo = MOPixel + PresetName = Water Jet Drop + Mass = 0.25 + RestThreshold = 500 + AirResistance = 0.02 + HitsMOs = 1 + GetsHitByMOs = 0 + Sharpness = 0 + Color = Color + R = 15 + G = 105 + B = 145 + Atom = Atom + Material = Material + CopyOf = Water + TrailColor = Color + R = 93 + G = 158 + B = 225 + TrailLength = 4 + + +AddAmmo = Round + PresetName = Round Water Jet + ParticleCount = 6 + Particle = MOPixel + CopyOf = Water Jet Drop + FireVelocity = 26 + Separation = 6 + + +AddAmmo = MOPixel + PresetName = Acid Glob + Mass = 0.05 + RestThreshold = 500 + HitsMOs = 1 + GetsHitByMOs = 0 + Sharpness = 0 + DamageOnCollision = 0.6 + Color = Color + R = 120 + G = 220 + B = 40 + Atom = Atom + Material = Material + CopyOf = Acid + TrailColor = Color + R = 120 + G = 220 + B = 40 + TrailLength = 2 + + +AddAmmo = Round + PresetName = Round Acid Glob + ParticleCount = 7 + Particle = MOPixel + CopyOf = Acid Glob + FireVelocity = 15 + Separation = 4 + + +AddAmmo = MOPixel + PresetName = Napalm Fuel + Mass = 0.08 + RestThreshold = 500 + AirResistance = 0.02 + HitsMOs = 1 + GetsHitByMOs = 0 + Sharpness = 0 + DamageOnCollision = 0.4 + Color = Color + R = 64 + G = 19 + B = 12 + Atom = Atom + Material = Material + CopyOf = Oil + TrailColor = Color + R = 255 + G = 160 + B = 40 + TrailLength = 3 + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/FireGlowTiny.png + EffectStartTime = 0 + EffectStopTime = 600 + EffectStartStrength = 0.8 + EffectStopStrength = 0.2 + + +AddAmmo = Round + PresetName = Round Napalm Fuel + ParticleCount = 3 + Particle = MOPixel + CopyOf = Napalm Fuel + FireVelocity = 16 + Separation = 5 + + +AddAmmo = Round + PresetName = Round Napalm Flame + ParticleCount = 1 + Particle = MOSParticle + CopyOf = Flame Hurt Short + FireVelocity = 15 + Separation = 3 + + +/////////////////////////////////////////////////////////////////////// +// Magazines + + +AddAmmo = Magazine + CopyOf = Magazine Concrete Sprayer + PresetName = Magazine Water Cannon + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayerMagazine.png + RoundCount = 1500 + RTTRatio = 0 + RegularRound = Round + CopyOf = Round Water Jet + TracerRound = Round + CopyOf = Round Water Jet + + +AddAmmo = Magazine + CopyOf = Magazine Concrete Sprayer + PresetName = Magazine Acid Sprayer + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayerMagazine.png + RoundCount = 60 + RTTRatio = 0 + RegularRound = Round + CopyOf = Round Acid Glob + TracerRound = Round + CopyOf = Round Acid Glob + + +AddAmmo = Magazine + CopyOf = Magazine Concrete Sprayer + PresetName = Magazine Napalm Flamer + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayerMagazine.png + RoundCount = 300 + RTTRatio = 2 + RegularRound = Round + CopyOf = Round Napalm Fuel + TracerRound = Round + CopyOf = Round Napalm Flame + + +/////////////////////////////////////////////////////////////////////// +// Sprayers + + +AddDevice = HDFirearm + CopyOf = Concrete Sprayer + PresetName = Water Cannon + AddToGroup = Weapons + Description = A high-pressure water cannon. Knocks people off their feet and puts out fires. The water runs off and pools like any other. + GoldValue = 30 + Buyable = 1 + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer.png + FrameCount = 2 + Magazine = Magazine + CopyOf = Magazine Water Cannon + RateOfFire = 3000 + ReloadTime = 2000 + ParticleSpreadRange = 3 + + +AddDevice = HDFirearm + CopyOf = Concrete Sprayer + PresetName = Acid Sprayer + AddToGroup = Weapons + AddToGroup = Weapons - Heavy + Description = Lobs globs of acid that sting whoever they hit and eat away at dirt, sand and other soft ground. Useless against rock and metal. + GoldValue = 60 + Buyable = 1 + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/AcidSprayer.png + FrameCount = 2 + Magazine = Magazine + CopyOf = Magazine Acid Sprayer + RateOfFire = 500 + ReloadTime = 2400 + ParticleSpreadRange = 8 + + +AddDevice = HDFirearm + CopyOf = Concrete Sprayer + PresetName = Napalm Flamer + AddToGroup = Weapons + AddToGroup = Weapons - Heavy + Description = Sprays burning fuel that splashes, runs downhill and keeps burning where it pools. Sets grass and wood alight. Keep it away from your own feet. + GoldValue = 70 + Buyable = 1 + SpriteFile = ContentFile + FilePath = Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer.png + FrameCount = 2 + Magazine = Magazine + CopyOf = Magazine Napalm Flamer + RateOfFire = 1500 + ReloadTime = 2600 + ParticleSpreadRange = 5 diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer000.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer000.png new file mode 100644 index 0000000000..0da905f129 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer000.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer001.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer001.png new file mode 100644 index 0000000000..0b9cc695c7 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayer001.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayerMagazine.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayerMagazine.png new file mode 100644 index 0000000000..472295a590 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/NapalmSprayerMagazine.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer000.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer000.png new file mode 100644 index 0000000000..736173e19e Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer000.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer001.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer001.png new file mode 100644 index 0000000000..7be98dcc79 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayer001.png differ diff --git a/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayerMagazine.png b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayerMagazine.png new file mode 100644 index 0000000000..5734e26800 Binary files /dev/null and b/Data/Base.rte/Devices/Weapons/LiquidSprayers/WaterSprayerMagazine.png differ diff --git a/Data/Base.rte/Effects.ini b/Data/Base.rte/Effects.ini index 038ea8980f..b35e782130 100644 --- a/Data/Base.rte/Effects.ini +++ b/Data/Base.rte/Effects.ini @@ -678,7 +678,61 @@ AddEffect = AEmitter // Effects +// A dot of a lightning bolt (the sandbox's lightning): a brief, bright, weightless spark. +AddEffect = MOPixel + PresetName = Lightning Bolt Particle + Mass = 0.001 + LifeTime = 140 + GlobalAccScalar = 0 + HitsMOs = 0 + GetsHitByMOs = 0 + IgnoreTerrain = 1 + Color = Color + R = 235 + G = 245 + B = 255 + Atom = Atom + Material = Material + CopyOf = Air + TrailLength = 0 + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/LightBlueTiny.png + EffectStartTime = 0 + EffectStopTime = 140 + EffectStartStrength = 0.7 + EffectStopStrength = 0 + EffectAlwaysShows = 1 + IncludeFile = Base.rte/Effects/Gibs.ini IncludeFile = Base.rte/Effects/Pyro.ini + +// A lick of flame off a burning unit or barrel: brief, weightless, harmless. +AddEffect = MOSParticle + CopyOf = Flame 2 + PresetName = Body Flame + LifeTime = 450 + GlobalAccScalar = -0.25 + AirResistance = 0.05 + HitsMOs = 0 + GetsHitByMOs = 0 + ScreenEffect = ContentFile + FilePath = Base.rte/Effects/Glows/FireGlowTiny.png + EffectStartStrength = 0.7 + EffectStopStrength = 0 + + +// Steam, where water meets fire or lava: a white puff that rises, fades and blocks sight like smoke. +AddEffect = MOSParticle + CopyOf = Smoke Ball 1 + PresetName = Steam Puff + SpriteFile = ContentFile + FilePath = Base.rte/Effects/Steam/SteamA.png + FrameCount = 16 + LifeTime = 3500 + GlobalAccScalar = -0.2 + AirResistance = 0.5 + AngularVel = 10 + + IncludeFile = Base.rte/Effects/Casings.ini IncludeFile = Base.rte/Effects/Wounds.ini \ No newline at end of file diff --git a/Data/Base.rte/Effects/Steam/SteamA000.png b/Data/Base.rte/Effects/Steam/SteamA000.png new file mode 100644 index 0000000000..d853b3e438 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA000.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA001.png b/Data/Base.rte/Effects/Steam/SteamA001.png new file mode 100644 index 0000000000..56581ac745 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA001.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA002.png b/Data/Base.rte/Effects/Steam/SteamA002.png new file mode 100644 index 0000000000..9e628209e1 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA002.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA003.png b/Data/Base.rte/Effects/Steam/SteamA003.png new file mode 100644 index 0000000000..a0745e574b Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA003.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA004.png b/Data/Base.rte/Effects/Steam/SteamA004.png new file mode 100644 index 0000000000..29447bcc9f Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA004.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA005.png b/Data/Base.rte/Effects/Steam/SteamA005.png new file mode 100644 index 0000000000..06eab505f8 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA005.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA006.png b/Data/Base.rte/Effects/Steam/SteamA006.png new file mode 100644 index 0000000000..d1361e1c1f Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA006.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA007.png b/Data/Base.rte/Effects/Steam/SteamA007.png new file mode 100644 index 0000000000..18f8fea499 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA007.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA008.png b/Data/Base.rte/Effects/Steam/SteamA008.png new file mode 100644 index 0000000000..9dafdb9aaa Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA008.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA009.png b/Data/Base.rte/Effects/Steam/SteamA009.png new file mode 100644 index 0000000000..8748ffb4e6 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA009.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA010.png b/Data/Base.rte/Effects/Steam/SteamA010.png new file mode 100644 index 0000000000..9f109e141d Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA010.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA011.png b/Data/Base.rte/Effects/Steam/SteamA011.png new file mode 100644 index 0000000000..8e0bad2777 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA011.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA012.png b/Data/Base.rte/Effects/Steam/SteamA012.png new file mode 100644 index 0000000000..aa43d1cdf6 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA012.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA013.png b/Data/Base.rte/Effects/Steam/SteamA013.png new file mode 100644 index 0000000000..aa43d1cdf6 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA013.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA014.png b/Data/Base.rte/Effects/Steam/SteamA014.png new file mode 100644 index 0000000000..5aba82d709 Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA014.png differ diff --git a/Data/Base.rte/Effects/Steam/SteamA015.png b/Data/Base.rte/Effects/Steam/SteamA015.png new file mode 100644 index 0000000000..c664c2d37e Binary files /dev/null and b/Data/Base.rte/Effects/Steam/SteamA015.png differ diff --git a/Data/Base.rte/GUIs/Fonts/README.md b/Data/Base.rte/GUIs/Fonts/README.md new file mode 100644 index 0000000000..5fc91f704f --- /dev/null +++ b/Data/Base.rte/GUIs/Fonts/README.md @@ -0,0 +1,6 @@ +# Fonts + +`Roboto-Medium.ttf` is used for the high resolution HUD text (Smooth HUD Text setting). + +Roboto, Copyright 2011 Google Inc. Licensed under the Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0). +It is the copy distributed with Dear ImGui (`Source/GUI/imgui/misc/fonts`). diff --git a/Data/Base.rte/GUIs/Fonts/Roboto-Medium.ttf b/Data/Base.rte/GUIs/Fonts/Roboto-Medium.ttf new file mode 100644 index 0000000000..39c63d7461 Binary files /dev/null and b/Data/Base.rte/GUIs/Fonts/Roboto-Medium.ttf differ diff --git a/Data/Base.rte/GUIs/ScenarioGUI.ini b/Data/Base.rte/GUIs/ScenarioGUI.ini index c9940e2e02..a78803c5b3 100644 --- a/Data/Base.rte/GUIs/ScenarioGUI.ini +++ b/Data/Base.rte/GUIs/ScenarioGUI.ini @@ -245,7 +245,7 @@ Parent = ConfigRoot X = 50 Y = 110 Width = 530 -Height = 298 +Height = 324 Visible = True Enabled = True Name = CollectionBoxActivityConfig @@ -289,7 +289,7 @@ Text = Cancel ControlType = BUTTON Parent = CollectionBoxActivityConfig X = 214 -Y = 270 +Y = 296 Width = 105 Height = 20 Visible = True @@ -303,7 +303,7 @@ Text = Start Game ControlType = LABEL Parent = CollectionBoxActivityConfig X = 15 -Y = 270 +Y = 296 Width = 497 Height = 20 Visible = True @@ -321,7 +321,7 @@ Parent = CollectionBoxActivityConfig X = 7 Y = 33 Width = 515 -Height = 65 +Height = 91 Visible = True Enabled = True Name = CollectionBoxActivityAttribConfig @@ -477,11 +477,39 @@ ToolTip = Whether pre-placed scene units will be deployed or not. Checked = Checked Text = Deploy units +[ButtonTimeOfDay] +ControlType = BUTTON +Parent = CollectionBoxActivityAttribConfig +X = 70 +Y = 64 +Width = 180 +Height = 20 +Visible = True +Enabled = True +Name = ButtonTimeOfDay +Anchor = Left, Top +ToolTip = The time of day for this game. Click to change. +Text = Time: Scene default + +[ButtonWeather] +ControlType = BUTTON +Parent = CollectionBoxActivityAttribConfig +X = 265 +Y = 64 +Width = 180 +Height = 20 +Visible = True +Enabled = True +Name = ButtonWeather +Anchor = Left, Top +ToolTip = The weather for this game. Click to change. +Text = Weather: Scene default + [CollectionBoxPlayersAndTeamsConfig] ControlType = COLLECTIONBOX Parent = CollectionBoxActivityConfig X = 7 -Y = 103 +Y = 129 Width = 515 Height = 161 Visible = True diff --git a/Data/Base.rte/GUIs/SettingsGUI.ini b/Data/Base.rte/GUIs/SettingsGUI.ini index 7603eb5a8b..df3c3a6f00 100644 --- a/Data/Base.rte/GUIs/SettingsGUI.ini +++ b/Data/Base.rte/GUIs/SettingsGUI.ini @@ -172,6 +172,120 @@ Anchor = Left, Top Text = Enable VSync Checked = Unchecked +[LabelVisualEffects] +ControlType = LABEL +Parent = CollectionBoxVideoSettings +X = 14 +Y = 220 +Width = 90 +Height = 16 +Visible = True +Enabled = True +Name = LabelVisualEffects +Anchor = Left, Top +Text = Visual Effects: +HAlignment = left +VAlignment = middle + +[CheckboxLighting] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 105 +Y = 220 +Width = 75 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxLighting +Anchor = Left, Top +Text = Lighting +Checked = Unchecked + +[CheckboxBloom] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 185 +Y = 220 +Width = 65 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxBloom +Anchor = Left, Top +Text = Bloom +Checked = Unchecked + +[CheckboxDistortion] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 220 +Width = 150 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxDistortion +Anchor = Left, Top +Text = Extra Effects +Checked = Unchecked + +[LabelGraphicsQuality] +ControlType = LABEL +Parent = CollectionBoxVideoSettings +X = 255 +Y = 135 +Width = 95 +Height = 16 +Visible = True +Enabled = True +Name = LabelGraphicsQuality +Anchor = Left, Top +Text = Graphics Quality: +HAlignment = left +VAlignment = middle + +[CheckboxModernHUD] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 180 +Width = 130 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxModernHUD +Anchor = Left, Top +Text = Modern HUD +Checked = Unchecked + +[CheckboxSmoothHUDText] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 160 +Width = 130 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxSmoothHUDText +Anchor = Left, Top +Text = Smooth HUD Text +Checked = Checked + +[ComboGraphicsQuality] +ControlType = COMBOBOX +Parent = CollectionBoxVideoSettings +X = 350 +Y = 135 +Width = 115 +Height = 18 +Visible = True +Enabled = True +Name = ComboGraphicsQuality +Anchor = Left, Top +DropHeight = 90 +DropDownStyle = DropDownList + [CheckboxFullscreen] ControlType = CHECKBOX Parent = CollectionBoxVideoSettings diff --git a/Data/Base.rte/GUIs/SettingsPauseGUI.ini b/Data/Base.rte/GUIs/SettingsPauseGUI.ini index a7186dc169..c28a36d939 100644 --- a/Data/Base.rte/GUIs/SettingsPauseGUI.ini +++ b/Data/Base.rte/GUIs/SettingsPauseGUI.ini @@ -172,6 +172,120 @@ Anchor = Left, Top Text = Enable VSync Checked = Unchecked +[LabelVisualEffects] +ControlType = LABEL +Parent = CollectionBoxVideoSettings +X = 14 +Y = 220 +Width = 90 +Height = 16 +Visible = True +Enabled = True +Name = LabelVisualEffects +Anchor = Left, Top +Text = Visual Effects: +HAlignment = left +VAlignment = middle + +[CheckboxLighting] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 105 +Y = 220 +Width = 75 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxLighting +Anchor = Left, Top +Text = Lighting +Checked = Unchecked + +[CheckboxBloom] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 185 +Y = 220 +Width = 65 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxBloom +Anchor = Left, Top +Text = Bloom +Checked = Unchecked + +[CheckboxDistortion] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 220 +Width = 150 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxDistortion +Anchor = Left, Top +Text = Extra Effects +Checked = Unchecked + +[LabelGraphicsQuality] +ControlType = LABEL +Parent = CollectionBoxVideoSettings +X = 15 +Y = 105 +Width = 95 +Height = 16 +Visible = True +Enabled = True +Name = LabelGraphicsQuality +Anchor = Left, Top +Text = Graphics Quality: +HAlignment = left +VAlignment = middle + +[CheckboxModernHUD] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 125 +Width = 130 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxModernHUD +Anchor = Left, Top +Text = Modern HUD +Checked = Unchecked + +[CheckboxSmoothHUDText] +ControlType = CHECKBOX +Parent = CollectionBoxVideoSettings +X = 255 +Y = 105 +Width = 130 +Height = 16 +Visible = True +Enabled = True +Name = CheckboxSmoothHUDText +Anchor = Left, Top +Text = Smooth HUD Text +Checked = Checked + +[ComboGraphicsQuality] +ControlType = COMBOBOX +Parent = CollectionBoxVideoSettings +X = 110 +Y = 104 +Width = 115 +Height = 18 +Visible = True +Enabled = True +Name = ComboGraphicsQuality +Anchor = Left, Top +DropHeight = 90 +DropDownStyle = DropDownList + [CheckboxFullscreen] ControlType = CHECKBOX Parent = CollectionBoxVideoSettings diff --git a/Data/Base.rte/Materials.ini b/Data/Base.rte/Materials.ini index dcb851ef20..b596f0713a 100644 --- a/Data/Base.rte/Materials.ini +++ b/Data/Base.rte/Materials.ini @@ -866,6 +866,39 @@ AddMaterial = Material // Index 174 is undefined. // Index 175 is undefined. +AddMaterial = Material + Index = 165 + PresetName = Lava + Bounce = 0.05 + Friction = 0.6 + StructuralIntegrity = 2 + DensityKGPerVolumeL = 3.0 + GibImpulseLimitPerVolumeL = 15 + GibWoundLimitPerVolumeL = 0.1 + Piling = 1 + IsScrap = 1 + SettleMaterial = 12 + Color = Color + R = 255 + G = 110 + B = 20 + +AddMaterial = Material + Index = 167 + PresetName = Acid + Bounce = 0.1 + Friction = 0.02 + StructuralIntegrity = 1 + DensityKGPerVolumeL = 1.2 + GibImpulseLimitPerVolumeL = 15 + GibWoundLimitPerVolumeL = 0.1 + Piling = 1 + IsScrap = 1 + Color = Color + R = 120 + G = 220 + B = 40 + AddMaterial = Material Index = 176 PresetName = Rubber diff --git a/Data/Base.rte/Scenes/Paeterra Ice Caves.ini b/Data/Base.rte/Scenes/Paeterra Ice Caves.ini index c855b4a36d..ff3b7b6a76 100644 --- a/Data/Base.rte/Scenes/Paeterra Ice Caves.ini +++ b/Data/Base.rte/Scenes/Paeterra Ice Caves.ini @@ -12,6 +12,9 @@ AddScene = Scene PreviewBitmapFile = ContentFile FilePath = Base.rte/Scenes/Paeterra Ice Caves.preview.png AutoDesigned = 1 + WeatherType = 2 + WeatherIntensity = 0.45 + Wind = 40 Terrain = SLTerrain CopyOf = Paeterra Ice Caves Terrain GlobalAcceleration = Vector diff --git a/Data/Base.rte/Scenes/Rayvord Tundra.ini b/Data/Base.rte/Scenes/Rayvord Tundra.ini index ec806af322..9699ddaaeb 100644 --- a/Data/Base.rte/Scenes/Rayvord Tundra.ini +++ b/Data/Base.rte/Scenes/Rayvord Tundra.ini @@ -12,6 +12,9 @@ AddScene = Scene PreviewBitmapFile = ContentFile FilePath = Base.rte/Scenes/Rayvord Tundra.preview.png AutoDesigned = 1 + WeatherType = 2 + WeatherIntensity = 0.7 + Wind = -90 Terrain = SLTerrain CopyOf = Rayvord Tundra Terrain GlobalAcceleration = Vector diff --git a/Data/Base.rte/Shaders/Blit8.frag b/Data/Base.rte/Shaders/Blit8.frag index a1b5e05aff..88c4a2ed9c 100644 --- a/Data/Base.rte/Shaders/Blit8.frag +++ b/Data/Base.rte/Shaders/Blit8.frag @@ -1,14 +1,75 @@ // Blit8.frag +// The default sprite/layer shader. Indexed textures are resolved through the palette. +// Also writes a screen space normal (location 1) derived from the texture's coverage edges, which gives every sprite and the terrain a small automatic bevel for the lighting to catch. #version 330 core in vec2 textureUV; - -out vec4 FragColor; +in vec4 vertexColor; +layout(location = 0) out vec4 FragColor; +layout(location = 1) out vec4 NormalOut; uniform sampler2D rteTexture; uniform sampler2D rtePalette; +uniform bool rteIndexed; +uniform vec4 rteColor; +uniform bool rteReplaceColor; +uniform sampler2D rteEmissivePalette; // 256x1, R = how much each palette color glows. + +vec4 textureAA(sampler2D tex, vec2 uv) { + vec2 texsize = vec2(textureSize(tex, 0)); + vec2 uv_texspace = uv * texsize; + vec2 seam = floor(uv_texspace + .5); + uv_texspace = (uv_texspace - seam) / fwidth(uv_texspace) + seam; + uv_texspace = clamp(uv_texspace, seam - .5, seam + .5); + return texture(tex, uv_texspace / texsize); +} + +float Coverage(vec2 uv) { + if (rteIndexed) { + return texture(rteTexture, uv).r > 0.0 ? 1.0 : 0.0; + } + return texture(rteTexture, uv).a > 0.5 ? 1.0 : 0.0; +} + +vec3 EdgeNormal(vec2 uvDx, vec2 uvDy) { + vec2 texel = 1.0 / vec2(textureSize(rteTexture, 0)); + vec2 dx = vec2(texel.x, 0.0); + vec2 dy = vec2(0.0, texel.y); + // Coverage gradient in texels, at two widths for a slightly softer bevel. + vec2 gradient = vec2(Coverage(textureUV + dx) - Coverage(textureUV - dx), Coverage(textureUV + dy) - Coverage(textureUV - dy)); + gradient += 0.5 * vec2(Coverage(textureUV + 2.0 * dx) - Coverage(textureUV - 2.0 * dx), Coverage(textureUV + 2.0 * dy) - Coverage(textureUV - 2.0 * dy)); + float edge = clamp(length(gradient), 0.0, 1.0); + if (edge <= 0.0) { + return vec3(0.0, 0.0, 1.0); + } + // Bring the texture space gradient into screen space using how UVs change across screen pixels. This handles rotation, flipping and scaling without needing the transform. + mat2 uvPerPixel = mat2(uvDx / texel, uvDy / texel); + vec2 screenGradient = transpose(uvPerPixel) * gradient; + if (dot(screenGradient, screenGradient) < 1e-8) { + return vec3(0.0, 0.0, 1.0); + } + // Coverage increases into the sprite, so the outward normal points against the gradient. + vec2 outward = -normalize(screenGradient); + return normalize(vec3(outward * edge, 1.0 - 0.6 * edge)); +} void main() { - float colorIndex = texture(rteTexture, vec2(textureUV.x, -textureUV.y)).r; - FragColor = texture(rtePalette, vec2(colorIndex, 0.0F)); + // Derivatives must be taken in uniform control flow, before any discard. + vec2 uvDx = dFdx(textureUV); + vec2 uvDy = dFdy(textureUV); + float emissive = 0.0; + if (rteIndexed) { + float colorIndex = texture(rteTexture, vec2(textureUV.x, textureUV.y)).r; + FragColor = texture(rtePalette, vec2(colorIndex, 0.0F)) * vertexColor; + emissive = texture(rteEmissivePalette, vec2(colorIndex, 0.0F)).r; + } else { + FragColor = textureAA(rteTexture, textureUV) * vertexColor; + } + if (FragColor.a == 0.0) { + discard; + } else if (rteReplaceColor) { + FragColor.rgba = rteColor; + } + // Alpha: 0 means nothing drawn, 0.5..1 is drawn with emissive strength 0..1. + NormalOut = vec4(EdgeNormal(uvDx, uvDy) * 0.5 + 0.5, 0.5 + 0.5 * emissive); } diff --git a/Data/Base.rte/Shaders/Blit8.vert b/Data/Base.rte/Shaders/Blit8.vert index da626baa08..b5c5bec424 100644 --- a/Data/Base.rte/Shaders/Blit8.vert +++ b/Data/Base.rte/Shaders/Blit8.vert @@ -8,9 +8,10 @@ out vec2 textureUV; out vec4 vertexColor; uniform mat4 rteView; uniform mat4 rteProjection; +uniform mat4 rteTransform; void main() { - gl_Position = rteProjection * rteView * vec4(rteVertexPosition, 1.0); + gl_Position = rteProjection * rteView * rteTransform * vec4(rteVertexPosition, 1.0); textureUV = rteVertexTexUV; vertexColor = rteVertexColor; } diff --git a/Data/Base.rte/Shaders/Lighting/BloomDownsample.frag b/Data/Base.rte/Shaders/Lighting/BloomDownsample.frag new file mode 100644 index 0000000000..b8e205fba3 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/BloomDownsample.frag @@ -0,0 +1,44 @@ +// BloomDownsample.frag +// 13 tap downsample (Jimenez, "Next Generation Post Processing in Call of Duty: Advanced Warfare"), with a soft threshold on the first pass. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteSource; +uniform vec2 rteSourceTexelSize; +uniform bool rteFirstPass; +uniform float rteThreshold; +uniform float rteKnee; + +vec3 Prefilter(vec3 color) { + float brightness = max(color.r, max(color.g, color.b)); + float soft = clamp(brightness - rteThreshold + rteKnee, 0.0, 2.0 * rteKnee); + soft = (soft * soft) / (4.0 * rteKnee + 1e-4); + float contribution = max(soft, brightness - rteThreshold) / max(brightness, 1e-4); + return color * contribution; +} + +void main() { + vec2 uv = gl_FragCoord.xy * 2.0 * rteSourceTexelSize; + vec2 t = rteSourceTexelSize; + vec3 a = texture(rteSource, uv + t * vec2(-2.0, -2.0)).rgb; + vec3 b = texture(rteSource, uv + t * vec2(0.0, -2.0)).rgb; + vec3 c = texture(rteSource, uv + t * vec2(2.0, -2.0)).rgb; + vec3 d = texture(rteSource, uv + t * vec2(-2.0, 0.0)).rgb; + vec3 e = texture(rteSource, uv).rgb; + vec3 f = texture(rteSource, uv + t * vec2(2.0, 0.0)).rgb; + vec3 g = texture(rteSource, uv + t * vec2(-2.0, 2.0)).rgb; + vec3 h = texture(rteSource, uv + t * vec2(0.0, 2.0)).rgb; + vec3 i = texture(rteSource, uv + t * vec2(2.0, 2.0)).rgb; + vec3 j = texture(rteSource, uv + t * vec2(-1.0, -1.0)).rgb; + vec3 k = texture(rteSource, uv + t * vec2(1.0, -1.0)).rgb; + vec3 l = texture(rteSource, uv + t * vec2(-1.0, 1.0)).rgb; + vec3 m = texture(rteSource, uv + t * vec2(1.0, 1.0)).rgb; + + vec3 color = e * 0.125 + (a + c + g + i) * 0.03125 + (b + d + f + h) * 0.0625 + (j + k + l + m) * 0.125; + if (rteFirstPass) { + color = Prefilter(color); + } + FragColor = vec4(max(color, vec3(0.0)), 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/BloomUpsample.frag b/Data/Base.rte/Shaders/Lighting/BloomUpsample.frag new file mode 100644 index 0000000000..d8d54cb65a --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/BloomUpsample.frag @@ -0,0 +1,26 @@ +// BloomUpsample.frag +// 3x3 tent filter upsample of the next smaller bloom mip, additively blended onto the current one. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteSource; +uniform vec2 rteSourceTexelSize; +uniform vec2 rteTargetTexelSize; +uniform float rteRadius; + +void main() { + vec2 uv = gl_FragCoord.xy * rteTargetTexelSize; + vec2 t = rteSourceTexelSize * rteRadius; + vec3 color = texture(rteSource, uv + vec2(-t.x, -t.y)).rgb; + color += texture(rteSource, uv + vec2(0.0, -t.y)).rgb * 2.0; + color += texture(rteSource, uv + vec2(t.x, -t.y)).rgb; + color += texture(rteSource, uv + vec2(-t.x, 0.0)).rgb * 2.0; + color += texture(rteSource, uv).rgb * 4.0; + color += texture(rteSource, uv + vec2(t.x, 0.0)).rgb * 2.0; + color += texture(rteSource, uv + vec2(-t.x, t.y)).rgb; + color += texture(rteSource, uv + vec2(0.0, t.y)).rgb * 2.0; + color += texture(rteSource, uv + vec2(t.x, t.y)).rgb; + FragColor = vec4(color / 16.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/Emissive.frag b/Data/Base.rte/Shaders/Lighting/Emissive.frag new file mode 100644 index 0000000000..ad72125b44 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Emissive.frag @@ -0,0 +1,16 @@ +// Emissive.frag +// Glow sprites (ScreenEffects) are screen blended into an emissive buffer in gamma space, exactly like the original glows, so many overlapping glows saturate gracefully instead of adding up to a white blob. +// The composite then adds the buffer to the HDR scene as emitted light. +#version 330 core + +in vec2 textureUV; +in vec4 vertexColor; +out vec4 FragColor; + +uniform sampler2D rteTexture; +uniform bool rteUseAlpha; // Multiply by the texture's alpha (soft shapes), for density splats. + +void main() { + vec4 texel = texture(rteTexture, textureUV); + FragColor = vec4(texel.rgb * (rteUseAlpha ? texel.a : 1.0) * vertexColor.rgb, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/Emissive.vert b/Data/Base.rte/Shaders/Lighting/Emissive.vert new file mode 100644 index 0000000000..3c8b7d2678 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Emissive.vert @@ -0,0 +1,18 @@ +// Emissive.vert +// Textured quads positioned in player screen pixels (Y down, which is also the render target's row order). +#version 330 core + +in vec3 rteVertexPosition; +in vec2 rteVertexTexUV; +in vec4 rteVertexColor; + +out vec2 textureUV; +out vec4 vertexColor; + +uniform vec2 rteScreenSize; + +void main() { + gl_Position = vec4((rteVertexPosition.xy / rteScreenSize) * 2.0 - 1.0, 0.0, 1.0); + textureUV = rteVertexTexUV; + vertexColor = rteVertexColor; +} diff --git a/Data/Base.rte/Shaders/Lighting/ExposureAdapt.frag b/Data/Base.rte/Shaders/Lighting/ExposureAdapt.frag new file mode 100644 index 0000000000..6a0538ec42 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/ExposureAdapt.frag @@ -0,0 +1,26 @@ +// ExposureAdapt.frag +// Second step of auto exposure: moves the adapted log luminance towards this frame's average, like eyes adjusting. +// Eyes adjust to bright light faster than to darkness. +#version 330 core + +out vec4 FragColor; + +uniform sampler2D rteLuminance; // Log luminance with mipmaps, the last level is the average. +uniform float rteLuminanceLod; +uniform sampler2D rtePrevious; // 1x1, the adapted log luminance so far. +uniform float rteDeltaSeconds; +uniform float rteBrightenSpeed; +uniform float rteDarkenSpeed; +uniform bool rteReset; + +void main() { + float current = textureLod(rteLuminance, vec2(0.5), rteLuminanceLod).r; + float previous = texture(rtePrevious, vec2(0.5)).r; + if (rteReset || isnan(previous) || isinf(previous)) { + FragColor = vec4(current, 0.0, 0.0, 1.0); + return; + } + float speed = current > previous ? rteBrightenSpeed : rteDarkenSpeed; + float adapted = previous + (current - previous) * (1.0 - exp(-rteDeltaSeconds * speed)); + FragColor = vec4(adapted, 0.0, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/Fullscreen.vert b/Data/Base.rte/Shaders/Lighting/Fullscreen.vert new file mode 100644 index 0000000000..fcb521e068 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Fullscreen.vert @@ -0,0 +1,13 @@ +// Fullscreen.vert +// Shared vertex shader for fullscreen lighting and post-processing passes. Positions are in NDC, UVs go 0..1 bottom to top. +#version 330 core + +in vec3 rteVertexPosition; +in vec2 rteVertexTexUV; + +out vec2 textureUV; + +void main() { + gl_Position = vec4(rteVertexPosition.xy, 0.0, 1.0); + textureUV = rteVertexTexUV; +} diff --git a/Data/Base.rte/Shaders/Lighting/GodRays.frag b/Data/Base.rte/Shaders/Lighting/GodRays.frag new file mode 100644 index 0000000000..153117d998 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/GodRays.frag @@ -0,0 +1,62 @@ +// GodRays.frag +// Crepuscular rays: open sky is smeared towards the sun, so light streams down through gaps in the terrain. +// Runs at half resolution. "Open sky" comes from the terrain skyline in world space, so moving objects and background art don't cast shafts. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteSkyline; // 1 row, R = grid row of the first solid cell in each column, normalized by grid height. +uniform vec2 rteScreenOrigin; // World position of the screen's top left pixel. +uniform vec2 rteScreenSize; +uniform vec2 rteGridWorldSize; +uniform vec2 rteSunPosition; // Screen UV of the sun, usually above the screen. +uniform vec3 rteSunColor; // Linear ray color and strength. +uniform float rteDecay; // Per sample falloff along the ray. +uniform vec2 rteTargetSize; +uniform float rteTime; + +float Hash(float n) { + return fract(sin(n) * 43758.5453); +} + +float Noise(float x) { + float i = floor(x); + float f = fract(x); + return mix(Hash(i), Hash(i + 1.0), f * f * (3.0 - 2.0 * f)); +} + +const int c_Samples = 48; + +float OpenSky(vec2 screenUV) { + vec2 worldPos = rteScreenOrigin + screenUV * rteScreenSize; + vec2 gridUV = worldPos / rteGridWorldSize; + float skyline = texture(rteSkyline, vec2(fract(gridUV.x), 0.5)).r; + return gridUV.y < skyline ? 1.0 : 0.0; +} + +void main() { + vec2 uv = gl_FragCoord.xy / rteTargetSize; + vec2 toSun = rteSunPosition - uv; + // March towards the sun, but not too far: keep shafts local to the openings they come through. + vec2 stepUV = toSun * (0.55 / float(c_Samples)); + vec2 sampleUV = uv; + float weight = 1.0; + float accumulated = 0.0; + float total = 0.0; + for (int i = 0; i < c_Samples; ++i) { + sampleUV += stepUV; + accumulated += weight * OpenSky(sampleUV); + total += weight; + weight *= rteDecay; + } + // The fraction of the path towards the sun that's open. Squared so beams have defined edges where terrain starts blocking them. + float openness = accumulated / total; + float shaft = openness * openness; + // Streaks: vary brightness across the beams (perpendicular to the sun direction), drifting slowly, like dust in the light. + vec2 worldPos = rteScreenOrigin + uv * rteScreenSize; + vec2 sunDirection = normalize(toSun * rteScreenSize); + float across = dot(worldPos, vec2(-sunDirection.y, sunDirection.x)); + float streaks = 0.55 + 0.45 * (0.6 * Noise(across * 0.07 + rteTime * 0.15) + 0.4 * Noise(across * 0.19 - rteTime * 0.1)); + FragColor = vec4(rteSunColor * shaft * streaks, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/GodRaysApply.frag b/Data/Base.rte/Shaders/Lighting/GodRaysApply.frag new file mode 100644 index 0000000000..11827eb5ac --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/GodRaysApply.frag @@ -0,0 +1,44 @@ +// GodRaysApply.frag +// Adds the god rays to the HDR scene over the air inside caves and bunkers: the terrain background layer, not solid foreground terrain, objects or the open sky. +// Dust motes drift through the shafts and glint where the light is strongest. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteGodRays; +uniform sampler2D rteSceneDepth; +uniform float rteForegroundDepth; // Depth beyond which pixels are behind the foreground terrain and objects. +uniform float rteBackgroundDepth; // Depth beyond which pixels are distant background layers. +uniform vec2 rteScreenSize; +uniform vec2 rteScreenOrigin; // World position of the screen's top left pixel. +uniform float rteTime; +uniform float rteDustMotes; + +float Hash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); +} + +float Motes(vec2 worldPos) { + // Sparse points on a drifting grid: each 9px cell may hold one mote, slowly wandering and twinkling. + vec2 drift = vec2(sin(rteTime * 0.21) * 6.0 + rteTime * 2.0, rteTime * 3.0); + vec2 p = worldPos + drift; + vec2 cell = floor(p / 9.0); + float present = step(0.86, Hash(cell)); + vec2 motePos = (cell + vec2(Hash(cell + 3.1), Hash(cell + 7.7))) * 9.0; + motePos += vec2(sin(rteTime * 0.7 + Hash(cell) * 30.0), cos(rteTime * 0.5 + Hash(cell + 1.3) * 30.0)) * 2.0; + float twinkle = 0.5 + 0.5 * sin(rteTime * 2.0 + Hash(cell + 5.0) * 40.0); + return present * twinkle * step(length(p - motePos), 0.75); +} + +void main() { + vec2 uv = gl_FragCoord.xy / rteScreenSize; + float depth = texture(rteSceneDepth, uv).r; + float terrainBackground = step(rteForegroundDepth, depth) * (1.0 - step(rteBackgroundDepth, depth)); + vec3 rays = texture(rteGodRays, uv).rgb; + vec3 color = rays; + if (rteDustMotes > 0.0) { + color += rays * Motes(rteScreenOrigin + gl_FragCoord.xy) * 6.0 * rteDustMotes; + } + FragColor = vec4(color * terrainBackground, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/LightComposite.frag b/Data/Base.rte/Shaders/Lighting/LightComposite.frag new file mode 100644 index 0000000000..08f92a0500 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/LightComposite.frag @@ -0,0 +1,150 @@ +// LightComposite.frag +// Lights the scene: albedo (the unlit scene as drawn) times the light reaching each pixel, written to an HDR target in linear space. +// At full daylight the light is exactly the sky color, so with a white sky the original art is reproduced unchanged. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteAlbedo; // The unlit player screen. +uniform sampler2D rteDynamicLight; // Screen space, RGB = linear light from dynamic lights. +uniform sampler2D rteEmissive; // Screen space, RGB = glows in gamma space, screen blended. +uniform float rteEmissiveIntensity; +uniform float rteMaxDynamicLight; // Dynamic light softly saturates towards this, so piles of overlapping lights don't blow out. +uniform sampler2D rteSkyLight; // World grid, R = sky light 0..1, linearly filtered. +uniform sampler2D rteSceneDepth; // The player screen's depth buffer. +uniform float rteBackgroundDepth; // Depth beyond which pixels belong to the distant background layers (or nothing was drawn). +uniform vec3 rteBackgroundLight; // Linear light on the distant background layers. +uniform float rteBackgroundNearDepth; // Depth of the nearest background layers. +uniform float rteBackgroundFarDepth; // Depth of the furthest background layers. +uniform vec3 rteAtmosphereColor; // Linear haze color, time of day included. +uniform float rteAtmosphereHaze; // How much the furthest layers fade into the haze. +uniform vec2 rteScreenSize; +uniform vec2 rteScreenOrigin; // World position of the screen's top left pixel. +uniform vec2 rteGridWorldSize; // World size covered by the sky light grid. +uniform vec3 rteAmbient; // Linear light where no sky light reaches. +uniform vec3 rteSkyColor; // Linear light under open sky. +uniform int rteDebugView; // 0 final, 1 lighting on grey, 2 sky light only, 3 dynamic light only, 4 normals. +uniform sampler2D rteNormals; // Player screen normals, RGB = normal * 0.5 + 0.5, A = 1 where something was drawn. +uniform float rteEdgeLighting; +uniform float rteForegroundDepth; // Depth below which pixels are foreground terrain and objects. +uniform vec3 rteForegroundAmbient; // Minimum light on the foreground, so the playfield stays readable deep underground. +uniform sampler2D rteIndirect; // Last frame's lit scene, heavily blurred: the light bouncing off nearby surfaces. +uniform float rteIndirectStrength; +uniform vec2 rteIndirectOffset; // How far the screen moved since the indirect light was made, in pixels. +uniform sampler2D rteGI; // Light from radiance cascades, quarter resolution. +uniform float rteGIStrength; +uniform float rteNightSky; // 0 by day, 1 at full night: stars and the moon show on the furthest sky layers. +uniform vec2 rteMoonPosition; // Screen pixels, as gl_FragCoord (y 0 is the top of the player screen). +uniform float rteTime; // Seconds, for twinkling. + +float StarHash(vec2 p) { + p = fract(p * vec2(123.34, 456.21)); + p += dot(p, p + 45.32); + return fract(p.x * p.y); +} + +// Pixel stars with a slow twinkle, and a pixel-art moon with a soft halo. Linear, added on top of the lit sky. +vec3 NightSky(vec2 fragCoord) { + // The sky barely moves with the camera, like the furthest parallax layers. + vec2 skyPixel = floor(fragCoord + rteScreenOrigin * vec2(0.03, -0.03)); + float hash = StarHash(skyPixel); + vec3 sky = vec3(0.0); + if (hash > 0.9965) { + float brightness = (hash - 0.9965) / 0.0035; + float twinkle = 0.65 + 0.35 * sin(rteTime * (0.8 + brightness * 2.5) + hash * 300.0); + vec3 tint = mix(vec3(0.75, 0.82, 1.0), vec3(1.0, 0.9, 0.75), fract(hash * 97.0)); + sky += tint * (0.15 + 0.85 * brightness * brightness) * twinkle * 0.9; + } + vec2 toMoon = fragCoord - rteMoonPosition; + float moonDistance = length(toMoon); + if (moonDistance < 6.5) { + // A crescent-ish shading so it reads as a moon, not a lamp. + float shade = 0.75 + 0.25 * clamp(dot(normalize(toMoon + vec2(0.001)), vec2(-0.7, 0.7)), -1.0, 1.0); + sky += vec3(0.95, 0.95, 1.0) * 1.3 * shade; + } else { + sky += vec3(0.55, 0.62, 0.85) * 0.22 * exp(-(moonDistance - 6.5) / 14.0); + } + return sky; +} + +void main() { + vec2 screenUV = gl_FragCoord.xy / rteScreenSize; + vec4 albedo = texture(rteAlbedo, screenUV); + + vec3 light; + float nightSkyAmount = 0.0; + float sceneDepth = texture(rteSceneDepth, screenUV).r; + float haze = 0.0; + if (sceneDepth > rteBackgroundDepth) { + // Background layers are far behind the action: they aren't shadowed by terrain or lit by explosions in front of them, but fade into the atmosphere with distance. + light = rteBackgroundLight; + float distance = clamp((sceneDepth - rteBackgroundNearDepth) / (rteBackgroundFarDepth - rteBackgroundNearDepth), 0.0, 1.0); + // Nothing drawn at all (cleared depth) is open sky. + // The furthest layers are usually the sky itself, which shouldn't be washed out; haze peaks on the distant scenery in between. + haze = sceneDepth >= 0.9999 ? rteAtmosphereHaze * 0.4 : rteAtmosphereHaze * smoothstep(0.0, 0.6, distance) * (1.0 - 0.6 * smoothstep(0.85, 1.0, distance)); + // Only layers that barely scroll (the sky itself) get stars, so they never show on mountains or nearer scenery. + // They also fade towards the horizon, where distant mountains usually are. + nightSkyAmount = rteNightSky * smoothstep(0.88, 0.95, distance) * (1.0 - smoothstep(0.25, 0.48, screenUV.y)); // Player screens are drawn top down: UV y 0 is the top. + } else { + vec2 worldPos = rteScreenOrigin + gl_FragCoord.xy; + float sky = texture(rteSkyLight, worldPos / rteGridWorldSize).r; + // Shape the falloff a little so cave mouths stay bright and deep caves get properly dark. + sky = smoothstep(0.0, 1.0, sky); + // Sky light comes from above: upward facing edges catch more of it, undersides less. + vec4 normalSample = texture(rteNormals, screenUV); + if (normalSample.a > 0.25) { + vec3 normal = normalSample.xyz * 2.0 - 1.0; + sky *= mix(1.0, clamp(1.0 - normal.y * 0.9, 0.35, 1.6), rteEdgeLighting); + } + vec3 dynamicLight = texture(rteDynamicLight, screenUV).rgb; + dynamicLight = rteMaxDynamicLight * (1.0 - exp(-dynamicLight / rteMaxDynamicLight)); + light = mix(rteAmbient, rteSkyColor, sky) + dynamicLight; + if (rteIndirectStrength > 0.0) { + // One bounce: what the surroundings reflect. Reprojected for camera movement; the history is so blurry that's all it needs. + vec2 historyUV = (gl_FragCoord.xy + rteIndirectOffset) / rteScreenSize; + vec3 bounce = texture(rteIndirect, clamp(historyUV, vec2(0.0), vec2(1.0))).rgb; + // Never let a bad value in the history feed back into every following frame. + bounce = any(isnan(bounce)) || any(isinf(bounce)) ? vec3(0.0) : bounce; + // Fully sky lit areas already look as authored, so the bounce mostly fills shadowed areas and caves. + light += min(bounce, vec3(4.0)) * rteIndirectStrength * (1.0 - 0.85 * sky); + } + if (rteGIStrength > 0.0) { + vec3 gi = texture(rteGI, screenUV).rgb; + light += min(gi, vec3(6.0)) * rteGIStrength; + } + if (sceneDepth < rteForegroundDepth) { + light = max(light, rteForegroundAmbient); + } + // Emissive palette colors (gold glints, glowing bits) shine regardless of the light around them. + float emissive = normalSample.a > 0.25 ? max(normalSample.a - 0.5, 0.0) * 2.0 : 0.0; + light = max(light, vec3(emissive * 1.6)); + } + + vec3 albedoLinear = pow(albedo.rgb, vec3(2.2)); + if (rteDebugView == 1) { + albedoLinear = vec3(0.5); + } else if (rteDebugView == 2) { + vec2 worldPos = rteScreenOrigin + gl_FragCoord.xy; + FragColor = vec4(vec3(texture(rteSkyLight, worldPos / rteGridWorldSize).r), 1.0); + return; + } else if (rteDebugView == 3) { + FragColor = vec4(texture(rteDynamicLight, screenUV).rgb, 1.0); + return; + } else if (rteDebugView == 6) { + FragColor = vec4(texture(rteGI, screenUV).rgb * max(rteGIStrength, 1.0), 1.0); + return; + } else if (rteDebugView == 4) { + FragColor = vec4(pow(texture(rteNormals, screenUV).rgb, vec3(2.2)), 1.0); + return; + } + vec3 emissive = pow(texture(rteEmissive, screenUV).rgb, vec3(2.2)) * rteEmissiveIntensity; + vec3 litColor = mix(albedoLinear * light, rteAtmosphereColor, haze); + if (nightSkyAmount > 0.0) { + // Bright parts of the sky art (clouds, glowing horizons) hide the stars. + float skyBrightness = dot(litColor, vec3(0.2126, 0.7152, 0.0722)); + litColor += NightSky(gl_FragCoord.xy) * nightSkyAmount * (1.0 - smoothstep(0.03, 0.12, skyBrightness)); + } + vec3 result = litColor + emissive; + FragColor = vec4(any(isnan(result)) || any(isinf(result)) ? vec3(0.0) : result, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/LightPropagate.frag b/Data/Base.rte/Shaders/Lighting/LightPropagate.frag new file mode 100644 index 0000000000..1eee43983c --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/LightPropagate.frag @@ -0,0 +1,50 @@ +// LightPropagate.frag +// One iteration of sky light propagation through the world light grid. +// Each cell takes the brightest of its neighbours, attenuated by its own medium (air carries light far, terrain only a few cells), and cells with open sky above are seeded at full brightness. +// Run a few iterations per frame on a persistent grid: light flows into newly dug holes over a few frames, and drains away again when they're filled. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteLight; // Previous iteration, R = light. +uniform sampler2D rteOccupancy; // R = terrain coverage of the cell, 0 air .. 1 solid. +uniform sampler2D rteSkyline; // 1 row, R = grid row of the first solid cell in each column, normalized by grid height. +uniform vec2 rteGridSize; +uniform bool rteWrapX; +uniform bool rteWrapY; +uniform float rteAirFalloff; // Per cell multiplier in air, e.g. 0.94. +uniform float rteSolidFalloff; // Per cell multiplier in terrain, e.g. 0.55. + +float SampleLight(ivec2 cell) { + if (rteWrapX) { + cell.x = (cell.x + int(rteGridSize.x)) % int(rteGridSize.x); + } else if (cell.x < 0 || cell.x >= int(rteGridSize.x)) { + return 0.0; + } + if (rteWrapY) { + cell.y = (cell.y + int(rteGridSize.y)) % int(rteGridSize.y); + } else if (cell.y < 0) { + // Light comes in from above the top of the scene. + return 1.0; + } else if (cell.y >= int(rteGridSize.y)) { + return 0.0; + } + return texelFetch(rteLight, cell, 0).r; +} + +void main() { + ivec2 cell = ivec2(gl_FragCoord.xy); + float occupancy = texelFetch(rteOccupancy, cell, 0).r; + + float skyline = texelFetch(rteSkyline, ivec2(cell.x, 0), 0).r * rteGridSize.y; + float seed = (!rteWrapY && float(cell.y) < skyline) ? 1.0 : 0.0; + + float neighbours = max(max(SampleLight(cell + ivec2(1, 0)), SampleLight(cell + ivec2(-1, 0))), max(SampleLight(cell + ivec2(0, 1)), SampleLight(cell + ivec2(0, -1)))); + // Diagonals carry slightly less so light spreads roughly circularly instead of in a diamond. + float diagonals = max(max(SampleLight(cell + ivec2(1, 1)), SampleLight(cell + ivec2(-1, 1))), max(SampleLight(cell + ivec2(1, -1)), SampleLight(cell + ivec2(-1, -1)))); + float incoming = max(neighbours, diagonals * 0.96); + + float falloff = mix(rteAirFalloff, rteSolidFalloff, occupancy); + FragColor = vec4(max(seed * (1.0 - occupancy), incoming * falloff), 0.0, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/LitParticle.frag b/Data/Base.rte/Shaders/Lighting/LitParticle.frag new file mode 100644 index 0000000000..57000dbebd --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/LitParticle.frag @@ -0,0 +1,28 @@ +// LitParticle.frag +// Translucent particles (dust, smoke) drawn over the lit HDR scene, lit by the same sky light, ambient and dynamic lights as the scene behind them. +// Drawing them after the composite keeps them out of the depth buffer, so the background behind them keeps its own lighting. +#version 330 core + +in vec2 textureUV; +in vec4 vertexColor; // RGB albedo in gamma space, A opacity. +out vec4 FragColor; + +uniform sampler2D rteTexture; // Particle shape, alpha. +uniform sampler2D rteSkyLight; // World grid, R = sky light 0..1. +uniform sampler2D rteDynamicLight; // Screen space dynamic light. +uniform vec2 rteGridWorldSize; +uniform vec2 rteScreenOrigin; +uniform vec2 rteScreenSize; +uniform vec3 rteAmbient; +uniform vec3 rteSkyColor; + +void main() { + float alpha = texture(rteTexture, textureUV).a * vertexColor.a; + if (alpha <= 0.003) { + discard; + } + vec2 worldPos = rteScreenOrigin + gl_FragCoord.xy; + float sky = smoothstep(0.0, 1.0, texture(rteSkyLight, worldPos / rteGridWorldSize).r); + vec3 light = mix(rteAmbient, rteSkyColor, sky) + texture(rteDynamicLight, gl_FragCoord.xy / rteScreenSize).rgb; + FragColor = vec4(pow(vertexColor.rgb, vec3(2.2)) * light, alpha); +} diff --git a/Data/Base.rte/Shaders/Lighting/Luminance.frag b/Data/Base.rte/Shaders/Lighting/Luminance.frag new file mode 100644 index 0000000000..ad0b6117c0 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Luminance.frag @@ -0,0 +1,27 @@ +// Luminance.frag +// First step of auto exposure: writes the log luminance of the HDR scene into a small power of two target, whose mipmaps then average it. +// The centre of the screen counts more, since that's where the action (and the player's eyes) usually are. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteScene; +uniform vec2 rteSourceTexelSize; + +void main() { + vec2 uv = textureUV; + // Four bilinear taps cover a decent part of the source footprint of each texel. + vec3 color = texture(rteScene, uv + rteSourceTexelSize * vec2(-1.0, -1.0)).rgb; + color += texture(rteScene, uv + rteSourceTexelSize * vec2(1.0, -1.0)).rgb; + color += texture(rteScene, uv + rteSourceTexelSize * vec2(-1.0, 1.0)).rgb; + color += texture(rteScene, uv + rteSourceTexelSize * vec2(1.0, 1.0)).rgb; + float luminance = dot(color * 0.25, vec3(0.2126, 0.7152, 0.0722)); + if (isnan(luminance) || isinf(luminance)) { + luminance = 0.0; + } + // Centre weighting through the average: edges are pulled towards the centre's value by blending the log luminance with a fixed mid grey. + float edge = smoothstep(0.25, 0.75, length((uv - 0.5) * vec2(1.6, 1.0))); + float logLuminance = log(max(luminance, 0.0001)); + FragColor = vec4(mix(logLuminance, log(0.18), edge * 0.6), 0.0, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/PointLight.frag b/Data/Base.rte/Shaders/Lighting/PointLight.frag new file mode 100644 index 0000000000..b663a3a900 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/PointLight.frag @@ -0,0 +1,79 @@ +// PointLight.frag +// Smooth radial falloff with soft shadows marched through the terrain occupancy grid. Additively blended into the dynamic light buffer. +#version 330 core + +in vec2 localPos; +in vec4 lightColor; +in vec2 lightCenter; +in float lightRadius; +in vec2 screenPos; +in vec3 lightCone; + +out vec4 FragColor; + +uniform sampler2D rteOccupancy; // World grid, R = terrain coverage 0..1, linearly filtered. +uniform vec2 rteScreenOrigin; // World position of the screen's top left pixel. +uniform vec2 rteGridWorldSize; // World size covered by the occupancy grid. +uniform float rteShadowStrength; // How much each solid sample blocks, 0..1. +uniform sampler2D rteNormals; // Player screen normals, RGB = normal * 0.5 + 0.5, A = 1 where something was drawn. +uniform vec2 rteScreenSize; +uniform float rteEdgeLighting; +uniform bool rteBeamMode; // Drawing the visible beam of cone lights over the lit scene, instead of light falling on surfaces. + +const int c_ShadowSteps = 12; + +void main() { + if (rteBeamMode && lightCone.z < -1.5) { + discard; + } + float distanceSq = dot(localPos, localPos); + if (distanceSq >= 1.0) { + discard; + } + // Smooth falloff that reaches exactly zero at the radius, so lights never show a hard edge. + float falloff = (1.0 - distanceSq); + falloff *= falloff; + if (lightCone.z > -1.5) { + // Flashlight: a soft edged cone, with a little spill right around the lamp. + vec2 toPixel = gl_FragCoord.xy - lightCenter; + float along = dot(normalize(toPixel + vec2(0.0001)), lightCone.xy); + float cone = smoothstep(lightCone.z, mix(lightCone.z, 1.0, 0.35), along); + float spill = 0.12 * (1.0 - smoothstep(0.0, 0.12, sqrt(distanceSq))); + falloff *= max(cone, spill); + if (falloff <= 0.0005) { + discard; + } + } + + // Soft shadow: march from this pixel to the light through the occupancy grid. Skip the ends so lit terrain surfaces and lights embedded in terrain still work. + vec2 fromWorld = rteScreenOrigin + gl_FragCoord.xy; + vec2 toWorld = rteScreenOrigin + lightCenter; + float transmittance = 1.0; + for (int i = 1; i < c_ShadowSteps; ++i) { + float t = (float(i) / float(c_ShadowSteps)) * 0.9 + 0.05; + vec2 sampleWorld = mix(fromWorld, toWorld, t); + // Lights sitting on or in the ground (flares, lamps on walls) shouldn't be shadowed by the terrain right around them. + if (distance(sampleWorld, toWorld) < 8.0) { + continue; + } + float occupancy = texture(rteOccupancy, sampleWorld / rteGridWorldSize).r; + transmittance *= 1.0 - occupancy * rteShadowStrength; + } + + if (rteBeamMode) { + // A faint haze along the beam, brightest near the lamp. + FragColor = vec4(lightColor.rgb * vec3(1.0, 0.92, 0.78) * falloff * transmittance * 0.035, 1.0); + return; + } + + // Edges facing the light catch more of it, edges facing away get less. Normalized so flat surfaces are lit exactly as without normals. + float shading = 1.0; + vec4 normalSample = texture(rteNormals, gl_FragCoord.xy / rteScreenSize); + if (normalSample.a > 0.25) { + vec3 normal = normalize(normalSample.xyz * 2.0 - 1.0); + vec3 toLight = normalize(vec3(lightCenter - gl_FragCoord.xy, lightRadius * 0.25)); + shading = mix(1.0, clamp(dot(normal, toLight) / max(toLight.z, 0.05), 0.0, 2.5), rteEdgeLighting); + } + + FragColor = vec4(lightColor.rgb * falloff * transmittance * shading, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/PointLight.vert b/Data/Base.rte/Shaders/Lighting/PointLight.vert new file mode 100644 index 0000000000..59da90e07a --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/PointLight.vert @@ -0,0 +1,29 @@ +// PointLight.vert +// One quad per dynamic light, positioned in player screen pixels (Y down, which is also the render target's row order). +#version 330 core + +in vec3 rteVertexPosition; // Screen pixel position of this corner. +in vec2 rteVertexTexUV; // Position within the light's quad, -1..1. +in vec4 rteVertexColor; // Linear RGB light color pre-multiplied by intensity. +in vec3 rteNormal; // Light center in screen pixels (xy) and radius (z). +in vec3 rteLightCone; // Cone lights: direction (xy, screen space) and cosine of the half angle (z, below -1 for an all-round light). + +out vec2 localPos; +out vec4 lightColor; +out vec2 lightCenter; +out float lightRadius; +out vec2 screenPos; +out vec3 lightCone; + +uniform vec2 rteScreenSize; + +void main() { + vec2 ndc = (rteVertexPosition.xy / rteScreenSize) * 2.0 - 1.0; + gl_Position = vec4(ndc, 0.0, 1.0); + localPos = rteVertexTexUV; + lightColor = rteVertexColor; + lightCenter = rteNormal.xy; + lightRadius = rteNormal.z; + screenPos = rteVertexPosition.xy; + lightCone = rteLightCone; +} diff --git a/Data/Base.rte/Shaders/Lighting/Precipitation.frag b/Data/Base.rte/Shaders/Lighting/Precipitation.frag new file mode 100644 index 0000000000..0b368988e9 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Precipitation.frag @@ -0,0 +1,41 @@ +// Precipitation.frag +// Rain streaks and snow flakes, lit by the sky. Hidden under the terrain skyline, so there's no rain under overhangs or in caves. +#version 330 core + +in vec2 quadPos; +in vec2 worldPos; +in float dropAlpha; + +out vec4 FragColor; + +uniform sampler2D rteSkyline; // 1 row, R = grid row of the first solid cell in each column, normalized by grid height. +uniform vec2 rteGridWorldSize; +uniform int rteType; +uniform vec3 rteSkyLight; // Linear sky light, time of day included. +uniform float rteIntensity; +uniform sampler2D rteDynamicLight; // Screen space dynamic light: drops glint where lights catch them. +uniform vec2 rteScreenSize; + +void main() { + vec2 gridUV = worldPos / rteGridWorldSize; + float skyline = texture(rteSkyline, vec2(fract(gridUV.x), 0.5)).r; + if (gridUV.y > skyline) { + discard; + } + float alpha = dropAlpha * rteIntensity; + vec3 color; + if (rteType == 2) { + // Soft round flake. + alpha *= 1.0 - smoothstep(0.35, 0.5, length(quadPos - 0.5)); + color = vec3(0.9, 0.93, 1.0); + } else { + // Streak that fades towards its tail. + alpha *= quadPos.y * 1.3; + color = vec3(0.7, 0.78, 0.9); + } + vec3 dynamicLight = texture(rteDynamicLight, gl_FragCoord.xy / rteScreenSize).rgb; + vec3 light = rteSkyLight + dynamicLight * 1.5; + // Lit drops read better: let bright light push the alpha up a little. + alpha *= clamp(0.6 + dot(light, vec3(0.333)) * 0.8, 0.6, 1.6); + FragColor = vec4(color * light, clamp(alpha, 0.0, 1.0)); +} diff --git a/Data/Base.rte/Shaders/Lighting/Precipitation.vert b/Data/Base.rte/Shaders/Lighting/Precipitation.vert new file mode 100644 index 0000000000..30e7b40765 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Precipitation.vert @@ -0,0 +1,53 @@ +// Precipitation.vert +// Procedural rain/snow: every 6 vertices make one drop's quad, positioned from a hash of its index. No vertex buffers. +// Drops live in a world space field that repeats every screen-sized cell, so they stay put relative to the world as the camera moves. +#version 330 core + +out vec2 quadPos; // 0..1 across and along the drop. +out vec2 worldPos; +out float dropAlpha; + +uniform vec2 rteScreenSize; +uniform vec2 rteScreenOrigin; // World position of the screen's top left pixel. +uniform float rteTime; +uniform int rteType; // 1 rain, 2 snow. +uniform float rteWind; // Horizontal speed, pixels per second. + +float Hash(float n) { + return fract(sin(n * 12.9898) * 43758.5453); +} + +void main() { + int drop = gl_VertexID / 6; + int corner = gl_VertexID % 6; + vec2 cornerPos = vec2(corner == 1 || corner == 2 || corner == 4 ? 1.0 : 0.0, corner == 2 || corner == 4 || corner == 5 ? 1.0 : 0.0); + + float seedA = Hash(float(drop) + 0.37); + float seedB = Hash(float(drop) * 1.731 + 4.1); + float seedC = Hash(float(drop) * 0.913 + 9.7); + + bool snow = rteType == 2; + float fallSpeed = snow ? mix(30.0, 60.0, seedC) : mix(520.0, 760.0, seedC); + vec2 velocity = vec2(rteWind * (snow ? 0.6 : 1.0), fallSpeed); + + // A repeating field slightly larger than the screen. + vec2 fieldSize = rteScreenSize + vec2(64.0); + vec2 fieldPos = vec2(seedA, seedB) * fieldSize + velocity * rteTime; + if (snow) { + fieldPos.x += sin(rteTime * mix(0.6, 1.4, seedC) + seedA * 30.0) * 12.0; + } + vec2 relative = mod(fieldPos - rteScreenOrigin, fieldSize) - vec2(32.0); + vec2 head = rteScreenOrigin + relative; + + vec2 direction = normalize(velocity); + vec2 side = vec2(-direction.y, direction.x); + float length = snow ? 2.0 : mix(7.0, 13.0, seedC); + float width = snow ? 2.0 : 1.0; + vec2 position = head - direction * length * (1.0 - cornerPos.y) + side * width * (cornerPos.x - 0.5); + + worldPos = position; + quadPos = cornerPos; + dropAlpha = snow ? mix(0.55, 0.9, seedA) : mix(0.25, 0.5, seedA); + vec2 screenPos = position - rteScreenOrigin; + gl_Position = vec4((screenPos / rteScreenSize) * 2.0 - 1.0, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/RCCascade.frag b/Data/Base.rte/Shaders/Lighting/RCCascade.frag new file mode 100644 index 0000000000..7699fbef92 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/RCCascade.frag @@ -0,0 +1,82 @@ +// RCCascade.frag +// One cascade of 2D radiance cascades. Cascade i has a probe every 2^(i+1) pixels, each with 4^(i+1) directions stored in its 2^(i+1) square block of texels, +// and traces the interval of distances [L(4^i - 1)/3, L(4^(i+1) - 1)/3]. Each ray's radiance is merged with the next cascade's rays continuing in the same +// directions, interpolated between its four nearest probes. Merging from the top cascade down gives every pixel light from the whole screen with soft occlusion. +#version 330 core + +out vec4 FragColor; + +uniform sampler2D rteScene; // RCScene output: RGB light, A opaque. +uniform sampler2D rteUpper; // The next cascade, already merged. +uniform int rteCascade; +uniform int rteCascadeCount; +uniform vec2 rteTargetSize; // Size of the cascade textures and the scene, in pixels. +uniform float rteBaseInterval; + +const float c_TwoPi = 6.28318530718; + +vec4 UpperRay(ivec2 probe, int direction, int upperBlock, ivec2 upperGrid) { + probe = clamp(probe, ivec2(0), upperGrid - 1); + ivec2 texel = probe * upperBlock + ivec2(direction % upperBlock, direction / upperBlock); + return texelFetch(rteUpper, texel, 0); +} + +void main() { + ivec2 texel = ivec2(gl_FragCoord.xy); + int block = 1 << (rteCascade + 1); + int directionCount = block * block; + ivec2 probe = texel / block; + ivec2 local = texel - probe * block; + int direction = local.y * block + local.x; + vec2 probeCenter = (vec2(probe) + 0.5) * float(block); + + float angle = (float(direction) + 0.5) * c_TwoPi / float(directionCount); + vec2 rayDirection = vec2(cos(angle), sin(angle)); + float scaleStart = (pow(4.0, float(rteCascade)) - 1.0) / 3.0; + float scaleEnd = (pow(4.0, float(rteCascade + 1)) - 1.0) / 3.0; + float start = rteBaseInterval * scaleStart; + float end = rteBaseInterval * scaleEnd; + + // March the interval. Rays only need to find the first surface; terrain is thick, so coarse steps on long intervals are fine. + float length = end - start; + int steps = int(clamp(ceil(length), 2.0, 16.0)); + float stepLength = length / float(steps); + vec3 radiance = vec3(0.0); + float transmittance = 1.0; + for (int i = 0; i < steps; ++i) { + vec2 position = probeCenter + rayDirection * (start + (float(i) + 0.5) * stepLength); + if (any(lessThan(position, vec2(0.0))) || any(greaterThanEqual(position, rteTargetSize))) { + // Off screen: nothing more to find this way. + transmittance = 0.0; + break; + } + vec4 scene = texelFetch(rteScene, ivec2(position), 0); + if (scene.a > 0.5) { + radiance += scene.rgb * transmittance; + transmittance = 0.0; + break; + } + // Glowing air (fire, lamps) adds light along the ray, in proportion to how much of it the ray crosses. + radiance += scene.rgb * transmittance * min(stepLength, 3.0) * 0.35; + } + + if (transmittance > 0.0 && rteCascade < rteCascadeCount - 1) { + int upperBlock = block * 2; + ivec2 upperGrid = ivec2(rteTargetSize) / upperBlock; + vec2 upperPosition = probeCenter / float(upperBlock) - 0.5; + ivec2 base = ivec2(floor(upperPosition)); + vec2 weight = upperPosition - vec2(base); + vec3 merged = vec3(0.0); + for (int corner = 0; corner < 4; ++corner) { + ivec2 offset = ivec2(corner & 1, corner >> 1); + vec3 sum = vec3(0.0); + for (int child = 0; child < 4; ++child) { + sum += UpperRay(base + offset, direction * 4 + child, upperBlock, upperGrid).rgb; + } + float cornerWeight = (offset.x == 1 ? weight.x : 1.0 - weight.x) * (offset.y == 1 ? weight.y : 1.0 - weight.y); + merged += sum * 0.25 * cornerWeight; + } + radiance += merged * transmittance; + } + FragColor = vec4(radiance, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/RCIrradiance.frag b/Data/Base.rte/Shaders/Lighting/RCIrradiance.frag new file mode 100644 index 0000000000..db0c079a02 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/RCIrradiance.frag @@ -0,0 +1,16 @@ +// RCIrradiance.frag +// Averages each cascade 0 probe's 4 directions into the light arriving at that point. One texel per probe (quarter resolution); sampled with linear filtering. +#version 330 core + +out vec4 FragColor; + +uniform sampler2D rteCascade0; + +void main() { + ivec2 probe = ivec2(gl_FragCoord.xy); + vec3 sum = vec3(0.0); + for (int i = 0; i < 4; ++i) { + sum += texelFetch(rteCascade0, probe * 2 + ivec2(i & 1, i >> 1), 0).rgb; + } + FragColor = vec4(sum * 0.25, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/RCScene.frag b/Data/Base.rte/Shaders/Lighting/RCScene.frag new file mode 100644 index 0000000000..470decda4a --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/RCScene.frag @@ -0,0 +1,32 @@ +// RCScene.frag +// Radiance cascades input, at half resolution: RGB = light a ray picks up when it hits this pixel, A = whether the pixel stops rays. +// Glows are light sources. Foreground terrain and objects block light, and re-emit some of the light that reached them last frame (one bounce per frame, so it builds up to several). +#version 330 core + +out vec4 FragColor; + +uniform sampler2D rteEmissive; // Full resolution glows, gamma space. +uniform sampler2D rteSceneDepth; // Full resolution depth. +uniform sampler2D rtePreviousLit; // Half resolution lit scene of the previous frame, linear HDR. +uniform vec2 rtePreviousOffset; // How far the screen moved since then, in full resolution pixels. +uniform vec2 rteTargetSize; +uniform vec2 rteScreenSize; +uniform float rteForegroundDepth; +uniform float rteEmissiveIntensity; +uniform float rteBounce; +uniform bool rteHavePrevious; + +void main() { + vec2 uv = gl_FragCoord.xy / rteTargetSize; + vec3 emission = pow(texture(rteEmissive, uv).rgb, vec3(2.2)) * rteEmissiveIntensity; + float depth = texture(rteSceneDepth, uv).r; + float opaque = depth < rteForegroundDepth ? 1.0 : 0.0; + if (opaque > 0.0 && rteHavePrevious) { + vec2 previousUV = (gl_FragCoord.xy * (rteScreenSize / rteTargetSize) + rtePreviousOffset) / rteScreenSize; + if (all(greaterThanEqual(previousUV, vec2(0.0))) && all(lessThanEqual(previousUV, vec2(1.0)))) { + emission += min(texture(rtePreviousLit, previousUV).rgb, vec3(4.0)) * rteBounce; + } + } + // Glows (fire, explosions, lamps) don't block rays: rays passing through them pick up their light (see RCCascade.frag), so small burning particles don't cast shadows. + FragColor = vec4(emission, opaque); +} diff --git a/Data/Base.rte/Shaders/Lighting/Scorch.frag b/Data/Base.rte/Shaders/Lighting/Scorch.frag new file mode 100644 index 0000000000..93131d5f18 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Scorch.frag @@ -0,0 +1,38 @@ +// Scorch.frag +// Stamps a ragged soot mark into the world scorch map. Uses PointLight.vert with the scorch map as the "screen": lightColor.r is the darkness. +#version 330 core + +in vec2 localPos; +in vec4 lightColor; +in vec2 lightCenter; +in float lightRadius; +in vec2 screenPos; + +out vec4 FragColor; + +float Hash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); +} + +float Noise(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + vec2 u = f * f * (3.0 - 2.0 * f); + return mix(mix(Hash(i), Hash(i + vec2(1.0, 0.0)), u.x), mix(Hash(i + vec2(0.0, 1.0)), Hash(i + vec2(1.0, 1.0)), u.x), u.y); +} + +void main() { + float distance = length(localPos); + // Ragged edge: wobble the radius with noise around the mark. + float angle = atan(localPos.y, localPos.x); + vec2 seed = lightCenter * 0.137; + float raggedRadius = 0.7 + 0.3 * Noise(vec2(angle * 2.5, 0.0) + seed); + float mask = 1.0 - smoothstep(raggedRadius * 0.5, raggedRadius, distance); + // Speckle so it reads as soot rather than a flat disc. + float speckle = 0.7 + 0.3 * Noise(gl_FragCoord.xy * 0.9 + seed); + float darkness = lightColor.r * mask * speckle; + if (darkness <= 0.002) { + discard; + } + FragColor = vec4(darkness, 0.0, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/Shockwave.frag b/Data/Base.rte/Shaders/Lighting/Shockwave.frag new file mode 100644 index 0000000000..7da9caa214 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Shockwave.frag @@ -0,0 +1,26 @@ +// Shockwave.frag +// An expanding refraction ring, written as a screen space displacement (in pixels) that the final pass samples the scene through. +// Uses PointLight.vert: localPos is -1..1 across the quad (the ring's maximum radius), lightColor.r is the amplitude in pixels, lightColor.g the ring's progress 0..1. +#version 330 core + +in vec2 localPos; +in vec4 lightColor; +in vec2 lightCenter; +in float lightRadius; +in vec2 screenPos; + +out vec4 FragColor; + +void main() { + float distance = length(localPos); + float progress = lightColor.g; + if (distance >= 1.0 || distance < 1e-4) { + discard; + } + // A thin front that thickens and fades as it expands. + float width = mix(0.06, 0.18, progress); + float profile = exp(-pow((distance - progress) / width, 2.0)); + float amplitude = lightColor.r * (1.0 - progress) * (1.0 - progress); + vec2 displacement = (localPos / distance) * amplitude * profile; + FragColor = vec4(displacement, 0.0, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/SmokeScatter.frag b/Data/Base.rte/Shaders/Lighting/SmokeScatter.frag new file mode 100644 index 0000000000..ce0b14d860 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/SmokeScatter.frag @@ -0,0 +1,29 @@ +// SmokeScatter.frag +// Light scattered by smoke: wherever there's smoke, the light passing through it (fire, muzzle flashes, lamps, bounced light) lights the smoke up, +// so glows bleed into the smoke around them. Added onto the lit HDR scene. +#version 330 core + +out vec4 FragColor; + +uniform sampler2D rteDensity; // Half resolution smoke density, linear filtered. +uniform sampler2D rteDynamicLight; // Screen space dynamic light. +uniform sampler2D rteGI; // Radiance cascades light, quarter resolution. +uniform float rteGIStrength; +uniform vec2 rteScreenSize; +uniform float rteStrength; +uniform vec3 rteSmokeColor; // Linear tint of scattered light. + +void main() { + vec2 uv = gl_FragCoord.xy / rteScreenSize; + float density = texture(rteDensity, uv).r; + if (density <= 0.002) { + discard; + } + // Smoke this thick is opaque to the eye; scattering saturates rather than growing without bound. + float coverage = 1.0 - exp(-density * 1.5); + vec3 light = texture(rteDynamicLight, uv).rgb; + if (rteGIStrength > 0.0) { + light += texture(rteGI, uv).rgb * rteGIStrength; + } + FragColor = vec4(min(light, vec3(4.0)) * rteSmokeColor * coverage * rteStrength, 1.0); +} diff --git a/Data/Base.rte/Shaders/Lighting/Stain.frag b/Data/Base.rte/Shaders/Lighting/Stain.frag new file mode 100644 index 0000000000..fd0ae1bed0 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Stain.frag @@ -0,0 +1,28 @@ +// Stain.frag +// Stamps a splat of blood, oil or water into the world stain map. Uses PointLight.vert with the stain map as the "screen": +// lightColor.rgb is the stain color, lightColor.a its opacity. +#version 330 core + +in vec2 localPos; +in vec4 lightColor; +in vec2 lightCenter; +in float lightRadius; +in vec2 screenPos; + +out vec4 FragColor; + +float Hash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); +} + +void main() { + float distance = length(localPos); + // An irregular splat: a soft core plus a few droplets around it. + vec2 seed = lightCenter * 0.173; + float wobble = 0.75 + 0.25 * Hash(floor(gl_FragCoord.xy) + seed); + float mask = 1.0 - smoothstep(0.45 * wobble, 0.9 * wobble, distance); + if (mask <= 0.01) { + discard; + } + FragColor = vec4(lightColor.rgb, lightColor.a * mask); +} diff --git a/Data/Base.rte/Shaders/Lighting/Tonemap.frag b/Data/Base.rte/Shaders/Lighting/Tonemap.frag new file mode 100644 index 0000000000..5e0ab108d9 --- /dev/null +++ b/Data/Base.rte/Shaders/Lighting/Tonemap.frag @@ -0,0 +1,102 @@ +// Tonemap.frag +// Combines the HDR scene with bloom, applies exposure, a gentle shoulder that leaves normal brightness untouched (so the pixel art keeps its palette), vignette, and converts back to gamma space. +#version 330 core + +in vec2 textureUV; +out vec4 FragColor; + +uniform sampler2D rteScene; +uniform sampler2D rteBloom; +uniform vec2 rteScreenSize; +uniform float rteBloomIntensity; +uniform float rteExposure; +uniform float rteShoulderStart; // Linear values below this pass through unchanged. +uniform float rteVignette; +uniform float rteSaturation; +uniform sampler2D rteDistortion; // Screen space displacement in pixels (shockwaves). +uniform sampler2D rteEmissive; // Glows in gamma space; hot areas shimmer. +uniform bool rteDistortionEnabled; +uniform float rteHeatHaze; // Shimmer in pixels at full heat. +uniform float rteTime; // Seconds of sim time. +uniform int rteDebugView; // 5 shows the distortion. +uniform float rteTemperature; +uniform float rteTint; +uniform float rteContrast; +uniform vec3 rteShadowTint; +uniform vec3 rteHighlightTint; +uniform float rteFilmGrain; +uniform float rteChromaticAberration; +uniform sampler2D rteAdaptedLuminance; // 1x1, the adapted average log luminance of the scene. +uniform float rteAutoExposure; // Strength, 0 off. +uniform float rteAutoExposureLow; // Average luminance range where exposure stays put. +uniform float rteAutoExposureHigh; + +vec3 Shoulder(vec3 color) { + if (rteShoulderStart >= 0.999) { + return color; + } + vec3 over = max(color - rteShoulderStart, vec3(0.0)); + float range = 1.0 - rteShoulderStart; + vec3 compressed = rteShoulderStart + range * (1.0 - exp(-over / range)); + return mix(color, compressed, step(rteShoulderStart, color)); +} + +void main() { + vec2 uv = gl_FragCoord.xy / rteScreenSize; + vec2 offsetPixels = vec2(0.0); + if (rteDistortionEnabled) { + // Shockwaves push the scene outwards. + offsetPixels -= texture(rteDistortion, uv).xy; + // Heat haze: sample the glows a little below, so the shimmer rises above hot things. + float heat = dot(texture(rteEmissive, uv + vec2(0.0, 5.0) / rteScreenSize).rgb, vec3(0.3333)); + if (heat > 0.01) { + vec2 p = gl_FragCoord.xy * vec2(0.21, 0.13) + vec2(0.0, rteTime * 4.0); + vec2 wobble = vec2(sin(p.y * 1.7 + sin(p.x * 0.9) * 2.0), cos(p.x * 1.3 + sin(p.y * 1.1 + rteTime) * 2.0)); + offsetPixels += wobble * min(heat, 1.0) * rteHeatHaze; + } + } + if (rteDebugView == 5) { + FragColor = vec4(abs(offsetPixels) * 0.25, 0.0, 1.0); + return; + } + vec2 sampleUV = uv + offsetPixels / rteScreenSize; + vec3 color; + if (rteChromaticAberration > 0.0) { + // Fringing grows towards the edges of the screen. + vec2 fringe = (uv - 0.5) * 2.0 * rteChromaticAberration / rteScreenSize; + color = vec3(texture(rteScene, sampleUV + fringe).r, texture(rteScene, sampleUV).g, texture(rteScene, sampleUV - fringe).b); + } else { + color = texture(rteScene, sampleUV).rgb; + } + color += texture(rteBloom, sampleUV).rgb * rteBloomIntensity; + color *= rteExposure; + if (rteAutoExposure > 0.0) { + // Only scenes far outside the usual brightness range adapt, so the pixel art keeps its look the rest of the time. + float average = exp(texture(rteAdaptedLuminance, vec2(0.5)).r); + float target = clamp(average, rteAutoExposureLow, rteAutoExposureHigh); + color *= clamp(pow(target / max(average, 0.0001), rteAutoExposure), 0.5, 2.0); + } + + float luminance = dot(color, vec3(0.2126, 0.7152, 0.0722)); + color = max(mix(vec3(luminance), color, rteSaturation), vec3(0.0)); + + color = Shoulder(color); + + // Grading, in linear space: white balance, split toning, contrast. + color *= vec3(1.0 + 0.12 * rteTemperature, 1.0 - 0.08 * rteTint, 1.0 - 0.12 * rteTemperature) * vec3(1.0, 1.0 + 0.04 * rteTint, 1.0); + float gradeLuminance = clamp(dot(color, vec3(0.2126, 0.7152, 0.0722)), 0.0, 1.0); + color *= mix(rteShadowTint, rteHighlightTint, smoothstep(0.05, 0.6, gradeLuminance)); + color = max(pow(max(color, vec3(0.0)) / 0.18, vec3(rteContrast)) * 0.18, vec3(0.0)); + + vec2 centered = uv - 0.5; + color *= 1.0 - rteVignette * smoothstep(0.35, 0.85, length(centered * vec2(rteScreenSize.x / rteScreenSize.y, 1.0))); + + vec3 outputColor = pow(clamp(color, 0.0, 1.0), vec3(1.0 / 2.2)); + if (rteFilmGrain > 0.0) { + // Grain in gamma space, strongest in the mid tones, changing every frame. + float noise = fract(sin(dot(gl_FragCoord.xy + fract(rteTime * 13.17) * 100.0, vec2(12.9898, 78.233))) * 43758.5453) - 0.5; + float midtones = 1.0 - abs(dot(outputColor, vec3(0.333)) * 2.0 - 1.0); + outputColor += noise * rteFilmGrain * 0.12 * midtones; + } + FragColor = vec4(clamp(outputColor, 0.0, 1.0), 1.0); +} diff --git a/Data/Base.rte/Shaders/ScreenBlit.frag b/Data/Base.rte/Shaders/ScreenBlit.frag index 48b5e42ba6..3d22323120 100644 --- a/Data/Base.rte/Shaders/ScreenBlit.frag +++ b/Data/Base.rte/Shaders/ScreenBlit.frag @@ -5,7 +5,6 @@ in vec2 textureUV; out vec4 FragColor; uniform sampler2D rteTexture; -uniform sampler2D rteGUITexture; vec4 textureAA(sampler2D tex, vec2 uv) { vec2 texsize = vec2(textureSize(tex, 0)); @@ -17,8 +16,9 @@ vec4 textureAA(sampler2D tex, vec2 uv) { } void main() { - vec4 guiColor = textureAA(rteGUITexture, vec2(textureUV.x, -textureUV.y)); - float guiSolid = float((guiColor.r + guiColor.g + guiColor.b) > 0.0); - float blendRatio = max(guiColor.a, guiSolid); - FragColor = (textureAA(rteTexture, textureUV) * (1.0F - blendRatio)) + guiColor * blendRatio; + vec4 guiColor = textureAA(rteTexture, vec2(textureUV.x, textureUV.y)); + if (guiColor.rgb == vec3(0.0)) { + discard; + } + FragColor = vec4(guiColor.rgb, 1.0); } diff --git a/Data/Base.rte/Shaders/ScreenBlit.vert b/Data/Base.rte/Shaders/ScreenBlit.vert index a5f67d44a3..5e2fc3088e 100644 --- a/Data/Base.rte/Shaders/ScreenBlit.vert +++ b/Data/Base.rte/Shaders/ScreenBlit.vert @@ -5,10 +5,7 @@ in vec2 rteVertexTexUV; out vec2 textureUV; -uniform mat4 rteView; -uniform mat4 rteProjection; - void main() { - gl_Position = rteProjection * rteView * vec4(rteVertexPosition, 1.0); + gl_Position = vec4(rteVertexPosition, 1.0); textureUV = rteVertexTexUV; } diff --git a/Data/Base.rte/Shaders/ScreenUpscale.frag b/Data/Base.rte/Shaders/ScreenUpscale.frag new file mode 100644 index 0000000000..e663cde4bd --- /dev/null +++ b/Data/Base.rte/Shaders/ScreenUpscale.frag @@ -0,0 +1,20 @@ +#version 330 core +// Scales the finished frame up to the window. "Sharp bilinear": every source pixel becomes an evenly sized block, and only the one screen pixel +// on the boundary between blocks is blended. At non-integer scales (e.g. 2.5x) plain nearest filtering makes pixel columns alternately 2 and 3 +// screen pixels wide, which makes pixel art and text look uneven; this keeps it crisp and regular. Needs the texture to be linearly filtered. + +in vec2 textureUV; + +out vec4 FragColor; + +uniform sampler2D rteTexture; + +void main() { + vec2 textureSizePixels = vec2(textureSize(rteTexture, 0)); + vec2 texel = textureUV * textureSizePixels; + vec2 seam = floor(texel + 0.5); + // fwidth is how many source pixels one screen pixel covers, so this works at any scale without knowing the window size. + texel = (texel - seam) / fwidth(texel) + seam; + texel = clamp(texel, seam - 0.5, seam + 0.5); + FragColor = vec4(texture(rteTexture, texel / textureSizePixels).rgb, 1.0); +} diff --git a/Data/Base.rte/Shaders/ScreenUpscaleMasked.frag b/Data/Base.rte/Shaders/ScreenUpscaleMasked.frag new file mode 100644 index 0000000000..d30dff01e1 --- /dev/null +++ b/Data/Base.rte/Shaders/ScreenUpscaleMasked.frag @@ -0,0 +1,38 @@ +#version 330 core +// Scales a GUI layer whose transparent pixels are pure black up to the window, over what's already there (alpha blended). +// Same even "sharp bilinear" pixels as ScreenUpscale.frag, but the blend across pixel boundaries treats black as transparent, +// so edges against transparency fade out instead of darkening. + +in vec2 textureUV; + +out vec4 FragColor; + +uniform sampler2D rteTexture; + +void main() { + vec2 textureSizePixels = vec2(textureSize(rteTexture, 0)); + vec2 texel = textureUV * textureSizePixels; + vec2 seam = floor(texel + 0.5); + texel = (texel - seam) / fwidth(texel) + seam; + texel = clamp(texel, seam - 0.5, seam + 0.5); + + // Manual bilinear filtering between the four nearest pixels, with coverage from the color key. + vec2 position = texel - 0.5; + ivec2 base = ivec2(floor(position)); + vec2 weight = position - vec2(base); + ivec2 maxCoord = ivec2(textureSizePixels) - 1; + vec3 colors[4]; + float coverage[4]; + for (int i = 0; i < 4; ++i) { + ivec2 coord = clamp(base + ivec2(i & 1, i >> 1), ivec2(0), maxCoord); + colors[i] = texelFetch(rteTexture, coord, 0).rgb; + coverage[i] = colors[i] == vec3(0.0) ? 0.0 : 1.0; + } + // Black pixels contribute nothing, so this is the premultiplied color. + vec3 color = mix(mix(colors[0], colors[1], weight.x), mix(colors[2], colors[3], weight.x), weight.y); + float alpha = mix(mix(coverage[0], coverage[1], weight.x), mix(coverage[2], coverage[3], weight.x), weight.y); + if (alpha <= 0.0) { + discard; + } + FragColor = vec4(color / alpha, alpha); +} diff --git a/Data/Base.rte/Shaders/Terrain.frag b/Data/Base.rte/Shaders/Terrain.frag new file mode 100644 index 0000000000..f21372a039 --- /dev/null +++ b/Data/Base.rte/Shaders/Terrain.frag @@ -0,0 +1,214 @@ +// Terrain.frag +// Blit8.frag for the terrain color layers, plus scorch marks left by explosions and the glow of freshly blasted, cooling terrain. +// Keep the shared parts in sync with Blit8.frag. +#version 330 core + +in vec2 textureUV; +in vec4 vertexColor; +in vec2 worldPos; +layout(location = 0) out vec4 FragColor; +layout(location = 1) out vec4 NormalOut; + +uniform sampler2D rteTexture; +uniform sampler2D rtePalette; +uniform bool rteIndexed; +uniform vec4 rteColor; +uniform bool rteReplaceColor; +uniform sampler2D rteEmissivePalette; // 256x1, R = how much each palette color glows, G = whether it's a vegetation color. + +uniform bool rteLivingWorld; +uniform float rteTime; // Seconds. +uniform float rteWind; // Pixels per second, negative blows left. +uniform float rteSnowCover; // 0..1, how deep snow lies on exposed ground. +uniform float rteWetness; // 0..1, how wet exposed ground is. +uniform sampler2D rteSkyline; // 1 row, R = grid row of the first solid cell in each column, normalized by grid height. +uniform vec2 rteGridWorldSize; +const int c_MaxBlasts = 8; +uniform int rteBlastCount; +uniform vec4 rteBlasts[c_MaxBlasts]; // xy = world position, z = wavefront radius, w = strength. + +uniform sampler2D rteScorch; // World space, R = soot darkness. +uniform vec2 rteScorchWorldSize; // World size covered by the scorch map. +uniform bool rteScorchEnabled; +uniform sampler2D rteStains; // World space liquid stains, same cells as the scorch map: RGB color, A coverage. +uniform bool rteStainsEnabled; + +const int c_MaxHotSpots = 16; +uniform int rteHotSpotCount; +uniform vec4 rteHotSpots[c_MaxHotSpots]; // xy = world position, z = radius, w = heat 0..1 (cools over time). + +float Coverage(vec2 uv) { + if (rteIndexed) { + return texture(rteTexture, uv).r > 0.0 ? 1.0 : 0.0; + } + return texture(rteTexture, uv).a > 0.5 ? 1.0 : 0.0; +} + +vec3 EdgeNormal(vec2 uvDx, vec2 uvDy) { + vec2 texel = 1.0 / vec2(textureSize(rteTexture, 0)); + vec2 dx = vec2(texel.x, 0.0); + vec2 dy = vec2(0.0, texel.y); + vec2 gradient = vec2(Coverage(textureUV + dx) - Coverage(textureUV - dx), Coverage(textureUV + dy) - Coverage(textureUV - dy)); + gradient += 0.5 * vec2(Coverage(textureUV + 2.0 * dx) - Coverage(textureUV - 2.0 * dx), Coverage(textureUV + 2.0 * dy) - Coverage(textureUV - 2.0 * dy)); + float edge = clamp(length(gradient), 0.0, 1.0); + if (edge <= 0.0) { + return vec3(0.0, 0.0, 1.0); + } + mat2 uvPerPixel = mat2(uvDx / texel, uvDy / texel); + vec2 screenGradient = transpose(uvPerPixel) * gradient; + if (dot(screenGradient, screenGradient) < 1e-8) { + return vec3(0.0, 0.0, 1.0); + } + vec2 outward = -normalize(screenGradient); + return normalize(vec3(outward * edge, 1.0 - 0.6 * edge)); +} + +bool IsVegetation(float colorIndex) { + return colorIndex > 0.0 && texture(rteEmissivePalette, vec2(colorIndex, 0.0)).g > 0.5; +} + +// How far vegetation at this point leans, in pixels per pixel of height: wind with gusts rolling across, plus blast waves pushing outwards as they pass. +float Lean(vec2 world) { + float wind = clamp(rteWind / 150.0, -1.5, 1.5); + float gust = 0.6 * sin(rteTime * 1.3 + world.x * 0.045) + 0.4 * sin(rteTime * 2.9 + world.x * 0.13 + world.y * 0.05); + float lean = wind * 0.45 + gust * (0.15 + 0.25 * abs(wind)); + for (int i = 0; i < rteBlastCount; ++i) { + vec2 toPoint = world - rteBlasts[i].xy; + float distance = length(toPoint); + float front = exp(-pow((distance - rteBlasts[i].z) / 14.0, 2.0)); + lean += sign(toPoint.x) * front * rteBlasts[i].w * 0.35; + } + return lean; +} + +// Whether a point of terrain is exposed to the open sky (not under an overhang or in a cave). +bool UnderOpenSky(vec2 world) { + vec2 gridUV = world / rteGridWorldSize; + float skyline = texture(rteSkyline, vec2(fract(gridUV.x), 0.5)).r; + return gridUV.y < skyline + 10.0 / rteGridWorldSize.y; +} + +void main() { + vec2 uvDx = dFdx(textureUV); + vec2 uvDy = dFdy(textureUV); + float emissive = 0.0; + vec2 texel = 1.0 / vec2(textureSize(rteTexture, 0)); + if (rteIndexed) { + float colorIndex = texture(rteTexture, textureUV).r; + if (rteLivingWorld) { + // Vegetation sways: count how far up a stalk this pixel is, lean the stalk that much, and draw whatever vegetation lands here. + float height = 0.0; + for (int k = 1; k <= 6; ++k) { + if (!IsVegetation(texture(rteTexture, textureUV + vec2(0.0, texel.y * float(k))).r)) { + break; + } + height += 1.0; + } + float offset = clamp(floor(Lean(worldPos) * height * 0.35 + 0.5), -3.0, 3.0); + if (offset != 0.0) { + float sourceIndex = texture(rteTexture, textureUV - vec2(offset * texel.x, 0.0)).r; + if (IsVegetation(sourceIndex)) { + colorIndex = sourceIndex; + } else if (IsVegetation(colorIndex)) { + // The blade moved away from here and nothing replaced it. + discard; + } + } + } + FragColor = texture(rtePalette, vec2(colorIndex, 0.0F)) * vertexColor; + emissive = texture(rteEmissivePalette, vec2(colorIndex, 0.0F)).r; + } else { + FragColor = texture(rteTexture, textureUV) * vertexColor; + } + if (FragColor.a == 0.0) { + discard; + } else if (rteReplaceColor) { + FragColor.rgba = rteColor; + } + vec3 normal = EdgeNormal(uvDx, uvDy); + + // Liquids (water, lava, acid), flagged in the emissive palette's B channel. + if (rteIndexed) { + float colorIndex = texture(rteTexture, textureUV).r; + float liquid = texture(rteEmissivePalette, vec2(colorIndex, 0.0)).b; + if (liquid > 0.1) { + bool surface = texture(rteEmissivePalette, vec2(texture(rteTexture, textureUV - vec2(0.0, texel.y)).r, 0.0)).b < 0.1; + float wave = sin(worldPos.x * 0.35 + rteTime * 2.3) * sin(worldPos.y * 0.21 - rteTime * 1.7) + 0.5 * sin(worldPos.x * 0.11 - rteTime * 0.9); + if (liquid < 0.45) { + // Water: see-through (an animated dither lets the background show), shimmering, with a bright surface line. + float dither = fract(sin(dot(floor(worldPos) + floor(rteTime * 6.0) * 0.37, vec2(12.9898, 78.233))) * 43758.5453); + if (!surface && dither < 0.32) { + discard; + } + FragColor.rgb *= 0.9 + 0.15 * wave; + if (surface) { + FragColor.rgb = mix(FragColor.rgb, vec3(0.75, 0.9, 1.0), 0.55 + 0.2 * wave); + } + } else if (liquid < 0.8) { + // Lava: slow bright currents, crusting darker at the surface. + float flow = 0.5 + 0.5 * sin(worldPos.x * 0.18 + worldPos.y * 0.07 + rteTime * 1.1 + wave); + FragColor.rgb = mix(vec3(0.75, 0.15, 0.02), vec3(1.0, 0.75, 0.25), flow); + if (surface) { + FragColor.rgb *= 0.55; + } + emissive = max(emissive, 0.6 + 0.4 * flow); + } else { + // Acid: a sickly glow with drifting bubbles. + float bubble = step(0.985, fract(sin(dot(floor(worldPos + vec2(0.0, rteTime * 8.0)), vec2(41.3, 289.1))) * 7593.1)); + FragColor.rgb = mix(FragColor.rgb, vec3(0.85, 1.0, 0.45), bubble * 0.8 + (surface ? 0.35 : 0.0)); + emissive = max(emissive, 0.25 + bubble * 0.5); + } + } + } + + if (rteLivingWorld && (rteSnowCover > 0.01 || rteWetness > 0.01) && UnderOpenSky(worldPos)) { + // How deep below the surface this pixel is: snow lies a few pixels deep on top, rain wets the top layer. + float depth = 99.0; + for (int k = 1; k <= 5; ++k) { + if (Coverage(textureUV - vec2(0.0, texel.y * float(k))) < 0.5) { + depth = float(k); + break; + } + } + float snowDepth = rteSnowCover * 5.0; + if (depth <= snowDepth) { + float brightness = dot(FragColor.rgb, vec3(0.299, 0.587, 0.114)); + vec3 snow = vec3(0.86, 0.9, 0.98) * (0.85 + 0.25 * brightness); + FragColor.rgb = mix(FragColor.rgb, snow, depth <= snowDepth - 1.0 ? 0.95 : 0.6); + } else if (depth <= 3.0 && rteWetness > 0.01) { + FragColor.rgb *= mix(vec3(1.0), vec3(0.68, 0.7, 0.78), rteWetness); + } + } + + if (rteStainsEnabled) { + // Liquid stains tint the terrain but keep its texture: the stain's color at the terrain's brightness. + vec4 stain = texture(rteStains, worldPos / rteScorchWorldSize); + float brightness = dot(FragColor.rgb, vec3(0.299, 0.587, 0.114)); + vec3 stained = stain.rgb * (0.55 + 0.9 * brightness); + FragColor.rgb = mix(FragColor.rgb, stained, clamp(stain.a, 0.0, 0.85)); + } + + if (rteScorchEnabled) { + // Soot: darken towards a warm black, keeping a little of the original color so the texture still reads. + float scorch = texture(rteScorch, worldPos / rteScorchWorldSize).r; + FragColor.rgb = mix(FragColor.rgb, FragColor.rgb * vec3(0.22, 0.19, 0.17), scorch); + + // Freshly blasted terrain glows and cools down, brightest at exposed edges. + float heat = 0.0; + for (int i = 0; i < rteHotSpotCount; ++i) { + vec2 toSpot = worldPos - rteHotSpots[i].xy; + float falloff = 1.0 - smoothstep(rteHotSpots[i].z * 0.35, rteHotSpots[i].z, length(toSpot)); + heat = max(heat, falloff * rteHotSpots[i].w); + } + if (heat > 0.0) { + // Only exposed surfaces glow (the crater rim), as embers: per pixel speckle so it never reads as a flat disc. + float exposure = smoothstep(0.02, 0.35, 1.0 - normal.z); + float speckle = fract(sin(dot(floor(worldPos), vec2(12.9898, 78.233))) * 43758.5453); + heat *= exposure * (0.35 + 0.65 * speckle); + vec3 glowColor = mix(vec3(0.9, 0.18, 0.02), vec3(1.0, 0.75, 0.3), heat * heat); + FragColor.rgb = mix(FragColor.rgb, glowColor, clamp(heat * 1.2, 0.0, 0.95)); + emissive = max(emissive, heat); + } + } + NormalOut = vec4(normal * 0.5 + 0.5, 0.5 + 0.5 * emissive); +} diff --git a/Data/Base.rte/Shaders/TerrainLayer.vert b/Data/Base.rte/Shaders/TerrainLayer.vert new file mode 100644 index 0000000000..371b47046e --- /dev/null +++ b/Data/Base.rte/Shaders/TerrainLayer.vert @@ -0,0 +1,23 @@ +// TerrainLayer.vert +// Blit8.vert plus the world position, so terrain layers can sample world space effect maps (scorch marks, cooling hot spots). +#version 330 core + +in vec3 rteVertexPosition; +in vec2 rteVertexTexUV; +in vec4 rteVertexColor; + +out vec2 textureUV; +out vec4 vertexColor; +out vec2 worldPos; + +uniform mat4 rteView; +uniform mat4 rteProjection; +uniform mat4 rteTransform; + +void main() { + vec4 world = rteTransform * vec4(rteVertexPosition, 1.0); + gl_Position = rteProjection * rteView * world; + textureUV = rteVertexTexUV; + vertexColor = rteVertexColor; + worldPos = world.xy; +} diff --git a/Data/Base.rte/Shaders/UnseenSoft.frag b/Data/Base.rte/Shaders/UnseenSoft.frag new file mode 100644 index 0000000000..4e42949992 --- /dev/null +++ b/Data/Base.rte/Shaders/UnseenSoft.frag @@ -0,0 +1,35 @@ +// UnseenSoft.frag +// Fog of war with soft edges. The unseen layer is a low resolution indexed bitmap (0 = seen, anything else = unseen), upscaled over the scene. +// Coverage is bilinearly filtered by hand (indices can't be filtered by the hardware), eased, and lightly dithered at the edge so it stays pixel-art friendly. +#version 330 core + +in vec2 textureUV; +in vec4 vertexColor; +layout(location = 0) out vec4 FragColor; +layout(location = 1) out vec4 NormalOut; + +uniform sampler2D rteTexture; + +float Coverage(ivec2 texel, ivec2 size) { + texel = clamp(texel, ivec2(0), size - 1); + return texelFetch(rteTexture, texel, 0).r > 0.0 ? 1.0 : 0.0; +} + +void main() { + ivec2 size = textureSize(rteTexture, 0); + vec2 position = textureUV * vec2(size) - 0.5; + ivec2 base = ivec2(floor(position)); + vec2 fraction = fract(position); + float coverage = mix(mix(Coverage(base, size), Coverage(base + ivec2(1, 0), size), fraction.x), mix(Coverage(base + ivec2(0, 1), size), Coverage(base + ivec2(1, 1), size), fraction.x), fraction.y); + coverage = smoothstep(0.0, 1.0, coverage); + + // Dither in 2x2 pixel blocks, only near the edge. + float noise = fract(sin(dot(floor(gl_FragCoord.xy / 2.0), vec2(12.9898, 78.233))) * 43758.5453); + float edge = 1.0 - abs(coverage * 2.0 - 1.0); + coverage = clamp(coverage + (noise - 0.5) * 0.35 * edge, 0.0, 1.0); + if (coverage <= 0.01) { + discard; + } + FragColor = vec4(0.0, 0.0, 0.0, coverage * vertexColor.a); + NormalOut = vec4(0.5, 0.5, 1.0, 0.5); +} diff --git a/Documentation/LightingAndEffects.md b/Documentation/LightingAndEffects.md new file mode 100644 index 0000000000..9d44a2d6e1 --- /dev/null +++ b/Documentation/LightingAndEffects.md @@ -0,0 +1,236 @@ +# Lighting and Visual Effects + +This branch adds scene lighting and post-processing on top of the GPU renderer. Everything works automatically with existing content. These are the knobs for players, modders and activity scripters. + +## How it works, briefly + +Each player screen is drawn as before. Before the HUD goes on top, it is then: + +1. **Lit.** Light comes from four sources: + - **Sky light.** It spreads through a low-resolution copy of the terrain, so caves get darker the deeper they go, and digging lets light in. + - **Ambient light.** It applies where no sky light reaches. + - **Glow lights.** Every glow effect (`ScreenEffect`) casts light in its own colour, with soft shadows from terrain. + - **Lights you add.** These come from INI or Lua (see below). + + All of it is computed in HDR. At full daylight the original art is reproduced unchanged. +2. **Edge shading.** Sprites and terrain get automatic edge normals from their outlines, so edges facing a light catch it. +3. **Emissive pixels.** Glows, the palette's glow yellows (gold sparkle, tracers) and freshly blasted terrain shine regardless of the surrounding light. +4. **Post-processing**, in this order: + - Heat haze and explosion shockwaves + - God rays into caves + - Rain or snow + - Bloom + - Highlight compression, colour grading and vignette + +## Settings (Settings.ini) + +All colours are linear `R G B` (1 = neutral). Most of these can be tuned live in the **Graphics Lab**. To open it, set `ShowGraphicsLab = 1`, use *Debug Options → Show Graphics Lab*, or call `DebugMan:ShowGraphicsLab()` from Lua. It has a *Save to Settings.ini* button. The in-game *Video* settings have toggles for Lighting, Bloom and Extra Effects (heat haze, shockwaves, scorch marks, embers). Turning all three off gives the classic look. + +Press **F6** in game or in the menus for the **World Debug** window: time of day (with Midnight/Dawn/Noon/Dusk/Night presets and an option to let time pass), weather, the lighting toggles, interior/cave light, the playfield light floor, sky light, exposure, god rays, haze, debug views and game speed. It has buttons for the Graphics Lab, performance stats and saving. While any debug window is open the mouse is released from aiming so the window can be used, and clicks on a window don't reach the game. + +**Effects particles** (`EffectsParticles`, a multiplier where 0 turns them off) add sparks, dust and debris chips from explosions and from fast hits on terrain. Hard materials (integrity 100 or more) throw sparks; soft ones throw dust. They are purely visual: the simulation spawns them, but they move in simulation time with their own random numbers and only read the terrain. Sparks glow (emissive), chips are lit in the scene, and dust is lit over the scene. They're part of Extra Effects and the quality presets. + +**Smoke scattering** (`SmokeScattering`, where 0 turns it off): smoke particles, meaning Air-material MOSParticles with negative gravity, are splatted into a half-resolution density buffer. The light passing through them, from dynamic lights and radiance cascades, is added where the smoke is, so fire, muzzle flashes and lamps glow through smoke. The smoke sprites themselves are unchanged. + +**Living world** (`LivingWorld`): +- Vegetation in the terrain (green-dominant palette colours) sways with the wind and gusts, more towards the tips, and is pushed outwards as blast waves pass. +- Snow builds up a few pixels deep on ground under open sky while it snows, over about a minute, and melts afterwards. +- Rain darkens exposed surfaces and they dry slowly. + +All of it happens in the terrain shader; the terrain bitmaps are never changed. + +**Radiance cascades GI** (`RadianceCascades = 1`, which the Ultra preset turns on) is 2D global illumination at half resolution. Glows such as fire, explosions and lamps light their surroundings with soft occlusion from terrain and objects. Lit surfaces pass on part of their light (`GIBounce`), building up to several bounces over a few frames. It replaces the screen-space indirect light, costs about 0.3 ms, and `GIStrength` scales it. The Graphics Lab has a "GI only" view. + +At night, stars and a moon appear on the sky layers. These are the background layers with little or no parallax, and both fade out toward the horizon. Heavy rain (intensity above 0.5) brings occasional lightning that briefly lights the sky. Auto exposure (`AutoExposure`, `AutoExposureLow`, `AutoExposureHigh`) only kicks in when the average scene brightness leaves the normal range, such as a screen-filling flash or near-total darkness. + +**Spreading fire** (`TerrainFire` in the gameplay settings, also in F6): +- **What lights it:** explosions and fire, flame and napalm particles light flammable terrain. +- **How it burns:** grass and vegetation flare up and burn away; wood, cloth and rubber burn slowly from the surface in, leaving ash; oil burns fast. +- **How it spreads:** fire needs air, so only exposed pixels catch, and it climbs upward more readily than sideways. +- **Weather:** rain (and less so snow) makes it spread less and burn out sooner. Wind makes it spread downwind, and in dry weather carries embers a few pixels downwind to start new fires. +- **Water** splashing on it puts it out. +- **What it gives off:** burning areas give light, smoke, embers and flames that hurt whoever stands in them. +- **Determinism:** it is part of the simulation and stays deterministic. It ticks in fixed sim steps with its own seeded random numbers, and ignitions are sorted before they're applied. +- **Saves:** burning terrain is saved in saved games and keeps burning when loaded. + +**Collapsing terrain** (`TerrainCollapse`, a gameplay setting, also in F6): +- **When it checks:** half a second and again a second and a half after a big explosion, it looks around the crater for pieces of terrain no longer touching anything. +- **What falls:** pieces up to 2500 pixels drop as rigid chunks, accelerating until they land with a puff of dust. +- **What stays up:** built structures (concrete, metal, military materials) and anything touching the edge of the world. +- **Determinism:** it is part of the simulation and deterministic, with sorted checks and no random numbers. + +**Flowing liquids** (`FlowingLiquids`, a gameplay setting, also in F6): +- **What flows:** Water (material 160), Lava (165), Acid (167) and Oil in the terrain fall, run sideways and pool. +- **Drops join in:** a liquid particle that settles into the terrain flows too, if it's drawn in its liquid's own colour (so blood, which uses the Water material in red, stays put). A burning particle that settles as something flammable, such as napalm fuel, sets it alight. +- **Water** puts out fire. It is drawn see-through and shimmering, with a bright surface line. +- **Lava** flows slowly, glows, sets flammable terrain alight, hurts whatever touches its surface, and sets to stone in a puff of steam where it meets water. +- **Acid** slowly eats soft terrain and is used up doing it. +- **Oil** flows more slowly and burns where it pools. It isn't drawn shimmering, because its colour is shared with many sprites. +- **Saves:** moving liquid is saved in saved games. +- **Cost:** liquid at rest costs nothing. Only pixels that moved recently, or were disturbed by explosions or collapses, are simulated. +- **Determinism:** it is part of the simulation and deterministic. +- **Lua:** `SceneMan:PourLiquid(Vector, radius, "Water"|"Lava"|"Acid"|"Oil")`, `SceneMan:GetFlowingLiquidPixelCount()`, `SceneMan:GetBurningPixelCount()`. +- **Liquid weapons:** the **Napalm Flamer** sprays burning fuel that pools and burns, the **Water Cannon** knocks people back and puts fires out, and the **Acid Sprayer** lobs globs that sting and eat soft ground. + +**Smoke and gas** (`SmokeBlocksSight`, a gameplay setting, also in F6): +- Thick smoke blocks sight: units can't spot enemies through it, and the AI loses track of targets hidden by it. Thin wisps don't. +- It's worked out each sim update from the smoke particles on a coarse grid, so it is deterministic. Lua: `SceneMan:SmokeBlocksSight(from, to)`. +- **Smoke Grenade:** a thick screen lasting about ten seconds. The AI doesn't throw it. +- **Toxic Gas Grenade:** a green cloud that hurts anyone inside it for about ten seconds, and blocks sight too. + +**Burning units** (`BurningUnits`, a gameplay setting, also in F6): +- Flames, napalm, burning ground and lava set units alight. A burning unit takes damage, panics and runs, and sets grass and anyone it bumps into alight. +- It burns out after a few seconds. Water puts it out sooner (a pool, the Water Cannon or heavy rain). +- Water putting out fire, and lava meeting water, throws up **steam** that rises and blocks sight like smoke. Only real water drops douse fire: blood is made of water too, but doesn't. +- **Fuel Barrel:** leaks oil that flows where it's shot, and explodes in burning fuel when fire reaches it or it's shot to pieces. It's in the build menu and the item list. Lua: `SceneMan:IsBurningNear(pos, radius)`, `SceneMan:GetBurningUnitCount()`. + +**Weather** also changes gameplay: rain and snow damp fire (see above), snow slows walking by up to 15%, and wind drives fire downwind. The weather stays fixed through a game. It comes from the scene, the scenario setup's **Time** and **Weather** buttons, or the player's settings. + +**Night gameplay**: +- **Headlamps** (`Headlamps`): after dark, soldiers wear headlamps that throw a cone of light where they aim, with a faint visible beam. +- **AI sight** (`NightAffectsAI`): AI sees only about half as far at night without a headlamp, or 80% with one. This changes gameplay. +- **Flare:** a buyable grenade that burns red for about 45 seconds. +- **Cone lights:** available to code via `PostProcessMan::RegisterConeLight`. +- **Lights near terrain:** a light no longer shadows itself on the terrain right around it, so a lamp lying in grass still lights up its surroundings. + +**Sandbox** (game mode and F7 tools): +- **The game mode:** pick **Sandbox** in the scenario menu. You play as a god with a free camera (right-drag or WASD), every unit is run by the AI, including your own side's, and the game never ends. +- **Spawning:** units from every faction (with squad size, loadout and orders), brains and items. Each spawn list has a search box. The default loadout uses each faction's guns and plain grenades. +- **Building:** "Build bunkers with the build menu" opens the game's own build menu in the middle of play. It places straight into the world, and the money never runs out. Choose Done in its pie menu, or press F7, to go back. There are four sides, in the game's own team colours: Red, Green, Blue and Yellow. +- **Brains are optional:** place one for any side to give the others something to hunt and that side something to defend. +- **Orders:** + - Hold position, attack nearest enemy, hunt brains, patrol, go to the side's rally point, or do nothing. + - Given when units spawn, or to a whole side from the Orders tab. "Everyone attack!" starts a free-for-all. + - Units told to attack pick a new target when theirs dies. +- **Pause AI** (top of the sandbox window, also in F6): every AI-run unit stands still and holds fire, so you can set up armies, bunkers and traps, then untick it to let them loose. Physics, fire and liquids carry on. Craft keep flying, units you control still move, and a banner shows while it's paused. A new game starts with the AI running. Lua: `SandboxPauseAI(true/false)`. +- **Drop squad:** a squad arrives by dropship or rocket over the point you click, then the craft flies off. +- **Command and Follow:** with Command, drag a box to select units, then click the ground to send them there or an enemy to attack it. Follow locks the camera onto a unit; "Follow the action" (World tab) keeps the camera on the closest fighting. Moving the camera yourself stops following. +- **Auto battle (Orders tab):** give sides a faction and a budget. Each buys waves of its faction's units and drops them in to attack until one side is left, and the winner is announced. Lua: `SandboxAutoBattleSide(side, faction, budget)`, `SandboxStartAutoBattle()`. +- **Take control:** click a unit to play it yourself. F7 (or the unit dying) puts you back in the god view. +- **Paint and Boom:** fire, water, lava, acid, oil, smoke and toxic gas; dig, or add earth, sand, grass, wood or concrete; grenade blasts, big bombs, napalm and lightning strikes. +- **World tab:** weather, wind, time of day, slow motion, a free camera toggle, and putting out all fire. +- **In other games:** F7 opens the same tools as a debug panel. +- **Lua:** + - `SandboxDo(tool, position, side, order, count, presetName)` uses any tool from a script. For example, `SandboxDo("Units", pos, 1, 1, 4, "Soldier Light")` spawns four Red soldiers told to attack. + - `SandboxCountUnits(side)` counts a side's units, and `SandboxBuildMode(true/false)` opens or closes the build menu. + +**Modern HUD** (`ModernHUD`, in Video settings and F6) is drawn crisply at window resolution on top of the classic HUD. It is off by default. It adds: +- A minimap of the terrain, your view and every unit, coloured by team. +- Health and ammo bars for the unit you control. +- A feed of units lost. + +Press **F8** for **Photo Mode**: +- Freezes time and hides the HUD and screen text. +- Free camera: drag with the right mouse button, or use the arrow keys. +- Look sliders: time of day, weather, exposure, grading, bloom, haze, god rays, film grain, chromatic aberration. +- Screenshots go to the ScreenShots folder, as shown in the window or at 2x, 3x or 4x the internal resolution. +- Look changes are undone when you close it, unless "Keep look changes" is ticked. +- F6 and F8 work even while time is frozen. + +`LightingSettingsVersion` records which defaults a settings file was written with. When the lighting defaults change a lot (version 2 made interiors and caves much brighter), saved values from older files are ignored so players get the new look. + +| Key | Default | What it does | +|---|---|---| +| `LightingEnabled` | 1 | Scene lighting on or off. | +| `LightingAmbient` | 0.13 0.13 0.16 | Light where no sky light reaches (cave backgrounds). | +| `LightingSkyColor` | 1 0.98 0.95 | Light under open sky at noon. | +| `LightingForegroundAmbient` | 0.4 0.39 0.42 | Minimum light on diggable terrain and objects, so the playfield stays readable underground. Dims at night. | +| `LightingAirFalloff` / `LightingSolidFalloff` | 0.96 / 0.6 | How far sky light reaches through air and into terrain. | +| `TimeOfDay` | 12 | Hours (0–24). Noon is the classic look; dawn, dusk and night tint the sky, haze and light. | +| `DayLengthMinutes` | 0 | Length of a full day/night cycle in minutes. 0 keeps the time fixed. | +| `AtmosphereHaze` / `AtmosphereColor` | 0.18 / 0.62 0.74 0.95 | Distant background layers fade into the atmosphere, based on their parallax. | +| `GodRays` / `GodRayDecay` | 0.7 / 0.965 | Light shafts from the sky through gaps in the terrain. | +| `WeatherType` | 0 | 0 clear, 1 rain, 2 snow. Precipitation doesn't fall under overhangs or in caves. | +| `WeatherIntensity` / `Wind` | 0.6 / 60 | How heavy the rain or snow is, and its horizontal speed in px/s. | +| `LightingGlowIntensity` / `LightingGlowRadiusScale` | 2.5 / 8 | Brightness and reach of the light that glow effects cast. | +| `LightingShadowStrength` | 0.85 | How much terrain blocks dynamic lights. | +| `LightingEmissiveIntensity` | 1.4 | Brightness of glow sprites. | +| `LightingEdgeLighting` | 1 | Strength of the automatic edge normals. | +| `LightingIndirect` | 0.35 | One bounce of light: lit surfaces bleed their colour onto their surroundings, mostly in shadowed areas and caves. | +| `Embers` | 1 | Embers rising from fire and other warm glows. | +| `DistortionEnabled` / `HeatHaze` / `ShockwaveStrength` | 1 / 1.5 / 1 | Heat haze above hot things, and refraction rings from explosions. | +| `ScorchMarks` | 1 | Explosions leave soot on terrain, and the crater rim glows while it cools. | +| `BloomEnabled` / `BloomThreshold` / `BloomIntensity` | 1 / 0.9 / 0.5 | Bloom. | +| `PostExposure` / `PostSaturation` / `PostVignette` | 1 / 1.05 / 0.15 | Final image. | +| `GradeTemperature` / `GradeTint` / `GradeContrast` | 0 / 0 / 1 | White balance and contrast. | +| `GradeShadowTint` / `GradeHighlightTint` | 1 1 1 / 1 1 1 | Split toning. | +| `FilmGrain` / `ChromaticAberration` | 0 / 0 | Film grain (0–1) and lens fringing (pixels). | + +## Scene atmosphere (INI) + +A Scene can set its own time of day and weather. These override the player's settings while the Scene is loaded, and every Scene load restores the player's own atmosphere first. + +```ini +AddScene = Scene + PresetName = My Frozen Valley + TimeOfDay = 17.5 // Hours. Dusk. + DayLengthMinutes = 0 // 0 freezes the time. + WeatherType = 2 // 0 clear, 1 rain, 2 snow + WeatherIntensity = 0.7 + Wind = -90 + ... +``` + +## Lights on objects (INI) + +Any `MovableObject` (actors, devices, particles, gibs…) can cast a light. The light moves, rotates and flips with the object, and terrain casts soft shadows from it. + +```ini +AddDevice = HDFirearm + PresetName = Flashlight Rifle + ... + LightColor = Color + R = 255 + G = 235 + B = 200 + LightRadius = 180 // Pixels, where the light reaches zero. 0 = no light. + LightIntensity = 1.2 // 0 = no light. + LightFlicker = 0.1 // 0..1 random flicker, nice for fire and torches. + LightOffset = Vector // Offset from the object's position, rotated and flipped with it. + X = 10 + Y = -2 +``` + +Any `MovableObject` can also be drawn translucent or glowing: + +```ini + RenderBlendMode = Additive // Normal (default), Additive (energy, plasma, fire), or Screen (soft light) + RenderOpacity = 0.6 // 0..1 +``` + +Glow effects (`ScreenEffect`) already cast light automatically, in the average colour of their glow image. You don't need to add lights for muzzle flashes, explosions, thrusters or fire. + +## Lua + +```lua +-- Lights on any MovableObject: +actor.LightRadius = 140 +actor.LightIntensity = 0.9 +actor:SetLightColor(255, 230, 190) -- 0-255 +actor.LightOffset = Vector(0, -12) +actor.LightFlicker = 0.0 +shield.RenderBlendMode = 1 -- 0 normal, 1 additive, 2 screen +shield.RenderOpacity = 0.5 +print(actor.LightRed, actor.LightGreen, actor.LightBlue) + +-- A light for this frame only. Call every update to keep it on: +PostProcessMan:AddLight(position, radius, r, g, b, intensity) + +-- Atmosphere for scripted scenes: +PostProcessMan.TimeOfDay = 6.8 -- dawn +PostProcessMan.DayLengthMinutes = 20 -- 0 to freeze the time +PostProcessMan.WeatherType = 1 -- 0 clear, 1 rain, 2 snow +PostProcessMan.WeatherIntensity = 0.9 +PostProcessMan.Wind = -120 +PostProcessMan.LightingEnabled = true +PostProcessMan:SetSkyColor(255, 250, 240) -- 0-255, gamma space +PostProcessMan:SetAmbientColor(90, 90, 110) +PostProcessMan:SetColorGrade(-0.4, 0.0, 1.1) -- temperature, tint, contrast +PostProcessMan:SetSplitToning(0.85, 0.95, 1.15, 1.1, 1.0, 0.9) -- shadow rgb, highlight rgb +``` + +Atmosphere changed from Lua (time, weather, sky and ambient colours, grade) lasts until the next Scene loads. It is never saved over the player's own settings. + +## Shaders + +The lighting shaders live in `Data/Base.rte/Shaders/Lighting/`. The sprite shader `Base.rte/Shaders/Blit8.frag` and the terrain shader `Base.rte/Shaders/Terrain.frag` write a second output: a screen-space normal in RGB, and in alpha 0 for "nothing drawn" or 0.5–1 for "drawn, with emissive strength 0–1". Custom shaders used for scene drawing should write it too. diff --git a/FEATURE_PROPOSAL.md b/FEATURE_PROPOSAL.md new file mode 100644 index 0000000000..4372c7da8f --- /dev/null +++ b/FEATURE_PROPOSAL.md @@ -0,0 +1,127 @@ +# Cortex Command: Next Phase Proposal (features, visuals, physics) + +The visual modernisation roadmap is done (see `MODERNISATION_PLAN.md`). This is the proposal for what came next. It was approved and is now mostly implemented; see **Status** at the end. + +**Ground rules (unchanged):** +- Keep the pixel-art identity. +- Never break determinism, the 8-bit material bitmaps or palette semantics. +- Keep Lua and INI mods working. +- Anything that changes the simulation (not just how it looks) is marked **[sim]**. Those items need extra care for saved games and multiplayer. + +Effort: S = a day or two, M = about a week, L = several weeks. + +--- + +## 1. Physics and simulation + +| # | Feature | What it adds | Effort | Notes | +|---|---|---|---|---| +| 1.1 | **Fire that spreads and burns terrain** [sim] | Wood, vegetation and fuel materials catch fire, spread, burn out to ash and cave in. Napalm and incendiaries become tactical. | M | Builds on the existing scorch, ember and hot-spot visuals. Runs as a sparse "burning cells" list on the material bitmap, so it stays deterministic. | +| 1.2 | **Collapsing terrain** [sim] | Terrain cut off from support breaks away and falls as debris, so tunnels and bunkers can be undermined. | M | Connected-component check only around craters, not the whole scene. Detached chunks become falling MOSRotating debris. | +| 1.3 | **Fluids: water, lava, acid** [sim] | New flowing materials (falling-sand style) settle, pool and flow through tunnels. Actors swim, lava ignites things, water puts out fire. | L | The biggest and most exciting item. Needs new material properties, a flow pass and buoyancy for MOs. | +| 1.4 | **Smoke and gas volumes** [sim, optional] | A coarse smoke/gas grid that drifts with the wind, blocks sight lines and AI vision, and allows toxic gas grenades. | M | The visual half (lit volumetric smoke, 2.1) can ship first without touching the sim. | +| 1.5 | **Wind** [sim, optional] | The weather wind also pushes light particles, smoke and (optionally) projectiles. | S | Visual-only by default; a gameplay toggle for the sim effect. | + +## 2. Visual upgrades + +| # | Feature | What it adds | Effort | +|---|---|---|---| +| 2.1 | **Lit volumetric smoke** | Smoke and dust write into a density buffer that the lights and radiance cascades scatter through. Muzzle flashes light up their own smoke, and fires glow through it. | M | +| 2.2 | **GPU effects particles** | Thousands of purely visual sparks, dust puffs, shell casings and debris with no simulation cost. Makes explosions and impacts much meatier. | M | +| 2.3 | **Water rendering** (with 1.3) | Refraction, surface highlights, light caustics, murk with depth. | M | +| 2.4 | **Metal and wet surfaces** | Per-material shininess: bunker walls and metal glint under lights; wet terrain in rain. | M | +| 2.5 | **Living world** | Grass and vegetation sway in the wind and flatten in blast waves; snow builds up on ledges during snowfall; puddles in rain. | M | +| 2.6 | **Blood and impact decals** | Blood and oil splatter stain terrain and fade over time (decal map like the scorch marks). Optional and gore-toggleable. | S | +| 2.7 | **Camera zoom** | Smooth zoom out for a tactical view, and in for drama. The engine already has camera zoom plumbing; the renderer and lighting need to support it. | L | + +## 3. Gameplay and UX features + +| # | Feature | What it adds | Effort | +|---|---|---|---| +| 3.1 | **Modern HUD option** | Minimap, crisp health and ammo bars, objective markers, damage numbers and a kill feed, using the new high-resolution text layer. The classic HUD stays the default. | M | +| 3.2 | **Night gameplay** [sim] | Darkness limits AI sight. Actors carry flashlights and headlamps that cast real light cones. Flares light up the battlefield. | M | +| 3.3 | **Photo mode** | Pause, free camera, effect sliders (time of day, weather, grading, depth of field), screenshots at any resolution. Builds on the F6 window. | S | +| 3.4 | **Scenario atmosphere picker** | Choose time of day, weather and day length when starting a scenario, saved per activity. | S | +| 3.5 | **Controller and Steam Deck polish** | Radial menus sized for gamepads, UI scale setting, Deck-friendly defaults. | M | +| 3.6 | **Mod tooling** | Lighting, atmosphere and fluid properties in the scene editor; Lua access to fluids and fire; a "lighting preview" toggle in editors. | M | + +## 4. Tech and platform + +| # | Item | Why | Effort | +|---|---|---|---| +| 4.1 | **SDL_GPU backend** (staged plan in `MODERNISATION_PLAN.md`) | Vulkan, Metal and DX12 reach, macOS support. | L | +| 4.2 | **Multithreaded sim helpers** | Parallelise the per-cell passes that 1.1–1.4 add (fire, fluids, gas), so the new physics stays fast on big scenes. | M | +| 4.3 | **Linux/meson build check and packaging** | Make sure everything new builds on Linux; produce a release zip with Settings defaults. | S | + +--- + +## Recommended order + +1. **Phase A: "Battlefield feels alive" (visual, low risk):** 2.2 GPU effects particles, 2.1 lit volumetric smoke, 2.6 decals, 2.5 living world, 3.3 photo mode. Big look-and-feel jump, no sim changes, about 4–5 weeks. +2. **Phase B: "Fire and ruin" (first sim features):** 1.1 spreading fire, 1.2 collapsing terrain, 1.5 wind. These pair with the effects from A and change how battles play. About 3–4 weeks, with the multiplayer/save checks. +3. **Phase C: "Water and night":** 1.3 fluids plus 2.3 water rendering, 3.2 night gameplay with flashlights. The headline new mechanics. About 6–8 weeks. +4. **Phase D: "Reach":** 3.1 modern HUD, 3.5 controller and Deck polish, 2.7 camera zoom, 4.1 SDL_GPU. Whenever wider distribution becomes the goal. + +Each phase ends with golden images, soak tests and a playtest like this round. + +--- + +## Status (implemented) + +Everything below is built, committed and verified: golden images pass, and a soak test with every system on (stormy night battle) holds memory flat. On the stress scene, everything on gives about 210 FPS (271 before Phase A, 230 before the atlas). + +**Phase A: battlefield feels alive (visual only)** +- **2.2 Effects particles:** sparks, dust and debris chips from explosions and fast terrain hits. + - Render only, with their own random numbers. + - Sparks are emissive streaks; debris is lit; dust is lit over the scene. +- **2.1 Light scattering in smoke:** fire, flashes and lamps glow through smoke. +- **2.6 Stains:** blood and oil stain terrain, in a world-space decal map. +- **2.5 Living world:** + - Vegetation sways with the wind and bends in blasts. + - Snow settles on exposed ground while it snows, and melts after. + - Rain darkens exposed ground. +- **3.3 Photo mode (F8):** + - Freeze, free camera, look sliders. + - Screenshots at window resolution or 2–4x internal resolution. + +**Phase B: fire and ruin (changes the simulation, deterministic)** +- **1.1 Spreading fire:** + - Grass and vegetation burn away; wood, cloth and rubber burn to ash; oil burns fast. + - Explosions and fire particles light it. + - Flames hurt; burning areas give light, smoke and embers; water puts it out. +- **1.2 Collapsing terrain:** detached pieces fall as rigid chunks after explosions. Concrete and metal hold. +- **1.5 Wind:** drives particles, embers, dust, vegetation and precipitation. It stays visual and doesn't push projectiles. + +**Phase C: water and night** +- **1.3 + 2.3 Flowing liquids:** + - Water, lava and acid flow and pool. + - Lava glows, ignites, hurts and turns to stone with water. + - Acid eats soft terrain. + - Shimmering, see-through water; glowing lava; bubbling acid. + - Lua: `SceneMan:PourLiquid`. +- **3.2 Night gameplay:** + - Headlamp cone lights with visible beams. + - AI sight shrinks at night (to half, or 80% with a lamp). + - New buyable Flare. + +**Phase D: reach** +- **3.1 Modern HUD (optional):** minimap, health and ammo bars, unit-loss feed. +- **3.5 Scaling (partly done):** debug UI and HUD scale with the window, with a crisp TTF font. Gamepad navigation is on in debug windows. Pixel-art menus were already scaled by the window multiplier and the sharp upscale. + +**Deferred, with reasons** +- **2.4 Metal and wet-surface shininess:** needs per-material specular data. Wet ground already darkens in rain; full speculars are a later polish item. +- **2.7 Camera zoom:** + - Every per-screen pass assumes a 1:1 scale: lighting, terrain upload regions, HUD, text overlay, fog. + - Supporting it means reworking each of them, and it's the riskiest remaining item. +- **4.1 SDL_GPU backend:** staged plan in `MODERNISATION_PLAN.md`. It brings no visual change on Windows. +- **4.2 Multithreaded sim helpers:** the fire and liquid passes only touch active cells and are cheap today. Worth revisiting if large liquid scenes get slow. +- **4.3 Linux/meson packaging:** new sources are added to the meson files but not built or tested on Linux here. +- **3.6 Editor tooling:** time of day and weather can be set per scene in INI and live in F6, but not from the scene editor. + +**Follow-up round** +- **Saved games:** loading a saved game works again; it had been failing because saved terrain images weren't found as textures. Burning terrain and moving liquid are now saved too. +- **3.4 Scenario atmosphere picker:** the scenario setup has **Time** (scene default, dawn, noon, dusk, night) and **Weather** (scene default, clear, rain, snow) buttons. +- **1.4 Gas volumes:** thick smoke blocks sight for spotting and for the AI's aim checks. Adds the Smoke Grenade and Toxic Gas Grenade. +- **Liquid weapons:** Napalm Flamer (burning fuel that pools and burns), Water Cannon (knockback, puts fires out) and Acid Sprayer. Liquid drops now join the flow when they settle, and oil is a flowing liquid. +- **Weather that matters:** rain and snow damp fire, snow slows walkers, and wind drives fire and embers downwind. +- **Renderer fix:** a preset that copies another and sets its own `SpriteFile` showed the original's frames on the GPU path. Fixed. diff --git a/MODERNISATION_PLAN.md b/MODERNISATION_PLAN.md new file mode 100644 index 0000000000..86eea118dd --- /dev/null +++ b/MODERNISATION_PLAN.md @@ -0,0 +1,592 @@ +# Cortex Command: Visual Modernisation Plan + +*Drafted 2026-10-03 against `development` @ `20dfb3ea5`.* + +--- + +## 1. The goal + +Keep what makes Cortex Command look like Cortex Command: +- crisp pixel art +- per-pixel destructible terrain +- chunky gibs +- the hand-drawn factions + +Then light it like a modern game. + +The target look is **"a pixel-art diorama under real light"**: +- dark caves that are actually dark +- muzzle flashes that light up the tunnel walls +- explosions that bloom, glow, and push heat haze outward +- sunlight that falls off as you dig down +- smoke that catches light +- soft fog of war + +Reference points: +- *Noita* (lit falling-sand world) +- *Dead Cells* / *Blasphemous* (lit pixel art, normal-mapped sprites) +- *Teardown* (destruction + light) +- radiance-cascade 2D GI demos + +Two principles: +1. **The pixels stay.** World albedo is still rendered at internal resolution and upscaled crisply. Lighting, bloom and post-processing are what get the "HD" treatment. +2. **Every existing asset gets better for free.** About 5,300 legacy sprites and 576 INI files cannot be redrawn. Everything new must work automatically on old content, with optional authored upgrades (normal maps, emissive maps, light definitions) layered on top. + +--- + +## 2. Where the engine actually is today + +The renderer is **halfway through a migration**, not a legacy Allegro relic: + +| Layer | State | +|---|---| +| Window / context | SDL3 + OpenGL 3.3 core (GLAD) | +| GPU drawing | Vendored and modified **raylib rlgl** (`Source/Renderer/raylib`): one immediate-mode batch, depth-sorted via injected `rlZDepth` | +| Colour model | **8-bit palette end to end.** Sprites and layers are uploaded as `GL_RED`; `Background.frag` looks up a 256×1 palette texture | +| Scene layers | GPU-drawn from CPU bitmaps. **The whole visible region of every layer is re-uploaded every frame, with no dirty tracking** (`SceneLayer.cpp:427-469`) | +| Movable objects (MOs) | **CPU-rasterised with Allegro** (`pivot_scaled_sprite`) into a scene-sized 8-bit bitmap **during the sim tick** (`MovableMan.cpp:1689`), then uploaded | +| HUD / GUI / menus | Allegro on the CPU into 8-bit and 32-bit screen bitmaps, uploaded **in full** every frame | +| Lighting | None. Only "glows": screen-blended RGB PNG sprites in one post pass (`PostProcessMan.cpp:326-358`) | +| Post-processing | That one glow pass. No bloom, HDR, tone mapping, grading, or distortion | +| Timing | Fixed 60 Hz sim, **no interpolation**, single render thread | + +What else exists: +- **Unmerged upstream work:** + - `origin/gpu-renderer` (HeliumAnt, 134 commits, stalled since 2026-03-28): a proper C++ renderer with RenderMan, RenderBatch, GLState, Camera and DrawCall, plus GPU HUD and split-screen. + - `origin/interpolated-render-redux` (Causeless, 2026-05-23): render interpolation decoupled from the sim tick. + - Two `dynamic-fow` branches: GPU fog of war with visibility triangles. +- **Bugs found in passing:** + - `GLResourceMan::UpdateDynamicBitmap` computes PBO offsets as sizes, not a running sum (`GLResourceMan.cpp:133-134`). Uploads of three or more regions corrupt each other. + - The same function's row copy ignores `bytesPerPixel` in its x offset (`:130`). That is wrong for 32bpp. + - Dot glows scan `BackBuffer8` (`PostProcessMan.cpp:389`), which no longer contains the scene, so they only fire on HUD pixels. + - The `Background` shader preset is cloned every frame (`FrameMan.cpp:815`), and the palette texture is rebuilt every frame. +- **Project health:** + - No stable release since v6.2.2 (Feb 2024). + - Two core developers, working in bursts; nothing merged since 2026-05-28. + - Not dead, but not going to block us either. + +### Hard constraints any new renderer must respect + +1. **Terrain material and FG/BG colour stay as CPU 8-bit bitmaps.** These are the source of truth for physics. The sim reads and writes them per pixel (about 160 call sites), in scenes up to 20000×8000. The GPU can only *mirror* them. +2. **Sprite frames stay available as CPU 8-bit data.** Hit tests, AtomGroup generation, silhouettes and terrain erase all use them. +3. **Palette indices carry meaning:** + - Index 0 is transparent. + - Material IDs are palette indices. + - Debris takes the colour index of the terrain it came from. + - Lua primitives take index colours. + - `LoadPalette` / `FadeInPalette` must keep working. +4. **Deterministic fixed-step sim.** Rendering must never feed back into the sim. +5. **Wrapping scenes** (X/Y), **up to 4-way split-screen**, and a resolution multiplier with letterboxing. +6. **The modding contract:** + - INI visual keys + - the 12 `DrawBlendMode`s + - `ScreenEffect` / `Effect*` keys + - INI `AddShader` presets + - the Lua primitive, `FrameMan` and `PostProcessMan` APIs +7. **All GL work stays on the main thread.** Sim tasks must be fenced before layers are read. + +--- + +## 3. Strategy decisions (decide these first) + +### 3.1 Build on `gpu-renderer`, don't start from scratch + +HeliumAnt's branch already does the hardest plumbing: +- a real batch / draw-call abstraction +- GL state tracking +- a camera with wrap and clip +- the GPU HUD + +It touches about 137 files in `Source/` (+3.4k / -0.7k lines) and is only 20 commits behind `development`. + +**Recommendation:** +1. Rebase it onto `development`. +2. Get it building and visually matching current output. +3. Merge it into our working branch as Phase 0. +4. Then layer `interpolated-render-redux` on top. + +This saves months and keeps us upstreamable. + +### 3.2 Fork vs upstream + +Work on our own long-lived branch (or fork), structured as upstreamable PRs: +- clang-format clean (CI uses clang-format-17) +- a CHANGELOG entry per change + +Reach out on Discord to HeliumAnt and Causeless early. They own the branches we're building on, and alignment avoids a hard fork. If upstream stays quiet, we ship our own builds. Note the licensing caveat in §10. + +### 3.3 Graphics API: stay on GL 3.3 now, abstract for SDL_GPU later + +- OpenGL is deprecated on macOS. +- SDL3 (already vendored, 3.2.10) ships **SDL_GPU**, which targets Vulkan, Metal and D3D12. +- Porting now would stall everything. + +**Recommendation:** everything new goes through the `gpu-renderer` abstraction (RenderMan / DrawCall / GLState), with **no raw `gl*` calls in feature code**. A later SDL_GPU backend then becomes a contained project (Phase 8). + +### 3.4 The rendering model we're moving to + +A small, explicit **render graph** of passes per view, replacing "everything into one batch, sorted by depth": + +``` + Sim tick ──► Snapshot draw list (prev+curr transforms) ──┐ + ▼ + ┌─────────────── per player view, internal res ────────────────────────┐ + │ 1. Albedo pass palette-resolved colour: BG layers, terrain BG, │ + │ MOs (GPU sprite batch), terrain FG │ + │ 2. Normal/Material terrain edge-normals, sprite normals (auto/authored)│ + │ + Emissive emissive sprites, glows, hot pixels, lasers │ + │ 3. Occluder/SDF from terrain material mirror (dirty-rect updated) │ + │ 4. Lighting sky light + point lights + emissive GI (HDR 16F) │ + │ 5. Composite albedo × light + emissive, fog of war, atmosphere │ + │ 6. FX distortion (heat/shockwave), lit smoke/particles │ + └───────────────────────────────────────────────────────────────────────┘ + 7. Post (HDR) bloom → exposure → tonemap → LUT grade → grain/vignette/CA + 8. Upscale crisp pixel upscale to window (+ optional CRT) + 9. UI native-resolution UI on top (not upscaled) +``` + +--- + +## 4. Phased roadmap + +Sizes are rough for one dedicated developer: **S** is about 1–2 weeks, **M** is about 3–6 weeks, **L** is about 2–3 months. Each phase ends playable and shippable. + +### Phase 0: Foundation and safety nets (M) + +Nothing visual yet. It makes everything else safe. + +- [ ] **Rebase and merge `gpu-renderer`** onto `development`, and fix whatever regressed. +- [ ] **Merge `interpolated-render-redux`.** Smooth motion above 60 Hz is the single cheapest "feels modern" upgrade. +- [ ] **Golden-image regression harness:** + - deterministic seed + - a scripted scene list, including wrap, split-screen and big scenes + - screenshot after N ticks + - perceptual diff against baselines + - run in CI on the Windows build +- [ ] **Profiling:** + - Tracy is already vendored (`tracy_*` meson options), so add GPU zones per pass + - a RenderDoc capture workflow, documented + - a frame-time HUD in the ImGui overlay (ImGui 1.91.9 is already in-tree) +- [ ] **Fix the bugs listed in §2:** + - `UpdateDynamicBitmap` offsets and the bpp row offset + - the shader clone every frame + - the palette rebuilt every frame + - dot glows reading the wrong buffer +- [ ] **ImGui "Graphics Lab" panel:** live-tweak every new parameter (lights, bloom, grading) and save to INI. This makes art direction iteration take minutes instead of rebuilds. + +### Phase 1: Finish the GPU migration (L) + +This is the prerequisite for lighting: everything must be on the GPU, drawn in the render phase. + +- [ ] **MOs off the CPU:** + - At `DrawnSimUpdate`, snapshot a draw list (sprite, frame, transform, flip, palette effects, previous transform for interpolation). + - Render it as a **GPU sprite batch**. + - Delete Allegro `pivot_scaled_sprite` from the visual path. Collision already rotates mathematically, so nothing breaks. + - The existing `g_DrawTrans` GPU path is a template for this. +- [ ] **Sprite atlas:** + - Pack all 8-bit sprite frames into R8 atlas pages at load time, via `GLResourceMan::GetStaticTextureFromBitmap`. + - That turns about one draw call per sprite into a handful per frame. +- [ ] **MOPixels and trails as GPU points/quads**, not `putpixel` into a scene-sized bitmap. Retire the scene-sized MO colour bitmap; keep it only for world dumps and `Atom` trail reads, behind a flag. +- [ ] **Dirty-rect terrain mirroring:** + - Terrain writes (`RegisterDrawing`, dislodge, crater, settle) mark tiles dirty. + - Only dirty `BigTexture` tiles upload, through the existing PBO path. + - This replaces the full visible-region re-upload, and is the biggest single performance win. +- [ ] **UI to the GPU:** + - Implement the GUI library's `GUIScreen` / `GUIBitmap` interface over the renderer instead of Allegro (`Source/GUI/Wrappers`). + - The pie menu, HUD and fonts become batched quads. + - This kills both full-screen texture uploads per frame. +- [ ] **Explicit passes.** Introduce the pass structure from §3.4 with only an albedo pass, so output matches today pixel for pixel. Verify with the golden harness. + +**Exit criterion:** pixel-identical (or approved-diff) output. CPU frame time is down substantially, and no Allegro drawing is left in the per-frame path. + +### Phase 2: Lighting (L). The headline feature. + +**2a. HDR light buffer and sky light (M)** +- Light accumulation in `RGBA16F`, composited as `albedo × light + emissive`. +- **Sky light:** + - A per-scene sun/sky colour and direction. + - Occluded by terrain, using a downward visibility pass over the material mirror. Use a coarse "skylight depth" texture updated from dirty tiles. + - Surface is lit and caves fall to ambient. Digging a hole lets light in. +- **Ambient:** per scene, with an optional **day/night cycle**. New `Scene` INI keys `SkyColor`, `AmbientColor`, `SunAngle`, `TimeOfDay`, `DayLength`. This directly answers upstream issue #195 (night battles). + +**2b. Dynamic point/spot lights with soft shadows (M)** +- **A `Light` component on any `MovableObject`**, in INI and Lua: + - `LightColor`, `LightRadius`, `LightIntensity` + - `LightFlicker`, `LightOffset`, `LightConeAngle` + - `CastsShadows` +- **Shadows from a terrain SDF:** + - Run a jump-flood pass over the occluder texture, recomputed only in dirty regions. + - Sphere-trace per light, which gives soft penumbrae for free. + - Lights are drawn as screen-space quads, clipped to radius. +- **Backwards-compat bridge.** Every existing `ScreenEffect` glow automatically becomes: + - an **emissive sprite**, the glow PNG drawn into the emissive buffer, and + - a **light** with colour sampled from the PNG's average and radius from its size. + + So muzzle flashes, explosions, jet thrusters and laser dots across all 10 modules start lighting the world with **zero content changes**. `EffectAlwaysShows` and fog-of-war culling keep their meaning. +- **Palette emissive flags.** Mark palette indices as emissive (for example the existing glow indices 117, 98, 120, lava, and hot-metal colours) so 8-bit art glows without new assets. + +**2c. 2D global illumination with radiance cascades (L, stretch)** +- **Radiance cascades** compute 2D GI from *any number* of emitters at a fixed cost per pixel. That suits CC's chaos: hundreds of tracers, fire particles and explosions at once. +- Emissive buffer + occluder SDF go in; bounce-lit, shadowed light comes out. +- This replaces 2b's per-light loop at high settings. 2b stays as the "Medium" preset and for low-end GPUs. + +**2d. Lit sprites (M)** +- **Auto-normals for all legacy sprites.** At atlas build time, derive a normal map from the 8-bit sprite: edge-distance bevel plus luminance height. Bake it into a parallel atlas page. Every soldier, dropship and gib now catches rim light from explosions. +- **Terrain edge normals**, derived from the material bitmap (distance to air), so terrain surfaces and cave walls catch light at their edges. This is huge for the look: terrain stops being a flat cutout. +- **Optional authored maps:** INI `NormalMapFile`, `EmissiveFile` next to `SpriteFile`, using the same frame-numbering convention. They override auto maps when present. + +### Phase 3: Post-processing stack (M) + +All in HDR, all tweakable in the Graphics Lab, all per-scene overridable: + +- [ ] **Bloom:** dual-filter (Kawase) down/up chain with threshold and knee. It replaces the old "screen-blend glow" look while keeping its spirit. +- [ ] **Exposure:** auto-adaptation via a luminance histogram, so walking into a dark cave lets eyes adjust and explosions punch. +- [ ] **Tone mapping:** AgX or ACES, selectable. +- [ ] **Colour grading:** a 3D LUT per scene and per faction/activity, crossfadable (for example "nuke flash", "low health"). This replaces `FadeInPalette` / `FadeOutPalette` visually, though the palette API keeps working. +- [ ] **Distortion buffer:** + - Heat haze above fire, jets and hot barrels. + - **Shockwave rings** from explosions, driven by gib/explosion events. + - Refraction of the composite. +- [ ] **Screen-space god rays** from the sky through cave openings and smoke (radial blur of the sky-light mask). +- [ ] **Subtle extras:** + - chromatic aberration and lens dirt on big blasts + - film grain + - vignette + - all off by default in "Clean" presets +- [ ] **Upscaler:** + - A crisp pixel-art upscale (sharp-bilinear / fwidth AA; `textureAA` already exists in the shaders) at arbitrary window sizes. + - Optional CRT/scanline mode as a fun extra. + +### Phase 4: Particles and FX (M–L) + +- [ ] **GPU visual-particle system** for effects with no gameplay consequence: + - smoke, embers, sparks, dust, shell-casing glints, debris dust + - instanced, alpha or additive, lit by the light buffer, soft-faded at terrain + - new INI `VisualEmitter` / `AddVisualEmission`, mirroring `AEmitter` syntax + - sim MOPixels and MOSParticles are untouched, since gameplay particles stay CPU-authoritative +- [ ] **Lit volumetric smoke.** Smoke particles write density into a low-res buffer that lights scatter through. Muzzle flashes light up their own smoke. +- [ ] **In-world translucency** for existing sprites. Add an INI `DrawMode = Additive | Alpha | Opaque` per MO, drawn in the FX pass. (Today translucency exists only in editor previews.) +- [ ] **Terrain decals:** + - blood splatter, scorch marks and bullet pocks in a GPU decal layer over terrain colour + - it never touches the material bitmap, so physics is unaffected + - decals are removed when the underlying terrain pixel is destroyed (sample the material mirror) +- [ ] **Hot pixels.** Freshly cratered terrain edges and molten debris glow and cool over a few seconds, through an emissive-decay texture. + +### Phase 5: World and atmosphere (M) + +- [ ] **Procedural sky:** a gradient, sun/moon, stars at night, and clouds as a GPU background layer. It works on any scene, with existing background PNGs as overlays. +- [ ] **Depth fog / aerial perspective** for parallax background layers. Z-order already exists (BG z=100, terrain BG z=50), so tint and fade by depth and time of day. +- [ ] **Weather:** + - rain, snow, ash and dust storms as GPU particles + - they collide with terrain via the material mirror, splash, and get occluded by overhangs + - per-scene INI and Lua control +- [ ] **Ambient life:** dust motes in light shafts, drips in caves, distant lightning that briefly drives the sky light. +- [ ] **Soft fog of war:** + - Port Causeless' `dynamic-two-stage-fow` approach. + - Render the unseen layer as a filtered, blurred mask with a dithered edge, instead of hard blocks. + +### Phase 6: UI and feel (M) + +- [ ] **Native-resolution UI.** The game world stays pixel-art, while the UI renders at window resolution with a scale setting. +- [ ] **Font upgrade.** Keep the bitmap-font option for authenticity. Add a crisp TTF/SDF font path for menus and small text at high DPI. +- [ ] **HUD refresh:** + - animated health and ammo + - damage-direction indicators + - lit, blooming pie menu + - smoother transitions +- [ ] **Graphics settings menu:** + - presets (Potato / Low / Medium / High / Ultra / "Classic", which is today's look) + - per-feature toggles + - internal resolution + - frame cap + - vsync, including the Windows windowed-vsync fix +- [ ] **Juice:** hit-stop on big impacts, camera kick and recoil (render-only, never sim), and smoother screen shake. + +### Phase 7: Modding API and content upgrades (ongoing) + +- **Lua:** + - `Light` objects + - `PostProcessMan` parameter control (bloom, exposure, LUT crossfade, distortion pulses) + - `RegisterPostEffect` by **path** (the current `BITMAP*` signature is unusable from Lua) + - per-scene atmosphere +- **INI:** document every new key; all of them default to "auto" so old mods just work. +- **Shader hooks:** extend the existing `Shader` entity registry so mods can attach a post shader per scene or activity, sandboxed to the uniform contract. +- **Optional truecolour sprite path:** + - An RGBA sprite plus a generated 8-bit *index mask* for collision and hit tests. + - Ship it only for new art, given the licensing caveat in §10. + +### Phase 8: Platform future (L, later) + +- An SDL_GPU backend behind the renderer abstraction: Vulkan, Metal, D3D12, and macOS without deprecated GL. +- Re-evaluate GLES / Steam Deck targets. Upstream PR #40 (GLES) has groundwork. + +--- + +## 5. Suggested order and first milestones + +| Milestone | Contents | Why first | +|---|---|---| +| **M1** (Phase 0) | `gpu-renderer` + interpolation merged, golden harness, Tracy GPU zones, bug fixes | De-risks everything; instant smoothness win | +| **M2** (Phase 1 core) | GPU sprite batch + atlas, dirty-rect terrain | Unblocks lighting; big performance win | +| **M3** ("first light" vertical slice) | HDR buffer, sky light + ambient, glow→light bridge, bloom + tonemap | **The moment it looks like a new game.** A demo-able clip for Discord or a trailer | +| **M4** | SDF soft shadows, terrain edge normals, auto sprite normals, day/night | Depth and drama | +| **M5** | Post stack (LUTs, distortion, god rays), GPU particles, lit smoke | Polish and spectacle | +| **M6** | UI to GPU, native-res UI, settings menu, presets | Ship-ready | +| **M7+** | Radiance cascades GI, weather, decals, mod API docs, SDL_GPU | Next level | + +**Recommended immediate next step:** check out `origin/gpu-renderer`, rebase it onto `development`, build it, and assess how far it is from parity. That single afternoon tells us whether M1 takes one week or four. + +--- + +## 6. Performance budget (target: 1080p window, 960×540 internal, mid-range GPU) + +| Pass | Budget | +|---|---| +| Albedo + normals + emissive | ≤ 1.5 ms | +| SDF / occluder update (dirty only) | ≤ 0.5 ms | +| Lighting (2b) / GI (2c) | ≤ 1.5 ms / ≤ 3 ms | +| Post stack | ≤ 1.5 ms | +| UI | ≤ 0.3 ms | +| **Total GPU** | **≤ 5–7 ms**, leaving headroom for 144 Hz with interpolation | + +On the CPU side, Phase 1 should *reduce* render cost versus today, by removing CPU rasterisation and full re-uploads, and give that headroom back to the sim. + +## 7. Testing strategy + +- **Golden images per milestone**, with deliberate visual changes approved by updating baselines. +- A **"Classic" preset that must keep matching** today's output. This protects players who want the original look, and catches accidental regressions in the albedo path. +- **Stress scenes:** YskelyRefinery (20000×8000), 4-way split, wrap-X and wrap-Y scenes, nuke spam (hundreds of lights), heavy Lua mods. +- **Determinism check:** the same replay produces identical sim state with all graphics features on or off. + +## 8. Risks + +| Risk | Mitigation | +|---|---| +| `gpu-renderer` rebase is harder than expected | Assess first (§5). Worst case, cherry-pick its abstractions and redo the integration | +| Palette semantics break subtly (debris colours, Lua index colours, fades) | Keep the palette as the albedo source of truth; golden tests; Classic preset | +| Huge scenes blow VRAM with extra buffers (normals, SDF, emissive) | Per-view, screen-sized lighting buffers; world-sized data only for the occluder mirror, kept at R8 and tiled | +| Lighting makes gameplay unreadable (too dark) | Minimum ambient floor; team-colour rim light on actors; a "visibility" accessibility slider | +| Scope creep | Each phase ships on its own; M3 is the motivational checkpoint | +| macOS GL deprecation | Abstraction discipline now; SDL_GPU in Phase 8 | + +## 9. Things deliberately out of scope (for now) + +- Changing physics resolution or the material model. +- Fluid simulation (water or lava as simulated fluids). +- Redrawing all original art. +- Reviving multiplayer. It was removed upstream in #179, and its frame-streaming design doesn't fit a GPU renderer. + +## 10. Licensing note + +- **Code** is AGPLv3, which is fine to fork and ship, with source. +- **The `Data/` assets have no licence file.** They're the original Data Realms content. +- FMOD is proprietary. + +Before distributing a fork with modified art or a rebrand, ask the maintainers about the asset terms. Engine and shader work, and *new* art we create, carry no such ambiguity. + +--- + +## Appendix: key code locations + +| Area | Location | +|---|---| +| Frame orchestration | `Source/Managers/FrameMan.cpp:810-947` (`FrameMan::Draw`) | +| Main loop / timing | `Source/Main.cpp:293-402`, `Source/Managers/TimerMan.cpp:63-106` | +| Scene layer upload | `Source/Entities/SceneLayer.cpp:427-559`, `Source/Renderer/BigTexture.*` | +| MO CPU drawing | `Source/Managers/MovableMan.cpp:1282,1689`, `Source/Entities/MOSRotating.cpp:1649-1761` | +| Texture cache | `Source/Managers/GLResourceMan.cpp` | +| Glow / post pass | `Source/Managers/PostProcessMan.cpp:326-436` | +| Final composite | `Source/Managers/WindowMan.cpp:757-816` | +| Shaders | `Data/Base.rte/Shaders/*.frag/.vert`, `Shaders.ini` | +| Modified rlgl | `Source/Renderer/raylib/rlgl.{c,h}` (`rlZDepth`, advanced blends) | +| Terrain | `Source/Entities/SLTerrain.cpp` (3 layers, `TexturizeTerrain`) | +| Effect INI keys | `Source/Entities/MovableObject.cpp:343-368` | +| Lua bindings | `Source/Lua/LuaBindingsManagers.cpp`, `LuaBindingsEntities.cpp` | +| Upstream branches | `origin/gpu-renderer`, `origin/interpolated-render-redux`, `origin/dynamic-two-stage-fow` | + +--- + +## Progress log + +Work happens on the local `modernisation` branch. Each entry corresponds to one or more commits. + +### M1: Foundation (in progress) + +- **Merged `origin/gpu-renderer`** (HeliumAnt's WIP rewrite): + - Added the new renderer sources to `RTEA.vcxproj` (the branch only updated meson). + - Made `no_sanitize_address` portable to MSVC. + - Resolved the conflict with #277 (post-effect rotation). +- **Brought the GPU renderer to parity with `development`.** The branch was mid-refactor, so a lot was missing: + - HUD: bridged to the CPU HUD, drawn once per screen. + - Lua/graphical primitives: every shape implemented on the new batch. + - Title screen: nebula, planet, moon, station, logo and slides. + - Clipped menu text: a depth-test bug in `UploadFrame`. + - Sprite particles (`MOSParticle`) drew nothing. + - `MOSprite` offset and flip were wrong; `Scale` was ignored. + - CPU-path previews (placement, deployment, pie menu, inventory carousel, scenario markers) called no-op wrappers. + - Leftover debug pixels and lines drawn every frame. + - Alpha blending was never enabled, and translucent draws punched holes in render targets. +- **Render interpolation:** + - Render-only previous-state snapshots, interpolated by the sim accumulator. Wrap-aware, snaps on teleport, pixel-rounded. + - Follows Causeless' approach, without the input changes from `interpolated-render-redux` that broke weapon switching. +- **Upstream bugs fixed along the way:** + - `AudioMan::m_MuteAudioOnFocusLoss` was uninitialised. The garbage written to `Settings.ini` made the reader drop every later setting. + - `EndlessMetaGameMode` was read under the wrong key. +- **Dev tooling:** `Mods/RenderTest.rte` (gitignored) holds a primitive gallery and an FX stress script, plus scripted screenshot capture for side-by-side comparison against a `development` baseline worktree. + +**Still open for parity:** +- Atom trails on the GPU. +- Background fill colours for non-wrapping layers. +- Dot glows. These are folded into the lighting work (palette emissive flags) instead. +- A split-screen check. + +### M1 parity, continued + +- **Tracers:** atom trails drawn on the GPU (they were invisible). +- **Previews:** placement, deployment and bunker previews, the pie menu background and the inventory carousel work again. + +### M3 "First light": done + +- **`SceneLighting`** (`Source/Renderer/SceneLighting.*`, shaders in `Data/Base.rte/Shaders/Lighting/`): + - A world light grid, refreshed round-robin from the terrain material layer. + - Sky light propagated on the GPU. + - Glow lights with soft terrain shadows. + - HDR composite, with distant background layers detected via depth. + - Glows screen-blended as emissive light. This also fixes glows being missing on the GPU renderer. + - Bloom, a highlight shoulder and a vignette. +- **Time of day and day/night cycle:** `TimeOfDay`, `DayLengthMinutes`. +- **Modder lights:** + - INI keys on `MovableObject`: `LightColor`, `LightRadius`, `LightIntensity`, `LightFlicker`, `LightOffset`. + - The same properties exposed to Lua, plus `PostProcessMan:AddLight(pos, radius, r, g, b, intensity)`. +- **Graphics Lab** (ImGui): + - Live tuning for every parameter, with stats and debug views (lighting, sky, dynamic, normals). + - Settings persist in `Settings.ini`. +- **Upstream bug fixed:** scene effects registered by activities and global scripts were cleared before they could be drawn. + +### M4 (in progress) + +- **Automatic edge normals** written by the default sprite shader into a second attachment, used for: + - N·L shading of dynamic lights. + - Sky light from above. +- **Performance:** the full lighting pipeline costs about 0.1 ms; frame time is dominated by CPU draw submission (one draw call per particle). Sprite batching is the next performance item. + + +### Status update: M4 and M5 largely done, M6 and M7 started + +- **Lighting quality:** + - Edge normals. + - Emissive palette colours: gold sparkle and tracers glint. + - A foreground readability floor. + - Blending fixed so it never touches the normal attachment. +- **Post stack:** + - Heat haze and explosion shockwaves. + - God rays from the sky into caves. + - Atmospheric haze on parallax layers. + - Colour grading (temperature, tint, contrast, split toning), film grain and chromatic aberration. +- **World:** + - Procedural rain and snow: GPU-generated, wind-blown, kept out from under overhangs, lit by fire. + - A day/night cycle. + - Per-scene atmosphere INI keys. Rayvord Tundra and Paeterra Ice Caves now snow. + - Scorch marks with cooling, glowing crater rims (a GPU decal map; the physics bitmaps are never touched). +- **Fog of war:** it was never drawn on the GPU renderer, because cameras had no team. It now draws with soft, dithered edges. +- **Split-screen:** verified, with each screen lit independently. +- **Settings and tools:** + - Video settings toggles for Lighting, Bloom and Heat/Shockwaves; turning all three off gives the classic look. + - The Graphics Lab exposes everything. +- **Modding:** + - `Documentation/LightingAndEffects.md`. + - Lua API for lights, atmosphere and grading. + - INI lights on any `MovableObject`. +- **Performance:** + - Draw-call merging, and sprite transforms baked on the CPU. + - Removed per-frame `std::cout` spam from `BigTexture` uploads. + - The lighting pipeline costs about 0.7 ms per screen. + +**Still open:** +- A GPU HUD and fonts at native resolution. +- A sprite atlas. +- Dirty-rect terrain uploads. +- A general visual particle system. +- Radiance-cascade GI. +- An SDL_GPU backend. +- A CI-run golden-image harness. The scripted screenshot comparisons currently live outside the repo. + + +### Status update: performance, polish, tooling + +- **Performance:** + - Draw calls are pooled and quads built in place. Final build on the night bunker stress scene: 169 → 250 FPS, draw time 4.0 → 2.5 ms. + - Verified in the shipping Final configuration. +- **New effects:** + - One-bounce screen-space indirect light. + - Embers rising from fire. + - Dust motes in god rays. + - Per-object `RenderBlendMode` (Normal, Additive, Screen) and `RenderOpacity`, cascading to attachables. +- **Classic parity:** + - With Lighting, Bloom and Extra Effects off, the image matches `development` side by side. + - The tonemap is neutral when lighting is off. + - Fixed: a highlight shoulder of 1.0 produced NaNs and a black screen. +- **Tooling:** `Tools/RenderTest`, an in-repo scenario capture harness: + - Scenario settings, a dev mod, burst captures, baseline comparison, contact sheets. + - README included. +- **Formatting:** lines changed on this branch are clang-format clean (formatted with clang-format-diff, so upstream code is left alone). + +### Status update: playtest, fixes, world and feel + +**Hands-on playtest.** +- Real keyboard and mouse input through `Tools/RenderTest/Input.ps1`. +- Covered: combat, menus, settings, scene changes and soak runs (`Soak.ps1`). Memory plateaus and there were no crashes. + +**Bugs found and fixed:** +- **Scenario site markers:** didn't draw because the camera they were flushed with had gone out of scope. +- **Black frames on window expose:** an event watch rebuilt the frame outside the frame loop. +- **Pie menu ring and inventory carousel never drew:** they still called vendored raylib functions. So did background edge fills and the deployment spawn radius. +- **Region upload bugs:** in BigTexture and GLStateMan, for 32-bit bitmaps, multiple regions, and the PBO offset. + +**Lighting:** +- Interiors and caves are much brighter: ambient 0.6, barely dimming at night. +- `LightingSettingsVersion` drops stale saved values. +- Auto exposure with a dead zone. It reacts to flashes and near-total darkness, but leaves ordinary scenes untouched. + +**World:** +- Night sky: twinkling stars and a moon on the near-static sky layers. +- Lightning in heavy rain. + +**Feel:** +- Smooth screen shake that no longer drives the camera path or uses the sim RNG. + +**Settings and tools:** +- Graphics Quality presets (Potato to Ultra, plus Custom) in the Video settings. +- F6 World Debug window: time of day, weather, lighting, auto exposure readout, quality and game speed. +- While debug windows are open the mouse is released and clicks don't reach the game. + +### Status update: roadmap completed + +All measured on the Final build, stress scene, VSync off. + +- **Golden image regression check:** `Tools/RenderTest/Golden.ps1`. + - Six fixed scenes against committed baselines, alignment-tolerant, with thresholds calibrated on run-to-run noise. + - A 20% exposure error fails it. + - Runs locally, because hosted CI runners have no GPU. +- **Changed-only terrain uploads:** a CPU mirror of what the GPU holds is diffed in 32-row bands. + - Correct for every terrain write path. + - Calm scenes upload nothing; CPU cost per layer 0.13 → 0.065 ms. +- **Sprite atlas:** small 8-bit sprite frames share 2048² pages, so draws merge. + - GL draws per frame are about 5× fewer. + - Draw time 3.2 → 2.5 ms; 230 → 271 FPS. +- **High resolution HUD text (Smooth HUD Text):** HUD text is captured and redrawn with a TTF at window resolution, between the scene and the GUI layer. + - Text covered in the HUD layer is dropped, so panels still hide it. + - GUI control text stays pixel art. +- **Radiance cascades GI (Ultra):** 2D global illumination from glows, with soft occlusion and multi-bounce. Costs about 0.3 ms. + +### Deferred: SDL_GPU backend (M8) + +Not started on purpose. It is a port of every GL path: +- RenderBatch, render targets, about 25 shaders, PBO uploads, the sprite atlas, the ImGui backend. +- Plus a shader cross-compile step: GLSL → SPIR-V, then DXIL and MSL with SDL_shadercross. + +It brings no visual change on Windows. The value is macOS/Metal and console reach, which only matters once the project ships beyond Windows/Linux. Suggested staging: +1. **Abstraction:** put the GL calls behind a small device interface (textures, targets, pipelines, draws), with GL as the first backend. +2. **Shaders:** compile them offline to SPIR-V in the build, keeping GLSL for GL. +3. **First SDL_GPU path:** the batch and the final blit; menus run on it. +4. **Full pipeline:** the lighting passes; then golden images on both backends. diff --git a/RTEA.vcxproj b/RTEA.vcxproj index 0610e3f5ff..dc45808300 100644 --- a/RTEA.vcxproj +++ b/RTEA.vcxproj @@ -765,8 +765,9 @@ + - + @@ -790,11 +791,24 @@ + + + + + + + + + + + + + @@ -845,6 +859,14 @@ + + + + + + + + @@ -1005,7 +1027,8 @@ NotUsing stdcpp17 - + + false @@ -1047,10 +1070,21 @@ + + + + + + + + + + + @@ -1375,6 +1409,13 @@ + + + + + + + @@ -1494,4 +1535,4 @@ - \ No newline at end of file + diff --git a/RTEA.vcxproj.filters b/RTEA.vcxproj.filters index 9459d73c13..495cf80254 100644 --- a/RTEA.vcxproj.filters +++ b/RTEA.vcxproj.filters @@ -103,6 +103,39 @@ System\MicroPather + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + Renderer\raylib @@ -112,6 +145,9 @@ Renderer\raylib + + Managers + Managers @@ -139,6 +175,30 @@ Managers + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + Managers @@ -641,10 +701,16 @@ Renderer + + Renderer + + + Renderer + Renderer - + Managers @@ -700,6 +766,9 @@ System\MicroPather + + Managers + Managers @@ -727,6 +796,27 @@ Managers + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + + + Managers + Managers @@ -1085,6 +1175,33 @@ Entities + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + + + Renderer + Renderer @@ -1244,10 +1361,16 @@ Renderer + + Renderer + + + Renderer + Renderer - + Managers @@ -1288,4 +1411,4 @@ System\Semver200 - \ No newline at end of file + diff --git a/Source/Activities/GameActivity.cpp b/Source/Activities/GameActivity.cpp index e0d65161e3..f7e8dacd1b 100644 --- a/Source/Activities/GameActivity.cpp +++ b/Source/Activities/GameActivity.cpp @@ -916,6 +916,27 @@ void GameActivity::End() { m_GameOverTimer.Reset(); } +void GameActivity::SetFreeBuildMode(bool build) { + if (build == m_FreeBuildMode) { + return; + } + m_FreeBuildMode = build; + m_ActivityState = build ? ActivityState::Editing : ActivityState::Running; + for (int player = Players::PlayerOne; player < Players::MaxPlayerCount; ++player) { + if (!(m_IsActive[player] && m_IsHuman[player]) || !m_pEditorGUI[player]) { + continue; + } + if (build) { + m_pEditorGUI[player]->SetCursorPos(g_CameraMan.GetOffset(ScreenOfPlayer(player)) + Vector(static_cast(g_FrameMan.GetPlayerScreenWidth()) * 0.5F, static_cast(g_FrameMan.GetPlayerScreenHeight()) * 0.5F)); + m_pEditorGUI[player]->SetEditorGUIMode(SceneEditorGUI::PICKINGOBJECT); + } else { + m_pEditorGUI[player]->SetEditorGUIMode(SceneEditorGUI::INACTIVE); + } + m_ReadyToStart[player] = false; + g_FrameMan.ClearScreenText(ScreenOfPlayer(player)); + } +} + void GameActivity::UpdateEditing() { // Editing the scene, just update the editor guis and see if players are ready to start or not if (m_ActivityState != ActivityState::Editing) @@ -933,6 +954,12 @@ void GameActivity::UpdateEditing() { // Set the team associations with each screen displayed g_CameraMan.SetScreenTeam(m_Team[player], ScreenOfPlayer(player)); + // Done with a build in the middle of play: straight back to the game. + if (m_FreeBuildMode && m_pEditorGUI[player]->GetEditorGUIMode() == SceneEditorGUI::DONEEDITING) { + SetFreeBuildMode(false); + return; + } + // Check if the player says he's done editing, and if so, make sure he really is good to go if (m_pEditorGUI[player]->GetEditorGUIMode() == SceneEditorGUI::DONEEDITING) { // See if a brain has been placed yet by this player - IN A VALID LOCATION diff --git a/Source/Activities/GameActivity.h b/Source/Activities/GameActivity.h index 1abd3ec86a..7747cd4724 100644 --- a/Source/Activities/GameActivity.h +++ b/Source/Activities/GameActivity.h @@ -108,6 +108,13 @@ namespace RTE { /// over or a player is in observation mode /// @param newTarget The new absolute position to observe. /// @param player Which player to set it for. (default: 0) + /// Starts or ends building in the middle of a game (the Sandbox's build menu): the build menu places straight into the running world, and finishing needs no brain. + /// @param build Whether to build. + void SetFreeBuildMode(bool build); + + /// Gets whether the game is in the middle of a free build. + bool IsFreeBuildMode() const { return m_FreeBuildMode; } + void SetObservationTarget(const Vector& newTarget, int player = 0) { if (player >= Players::PlayerOne && player < Players::MaxPlayerCount) m_ObservationTarget[player] = newTarget; @@ -571,6 +578,7 @@ namespace RTE { int m_BannerRepeats[Players::MaxPlayerCount]; // Whether each player has marked himself as ready to start. Can still edit while this is set, but when all are set, the game starts bool m_ReadyToStart[Players::MaxPlayerCount]; + bool m_FreeBuildMode = false; //!< Whether the game is building in the middle of play, see SetFreeBuildMode. // An override purchase list that can be set by a script and will be used instead of what's in the buy menu. Object held in here are NOT OWNED // Once a delivery is made with anything in here, this list is automatically cleared out, and the next delivery will be what's set in the buy menu. std::list m_PurchaseOverride[Players::MaxPlayerCount]; diff --git a/Source/Entities/ACRocket.cpp b/Source/Entities/ACRocket.cpp index 64e01570a9..0bf961f7c9 100644 --- a/Source/Entities/ACRocket.cpp +++ b/Source/Entities/ACRocket.cpp @@ -571,3 +571,13 @@ void ACRocket::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mod m_pLFootGroup->Draw(pTargetBitmap, targetPos, true, 13); } } + +void ACRocket::Draw(const Camera& camera) const { + + ACraft::Draw(camera); + + if (g_SettingsMan.DrawHandAndFootGroupVisualizations()) { + m_pRFootGroup->Draw(camera, true, 13); + m_pLFootGroup->Draw(camera, true, 13); + } +} diff --git a/Source/Entities/ACRocket.h b/Source/Entities/ACRocket.h index 32b74470ba..bf1515259e 100644 --- a/Source/Entities/ACRocket.h +++ b/Source/Entities/ACRocket.h @@ -89,6 +89,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// The recomended, not absolute, maximum number of actors that fit in the /// invetory. Used by the activity AI. diff --git a/Source/Entities/ACrab.cpp b/Source/Entities/ACrab.cpp index d6c8c559a0..26d9317792 100644 --- a/Source/Entities/ACrab.cpp +++ b/Source/Entities/ACrab.cpp @@ -1,4 +1,5 @@ #include "ACrab.h" +#include "SmokeGrid.h" #include "AtomGroup.h" #include "Attachable.h" @@ -726,8 +727,15 @@ MovableObject* ACrab::LookForMOs(float FOVSpread, unsigned char ignoreMaterial, // Add the spread lookVector.DegRotate(FOVSpread * RandomNormalNum()); + // Night: the look ray reaches less far in the dark (see GetNightSightScale). + lookVector *= GetNightSightScale(); + MOID seenMOID = g_SceneMan.CastMORay(aimPos, lookVector, m_MOID, IgnoresWhichTeam(), ignoreMaterial, ignoreAllTerrain, 5); pSeenMO = g_MovableMan.GetMOFromID(seenMOID); + // Thick smoke between the eyes and what they'd see hides it. + if (pSeenMO && SmokeGrid::BlocksSight(aimPos, pSeenMO->GetPos())) { + return nullptr; + } if (pSeenMO) return pSeenMO->GetRootParent(); @@ -1311,6 +1319,25 @@ void ACrab::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mode, } } +void ACrab::Draw(const Camera& camera) const { + + Actor::Draw(camera); + + if (g_SettingsMan.DrawHandAndFootGroupVisualizations()) { + m_pLFGFootGroup->Draw(camera, true, 13); + m_pLBGFootGroup->Draw(camera, true, 13); + m_pRFGFootGroup->Draw(camera, true, 13); + m_pRBGFootGroup->Draw(camera, true, 13); + } + + if (g_SettingsMan.DrawLimbPathVisualizations()) { + m_Paths[LEFTSIDE][BGROUND][WALK].Draw(camera, 122); + m_Paths[LEFTSIDE][FGROUND][WALK].Draw(camera, 122); + m_Paths[RIGHTSIDE][BGROUND][WALK].Draw(camera, 122); + m_Paths[RIGHTSIDE][FGROUND][WALK].Draw(camera, 122); + } +} + void ACrab::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichScreen, bool playerControlled) { m_HUDStack = -m_CharHeight / 2; @@ -1440,6 +1467,8 @@ void ACrab::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichScr } } +void ACrab::DrawHUD(const Camera& camera) {} + float ACrab::GetLimbPathTravelSpeed(MovementState movementState) { return m_Paths[LEFTSIDE][FGROUND][movementState].GetTravelSpeed(); } diff --git a/Source/Entities/ACrab.h b/Source/Entities/ACrab.h index 800e5056cf..144f2bd34c 100644 --- a/Source/Entities/ACrab.h +++ b/Source/Entities/ACrab.h @@ -208,6 +208,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Draws this Actor's current graphical HUD overlay representation to a /// BITMAP of choice. @@ -216,6 +217,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Gets the LimbPath corresponding to the passed in Side, Layer and MovementState values. /// @param side Whether to get the left or right side. diff --git a/Source/Entities/ACraft.cpp b/Source/Entities/ACraft.cpp index f43c42db59..26ccc20c93 100644 --- a/Source/Entities/ACraft.cpp +++ b/Source/Entities/ACraft.cpp @@ -816,3 +816,7 @@ void ACraft::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichSc } } } + +void ACraft::DrawHUD(const Camera& camera) { + +} diff --git a/Source/Entities/ACraft.h b/Source/Entities/ACraft.h index b276a13bee..050ad739ce 100644 --- a/Source/Entities/ACraft.h +++ b/Source/Entities/ACraft.h @@ -253,6 +253,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Gets whether this craft can enter orbit and refund the owning team when out of the map. If false, /// only default out-of-bounds deletion logic applies. diff --git a/Source/Entities/ADoor.cpp b/Source/Entities/ADoor.cpp index 095f601ba5..aa75806af6 100644 --- a/Source/Entities/ADoor.cpp +++ b/Source/Entities/ADoor.cpp @@ -602,3 +602,5 @@ void ADoor::DrawHUD(BITMAP* targetBitmap, const Vector& targetPos, int whichScre return; } } + +void ADoor::DrawHUD(const Camera& camera) {} diff --git a/Source/Entities/ADoor.h b/Source/Entities/ADoor.h index b28eceb191..64aea78d58 100644 --- a/Source/Entities/ADoor.h +++ b/Source/Entities/ADoor.h @@ -148,6 +148,8 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements get drawn etc. /// @param playerControlled Whether or not this MovableObject is currently player controlled (not applicable for ADoor) void DrawHUD(BITMAP* targetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; + #pragma endregion protected: diff --git a/Source/Entities/AEmitter.cpp b/Source/Entities/AEmitter.cpp index 5803b963ab..b1bc4b66bb 100644 --- a/Source/Entities/AEmitter.cpp +++ b/Source/Entities/AEmitter.cpp @@ -4,6 +4,7 @@ #include "PresetMan.h" #include "SoundContainer.h" #include "PostProcessMan.h" +#include "Texture.h" using namespace RTE; @@ -575,7 +576,7 @@ void AEmitter::Update() { // Set the screen flash effect to draw at the final post processing stage if (m_EmitEnabled && (!m_FlashOnlyOnBurst || m_BurstTriggered) && m_pFlash && m_pFlash->GetScreenEffect()) { // Fudge the glow pos forward a bit so it aligns nicely with the flash - Vector emitPos(m_pFlash->GetScreenEffect()->w * 0.3F * m_FlashScale, 0); + Vector emitPos(m_pFlash->GetScreenEffect()->GetDimensions().w * 0.3F * m_FlashScale, 0); emitPos.RadRotate(m_HFlipped ? c_PI + m_Rotation.GetRadAngle() - m_EmitAngle.GetRadAngle() : m_Rotation.GetRadAngle() + m_EmitAngle.GetRadAngle()); emitPos = m_Pos + RotateOffset(m_EmissionOffset) + emitPos; if (m_EffectAlwaysShows || !g_SceneMan.ObscuredPoint(emitPos)) { @@ -600,3 +601,16 @@ void AEmitter::Draw(BITMAP* pTargetBitmap, !onlyPhysical && mode == g_DrawColor && m_EmitEnabled && (!m_FlashOnlyOnBurst || m_BurstTriggered)) m_pFlash->Draw(pTargetBitmap, targetPos, mode, onlyPhysical); } + +void AEmitter::Draw(const Camera& camera) const { + + // Draw flash if there is one + if (m_pFlash && !m_pFlash->IsDrawnAfterParent() && m_EmitEnabled && (!m_FlashOnlyOnBurst || m_BurstTriggered)) + m_pFlash->Draw(camera); + + Attachable::Draw(camera); + + // Update and Draw flash if there is one + if (m_pFlash && m_pFlash->IsDrawnAfterParent() && m_EmitEnabled && (!m_FlashOnlyOnBurst || m_BurstTriggered)) + m_pFlash->Draw(camera); +} diff --git a/Source/Entities/AEmitter.h b/Source/Entities/AEmitter.h index 98cf08b57a..d34d9bdc1d 100644 --- a/Source/Entities/AEmitter.h +++ b/Source/Entities/AEmitter.h @@ -316,6 +316,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Indicates whether this emitter deals damage. /// @return Returns true if this emitter deals damage. diff --git a/Source/Entities/AHuman.cpp b/Source/Entities/AHuman.cpp index e032cd8a02..ae99528bb4 100644 --- a/Source/Entities/AHuman.cpp +++ b/Source/Entities/AHuman.cpp @@ -1,4 +1,6 @@ #include "AHuman.h" +#include "SmokeGrid.h" +#include "WeatherEffects.h" #include "AtomGroup.h" #include "RTETools.h" @@ -21,6 +23,8 @@ #include "AllegroBitmap.h" #include "PrimitiveMan.h" +#include "RenderMan.h" +#include "Draw.h" #include "tracy/Tracy.hpp" @@ -1412,8 +1416,15 @@ MovableObject* AHuman::LookForMOs(float FOVSpread, unsigned char ignoreMaterial, // Add the spread lookVector.DegRotate(FOVSpread * RandomNormalNum()); + // Night: the look ray reaches less far in the dark (see GetNightSightScale). + lookVector *= GetNightSightScale(); + MOID seenMOID = g_SceneMan.CastMORay(aimPos, lookVector, m_MOID, IgnoresWhichTeam(), ignoreMaterial, ignoreAllTerrain, 5); pSeenMO = g_MovableMan.GetMOFromID(seenMOID); + // Thick smoke between the eyes and what they'd see hides it. + if (pSeenMO && SmokeGrid::BlocksSight(aimPos, pSeenMO->GetPos())) { + return nullptr; + } if (pSeenMO) return pSeenMO->GetRootParent(); @@ -1530,6 +1541,8 @@ void AHuman::UpdateLimbPathSpeed() { if (m_MovementState == WALK) { travelSpeedMultiplier *= Lerp(0.0F, 1.0F, 1.0F, m_CrouchWalkSpeedMultiplier, m_CrouchAmount); } + // Trudging through snow is slower + travelSpeedMultiplier *= WeatherEffects::GetWalkSpeedMultiplier(); // If we're moving slowly horizontally, move at reduced speed (otherwise our legs kick about wildly as we're not yet up to speed) // Calculate a min multiplier that is based on the total walkpath speed (so a fast walkpath has a smaller multipler). This is so a slow walkpath gets up to speed faster @@ -2705,6 +2718,47 @@ void AHuman::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mode, } } +void AHuman::Draw(const Camera& camera) const { + Actor::Draw(camera); + + if (m_FlashWhiteTimer.IsPastRealTimeLimit()) { + g_RenderMan.PushUniform(std::make_shared(g_RenderMan.GetCurrentShader()->GetUniformLocation("rteReplaceColor"), 1)); + g_RenderMan.PushUniform(std::make_shared(g_RenderMan.GetCurrentShader()->GetColorUniform(), glm::vec4(1.0f))); + } + + // Note: For some reason the ordering of the attachables list can get messed up. The most important thing here is that the FGArm is on top of everything else. + if (m_pHead && m_pHead->IsDrawnAfterParent()) { + m_pHead->Draw(camera); + } + + if (m_pFGArm) { + m_pFGArm->Draw(camera); + } + + // Draw background Arm's hand after the HeldDevice of FGArm is drawn if the FGArm is holding a weapon. + if (m_pFGArm && m_pBGArm && m_pBGArm->GetHandHasReachedCurrentTarget() && !GetEquippedBGItem()) { + if (HeldDevice* heldDevice = m_pFGArm->GetHeldDevice(); heldDevice && !dynamic_cast(heldDevice) && !heldDevice->IsReloading() && !heldDevice->IsShield()) { + m_pBGArm->DrawHand(camera); + } + } + + if (m_FlashWhiteTimer.IsPastRealTimeLimit()) { + g_RenderMan.ClearUniforms(); + g_RenderMan.PushUniform(std::make_shared(g_RenderMan.GetCurrentShader()->GetUniformLocation("rteReplaceColor"), 1)); + } + + if (g_SettingsMan.DrawHandAndFootGroupVisualizations()) { + m_pFGFootGroup->Draw(camera, true, 13); + m_pBGFootGroup->Draw(camera, true, 13); + m_pFGHandGroup->Draw(camera, true, 13); + m_pBGHandGroup->Draw(camera, true, 13); + } + + if (g_SettingsMan.DrawLimbPathVisualizations()) { + m_Paths[m_HFlipped][m_MovementState].Draw(camera, 122); + } +} + void AHuman::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichScreen, bool playerControlled) { m_HUDStack = -m_CharHeight / 2; @@ -2938,6 +2992,8 @@ void AHuman::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichSc } } +void AHuman::DrawHUD(const Camera& camera) {} + float AHuman::GetLimbPathTravelSpeed(MovementState movementState) { return m_Paths[FGROUND][movementState].GetTravelSpeed(); } diff --git a/Source/Entities/AHuman.h b/Source/Entities/AHuman.h index a292b42a09..395cac4ac0 100644 --- a/Source/Entities/AHuman.h +++ b/Source/Entities/AHuman.h @@ -447,6 +447,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Draws this Actor's current graphical HUD overlay representation to a /// BITMAP of choice. @@ -455,6 +456,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Gets the LimbPath corresponding to the passed in Layer and MovementState values. /// @param layer Whether to get foreground or background LimbPath. diff --git a/Source/Entities/Activity.h b/Source/Entities/Activity.h index fa111b4149..a019ec853a 100644 --- a/Source/Entities/Activity.h +++ b/Source/Entities/Activity.h @@ -187,11 +187,13 @@ namespace RTE { /// @param targetPos The absolute position of the target bitmap's upper left corner in the scene. /// @param whichScreen Which screen's GUI to draw onto the bitmap. virtual void DrawGUI(BITMAP* targetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0) {} + virtual void DrawGUI(const Camera& camera) {} /// Draws this Activity's current graphical representation to a BITMAP of choice. This includes all game-related graphics. /// @param targetBitmap A pointer to a BITMAP to draw on. /// @param targetPos The absolute position of the target bitmap's upper left corner in the scene. virtual void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector()) {} + virtual void Draw(const Camera& camera) {} #pragma endregion #pragma region Player Handling diff --git a/Source/Entities/Actor.cpp b/Source/Entities/Actor.cpp index 7ea36f424b..8f74d2e956 100644 --- a/Source/Entities/Actor.cpp +++ b/Source/Entities/Actor.cpp @@ -1,4 +1,6 @@ #include "Actor.h" +#include "SceneLighting.h" +#include "PostProcessMan.h" #include "UInputMan.h" #include "ActivityMan.h" @@ -1106,7 +1108,37 @@ void Actor::PreControllerUpdate() { } } +float Actor::GetNightAmount() { + glm::vec3 daylight = SceneLighting::GetDaylightTint(g_PostProcessMan.GetLightingSettings().TimeOfDay); + float dayFactor = glm::dot(daylight, glm::vec3(0.2126F, 0.7152F, 0.0722F)); + return std::clamp((0.45F - dayFactor) / 0.35F, 0.0F, 1.0F); +} + +float Actor::GetNightSightScale() const { + const LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + if (!settings.NightAffectsAI || !settings.Enabled) { + return 1.0F; + } + float night = GetNightAmount(); + // A headlamp keeps most of the view; without one, eyes only reach about half as far in the dark. + float floor = (settings.Headlamps && !IsDead()) ? 0.8F : 0.5F; + return 1.0F - night * (1.0F - floor); +} + void Actor::Update() { + // Night: a headlamp lighting where the actor looks, plus a little glow around it. Render only. + if (const LightingSettings& lighting = g_PostProcessMan.GetLightingSettings(); lighting.Headlamps && lighting.Enabled && m_Status != DEAD && m_Status != DYING) { + float night = GetNightAmount(); + if (night > 0.05F) { + Vector eyePos = GetEyePos(); + float aimAngle = GetAimAngle(true); + // CC angles are counter-clockwise with Y up; screen space is Y down. + Vector direction(std::cos(aimAngle), -std::sin(aimAngle)); + g_PostProcessMan.RegisterConeLight(eyePos, direction, 26.0F, glm::vec3(255.0F, 240.0F, 215.0F), 210.0F, 1.4F * night); + g_PostProcessMan.RegisterLight(eyePos, glm::vec3(255.0F, 235.0F, 210.0F), 36.0F, 0.35F * night); + } + } + ZoneScoped; ///////////////////////////////// @@ -1597,3 +1629,5 @@ void Actor::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichScr } } } + +void Actor::DrawHUD(const Camera& camera) {} diff --git a/Source/Entities/Actor.h b/Source/Entities/Actor.h index 00be2213e7..66597073c4 100644 --- a/Source/Entities/Actor.h +++ b/Source/Entities/Actor.h @@ -717,6 +717,12 @@ namespace RTE { /// @return Returns actor's sight distance. float GetSightDistance() const { return m_SightDistance; } + /// Gets how dark it is from the time of day, 0 by day to 1 at full night. + static float GetNightAmount(); + + /// Gets how far this actor can see relative to daylight: less at night, unless it has a headlamp on (night gameplay). + float GetNightSightScale() const; + /// Description: Sets actor's sight distance. /// @param newValue New sight distance value. void SetSightDistance(float newValue) { m_SightDistance = newValue; } @@ -728,6 +734,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Verifieis whether all actor's MO has correct IDs. Should be used in Debug mode only. void VerifyMOIDs(); diff --git a/Source/Entities/Arm.cpp b/Source/Entities/Arm.cpp index 8199e8689a..a0e9d1e71d 100644 --- a/Source/Entities/Arm.cpp +++ b/Source/Entities/Arm.cpp @@ -4,6 +4,7 @@ #include "AHuman.h" #include "PresetMan.h" #include "SceneMan.h" +#include "Draw.h" using namespace RTE; @@ -25,6 +26,7 @@ void Arm::Clear() { m_HandIdleRotation = 0; m_HandCurrentOffset.Reset(); + m_RenderPrevHandPos.Reset(); m_HandTargets = {}; m_HandMovementDelayTimer.Reset(); @@ -76,6 +78,7 @@ int Arm::Create(const Arm& reference) { m_HandSpriteFile = reference.m_HandSpriteFile; m_HandSpriteBitmap = m_HandSpriteFile.GetAsBitmap(); + m_HandSpriteTexture = m_HandSpriteFile.GetAsTexture(); RTEAssert(m_HandSpriteBitmap, "Failed to load hand bitmap in Arm::Create."); m_GripStrength = reference.m_GripStrength; @@ -97,6 +100,7 @@ int Arm::ReadProperty(const std::string_view& propName, Reader& reader) { MatchForwards("HandSprite") MatchProperty("Hand", { reader >> m_HandSpriteFile; m_HandSpriteBitmap = m_HandSpriteFile.GetAsBitmap(); + m_HandSpriteTexture = m_HandSpriteFile.GetAsTexture(); }); MatchProperty("GripStrength", { reader >> m_GripStrength; }); MatchProperty("ThrowStrength", { reader >> m_ThrowStrength; }); @@ -355,6 +359,16 @@ void Arm::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode mode, boo } } +void Arm::Draw(const Camera& camera) const { + Attachable::Draw(camera); + if (camera.IsVisible(m_Pos, m_SpriteRadius)) { + DrawHand(camera); + } + if (m_HeldDevice && m_HeldDevice->IsDrawnAfterParent()) { + m_HeldDevice->Draw(camera); + } +} + void Arm::DrawHand(BITMAP* targetBitmap, const Vector& targetPos, DrawMode mode) const { Vector handPos(m_JointPos + m_HandCurrentOffset + (m_Recoiled ? m_RecoilOffset : Vector()) - targetPos); handPos -= Vector(static_cast(m_HandSpriteBitmap->w / 2), static_cast(m_HandSpriteBitmap->h / 2)); @@ -374,3 +388,19 @@ void Arm::DrawHand(BITMAP* targetBitmap, const Vector& targetPos, DrawMode mode) } } } + +void Arm::StoreRenderPreviousState() { + Attachable::StoreRenderPreviousState(); + m_RenderPrevHandPos = m_JointPos + m_HandCurrentOffset + (m_Recoiled ? m_RecoilOffset : Vector()); +} + +void Arm::DrawHand(const Camera& camera) const { + Vector handPos(InterpolateRenderPosition(m_RenderPrevHandPos, m_JointPos + m_HandCurrentOffset + (m_Recoiled ? m_RecoilOffset : Vector())).GetRounded()); + handPos -= Vector(static_cast(m_HandSpriteTexture->GetDimensions().w / 2), static_cast(m_HandSpriteTexture->GetDimensions().h / 2)); + + if (m_HFlipped) { + Draw::DrawTexture(m_HandSpriteTexture.get(), FloatRect(handPos, -m_HandSpriteTexture->GetDimensions().w, m_HandSpriteTexture->GetDimensions().h)); + } else { + Draw::DrawTexture(m_HandSpriteTexture.get(), handPos); + } +} diff --git a/Source/Entities/Arm.h b/Source/Entities/Arm.h index 1030f121aa..a41e56f13d 100644 --- a/Source/Entities/Arm.h +++ b/Source/Entities/Arm.h @@ -7,6 +7,7 @@ namespace RTE { class HeldDevice; + class Texture; /// A detachable arm that can hold HeldDevices. class Arm : public Attachable { @@ -95,6 +96,9 @@ namespace RTE { /// @return The current position of this Arm's hand in absolute Scene coordinates. Vector GetHandPos() const { return m_JointPos + m_HandCurrentOffset; } + /// Stores the current state as the previous render state, including the hand. See MovableObject::StoreRenderPreviousState. + void StoreRenderPreviousState() override; + /// Sets the current position of this Arm's hand to an absolute scene coordinate. If needed, the set position is modified so its distance from the joint position of the Arm is capped to the max length of the Arm. /// @param newHandPos The new current position of this Arm's hand as absolute scene coordinate. void SetHandPos(const Vector& newHandPos); @@ -190,6 +194,7 @@ namespace RTE { /// @param targetPos The absolute position of the target bitmap's upper left corner in the Scene. /// @param mode Which mode to draw in. See the DrawMode enumeration for available modes. void DrawHand(BITMAP* targetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor) const; + void DrawHand(const Camera& camera) const; #pragma endregion #pragma region Override Methods @@ -210,6 +215,7 @@ namespace RTE { /// @param mode Which mode to draw in. See the DrawMode enumeration for the modes. /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this Arm. In this case, that means the hand sprite. void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; #pragma endregion private: @@ -234,6 +240,7 @@ namespace RTE { float m_HandIdleRotation; //!< The rotation to be applied to the idle offset, when it's being used. Resets every update to avoid locking it. Vector m_HandCurrentOffset; //!< The current offset of this Arm's hand, relative to its joint position. + Vector m_RenderPrevHandPos; //!< Drawn hand position at the start of the last sim update, for render interpolation only. std::queue m_HandTargets; // A queue of target positions this Arm's hand is reaching towards. If it's empty, the Arm isn't reaching towards anything. Timer m_HandMovementDelayTimer; //!< A Timer for making the hand wait at its current HandTarget. @@ -241,6 +248,7 @@ namespace RTE { ContentFile m_HandSpriteFile; //!< The ContentFile containing this Arm's hand bitmap. BITMAP* m_HandSpriteBitmap; //!< An unowned pointer to the Bitmap held by the hand sprite ContentFile. + std::shared_ptr m_HandSpriteTexture; //!< Pointer to the Texture held by the hand sprite ContentFile. float m_GripStrength; //!< The strength with which this Arm will grip its HeldDevice. Effectively supersedes the HeldDevice's JointStrength. float m_ThrowStrength; //!< The strength with which this Arm will throw a ThrownDevice. Effectively supersedes the ThrownDevice's ThrowVelocity values. diff --git a/Source/Entities/AtomGroup.cpp b/Source/Entities/AtomGroup.cpp index 2f6ceadf5a..a5634d87ea 100644 --- a/Source/Entities/AtomGroup.cpp +++ b/Source/Entities/AtomGroup.cpp @@ -6,6 +6,8 @@ #include "LimbPath.h" #include "ConsoleMan.h" +#include "Draw.h" + #include "tracy/Tracy.hpp" using namespace RTE; @@ -1609,6 +1611,24 @@ void AtomGroup::Draw(BITMAP* targetBitmap, const Vector& targetPos, bool useLimb } } +void AtomGroup::Draw(const Camera& camera, bool useLimbPos, Color color) const { + Vector atomPos; + Vector normal; + + for (const Atom* atom: m_Atoms) { + if (!useLimbPos) { + atomPos = m_OwnerMOSR->GetPos() + GetAdjustedAtomOffset(atom); + } else { + atomPos = m_LimbPos + GetAdjustedAtomOffset(atom); + } + if (!atom->GetNormal().IsZero()) { + normal = atom->GetNormal().GetXFlipped(m_OwnerMOSR->m_HFlipped) * 5; + Draw::Lines::VectorArrow(atomPos, normal, 244); + } + Draw::Pixel(atomPos.GetFloored(), color); + } +} + // TODO: dan pls. void AtomGroup::GenerateAtomGroup(MOSRotating* ownerMOSRotating) { BITMAP* refSprite = ownerMOSRotating->GetSpriteFrame(); diff --git a/Source/Entities/AtomGroup.h b/Source/Entities/AtomGroup.h index 935a196436..ef5fdbd7cc 100644 --- a/Source/Entities/AtomGroup.h +++ b/Source/Entities/AtomGroup.h @@ -284,6 +284,7 @@ namespace RTE { /// @param useLimbPos Whether to use the limb position of this AtomGroup, or the owner's position. /// @param color The color to draw the Atoms' pixels as. void Draw(BITMAP* targetBitmap, const Vector& targetPos, bool useLimbPos = false, unsigned char color = 34) const; + void Draw(const Camera& camera, bool useLimbPos = false, Color color = 34) const; #pragma endregion protected: diff --git a/Source/Entities/BunkerAssembly.cpp b/Source/Entities/BunkerAssembly.cpp index 4f460cb806..ae59b5e841 100644 --- a/Source/Entities/BunkerAssembly.cpp +++ b/Source/Entities/BunkerAssembly.cpp @@ -397,3 +397,5 @@ void BunkerAssembly::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMo } } } + +void BunkerAssembly::Draw(const Camera& camera) const {} diff --git a/Source/Entities/BunkerAssembly.h b/Source/Entities/BunkerAssembly.h index 61a80203ad..6e4bbb3d9a 100644 --- a/Source/Entities/BunkerAssembly.h +++ b/Source/Entities/BunkerAssembly.h @@ -111,6 +111,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// like indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Protected member variable and method declarations protected: diff --git a/Source/Entities/BunkerAssemblyScheme.cpp b/Source/Entities/BunkerAssemblyScheme.cpp index b5776e77e7..07a5c01eee 100644 --- a/Source/Entities/BunkerAssemblyScheme.cpp +++ b/Source/Entities/BunkerAssemblyScheme.cpp @@ -299,3 +299,5 @@ void BunkerAssemblyScheme::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawTexture(m_pPresentationBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()}); } } + +void BunkerAssemblyScheme::Draw(const Camera& camera) const {} diff --git a/Source/Entities/BunkerAssemblyScheme.h b/Source/Entities/BunkerAssemblyScheme.h index f31a046390..dd332f5b05 100644 --- a/Source/Entities/BunkerAssemblyScheme.h +++ b/Source/Entities/BunkerAssemblyScheme.h @@ -121,6 +121,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// like indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Returns whether sceneman should select just a single assembly for this scheme /// and use it everywhere on the scene. diff --git a/Source/Entities/Deployment.cpp b/Source/Entities/Deployment.cpp index b79e76be79..5dac58b132 100644 --- a/Source/Entities/Deployment.cpp +++ b/Source/Entities/Deployment.cpp @@ -1,4 +1,5 @@ #include "Deployment.h" +#include "Shapes.h" #include "PresetMan.h" #include "MetaMan.h" #include "ContentFile.h" @@ -555,7 +556,9 @@ void Deployment::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode m DrawTextureV(pBitmap, aDrawPos[i], {255, 255, 255, g_FrameMan.GetCurrentAlpha()}); draw_trans_sprite(pTargetBitmap, pBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY()); // Draw the spawn radius circle too - DrawCircleLines(aDrawPos[i].GetFloorIntX() + (pBitmap->w / 2), aDrawPos[i].GetFloorIntY() + (pBitmap->h / 2), m_SpawnRadius, {static_cast(c_GUIColorGray), 0, 0, g_FrameMan.GetCurrentAlpha()}); + Color spawnRadiusColor(c_GUIColorGray); + spawnRadiusColor.SetA(g_FrameMan.GetCurrentAlpha()); + Draw::CircleLines(glm::vec2(aDrawPos[i].GetFloorIntX() + (pBitmap->w / 2), aDrawPos[i].GetFloorIntY() + (pBitmap->h / 2)), static_cast(m_SpawnRadius), spawnRadiusColor); } } } @@ -616,3 +619,5 @@ void Deployment::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode m } } } + +void Deployment::Draw(const Camera& camera) const {} diff --git a/Source/Entities/Deployment.h b/Source/Entities/Deployment.h index c3b3642515..8cb481d739 100644 --- a/Source/Entities/Deployment.h +++ b/Source/Entities/Deployment.h @@ -180,6 +180,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// like indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Returns whether this MOSprite is being drawn flipped horizontally /// (along the vertical axis), or not. diff --git a/Source/Entities/HDFirearm.cpp b/Source/Entities/HDFirearm.cpp index dee6346f0f..89b34c0670 100644 --- a/Source/Entities/HDFirearm.cpp +++ b/Source/Entities/HDFirearm.cpp @@ -1027,6 +1027,18 @@ void HDFirearm::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mo } } +void HDFirearm::Draw(const Camera& camera) const { + if (m_pFlash && m_FireFrame && !m_pFlash->IsDrawnAfterParent()) { + m_pFlash->Draw(camera); + } + + HeldDevice::Draw(camera); + + if (m_pFlash && m_FireFrame && m_pFlash->IsDrawnAfterParent()) { + m_pFlash->Draw(camera); + } +} + void HDFirearm::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whichScreen, bool playerControlled) { if (!m_HUDVisible) return; @@ -1066,3 +1078,5 @@ void HDFirearm::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whic putpixel(pTargetBitmap, aimPoint.GetFloorIntX(), aimPoint.GetFloorIntY(), g_YellowGlowColor); } } + +void HDFirearm::DrawHUD(const Camera& camera) {} diff --git a/Source/Entities/HDFirearm.h b/Source/Entities/HDFirearm.h index 6a4f6e983c..982505360b 100644 --- a/Source/Entities/HDFirearm.h +++ b/Source/Entities/HDFirearm.h @@ -439,12 +439,14 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Draws an aiming aid in front of this HeldDevice. /// @param pTargetBitmap A pointer to a BITMAP to draw on. /// @param targetPos The absolute position of the target bitmap's upper left corner in the Scene. (default: Vector()) /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements get drawn etc. (default: 0) void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Estimates what material strength one round in the magazine can destroy. /// @return The maximum material strength the regular or the tracer round can destroy. diff --git a/Source/Entities/HeldDevice.cpp b/Source/Entities/HeldDevice.cpp index 1b3d6d5bce..58f82f5c2f 100644 --- a/Source/Entities/HeldDevice.cpp +++ b/Source/Entities/HeldDevice.cpp @@ -490,3 +490,5 @@ void HeldDevice::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whi } } } + +void HeldDevice::DrawHUD(const Camera& camera) {} diff --git a/Source/Entities/HeldDevice.h b/Source/Entities/HeldDevice.h index 043f90b2d4..eb55b384ee 100644 --- a/Source/Entities/HeldDevice.h +++ b/Source/Entities/HeldDevice.h @@ -339,6 +339,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + using Attachable::Draw; /// Draws this' current graphical HUD overlay representation to a /// BITMAP of choice. @@ -347,6 +348,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; /// Resest all the timers used by this. Can be emitters, etc. This is to prevent backed up emissions to come out all at once while this has been held dormant in an inventory. void ResetAllTimers() override { diff --git a/Source/Entities/LimbPath.cpp b/Source/Entities/LimbPath.cpp index 3c9fc8fd5e..990e2979e2 100644 --- a/Source/Entities/LimbPath.cpp +++ b/Source/Entities/LimbPath.cpp @@ -654,3 +654,4 @@ void LimbPath::Draw(BITMAP* pTargetBitmap, } } +void LimbPath::Draw(const Camera& camera, Color color) const {} diff --git a/Source/Entities/LimbPath.h b/Source/Entities/LimbPath.h index 57e718aff9..eb517e6579 100644 --- a/Source/Entities/LimbPath.h +++ b/Source/Entities/LimbPath.h @@ -364,6 +364,7 @@ namespace RTE { /// @param targetPos The absolute position of the target bitmap's upper left corner in the Scene. (default: Vector()) /// @param color The color to draw the path's pixels as. (default: 34) void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), unsigned char color = 34) const; + void Draw(const Camera& cameram, Color color) const; /// Protected member variable and method declarations protected: diff --git a/Source/Entities/MOPixel.cpp b/Source/Entities/MOPixel.cpp index 17811231e3..893d0bb507 100644 --- a/Source/Entities/MOPixel.cpp +++ b/Source/Entities/MOPixel.cpp @@ -3,6 +3,7 @@ #include "Atom.h" #include "PostProcessMan.h" #include "FrameMan.h" +#include "Draw.h" using namespace RTE; @@ -243,3 +244,10 @@ void MOPixel::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode mode, g_SceneMan.RegisterDrawing(targetBitmap, m_MOID, pixelPos, 1.0F); } + +void MOPixel::Draw(const Camera& camera) const { + if (m_Atom && !m_Atom->GetDrawnTrail().empty()) { + Draw::Pixels(m_Atom->GetDrawnTrail(), Color(m_Atom->GetTrailColor().GetIndex())); + } + Draw::Pixel(GetRenderPos().GetFloored(), m_Color); +} diff --git a/Source/Entities/MOPixel.h b/Source/Entities/MOPixel.h index e64d28b078..9c3229380a 100644 --- a/Source/Entities/MOPixel.h +++ b/Source/Entities/MOPixel.h @@ -162,6 +162,7 @@ namespace RTE { /// @param mode In which mode to draw in. See the DrawMode enumeration for the modes. /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MOPixel, indicator arrows or hovering HUD text and so on. void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; #pragma endregion protected: diff --git a/Source/Entities/MOSParticle.cpp b/Source/Entities/MOSParticle.cpp index 848c77f08a..a61e2fe622 100644 --- a/Source/Entities/MOSParticle.cpp +++ b/Source/Entities/MOSParticle.cpp @@ -1,4 +1,5 @@ #include "MOSParticle.h" +#include "EffectsParticles.h" #include "Atom.h" #include "PostProcessMan.h" @@ -217,3 +218,24 @@ void MOSParticle::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode m g_SceneMan.RegisterDrawing(targetBitmap, m_MOID, spriteX, spriteY, spriteX + m_aSprite[m_Frame]->w, spriteY + m_aSprite[m_Frame]->h); } } + +void MOSParticle::Draw(const Camera& camera) const { + RTEAssert(!m_Sprites.empty(), "No sprite bitmaps loaded to draw " + GetPresetName()); + RTEAssert(m_Frame >= 0 && m_Frame < m_FrameCount, "Frame is out of bounds for " + GetPresetName()); + if (m_Atom && !m_Atom->GetDrawnTrail().empty()) { + Draw::Pixels(m_Atom->GetDrawnTrail(), Color(m_Atom->GetTrailColor().GetIndex())); + } + if (!camera.IsVisible(m_Pos, m_SpriteRadius)) { + return; + } + Vector spritePos((GetRenderPos() + m_SpriteOffset).GetFloored()); + Color tint = ApplyRenderBlendMode(); + Draw::DrawTexture(m_Sprites[m_Frame].get(), spritePos, tint); + RestoreRenderBlendMode(); + // Smoke (weightless air particles that float up) scatters the light passing through it. + if (m_GlobalAccScalar < 0.0F && m_Atom && m_Atom->GetMaterial() && m_Atom->GetMaterial()->GetIndex() == g_MaterialAir) { + float density = m_Lifetime > 0 ? std::clamp(1.0F - static_cast(GetAge()) / static_cast(m_Lifetime), 0.0F, 1.0F) : 1.0F; + Vector center = GetRenderPos(); + EffectsParticles::RegisterSmoke(this, glm::vec2(center.m_X, center.m_Y), m_SpriteRadius, density); + } +} diff --git a/Source/Entities/MOSParticle.h b/Source/Entities/MOSParticle.h index 5e1eb8739a..6e473a1918 100644 --- a/Source/Entities/MOSParticle.h +++ b/Source/Entities/MOSParticle.h @@ -106,6 +106,7 @@ namespace RTE { /// @param mode In which mode to draw in. See the DrawMode enumeration for the modes. /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MOSParticle, indicator arrows or hovering HUD text and so on. void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; #pragma endregion protected: diff --git a/Source/Entities/MOSRotating.cpp b/Source/Entities/MOSRotating.cpp index fd036c301f..4205d47b39 100644 --- a/Source/Entities/MOSRotating.cpp +++ b/Source/Entities/MOSRotating.cpp @@ -1,4 +1,8 @@ #include "MOSRotating.h" +#include "EffectsParticles.h" +#include "TerrainFire.h" +#include "TerrainCollapse.h" +#include "FluidSim.h" #include "CameraMan.h" #include "SettingsMan.h" @@ -13,8 +17,14 @@ #include "SoundContainer.h" #include "PostProcessMan.h" #include "FrameMan.h" +#include "DebugMan.h" #include "Draw.h" +#include "glm/gtx/transform.hpp" +#include "glm/ext/matrix_transform.hpp" + +#include "tracy/Tracy.hpp" + #include "RTEError.h" using namespace RTE; @@ -902,7 +912,7 @@ void MOSRotating::GibThis(const Vector& impactImpulse, MovableObject* movableObj } if (m_pScreenEffect && m_EffectOnGib && (m_EffectAlwaysShows || !g_SceneMan.ObscuredPoint(m_Pos.GetFloorIntX(), m_Pos.GetFloorIntY()))) { - g_PostProcessMan.RegisterPostEffect(m_Pos, m_pScreenEffect, m_ScreenEffectHash, 255, m_EffectRotAngle); + g_PostProcessMan.RegisterPostEffect(m_Pos, m_ScreenEffect, m_ScreenEffectHash, 255, m_EffectRotAngle); } if (m_LoudnessOnGib > 0) { @@ -913,6 +923,30 @@ void MOSRotating::GibThis(const Vector& impactImpulse, MovableObject* movableObj } void MOSRotating::CreateGibsWhenGibbing(const Vector& impactImpulse, MovableObject* movableObjectToIgnore) { + // Explosions push a refraction shockwave out, scaled by the energy of the gibs flying out (the same measure used for automatic screen shake). + float gibEnergy = 0.0F; + for (const Gib* gibSettingsObject: m_Gibs) { + if (gibSettingsObject->GetCount() == 0 || !gibSettingsObject->GetParticlePreset()) { + continue; + } + float gibMass = gibSettingsObject->GetParticlePreset()->GetMass() != 0 ? gibSettingsObject->GetParticlePreset()->GetMass() : 0.0001F; + float minVelocity = gibSettingsObject->GetMinVelocity(); + float maxVelocity = gibSettingsObject->GetMaxVelocity(); + if (minVelocity == 0 && maxVelocity == 0) { + minVelocity = m_GibBlastStrength / gibMass; + maxVelocity = minVelocity + 10.0F; + } + gibEnergy += gibMass * (minVelocity + maxVelocity) * 0.5F * static_cast(gibSettingsObject->GetCount()); + } + g_PostProcessMan.RegisterShockwave(m_Pos, gibEnergy); + g_PostProcessMan.RegisterScorchMark(m_Pos, gibEnergy); + EffectsParticles::SpawnExplosion(m_Pos, gibEnergy); + if (gibEnergy >= 2000.0F) { + TerrainFire::QueueIgniteArea(m_Pos, std::clamp(std::sqrt(gibEnergy) * 0.3F, 8.0F, 50.0F)); + TerrainCollapse::QueueCheck(m_Pos, std::clamp(std::sqrt(gibEnergy) * 0.6F + 12.0F, 24.0F, 110.0F)); + FluidSim::Disturb(m_Pos, std::clamp(std::sqrt(gibEnergy) * 0.6F + 12.0F, 24.0F, 110.0F)); + } + if (m_GibScreenShakeAmount != -1.0F) { g_CameraMan.AddScreenShake(m_GibScreenShakeAmount, m_Pos); } @@ -1290,6 +1324,36 @@ bool MOSRotating::DeepCheck(bool makeMOPs, int skipMOP, int maxMOPs) { return false; } +void MOSRotating::SetRenderBlendMode(int blendMode) { + MOSprite::SetRenderBlendMode(blendMode); + for (Attachable* attachable: m_Attachables) { + attachable->SetRenderBlendMode(blendMode); + } + for (AEmitter* wound: m_Wounds) { + wound->SetRenderBlendMode(blendMode); + } +} + +void MOSRotating::SetRenderOpacity(float opacity) { + MOSprite::SetRenderOpacity(opacity); + for (Attachable* attachable: m_Attachables) { + attachable->SetRenderOpacity(opacity); + } + for (AEmitter* wound: m_Wounds) { + wound->SetRenderOpacity(opacity); + } +} + +void MOSRotating::StoreRenderPreviousState() { + MOSprite::StoreRenderPreviousState(); + for (Attachable* attachable: m_Attachables) { + attachable->StoreRenderPreviousState(); + } + for (AEmitter* wound: m_Wounds) { + wound->StoreRenderPreviousState(); + } +} + void MOSRotating::Travel() { MOSprite::Travel(); @@ -1786,6 +1850,61 @@ void MOSRotating::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode } } +void MOSRotating::Draw(const Camera& camera) const { + ZoneScoped; + if (g_DebugMan.DrawSpriteBounds()) { + Draw::CircleLines(m_Pos + m_RecoilOffset, m_SpriteRadius, camera.IsVisible(m_Pos, m_SpriteRadius) ? g_YellowGlowColor : g_RedColor); + } + + for (const AEmitter* woundToDraw: m_Wounds) { + if (!woundToDraw->IsDrawnAfterParent()) { + woundToDraw->Draw(camera); + } + } + + // Draw all the attached attachables + for (const Attachable* attachableToDraw: m_Attachables) { + if (!attachableToDraw->IsDrawnAfterParent() && attachableToDraw->IsDrawnNormallyByParent()) { + attachableToDraw->Draw(camera); + } + } + if (!camera.IsVisible(m_Pos, m_SpriteRadius)) { + return; + } + // Interpolated between the previous and current sim state so motion is smooth at any frame rate. Position is snapped to whole pixels to keep the pixel art crisp. + Vector spritePos(GetRenderPos().GetRounded()); + Vector offset(m_SpriteOffset.GetRounded()); + + if (m_Recoiled) { + spritePos += m_RecoilOffset; + } + + Vector scale(m_Scale, m_Scale); + + if (m_HFlipped) { + scale.m_X *= -1; + } + + Color tint = ApplyRenderBlendMode(); + Draw::DrawTexture(m_Sprites[m_Frame].get(), spritePos, offset, -GetRenderRotMatrix().GetRadAngle(), scale, tint); + RestoreRenderBlendMode(); + + // Draw all the attached wound emitters, and only if the mode is g_DrawColor and not onlyphysical + // Only draw attachables and emitters which are not drawn after parent, so we draw them before + for (const AEmitter* woundToDraw: m_Wounds) { + if (woundToDraw->IsDrawnAfterParent()) { + woundToDraw->Draw(camera); + } + } + + // Draw all the attached attachables + for (const Attachable* attachableToDraw: m_Attachables) { + if (attachableToDraw->IsDrawnAfterParent() && attachableToDraw->IsDrawnNormallyByParent()) { + attachableToDraw->Draw(camera); + } + } +} + bool MOSRotating::HandlePotentialRadiusAffectingAttachable(const Attachable* attachable) { if (!attachable->IsAttachedTo(this) && !attachable->IsWound()) { return false; diff --git a/Source/Entities/MOSRotating.h b/Source/Entities/MOSRotating.h index 967af352ca..4531d60a26 100644 --- a/Source/Entities/MOSRotating.h +++ b/Source/Entities/MOSRotating.h @@ -328,6 +328,15 @@ namespace RTE { /// Updates this MovableObject. Supposed to be done every frame. void Update() override; + /// Stores the current state as the previous render state, for this and all attachables and wounds. See MovableObject::StoreRenderPreviousState. + void StoreRenderPreviousState() override; + + /// Sets the render blend mode of this and all its attachables and wounds, so a whole actor can be made e.g. ghostly at once. + void SetRenderBlendMode(int blendMode) override; + + /// Sets the render opacity of this and all its attachables and wounds. + void SetRenderOpacity(float opacity) override; + // Stuff that needs to be updated post-Update. void PostUpdate() override; @@ -339,6 +348,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Gets the gib impulse limit for this MOSRotating, i.e. the amount of impulse force required in a frame to gib this MOSRotating. /// @return The gib impulse limit of this MOSRotating. diff --git a/Source/Entities/MOSprite.cpp b/Source/Entities/MOSprite.cpp index 7739e8d2e4..a699c1a863 100644 --- a/Source/Entities/MOSprite.cpp +++ b/Source/Entities/MOSprite.cpp @@ -5,6 +5,8 @@ #include "SceneMan.h" #include "FrameMan.h" #include "Draw.h" +#include "RenderMan.h" +#include "DebugMan.h" using namespace RTE; @@ -36,6 +38,7 @@ void MOSprite::Clear() { m_SpriteDiameter = 2.0F; m_Rotation.Reset(); m_PrevRotation.Reset(); + m_RenderPrevRotation.Reset(); m_AngularVel = 0; m_PrevAngVel = 0; m_AngOscillations = 0; @@ -48,11 +51,14 @@ void MOSprite::Clear() { int MOSprite::Create() { if (MovableObject::Create() < 0) return -1; - + // Post-process reading m_aSprite.clear(); m_SpriteFile.GetAsAnimation(m_aSprite, m_FrameCount); + m_Sprites.clear(); // Copies start with the copied preset's frames, which a SpriteFile of their own replaces. + m_SpriteFile.GetAsAnimation(m_Sprites, m_FrameCount); + if (!m_aSprite.empty() && m_aSprite[0]) { // Set default sprite offset if (m_SpriteOffset.IsZero()) { @@ -82,6 +88,8 @@ int MOSprite::Create(ContentFile spriteFile, m_FrameCount = frameCount; m_aSprite.clear(); m_SpriteFile.GetAsAnimation(m_aSprite, m_FrameCount); + m_Sprites.clear(); + m_SpriteFile.GetAsAnimation(m_Sprites, m_FrameCount); m_SpriteOffset.SetXY(static_cast(-m_aSprite[0]->w) / 2.0F, static_cast(-m_aSprite[0]->h) / 2.0F); m_HFlipped = false; @@ -111,6 +119,7 @@ int MOSprite::Create(const MOSprite& reference) { m_FrameCount = reference.m_FrameCount; m_Frame = reference.m_Frame; m_aSprite = reference.m_aSprite; + m_Sprites = reference.m_Sprites; m_SpriteOffset = reference.m_SpriteOffset; m_SpriteAnimMode = reference.m_SpriteAnimMode; m_SpriteAnimDuration = reference.m_SpriteAnimDuration; @@ -237,7 +246,7 @@ void MOSprite::Destroy(bool notInherited) { // delete m_pExitWound; if (m_SpriteModified) { - for (BITMAP* sprite : m_aSprite) { + for (BITMAP* sprite: m_aSprite) { destroy_bitmap(sprite); } } @@ -409,7 +418,7 @@ bool MOSprite::SetSpritePixelIndex(int x, int y, int whichFrame, int colorIndex, if (!m_SpriteModified) { std::vector spriteList; - for (BITMAP* sprite : m_aSprite) { + for (BITMAP* sprite: m_aSprite) { BITMAP* spriteCopy = create_bitmap_ex(8, sprite->w, sprite->h); rectfill(spriteCopy, 0, 0, spriteCopy->w - 1, spriteCopy->h - 1, 0); draw_sprite(spriteCopy, sprite, 0, 0); @@ -495,10 +504,7 @@ void MOSprite::Update() { } } -void MOSprite::Draw(BITMAP* pTargetBitmap, - const Vector& targetPos, - DrawMode mode, - bool onlyPhysical) const { +void MOSprite::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mode, bool onlyPhysical) const { if (!m_aSprite[m_Frame]) RTEAbort("Sprite frame pointer is null when drawing MOSprite!"); @@ -573,3 +579,40 @@ void MOSprite::Draw(BITMAP* pTargetBitmap, g_SceneMan.RegisterDrawing(pTargetBitmap, m_MOID, spriteX, spriteY, spriteX + m_aSprite[m_Frame]->w, spriteY + m_aSprite[m_Frame]->h); } } + +void MOSprite::Draw(const Camera& camera) const { + + if (g_DebugMan.DrawSpriteBounds()) { + Draw::CircleLines(m_Pos, m_SpriteRadius, g_YellowGlowColor); + } + + if (!camera.IsVisible(m_Pos, m_SpriteRadius)) { + return; + } + + Vector renderPos = GetRenderPos().GetRounded(); + float spriteWidth = m_Sprites[m_Frame]->GetDimensions().w; + float spriteHeight = m_Sprites[m_Frame]->GetDimensions().h; + + Color tint = ApplyRenderBlendMode(); + if (!m_HFlipped) { + Draw::DrawTexture(m_Sprites[m_Frame].get(), renderPos + m_SpriteOffset, tint); + } else { + // Mirror the sprite offset around the position, then draw the quad with negative width to flip the texture. + float spriteLeft = renderPos.m_X - (spriteWidth + m_SpriteOffset.m_X); + Draw::DrawTexture(m_Sprites[m_Frame].get(), FloatRect(spriteLeft + spriteWidth, renderPos.m_Y + m_SpriteOffset.m_Y, -spriteWidth, spriteHeight), tint); + } + RestoreRenderBlendMode(); +} + +void MOSprite::StoreRenderPreviousState() { + MovableObject::StoreRenderPreviousState(); + m_RenderPrevRotation = m_Rotation; +} + +Matrix MOSprite::GetRenderRotMatrix() const { + if (!m_HasRenderPrevState) { + return m_Rotation; + } + return Lerp(0.0F, 1.0F, m_RenderPrevRotation, m_Rotation, g_TimerMan.GetSimUpdateProportion()); +} diff --git a/Source/Entities/MOSprite.h b/Source/Entities/MOSprite.h index 02264dd323..2b97597334 100644 --- a/Source/Entities/MOSprite.h +++ b/Source/Entities/MOSprite.h @@ -12,6 +12,7 @@ namespace RTE { class AEmitter; + class BitmapTexture; /// A movable object with mass that is graphically represented by a /// BITMAP. class MOSprite : public MovableObject { @@ -158,6 +159,13 @@ namespace RTE { /// @return The rotational Matrix of this MovableObject. Matrix GetRotMatrix() const override { return m_Rotation; } + /// Gets the rotation to render this at, interpolated between the previous and the current sim update. + /// @return The interpolated render rotation. + Matrix GetRenderRotMatrix() const; + + /// Stores the current state as the previous render state. See MovableObject::StoreRenderPreviousState. + void StoreRenderPreviousState() override; + /// Gets the current rotational angle of of this, in radians. /// @return The rotational angle of this, in radians. float GetRotAngle() const override { return m_Rotation.GetRadAngle(); } @@ -339,6 +347,8 @@ namespace RTE { /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; + /// Returns a positive or negative number value to multiply with for external calculations. /// @return 1 for not flipped, -1 for flipped. float GetFlipFactor() const { return m_HFlipped ? -1.0F : 1.0F; } @@ -350,11 +360,13 @@ namespace RTE { Matrix m_Rotation; // Rotational matrix of this MovableObject. Matrix m_PrevRotation; // Rotational matrix of this MovableObject, last frame. + Matrix m_RenderPrevRotation; //!< Rotation at the start of the last sim update, for render interpolation only. float m_AngularVel; // The angular velocity by which this MovableObject rotates, in radians per second (r/s). float m_PrevAngVel; // Previous frame's angular velocity. ContentFile m_SpriteFile; // Vector of pointers to BITMAPs representing the multiple frames of this sprite. std::vector m_aSprite; + std::vector> m_Sprites; ContentFile m_IconFile; //!< The file containing the GUI icon. BITMAP* m_GraphicalIcon; //!< The GUI representation of this MOSprite as a BITMAP. // Number of frames, or elements in the m_aSprite array. diff --git a/Source/Entities/Magazine.cpp b/Source/Entities/Magazine.cpp index 461f5e5c73..01abc20ec0 100644 --- a/Source/Entities/Magazine.cpp +++ b/Source/Entities/Magazine.cpp @@ -202,3 +202,5 @@ void Magazine::Draw(BITMAP* pTargetBitmap, bool onlyPhysical) const { Attachable::Draw(pTargetBitmap, targetPos, mode, onlyPhysical); } + +void Magazine::Draw(const Camera& camera) const {} diff --git a/Source/Entities/Magazine.h b/Source/Entities/Magazine.h index 4d08a5d960..451a1f8001 100644 --- a/Source/Entities/Magazine.h +++ b/Source/Entities/Magazine.h @@ -124,6 +124,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Protected member variable and method declarations protected: diff --git a/Source/Entities/MovableObject.cpp b/Source/Entities/MovableObject.cpp index a8190cc418..87ed28d1df 100644 --- a/Source/Entities/MovableObject.cpp +++ b/Source/Entities/MovableObject.cpp @@ -1,4 +1,5 @@ #include "MovableObject.h" +#include "RenderMan.h" #include "ActivityMan.h" #include "PresetMan.h" @@ -18,6 +19,7 @@ #include "tracy/Tracy.hpp" #include +#include "Texture.h" using namespace RTE; @@ -39,6 +41,8 @@ void MovableObject::Clear() { m_Mass = 0; m_Vel.Reset(); m_PrevPos.Reset(); + m_RenderPrevPos.Reset(); + m_HasRenderPrevState = false; m_PrevVel.Reset(); m_DistanceTravelled = 0; m_Scale = 1.0; @@ -100,6 +104,13 @@ void MovableObject::Clear() { m_EffectStopStrength = 128; m_EffectAlwaysShows = false; m_PostEffectEnabled = false; + m_LightColor.SetRGB(255, 255, 255); + m_LightRadius = 0.0F; + m_LightIntensity = 0.0F; + m_LightFlicker = 0.0F; + m_LightOffset.Reset(); + m_RenderBlendMode = 0; + m_RenderOpacity = 1.0F; m_UniqueID = 0; @@ -224,6 +235,13 @@ int MovableObject::Create(const MovableObject& reference) { m_CanBeSquished = reference.m_CanBeSquished; m_HUDVisible = reference.m_HUDVisible; m_PostEffectEnabled = reference.m_PostEffectEnabled; + m_LightColor = reference.m_LightColor; + m_LightRadius = reference.m_LightRadius; + m_LightIntensity = reference.m_LightIntensity; + m_LightFlicker = reference.m_LightFlicker; + m_LightOffset = reference.m_LightOffset; + m_RenderBlendMode = reference.m_RenderBlendMode; + m_RenderOpacity = reference.m_RenderOpacity; m_ForceIntoMasterLuaState = reference.m_ForceIntoMasterLuaState; for (const auto& scriptPath: reference.m_AllLoadedScripts) { @@ -233,6 +251,7 @@ int MovableObject::Create(const MovableObject& reference) { if (reference.m_pScreenEffect) { m_ScreenEffectFile = reference.m_ScreenEffectFile; m_pScreenEffect = m_ScreenEffectFile.GetAsBitmap(); + m_ScreenEffect = m_ScreenEffectFile.GetAsTexture(); } m_EffectRotAngle = reference.m_EffectRotAngle; m_InheritEffectRotAngle = reference.m_InheritEffectRotAngle; @@ -343,9 +362,26 @@ int MovableObject::ReadProperty(const std::string_view& propName, Reader& reader MatchProperty("ScreenEffect", { reader >> m_ScreenEffectFile; m_pScreenEffect = m_ScreenEffectFile.GetAsBitmap(); + m_ScreenEffect = m_ScreenEffectFile.GetAsTexture(); m_ScreenEffectHash = m_ScreenEffectFile.GetHash(); }); MatchProperty("PostEffectEnabled", { reader >> m_PostEffectEnabled; }); + MatchProperty("LightColor", { reader >> m_LightColor; }); + MatchProperty("LightRadius", { reader >> m_LightRadius; }); + MatchProperty("LightIntensity", { reader >> m_LightIntensity; }); + MatchProperty("LightFlicker", { reader >> m_LightFlicker; }); + MatchProperty("LightOffset", { reader >> m_LightOffset; }); + MatchProperty("RenderBlendMode", { + std::string mode = reader.ReadPropValue(); + if (mode == "Additive" || mode == "1") { + m_RenderBlendMode = 1; + } else if (mode == "Screen" || mode == "2") { + m_RenderBlendMode = 2; + } else { + m_RenderBlendMode = 0; + } + }); + MatchProperty("RenderOpacity", { reader >> m_RenderOpacity; m_RenderOpacity = std::clamp(m_RenderOpacity, 0.0F, 1.0F); }); MatchProperty("EffectStartTime", { reader >> m_EffectStartTime; }); MatchProperty("EffectRotAngle", { reader >> m_EffectRotAngle; }); MatchProperty("InheritEffectRotAngle", { reader >> m_InheritEffectRotAngle; }); @@ -453,6 +489,18 @@ int MovableObject::Save(Writer& writer) const { writer << m_ScreenEffectFile; writer.NewProperty("PostEffectEnabled"); writer << m_PostEffectEnabled; + writer.NewProperty("LightColor"); + writer << m_LightColor; + writer.NewProperty("LightRadius"); + writer << m_LightRadius; + writer.NewProperty("LightIntensity"); + writer << m_LightIntensity; + writer.NewProperty("LightFlicker"); + writer << m_LightFlicker; + writer.NewProperty("LightOffset"); + writer << m_LightOffset; + writer.NewPropertyWithValue("RenderBlendMode", m_RenderBlendMode); + writer.NewPropertyWithValue("RenderOpacity", m_RenderOpacity); writer.NewProperty("EffectStartTime"); writer << m_EffectStartTime; writer.NewProperty("EffectStopTime"); @@ -834,6 +882,47 @@ void MovableObject::ApplyImpulses() { m_ImpulseForces.clear(); } +Color MovableObject::ApplyRenderBlendMode() const { + int opacity = static_cast(m_RenderOpacity * 255.0F); + switch (m_RenderBlendMode) { + case 1: + g_RenderMan.SetActiveBlendMode(BlendMode(Blend::ADD)); + return Color(255, 255, 255, opacity); + case 2: + g_RenderMan.SetActiveBlendMode(BlendMode(Blend::SCREEN)); + // Screen blending ignores alpha, so fade by darkening instead. + return Color(opacity, opacity, opacity, 255); + default: + if (opacity < 255) { + g_RenderMan.SetActiveBlendMode(BlendMode(Blend::ALPHA)); + } + return Color(255, 255, 255, opacity); + } +} + +void MovableObject::RestoreRenderBlendMode() const { + if (m_RenderBlendMode != 0 || m_RenderOpacity < 1.0F) { + g_RenderMan.SetActiveBlendMode(BlendMode(Blend::ALPHA)); + } +} + +void MovableObject::StoreRenderPreviousState() { + m_RenderPrevPos = m_Pos; + m_HasRenderPrevState = true; +} + +Vector MovableObject::InterpolateRenderPosition(const Vector& previous, const Vector& current) const { + if (!m_HasRenderPrevState) { + return current; + } + // Moves across a wrapping seam should interpolate the short way, and anything that moved further than plausible in one update teleported, so don't smear it across the screen. + Vector delta = g_SceneMan.ShortestDistance(previous, current, true); + if (delta.MagnitudeIsGreaterThan(c_RenderInterpolationTeleportDistance)) { + return current; + } + return current - (delta * (1.0F - g_TimerMan.GetSimUpdateProportion())); +} + void MovableObject::PreTravel() { // Temporarily remove the representation of this from the scene MO sampler if (m_GetsHitByMOs) { @@ -895,9 +984,18 @@ void MovableObject::Update() { m_EffectRotAngle = c_PI * 2.0F * RandomNormalNum(); } - if (m_pScreenEffect && m_PostEffectEnabled) { + if (m_ScreenEffect && m_PostEffectEnabled) { SetPostScreenEffectToDraw(); } + + if (m_LightRadius > 0.0F && m_LightIntensity > 0.0F) { + Vector lightOffset = m_LightOffset; + if (!lightOffset.IsZero()) { + lightOffset = lightOffset.GetXFlipped(IsHFlipped()) * GetRotMatrix(); + } + float flicker = m_LightFlicker > 0.0F ? 1.0F - m_LightFlicker * RandomNum(0.0F, 1.0F) : 1.0F; + g_PostProcessMan.RegisterLight(m_Pos + lightOffset, glm::vec3(m_LightColor.GetR(), m_LightColor.GetG(), m_LightColor.GetB()), m_LightRadius, m_LightIntensity * flicker); + } } void MovableObject::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode mode, bool onlyPhysical) const { @@ -908,6 +1006,8 @@ void MovableObject::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode g_SceneMan.RegisterDrawing(targetBitmap, m_MOID, m_Pos - targetPos, 1.0F); } +void MovableObject::Draw(const Camera& camera) const {} + int MovableObject::UpdateScripts() { m_SimUpdatesSinceLastScriptedUpdate++; @@ -1128,7 +1228,7 @@ bool MovableObject::DrawToTerrain(SLTerrain* terrain) { void MovableObject::SetPostScreenEffectToDraw() const { if (m_AgeTimer.GetElapsedSimTimeMS() >= m_EffectStartTime && (m_EffectStopTime == 0 || !m_AgeTimer.IsPastSimMS(m_EffectStopTime))) { if (m_EffectAlwaysShows || !g_SceneMan.ObscuredPoint(m_Pos.GetFloorIntX(), m_Pos.GetFloorIntY())) { - g_PostProcessMan.RegisterPostEffect(m_Pos, m_pScreenEffect, m_ScreenEffectHash, Lerp(m_EffectStartTime, m_EffectStopTime, m_EffectStartStrength, m_EffectStopStrength, m_AgeTimer.GetElapsedSimTimeMS()), m_EffectRotAngle); + g_PostProcessMan.RegisterPostEffect(m_Pos, m_ScreenEffect, m_ScreenEffectHash, Lerp(m_EffectStartTime, m_EffectStopTime, m_EffectStartStrength, m_EffectStopStrength, m_AgeTimer.GetElapsedSimTimeMS()), m_EffectRotAngle); } } } diff --git a/Source/Entities/MovableObject.h b/Source/Entities/MovableObject.h index b1c7599c78..1b5886ae17 100644 --- a/Source/Entities/MovableObject.h +++ b/Source/Entities/MovableObject.h @@ -25,6 +25,7 @@ namespace RTE { class PieMenu; class SLTerrain; class LuaStateWrapper; + class Texture; /// A movable object with mass. class MovableObject : public SceneObject { @@ -357,7 +358,7 @@ namespace RTE { /// Gets the screen effect this has loaded, which can be applied to post /// rendering. Ownership is NOT transferred! /// @return The 32bpp screen effect BITMAP. Ownership is NOT transferred! - BITMAP* GetScreenEffect() const { return m_pScreenEffect; } + std::shared_ptr GetScreenEffect() const { return m_ScreenEffect; } /// Gets the hash of the path of this object's screen effect file. Used to /// transfer glow effects over network. The hash itself is calculated during @@ -861,6 +862,50 @@ namespace RTE { /// calling Travel. virtual void PreTravel(); + /// Stores the current state as the previous render state. Called at the start of every sim update before anything moves. + /// This is render only: it is never read by the simulation, so it can't affect determinism. + virtual void StoreRenderPreviousState(); + + /// Gets the position to render this at, interpolated between the previous and the current sim update. + /// @return The interpolated render position. + Vector GetRenderPos() const { return InterpolateRenderPosition(m_RenderPrevPos, m_Pos); } + + /// Gets how this is blended when drawn: 0 normal, 1 additive (glowy energy, plasma), 2 screen (soft light). + int GetRenderBlendMode() const { return m_RenderBlendMode; } + virtual void SetRenderBlendMode(int blendMode) { m_RenderBlendMode = std::clamp(blendMode, 0, 2); } + /// Gets the opacity this is drawn with, 0 to 1. + float GetRenderOpacity() const { return m_RenderOpacity; } + virtual void SetRenderOpacity(float opacity) { m_RenderOpacity = std::clamp(opacity, 0.0F, 1.0F); } + + /// Applies this' render blend mode to the active render batch and returns the vertex tint to draw with. Call RestoreRenderBlendMode after drawing. + Color ApplyRenderBlendMode() const; + /// Restores the default blend mode after drawing with ApplyRenderBlendMode. + void RestoreRenderBlendMode() const; + + /// Gets the radius of the light this casts. 0 means no light. + float GetLightRadius() const { return m_LightRadius; } + void SetLightRadius(float radius) { m_LightRadius = radius; } + /// Gets the brightness of the light this casts. 0 means no light. + float GetLightIntensity() const { return m_LightIntensity; } + void SetLightIntensity(float intensity) { m_LightIntensity = intensity; } + /// Gets how much the light this casts flickers, 0 to 1. + float GetLightFlicker() const { return m_LightFlicker; } + void SetLightFlicker(float flicker) { m_LightFlicker = flicker; } + /// Sets the color of the light this casts, 0-255 per channel. + void SetLightColor(int red, int green, int blue) { m_LightColor.SetRGB(red, green, blue); } + int GetLightRed() const { return m_LightColor.GetR(); } + int GetLightGreen() const { return m_LightColor.GetG(); } + int GetLightBlue() const { return m_LightColor.GetB(); } + /// Gets the offset of the light from this' position, rotated and flipped with this. + const Vector& GetLightOffset() const { return m_LightOffset; } + void SetLightOffset(const Vector& offset) { m_LightOffset = offset; } + + /// Interpolates a position between its value at the previous and the current sim update, taking scene wrapping into account and snapping on teleports. + /// @param previous The position at the previous sim update. + /// @param current The position at the current sim update. + /// @return The interpolated position. + Vector InterpolateRenderPosition(const Vector& previous, const Vector& current) const; + /// Travels this MovableObject, using its physical representation. virtual void Travel(); @@ -877,6 +922,7 @@ namespace RTE { void Update() override; void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Updates this MovableObject's Lua scripts. /// @return An error return value signaling success or any particular failure. Anything below 0 is an error signal. @@ -973,6 +1019,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements (default: 0) /// get drawn etc. virtual void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) { return; } + virtual void DrawHUD(const Camera& camera) { return; } /// Returns current rest threshold for this MO /// @return Rest threshold of this MO @@ -1149,6 +1196,8 @@ namespace RTE { float m_Mass; // In metric kilograms (kg). Vector m_Vel; // In meters per second (m/s). Vector m_PrevPos; // Previous frame's position. + Vector m_RenderPrevPos; //!< Position at the start of the last sim update, for render interpolation only. + bool m_HasRenderPrevState; //!< Whether the previous render state has been stored since this was created. Freshly spawned objects render at their current state. Vector m_PrevVel; // Previous frame's velocity. float m_DistanceTravelled; //!< An estimate of how many pixels this MO has travelled since its creation. float m_Scale; // The scale that this MovableObject's representation will be drawn in. 1.0 being 1:1; @@ -1252,6 +1301,7 @@ namespace RTE { ContentFile m_ScreenEffectFile; // Not owned by this, owned by the contentfiles BITMAP* m_pScreenEffect; + std::shared_ptr m_ScreenEffect; size_t m_ScreenEffectHash; @@ -1265,6 +1315,13 @@ namespace RTE { int m_EffectStopStrength; // The effect can't be obscured bool m_EffectAlwaysShows; + Color m_LightColor; //!< Color of the light this casts, 0-255. + float m_LightRadius; //!< Radius of the light this casts, in pixels. 0 means no light. + float m_LightIntensity; //!< Brightness of the light this casts. 0 means no light. + float m_LightFlicker; //!< How much the light randomly flickers, 0 to 1. + int m_RenderBlendMode; //!< How this is blended when drawn: 0 normal, 1 additive, 2 screen. + float m_RenderOpacity; //!< Opacity this is drawn with, 0 to 1. + Vector m_LightOffset; //!< Offset of the light from this' position, rotated and flipped with this. // The effect's rotation angle float m_EffectRotAngle; // Whether effect's rot angle should be inherited from parent diff --git a/Source/Entities/PEmitter.cpp b/Source/Entities/PEmitter.cpp index 13141a80b1..67c1c7b91a 100644 --- a/Source/Entities/PEmitter.cpp +++ b/Source/Entities/PEmitter.cpp @@ -440,3 +440,5 @@ void PEmitter::Draw(BITMAP* pTargetBitmap, bool onlyPhysical) const { MOSParticle::Draw(pTargetBitmap, targetPos, mode, onlyPhysical); } + +void PEmitter::Draw(const Camera& camera) const {} diff --git a/Source/Entities/PEmitter.h b/Source/Entities/PEmitter.h index 48f3bef001..609a927769 100644 --- a/Source/Entities/PEmitter.h +++ b/Source/Entities/PEmitter.h @@ -261,6 +261,7 @@ namespace RTE { /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, (default: false) /// indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; /// Gets the number of emissions left before emitter is disabled. /// @return The number of emissions left before emitter is disabled. diff --git a/Source/Entities/PieMenu.cpp b/Source/Entities/PieMenu.cpp index 7fa69610dd..4cea4d8ad0 100644 --- a/Source/Entities/PieMenu.cpp +++ b/Source/Entities/PieMenu.cpp @@ -1,11 +1,12 @@ #include "PieMenu.h" #include "FrameMan.h" +#include "Draw.h" #include "UInputMan.h" #include "PresetMan.h" #include "SettingsMan.h" #include "LuaMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "AHuman.h" #include "ContentFile.h" @@ -652,11 +653,11 @@ void PieMenu::Draw(BITMAP* targetBitmap, const Vector& targetPos) const { if (m_EnabledState != EnabledState::Disabled) { if (m_DrawBackgroundTransparent) { g_FrameMan.SetTransTableFromPreset(TransparencyPreset::MoreTrans); - g_GLResourceMan.UpdateDynamicBitmap(m_BGBitmap, true); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_BGBitmap), drawPos.GetFloorIntX() - m_BGBitmap->w / 2, drawPos.GetFloorIntY() - m_BGBitmap->h / 2, {255, 255, 255, g_FrameMan.GetCurrentAlpha()}); + g_GLStateMan.UpdateDynamicBitmap(m_BGBitmap, true); + RTE::DrawTexture(m_BGBitmap, drawPos.GetFloorIntX() - m_BGBitmap->w / 2, drawPos.GetFloorIntY() - m_BGBitmap->h / 2, RLColor{255, 255, 255, static_cast(g_FrameMan.GetCurrentAlpha())}); } else { - g_GLResourceMan.UpdateDynamicBitmap(m_BGBitmap, true); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_BGBitmap), drawPos.GetFloorIntX() - m_BGBitmap->w / 2, drawPos.GetFloorIntY() - m_BGBitmap->h / 2, {255, 255, 255, 255}); + g_GLStateMan.UpdateDynamicBitmap(m_BGBitmap, true); + RTE::DrawTexture(m_BGBitmap, drawPos.GetFloorIntX() - m_BGBitmap->w / 2, drawPos.GetFloorIntY() - m_BGBitmap->h / 2, RLColor{255, 255, 255, 255}); } } rlZDepth(c_DefaultDrawDepth); @@ -674,6 +675,8 @@ void PieMenu::Draw(BITMAP* targetBitmap, const Vector& targetPos) const { rlZDepth(c_DefaultDrawDepth); } +void PieMenu::Draw(const Camera& camera) const {} + void PieMenu::UpdateWobbling() { float innerRadiusChange = static_cast(m_EnableDisableAnimationTimer.GetElapsedRealTimeMS()) / 6.0F; diff --git a/Source/Entities/PieMenu.h b/Source/Entities/PieMenu.h index 2ea1fae9cd..4174582eed 100644 --- a/Source/Entities/PieMenu.h +++ b/Source/Entities/PieMenu.h @@ -270,6 +270,7 @@ namespace RTE { /// @param targetBitmap A pointer to a BITMAP to draw on. Generally a screen BITMAP. /// @param targetPos The absolute position of the target bitmap's upper left corner in the scene. void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector()) const; + void Draw(const Camera& camera) const; #pragma endregion #pragma region Event Handling diff --git a/Source/Entities/SLBackground.cpp b/Source/Entities/SLBackground.cpp index df0237773b..aea499ba87 100644 --- a/Source/Entities/SLBackground.cpp +++ b/Source/Entities/SLBackground.cpp @@ -1,8 +1,10 @@ #include "SLBackground.h" +#include "Shapes.h" #include "FrameMan.h" #include "SceneMan.h" #include "SettingsMan.h" #include +#include "Draw.h" #include "raylib/raylib.h" #include "raylib/rlgl.h" @@ -47,8 +49,11 @@ int SLBackground::Create() { StaticSceneLayer::Create(); m_Bitmaps.clear(); + m_Textures.clear(); m_BitmapFile.GetAsAnimation(m_Bitmaps, m_FrameCount); + m_BitmapFile.GetAsAnimation(m_Textures, m_FrameCount); m_MainBitmap = m_Bitmaps[0]; + m_StaticTexture = m_Textures[0]; if (m_FrameCount == 1) { m_SpriteAnimMode = SpriteAnimMode::NOANIM; @@ -70,13 +75,13 @@ int SLBackground::Create() { int SLBackground::Create(const SLBackground& reference) { StaticSceneLayer::Create(reference); - // The main bitmap is created and owned by SceneLayer because it can be modified. We need to destroy it to avoid a leak because the bitmaps we'll be using here are owned by ContentFile static maps and are unmodifiable. - destroy_bitmap(m_MainBitmap); m_MainBitmapOwned = false; m_Bitmaps.clear(); m_Bitmaps = reference.m_Bitmaps; + m_Textures = reference.m_Textures; m_MainBitmap = m_Bitmaps[0]; + m_StaticTexture = m_Textures[0]; m_FillColorLeft = reference.m_FillColorLeft; m_FillColorRight = reference.m_FillColorRight; @@ -109,7 +114,6 @@ int SLBackground::ReadProperty(const std::string_view& propName, Reader& reader) }); MatchProperty("SpriteAnimDuration", { reader >> m_SpriteAnimDuration; }); MatchProperty("IsAnimatedManually", { reader >> m_IsAnimatedManually; }); - MatchProperty("DrawTransparent", { reader >> m_DrawMasked; }); MatchProperty("ScrollRatio", { // Actually read the ScrollInfo, not the ratio. The ratios will be initialized later. reader >> m_ScrollInfo; @@ -118,6 +122,7 @@ int SLBackground::ReadProperty(const std::string_view& propName, Reader& reader) reader >> m_ScaleFactor; SetScaleFactor(m_ScaleFactor); }); + MatchProperty("DrawTransparent", { bool deprecate; reader >> deprecate; } ); // TODO: Remove MatchProperty("IgnoreAutoScaling", { reader >> m_IgnoreAutoScale; }); MatchProperty("OriginPointOffset", { reader >> m_OriginOffset; }); MatchProperty("CanAutoScrollX", { reader >> m_CanAutoScrollX; }); @@ -135,7 +140,6 @@ int SLBackground::Save(Writer& writer) const { writer.NewPropertyWithValue("SpriteAnimMode", m_SpriteAnimMode); writer.NewPropertyWithValue("SpriteAnimDuration", m_SpriteAnimDuration); writer.NewPropertyWithValue("IsAnimatedManually", m_IsAnimatedManually); - writer.NewPropertyWithValue("DrawTransparent", m_DrawMasked); writer.NewPropertyWithValue("ScrollRatio", m_ScrollInfo); writer.NewPropertyWithValue("ScaleFactor", m_ScaleFactor); writer.NewPropertyWithValue("IgnoreAutoScaling", m_IgnoreAutoScale); @@ -196,7 +200,12 @@ void SLBackground::Update() { m_SpriteAnimTimer.Reset(); } } + m_MainBitmap = m_Bitmaps.at(m_Frame); + m_StaticTexture = m_Textures.at(m_Frame); + + // Layers that scroll slower are further away. Place them deeper so the lighting can haze them by distance. Draw order is unaffected, since further layers are drawn first anyway. + m_ZOrder = c_BackgroundDepth + (1.0F - std::clamp(std::abs(m_ScrollRatio.GetX()), 0.0F, 1.0F)) * c_BackgroundDepthRange; if (IsAutoScrolling()) { if (m_AutoScrollStepTimer.GetElapsedSimTimeMS() > m_AutoScrollStepInterval) { @@ -210,6 +219,15 @@ void SLBackground::Update() { m_AutoScrollStepTimer.Reset(); } m_Offset.SetXY(std::floor((m_Offset.GetX() * m_ScrollRatio.GetX()) + m_AutoScrollOffset.GetX()), std::floor((m_Offset.GetY() * m_ScrollRatio.GetY()) + m_AutoScrollOffset.GetY())); + } else { + m_Offset *= m_ScrollRatio; + } + + if (m_WrapX) { + m_Offset.m_X = std::fmod(m_Offset.m_X, m_ScaledDimensions.m_X); + } + if (m_WrapY) { + m_Offset.m_Y = std::fmod(m_Offset.m_Y, m_ScaledDimensions.m_Y); } } @@ -224,22 +242,40 @@ void SLBackground::Draw(const Box& targetDimensions, Box& targetBox, bool offset int targetBoxHeight = static_cast(targetBox.GetHeight()); rlZDepth(m_ZOrder); + // Fills with a palette color; widths and heights may come in negative. + auto fillRectangle = [](float x, float y, float width, float height, int paletteIndex) { + if (width < 0.0F) { + x += width; + width = -width; + } + if (height < 0.0F) { + y += height; + height = -height; + } + if (width > 0.0F && height > 0.0F) { + Draw::Rectangle(FloatRect(x, y, width, height), Color(paletteIndex)); + } + }; // Detect if non-wrapping layer dimensions can't cover the whole target area with its main bitmap. If so, fill in the gap with appropriate solid color sampled from the hanging edge. if (!m_WrapX && bitmapWidth <= targetBoxWidth) { if (m_FillColorLeft != ColorKeys::g_MaskColor && m_Offset.GetFloorIntX() != 0) { - DrawRectangle(targetBoxCornerX, targetBoxCornerY, -m_Offset.m_X, targetBoxHeight, {static_cast(m_FillColorLeft), 0, 0, 255}); + fillRectangle(targetBoxCornerX, targetBoxCornerY, -m_Offset.m_X, targetBoxHeight, m_FillColorLeft); } if (m_FillColorRight != ColorKeys::g_MaskColor) { - DrawRectangle(targetBoxCornerX + bitmapWidth - m_Offset.m_X, targetBoxCornerY, targetBoxWidth - bitmapWidth + m_Offset.m_X, targetBoxHeight, {static_cast(m_FillColorRight), 0, 0, 255}); + fillRectangle(targetBoxCornerX + bitmapWidth - m_Offset.m_X, targetBoxCornerY, targetBoxWidth - bitmapWidth + m_Offset.m_X, targetBoxHeight, m_FillColorRight); } } if (!m_WrapY && bitmapHeight <= targetBoxHeight) { if (m_FillColorUp != ColorKeys::g_MaskColor && m_Offset.GetFloorIntY() != 0) { - DrawRectangle(targetBoxCornerX, targetBoxCornerY, targetBoxWidth, - m_Offset.m_Y, {static_cast(m_FillColorUp), 0, 0, 255}); + fillRectangle(targetBoxCornerX, targetBoxCornerY, targetBoxWidth, -m_Offset.m_Y, m_FillColorUp); } if (m_FillColorDown != ColorKeys::g_MaskColor) { - DrawRectangle(targetBoxCornerX, targetBoxCornerY + bitmapHeight - m_Offset.m_Y, targetBoxWidth, targetBoxHeight - bitmapHeight + m_Offset.m_Y, {static_cast(m_FillColorDown), 0, 0, 255}); + fillRectangle(targetBoxCornerX, targetBoxCornerY + bitmapHeight - m_Offset.m_Y, targetBoxWidth, targetBoxHeight - bitmapHeight + m_Offset.m_Y, m_FillColorDown); } } rlZDepth(c_DefaultDrawDepth); } + +void SLBackground::Draw(const Camera& camera) { + StaticSceneLayer::Draw(camera); +} diff --git a/Source/Entities/SLBackground.h b/Source/Entities/SLBackground.h index 5febfe7893..64e8f79928 100644 --- a/Source/Entities/SLBackground.h +++ b/Source/Entities/SLBackground.h @@ -143,6 +143,7 @@ namespace RTE { /// @param targetBox The box on the target bitmap to limit drawing to, with the corner of box being where the scroll position lines up. /// @param offsetNeedsScrollRatioAdjustment Whether the offset of this SceneLayer or the passed in offset override need to be adjusted to scroll ratio. void Draw(const Box& targetDimensions, Box& targetBox, bool offsetNeedsScrollRatioAdjustment = false) override; + void Draw(const Camera& camera) override; #pragma endregion private: /// Enumeration for the different modes of SLBackground auto-scaling. @@ -156,6 +157,7 @@ namespace RTE { static Entity::ClassInfo m_sClass; //!< ClassInfo for this class. std::vector m_Bitmaps; //!< Vector containing all the BITMAPs of this SLBackground. Not owned. + std::vector> m_Textures; int m_FrameCount; //!< The total number of frames in this SLBackground's animation. int m_Frame; //!< The frame that is currently being shown/drawn. diff --git a/Source/Entities/SLTerrain.cpp b/Source/Entities/SLTerrain.cpp index 142889f003..b09950c4ef 100644 --- a/Source/Entities/SLTerrain.cpp +++ b/Source/Entities/SLTerrain.cpp @@ -8,6 +8,8 @@ #include "Atom.h" #include "DataModule.h" #include "PresetMan.h" +#include "Draw.h" +#include "tracy/Tracy.hpp" #include #include @@ -36,6 +38,9 @@ void SLTerrain::Clear() { m_TerrainObjects.clear(); m_UpdatedMaterialAreas.clear(); m_OrbitDirection = Directions::Up; + + m_ScrollInfo = Vector(0.0f, 0.0f); + m_ScrollRatio = Vector(0.0f, 0.0f); } int SLTerrain::Create() { @@ -277,10 +282,10 @@ int SLTerrain::LoadData() { m_BGColorLayer->LoadData(); } else { m_FGColorLayer->Destroy(); - m_FGColorLayer->Create(create_bitmap_ex(8, m_MainBitmap->w, m_MainBitmap->h), true, m_Offset, m_WrapX, m_WrapY, m_ScrollInfo); + m_FGColorLayer->Create(create_bitmap_ex(8, m_MainBitmap->w, m_MainBitmap->h), m_Offset, m_WrapX, m_WrapY, m_ScrollInfo); m_BGColorLayer->Destroy(); - m_BGColorLayer->Create(create_bitmap_ex(8, m_MainBitmap->w, m_MainBitmap->h), true, m_Offset, m_WrapX, m_WrapY, m_ScrollInfo); + m_BGColorLayer->Create(create_bitmap_ex(8, m_MainBitmap->w, m_MainBitmap->h), m_Offset, m_WrapX, m_WrapY, m_ScrollInfo); TexturizeTerrain(); @@ -295,6 +300,13 @@ int SLTerrain::LoadData() { } CleanAir(); } + + m_ScrollInfo.SetXY(0.0f, 0.0f); + m_ScrollRatio.SetXY(0.0f, 0.0f); + + m_FGColorLayer->SetScrollRatio(Vector(0.0f, 0.0f)); + m_BGColorLayer->SetScrollRatio(Vector(0.0f, 0.0f)); + return 0; } @@ -504,3 +516,21 @@ void SLTerrain::Draw(const Box& targetDimensions, Box& targetBox, bool offsetNee break; } } + +void SLTerrain::Draw(const Camera& camera) { + ZoneScoped; + switch (m_LayerToDraw) { + case LayerType::MaterialLayer: + SceneLayer::Draw(camera); + break; + case LayerType::ForegroundLayer: + m_FGColorLayer->Draw(camera); + break; + case LayerType::BackgroundLayer: + m_BGColorLayer->Draw(camera); + break; + default: + RTEAbort("Invalid LayerType was set to draw in SLTerrain::Draw"); + break; + } +} diff --git a/Source/Entities/SLTerrain.h b/Source/Entities/SLTerrain.h index 0d1eebb4c3..ddfa1200eb 100644 --- a/Source/Entities/SLTerrain.h +++ b/Source/Entities/SLTerrain.h @@ -100,11 +100,17 @@ namespace RTE { /// Gets the foreground color bitmap of this SLTerrain. /// @return A pointer to the foreground color bitmap. - BITMAP* GetFGColorBitmap() { return m_FGColorLayer->GetBitmap(); m_FGColorLayer->SetUpdated(); } + BITMAP* GetFGColorBitmap() { + m_FGColorLayer->SetUpdated(); + return m_FGColorLayer->GetBitmap(); + } /// Gets the background color bitmap of this SLTerrain. /// @return A pointer to the background color bitmap. - BITMAP* GetBGColorBitmap() { return m_BGColorLayer->GetBitmap(); m_BGColorLayer->SetUpdated(); } + BITMAP* GetBGColorBitmap() { + m_BGColorLayer->SetUpdated(); + return m_BGColorLayer->GetBitmap(); + } /// Gets the material bitmap of this SLTerrain. /// @return A pointer to the material bitmap. @@ -202,6 +208,7 @@ namespace RTE { /// @param targetBox The box on the target bitmap to limit drawing to, with the corner of box being where the scroll position lines up. /// @param offsetNeedsScrollRatioAdjustment Whether the offset of this SceneLayer or the passed in offset override need to be adjusted to scroll ratio. void Draw(const Box& targetDimensions, Box& targetBox, bool offsetNeedsScrollRatioAdjustment = false) override; + void Draw(const Camera& camera) override; #pragma endregion private: diff --git a/Source/Entities/Scene.cpp b/Source/Entities/Scene.cpp index 3c08ece911..982f4b72f3 100644 --- a/Source/Entities/Scene.cpp +++ b/Source/Entities/Scene.cpp @@ -366,6 +366,7 @@ void Scene::Clear() { m_NavigableAreas.clear(); m_NavigableAreasUpToDate = false; m_GlobalAcc.Reset(); + m_Atmosphere = Atmosphere(); m_SelectedAssemblies.clear(); m_AssembliesCounts.clear(); m_pPreviewBitmap = 0; @@ -435,6 +436,7 @@ int Scene::Create(const Scene& reference) { m_AreaList.push_back(new Area(*area)); m_GlobalAcc = reference.m_GlobalAcc; + m_Atmosphere = reference.m_Atmosphere; // Deep copy of the bitmap if (reference.m_pPreviewBitmap) { @@ -480,7 +482,7 @@ int Scene::LoadData(bool placeObjects, bool initPathfinding, bool placeUnits) { // Replace any old unseen layer with the new one that is generated delete m_apUnseenLayer[team]; m_apUnseenLayer[team] = new SceneLayer(); - m_apUnseenLayer[team]->Create(pUnseenBitmap, true, Vector(), WrapsX(), WrapsY(), Vector(1.0, 1.0)); + m_apUnseenLayer[team]->Create(pUnseenBitmap, Vector(), WrapsX(), WrapsY(), Vector(1.0, 1.0)); m_apUnseenLayer[team]->SetScaleFactor(m_UnseenPixelSize[team]); } // If not dynamically generated, was it custom loaded? @@ -858,10 +860,9 @@ std::vector Scene::GetCopiedSceneLayerBitmaps() const { // Save unseen layers' data for (int team = Activity::TeamOne; team < Activity::MaxTeamCount; ++team) { - if (m_apUnseenLayer[team]) - { + if (m_apUnseenLayer[team]) { layerInfos.emplace_back(std::format("UST{}", team), m_apUnseenLayer[team]->CopyBitmap()); - } + } } return layerInfos; @@ -1064,6 +1065,11 @@ int Scene::ReadProperty(const std::string_view& propName, Reader& reader) { // This replaces any existing ones SetArea(area);); MatchProperty("GlobalAcceleration", { reader >> m_GlobalAcc; }); + MatchProperty("TimeOfDay", { reader >> m_Atmosphere.TimeOfDay; }); + MatchProperty("DayLengthMinutes", { reader >> m_Atmosphere.DayLengthMinutes; }); + MatchProperty("WeatherType", { reader >> m_Atmosphere.WeatherType; }); + MatchProperty("WeatherIntensity", { reader >> m_Atmosphere.WeatherIntensity; }); + MatchProperty("Wind", { reader >> m_Atmosphere.Wind; }); EndPropertyList; } @@ -1185,6 +1191,21 @@ int Scene::Save(Writer& writer) const { } writer.NewProperty("GlobalAcceleration"); writer << m_GlobalAcc; + if (m_Atmosphere.TimeOfDay >= 0.0F) { + writer.NewPropertyWithValue("TimeOfDay", m_Atmosphere.TimeOfDay); + } + if (m_Atmosphere.DayLengthMinutes >= 0.0F) { + writer.NewPropertyWithValue("DayLengthMinutes", m_Atmosphere.DayLengthMinutes); + } + if (m_Atmosphere.WeatherType >= 0) { + writer.NewPropertyWithValue("WeatherType", m_Atmosphere.WeatherType); + } + if (m_Atmosphere.WeatherIntensity >= 0.0F) { + writer.NewPropertyWithValue("WeatherIntensity", m_Atmosphere.WeatherIntensity); + } + if (m_Atmosphere.Wind > -10000.0F) { + writer.NewPropertyWithValue("Wind", m_Atmosphere.Wind); + } return 0; } @@ -1503,7 +1524,7 @@ void Scene::FillUnseenLayer(Vector pixelSize, int team, bool createNow) { // Replace any old unseen layer with the new one that is generated delete m_apUnseenLayer[team]; m_apUnseenLayer[team] = new SceneLayer(); - m_apUnseenLayer[team]->Create(pUnseenBitmap, true, Vector(), WrapsX(), WrapsY(), Vector(1.0, 1.0)); + m_apUnseenLayer[team]->Create(pUnseenBitmap, Vector(), WrapsX(), WrapsY(), Vector(1.0, 1.0)); // Calculate how many times smaller the unseen map is compared to the entire terrain's dimensions, and set it as the scale factor on the Unseen layer m_apUnseenLayer[team]->SetScaleFactor(Vector((float)GetTerrain()->GetBitmap()->w / (float)m_apUnseenLayer[team]->GetBitmap()->w, (float)GetTerrain()->GetBitmap()->h / (float)m_apUnseenLayer[team]->GetBitmap()->h)); } diff --git a/Source/Entities/Scene.h b/Source/Entities/Scene.h index 33ffcd467b..fcdabcd2e4 100644 --- a/Source/Entities/Scene.h +++ b/Source/Entities/Scene.h @@ -542,6 +542,18 @@ namespace RTE { /// @return A Vector describing the global acceleration. Vector GetGlobalAcc() const { return m_GlobalAcc; } + /// Optional atmosphere this Scene asks for, overriding the player's settings while it's loaded. Negative values mean not set. + struct Atmosphere { + float TimeOfDay = -1.0F; + float DayLengthMinutes = -1.0F; + int WeatherType = -1; + float WeatherIntensity = -1.0F; + float Wind = -100000.0F; //!< Not set below -10000. + }; + + /// Gets the atmosphere this Scene asks for. + const Atmosphere& GetAtmosphere() const { return m_Atmosphere; } + /// Sets the global acceleration (in m/s^2) that is applied to all movable /// objects' velocities during every frame. Typically models gravity. /// @param newValue A Vector describing the global acceleration. @@ -773,6 +785,7 @@ namespace RTE { // The global acceleration vector in m/s^2. (think gravity/wind) Vector m_GlobalAcc; + Atmosphere m_Atmosphere; //!< Optional time of day and weather for this Scene. // Names of all Schemes and selected assemblies for them std::map m_SelectedAssemblies; // Amounts of limited assemblies diff --git a/Source/Entities/SceneLayer.cpp b/Source/Entities/SceneLayer.cpp index b2afb66868..c393d7bea4 100644 --- a/Source/Entities/SceneLayer.cpp +++ b/Source/Entities/SceneLayer.cpp @@ -5,10 +5,11 @@ #include "SettingsMan.h" #include "ActivityMan.h" #include "ThreadMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "BigTexture.h" #include "Draw.h" +#include "DebugMan.h" #include "tracy/Tracy.hpp" #include "tracy/TracyOpenGL.hpp" @@ -36,11 +37,11 @@ void SceneLayerImpl::Clear() { m_BitmapFile.Reset(); m_MainBitmap = nullptr; m_BackBitmap = nullptr; - m_MainTexture.reset(); + m_MainStreamTexture.reset(); + m_StaticTexture = nullptr; m_LastClearColor = ColorKeys::g_InvalidColor; m_Drawings.clear(); m_MainBitmapOwned = false; - m_DrawMasked = true; m_WrapX = true; m_WrapY = true; m_OriginOffset.Reset(); @@ -53,10 +54,11 @@ void SceneLayerImpl::Clear() { } template -int SceneLayerImpl::Create(const ContentFile& bitmapFile, bool drawMasked, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo) { +int SceneLayerImpl::Create(const ContentFile& bitmapFile, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo) { m_BitmapFile = bitmapFile; - m_MainBitmap = m_BitmapFile.GetAsBitmap(); - Create(m_MainBitmap, drawMasked, offset, wrapX, wrapY, scrollInfo); + m_StaticTexture = m_BitmapFile.GetAsTexture(); + m_MainBitmap = m_StaticTexture->GetBitmap(); + Create(m_MainBitmap, offset, wrapX, wrapY, scrollInfo); m_MainBitmapOwned = false; @@ -64,19 +66,24 @@ int SceneLayerImpl::Create(const ContentFile& bi } template -int SceneLayerImpl::Create(BITMAP* bitmap, bool drawMasked, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo) { - m_MainBitmap = bitmap; +int SceneLayerImpl::Create(BITMAP* bitmap, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo) { + if constexpr (STATIC_TEXTURE) { + m_StaticTexture = std::make_shared(std::unique_ptr(bitmap)); + m_MainBitmap = m_StaticTexture->GetBitmap(); + } else { + m_MainBitmap = create_bitmap_ex(bitmap_color_depth(bitmap), bitmap->w, bitmap->h); + m_MainStreamTexture = std::make_unique(m_MainBitmap); + blit(bitmap, m_MainBitmap, 0, 0, 0, 0, m_MainBitmap->w, m_MainBitmap->h); + } RTEAssert(m_MainBitmap, "Null bitmap passed in when creating SceneLayerImpl!"); m_MainBitmapOwned = true; - m_BackBitmap = create_bitmap_ex(bitmap_color_depth(m_MainBitmap), m_MainBitmap->w, m_MainBitmap->h); - m_LastClearColor = ColorKeys::g_InvalidColor; - if constexpr (!STATIC_TEXTURE) { - m_MainTexture = std::make_unique(m_MainBitmap); + if constexpr (TRACK_DRAWINGS) { + m_BackBitmap = create_bitmap_ex(bitmap_color_depth(m_MainBitmap), m_MainBitmap->w, m_MainBitmap->h); } + m_LastClearColor = ColorKeys::g_InvalidColor; - m_DrawMasked = drawMasked; m_Offset = offset; m_WrapX = wrapX; m_WrapY = wrapY; @@ -92,7 +99,6 @@ int SceneLayerImpl::Create(const SceneLayerImpl& Entity::Create(reference); m_BitmapFile = reference.m_BitmapFile; - m_DrawMasked = reference.m_DrawMasked; m_WrapX = reference.m_WrapX; m_WrapY = reference.m_WrapY; m_OriginOffset = reference.m_OriginOffset; @@ -101,28 +107,34 @@ int SceneLayerImpl::Create(const SceneLayerImpl& m_ScaleFactor = reference.m_ScaleFactor; m_ScaledDimensions = reference.m_ScaledDimensions; - if (reference.m_MainBitmap) { - // Make a copy of the bitmap because it can be modified in some use cases. - BITMAP* bitmapToCopy = reference.m_MainBitmap; - RTEAssert(bitmapToCopy, "Couldn't load the bitmap file specified for SceneLayerImpl!"); + if constexpr (!STATIC_TEXTURE) { + if (reference.m_MainBitmap) { + // Make a copy of the bitmap because it can be modified in some use cases. + BITMAP* bitmapToCopy = reference.m_MainBitmap; + RTEAssert(bitmapToCopy, "Couldn't load the bitmap file specified for SceneLayerImpl!"); - m_MainBitmap = create_bitmap_ex(bitmap_color_depth(bitmapToCopy), bitmapToCopy->w, bitmapToCopy->h); - RTEAssert(m_MainBitmap, "Failed to allocate BITMAP in SceneLayerImpl::Create"); - blit(bitmapToCopy, m_MainBitmap, 0, 0, 0, 0, bitmapToCopy->w, bitmapToCopy->h); + m_MainBitmap = create_bitmap_ex(bitmap_color_depth(reference.m_MainBitmap), reference.m_MainBitmap->w, reference.m_MainBitmap->h); - m_BackBitmap = create_bitmap_ex(bitmap_color_depth(m_MainBitmap), m_MainBitmap->w, m_MainBitmap->h); - m_LastClearColor = ColorKeys::g_InvalidColor; + RTEAssert(m_MainBitmap, "Failed to allocate BITMAP in SceneLayerImpl::Create"); + blit(bitmapToCopy, m_MainBitmap, 0, 0, 0, 0, bitmapToCopy->w, bitmapToCopy->h); - if constexpr (!STATIC_TEXTURE) { - m_MainTexture = std::make_unique(m_MainBitmap); - } + m_BackBitmap = create_bitmap_ex(bitmap_color_depth(m_MainBitmap), m_MainBitmap->w, m_MainBitmap->h); + m_LastClearColor = ColorKeys::g_InvalidColor; - InitScrollRatios(); + m_MainStreamTexture = std::make_unique(m_MainBitmap); - m_MainBitmapOwned = true; + m_MainBitmapOwned = true; + InitScrollRatios(); + } else { + // If no bitmap to copy, then it has to be loaded with LoadData. + m_MainBitmapOwned = false; + } } else { - // If no bitmap to copy, then it has to be loaded with LoadData. + RTEAssert(reference.m_StaticTexture, "No static texture in StaticSceneLayer::Create(ref)"); + m_StaticTexture = reference.m_StaticTexture; + m_MainBitmap = m_StaticTexture->GetBitmap(); m_MainBitmapOwned = false; + InitScrollRatios(); } return 0; } @@ -151,9 +163,6 @@ int SceneLayerImpl::Save(Writer& writer) const { template void SceneLayerImpl::Destroy(bool notInherited) { - if (m_MainBitmapOwned) { - destroy_bitmap(m_MainBitmap); - } if (m_BackBitmap) { destroy_bitmap(m_BackBitmap); } @@ -182,10 +191,12 @@ void SceneLayerImpl::InitScrollRatios(bool initF } else { m_ScrollRatio.SetX((mainBitmapWidth - playerScreenWidth) / (m_ScrollInfo.GetX() - playerScreenWidth)); } + m_ScrollRatio.m_X += 1.0f; } if (m_WrapY) { m_ScrollRatio.SetY(m_ScrollInfo.GetY()); } else { + // TODO: None of this makes any sense. (Seriously tf is this) if (m_ScrollInfo.GetY() == -1.0F || m_ScrollInfo.GetY() == 1.0) { m_ScrollRatio.SetY(1.0F); } else if (m_ScrollInfo.GetY() == playerScreenHeight) { @@ -195,24 +206,21 @@ void SceneLayerImpl::InitScrollRatios(bool initF } else { m_ScrollRatio.SetY((mainBitmapHeight - playerScreenHeight) / (m_ScrollInfo.GetY() - playerScreenHeight)); } + m_ScrollRatio.m_Y += 1.0f; } m_ScaledDimensions.SetXY(mainBitmapWidth * m_ScaleFactor.GetX(), mainBitmapHeight * m_ScaleFactor.GetY()); } template int SceneLayerImpl::LoadData() { - if (m_MainBitmapOwned) { - destroy_bitmap(m_MainBitmap); - m_MainBitmap = nullptr; - } - // Load from disk and take ownership. Don't cache because the bitmap will be modified. - m_MainBitmap = m_BitmapFile.GetAsBitmap(COLORCONV_NONE, false); + m_StaticTexture = m_BitmapFile.GetAsTexture(COLORCONV_NONE, STATIC_TEXTURE); + m_MainBitmap = m_StaticTexture->GetBitmap(); m_MainBitmapOwned = true; m_BackBitmap = create_bitmap_ex(bitmap_color_depth(m_MainBitmap), m_MainBitmap->w, m_MainBitmap->h); if constexpr (!STATIC_TEXTURE) { - m_MainTexture = std::make_unique(m_MainBitmap); + m_MainStreamTexture = std::make_unique(m_MainBitmap); } m_LastClearColor = ColorKeys::g_InvalidColor; @@ -255,11 +263,9 @@ std::unique_ptr SceneLayerImpl::CopyBitm template int SceneLayerImpl::ClearData() { - if (m_MainBitmap && m_MainBitmapOwned) { - destroy_bitmap(m_MainBitmap); - } + m_StaticTexture = nullptr; m_MainBitmap = nullptr; - m_MainTexture.reset(); + m_MainStreamTexture.reset(); m_MainBitmapOwned = false; if (m_BackBitmap) { @@ -426,17 +432,17 @@ void SceneLayerImpl::RegisterDrawing(const Vecto template void SceneLayerImpl::UpdateTargetRegion(const Box& targetBox) { if constexpr (TRACK_DRAWINGS) { - m_MainTexture->m_Bitmap = m_MainBitmap; + m_MainStreamTexture->m_Bitmap = m_MainBitmap; } if constexpr (!STATIC_TEXTURE) { RTEAssert(bitmap_color_depth(m_MainBitmap) == 8, "Truecolor scenelayer used for non gpu drawing!"); std::vector updateRegions{}; float bitmapWidth = m_MainBitmap->w; float bitmapHeight = m_MainBitmap->h; - int areaToCoverX = (m_Offset.GetFloorIntX() + targetBox.GetCorner().GetFloorIntX() + targetBox.GetWidth()) / m_ScaleFactor.m_X; - int areaToCoverY = (m_Offset.GetFloorIntY() + targetBox.GetCorner().GetFloorIntY() + targetBox.GetHeight()) / m_ScaleFactor.m_Y; + int areaToCoverX = (targetBox.GetCorner().GetFloorIntX() + targetBox.GetWidth()) / m_ScaleFactor.m_X; + int areaToCoverY = (targetBox.GetCorner().GetFloorIntY() + targetBox.GetHeight()) / m_ScaleFactor.m_Y; Box scaledTarget(targetBox.m_Corner / m_ScaleFactor, targetBox.m_Width / m_ScaleFactor.m_X, targetBox.m_Height / m_ScaleFactor.m_Y); - Vector scaledOffset(m_Offset/m_ScaleFactor); + Vector scaledOffset(targetBox.GetCorner()/m_ScaleFactor); Box bitmapDimensions(Vector(), bitmapWidth, bitmapHeight); for (int tiledOffsetX = 0; tiledOffsetX < areaToCoverX;) { @@ -461,9 +467,15 @@ void SceneLayerImpl::UpdateTargetRegion(const Bo } for (auto& region: updateRegions) { - m_MainTexture->Update(region); + if constexpr (TRACK_DRAWINGS) { + // Tracked layers swap between two bitmaps and are redrawn every frame, so there's nothing to save by diffing. + m_MainStreamTexture->Update(region); + } else { + // Terrain and unseen layers rarely change: only upload what did. + m_MainStreamTexture->UpdateChanged(region); + } } - // g_GLResourceMan.UpdateDynamicBitmap(m_MainBitmap, true, updateRegions); + // g_GLStateMan.UpdateDynamicBitmap(m_MainBitmap, true, updateRegions); } else {} } @@ -472,7 +484,7 @@ template void SceneLayerImpl::Draw(const Box& targetDimensions, Box& targetBox, bool offsetNeedsScrollRatioAdjustment) { RTEAssert(m_MainBitmap, "Data of this SceneLayerImpl has not been loaded before trying to draw!"); if constexpr(!STATIC_TEXTURE) { - RTEAssert(m_MainTexture, "Texture of this SceneLayerImpl has not bee created before trying to draw!"); + RTEAssert(m_MainStreamTexture, "Texture of this SceneLayerImpl has not been created before trying to draw!"); } ZoneScoped; TracyGpuZone("SceneLayer::Draw"); @@ -500,62 +512,103 @@ void SceneLayerImpl::Draw(const Box& targetDimen bool drawScaled = m_ScaleFactor.GetX() > 1.0F || m_ScaleFactor.GetY() > 1.0F; - DrawTiled(targetDimensions, targetBox, drawScaled); + //DrawTiled(targetDimensions, targetBox, drawScaled); } template -void SceneLayerImpl::DrawTiled(const Box& targetDimensions, const Box& targetBox, bool drawScaled) const { +void SceneLayerImpl::Draw(const Camera& camera) { + ZoneScoped; + if constexpr (!STATIC_TEXTURE) { + RTEAssert(m_MainStreamTexture, "Texture of this SceneLayerImpl has not been created before trying to draw!"); + if (m_MainBitmapOwned) { + UpdateTargetRegion(camera.GetViewport()); + } + m_MainBitmapUpdated = false; + } else { + RTEAssert(m_StaticTexture, "Static Texture of this scene layer not initialized! " + m_PresetName); + } + DrawTiled(camera); +} + +template +void SceneLayerImpl::DrawTiled(const Camera& camera) const { ZoneScoped; TracyGpuZone("SceneLayer::DrawTiled"); + Box targetBox = camera.GetViewport(); + g_RenderMan.SetCurrentZOffset(m_ZOrder); float bitmapWidth = m_ScaledDimensions.m_X; float bitmapHeight = m_ScaledDimensions.m_Y; - int areaToCoverX = m_Offset.GetFloorIntX() + targetBox.GetCorner().GetFloorIntX() + std::min(targetDimensions.GetWidth(), targetBox.GetWidth()); - int areaToCoverY = m_Offset.GetFloorIntY() + targetBox.GetCorner().GetFloorIntY() + std::min(targetDimensions.GetHeight(), targetBox.GetHeight()); - if (!m_DrawMasked) { - rlDrawRenderBatchActive(); - int maskedUniformLocation = rlGetLocationUniform(rlGetShaderCurrent(), "drawMasked"); - rlEnableShader(rlGetShaderCurrent()); - glUniform1i(maskedUniformLocation, 0); + int areaToCoverX = m_Offset.GetFloorIntX() + targetBox.GetCorner().GetFloorIntX() + targetBox.GetWidth(); + int areaToCoverY = m_Offset.GetFloorIntY() + targetBox.GetCorner().GetFloorIntY() + targetBox.GetHeight(); + + int tiledOffsetStartX = targetBox.m_Corner.m_X - m_Offset.m_X; + int tiledOffsetStartY = targetBox.m_Corner.m_Y - m_Offset.m_Y; + + int skip = 0; + bool tileWrapX = g_SceneMan.WrapPosition(tiledOffsetStartX, skip); + + tiledOffsetStartX /= bitmapWidth; + tiledOffsetStartX *= bitmapWidth; + + if (tileWrapX) { + tiledOffsetStartX -= g_SceneMan.GetSceneWidth(); } - rlZDepth(m_ZOrder); + tiledOffsetStartX += m_Offset.m_X; + + bool tileWrapY = g_SceneMan.WrapPosition(skip, tiledOffsetStartY); - for (int tiledOffsetX = 0; tiledOffsetX < areaToCoverX;) { - float destX = targetBox.GetCorner().GetFloorIntX() + tiledOffsetX - m_Offset.GetFloorIntX(); + tiledOffsetStartY /= bitmapHeight; + tiledOffsetStartY *= bitmapHeight; - for (int tiledOffsetY = 0; tiledOffsetY < areaToCoverY;) { - float destY = targetBox.GetCorner().GetFloorIntY() + tiledOffsetY - m_Offset.GetFloorIntY(); + if (tileWrapY) { + tiledOffsetStartY -= g_SceneMan.GetSceneHeight(); + } + + tiledOffsetStartY += m_Offset.m_Y; + + if (g_DebugMan.DrawTilingBounds()) { + Draw::Lines::Line(glm::vec2(areaToCoverX, 0.0f), glm::vec2(areaToCoverX, g_SceneMan.GetSceneHeight()), g_RedColor); + Draw::Lines::Line(glm::vec2(tiledOffsetStartX, 0.0f), glm::vec2(tiledOffsetStartX, g_SceneMan.GetSceneHeight()), g_YellowGlowColor); + } + + for (int tiledOffsetX = tiledOffsetStartX; tiledOffsetX < areaToCoverX; tiledOffsetX += bitmapWidth) { + int destX = tiledOffsetX; + + for (int tiledOffsetY = tiledOffsetStartY; tiledOffsetY < areaToCoverY; tiledOffsetY += bitmapHeight) { + int destY = tiledOffsetY; + DrawMainTexture(destX, destY); if constexpr (STATIC_TEXTURE) { - DrawTexturePro( - g_GLResourceMan.GetStaticTextureFromBitmap(m_MainBitmap), - {0.0f, 0.0f, static_cast(m_MainBitmap->w), static_cast(m_MainBitmap->h)}, - {destX, destY, bitmapWidth, bitmapHeight}, - {0.0f, 0.0f}, 0.0f, {255, 255, 255, 255}); + Draw::DrawTexture(m_StaticTexture.get(), FloatRect(destX, destY, bitmapWidth, bitmapHeight)); } else { - m_MainTexture->Draw( - {0.0f, 0.0f, static_cast(m_MainBitmap->w), static_cast(m_MainBitmap->h)}, - {destX, destY, bitmapWidth, bitmapHeight}); } if (!m_WrapY) { break; } - tiledOffsetY += bitmapHeight; } if (!m_WrapX) { break; } - tiledOffsetX += bitmapWidth; } - rlZDepth(c_DefaultDrawDepth); + g_RenderMan.SetCurrentZOffset(c_DefaultDrawDepth); +} - if (!m_DrawMasked) { - rlDrawRenderBatchActive(); - int drawMaskedUniform = rlGetLocationUniform(rlGetShaderCurrent(), "drawMasked"); - rlEnableShader(rlGetShaderCurrent()); - glUniform1i(drawMaskedUniform, 1); - } +void SceneLayerTracked::DrawMainTexture(int destX, int destY) const { + m_MainStreamTexture->Draw( + {{0.0f, 0.0f}, static_cast(m_MainBitmap->w), static_cast(m_MainBitmap->h)}, + {Vector(destX, destY), m_ScaledDimensions.m_X, m_ScaledDimensions.m_Y}); +} + +void SceneLayer::DrawMainTexture(int destX, int destY) const { + m_MainStreamTexture->Draw( + {{0.0f, 0.0f}, static_cast(m_MainBitmap->w), static_cast(m_MainBitmap->h)}, + {Vector(destX, destY), m_ScaledDimensions.m_X, m_ScaledDimensions.m_Y}); +} + +void StaticSceneLayer::DrawMainTexture(int destX, int destY) const { + Draw::DrawTexture(m_StaticTexture.get(), FloatRect(destX, destY, m_ScaledDimensions.m_X, m_ScaledDimensions.m_Y)); } template diff --git a/Source/Entities/SceneLayer.h b/Source/Entities/SceneLayer.h index 379a92ca8d..dc4c4eaca8 100644 --- a/Source/Entities/SceneLayer.h +++ b/Source/Entities/SceneLayer.h @@ -10,6 +10,7 @@ namespace RTE { struct BigTexture; + class Texture; struct SceneLayerInfo { std::string name; @@ -45,7 +46,7 @@ namespace RTE { /// If wrapping is set to true, the value in scrollInfo is simply the ratio of offset at which any scroll operations will be done in. /// A special command is if wrap is false and the corresponding component is -1.0, that signals that the own width or height should be used as scrollInfo input. /// @return An error return value signaling success or any particular failure. Anything below 0 is an error signal. - int Create(const ContentFile& bitmapFile, bool drawMasked, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo); + int Create(const ContentFile& bitmapFile, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo); /// Makes the SceneLayer object ready for use. /// @param bitmap The BITMAP to use for this SceneLayer. Ownership IS transferred! @@ -59,7 +60,7 @@ namespace RTE { /// If wrapping is set to true, the value in scrollInfo is simply the ratio of offset at which any scroll operations will be done in. /// A special command is if wrap is false and the corresponding component is -1.0, that signals that the own width or height should be used as scrollInfo input. /// @return An error return value signaling success or any particular failure. Anything below 0 is an error signal. - int Create(BITMAP* bitmap, bool drawMasked, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo); + int Create(BITMAP* bitmap, const Vector& offset, bool wrapX, bool wrapY, const Vector& scrollInfo); /// Creates a SceneLayer to be identical to another, by deep copy. /// @param reference A reference to the SceneLayer to deep copy. @@ -215,13 +216,15 @@ namespace RTE { /// @param targetBox The box on the target bitmap to limit drawing to, with the corner of box being where the scroll position lines up. /// @param offsetNeedsScrollRatioAdjustment Whether the offset of this SceneLayer or the passed in offset override need to be adjusted to scroll ratio. virtual void Draw(const Box& targetDimensions, Box& targetBox, bool offsetNeedsScrollRatioAdjustment = false); + virtual void Draw(const Camera& camera); #pragma endregion protected: ContentFile m_BitmapFile; //!< ContentFile containing the path to this SceneLayer's sprite file. - std::unique_ptr m_MainTexture; //!< The Main texture of this SceneLayer, may be tiled for very large scenes. + std::unique_ptr m_MainStreamTexture; //!< The Main texture of this SceneLayer, may be tiled for very large scenes. BITMAP* m_MainBitmap; //!< The main BITMAP of this SceneLayer. + std::shared_ptr m_StaticTexture; //!< The Main texture for static Scene Layers. BITMAP* m_BackBitmap; //!< The backbuffer BITMAP of this SceneLayer. // We use two bitmaps, as a backbuffer. While the main bitmap is being used, the secondary bitmap will be cleared on a separate thread. This is because we tend to want to clear some scene layers every frame and that is costly. @@ -231,7 +234,6 @@ namespace RTE { bool m_MainBitmapOwned; //!< Whether the main bitmap is owned by this. bool m_MainBitmapUpdated; //!< Whether the main bitmap was updated since the last draw. - bool m_DrawMasked; //!< Whether pixels marked as transparent (index 0, magenta) are skipped when drawing or not (masked drawing). bool m_WrapX; //!< Whether wrapping is enabled on the X axis. bool m_WrapY; //!< Whether wrapping is enable on the Y axis. @@ -266,7 +268,9 @@ namespace RTE { /// @param targetBitmap The bitmap to draw to. /// @param targetBox The box on the target bitmap to limit drawing to, with the corner of box being where the scroll position lines up. /// @param drawScaled Whether to use scaled drawing routines or not. - void DrawTiled(const Box& targetDim, const Box& targetBox, bool drawScaled) const; + void DrawTiled(const Camera& camera) const; + + virtual void DrawMainTexture(int destX, int destY) const {}; #pragma endregion private: @@ -301,6 +305,7 @@ namespace RTE { protected: static Entity::ClassInfo m_sClass; //!< ClassInfo for this class. + void DrawMainTexture(int destX, int destY) const override; }; class SceneLayer : public SceneLayerImpl { @@ -321,6 +326,7 @@ namespace RTE { protected: static Entity::ClassInfo m_sClass; //!< ClassInfo for this class. + void DrawMainTexture(int destX, int destY) const override; }; /// SceneLayer that promises to never update its MainBitmap. @@ -334,9 +340,14 @@ namespace RTE { /// Gets the BITMAP that this StaticSceneLayer uses. /// The bitmap will only be uploaded to GPU once on the first draw. So any modifcations after that will not be drawn. - BITMAP* GetBitmap() const { return m_MainBitmap; } + const BITMAP* GetBitmap() const { return m_MainBitmap; } + + /// Gets the GPU texture of this StaticSceneLayer. + /// @return (Non owning) pointer to the texture. + BitmapTexture* GetStaticTexture() const { return m_StaticTexture.get(); } protected: static Entity::ClassInfo m_sClass; //!< ClassInfo for this class. + void DrawMainTexture(int destX, int destY) const override; }; } // namespace RTE diff --git a/Source/Entities/SceneObject.h b/Source/Entities/SceneObject.h index 10b9457270..b26329762c 100644 --- a/Source/Entities/SceneObject.h +++ b/Source/Entities/SceneObject.h @@ -11,6 +11,7 @@ struct BITMAP; namespace RTE { + class Camera; /// The base class shared by Both TerrainObject:s and MovableObject:s, ie /// anything that can be places in a scene. @@ -272,6 +273,8 @@ namespace RTE { /// like indicator arrows or hovering HUD text and so on. virtual void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const = 0; + virtual void Draw(const Camera& camera) const = 0; + /// Draws team sign this terrain object belongs to. /// @param pTargetBitmap A pointer to a BITMAP to draw on. /// @param targetPos The absolute position of the target bitmap's upper left corner in the Scene. (default: Vector()) diff --git a/Source/Entities/TDExplosive.cpp b/Source/Entities/TDExplosive.cpp index 26244f7191..ea4bd2b36d 100644 --- a/Source/Entities/TDExplosive.cpp +++ b/Source/Entities/TDExplosive.cpp @@ -81,3 +81,5 @@ void TDExplosive::DrawHUD(BITMAP* targetBitmap, const Vector& targetPos, int whi ThrownDevice::DrawHUD(targetBitmap, targetPos, whichScreen); } } + +void TDExplosive::DrawHUD(const Camera& camera) {} diff --git a/Source/Entities/TDExplosive.h b/Source/Entities/TDExplosive.h index 5649900f87..22a90edb88 100644 --- a/Source/Entities/TDExplosive.h +++ b/Source/Entities/TDExplosive.h @@ -66,6 +66,7 @@ namespace RTE { /// @param whichScreen Which player's screen this is being drawn to. May affect what HUD elements get drawn etc. /// @param playerControlled Whether or not this MovableObject is currently player controlled (not applicable for TDExplosive). void DrawHUD(BITMAP* targetBitmap, const Vector& targetPos = Vector(), int whichScreen = 0, bool playerControlled = false) override; + void DrawHUD(const Camera& camera) override; #pragma endregion protected: diff --git a/Source/Entities/TerrainObject.cpp b/Source/Entities/TerrainObject.cpp index d782348927..fa8102fb8f 100644 --- a/Source/Entities/TerrainObject.cpp +++ b/Source/Entities/TerrainObject.cpp @@ -236,6 +236,8 @@ void TerrainObject::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode } } +void TerrainObject::Draw(const Camera& camera) const {} + void TerrainObject::DrawToTerrain(SLTerrain* terrain) { BITMAP* terrainMatBitmap = terrain->GetMaterialBitmap(); BITMAP* terrainBGBitmap = terrain->GetBGColorBitmap(); diff --git a/Source/Entities/TerrainObject.h b/Source/Entities/TerrainObject.h index c97f4c90c3..d6a7ea6812 100644 --- a/Source/Entities/TerrainObject.h +++ b/Source/Entities/TerrainObject.h @@ -113,6 +113,7 @@ namespace RTE { /// @param drawMode In which mode to draw in. See the DrawMode enumeration for the modes. /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this TerrainObject, like indicator arrows or hovering HUD text and so on. void Draw(BITMAP* targetBitmap, const Vector& targetPos = Vector(), DrawMode drawMode = DrawMode::g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; #pragma endregion protected: diff --git a/Source/Entities/Turret.cpp b/Source/Entities/Turret.cpp index b29679a394..41d87d6253 100644 --- a/Source/Entities/Turret.cpp +++ b/Source/Entities/Turret.cpp @@ -130,6 +130,8 @@ void Turret::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode mode, } } +void Turret::Draw(const Camera& camera) const {} + void Turret::SetParent(MOSRotating* newParent) { Attachable::SetParent(newParent); for (HeldDevice* mountedDevice: m_MountedDevices) { diff --git a/Source/Entities/Turret.h b/Source/Entities/Turret.h index 6a2b861952..318a0dd818 100644 --- a/Source/Entities/Turret.h +++ b/Source/Entities/Turret.h @@ -81,6 +81,7 @@ namespace RTE { /// @param mode In which mode to draw in. See the DrawMode enumeration for the modes. /// @param onlyPhysical Whether to not draw any extra 'ghost' items of this MovableObject, indicator arrows or hovering HUD text and so on. void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override; + void Draw(const Camera& camera) const override; #pragma endregion protected: diff --git a/Source/GUI/GUIControlManager.cpp b/Source/GUI/GUIControlManager.cpp index 35f73e6dcf..1b335b21b8 100644 --- a/Source/GUI/GUIControlManager.cpp +++ b/Source/GUI/GUIControlManager.cpp @@ -1,4 +1,5 @@ #include "GUI.h" +#include "TextOverlay.h" #include "PresetMan.h" #include @@ -287,11 +288,14 @@ void GUIControlManager::Update(bool ignoreKeyboardEvents) { } void GUIControlManager::Draw() { - m_GUIManager->Draw(m_Screen); + Draw(m_Screen); } void GUIControlManager::Draw(GUIScreen* pScreen) { + // GUI controls keep their text in the bitmap, in drawing order with the other controls. + TextOverlay::SuspendCapture(); m_GUIManager->Draw(pScreen); + TextOverlay::ResumeCapture(); } void GUIControlManager::DrawMouse(GUIScreen* guiScreen) { diff --git a/Source/GUI/GUIFont.cpp b/Source/GUI/GUIFont.cpp index ba416fed6a..e1a0d360a8 100644 --- a/Source/GUI/GUIFont.cpp +++ b/Source/GUI/GUIFont.cpp @@ -1,4 +1,7 @@ #include "GUI.h" +#include "TextOverlay.h" + +#include #include @@ -104,7 +107,48 @@ bool GUIFont::Load(GUIScreen* Screen, const std::string& Filename) { return true; } +bool GUIFont::CaptureForOverlay(GUIBitmap* Bitmap, int X, int Y, const std::string& Text, int HAlign, unsigned long Shadow) { + if (!TextOverlay::IsEnabled() || !Bitmap || !m_Font || Text.find('\n') != std::string::npos) { + return false; + } + int depth = m_Font->GetColorDepth(); + if (!m_OverlayColorsFound) { + // The glyph art is drawn in the font's colors: the most common bright color is the fill, the most common dark one the outline. + m_OverlayColorsFound = true; + unsigned long background = m_Font->GetPixel(m_Font->GetWidth() - 1, 0); + unsigned long separator = m_Font->GetPixel(0, 0); + std::unordered_map counts; + for (int y = 0; y < m_Font->GetHeight(); ++y) { + for (int x = 1; x < m_Font->GetWidth(); ++x) { + unsigned long pixel = m_Font->GetPixel(x, y); + if (pixel != background && pixel != separator) { + counts[pixel]++; + } + } + } + int bestFill = 0; + int bestOutline = 0; + for (const auto& [pixel, count]: counts) { + unsigned int rgb = TextOverlay::ToRGB(pixel, depth); + float luminance = (0.2126F * ((rgb >> 16) & 0xFF) + 0.7152F * ((rgb >> 8) & 0xFF) + 0.0722F * (rgb & 0xFF)) / 255.0F; + if (luminance > 0.3F && count > bestFill) { + bestFill = count; + m_OverlayFill = rgb; + } else if (luminance < 0.2F && count > bestOutline) { + bestOutline = count; + m_OverlayOutline = rgb; + } + } + } + unsigned int fill = m_CurrentColor == m_MainColor ? m_OverlayFill : TextOverlay::ToRGB(m_CurrentColor, depth); + TextOverlay::Align align = HAlign == Centre ? TextOverlay::Centre : (HAlign == Right ? TextOverlay::Right : TextOverlay::Left); + return TextOverlay::Capture(Bitmap->GetBitmap(), X, Y, Text, align, m_FontHeight, fill, m_OverlayOutline, Shadow != 0, CalculateWidth(Text)); +} + void GUIFont::Draw(GUIBitmap* Bitmap, int X, int Y, const std::string& Text, unsigned long Shadow) { + if (CaptureForOverlay(Bitmap, X, Y, Text, Left, Shadow)) { + return; + } unsigned char c; GUIRect Rect; GUIBitmap* Surf = m_CurrentBitmap; @@ -212,7 +256,7 @@ void GUIFont::DrawAligned(GUIBitmap* Bitmap, int X, int Y, const std::string& Te } // If the line is scrolled above the bitmap top, then don't try to draw anything - if ((yLine + m_FontHeight) >= 0) { + if ((yLine + m_FontHeight) >= 0 && !CaptureForOverlay(Bitmap, X, yLine, TextLine, HAlign, Shadow)) { switch (HAlign) { // Left HAlignment: Where X is the starting point of the text case Left: diff --git a/Source/GUI/GUIFont.h b/Source/GUI/GUIFont.h index 53cb07ed84..0372e21f35 100644 --- a/Source/GUI/GUIFont.h +++ b/Source/GUI/GUIFont.h @@ -106,5 +106,12 @@ namespace RTE { int m_Kerning; // Spacing between characters int m_Leading; // Spacing between lines + + bool m_OverlayColorsFound = false; // Whether the colors below were worked out from the glyph artwork yet. + unsigned int m_OverlayFill = 0xFFFFFF; // The font's main fill color, 0xRRGGBB, for high resolution text. + unsigned int m_OverlayOutline = 0x000000; // The font's outline color, 0xRRGGBB. + + /// Hands a line of text to the high resolution text overlay if it's aimed at a HUD layer. Returns whether it was taken. + bool CaptureForOverlay(GUIBitmap* Bitmap, int X, int Y, const std::string& Text, int HAlign, unsigned long Shadow); }; } // namespace RTE diff --git a/Source/Lua/LuaAdapterDefinitions.h b/Source/Lua/LuaAdapterDefinitions.h index 3e59ae2fe2..a9dfb94815 100644 --- a/Source/Lua/LuaAdapterDefinitions.h +++ b/Source/Lua/LuaAdapterDefinitions.h @@ -7,6 +7,7 @@ #include "MusicMan.h" #include "CameraMan.h" #include "ConsoleMan.h" +#include "DebugMan.h" #include "FrameMan.h" #include "MetaMan.h" #include "MovableMan.h" @@ -76,6 +77,9 @@ #include "PieMenu.h" #include "PieSlice.h" +#include "Draw.h" +#include "RenderTarget.h" + #include "System/MicroPather/micropather.h" #ifndef _MSC_VER diff --git a/Source/Lua/LuaBindingRegisterDefinitions.h b/Source/Lua/LuaBindingRegisterDefinitions.h index 91be1b3c54..ceb27ccb9c 100644 --- a/Source/Lua/LuaBindingRegisterDefinitions.h +++ b/Source/Lua/LuaBindingRegisterDefinitions.h @@ -20,6 +20,7 @@ namespace RTE { PER_LUA_BINDING(MusicMan) \ PER_LUA_BINDING(CameraMan) \ PER_LUA_BINDING(ConsoleMan) \ + PER_LUA_BINDING(DebugMan) \ PER_LUA_BINDING(FrameMan) \ PER_LUA_BINDING(MetaMan) \ PER_LUA_BINDING(MovableMan) \ @@ -191,6 +192,7 @@ namespace RTE { LuaBindingRegisterFunctionDeclarationForType(MusicMan); LuaBindingRegisterFunctionDeclarationForType(CameraMan); LuaBindingRegisterFunctionDeclarationForType(ConsoleMan); + LuaBindingRegisterFunctionDeclarationForType(DebugMan); LuaBindingRegisterFunctionDeclarationForType(FrameMan); LuaBindingRegisterFunctionDeclarationForType(MetaMan); LuaBindingRegisterFunctionDeclarationForType(MovableMan); diff --git a/Source/Lua/LuaBindingsActivities.cpp b/Source/Lua/LuaBindingsActivities.cpp index 08d1dbcc71..13859cf8d6 100644 --- a/Source/Lua/LuaBindingsActivities.cpp +++ b/Source/Lua/LuaBindingsActivities.cpp @@ -127,6 +127,8 @@ LuaBindingRegisterFunctionDefinitionForType(ActivityLuaBindings, GameActivity) { .def_readwrite("GameOverPeriod", &GameActivity::m_GameOverPeriod) .def("SetObservationTarget", &GameActivity::SetObservationTarget) + .def("SetFreeBuildMode", &GameActivity::SetFreeBuildMode) + .property("FreeBuildMode", &GameActivity::IsFreeBuildMode) .def("SetDeathViewTarget", &GameActivity::SetDeathViewTarget) .def("SetLandingZone", &GameActivity::SetLandingZone) .def("GetLandingZone", &GameActivity::GetLandingZone) diff --git a/Source/Lua/LuaBindingsEntities.cpp b/Source/Lua/LuaBindingsEntities.cpp index 6b138782a3..35df36fa4e 100644 --- a/Source/Lua/LuaBindingsEntities.cpp +++ b/Source/Lua/LuaBindingsEntities.cpp @@ -968,6 +968,16 @@ LuaBindingRegisterFunctionDefinitionForType(EntityLuaBindings, MovableObject) { .property("ApplyWoundBurstDamageOnCollision", &MovableObject::GetApplyWoundBurstDamageOnCollision, &MovableObject::SetApplyWoundBurstDamageOnCollision) .property("SimUpdatesBetweenScriptedUpdates", &MovableObject::GetSimUpdatesBetweenScriptedUpdates, &MovableObject::SetSimUpdatesBetweenScriptedUpdates) .property("PostEffectEnabled", &MovableObject::GetPostEffectEnabled, &MovableObject::SetPostEffectEnabled) + .property("LightRadius", &MovableObject::GetLightRadius, &MovableObject::SetLightRadius) + .property("LightIntensity", &MovableObject::GetLightIntensity, &MovableObject::SetLightIntensity) + .property("LightFlicker", &MovableObject::GetLightFlicker, &MovableObject::SetLightFlicker) + .property("LightOffset", &MovableObject::GetLightOffset, &MovableObject::SetLightOffset) + .property("LightRed", &MovableObject::GetLightRed) + .property("LightGreen", &MovableObject::GetLightGreen) + .property("LightBlue", &MovableObject::GetLightBlue) + .def("SetLightColor", &MovableObject::SetLightColor) + .property("RenderBlendMode", &MovableObject::GetRenderBlendMode, &MovableObject::SetRenderBlendMode) + .property("RenderOpacity", &MovableObject::GetRenderOpacity, &MovableObject::SetRenderOpacity) .def("GetParent", (MOSRotating * (MovableObject::*)()) & MovableObject::GetParent) .def("GetParent", (const MOSRotating* (MovableObject::*)() const) & MovableObject::GetParent) diff --git a/Source/Lua/LuaBindingsManagers.cpp b/Source/Lua/LuaBindingsManagers.cpp index 55d60d8bfc..7456c13d4f 100644 --- a/Source/Lua/LuaBindingsManagers.cpp +++ b/Source/Lua/LuaBindingsManagers.cpp @@ -189,7 +189,18 @@ LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, PerformanceMan) LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, PostProcessMan) { return luabind::class_("PostProcessManager") - .def("RegisterPostEffect", &PostProcessMan::RegisterPostEffect); + .def("RegisterPostEffect", &PostProcessMan::RegisterPostEffect) + .def("AddLight", &PostProcessMan::AddLight) + .property("TimeOfDay", &PostProcessMan::GetTimeOfDay, &PostProcessMan::SetTimeOfDay) + .property("DayLengthMinutes", &PostProcessMan::GetDayLengthMinutes, &PostProcessMan::SetDayLengthMinutes) + .property("WeatherType", &PostProcessMan::GetWeatherType, &PostProcessMan::SetWeatherType) + .property("WeatherIntensity", &PostProcessMan::GetWeatherIntensity, &PostProcessMan::SetWeatherIntensity) + .property("Wind", &PostProcessMan::GetWind, &PostProcessMan::SetWind) + .property("LightingEnabled", &PostProcessMan::GetLightingEnabled, &PostProcessMan::SetLightingEnabled) + .def("SetSkyColor", &PostProcessMan::SetSkyColor) + .def("SetAmbientColor", &PostProcessMan::SetAmbientColor) + .def("SetColorGrade", &PostProcessMan::SetColorGrade) + .def("SetSplitToning", &PostProcessMan::SetSplitToning); } LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, PresetMan) { @@ -332,6 +343,11 @@ LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, SceneMan) { .def("CastNotMaterialRay", (bool(SceneMan::*)(const Vector&, const Vector&, unsigned char, Vector&, int, bool)) & SceneMan::CastNotMaterialRay) .def("CastNotMaterialRay", (float(SceneMan::*)(const Vector&, const Vector&, unsigned char, int, bool)) & SceneMan::CastNotMaterialRay) .def("CastStrengthSumRay", &SceneMan::CastStrengthSumRay) + .def("SmokeBlocksSight", &SceneMan::SmokeBlocksSight) + .def("GetBurningPixelCount", &SceneMan::GetBurningPixelCount) + .def("IsBurningNear", &SceneMan::IsBurningNear) + .def("GetBurningUnitCount", &SceneMan::GetBurningUnitCount) + .def("GetFlowingLiquidPixelCount", &SceneMan::GetFlowingLiquidPixelCount) .def("CastMaxStrengthRay", (float(SceneMan::*)(const Vector&, const Vector&, int, unsigned char)) & SceneMan::CastMaxStrengthRay) .def("CastMaxStrengthRay", (float(SceneMan::*)(const Vector&, const Vector&, int)) & SceneMan::CastMaxStrengthRay) .def("CastStrengthRay", &SceneMan::CastStrengthRay) @@ -345,10 +361,10 @@ LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, SceneMan) { .def("CastObstacleRay", &LuaAdaptersSceneMan::CastObstacleRay2) .def("CastTerrainPenetrationRay", &SceneMan::CastTerrainPenetrationRay) .def("GetLastRayHitPos", &SceneMan::GetLastRayHitPos) - .def("FindAltitude", (float(SceneMan::*)(const Vector&, int, int)) &SceneMan::FindAltitude) - .def("FindAltitude", (float(SceneMan::*)(const Vector&, int, int, bool)) &SceneMan::FindAltitude) - .def("MovePointToGround", (Vector(SceneMan::*)(const Vector&, int, int)) &SceneMan::MovePointToGround) - .def("MovePointToGround", (Vector(SceneMan::*)(const Vector&, int, int, int)) &SceneMan::MovePointToGround) + .def("FindAltitude", (float(SceneMan::*)(const Vector&, int, int)) & SceneMan::FindAltitude) + .def("FindAltitude", (float(SceneMan::*)(const Vector&, int, int, bool)) & SceneMan::FindAltitude) + .def("MovePointToGround", (Vector(SceneMan::*)(const Vector&, int, int)) & SceneMan::MovePointToGround) + .def("MovePointToGround", (Vector(SceneMan::*)(const Vector&, int, int, int)) & SceneMan::MovePointToGround) .def("IsWithinBounds", &SceneMan::IsWithinBounds) .def("ForceBounds", (bool(SceneMan::*)(Vector&) const) & SceneMan::ForceBounds) //, out_value(_2)) .def("WrapPosition", (bool(SceneMan::*)(Vector&) const) & SceneMan::WrapPosition) //, out_value(_2)) @@ -368,7 +384,8 @@ LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, SceneMan) { .def("DislodgePixelBox", (const std::vector* (SceneMan::*)(const Vector& upperLeftCorner, const Vector& lowerRightCorner, bool deletePixels) const) & SceneMan::DislodgePixelBox, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator) .def("DislodgePixelBox", (const std::vector* (SceneMan::*)(const Vector& upperLeftCorner, const Vector& lowerRightCorner) const) & SceneMan::DislodgePixelBoxNoBool, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator) .def("DislodgePixelRing", (const std::vector* (SceneMan::*)(const Vector& centre, float innerRadius, float outerRadius, bool deletePixels) const) & SceneMan::DislodgePixelRing, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator) - .def("DislodgePixelRing", (const std::vector* (SceneMan::*)(const Vector& centre, float innerRadius, float outerRadius) const) & SceneMan::DislodgePixelRingNoBool, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator); + .def("DislodgePixelRing", (const std::vector* (SceneMan::*)(const Vector& centre, float innerRadius, float outerRadius) const) & SceneMan::DislodgePixelRingNoBool, luabind::adopt(luabind::return_value) + luabind::return_stl_iterator) + .def("PourLiquid", &SceneMan::PourLiquid); } LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, CameraMan) { @@ -397,6 +414,12 @@ LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, SettingsMan) { .property("AutomaticGoldDeposit", &SettingsMan::GetAutomaticGoldDeposit); } +LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, DebugMan) { + return luabind::class_("DebugManager") + .def("ShowDebugOptions", &DebugMan::ShowDebugOptions) + .def("ShowGraphicsLab", &DebugMan::ShowGraphicsLab); +} + LuaBindingRegisterFunctionDefinitionForType(ManagerLuaBindings, TimerMan) { return luabind::class_("TimerManager") diff --git a/Source/Main.cpp b/Source/Main.cpp index de3fcb7abd..d60178933c 100644 --- a/Source/Main.cpp +++ b/Source/Main.cpp @@ -18,6 +18,7 @@ /// Cortex Command Community Project Discord - https://discord.gg/TSU6StNQUG /// +#include "SDL3/SDL_hints.h" #include "allegro.h" #include #include @@ -40,11 +41,19 @@ #include "UInputMan.h" #include "PerformanceMan.h" #include "FrameMan.h" +#include "DebugMan.h" +#include "TerrainFire.h" +#include "TerrainCollapse.h" +#include "FluidSim.h" +#include "SmokeGrid.h" +#include "Sandbox.h" +#include "ActorFire.h" #include "PostProcessMan.h" #include "SceneMan.h" #include "MetaMan.h" #include "WindowMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" +#include "RenderMan.h" #include "CameraMan.h" #include "ActivityMan.h" #include "PrimitiveMan.h" @@ -58,6 +67,11 @@ #include "imgui_impl_sdl3.h" +#ifdef RENDERDOC_DEBUG +#include "renderdoc_app.h" +#include +#endif + #ifdef _WIN32 #include "windows.h" #endif @@ -77,9 +91,11 @@ void InitializeManagers() { PresetMan::Construct(); SettingsMan::Construct(); WindowMan::Construct(); - GLResourceMan::Construct(); + GLStateMan::Construct(); LuaMan::Construct(); FrameMan::Construct(); + RenderMan::Construct(); + DebugMan::Construct(); PerformanceMan::Construct(); PostProcessMan::Construct(); PrimitiveMan::Construct(); @@ -99,11 +115,12 @@ void InitializeManagers() { g_ThreadMan.Initialize(); g_SettingsMan.Initialize(); g_WindowMan.Initialize(); - g_GLResourceMan.Initialize(); + g_GLStateMan.Initialize(); g_LuaMan.Initialize(); g_TimerMan.Initialize(); g_FrameMan.Initialize(); + g_RenderMan.Initialize(); g_PostProcessMan.Initialize(); g_PerformanceMan.Initialize(); @@ -146,7 +163,8 @@ void DestroyManagers() { g_LuaMan.Destroy(); ContentFile::FreeAllLoaded(); g_ConsoleMan.Destroy(); - g_GLResourceMan.Destroy(); + g_RenderMan.Destroy(); + g_GLStateMan.Destroy(); g_WindowMan.Destroy(); #ifdef DEBUG_BUILD @@ -207,6 +225,18 @@ void HandleMainArgs(int argCount, char** argValue) { void PollSDLEvents() { SDL_Event sdlEvent; while (SDL_PollEvent(&sdlEvent)) { + // Clicks, scrolls and typing aimed at a debug window shouldn't also reach the game (releases always do, so nothing gets stuck down). + const ImGuiIO& imGuiIO = ImGui::GetIO(); + // Function keys (debug window toggles, quicksave and so on) always reach the game, so a focused debug window can still be closed with its key. + bool functionKey = (sdlEvent.type == SDL_EVENT_KEY_DOWN || sdlEvent.type == SDL_EVENT_KEY_UP) && sdlEvent.key.scancode >= SDL_SCANCODE_F1 && sdlEvent.key.scancode <= SDL_SCANCODE_F12; + // While a sandbox tool is picked, left clicks on the world paint instead of firing. + bool sandboxTakesClick = Sandbox::CapturesWorldClicks() && sdlEvent.type == SDL_EVENT_MOUSE_BUTTON_DOWN && sdlEvent.button.button == SDL_BUTTON_LEFT; + bool imGuiTakesEvent = !functionKey && (sandboxTakesClick || (imGuiIO.WantCaptureMouse && (sdlEvent.type == SDL_EVENT_MOUSE_BUTTON_DOWN || sdlEvent.type == SDL_EVENT_MOUSE_WHEEL)) || + (imGuiIO.WantCaptureKeyboard && (sdlEvent.type == SDL_EVENT_KEY_DOWN || sdlEvent.type == SDL_EVENT_TEXT_INPUT))); + if (imGuiTakesEvent) { + ImGui_ImplSDL3_ProcessEvent(&sdlEvent); + continue; + } switch (sdlEvent.type) { case SDL_EVENT_QUIT : System::SetQuit(true); @@ -235,6 +265,16 @@ void PollSDLEvents() { break; } ImGui_ImplSDL3_ProcessEvent(&sdlEvent); + // Debug window toggles work every frame, even while the simulation is frozen (photo mode) and input otherwise isn't processed. + if (sdlEvent.type == SDL_EVENT_KEY_DOWN && !sdlEvent.key.repeat && !(sdlEvent.key.mod & (SDL_KMOD_ALT | SDL_KMOD_CTRL | SDL_KMOD_SHIFT))) { + if (sdlEvent.key.scancode == SDL_SCANCODE_F6) { + g_DebugMan.ToggleWorldDebug(); + } else if (sdlEvent.key.scancode == SDL_SCANCODE_F7) { + Sandbox::Toggle(); + } else if (sdlEvent.key.scancode == SDL_SCANCODE_F8) { + g_DebugMan.TogglePhotoMode(); + } + } if (sdlEvent.type >= SDL_EVENT_WINDOW_FIRST && sdlEvent.type <= SDL_EVENT_WINDOW_LAST) { g_WindowMan.QueueWindowEvent(sdlEvent); } @@ -287,6 +327,23 @@ void RunMenuLoop() { g_MenuMan.SetIsInMenuScreen(false); } +void LoadRenderDoc() { +#ifdef RENDERDOC_DEBUG + RENDERDOC_API_1_1_2 *rdoc_api = NULL; + // At init, on linux/android. + // For android replace librenderdoc.so with libVkLayer_GLES_RenderDoc.so + if (void* mod = dlopen("librenderdoc.so", RTLD_NOW | RTLD_NOLOAD)) { + pRENDERDOC_GetAPI RENDERDOC_GetAPI = (pRENDERDOC_GetAPI)dlsym(mod, "RENDERDOC_GetAPI"); + int ret = RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_2, (void**)&rdoc_api); + assert(ret == 1); + } + if (rdoc_api) { + RENDERDOC_InputButton pause = eRENDERDOC_Key_Pause; + rdoc_api->SetCaptureKeys(&pause, 1); + } +#endif +} + /// /// Game simulation loop. /// @@ -333,6 +390,11 @@ void RunGameLoop() { g_PerformanceMan.UpdateMSPSU(); g_TimerMan.UpdateSim(); + // If this is the first sim update since a drawn one, clear the scene post effects and lights before anything (activities and their global scripts included) registers new ones. + if (g_TimerMan.SimUpdatesSinceDrawn() == 0) { + g_PostProcessMan.ClearScenePostEffects(); + } + g_PerformanceMan.StartPerformanceMeasurement(PerformanceMan::SimTotal); g_LuaMan.Update(); @@ -349,6 +411,12 @@ void RunGameLoop() { if (g_SceneMan.GetScene()) { g_SceneMan.GetScene()->Update(); } + Sandbox::Update(); + SmokeGrid::Update(); + TerrainFire::Update(); + ActorFire::Update(); + TerrainCollapse::Update(); + FluidSim::Update(); g_LuaMan.ClearScriptTimings(); g_MovableMan.Update(); @@ -413,14 +481,14 @@ static const bool RTESetExceptionHandlers = []() { /// Implementation of the main function. /// int main(int argc, char** argv) { - install_allegro(SYSTEM_NONE, &errno, std::atexit); - loadpng_init(); + install_allegro(SYSTEM_NONE, &errno, nullptr); SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_GAMEPAD ); SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0"); SDL_SetHint("SDL_ALLOW_TOPMOST", "0"); - SDL_HideCursor(); + // SDL_HideCursor(); + LoadRenderDoc(); if (std::filesystem::exists("Base.rte/gamecontrollerdb.txt")) { SDL_AddGamepadMappingsFromFile("Base.rte/gamecontrollerdb.txt"); @@ -473,7 +541,6 @@ int main(int argc, char** argv) { DestroyManagers(); - allegro_exit(); SDL_Quit(); return EXIT_SUCCESS; diff --git a/Source/Managers/ActivityMan.cpp b/Source/Managers/ActivityMan.cpp index 8c6d7b9b91..17bc103e7f 100644 --- a/Source/Managers/ActivityMan.cpp +++ b/Source/Managers/ActivityMan.cpp @@ -1,4 +1,6 @@ #include "ActivityMan.h" +#include "TerrainFire.h" +#include "FluidSim.h" #include "Activity.h" #include "CameraMan.h" @@ -162,6 +164,9 @@ bool ActivityMan::SaveCurrentGame(const std::string& fileName) { writer->NewPropertyWithValue("PlaceObjectsIfSceneIsRestarted", g_SceneMan.GetPlaceObjectsOnLoad()); writer->NewPropertyWithValue("PlaceUnitsIfSceneIsRestarted", g_SceneMan.GetPlaceUnitsOnLoad()); writer->NewPropertyWithValue("Scene", modifiableScene.get()); + // Fire still burning and liquid still flowing, so they carry on after loading. The terrain itself is saved in the scene layers. + writer->NewPropertyWithValue("TerrainFireState", TerrainFire::GetSaveState()); + writer->NewPropertyWithValue("FlowingLiquidState", FluidSim::GetSaveState()); // Save a small little file with index info (activity and original scene name) so we can display info in the samegame menu without needing to decompress and read through the entire zip std::unique_ptr indexStream = std::make_unique(); @@ -377,6 +382,10 @@ bool ActivityMan::LoadAndLaunchGame(const std::string& fileName) { reader >> placeUnitsIfSceneIsRestarted; } else if (propName == "Scene") { reader >> scene.get(); + } else if (propName == "TerrainFireState") { + TerrainFire::SetPendingLoadState(reader.ReadPropValue()); + } else if (propName == "FlowingLiquidState") { + FluidSim::SetPendingLoadState(reader.ReadPropValue()); } } @@ -384,6 +393,7 @@ bool ActivityMan::LoadAndLaunchGame(const std::string& fileName) { unzClose(zippedSaveFile); + g_PostProcessMan.SetActivityAtmosphere(-1.0F, -1); // SetSceneToLoad() doesn't Clone(), but when the Activity starts, it will eventually call LoadScene(), which does a Clone() of scene internally. g_SceneMan.SetSceneToLoad(scene.get(), true, true); // Saved Scenes get their presetname set to their filename to ensure they're separate from the preset Scene they're based off of. diff --git a/Source/Managers/ActorFire.cpp b/Source/Managers/ActorFire.cpp new file mode 100644 index 0000000000..13ec14ffe3 --- /dev/null +++ b/Source/Managers/ActorFire.cpp @@ -0,0 +1,270 @@ +#include "ActorFire.h" +#include "ADoor.h" +#include "Actor.h" +#include "Material.h" +#include "MovableMan.h" +#include "PostProcessMan.h" +#include "PresetMan.h" +#include "SceneMan.h" +#include "TerrainFire.h" +#include "TimerMan.h" +#include "WeatherEffects.h" + +#include +#include +#include + +using namespace RTE; + +bool ActorFire::s_Enabled = true; + +namespace { + constexpr int c_TickInterval = 3; //!< Sim updates per fire tick, like the terrain fire. + constexpr const char* c_OnFireTag = "OnFire"; //!< Number value on burning units, so other code (the sandbox's attack orders) leaves them to panic. + + struct Burner { + MovableObject* Object; + long ID; //!< Unique ID, to tell the object apart from a new one reusing its memory. + int TicksLeft; + int PanicTicks; + }; + + std::vector s_Burners; //!< In the order they caught fire, so updates are deterministic. + std::vector s_IgniteQueue; + std::vector s_DouseQueue; + std::mutex s_QueueMutex; + const void* s_Scene = nullptr; + unsigned int s_Random = 0x2F1E3D5Bu; + int s_LavaMaterial = -1; + int s_WaterMaterial = -1; + + float Random01() { + s_Random ^= s_Random << 13; + s_Random ^= s_Random >> 17; + s_Random ^= s_Random << 5; + return static_cast(s_Random & 0xFFFFFF) / static_cast(0x1000000); + } + + MovableObject* CreateEffect(const char* className, const char* presetName) { + const Entity* preset = g_PresetMan.GetEntityPreset(className, presetName, "Base.rte"); + return preset ? dynamic_cast(preset->Clone()) : nullptr; + } + + bool CanBurn(const Actor* actor) { + return actor && !actor->IsDead() && !dynamic_cast(actor) && actor->GetHealth() > 0.0F; + } + + std::vector::iterator FindBurner(const MovableObject* object) { + return std::find_if(s_Burners.begin(), s_Burners.end(), [object](const Burner& burner) { return burner.Object == object; }); + } + + /// Sends a burning unit running in a random direction. + void Panic(Actor* actor) { + if (actor->IsPlayerControlled()) { + return; + } + float distance = 80.0F + Random01() * 100.0F; + actor->ClearAIWaypoints(); + actor->AddAISceneWaypoint(actor->GetPos() + Vector(Random01() < 0.5F ? -distance : distance, 0.0F)); + actor->SetAIMode(Actor::AIMODE_GOTO); + } + + void Ignite(MovableObject* object) { + if (!object || !g_MovableMan.ValidMO(object)) { + return; + } + Actor* actor = dynamic_cast(object); + if (!actor) { + // Not a unit: something with its own idea of burning, like a fuel barrel. + if (object->NumberValueExists("Flammable")) { + object->SetNumberValue("Ignited", 1.0); + } + return; + } + if (!CanBurn(actor)) { + return; + } + if (auto existing = FindBurner(actor); existing != s_Burners.end()) { + // Topped up by more fire. + existing->TicksLeft = std::max(existing->TicksLeft, 60); + return; + } + s_Burners.push_back({actor, actor->GetUniqueID(), 100 + static_cast(Random01() * 80.0F), 0}); + actor->SetNumberValue(c_OnFireTag, 1.0); + } + + void PutOut(std::vector::iterator burner, bool withSteam) { + if (g_MovableMan.ValidMO(burner->Object) && burner->Object->GetUniqueID() == burner->ID) { + burner->Object->RemoveNumberValue(c_OnFireTag); + if (Actor* actor = dynamic_cast(burner->Object); actor && !actor->IsPlayerControlled() && actor->GetAIMode() == Actor::AIMODE_GOTO && actor->GetNumberValue("SandboxAttack") <= 0.0) { + // Done panicking. + actor->ClearAIWaypoints(); + actor->SetAIMode(Actor::AIMODE_SENTRY); + } + if (withSteam) { + TerrainFire::SpawnSteam(burner->Object->GetPos(), 2); + } + } + s_Burners.erase(burner); + } + + int MaterialAt(const Vector& position) { return g_SceneMan.GetTerrMatter(position.GetFloorIntX(), position.GetFloorIntY()); } +} // namespace + +void ActorFire::OnHit(const MovableObject* hitter, MovableObject* hitRoot, const Material* hitterMaterial) { + if (!s_Enabled || !hitter || !hitRoot || hitRoot == hitter) { + return; + } + bool fire = TerrainFire::IsFireSource(hitter); + bool water = !fire && TerrainFire::IsDousingParticle(hitter, hitterMaterial); + if (!fire && !water) { + return; + } + std::scoped_lock lock(s_QueueMutex); + std::vector& queue = fire ? s_IgniteQueue : s_DouseQueue; + if (queue.size() < 512) { + queue.push_back(hitRoot); + } +} + +void ActorFire::Update() { + if (g_SceneMan.GetScene() != s_Scene) { + Clear(); + s_Scene = g_SceneMan.GetScene(); + s_Random = 0x2F1E3D5Bu; + s_LavaMaterial = -1; + s_WaterMaterial = -1; + if (s_Scene) { + const Material* lava = g_SceneMan.GetMaterial("Lava"); + const Material* water = g_SceneMan.GetMaterial("Water"); + s_LavaMaterial = lava && lava->GetIndex() != g_MaterialAir ? lava->GetIndex() : -1; + s_WaterMaterial = water && water->GetIndex() != g_MaterialAir ? water->GetIndex() : -1; + } + } + std::vector ignitions; + std::vector douses; + { + std::scoped_lock lock(s_QueueMutex); + ignitions.swap(s_IgniteQueue); + douses.swap(s_DouseQueue); + } + if (!s_Enabled || !s_Scene) { + s_Burners.clear(); + return; + } + + // Lights every update, so they don't flicker between fire ticks. + for (const Burner& burner: s_Burners) { + if (g_MovableMan.ValidMO(burner.Object) && burner.Object->GetUniqueID() == burner.ID) { + g_PostProcessMan.AddLight(burner.Object->GetPos(), 70.0F, 255.0F, 140.0F, 50.0F, 0.9F); + } + } + if (g_TimerMan.GetSimUpdateCount() % c_TickInterval != 0 && ignitions.empty() && douses.empty()) { + return; + } + + // Collision reports arrive in whatever order the collision code ran; apply them in a fixed one. + auto byID = [](const MovableObject* a, const MovableObject* b) { return a->GetUniqueID() < b->GetUniqueID(); }; + auto keepValid = [](std::vector& list) { + list.erase(std::remove_if(list.begin(), list.end(), [](MovableObject* object) { return !g_MovableMan.ValidMO(object); }), list.end()); + }; + keepValid(ignitions); + keepValid(douses); + std::sort(ignitions.begin(), ignitions.end(), byID); + ignitions.erase(std::unique(ignitions.begin(), ignitions.end()), ignitions.end()); + std::sort(douses.begin(), douses.end(), byID); + douses.erase(std::unique(douses.begin(), douses.end()), douses.end()); + for (MovableObject* object: ignitions) { + Ignite(object); + } + for (MovableObject* object: douses) { + if (auto burner = FindBurner(object); burner != s_Burners.end()) { + PutOut(burner, true); + } + } + if (g_TimerMan.GetSimUpdateCount() % c_TickInterval != 0) { + return; + } + + // Burning ground and lava set units standing in them alight. + for (Actor* actor: g_MovableMan.m_Actors) { + if (!CanBurn(actor) || FindBurner(actor) != s_Burners.end()) { + continue; + } + Vector feet = actor->GetPos() + Vector(0.0F, actor->GetRadius() * 0.6F); + bool lava = s_LavaMaterial > 0 && (MaterialAt(feet) == s_LavaMaterial || MaterialAt(feet + Vector(0.0F, 3.0F)) == s_LavaMaterial); + if (lava || (TerrainFire::IsBurningNear(feet, 4) && Random01() < 0.15F)) { + Ignite(actor); + } + } + + float rain = WeatherEffects::GetRain(); + float snow = WeatherEffects::GetSnow(); + std::vector caught; //!< Set alight by a burning unit, after the loop (igniting adds to the list being walked). + for (size_t i = 0; i < s_Burners.size();) { + Burner& burner = s_Burners[i]; + Actor* actor = g_MovableMan.ValidMO(burner.Object) && burner.Object->GetUniqueID() == burner.ID ? dynamic_cast(burner.Object) : nullptr; + if (!actor || !CanBurn(actor)) { + s_Burners.erase(s_Burners.begin() + static_cast(i)); + continue; + } + const Vector& position = actor->GetPos(); + // Water puts it out; rain and snow make it burn out sooner. + if (s_WaterMaterial > 0 && (MaterialAt(position) == s_WaterMaterial || MaterialAt(position + Vector(0.0F, actor->GetRadius() * 0.5F)) == s_WaterMaterial)) { + PutOut(s_Burners.begin() + static_cast(i), true); + continue; + } + if (Random01() < 0.3F * rain + 0.15F * snow) { + --burner.TicksLeft; + } + if (--burner.TicksLeft <= 0) { + PutOut(s_Burners.begin() + static_cast(i), false); + continue; + } + + actor->SetHealth(actor->GetHealth() - 0.25F); + float radius = actor->GetRadius(); + // Flames licking off the body. + if (MovableObject* flame = CreateEffect("MOSParticle", "Body Flame")) { + flame->SetPos(position + Vector((Random01() - 0.5F) * radius, (Random01() - 0.6F) * radius)); + flame->SetVel(actor->GetVel() * 0.5F + Vector((Random01() - 0.5F) * 1.0F, -1.0F - Random01())); + g_MovableMan.AddParticle(flame); + } + // Running burning units set the grass alight, and anyone they bump into. + if (Random01() < 0.3F) { + Vector feet = position + Vector((Random01() - 0.5F) * radius, radius * 0.7F); + TerrainFire::QueueIgnite(feet.GetFloorIntX(), feet.GetFloorIntY()); + } + if (Random01() < 0.05F) { + for (Actor* other: g_MovableMan.m_Actors) { + if (other != actor && CanBurn(other) && g_SceneMan.ShortestDistance(position, other->GetPos(), g_SceneMan.SceneWrapsX()).MagnitudeIsLessThan(14.0F)) { + caught.push_back(other); + break; + } + } + } + if (burner.PanicTicks-- <= 0) { + burner.PanicTicks = 40; + Panic(actor); + } + ++i; + } + for (Actor* actor: caught) { + Ignite(actor); + } +} + +bool ActorFire::IsBurning(const MovableObject* object) { + return FindBurner(object) != s_Burners.end(); +} + +int ActorFire::GetCount() { + return static_cast(s_Burners.size()); +} + +void ActorFire::Clear() { + s_Burners.clear(); + std::scoped_lock lock(s_QueueMutex); + s_IgniteQueue.clear(); + s_DouseQueue.clear(); +} diff --git a/Source/Managers/ActorFire.h b/Source/Managers/ActorFire.h new file mode 100644 index 0000000000..e5de7dce3c --- /dev/null +++ b/Source/Managers/ActorFire.h @@ -0,0 +1,40 @@ +#pragma once + +namespace RTE { + class Material; + class MovableObject; + + /// Units on fire: flames, napalm, burning ground and lava set them alight. A burning unit takes damage, panics and runs, and sets grass and nearby units alight as it goes, until it burns out or water puts it out. + /// Anything else with a "Flammable" number value gets an "Ignited" number value instead, for its own script to act on (fuel barrels explode). + /// Part of the simulation and deterministic: fixed sim steps, units handled in a fixed order, its own seeded random numbers. + class ActorFire { + + public: + /// Gets whether units can catch fire (a gameplay setting). + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether units can catch fire. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Reports one thing hitting another: fire sets what it hits alight, and water puts it out. Thread safe; call from collision code. + /// @param hitter What did the hitting. + /// @param hitRoot The root parent of what was hit. + /// @param hitterMaterial The hitter's material. + static void OnHit(const MovableObject* hitter, MovableObject* hitRoot, const Material* hitterMaterial); + + /// Burns, spreads and puts out fire on units. Call once per sim update, from the main thread, after the terrain fire update. + static void Update(); + + /// Gets whether something is on fire. + static bool IsBurning(const MovableObject* object); + + /// Gets how many units are on fire. + static int GetCount(); + + /// Puts out every burning unit and forgets them. + static void Clear(); + + private: + static bool s_Enabled; //!< Whether units can catch fire. + }; +} // namespace RTE diff --git a/Source/Managers/AudioMan.cpp b/Source/Managers/AudioMan.cpp index 4839b0af5f..a1d5a49c54 100644 --- a/Source/Managers/AudioMan.cpp +++ b/Source/Managers/AudioMan.cpp @@ -30,6 +30,7 @@ void AudioMan::Clear() { m_MuteMaster = false; m_MuteMusic = false; m_MuteSounds = false; + m_MuteAudioOnFocusLoss = false; m_MasterVolume = 0.5F; m_MusicVolume = 1.0F; m_SoundsVolume = 1.0F; diff --git a/Source/Managers/CameraMan.cpp b/Source/Managers/CameraMan.cpp index e76691b283..b6c1223c1d 100644 --- a/Source/Managers/CameraMan.cpp +++ b/Source/Managers/CameraMan.cpp @@ -48,8 +48,8 @@ void CameraMan::SetOffset(const Vector& offset, int screenId) { Vector CameraMan::GetUnwrappedOffset(int screenId) const { const Screen& screen = m_Screens[screenId]; - const SLTerrain* terrain = g_SceneMan.GetScene()->GetTerrain(); - return Vector(screen.Offset.GetX() + static_cast(terrain->GetBitmap()->w * screen.SeamCrossCount[Axes::X]), screen.Offset.GetY() + static_cast(terrain->GetBitmap()->h * screen.SeamCrossCount[Axes::Y])); + Vector terrainSize = g_SceneMan.GetSceneDim(); + return Vector(screen.Offset.GetX() + static_cast(terrainSize.m_X * screen.SeamCrossCount[Axes::X]), screen.Offset.GetY() + static_cast(terrainSize.m_Y * screen.SeamCrossCount[Axes::Y])); } void CameraMan::SetScroll(const Vector& center, int screenId) { @@ -157,10 +157,23 @@ Vector CameraMan::GetFrameSize(int screenId) { return Vector(static_cast(frameWidth), static_cast(frameHeight)); } +const std::vector& CameraMan::GetPlayerCameras(int screen) { + return m_Screens.at(screen).Cameras; +} + +void CameraMan::SetCameraZoom(float zoom, int screen) { + for (auto& camera: m_Screens.at(screen).Cameras) { + camera.SetZoom(zoom); + camera.UpdateView(); + } +} + void CameraMan::ResetAllScreenShake() { for (int screenId = 0; screenId < g_FrameMan.GetScreenCount(); ++screenId) { Screen& screen = m_Screens[screenId]; screen.ScreenShakeMagnitude = 0; + screen.ScreenShakeTime = 0; + screen.ScreenShakeOffset.Reset(); screen.ScrollTimer.Reset(); } } @@ -217,6 +230,10 @@ void CameraMan::Update(int screenId) { } } + // Take last update's shake back out, so the view follows its target smoothly underneath the shake. + screen.Offset -= screen.ScreenShakeOffset; + screen.ScreenShakeOffset.Reset(); + Vector oldOffset(screen.Offset); Vector offsetTarget; @@ -245,11 +262,16 @@ void CameraMan::Update(int screenId) { // So just hard-coded multiply to make 100% in settings correspond to 30% here (much easier than rebalancing everything). const float screenShakeScale = 0.3F; - Vector screenShakeOffset(1.0F, 0.0F); - screenShakeOffset.RadRotate(RandomNormalNum() * c_PI); - screenShakeOffset *= screen.ScreenShakeMagnitude * m_ScreenShakeStrength * screenShakeScale; - - newOffset += screenShakeOffset; + // Smooth noise (a few incommensurate sines) rather than a new random direction every frame: it reads as a rumble instead of jitter, + // doesn't depend on the frame rate, and doesn't use the sim's random numbers. + float shakeAmount = screen.ScreenShakeMagnitude * m_ScreenShakeStrength * screenShakeScale; + if (shakeAmount > 0.0F) { + screen.ScreenShakeTime += static_cast(screen.ScrollTimer.GetElapsedRealTimeS()); + auto noise = [](float x) { return 0.6F * std::sin(x) + 0.3F * std::sin(2.71F * x + 1.3F) + 0.1F * std::sin(5.13F * x + 2.1F); }; + float phase = screen.ScreenShakeTime * c_TwoPI * 11.0F; + screen.ScreenShakeOffset.SetXY(noise(phase) * shakeAmount, noise(phase * 1.13F + 17.0F) * shakeAmount); + newOffset += screen.ScreenShakeOffset; + } } else { screen.ScreenShakeMagnitude = 0; } @@ -258,4 +280,41 @@ void CameraMan::Update(int screenId) { screen.DeltaOffset = screen.Offset - oldOffset; screen.ScrollTimer.Reset(); + + Box viewport(screen.Offset, g_FrameMan.GetPlayerScreenWidth(), g_FrameMan.GetPlayerScreenHeight()); + Box sceneBox(Vector(), g_SceneMan.GetSceneDim()); + + screen.Cameras = {Camera(screen.Offset.GetFloored(), viewport)}; + screen.Cameras[0].SetClipRect(sceneBox.GetIntersection(viewport)); + + auto addWrapCamera = [sceneBox, &screen](Box viewport, Vector offset) { + viewport.m_Corner = screen.Offset - offset; + if (sceneBox.IntersectsBox(viewport)) { + screen.Cameras.emplace_back(viewport.m_Corner, viewport); + screen.Cameras.back().SetClipRect(sceneBox.GetIntersection(viewport)); + screen.Cameras.back().SetClipState(true); + } + }; + + if (g_SceneMan.SceneWrapsX()) { + addWrapCamera(viewport, Vector(g_SceneMan.GetSceneDim().m_X, 0.0f)); + addWrapCamera(viewport, -Vector(g_SceneMan.GetSceneDim().m_X, 0.0f)); + } + + if (g_SceneMan.SceneWrapsY()) { + addWrapCamera(viewport, Vector(0.0f, g_SceneMan.GetSceneDim().m_Y)); + addWrapCamera(viewport, -Vector(0.0f, g_SceneMan.GetSceneDim().m_Y)); + } + + if (g_SceneMan.SceneWrapsX() && g_SceneMan.SceneWrapsY()) { + addWrapCamera(viewport, g_SceneMan.GetSceneDim()); + addWrapCamera(viewport, Vector(g_SceneMan.GetSceneDim().m_X, -g_SceneMan.GetSceneDim().m_Y)); + addWrapCamera(viewport, -g_SceneMan.GetSceneDim()); + addWrapCamera(viewport, Vector(-g_SceneMan.GetSceneDim().m_X, g_SceneMan.GetSceneDim().m_Y)); + } + + screen.Cameras[0].SetClipState(screen.Cameras.size() > 1); + for (Camera& camera: screen.Cameras) { + camera.SetTeam(static_cast(screen.ScreenTeam)); + } } diff --git a/Source/Managers/CameraMan.h b/Source/Managers/CameraMan.h index 37463e5b44..ba47f35522 100644 --- a/Source/Managers/CameraMan.h +++ b/Source/Managers/CameraMan.h @@ -3,6 +3,7 @@ #include "Singleton.h" #include "Timer.h" #include "Vector.h" +#include "Camera.h" #include @@ -111,6 +112,13 @@ namespace RTE { /// @param screenId Which screen you want to get frame width/height of. /// @return The frame width (x) and height (y). Vector GetFrameSize(int screenId = 0); + + /// Gets the wrapped Cameras for the given screen. + /// @param screen The player screen for which to get the camera(s) + /// @return A vector of cameras to be used in drawing this player screen. + const std::vector& GetPlayerCameras(int screen = 0); + + void SetCameraZoom(float zoom, int screen = 0); #pragma endregion #pragma region Screen Shake Getters and Setters @@ -196,6 +204,10 @@ namespace RTE { Vector ScreenOcclusion; //!< The amount a screen is occluded or covered by GUI, etc. float ScreenShakeMagnitude = 0; //!< The magnitude of screen shake that is currently being applied. + float ScreenShakeTime = 0; //!< Real seconds of shaking so far, driving the shake's smooth noise. + Vector ScreenShakeOffset; //!< The shake currently added to Offset, taken back out before the next update so shake never drifts the view. + + std::vector Cameras; }; float m_ScreenShakeStrength; //!< A global multiplier applied to screen shaking strength. diff --git a/Source/Managers/ConsoleMan.cpp b/Source/Managers/ConsoleMan.cpp index fecce2ba09..bb7ef0d832 100644 --- a/Source/Managers/ConsoleMan.cpp +++ b/Source/Managers/ConsoleMan.cpp @@ -239,6 +239,8 @@ void ConsoleMan::ShowShortcuts() { "F3 - Save console log\n" "F4 - Save console user input log\n" "F5 - Quick save\n" + "F6 - World Debug window (time of day, weather, lighting, game speed)\n" + "F8 - Photo mode (frozen time, free camera, look controls, screenshots)\n" "F9 - Load latest quick-save\n" "RALT + F9 - Load latest auto-save\n" "F10 - Clear Console log\n" diff --git a/Source/Managers/DebugMan.cpp b/Source/Managers/DebugMan.cpp new file mode 100644 index 0000000000..f5633cce67 --- /dev/null +++ b/Source/Managers/DebugMan.cpp @@ -0,0 +1,557 @@ +#include "DebugMan.h" +#include "WindowMan.h" +#include "PerformanceMan.h" +#include "imgui/imgui.h" +#include "tracy/Tracy.hpp" +#include "Draw.h" +#include "RenderTarget.h" +#include "RenderBatch.h" +#include "RenderMan.h" +#include "MovableMan.h" +#include "CameraMan.h" +#include "FrameMan.h" +#include "SceneMan.h" +#include "PostProcessMan.h" +#include "SettingsMan.h" +#include "SceneLighting.h" +#include "TextOverlay.h" +#include "EffectsParticles.h" +#include "TerrainFire.h" +#include "TerrainCollapse.h" +#include "FluidSim.h" +#include "SmokeGrid.h" +#include "ActorFire.h" +#include "Controller.h" +#include "Sandbox.h" +#include "ModernHUD.h" +#include "TimerMan.h" +#include "UInputMan.h" +#include "ActivityMan.h" +#include "FrameMan.h" +#include "Scene.h" +#include "tracy/TracyOpenGL.hpp" + +using namespace RTE; + +void Draw() { +} + +void DebugMan::DrawImGui() { + UpdateMouseOwnership(); + + // Debug windows keep a readable size on big windows and handheld screens: scale with the window height (720 px = 1x). + { + ImGuiIO& io = ImGui::GetIO(); + float uiScale = std::clamp(io.DisplaySize.y / 720.0F, 1.0F, 2.5F); + float fontScale = uiScale * g_WindowMan.GetImGuiFontBaseScale(); + if (std::abs(io.FontGlobalScale - fontScale) > 0.001F) { + io.FontGlobalScale = fontScale; + ImGuiStyle& style = ImGui::GetStyle(); + style = ImGuiStyle(); + ImGui::StyleColorsDark(&style); + style.ScaleAllSizes(uiScale); + } + } + + // The modern HUD, unless photo mode is hiding the HUD. + if (!IsPhotoModeHidingHUD()) { + ModernHUD::Draw(); + } + + if (m_ShowWorldDebug) { + WorldDebugGUI(); + } + + Sandbox::DrawGUI(); + + if (m_ShowPhotoMode) { + PhotoModeGUI(); + } else if (m_PhotoModeActive) { + EndPhotoMode(); + } + + if (m_ShowDebugWindow) { + DebugOptionsGUI(); + } + + if (m_ShowActorDebugGui) { + ActorDrawDebugGUI(); + } + + if (m_ImGuiDemoWindow) { + ImGui::ShowDemoWindow(&m_ImGuiDemoWindow); + } + + if (m_ShowPerformanceMan) { + g_PerformanceMan.ImGui(); + } + + if (m_ShowGraphicsLab) { + GraphicsLabGUI(); + } +} + +void DebugMan::UpdateMouseOwnership() { + bool wantMouse = Sandbox::IsOpen() || m_ShowWorldDebug || m_ShowPhotoMode || m_ShowGraphicsLab || m_ShowDebugWindow || m_ShowActorDebugGui || m_ImGuiDemoWindow || m_ShowPerformanceMan; + if (wantMouse != m_ReleasedMouseForImGui) { + // In game the mouse is trapped in relative mode for aiming, which ImGui can't use; release it while debug windows are open. + g_UInputMan.DisableMouseMoving(wantMouse); + m_ReleasedMouseForImGui = wantMouse; + } + // The game hides the OS cursor and draws its own, so have ImGui draw one too. + ImGui::GetIO().MouseDrawCursor = wantMouse; +} + +void DebugMan::WorldDebugGUI() { + ImGui::SetNextWindowSize(ImVec2(340.0F, 0.0F), ImGuiCond_FirstUseEver); + ImGui::SetNextWindowPos(ImVec2(10.0F, 40.0F), ImGuiCond_FirstUseEver); + if (ImGui::Begin("World Debug (F6)", &m_ShowWorldDebug)) { + LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + + if (const Scene* scene = g_SceneMan.GetScene(); scene && g_ActivityMan.IsInActivity()) { + ImGui::Text("Scene: %s", scene->GetPresetName().c_str()); + } else { + ImGui::TextDisabled("No scene loaded (menus)"); + } + ImGui::Text("%.0f FPS", ImGui::GetIO().Framerate); + if (ImGui::Button(Sandbox::IsOpen() ? "Close sandbox (F7)" : "Open sandbox (F7)")) { + Sandbox::Toggle(); + } + + ImGui::SeparatorText("Time of day"); + ImGui::SliderFloat("Hour", &settings.TimeOfDay, 0.0F, 24.0F, "%.2f"); + const std::pair presets[] = {{"Midnight", 0.0F}, {"Dawn", 6.0F}, {"Noon", 12.0F}, {"Dusk", 19.0F}, {"Night", 22.0F}}; + for (size_t i = 0; i < std::size(presets); ++i) { + if (i > 0) { + ImGui::SameLine(); + } + if (ImGui::Button(presets[i].first)) { + settings.TimeOfDay = presets[i].second; + } + } + bool timeFlows = settings.DayLengthMinutes > 0.0F; + if (ImGui::Checkbox("Time passes", &timeFlows)) { + settings.DayLengthMinutes = timeFlows ? 10.0F : 0.0F; + } + if (timeFlows) { + ImGui::SliderFloat("Day length (min)", &settings.DayLengthMinutes, 0.5F, 60.0F, "%.1f", ImGuiSliderFlags_Logarithmic); + } + + ImGui::SeparatorText("Weather"); + ImGui::Combo("Precipitation", &settings.WeatherType, "Clear\0Rain\0Snow\0"); + ImGui::SliderFloat("Intensity", &settings.WeatherIntensity, 0.0F, 1.0F); + ImGui::SliderFloat("Wind", &settings.Wind, -400.0F, 400.0F, "%.0f px/s"); + + ImGui::SeparatorText("Lighting"); + int quality = settings.GraphicsQuality; + if (ImGui::Combo("Quality", &quality, "Potato (classic)\0Low\0Medium\0High\0Ultra\0Custom\0")) { + settings.ApplyQualityPreset(quality); + } + ImGui::Checkbox("Lighting", &settings.Enabled); + ImGui::SameLine(); + ImGui::Checkbox("Bloom", &settings.BloomEnabled); + ImGui::SameLine(); + ImGui::Checkbox("Extra effects", &settings.DistortionEnabled); + ImGui::Checkbox("Radiance cascades GI", &settings.RadianceCascades); + bool modernHUD = ModernHUD::IsEnabled(); + if (ImGui::Checkbox("Modern HUD", &modernHUD)) { + ModernHUD::SetEnabled(modernHUD); + } + bool smoothText = TextOverlay::IsEnabled(); + if (ImGui::Checkbox("Smooth HUD text", &smoothText)) { + TextOverlay::SetEnabled(smoothText); + } + // Brightness sliders scale the colors uniformly, keeping their tint. + auto brightnessSlider = [](const char* label, glm::vec3& color, float maxValue) { + float level = std::max({color.x, color.y, color.z}); + if (ImGui::SliderFloat(label, &level, 0.0F, maxValue, "%.2f") && level > 0.0F) { + float current = std::max({color.x, color.y, color.z}); + color = current > 0.0F ? color * (level / current) : glm::vec3(level); + } + }; + brightnessSlider("Interior / cave light", settings.Ambient, 1.0F); + brightnessSlider("Playfield light floor", settings.ForegroundAmbient, 1.0F); + brightnessSlider("Sky light", settings.SkyColor, 2.0F); + ImGui::SliderFloat("Exposure", &settings.Exposure, 0.1F, 4.0F); + ImGui::SliderFloat("Auto exposure", &settings.AutoExposure, 0.0F, 1.0F); + if (SceneLighting* lighting = g_PostProcessMan.GetSceneLighting(); lighting && settings.Enabled && settings.AutoExposure > 0.0F) { + float averageLuminance = 0.0F; + float autoExposure = 1.0F; + lighting->ReadAutoExposure(averageLuminance, autoExposure); + ImGui::Text("Scene luminance %.3f -> exposure x%.2f", averageLuminance, autoExposure); + } + ImGui::SliderFloat("God rays", &settings.GodRays, 0.0F, 2.0F); + ImGui::SliderFloat("Haze", &settings.AtmosphereHaze, 0.0F, 1.0F); + ImGui::Combo("View", &settings.DebugView, "Final image\0Lighting on grey\0Sky light only\0Dynamic light only\0Normals\0Distortion\0GI only (radiance cascades)\0"); + + ImGui::SeparatorText("Game"); + bool terrainFire = TerrainFire::IsEnabled(); + if (ImGui::Checkbox("Spreading fire", &terrainFire)) { + TerrainFire::SetEnabled(terrainFire); + } + ImGui::SameLine(); + ImGui::TextDisabled("(%d burning)", TerrainFire::GetCount()); + bool terrainCollapse = TerrainCollapse::IsEnabled(); + if (ImGui::Checkbox("Collapsing terrain", &terrainCollapse)) { + TerrainCollapse::SetEnabled(terrainCollapse); + } + ImGui::SameLine(); + ImGui::TextDisabled("(%d pixels fell)", TerrainCollapse::GetCollapsedCount()); + bool liquids = FluidSim::IsEnabled(); + if (ImGui::Checkbox("Flowing liquids", &liquids)) { + FluidSim::SetEnabled(liquids); + } + ImGui::SameLine(); + ImGui::TextDisabled("(%d moving)", FluidSim::GetActiveCount()); + bool aiPaused = Controller::IsAIPaused(); + if (ImGui::Checkbox("Pause AI", &aiPaused)) { + Controller::SetAIPaused(aiPaused); + } + bool burningUnits = ActorFire::IsEnabled(); + if (ImGui::Checkbox("Units catch fire", &burningUnits)) { + ActorFire::SetEnabled(burningUnits); + } + bool smokeBlocks = SmokeGrid::IsEnabled(); + if (ImGui::Checkbox("Smoke blocks sight", &smokeBlocks)) { + SmokeGrid::SetEnabled(smokeBlocks); + } + ImGui::Checkbox("Headlamps at night", &settings.Headlamps); + ImGui::SameLine(); + ImGui::Checkbox("Night limits AI sight", &settings.NightAffectsAI); + float timeScale = g_TimerMan.GetTimeScale(); + if (ImGui::SliderFloat("Game speed", &timeScale, 0.1F, 4.0F, "%.2fx", ImGuiSliderFlags_Logarithmic)) { + g_TimerMan.SetTimeScale(timeScale); + } + if (ImGui::Button("Normal speed")) { + g_TimerMan.SetTimeScale(1.0F); + } + + ImGui::Separator(); + if (ImGui::Button("Graphics Lab")) { + m_ShowGraphicsLab = true; + } + ImGui::SameLine(); + if (ImGui::Button("Performance")) { + m_ShowPerformanceMan = !m_ShowPerformanceMan; + } + ImGui::SameLine(); + if (ImGui::Button("Save settings")) { + g_PostProcessMan.AdoptAtmosphereAsPlayers(); + g_SettingsMan.UpdateSettingsFile(); + } + } + ImGui::End(); +} + +void DebugMan::EndPhotoMode() { + if (!m_PhotoKeepLook) { + // Keep the time of day and weather the player had; photo mode's look changes were for the photo. + g_PostProcessMan.GetLightingSettings() = m_PhotoSavedSettings; + } + g_TimerMan.PauseSim(false); + g_FrameMan.SetHudDisabled(m_PhotoPreviousHUDDisabled, 0); + m_PhotoModeActive = false; +} + +void DebugMan::PhotoModeGUI() { + bool inActivity = g_ActivityMan.IsInActivity() && g_SceneMan.GetScene(); + if (inActivity && !m_PhotoModeActive) { + m_PhotoModeActive = true; + m_PhotoSavedSettings = g_PostProcessMan.GetLightingSettings(); + m_PhotoPreviousHUDDisabled = g_FrameMan.IsHudDisabled(0); + m_PhotoCameraCenter = g_CameraMan.GetOffset(0) + Vector(static_cast(g_FrameMan.GetPlayerScreenWidth()) * 0.5F, static_cast(g_FrameMan.GetPlayerScreenHeight()) * 0.5F); + } + if (m_PhotoModeActive) { + g_TimerMan.PauseSim(m_PhotoFreeze); + g_FrameMan.SetHudDisabled(m_PhotoHideHUD, 0); + + // Free camera: drag with the right mouse button anywhere outside the window, or the arrow keys. + ImGuiIO& io = ImGui::GetIO(); + float pixelsPerScreenPixel = static_cast(g_FrameMan.GetPlayerScreenWidth()) / std::max(1.0F, io.DisplaySize.x); + if (!io.WantCaptureMouse && ImGui::IsMouseDown(ImGuiMouseButton_Right)) { + m_PhotoCameraCenter -= Vector(io.MouseDelta.x, io.MouseDelta.y) * pixelsPerScreenPixel; + } + float keySpeed = 400.0F * io.DeltaTime * (ImGui::IsKeyDown(ImGuiKey_LeftShift) ? 3.0F : 1.0F); + if (ImGui::IsKeyDown(ImGuiKey_LeftArrow)) { + m_PhotoCameraCenter.m_X -= keySpeed; + } + if (ImGui::IsKeyDown(ImGuiKey_RightArrow)) { + m_PhotoCameraCenter.m_X += keySpeed; + } + if (ImGui::IsKeyDown(ImGuiKey_UpArrow)) { + m_PhotoCameraCenter.m_Y -= keySpeed; + } + if (ImGui::IsKeyDown(ImGuiKey_DownArrow)) { + m_PhotoCameraCenter.m_Y += keySpeed; + } + g_SceneMan.WrapPosition(m_PhotoCameraCenter); + g_CameraMan.SetScrollTarget(m_PhotoCameraCenter, 1.0F, 0); + } + + ImGui::SetNextWindowSize(ImVec2(330.0F, 0.0F), ImGuiCond_FirstUseEver); + ImGui::SetNextWindowPos(ImVec2(ImGui::GetIO().DisplaySize.x - 345.0F, 40.0F), ImGuiCond_FirstUseEver); + if (ImGui::Begin("Photo Mode (F8)", &m_ShowPhotoMode)) { + if (!inActivity) { + ImGui::TextWrapped("Start a game to use photo mode."); + } else { + LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + ImGui::Checkbox("Freeze time", &m_PhotoFreeze); + ImGui::SameLine(); + ImGui::Checkbox("Hide HUD", &m_PhotoHideHUD); + ImGui::TextDisabled("Camera: drag with right mouse, or arrow keys (Shift = faster)"); + + ImGui::SeparatorText("Look"); + ImGui::SliderFloat("Hour", &settings.TimeOfDay, 0.0F, 24.0F, "%.2f"); + ImGui::Combo("Weather", &settings.WeatherType, "Clear\0Rain\0Snow\0"); + ImGui::SliderFloat("Exposure", &settings.Exposure, 0.2F, 3.0F); + ImGui::SliderFloat("Saturation", &settings.Saturation, 0.0F, 2.0F); + ImGui::SliderFloat("Contrast", &settings.Contrast, 0.5F, 1.6F); + ImGui::SliderFloat("Temperature", &settings.Temperature, -1.0F, 1.0F); + ImGui::SliderFloat("Tint", &settings.Tint, -1.0F, 1.0F); + ImGui::SliderFloat("Vignette", &settings.Vignette, 0.0F, 1.0F); + ImGui::SliderFloat("Bloom", &settings.BloomIntensity, 0.0F, 3.0F); + ImGui::SliderFloat("Haze", &settings.AtmosphereHaze, 0.0F, 1.0F); + ImGui::SliderFloat("God rays", &settings.GodRays, 0.0F, 2.0F); + ImGui::SliderFloat("Film grain", &settings.FilmGrain, 0.0F, 1.0F); + ImGui::SliderFloat("Chromatic aberration", &settings.ChromaticAberration, 0.0F, 4.0F); + if (ImGui::Button("Reset look")) { + settings = m_PhotoSavedSettings; + } + ImGui::SameLine(); + ImGui::Checkbox("Keep look changes", &m_PhotoKeepLook); + + ImGui::Separator(); + ImGui::Combo("Resolution", &m_PhotoScale, "As shown in the window\0" + "2x (1920x1080)\0" + "3x\0" + "4x (3840x2160)\0"); + if (ImGui::Button("Take screenshot", ImVec2(-1.0F, 0.0F))) { + m_ScreenshotRequested = true; + } + ImGui::TextDisabled("Saved to the ScreenShots folder."); + } + } + ImGui::End(); +} + +void DebugMan::GraphicsLabGUI() { + if (ImGui::Begin("Graphics Lab", &m_ShowGraphicsLab)) { + LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + const ImGuiColorEditFlags linearColorFlags = ImGuiColorEditFlags_Float | ImGuiColorEditFlags_HDR; + + ImGui::SeparatorText("Sky and ambient light"); + ImGui::Checkbox("Lighting enabled", &settings.Enabled); + ImGui::ColorEdit3("Ambient (linear)", &settings.Ambient.x, linearColorFlags); + ImGui::ColorEdit3("Sky (linear)", &settings.SkyColor.x, linearColorFlags); + ImGui::ColorEdit3("Foreground floor (linear)", &settings.ForegroundAmbient.x, linearColorFlags); + ImGui::SliderFloat("Air falloff", &settings.AirFalloff, 0.8F, 0.995F, "%.3f"); + ImGui::SliderFloat("Terrain falloff", &settings.SolidFalloff, 0.1F, 0.95F, "%.2f"); + ImGui::SliderInt("Propagation steps/frame", &settings.PropagationIterationsPerFrame, 1, 32); + ImGui::SliderFloat("God rays", &settings.GodRays, 0.0F, 2.0F); + ImGui::SliderFloat("God ray decay", &settings.GodRayDecay, 0.85F, 0.999F, "%.3f"); + ImGui::SliderFloat("Atmosphere haze", &settings.AtmosphereHaze, 0.0F, 1.0F); + ImGui::ColorEdit3("Atmosphere (linear)", &settings.AtmosphereColor.x, linearColorFlags); + ImGui::SliderFloat("Time of day (h)", &settings.TimeOfDay, 0.0F, 24.0F, "%.2f"); + ImGui::SliderFloat("Day length (min, 0 = fixed)", &settings.DayLengthMinutes, 0.0F, 60.0F, "%.1f"); + + ImGui::SeparatorText("Weather"); + ImGui::Combo("Precipitation", &settings.WeatherType, "Clear\0Rain\0Snow\0"); + ImGui::SliderFloat("Intensity##Weather", &settings.WeatherIntensity, 0.0F, 1.0F); + ImGui::SliderFloat("Wind (px/s)", &settings.Wind, -400.0F, 400.0F); + + ImGui::SeparatorText("Glows and dynamic lights"); + ImGui::SliderFloat("Glow light intensity", &settings.GlowLightIntensity, 0.0F, 8.0F); + ImGui::SliderFloat("Glow light radius", &settings.GlowLightRadiusScale, 0.5F, 10.0F); + ImGui::SliderFloat("Shadow strength", &settings.ShadowStrength, 0.0F, 1.0F); + ImGui::SliderFloat("Emissive intensity", &settings.EmissiveIntensity, 0.0F, 4.0F); + ImGui::SliderFloat("Edge lighting", &settings.EdgeLighting, 0.0F, 1.0F); + ImGui::SliderFloat("Indirect light", &settings.IndirectLight, 0.0F, 1.5F); + ImGui::Checkbox("Radiance cascades GI", &settings.RadianceCascades); + ImGui::SliderFloat("GI strength", &settings.GIStrength, 0.0F, 4.0F); + ImGui::SliderFloat("GI bounce", &settings.GIBounce, 0.0F, 1.0F); + + ImGui::SeparatorText("Distortion"); + ImGui::Checkbox("Distortion enabled", &settings.DistortionEnabled); + ImGui::SliderFloat("Heat haze (px)", &settings.HeatHaze, 0.0F, 6.0F); + ImGui::SliderFloat("Shockwave strength", &settings.ShockwaveStrength, 0.0F, 3.0F); + + ImGui::SeparatorText("Terrain effects"); + ImGui::Checkbox("Scorch marks", &settings.ScorchMarks); + ImGui::Checkbox("Blood, oil and water stains", &settings.Stains); + ImGui::Checkbox("Living world (sway, snow, wet ground)", &settings.LivingWorld); + ImGui::SliderFloat("Embers", &settings.Embers, 0.0F, 3.0F); + ImGui::SliderFloat("Sparks, dust and debris", &settings.EffectsParticles, 0.0F, 3.0F); + ImGui::SliderFloat("Smoke scattering", &settings.SmokeScattering, 0.0F, 3.0F); + ImGui::Text("Effects particles alive: %d", EffectsParticles::GetCount()); + ImGui::SliderFloat("Hot spot cooling (s)", &settings.HotSpotSeconds, 0.0F, 10.0F); + + ImGui::SeparatorText("Bloom"); + ImGui::Checkbox("Bloom enabled", &settings.BloomEnabled); + ImGui::SliderFloat("Threshold", &settings.BloomThreshold, 0.0F, 4.0F); + ImGui::SliderFloat("Knee", &settings.BloomKnee, 0.01F, 1.0F); + ImGui::SliderFloat("Intensity", &settings.BloomIntensity, 0.0F, 3.0F); + + ImGui::SeparatorText("Tonemapping and grading"); + ImGui::SliderFloat("Exposure", &settings.Exposure, 0.1F, 4.0F); + ImGui::SliderFloat("Auto exposure", &settings.AutoExposure, 0.0F, 1.0F); + ImGui::SliderFloat("Adapt below", &settings.AutoExposureLow, 0.001F, 0.2F, "%.3f", ImGuiSliderFlags_Logarithmic); + ImGui::SliderFloat("Adapt above", &settings.AutoExposureHigh, 0.05F, 2.0F, "%.3f", ImGuiSliderFlags_Logarithmic); + if (SceneLighting* lighting = g_PostProcessMan.GetSceneLighting(); lighting && settings.AutoExposure > 0.0F) { + float averageLuminance = 0.0F; + float autoExposure = 1.0F; + lighting->ReadAutoExposure(averageLuminance, autoExposure); + ImGui::Text("Scene luminance %.3f, auto exposure x%.2f", averageLuminance, autoExposure); + } + ImGui::SliderFloat("Highlight shoulder", &settings.ShoulderStart, 0.3F, 1.0F); + ImGui::SliderFloat("Saturation", &settings.Saturation, 0.0F, 2.0F); + ImGui::SliderFloat("Vignette", &settings.Vignette, 0.0F, 1.0F); + ImGui::SliderFloat("Temperature", &settings.Temperature, -1.0F, 1.0F); + ImGui::SliderFloat("Tint", &settings.Tint, -1.0F, 1.0F); + ImGui::SliderFloat("Contrast", &settings.Contrast, 0.5F, 1.6F); + ImGui::ColorEdit3("Shadow tint", &settings.ShadowTint.x, linearColorFlags); + ImGui::ColorEdit3("Highlight tint", &settings.HighlightTint.x, linearColorFlags); + ImGui::SliderFloat("Film grain", &settings.FilmGrain, 0.0F, 1.0F); + ImGui::SliderFloat("Chromatic aberration (px)", &settings.ChromaticAberration, 0.0F, 4.0F); + + ImGui::SeparatorText("Debug"); + ImGui::Combo("View", &settings.DebugView, "Final image\0Lighting on grey\0Sky light only\0Dynamic light only\0Normals\0Distortion\0GI only (radiance cascades)\0"); + + ImGui::SeparatorText("Stats"); + if (SceneLighting* lighting = g_PostProcessMan.GetSceneLighting()) { + ImGui::Text("Light grid: %d x %d cells of %dpx", lighting->GetGridWidth(), lighting->GetGridHeight(), lighting->GetGridCellSize()); + ImGui::Text("Dynamic lights last screen: %d", lighting->GetLastLightCount()); + int atlasPages = 0; + int atlasTextures = 0; + BitmapTexture::GetAtlasStats(atlasPages, atlasTextures); + ImGui::Text("Sprite atlas: %d sprites on %d pages", atlasTextures, atlasPages); + } + + ImGui::Separator(); + if (ImGui::Button("Reset to defaults")) { + settings = LightingSettings(); + } + ImGui::SameLine(); + if (ImGui::Button("Save to Settings.ini")) { + g_PostProcessMan.AdoptAtmosphereAsPlayers(); + g_SettingsMan.UpdateSettingsFile(); + } + } + ImGui::End(); +} + +void DebugMan::DebugOptionsGUI() { + if (ImGui::Begin("Debug Options", &m_ShowDebugWindow)) { + ImGui::Checkbox("Show Performance Stats", &m_ShowPerformanceMan); + ImGui::Checkbox("Show Graphics Lab", &m_ShowGraphicsLab); + ImGui::Checkbox("Show World Debug (F6)", &m_ShowWorldDebug); + ImGui::Checkbox("Show ImGui Demo Window", &m_ImGuiDemoWindow); + ImGui::Checkbox("Show Actor debug", &m_ShowActorDebugGui); + if (ImGui::TreeNode("Debug Draw")) { + ImGui::Checkbox("Draw Camera bounds", &m_DrawCameraBounds); + + if (ImGui::TreeNode("Sprite Draw")) { + ImGui::Checkbox("Draw frustum tests", &m_DrawSpriteBounds); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Free Cam")) { + ImGui::Checkbox("Enable Free Cam", &m_EnableFreeCam); + if (m_EnableFreeCam && g_SceneMan.GetScene()) { + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + ImVec2 p = ImGui::GetCursorScreenPos(); + float maxWidth = ImGui::GetContentRegionAvail().x; + Vector sceneDim = g_SceneMan.GetSceneDim(); + float aspectRatio = sceneDim.m_Y / sceneDim.m_X; + static ImVec2 freeCamPos{0.0f, 0.0f}; + + float height = maxWidth * aspectRatio; + Box viewport = Box(Vector(0.0f, 0.0f), g_FrameMan.GetPlayerScreenWidth(), g_FrameMan.GetPlayerScreenHeight()); + float viewToSceneScale = viewport.m_Width / sceneDim.m_X; + + float minimapToSceneScale = sceneDim.m_X / maxWidth; + + m_FreeCam = std::make_unique(Vector(freeCamPos.x, freeCamPos.y) * minimapToSceneScale, viewport, m_FreeCamZoom); + + draw_list->AddRectFilled(p, ImVec2(p.x + maxWidth, p.y + height), ImGui::GetColorU32(ImGui::GetStyle().Colors[ImGuiCol_FrameBg])); + draw_list->AddRect(p, ImVec2(p.x + maxWidth, p.y + height), ImGui::GetColorU32(ImGui::GetStyle().Colors[ImGuiCol_Border])); + draw_list->AddRectFilled(ImVec2(p.x + freeCamPos.x, p.y + freeCamPos.y), ImVec2(p.x + freeCamPos.x + maxWidth * viewToSceneScale, p.y + freeCamPos.y + height * viewToSceneScale), ImGui::GetColorU32(ImGui::GetStyle().Colors[ImGuiCol_Button])); + draw_list->AddRect(ImVec2(p.x + freeCamPos.x, p.y + freeCamPos.y), ImVec2(p.x + freeCamPos.x + maxWidth * viewToSceneScale, p.y + freeCamPos.y + height * viewToSceneScale), ImGui::GetColorU32(ImGui::GetStyle().Colors[ImGuiCol_Border])); + + float zoomX = (maxWidth * viewToSceneScale) / 2.0f * (1.f / m_FreeCamZoom - 1.0f); + float zoomY = (height * viewToSceneScale) / 2.0f * (1.f / m_FreeCamZoom - 1.0f); + + draw_list->AddRect(ImVec2(p.x + freeCamPos.x - zoomX, p.y + freeCamPos.y - zoomY), ImVec2(p.x + freeCamPos.x + maxWidth * viewToSceneScale + zoomX, p.y + freeCamPos.y + height * viewToSceneScale + zoomY), ImGui::GetColorU32(ImGui::GetStyle().Colors[ImGuiCol_Separator])); + + ImGui::InvisibleButton("##FreeCamMap", ImVec2(maxWidth, height)); + + ImGuiIO& io = ImGui::GetIO(); + if (ImGui::IsItemActive()) { + freeCamPos.x = io.MousePos.x - p.x; + freeCamPos.y = io.MousePos.y - p.y; + } + ImGui::Text("FreeCamPos: {%.1f; %.1f}", freeCamPos.x, freeCamPos.y); + ImGui::Text("FreeCamPos: {%.1f; %.1f}", freeCamPos.x + maxWidth * viewToSceneScale, freeCamPos.y + height * viewToSceneScale); + ImGui::InputFloat("Zoom", &m_FreeCamZoom, 0.1f, 0.5f); + } + ImGui::TreePop(); + } + + ImGui::TreePop(); + } + } + ImGui::End(); +} + + +void DebugMan::ActorDrawDebugGUI() { + ZoneScoped; + static std::shared_ptr batch = std::make_unique(); + if (ImGui::Begin("Actor Draw Debug", &m_ShowActorDebugGui)) { + static std::map> MOTargets; + static int playerScreen = -1; + ImGui::InputInt("Test Draw for Screen (-1 full world):", &playerScreen); + ImGui::SliderInt("Screen", &playerScreen, -1, c_MaxScreenCount); + if (g_SceneMan.GetScene()) { + ZoneScopedN("ActorList"); + g_RenderMan.SetActiveBatch(batch.get()); + g_RenderMan.BeginFrame(); + if (playerScreen >= 0) { + ZoneScopedN("ActorList::DrawPlayer"); + for (auto& camera: g_CameraMan.GetPlayerCameras(playerScreen)) { + g_MovableMan.Draw(camera); + } + } else { + ZoneScopedN("ActorList::DrawAll"); + Camera camera{{0.0f, 0.0f}, {{0.0f, 0.0f}, (float)g_SceneMan.GetSceneHeight(), (float)g_SceneMan.GetSceneWidth()}}; + g_MovableMan.Draw(camera); + } + g_RenderMan.ResetActiveBatch(); + batch->EndFrame(); + { + ZoneScopedN("ActorList::List"); + for (auto actor: g_MovableMan.m_Actors) { + if (ImGui::TreeNode(actor->GetPresetNameAndUniqueID().c_str())) { + ZoneScopedN("ActorList::List::Node"); + if (!MOTargets[actor]) { + MOTargets[actor] = std::make_unique(FloatRect{0.0f, 0.0f, actor->GetRadius() * 2.0f, 2.f * actor->GetRadius()}); + } + if (!m_DebugDrawTarget) { + m_DebugDrawTarget = std::make_unique(false); + } + m_DebugDrawTarget->Begin(true, false); + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, MOTargets[actor]->GetTextureId(), 0); + glViewport(0, 0, 2 * actor->GetRadius(), 2 * actor->GetRadius()); + Camera camera(actor->GetPos() - Vector(actor->GetRadius(), actor->GetRadius()), Box({0.0f, 0.0f}, actor->GetRadius() * 2, actor->GetRadius() * 2.0f)); + batch->m_CurrentCamera = &camera; + batch->Render(); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + ImGui::ImageWithBg(MOTargets[actor]->GetTextureId(), ImVec2(MOTargets[actor]->GetDimensions().w, MOTargets[actor]->GetDimensions().h)); + ImGui::TreePop(); + } + } + } + batch->ClearDraws(); + } + } + ImGui::End(); +} diff --git a/Source/Managers/DebugMan.h b/Source/Managers/DebugMan.h new file mode 100644 index 0000000000..ddd895fdf0 --- /dev/null +++ b/Source/Managers/DebugMan.h @@ -0,0 +1,91 @@ +#pragma once +#include "Singleton.h" +#include "LightingSettings.h" +#include "Vector.h" +#include + +#define g_DebugMan DebugMan::Instance() + +namespace RTE { + class RenderTarget; + class DebugMan : public Singleton { + friend class SettingsMan; + public: + void Draw(); + void DrawImGui(); + + void ShowDebugOptions() { m_ShowDebugWindow = true; } + + /// Opens the Graphics Lab, the live lighting and post-processing tuning window. + void ShowGraphicsLab() { m_ShowGraphicsLab = true; } + + /// Toggles the World Debug window (time of day, weather, lighting and game speed), bound to F6. + void ToggleWorldDebug() { m_ShowWorldDebug = !m_ShowWorldDebug; } + + /// Toggles photo mode (F8): frozen time, a free camera, look controls and window resolution screenshots. + void TogglePhotoMode() { m_ShowPhotoMode = !m_ShowPhotoMode; } + + /// Gets whether photo mode is open and hiding the HUD and screen text. + bool IsPhotoModeHidingHUD() const { return m_PhotoModeActive && m_PhotoHideHUD; } + + /// Gets and clears whether a photo mode screenshot was asked for. WindowMan takes it from the finished frame, before ImGui is drawn. + bool ConsumeScreenshotRequest() { + bool requested = m_ScreenshotRequested; + m_ScreenshotRequested = false; + return requested; + } + + /// Gets how many times the internal resolution photo mode screenshots are saved at (1 = as shown in the window). + int GetScreenshotScale() const { return m_PhotoScale > 0 ? m_PhotoScale + 1 : 0; } + + bool DrawSpriteBounds() { return m_DrawSpriteBounds; } + constexpr bool DrawNoGravBoxes() { return false; } + bool DrawBigTextureBounds() { return false; } + bool DrawTilingBounds() { return false; } + + bool FreeCamEnabled() { return m_EnableFreeCam; } + float FreeCamZoom() { return m_FreeCamZoom; } + Camera* GetFreeCam() { return m_FreeCam.get(); } + + private: + bool m_ShowDebugWindow{false}; + bool m_ImGuiDemoWindow{false}; + bool m_ShowPerformanceMan{false}; + bool m_ShowGraphicsLab{false}; + bool m_ShowWorldDebug{false}; + bool m_ShowPhotoMode{false}; + bool m_PhotoModeActive{false}; //!< Whether photo mode has taken over (time frozen, settings saved), to restore things when it closes. + bool m_PhotoFreeze{true}; + bool m_PhotoHideHUD{true}; + bool m_PhotoKeepLook{false}; + bool m_PhotoPreviousHUDDisabled{false}; + bool m_ScreenshotRequested{false}; + int m_PhotoScale{0}; //!< Resolution choice: 0 = as shown in the window, 1..3 = 2x..4x the internal resolution. + Vector m_PhotoCameraCenter; + LightingSettings m_PhotoSavedSettings; + bool m_ReleasedMouseForImGui{false}; //!< Whether the mouse was taken from the game so ImGui windows can be used. + + bool m_DrawCameraBounds{false}; + bool m_DrawSpriteBounds{false}; + + void DebugOptionsGUI(); + void GraphicsLabGUI(); + void WorldDebugGUI(); + void PhotoModeGUI(); + + /// Restores what photo mode changed, when it closes. + void EndPhotoMode(); + + /// Gives the mouse to ImGui while any interactive debug window is open, and back to the game when they all close. + void UpdateMouseOwnership(); + + bool m_ShowActorDebugGui{false}; + std::unique_ptr m_DebugDrawTarget; + void ActorDrawDebugGUI(); + + + bool m_EnableFreeCam{false}; + float m_FreeCamZoom{1.0f}; + std::unique_ptr m_FreeCam; + }; +} // namespace RTE diff --git a/Source/Managers/FluidSim.cpp b/Source/Managers/FluidSim.cpp new file mode 100644 index 0000000000..ef6376e8d3 --- /dev/null +++ b/Source/Managers/FluidSim.cpp @@ -0,0 +1,447 @@ +#include "FluidSim.h" +#include "Constants.h" +#include "ConsoleMan.h" +#include "EffectsParticles.h" +#include "Material.h" +#include "MovableMan.h" +#include "MovableObject.h" +#include "MOPixel.h" +#include "PresetMan.h" +#include "SceneMan.h" +#include "SLTerrain.h" +#include "Scene.h" +#include "TerrainFire.h" +#include "TimerMan.h" +#include "Vector.h" +#include "RenderMan.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace RTE; + +bool FluidSim::s_Enabled = true; + +namespace { + enum class Liquid : unsigned char { + None, + Water, + Lava, + Acid, + Oil + }; + constexpr int c_LiquidKinds = 5; + + struct LiquidProperties { + int Flow; //!< How far a pixel may run sideways per step. + int MoveEvery; //!< Moves every this many sim updates; viscous liquids are slower. + }; + constexpr LiquidProperties c_Liquids[] = { + {0, 1}, // None + {4, 1}, // Water + {1, 3}, // Lava + {3, 1}, // Acid + {2, 2}, // Oil + }; + + constexpr size_t c_MaxActive = 30000; + constexpr int c_RestSteps = 20; //!< A pixel that hasn't moved for this many of its steps stops being simulated. + + std::array s_Kinds{}; + std::array s_MaterialOf{}; //!< Material ID of each liquid kind, 0 if the scene's materials don't have it. + std::array s_ColorOf{}; //!< Palette index each liquid is drawn with. + int s_StoneMaterial = 0; + int s_StoneColor = 0; + bool s_TablesBuilt = false; + + std::map s_Active; //!< Moving liquid pixels (y * width + x) and how many steps they've been still. Ordered, so deterministic. + struct PourRequest { + int X, Y, Radius; + Liquid Kind; + }; + std::vector s_Pours; + std::vector> s_Disturbances; + std::mutex s_QueueMutex; + const void* s_Scene = nullptr; + std::string s_PendingLoadState; //!< Saved moving liquid to restore when the loaded scene starts. + int s_Width = 0; //!< Width of the terrain the active pixels' keys refer to. + unsigned int s_Random = 0x6C8E9CF5u; + + float Random01() { + s_Random ^= s_Random << 13; + s_Random ^= s_Random >> 17; + s_Random ^= s_Random << 5; + return static_cast(s_Random & 0xFFFFFF) / static_cast(0x1000000); + } + + Liquid LiquidFromName(const std::string& name, Liquid otherwise) { + return name == "Water" ? Liquid::Water : (name == "Lava" ? Liquid::Lava : (name == "Acid" ? Liquid::Acid : (name == "Oil" ? Liquid::Oil : otherwise))); + } + + void BuildTables() { + s_Kinds.fill(Liquid::None); + s_MaterialOf.fill(0); + s_StoneMaterial = 0; + for (int id = 1; id < 256; ++id) { + const Material* material = g_SceneMan.GetMaterialFromID(static_cast(id)); + if (!material || material->GetIndex() != id) { + continue; + } + const std::string& name = material->GetPresetName(); + Liquid kind = LiquidFromName(name, Liquid::None); + if (kind != Liquid::None) { + s_Kinds[id] = kind; + s_MaterialOf[static_cast(kind)] = id; + Color color = material->GetColor(); + color.RecalculateIndex(); + s_ColorOf[static_cast(kind)] = color.GetIndex(); + // Oil is drawn plain: its dark brown is shared with too many sprites to shimmer. + if (kind != Liquid::Oil) { + g_RenderMan.SetLiquidPaletteColor(color.GetIndex(), static_cast(kind), kind == Liquid::Lava ? 230 : 0); + } + } else if (name == "Stone") { + s_StoneMaterial = id; + Color color = material->GetColor(); + color.RecalculateIndex(); + s_StoneColor = color.GetIndex(); + } + } + s_TablesBuilt = true; + } + + Liquid KindAt(const SLTerrain* terrain, int x, int y) { return s_Kinds[static_cast(terrain->GetMaterialPixel(x, y))]; } + + bool InWorld(int& x, int& y, int width, int height) { + if (g_SceneMan.SceneWrapsX()) { + x = ((x % width) + width) % width; + } + return x >= 0 && y >= 0 && x < width && y < height; + } + + void Activate(int x, int y, int width, int height, const SLTerrain* terrain) { + if (s_Active.size() < c_MaxActive && InWorld(x, y, width, height) && KindAt(terrain, x, y) != Liquid::None) { + s_Active.emplace(y * width + x, 0); + } + } + + void ActivateAround(int x, int y, int width, int height, const SLTerrain* terrain) { + for (int dy = -1; dy <= 1; ++dy) { + for (int dx = -1; dx <= 1; ++dx) { + Activate(x + dx, y + dy, width, height, terrain); + } + } + } + + MovableObject* CreateEffect(const char* className, const char* presetName) { + const Entity* preset = g_PresetMan.GetEntityPreset(className, presetName, "Base.rte"); + return preset ? dynamic_cast(preset->Clone()) : nullptr; + } +} // namespace + +bool FluidSim::IsLiquid(int materialID) { + return s_TablesBuilt && materialID > 0 && materialID < 256 && s_Kinds[materialID] != Liquid::None; +} + +void FluidSim::Pour(const Vector& position, float radius, const char* liquidName) { + std::string name(liquidName ? liquidName : "Water"); + Liquid kind = LiquidFromName(name, Liquid::Water); + std::scoped_lock lock(s_QueueMutex); + s_Pours.push_back({static_cast(position.m_X), static_cast(position.m_Y), std::max(1, static_cast(radius)), kind}); +} + +void FluidSim::OnParticleSettled(const MovableObject* particle) { + if (!particle || !particle->GetMaterial()) { + return; + } + int material = particle->GetMaterial()->GetIndex(); + Vector position = particle->GetPos(); + if (TerrainFire::IsFlammable(material) && TerrainFire::IsFireSource(particle)) { + TerrainFire::QueueIgnite(position.GetFloorIntX(), position.GetFloorIntY()); + } + if (!s_Enabled || !IsLiquid(material)) { + return; + } + const MOPixel* pixel = dynamic_cast(particle); + if (pixel && pixel->GetColor().GetIndex() == s_ColorOf[static_cast(s_Kinds[material])]) { + std::scoped_lock lock(s_QueueMutex); + s_Disturbances.emplace_back(glm::ivec2(position.GetFloorIntX(), position.GetFloorIntY()), 1); + } +} + +void FluidSim::Disturb(const Vector& position, float radius) { + if (!s_Enabled) { + return; + } + std::scoped_lock lock(s_QueueMutex); + s_Disturbances.emplace_back(glm::ivec2(static_cast(position.m_X), static_cast(position.m_Y)), static_cast(radius)); +} + +void FluidSim::Update() { + if (g_SceneMan.GetScene() != s_Scene) { + Clear(); + s_Scene = g_SceneMan.GetScene(); + s_Random = 0x6C8E9CF5u; + s_TablesBuilt = false; + if (!s_PendingLoadState.empty() && s_Scene) { + // Restore a saved game's moving liquid: the random state, then "x y stillSteps" per pixel. + std::istringstream stream(s_PendingLoadState); + unsigned int random = 0; + stream >> random; + if (random != 0) { + s_Random = random; + } + Scene* loadedScene = g_SceneMan.GetScene(); + int loadedWidth = loadedScene && loadedScene->GetTerrain() ? loadedScene->GetTerrain()->GetBitmap()->w : 0; + int x = 0; + int y = 0; + int still = 0; + while (loadedWidth > 0 && stream >> x >> y >> still && s_Active.size() < c_MaxActive) { + s_Active.emplace(y * loadedWidth + x, still); + } + g_ConsoleMan.PrintString("SYSTEM: Restored " + std::to_string(s_Active.size()) + " moving liquid pixels from the saved game."); + } + s_PendingLoadState.clear(); + } + Scene* scene = g_SceneMan.GetScene(); + SLTerrain* terrain = scene ? scene->GetTerrain() : nullptr; + if (!terrain || !s_Enabled) { + std::scoped_lock lock(s_QueueMutex); + s_Pours.clear(); + s_Disturbances.clear(); + s_Active.clear(); + return; + } + if (!s_TablesBuilt) { + BuildTables(); + } + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + s_Width = width; + + std::vector pours; + std::vector> disturbances; + { + std::scoped_lock lock(s_QueueMutex); + pours.swap(s_Pours); + disturbances.swap(s_Disturbances); + } + std::sort(pours.begin(), pours.end(), [](const PourRequest& a, const PourRequest& b) { return a.Y != b.Y ? a.Y < b.Y : (a.X != b.X ? a.X < b.X : a.Radius < b.Radius); }); + for (const PourRequest& pour: pours) { + int material = s_MaterialOf[static_cast(pour.Kind)]; + if (material == 0) { + continue; + } + for (int dy = -pour.Radius; dy <= pour.Radius; ++dy) { + for (int dx = -pour.Radius; dx <= pour.Radius; ++dx) { + int x = pour.X + dx; + int y = pour.Y + dy; + if (dx * dx + dy * dy <= pour.Radius * pour.Radius && InWorld(x, y, width, height) && terrain->GetMaterialPixel(x, y) == g_MaterialAir) { + terrain->SetMaterialPixel(x, y, material); + terrain->SetFGColorPixel(x, y, s_ColorOf[static_cast(pour.Kind)]); + Activate(x, y, width, height, terrain); + } + } + } + } + std::sort(disturbances.begin(), disturbances.end(), [](const auto& a, const auto& b) { return a.first.y != b.first.y ? a.first.y < b.first.y : (a.first.x != b.first.x ? a.first.x < b.first.x : a.second < b.second); }); + for (const auto& [center, radius]: disturbances) { + for (int dy = -radius; dy <= radius; ++dy) { + for (int dx = -radius; dx <= radius; ++dx) { + Activate(center.x + dx, center.y + dy, width, height, terrain); + } + } + } + if (s_Active.empty()) { + return; + } + + long long simUpdate = g_TimerMan.GetSimUpdateCount(); + // Bottom to top, so a column of liquid falls together instead of one pixel per step. + std::vector keys; + keys.reserve(s_Active.size()); + for (auto it = s_Active.rbegin(); it != s_Active.rend(); ++it) { + keys.push_back(it->first); + } + std::vector settled; + std::vector hurtSpots; + for (int key: keys) { + int x = key % width; + int y = key / width; + Liquid kind = KindAt(terrain, x, y); + if (kind == Liquid::None) { + settled.push_back(key); + continue; + } + const LiquidProperties& properties = c_Liquids[static_cast(kind)]; + if (simUpdate % properties.MoveEvery != 0) { + continue; + } + + // Reactions with neighbours. + static constexpr int neighbours[4][2] = {{0, -1}, {-1, 0}, {1, 0}, {0, 1}}; + bool reacted = false; + for (const auto& offset: neighbours) { + int nx = x + offset[0]; + int ny = y + offset[1]; + if (!InWorld(nx, ny, width, height)) { + continue; + } + int neighbourMaterial = terrain->GetMaterialPixel(nx, ny); + Liquid neighbourKind = s_Kinds[static_cast(neighbourMaterial)]; + if (kind == Liquid::Lava && neighbourKind == Liquid::Water && s_StoneMaterial) { + // Lava meeting water: the lava sets to stone and the water boils off in a puff of steam. + terrain->SetMaterialPixel(x, y, s_StoneMaterial); + terrain->SetFGColorPixel(x, y, s_StoneColor); + terrain->SetMaterialPixel(nx, ny, g_MaterialAir); + terrain->SetFGColorPixel(nx, ny, ColorKeys::g_MaskColor); + ActivateAround(nx, ny, width, height, terrain); + EffectsParticles::SpawnExplosion(Vector(static_cast(nx), static_cast(ny)), 520.0F); + if (Random01() < 0.5F) { + TerrainFire::SpawnSteam(Vector(static_cast(nx), static_cast(ny)), 1); + } + reacted = true; + break; + } + if (kind == Liquid::Lava && TerrainFire::IsFlammable(neighbourMaterial) && Random01() < 0.2F) { + TerrainFire::QueueIgnite(nx, ny); + } + if (kind == Liquid::Water) { + TerrainFire::Extinguish(nx, ny); + } + if (kind == Liquid::Acid && neighbourKind == Liquid::None && neighbourMaterial != g_MaterialAir) { + // Acid slowly eats soft terrain, and is used up doing it. + const Material* material = g_SceneMan.GetMaterialFromID(static_cast(neighbourMaterial)); + if (material->GetIntegrity() < 100.0F && Random01() < 0.02F) { + terrain->SetMaterialPixel(nx, ny, g_MaterialAir); + terrain->SetFGColorPixel(nx, ny, ColorKeys::g_MaskColor); + ActivateAround(nx, ny, width, height, terrain); + if (Random01() < 0.3F) { + terrain->SetMaterialPixel(x, y, g_MaterialAir); + terrain->SetFGColorPixel(x, y, ColorKeys::g_MaskColor); + ActivateAround(x, y, width, height, terrain); + reacted = true; + break; + } + } + } + } + if (kind == Liquid::Water) { + TerrainFire::Extinguish(x, y); + } + if (reacted) { + settled.push_back(key); + continue; + } + if (kind == Liquid::Lava && y > 0 && terrain->GetMaterialPixel(x, y - 1) == g_MaterialAir && Random01() < 0.01F) { + hurtSpots.emplace_back(x, y - 1); + } + + auto canMoveTo = [&](int tx, int ty) { + return InWorld(tx, ty, width, height) && terrain->GetMaterialPixel(tx, ty) == g_MaterialAir; + }; + int targetX = x; + int targetY = y; + bool moved = false; + if (canMoveTo(x, y + 1)) { + targetY = y + 1; + moved = true; + } else { + int first = Random01() < 0.5F ? -1 : 1; + for (int side: {first, -first}) { + int sx = x + side; + InWorld(sx, y, width, height); + if (canMoveTo(sx, y + 1)) { + targetX = sx; + targetY = y + 1; + moved = true; + break; + } + } + if (!moved) { + // Run sideways to find the level. + for (int side: {first, -first}) { + for (int step = 1; step <= properties.Flow; ++step) { + int sx = x + side * step; + if (!canMoveTo(sx, y)) { + break; + } + targetX = sx; + moved = true; + InWorld(targetX, targetY, width, height); + // Stop as soon as there's a way down, so liquid pours off ledges. + int belowX = targetX; + int belowY = y + 1; + if (canMoveTo(belowX, belowY)) { + break; + } + } + if (moved) { + break; + } + } + } + } + if (moved) { + // Applied straight away: going bottom to top, the pixel above sees this one already gone and can follow it down in the same step. + InWorld(targetX, targetY, width, height); + int target = targetY * width + targetX; + int material = terrain->GetMaterialPixel(x, y); + int color = terrain->GetFGColorPixel(x, y); + terrain->SetMaterialPixel(targetX, targetY, material); + terrain->SetFGColorPixel(targetX, targetY, color); + terrain->SetMaterialPixel(x, y, g_MaterialAir); + terrain->SetFGColorPixel(x, y, ColorKeys::g_MaskColor); + s_Active.erase(key); + s_Active[target] = 0; + // Whatever was resting around it may now flow into the gap. + ActivateAround(x, y, width, height, terrain); + } else if (++s_Active[key] >= c_RestSteps) { + settled.push_back(key); + } + } + + for (int key: settled) { + s_Active.erase(key); + } + for (const glm::ivec2& spot: hurtSpots) { + if (MovableObject* flame = CreateEffect("MOPixel", "Flame Hurt Particle")) { + flame->SetPos(Vector(static_cast(spot.x), static_cast(spot.y))); + flame->SetVel(Vector(0.0F, -2.0F)); + g_MovableMan.AddParticle(flame); + } + } +} + +std::string FluidSim::GetSaveState() { + std::ostringstream stream; + stream << s_Random; + // Keys were made with the width cached at the last update; the terrain isn't touched here, since saving can happen at any time. + int width = s_Width; + if (width > 0) { + for (const auto& [key, still]: s_Active) { + stream << ' ' << key % width << ' ' << key / width << ' ' << still; + } + } + return stream.str(); +} + +void FluidSim::SetPendingLoadState(const std::string& state) { + s_PendingLoadState = state; +} + +void FluidSim::Clear() { + s_Active.clear(); + std::scoped_lock lock(s_QueueMutex); + s_Pours.clear(); + s_Disturbances.clear(); +} + +int FluidSim::GetActiveCount() { + return static_cast(s_Active.size()); +} diff --git a/Source/Managers/FluidSim.h b/Source/Managers/FluidSim.h new file mode 100644 index 0000000000..6d64825d47 --- /dev/null +++ b/Source/Managers/FluidSim.h @@ -0,0 +1,57 @@ +#pragma once + +#include + +namespace RTE { + class Vector; + class MovableObject; + + /// Flowing liquids in the terrain: water, lava, acid and oil pixels fall, spread sideways and pool. + /// Water puts out fire; lava sets things alight, glows, hurts and turns to stone where it meets water; acid eats through soft terrain; oil burns. + /// Liquids at rest cost nothing: only pixels that moved recently, or whose surroundings changed, are simulated. + /// Part of the simulation and deterministic: fixed sim steps, sorted order, its own seeded random numbers. + class FluidSim { + + public: + /// Gets whether flowing liquids are on (a gameplay setting). + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether flowing liquids are on. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Gets whether a material is one of the flowing liquids. + static bool IsLiquid(int materialID); + + /// Fills air in a circle with a liquid. Thread safe; applied on the next sim step. + /// @param position Centre, in scene coordinates. + /// @param radius Radius in pixels. + /// @param liquidName "Water", "Lava", "Acid" or "Oil". + static void Pour(const Vector& position, float radius, const char* liquidName); + + /// Wakes liquid around a disturbance (explosion, collapse) so it starts flowing again. Thread safe. + static void Disturb(const Vector& position, float radius); + + /// Lets a particle that just settled into the terrain join in: a drop of liquid in that liquid's own colour starts flowing (so blood, drawn in water, stays put), + /// and a burning particle sets the flammable pixel it became alight. Call after the particle is drawn into the terrain. + /// @param particle The settled particle. + static void OnParticleSettled(const MovableObject* particle); + + /// Advances the liquids one simulation step. Call once per sim update, from the main thread. + static void Update(); + + /// Gets the current state as text, for saved games. + static std::string GetSaveState(); + + /// Sets state from a saved game, applied when the loaded scene starts. + static void SetPendingLoadState(const std::string& state); + + /// Forgets all moving liquid, e.g. when the scene changes. Liquid pixels stay where they are. + static void Clear(); + + /// Gets how many liquid pixels are moving, for statistics. + static int GetActiveCount(); + + private: + static bool s_Enabled; //!< Whether flowing liquids are on. + }; +} // namespace RTE diff --git a/Source/Managers/FrameMan.cpp b/Source/Managers/FrameMan.cpp index 0799a475c6..ae956ed599 100644 --- a/Source/Managers/FrameMan.cpp +++ b/Source/Managers/FrameMan.cpp @@ -1,4 +1,7 @@ #include "FrameMan.h" +#include "TextOverlay.h" +#include "EffectsParticles.h" +#include "SceneLighting.h" #include "SDL3/SDL_surface.h" #include "WindowMan.h" @@ -8,10 +11,12 @@ #include "PerformanceMan.h" #include "ActivityMan.h" #include "CameraMan.h" +#include "DebugMan.h" #include "ConsoleMan.h" #include "SettingsMan.h" #include "UInputMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" +#include "RenderMan.h" #include "SLTerrain.h" #include "SLBackground.h" @@ -36,7 +41,6 @@ using namespace RTE; -void BitmapDeleter::operator()(BITMAP* bitmap) const { destroy_bitmap(bitmap); } void SurfaceDeleter::operator()(SDL_Surface* surface) const { SDL_DestroySurface(surface); } const std::array, DrawBlendMode::BlendModeCount> FrameMan::c_BlenderSetterFunctions = { @@ -129,7 +133,7 @@ int FrameMan::CreateBackBuffers() { int resY = g_WindowMan.GetResY(); // Create the back buffer, this is still in 8bpp, we will do any post-processing on the PostProcessing bitmap - m_BackBuffer8 = std::unique_ptr(create_bitmap_ex(8, resX, resY)); + m_BackBuffer8 = std::make_unique(std::unique_ptr(create_bitmap_ex(8, resX, resY))); ClearBackBuffer8(); // Create the post-processing buffer, it'll be used for glow effects etc @@ -141,16 +145,17 @@ int FrameMan::CreateBackBuffers() { m_OverlayBitmap32 = std::unique_ptr(create_bitmap_ex(c_BPP, resX, resY)); clear_to_color(m_OverlayBitmap32.get(), 0); - m_PlayerScreenWidth = m_BackBuffer8->w; - m_PlayerScreenHeight = m_BackBuffer8->h; + m_PlayerScreenWidth = m_BackBuffer8->GetDimensions().w; + m_PlayerScreenHeight = m_BackBuffer8->GetDimensions().h; // Create the splitscreen buffer if (m_HSplit || m_VSplit) { - m_PlayerScreen8 = std::unique_ptr(create_bitmap_ex(8, resX / (m_VSplit ? 2 : 1), resY / (m_HSplit ? 2 : 1))); - clear_to_color(m_PlayerScreen8.get(), 0); - set_clip_state(m_PlayerScreen8.get(), 1); + m_PlayerScreen8 = std::make_unique(std::unique_ptr(create_bitmap_ex(8, resX / (m_VSplit ? 2 : 1), resY / (m_HSplit ? 2 : 1)))); + clear_to_color(m_PlayerScreen8->GetBitmap(), 0); + set_clip_state(m_PlayerScreen8->GetBitmap(), 1); m_PlayerScreen = std::make_unique(FloatRect(0, 0, resX / (m_VSplit ? 2 : 1), resY / (m_HSplit ? 2 : 1)), FloatRect(0, 0, resX / (m_VSplit ? 2 : 1), resY / (m_HSplit ? 2 : 1))); + m_PlayerScreen->EnableNormalAttachment(); // Update these to represent the split screens m_PlayerScreenWidth = m_PlayerScreen->GetSize().w; @@ -158,9 +163,10 @@ int FrameMan::CreateBackBuffers() { } else { m_PlayerScreen8 = m_BackBuffer8; m_PlayerScreen = m_BackBuffer; + m_PlayerScreen->EnableNormalAttachment(); } - m_ScreenDumpBuffer = std::unique_ptr(SDL_CreateSurface(m_BackBuffer8->w, m_BackBuffer8->h, SDL_PIXELFORMAT_RGB24)); + m_ScreenDumpBuffer = std::unique_ptr(SDL_CreateSurface(m_BackBuffer8->GetDimensions().w, m_BackBuffer8->GetDimensions().h, SDL_PIXELFORMAT_RGB24)); return 0; } @@ -242,11 +248,12 @@ void FrameMan::ResetSplitScreens(bool hSplit, bool vSplit) { // Create the splitscreen buffer if (m_HSplit || m_VSplit) { - m_PlayerScreen8 = std::unique_ptr(create_bitmap_ex(8, g_WindowMan.GetResX() / (m_VSplit ? 2 : 1), g_WindowMan.GetResY() / (m_HSplit ? 2 : 1))); - clear_to_color(m_PlayerScreen8.get(), 0); - set_clip_state(m_PlayerScreen8.get(), 1); + m_PlayerScreen8 = std::make_unique(std::unique_ptr(create_bitmap_ex(8, g_WindowMan.GetResX() / (m_VSplit ? 2 : 1), g_WindowMan.GetResY() / (m_HSplit ? 2 : 1)))); + clear_to_color(m_PlayerScreen8->GetBitmap(), 0); + set_clip_state(m_PlayerScreen8->GetBitmap(), 1); m_PlayerScreen = std::make_unique(FloatRect(0, 0, g_WindowMan.GetResX() / (m_VSplit ? 2 : 1), g_WindowMan.GetResY() / (m_HSplit ? 2 : 1)), FloatRect(0, 0, g_WindowMan.GetResX() / (m_VSplit ? 2 : 1), g_WindowMan.GetResY() / (m_HSplit ? 2 : 1))); + m_PlayerScreen->EnableNormalAttachment(); // Update these to represent the split screens m_PlayerScreenWidth = m_PlayerScreen->GetSize().w; @@ -254,9 +261,10 @@ void FrameMan::ResetSplitScreens(bool hSplit, bool vSplit) { } else { m_PlayerScreen8 = m_BackBuffer8; m_PlayerScreen = m_BackBuffer; + m_PlayerScreen->EnableNormalAttachment(); // No splits, so set the screen dimensions equal to the back buffer - m_PlayerScreenWidth = m_BackBuffer8->w; - m_PlayerScreenHeight = m_BackBuffer8->h; + m_PlayerScreenWidth = m_BackBuffer8->GetDimensions().w; + m_PlayerScreenHeight = m_BackBuffer8->GetDimensions().h; } for (int i = 0; i < c_MaxScreenCount; ++i) { m_FlashScreenColor[i] = -1; @@ -301,7 +309,7 @@ int FrameMan::CalculateTextHeight(const std::string& text, int maxWidth, bool is std::string FrameMan::SplitStringToFitWidth(const std::string& stringToSplit, int widthLimit, bool useSmallFont) { GUIFont* fontToUse = GetFont(useSmallFont, false); - auto SplitSingleLineAsNeeded = [this, &widthLimit, &fontToUse](std::string& lineToSplitAsNeeded) { + auto SplitSingleLineAsNeeded = [&widthLimit, &fontToUse](std::string& lineToSplitAsNeeded) { int numberOfScreenWidthsForText = static_cast(std::ceil(static_cast(fontToUse->CalculateWidth(lineToSplitAsNeeded)) / static_cast(widthLimit))); if (numberOfScreenWidthsForText > 1) { int splitInterval = static_cast(std::ceil(static_cast(lineToSplitAsNeeded.size()) / static_cast(numberOfScreenWidthsForText))); @@ -362,6 +370,8 @@ void FrameMan::ClearScreenText(int whichScreen) { } } +void FrameMan::ClearBackBuffer8() { clear_to_color(m_BackBuffer8->GetBitmap(), 0); } + void FrameMan::SetBlendMode(DrawBlendMode blendMode) { GLint invertLoc = rlGetLocationUniformCurrent("rteBlendInvert"); glUniform1i(invertLoc, 0); @@ -619,7 +629,7 @@ void FrameMan::SaveScreenToBitmap() { } glPixelStorei(GL_PACK_ALIGNMENT, 4); - GL_CHECK(glBindTexture(GL_TEXTURE_2D, g_WindowMan.GetScreenBuffer()->GetColorTexture().id)); + g_WindowMan.GetScreenBuffer()->GetColorTexture().lock()->Bind(); GL_CHECK(glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, m_ScreenDumpBuffer->pixels)); // Flip the pixels @@ -750,7 +760,7 @@ GUIFont* FrameMan::GetFont(bool isSmall, bool trueColor) { size_t colorIndex = trueColor ? 1 : 0; if (!m_GUIScreens[colorIndex]) { - m_GUIScreens[colorIndex] = new AllegroScreen(trueColor ? m_BackBuffer32.get() : m_BackBuffer8.get()); + m_GUIScreens[colorIndex] = new AllegroScreen(trueColor ? m_BackBuffer32.get() : m_BackBuffer8->GetBitmap()); } if (isSmall) { @@ -812,10 +822,8 @@ void FrameMan::Draw() { TracyGpuZone("FrameMan::Draw"); // rlSetShader(rlGetShaderIdDefault(), rlGetShaderLocsDefault()); - Shader backgroundShader; - g_PresetMan.GetEntityPreset("Shader", "Background")->Clone(&backgroundShader); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - clear_to_color(m_BackBuffer8.get(), 0); + clear_to_color(m_BackBuffer8->GetBitmap(), 0); m_BackBuffer->Begin(true); // Count how many split screens we'll need @@ -830,81 +838,137 @@ void FrameMan::Draw() { const Activity* pActivity = g_ActivityMan.GetActivity(); + SceneLighting* sceneLighting = g_PostProcessMan.GetSceneLighting(); + sceneLighting->Update(); + EffectsParticles::Update(g_PostProcessMan.GetLightingSettings().EffectsParticles); + EffectsParticles::BeginFrame(); + for (int playerScreen = 0; playerScreen < screenCount; ++playerScreen) { + g_CameraMan.Update(playerScreen); + g_CameraMan.SetCameraZoom(1.0f, playerScreen); + g_SceneMan.Update(playerScreen); screenRelativeEffects.clear(); screenRelativeGlowBoxes.clear(); - rlEnableColorBlend(); - rlSetBlendMode(RL_BLEND_ALPHA); - rlEnableDepthTest(); - - m_PlayerScreen->Begin(true, 1.0f); - backgroundShader.Begin(); - backgroundShader.Enable(); - rlSetUniformSampler(backgroundShader.GetUniformLocation("rtePalette"), g_PostProcessMan.GetPaletteTexture()); - backgroundShader.SetInt("drawMasked", 1); - // rlSetUniformSampler(backgroundShader.GetUniformLocation("rtePalette"), g_PostProcessMan.GetPaletteTexture()); - BITMAP* drawScreen = (screenCount == 1) ? m_BackBuffer8.get() : m_PlayerScreen8.get(); - BITMAP* drawScreenGUI = (screenCount == 1) ? m_BackBuffer8.get() : m_PlayerScreen8.get(); + BITMAP* drawScreen = (screenCount == 1) ? m_BackBuffer8->GetBitmap() : m_PlayerScreen8->GetBitmap(); + BITMAP* drawScreenGUI = (screenCount == 1) ? m_BackBuffer8->GetBitmap() : m_PlayerScreen8->GetBitmap(); // Need to clear the backbuffers because Scene background layers can be too small to fill the whole backbuffer or drawn masked resulting in artifacts from the previous frame. clear_to_color(drawScreenGUI, ColorKeys::g_MaskColor); // If in online multiplayer mode clear to mask color otherwise the scene background layers will get drawn over. clear_to_color(drawScreen, 0); - AllegroBitmap playerGUIBitmap(drawScreenGUI); - - // Update the scene view to line up with a specific screen and then draw it onto the intermediate screen - g_CameraMan.Update(playerScreen); - g_SceneMan.Update(playerScreen); - - Vector targetPos = g_CameraMan.GetOffset(playerScreen); + // The position of the current draw screen on the backbuffer + Vector screenOffset; - // Adjust the drawing position on the target screen for if the target screen is larger than the scene in non-wrapping dimension. - // Scene needs to be displayed centered on the target bitmap then, and that has to be adjusted for when drawing to the screen - if (!g_SceneMan.SceneWrapsX() && drawScreen->w > g_SceneMan.GetSceneWidth()) { - targetPos.m_X += (drawScreen->w - g_SceneMan.GetSceneWidth()) / 2; - } - if (!g_SceneMan.SceneWrapsY() && drawScreen->h > g_SceneMan.GetSceneHeight()) { - targetPos.m_Y += (drawScreen->h - g_SceneMan.GetSceneHeight()) / 2; + // If we are dealing with split screens, then deal with the fact that we need to draw the player screens to different locations on the final buffer + if (screenCount > 1) { + UpdateScreenOffsetForSplitScreen(playerScreen, screenOffset); } + AllegroBitmap playerGUIBitmap(drawScreenGUI); + // HUD text drawn into this screen's GUI layer goes to the high resolution text overlay instead, clipped to this screen. + TextOverlay::SetTarget(drawScreenGUI, screenOffset.GetFloorIntX(), screenOffset.GetFloorIntY(), drawScreenGUI->w, drawScreenGUI->h); + m_PlayerScreen->Begin(true, 1.0f); + g_RenderMan.BeginFrame(nullptr); + for (const Camera& camera: g_CameraMan.GetPlayerCameras(playerScreen)) { + // Update the scene view to line up with a specific screen and then draw it onto the intermediate screen - // Draw the scene - g_SceneMan.Draw(drawScreen, drawScreenGUI, targetPos); + Vector targetPos = g_CameraMan.GetOffset(playerScreen); - g_PrimitiveMan.DrawPrimitives(playerScreen, drawScreenGUI, targetPos); + // Adjust the drawing position on the target screen for if the target screen is larger than the scene in non-wrapping dimension. + // Scene needs to be displayed centered on the target bitmap then, and that has to be adjusted for when drawing to the screen + if (!g_SceneMan.SceneWrapsX() && drawScreen->w > g_SceneMan.GetSceneWidth()) { + targetPos.m_X += (drawScreen->w - g_SceneMan.GetSceneWidth()) / 2; + } + if (!g_SceneMan.SceneWrapsY() && drawScreen->h > g_SceneMan.GetSceneHeight()) { + targetPos.m_Y += (drawScreen->h - g_SceneMan.GetSceneHeight()) / 2; + } - // Get only the scene-relative post effects that affect this player's screen - if (pActivity) { - g_PostProcessMan.GetPostScreenEffectsWrapped(targetPos, drawScreen->w, drawScreen->h, screenRelativeEffects, pActivity->GetTeamOfPlayer(pActivity->PlayerOfScreen(playerScreen))); - g_PostProcessMan.GetGlowAreasWrapped(targetPos, drawScreen->w, drawScreen->h, screenRelativeGlowBoxes); - } + // Draw the scene + // g_SceneMan.Draw(drawScreen, drawScreenGUI, targetPos); + g_SceneMan.Draw(camera); - // TODO: Find out what keeps disabling the clipping on the draw bitmap - // Enable clipping on the draw bitmap - set_clip_state(drawScreen, 1); + EffectsParticles::Draw(camera); + g_PrimitiveMan.DrawPrimitives(playerScreen, camera); - DrawScreenText(playerScreen, playerGUIBitmap); + // Get only the scene-relative post effects that affect this player's screen + if (pActivity) { + g_PostProcessMan.GetPostScreenEffectsWrapped(targetPos, drawScreen->w, drawScreen->h, screenRelativeEffects, pActivity->GetTeamOfPlayer(pActivity->PlayerOfScreen(playerScreen))); + g_PostProcessMan.GetGlowAreasWrapped(targetPos, drawScreen->w, drawScreen->h, screenRelativeGlowBoxes); + } - // The position of the current draw screen on the backbuffer - Vector screenOffset; + // TODO: Find out what keeps disabling the clipping on the draw bitmap + // Enable clipping on the draw bitmap + set_clip_state(drawScreen, 1); - // If we are dealing with split screens, then deal with the fact that we need to draw the player screens to different locations on the final buffer - if (screenCount > 1) { - UpdateScreenOffsetForSplitScreen(playerScreen, screenOffset); + DrawScreenText(playerScreen, playerGUIBitmap); + + // Draw the intermediate draw splitscreen to the appropriate spot on the back buffer + blit(drawScreen, m_BackBuffer8->GetBitmap(), 0, 0, screenOffset.GetFloorIntX(), screenOffset.GetFloorIntY(), drawScreen->w, drawScreen->h); + if (g_DebugMan.FreeCamEnabled()) { + camera.Draw(); + } + } + // The GPU HUD path (MovableMan::DrawHUD(Camera)/Activity::DrawGUI(Camera)) is not implemented yet, so bridge to the CPU HUD drawn into the GUI buffer, which gets composited over the scene later. + // Some of it draws through the GPU (placement previews, pie menu, inventory carousel) in screen coordinates, so catch that in a screen-space batch drawn over the scene. + if (!m_ScreenSpaceBatch) { + m_ScreenSpaceBatch = std::make_unique(); + } + Camera screenSpaceCamera(Vector(0.0f, 0.0f), Box(Vector(0.0f, 0.0f), static_cast(drawScreen->w), static_cast(drawScreen->h))); + RenderBatch* sceneBatch = g_RenderMan.GetActiveBatch(); + g_RenderMan.SetActiveBatch(m_ScreenSpaceBatch.get()); + g_RenderMan.BeginFrame(&screenSpaceCamera); + // Scene position of this player screen's top left pixel. + Vector screenTargetPos = g_CameraMan.GetOffset(playerScreen); + if (!g_SceneMan.SceneWrapsX() && drawScreen->w > g_SceneMan.GetSceneWidth()) { + screenTargetPos.m_X += (drawScreen->w - g_SceneMan.GetSceneWidth()) / 2; } + if (!g_SceneMan.SceneWrapsY() && drawScreen->h > g_SceneMan.GetSceneHeight()) { + screenTargetPos.m_Y += (drawScreen->h - g_SceneMan.GetSceneHeight()) / 2; + } + if (!IsHudDisabled(playerScreen) && pActivity) { + const Vector& hudTargetPos = screenTargetPos; + g_MovableMan.DrawHUD(drawScreenGUI, hudTargetPos, playerScreen); + g_ActivityMan.GetActivity()->DrawGUI(drawScreenGUI, hudTargetPos, playerScreen); + } + g_RenderMan.SetActiveBatch(sceneBatch); + g_RenderMan.GetActiveBatch()->EndFrame(); + if (g_DebugMan.FreeCamEnabled()) { + g_RenderMan.GetActiveBatch()->m_CurrentCamera = g_DebugMan.GetFreeCam(); + g_RenderMan.DrawActiveBatch(); + } else { + for (const Camera& camera: g_CameraMan.GetPlayerCameras(playerScreen)) { + g_RenderMan.GetActiveBatch()->m_CurrentCamera = &camera; + g_RenderMan.GetActiveBatch()->Render(); + } + } + g_RenderMan.GetActiveBatch()->ClearDraws(); + + // Light the scene (sky light, glow lights, glows as emitted light, bloom, tonemapping) before anything HUD-like is drawn over it. + std::vector screenLights; + g_PostProcessMan.GetLightsWrapped(screenTargetPos, drawScreen->w, drawScreen->h, screenLights); + std::vector screenShockwaves; + g_PostProcessMan.GetShockwavesWrapped(screenTargetPos, drawScreen->w, drawScreen->h, screenShockwaves); + sceneLighting->LightPlayerScreen(playerScreen, m_PlayerScreen.get(), screenTargetPos, screenRelativeEffects, screenLights, screenShockwaves); + + // Screen-space HUD draws go on top of the scene regardless of scene depth. + glClear(GL_DEPTH_BUFFER_BIT); + g_RenderMan.SetActiveBatch(m_ScreenSpaceBatch.get()); + g_RenderMan.DrawActiveBatch(); + g_RenderMan.SetActiveBatch(sceneBatch); + + g_RenderMan.BeginFrame(nullptr); DrawScreenFlash(playerScreen, drawScreenGUI); - - // Draw the intermediate draw splitscreen to the appropriate spot on the back buffer - blit(drawScreen, m_BackBuffer8.get(), 0, 0, screenOffset.GetFloorIntX(), screenOffset.GetFloorIntY(), drawScreen->w, drawScreen->h); + TextOverlay::ClearTarget(); m_PlayerScreen->End(); - backgroundShader.End(); if (screenCount > 1) { m_BackBuffer->Begin(false); - DrawTextureRec(m_PlayerScreen->GetColorTexture(), {0, 0, static_cast(m_PlayerScreen8->w), -static_cast(m_PlayerScreen8->h)}, {screenOffset.m_X, screenOffset.m_Y}, {255, 255, 255, 255}); + Camera backbufferView(Vector(0.0f, 0.0f), Box(Vector(0.0f, 0.0f), m_BackBuffer->GetSize().w, m_BackBuffer->GetSize().h)); + g_RenderMan.BeginFrame(&backbufferView); + Draw::DrawTexture(m_PlayerScreen->GetColorTexture().lock().get(), screenOffset); m_BackBuffer->End(); } - g_PostProcessMan.AdjustEffectsPosToPlayerScreen(playerScreen, drawScreen, screenOffset, screenRelativeEffects, screenRelativeGlowBoxes); + //g_PostProcessMan.AdjustEffectsPosToPlayerScreen(playerScreen, drawScreen, screenOffset, screenRelativeEffects, screenRelativeGlowBoxes); } // Clears the pixels that have been revealed from the unseen layers @@ -912,25 +976,20 @@ void FrameMan::Draw() { // Draw separating lines for split-screens if (m_HSplit) { - hline(m_BackBuffer8.get(), 0, (m_BackBuffer8->h / 2) - 1, m_BackBuffer8->w - 1, m_AlmostBlackColor); - hline(m_BackBuffer8.get(), 0, (m_BackBuffer8->h / 2), m_BackBuffer8->w - 1, m_AlmostBlackColor); + hline(m_BackBuffer8->GetBitmap(), 0, (m_BackBuffer8->GetDimensions().h / 2) - 1, m_BackBuffer8->GetDimensions().w - 1, m_AlmostBlackColor); + hline(m_BackBuffer8->GetBitmap(), 0, (m_BackBuffer8->GetDimensions().h / 2), m_BackBuffer8->GetDimensions().w - 1, m_AlmostBlackColor); } if (m_VSplit) { - vline(m_BackBuffer8.get(), (m_BackBuffer8->w / 2) - 1, 0, m_BackBuffer8->h - 1, m_AlmostBlackColor); - vline(m_BackBuffer8.get(), (m_BackBuffer8->w / 2), 0, m_BackBuffer8->h - 1, m_AlmostBlackColor); + vline(m_BackBuffer8->GetBitmap(), (m_BackBuffer8->GetDimensions().w / 2) - 1, 0, m_BackBuffer8->GetDimensions().h - 1, m_AlmostBlackColor); + vline(m_BackBuffer8->GetBitmap(), (m_BackBuffer8->GetDimensions().w / 2), 0, m_BackBuffer8->GetDimensions().h - 1, m_AlmostBlackColor); } - rlEnableDepthTest(); - rlZDepth(c_GuiDepth - 1.0f); - g_GLResourceMan.UpdateDynamicBitmap(m_BackBuffer8.get(), true); - backgroundShader.Begin(); - backgroundShader.Enable(); - rlSetUniformSampler(backgroundShader.GetUniformLocation("rtePalette"), g_PostProcessMan.GetPaletteTexture()); - backgroundShader.SetInt("drawMasked", 1); m_BackBuffer->Begin(false); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_BackBuffer8.get()), 0.0f, 0.0f, {255, 255, 255, 255}); + g_RenderMan.BeginFrame(); + g_RenderMan.SetCurrentZOffset(c_GuiDepth - 1.0f); + m_BackBuffer8->Update(); + Draw::DrawTexture(m_BackBuffer8.get(), {-1.0f, -1.0f, 2.0f, 2.0f})->m_Indexed = true; m_BackBuffer->End(); - backgroundShader.End(); rlZDepth(0); if (g_ActivityMan.IsInActivity()) { g_PostProcessMan.PostProcess(); @@ -946,7 +1005,13 @@ void FrameMan::Draw() { #endif } +BITMAP* FrameMan::GetBackBuffer8() const { return m_BackBuffer8->GetBitmap(); } + void FrameMan::DrawScreenText(int playerScreen, AllegroBitmap playerGUIBitmap) { + // Photo mode hides all on screen text along with the HUD. + if (g_DebugMan.IsPhotoModeHidingHUD()) { + return; + } int textPosY = 0; // Only draw screen text to actual human players if (playerScreen < g_ActivityMan.GetActivity()->GetHumanCount()) { @@ -998,39 +1063,20 @@ void FrameMan::DrawScreenFlash(int playerScreen, BITMAP* playerGUIBitmap) { if (m_FlashedLastFrame[playerScreen]) { m_FlashedLastFrame[playerScreen] = false; } else { - rlZDepth(c_GuiDepth); - rlBegin(RL_QUADS); - - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 50); - rlVertex2f(playerGUIBitmap->w * .25f, playerGUIBitmap->h * .25f); - rlVertex2f(playerGUIBitmap->w - playerGUIBitmap->w * .25f, playerGUIBitmap->h * 0.25f); - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 255); - rlVertex2f(playerGUIBitmap->w, 0.0f); - rlVertex2f(0.0f, 0.0f); - - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 50); - rlVertex2f(playerGUIBitmap->w * .25f, playerGUIBitmap->h - playerGUIBitmap->h * .25f); - rlVertex2f(playerGUIBitmap->w * .25f, playerGUIBitmap->h * 0.25f); - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 255); - rlVertex2f(0.0f, 0.0f); - rlVertex2f(0.0f, playerGUIBitmap->h); - - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 50); - rlVertex2f(playerGUIBitmap->w - playerGUIBitmap->w * .25f, playerGUIBitmap->h - playerGUIBitmap->h * .25f); - rlVertex2f(playerGUIBitmap->w * .25f, playerGUIBitmap->h - playerGUIBitmap->h * .25f); - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 255); - rlVertex2f(0.0f, playerGUIBitmap->h); - rlVertex2f(playerGUIBitmap->w, playerGUIBitmap->h); - - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 50); - rlVertex2f(playerGUIBitmap->w - playerGUIBitmap->w * .25f, playerGUIBitmap->h * .25f); - rlVertex2f(playerGUIBitmap->w - playerGUIBitmap->w * .25f, playerGUIBitmap->h - playerGUIBitmap->h * .25f); - rlColor4ub(m_FlashScreenColor[playerScreen], 0, 0, 255); - rlVertex2f(playerGUIBitmap->w, playerGUIBitmap->h); - rlVertex2f(playerGUIBitmap->w, 0.0f); - - rlEnd(); - rlZDepth(c_DefaultDrawDepth); + g_RenderMan.SetCurrentZOffset(c_GuiDepth); + Shape::Shape flash = Shape::RectangleLines(FloatRect(0.0f, 0.0f, playerGUIBitmap->w, playerGUIBitmap->h), playerGUIBitmap->w * .25, m_FlashScreenColor[playerScreen]); + flash.m_Vertices[4].m_Color.a = 50; + flash.m_Vertices[5].m_Color.a = 50; + flash.m_Vertices[6].m_Color.a = 50; + flash.m_Vertices[7].m_Color.a = 50; + + std::shared_ptr drawFlash = g_RenderMan.BeginDraw(); + drawFlash->m_Vertices = std::move(flash.m_Vertices); + drawFlash->m_Indices = std::move(flash.m_Indices); + drawFlash->m_Indexed = true; + drawFlash->m_BlendMode = Blend::ALPHA; + g_RenderMan.SetCurrentZOffset(c_DefaultDrawDepth); + m_FlashedLastFrame[playerScreen] = true; } } @@ -1075,7 +1121,7 @@ void FrameMan::DrawWorldDump(bool drawForScenePreview) const { g_PostProcessMan.GetPostScreenEffectsWrapped(targetPos, worldBitmapWidth, worldBitmapHeight, postEffectsList, -1); for (const PostEffect& postEffect: postEffectsList) { - effectBitmap = postEffect.m_Bitmap; + effectBitmap = postEffect.m_Bitmap->GetBitmap(); effectStrength = postEffect.m_Strength; set_screen_blender(effectStrength, effectStrength, effectStrength, effectStrength); effectPosX = postEffect.m_Pos.GetFloorIntX() - (effectBitmap->w / 2); diff --git a/Source/Managers/FrameMan.h b/Source/Managers/FrameMan.h index 72037a459d..f36f5a0426 100644 --- a/Source/Managers/FrameMan.h +++ b/Source/Managers/FrameMan.h @@ -4,10 +4,15 @@ #include "Timer.h" #include "Box.h" #include "Hash.h" +#include "RenderBatch.h" #include #include #include "glad/gl.h" +#include "AllegroTools.h" +#include "allegro/color.h" +#include "allegro/palette.h" + #define g_FrameMan FrameMan::Instance() @@ -18,9 +23,6 @@ namespace RTE { class GUIFont; class Shader; class RenderTarget; - struct BitmapDeleter { - void operator()(BITMAP* bitmap) const; - }; struct SurfaceDeleter { void operator()(SDL_Surface* surface) const; }; @@ -61,7 +63,7 @@ namespace RTE { #pragma region Getters /// Gets the 8bpp backbuffer bitmap. /// @return A pointer to the BITMAP 8bpp backbuffer. OWNERSHIP IS NOT TRANSFERRED! - BITMAP* GetBackBuffer8() const { return m_BackBuffer8.get(); } + BITMAP* GetBackBuffer8() const; /// Gets the 32bpp backbuffer bitmap. Make sure you don't do any blending stuff to the 8bpp one! /// @return A pointer to the BITMAP 32bpp backbuffer. OWNERSHIP IS NOT TRANSFERRED! @@ -186,7 +188,7 @@ namespace RTE { #pragma region Drawing /// Clears the 8bpp backbuffer with black. - void ClearBackBuffer8() { clear_to_color(m_BackBuffer8.get(), 0); } + void ClearBackBuffer8(); /// Clears the 32bpp backbuffer with black. void ClearBackBuffer32() { clear_to_color(m_BackBuffer32.get(), 0); } @@ -210,6 +212,8 @@ namespace RTE { /// @return Integer between 0-255 of alpha value. unsigned char GetCurrentAlpha() {return m_CurrentAlpha;} + void SetCurrentAlpha(int alpha) { m_CurrentAlpha = alpha; } + /// Flashes any of the players' screen with the specified color for this frame. /// @param screen Which screen to flash. /// @param color What color to flash it. -1 means no color or flash. @@ -337,8 +341,9 @@ namespace RTE { Timer m_ColorTablePruneTimer; //!< Timer for pruning unused color tables to prevent ridiculous memory usage. int m_CurrentAlpha; //!< Current alpha level for emulating trans colortables. - std::shared_ptr m_PlayerScreen8; //!< Intermediary split screen bitmap. + std::shared_ptr m_PlayerScreen8; //!< Intermediary split screen bitmap. std::shared_ptr m_PlayerScreen; //!< Intermediary split screen bitmap. + std::unique_ptr m_ScreenSpaceBatch; //!< Batch for GPU draws made in screen space by the CPU HUD path, drawn over each player screen. int m_PlayerScreenWidth; //!< Width of the screen of each player. Will be smaller than resolution only if the screen is split. int m_PlayerScreenHeight; //!< Height of the screen of each player. Will be smaller than resolution only if the screen is split. @@ -360,7 +365,7 @@ namespace RTE { Timer m_FlashTimer[c_MaxScreenCount]; //!< Flash screen timer. std::string m_ScreenDumpName; //!< The filename of the screenshot to save. - std::shared_ptr m_BackBuffer8; //!< Screen backbuffer, always 8bpp, gets copied to the 32bpp buffer for post-processing. + std::shared_ptr m_BackBuffer8; //!< Screen backbuffer, always 8bpp, gets copied to the 32bpp buffer for post-processing. std::unique_ptr m_BackBuffer32; //!< 32bpp backbuffer, only used for post-processing. std::unique_ptr m_OverlayBitmap32; //!< 32bpp bitmap used for overlaying (fading in/out or darkening) the screen. std::unique_ptr m_ScreenDumpBuffer; //!< Temporary buffer for making quick screencaps. This is used for color conversion between 32bpp and 24bpp so we can save the file. diff --git a/Source/Managers/GLResourceMan.cpp b/Source/Managers/GLStateMan.cpp similarity index 73% rename from Source/Managers/GLResourceMan.cpp rename to Source/Managers/GLStateMan.cpp index 459f3f0de8..9cd550bc7f 100644 --- a/Source/Managers/GLResourceMan.cpp +++ b/Source/Managers/GLStateMan.cpp @@ -1,4 +1,4 @@ -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "ContentFile.h" #include "RTEError.h" @@ -6,6 +6,7 @@ #include "GLCheck.h" #include "allegro.h" #include +#include #include "tracy/Tracy.hpp" #include "tracy/TracyOpenGL.hpp" @@ -15,11 +16,13 @@ using namespace RTE; -GLResourceMan::GLResourceMan() = default; +GLStateMan::GLStateMan() { + m_State = std::make_unique(); +}; -GLResourceMan::~GLResourceMan() = default; +GLStateMan::~GLStateMan() = default; -void GLResourceMan::Clear() { +void GLStateMan::Clear() { for (auto prog: m_Shaders) { GL_CHECK(glDeleteProgram(prog)); } @@ -31,18 +34,18 @@ void GLResourceMan::Clear() { } } -void GLResourceMan::Destroy() { Clear(); } -void GLResourceMan::Initialize() { Clear(); } +void GLStateMan::Destroy() { Clear(); } +void GLStateMan::Initialize() { Clear(); } -GLuint GLResourceMan::CompileShader(const std::string& filename, ShaderType type) { +GLuint GLStateMan::CompileShader(const std::string& filename, ShaderType type) { return 0; } -GLuint GLResourceMan::MakeGLProgram() { +GLuint GLStateMan::MakeGLProgram() { return glCreateProgram(); } -// std::shared_ptr GLResourceMan::MakeShaderProgram(const std::string& name, const std::string& vertexShaderPath, const std::string& fragmentShaderPath) { +// std::shared_ptr GLStateMan::MakeShaderProgram(const std::string& name, const std::string& vertexShaderPath, const std::string& fragmentShaderPath) { // if (m_Shaders.find(name) != m_Shaders.end()) { // RTEAbort("Attempted to reregister Shader: " + name); // } else { @@ -52,22 +55,22 @@ GLuint GLResourceMan::MakeGLProgram() { // return nullptr; // } -GLBitmapInfo* GLResourceMan::GetBitmapInfo(BITMAP* bitmap) { +GLBitmapInfo* GLStateMan::GetBitmapInfo(BITMAP* bitmap) { return reinterpret_cast(bitmap->extra); } -Texture2D GLResourceMan::GetStaticTextureFromFile(const std::string& filename) { +Texture2D GLStateMan::GetStaticTextureFromFile(const std::string& filename) { BITMAP* bitmap = ContentFile(filename.c_str()).GetAsBitmap(); return GetStaticTextureFromBitmap(bitmap); } -GLBitmapInfo* GLResourceMan::MakeBitmapInfo() { +GLBitmapInfo* GLStateMan::MakeBitmapInfo() { m_StaticTextures.emplace_back(new GLBitmapInfo); m_StaticTextures.back()->m_ID = m_StaticTextures.size(); return m_StaticTextures.back().get(); } -Texture2D GLResourceMan::GetStaticTextureFromBitmap(BITMAP* bitmap) { +Texture2D GLStateMan::GetStaticTextureFromBitmap(BITMAP* bitmap) { if (!bitmap->extra) { m_StaticTextures.emplace_back(new GLBitmapInfo); m_StaticTextures.back()->m_ID = m_StaticTextures.size(); @@ -93,7 +96,7 @@ Texture2D GLResourceMan::GetStaticTextureFromBitmap(BITMAP* bitmap) { } -GLuint GLResourceMan::GetDynamicUploadBuffer(BITMAP* bitmap) { +GLuint GLStateMan::GetDynamicUploadBuffer(BITMAP* bitmap) { if (!bitmap->extra) { GetStaticTextureFromBitmap(bitmap); } @@ -110,7 +113,7 @@ GLuint GLResourceMan::GetDynamicUploadBuffer(BITMAP* bitmap) { return info->m_UpdateBuffer; } -GLuint GLResourceMan::UpdateDynamicBitmap(BITMAP* bitmap, bool updated, const std::vector& updateRegions) { +GLuint GLStateMan::UpdateDynamicBitmap(BITMAP* bitmap, bool updated, const std::vector& updateRegions) { ZoneScopedN("Bitmap Upload"); GLuint texture = GetStaticTextureFromBitmap(bitmap).id; if (updated) { @@ -126,12 +129,13 @@ GLuint GLResourceMan::UpdateDynamicBitmap(BITMAP* bitmap, bool updated, const st std::vector pixels(updateRegions[i].m_Width * updateRegions[i].m_Height * bytesPerPixel); for (size_t y = 0; y < updateRegions[i].m_Height; y++) { memcpy( - pixels.data() + y * static_cast(updateRegions[i].m_Width) * bytesPerPixel, - bitmap->line[y + updateRegions[i].m_Corner.GetFloorIntY()] + updateRegions[i].m_Corner.GetFloorIntX(), - updateRegions[i].m_Width * bytesPerPixel); + pixels.data() + y * static_cast(updateRegions[i].m_Width) * bytesPerPixel, + bitmap->line[y + updateRegions[i].m_Corner.GetFloorIntY()] + updateRegions[i].m_Corner.GetFloorIntX() * bytesPerPixel, + updateRegions[i].m_Width * bytesPerPixel); } glBufferSubData(GL_PIXEL_UNPACK_BUFFER, offsets[i], updateRegions[i].m_Width * updateRegions[i].m_Height * bytesPerPixel, pixels.data()); - offsets.emplace_back(updateRegions[i].m_Width * updateRegions[i].m_Height * bytesPerPixel); + // Regions are packed one after another in the upload buffer. + offsets.emplace_back(offsets[i] + static_cast(updateRegions[i].m_Width * updateRegions[i].m_Height * bytesPerPixel)); } for (size_t i = 0; i < updateRegions.size(); ++i) { GL_CHECK(glTexSubImage2D( @@ -152,7 +156,7 @@ GLuint GLResourceMan::UpdateDynamicBitmap(BITMAP* bitmap, bool updated, const st return texture; } -void GLResourceMan::DestroyBitmapInfo(BITMAP* bitmap) { +void GLStateMan::DestroyBitmapInfo(BITMAP* bitmap) { GLBitmapInfo* info = GetBitmapInfo(bitmap); if (info) { rlUnloadTexture(info->m_Texture); diff --git a/Source/Managers/GLResourceMan.h b/Source/Managers/GLStateMan.h similarity index 74% rename from Source/Managers/GLResourceMan.h rename to Source/Managers/GLStateMan.h index 25d65b846c..7a2af1a4e2 100644 --- a/Source/Managers/GLResourceMan.h +++ b/Source/Managers/GLStateMan.h @@ -10,24 +10,27 @@ #include #include "Shader.h" #include "Box.h" +#include "GLState.h" #include "raylib/raylib.h" +#define g_GLStateMan GLStateMan::Instance() namespace RTE { -#define g_GLResourceMan GLResourceMan::Instance() enum class ShaderType { Fragment, Vertex }; + struct GLBitmapInfo { GLuint m_Texture{0}; GLuint* m_Textures{nullptr}; size_t m_ID{0}; GLuint m_UpdateBuffer{0}; }; - class GLResourceMan : public Singleton { + + class GLStateMan : public Singleton { public: - GLResourceMan(); - ~GLResourceMan(); + GLStateMan(); + ~GLStateMan(); void Initialize(); void Destroy(); @@ -49,12 +52,14 @@ namespace RTE { GLBitmapInfo* MakeBitmapInfo(); + const GLState* GetState() { return m_State.get(); } private: - std::vector> m_StaticTextures; - std::vector m_DynamicBitmapUploadBuffers; - std::unordered_map> m_ShaderCache; - std::vector m_Shaders; + std::vector> m_StaticTextures{}; + std::vector m_DynamicBitmapUploadBuffers{}; + std::unordered_map> m_ShaderCache{}; + std::vector m_Shaders{}; + std::unique_ptr m_State{nullptr}; }; -} // namespace RTE \ No newline at end of file +} // namespace RTE diff --git a/Source/Managers/LuaMan.cpp b/Source/Managers/LuaMan.cpp index f0911901e7..57822439dd 100644 --- a/Source/Managers/LuaMan.cpp +++ b/Source/Managers/LuaMan.cpp @@ -1,4 +1,5 @@ #include "LuaMan.h" +#include "Sandbox.h" #include "LuabindObjectWrapper.h" #include "LuaBindingRegisterDefinitions.h" @@ -106,6 +107,12 @@ void LuaStateWrapper::Initialize() { luabind::def("Lerp", (float (*)(float, float, float, float, float))&Lerp), luabind::def("Lerp", (Vector(*)(float, float, Vector, Vector, float))&Lerp), luabind::def("Lerp", (Matrix(*)(float, float, const Matrix&, const Matrix&, float))&Lerp), + luabind::def("SandboxDo", &Sandbox::Do), + luabind::def("SandboxCountUnits", &Sandbox::CountUnits), + luabind::def("SandboxBuildMode", &Sandbox::SetBuildMode), + luabind::def("SandboxAutoBattleSide", &Sandbox::SetAutoBattleSide), + luabind::def("SandboxStartAutoBattle", &Sandbox::StartAutoBattle), + luabind::def("SandboxPauseAI", &Sandbox::SetAIPaused), luabind::def("EaseIn", &EaseIn), luabind::def("EaseOut", &EaseOut), luabind::def("EaseInOut", &EaseInOut), @@ -182,6 +189,7 @@ void LuaStateWrapper::Initialize() { RegisterLuaBindingsOfType(ManagerLuaBindings, MusicMan), RegisterLuaBindingsOfType(ManagerLuaBindings, CameraMan), RegisterLuaBindingsOfType(ManagerLuaBindings, ConsoleMan), + RegisterLuaBindingsOfType(ManagerLuaBindings, DebugMan), RegisterLuaBindingsOfType(ManagerLuaBindings, FrameMan), RegisterLuaBindingsOfType(ManagerLuaBindings, MetaMan), RegisterLuaBindingsOfType(ManagerLuaBindings, MovableMan), @@ -239,6 +247,7 @@ void LuaStateWrapper::Initialize() { luabind::globals(m_State)["MovableMan"] = &g_MovableMan; luabind::globals(m_State)["CameraMan"] = &g_CameraMan; luabind::globals(m_State)["ConsoleMan"] = &g_ConsoleMan; + luabind::globals(m_State)["DebugMan"] = &g_DebugMan; luabind::globals(m_State)["LuaMan"] = this; luabind::globals(m_State)["SettingsMan"] = &g_SettingsMan; diff --git a/Source/Managers/MenuMan.cpp b/Source/Managers/MenuMan.cpp index 060293c770..092719d1c2 100644 --- a/Source/Managers/MenuMan.cpp +++ b/Source/Managers/MenuMan.cpp @@ -1,4 +1,5 @@ #include "MenuMan.h" +#include "RenderMan.h" #include "SettingsMan.h" #include "WindowMan.h" #include "FrameMan.h" @@ -301,4 +302,6 @@ void MenuMan::Draw() const { } } } + // Flush GPU draws queued by menus after the title screen drew (e.g. scenario site markers). + g_RenderMan.DrawActiveBatch(); } diff --git a/Source/Managers/ModernHUD.cpp b/Source/Managers/ModernHUD.cpp new file mode 100644 index 0000000000..920c503462 --- /dev/null +++ b/Source/Managers/ModernHUD.cpp @@ -0,0 +1,223 @@ +#include "ModernHUD.h" +#include "AHuman.h" +#include "Activity.h" +#include "ActivityMan.h" +#include "CameraMan.h" +#include "Constants.h" +#include "FrameMan.h" +#include "HDFirearm.h" +#include "MovableMan.h" +#include "SceneMan.h" +#include "SLTerrain.h" +#include "Scene.h" +#include "TimerMan.h" +#include "imgui/imgui.h" +#include "glad/gl.h" + +#include +#include +#include + +using namespace RTE; + +bool ModernHUD::s_Enabled = false; + +namespace { + /// A downscaled picture of the scene's terrain, rebuilt now and then. + struct Minimap { + GLuint Texture = 0; + int Width = 0; + int Height = 0; + const void* Scene = nullptr; + long long BuiltAtUpdate = -1000000; + }; + Minimap s_Minimap; + + struct FeedEntry { + std::string Text; + int Team; + double Time; //!< ImGui time it was added. + }; + std::deque s_Feed; + std::unordered_map> s_KnownActors; //!< Actors seen last frame, with name and team, to notice who's gone. + + const ImU32 c_TeamColors[] = {IM_COL32(90, 170, 255, 255), IM_COL32(255, 95, 80, 255), IM_COL32(110, 230, 110, 255), IM_COL32(255, 210, 70, 255)}; + + ImU32 TeamColor(int team) { return (team >= 0 && team < 4) ? c_TeamColors[team] : IM_COL32(200, 200, 200, 255); } + + void UpdateMinimap() { + Scene* scene = g_SceneMan.GetScene(); + SLTerrain* terrain = scene ? scene->GetTerrain() : nullptr; + if (!terrain) { + return; + } + long long now = g_TimerMan.GetSimUpdateCount(); + // Rebuild every few seconds; terrain changes slowly at minimap scale. + if (s_Minimap.Scene == scene && now - s_Minimap.BuiltAtUpdate < 180) { + return; + } + int sceneWidth = g_SceneMan.GetSceneWidth(); + int sceneHeight = g_SceneMan.GetSceneHeight(); + int step = std::max(1, std::max(sceneWidth / 240, sceneHeight / 160)); + int width = std::max(1, sceneWidth / step); + int height = std::max(1, sceneHeight / step); + std::vector pixels(static_cast(width) * height * 4, 0); + for (int y = 0; y < height; ++y) { + for (int x = 0; x < width; ++x) { + int material = terrain->GetMaterialPixel(x * step, y * step); + unsigned char* pixel = &pixels[(static_cast(y) * width + x) * 4]; + if (material != g_MaterialAir) { + // Solid ground in a muted earth tone, darker deeper down. + float depth = static_cast(y) / static_cast(height); + pixel[0] = static_cast(150 - 60 * depth); + pixel[1] = static_cast(120 - 50 * depth); + pixel[2] = static_cast(85 - 35 * depth); + pixel[3] = 230; + } else { + pixel[0] = 15; + pixel[1] = 22; + pixel[2] = 35; + pixel[3] = 160; + } + } + } + if (!s_Minimap.Texture) { + glGenTextures(1, &s_Minimap.Texture); + } + glBindTexture(GL_TEXTURE_2D, s_Minimap.Texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + glBindTexture(GL_TEXTURE_2D, 0); + s_Minimap.Width = width; + s_Minimap.Height = height; + s_Minimap.Scene = scene; + s_Minimap.BuiltAtUpdate = now; + } + + void DrawBar(ImDrawList* drawList, ImVec2 position, ImVec2 size, float fraction, ImU32 color, const char* label) { + fraction = std::clamp(fraction, 0.0F, 1.0F); + drawList->AddRectFilled(position, ImVec2(position.x + size.x, position.y + size.y), IM_COL32(10, 12, 18, 190), 4.0F); + if (fraction > 0.0F) { + drawList->AddRectFilled(ImVec2(position.x + 2.0F, position.y + 2.0F), ImVec2(position.x + 2.0F + (size.x - 4.0F) * fraction, position.y + size.y - 2.0F), color, 3.0F); + } + drawList->AddRect(position, ImVec2(position.x + size.x, position.y + size.y), IM_COL32(255, 255, 255, 60), 4.0F); + ImVec2 textSize = ImGui::CalcTextSize(label); + ImVec2 textPosition(position.x + (size.x - textSize.x) * 0.5F, position.y + (size.y - textSize.y) * 0.5F); + // Dark outline so the label reads over any bar color. + for (int dy = -1; dy <= 1; ++dy) { + for (int dx = -1; dx <= 1; ++dx) { + if (dx != 0 || dy != 0) { + drawList->AddText(ImVec2(textPosition.x + static_cast(dx), textPosition.y + static_cast(dy)), IM_COL32(0, 0, 0, 200), label); + } + } + } + drawList->AddText(textPosition, IM_COL32(255, 255, 255, 240), label); + } +} // namespace + +void ModernHUD::Draw() { + if (!s_Enabled || !g_ActivityMan.IsInActivity() || !g_SceneMan.GetScene()) { + s_KnownActors.clear(); + return; + } + Activity* activity = g_ActivityMan.GetActivity(); + if (!activity) { + return; + } + ImGuiIO& io = ImGui::GetIO(); + ImDrawList* drawList = ImGui::GetBackgroundDrawList(); + float scale = std::clamp(io.DisplaySize.y / 720.0F, 0.75F, 2.5F); + float margin = 14.0F * scale; + + // Minimap, top right. + UpdateMinimap(); + if (s_Minimap.Texture) { + float mapWidth = 220.0F * scale; + float mapHeight = mapWidth * static_cast(s_Minimap.Height) / static_cast(std::max(1, s_Minimap.Width)); + mapHeight = std::min(mapHeight, 160.0F * scale); + ImVec2 topLeft(io.DisplaySize.x - mapWidth - margin, margin + 24.0F * scale); + ImVec2 bottomRight(topLeft.x + mapWidth, topLeft.y + mapHeight); + drawList->AddRectFilled(ImVec2(topLeft.x - 3.0F, topLeft.y - 3.0F), ImVec2(bottomRight.x + 3.0F, bottomRight.y + 3.0F), IM_COL32(0, 0, 0, 150), 5.0F); + drawList->AddImage(static_cast(s_Minimap.Texture), topLeft, bottomRight); + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + float sceneHeight = static_cast(g_SceneMan.GetSceneHeight()); + auto toMap = [&](const Vector& position) { return ImVec2(topLeft.x + position.m_X / sceneWidth * mapWidth, topLeft.y + position.m_Y / sceneHeight * mapHeight); }; + // The player's view. + Vector viewTopLeft = g_CameraMan.GetOffset(0); + Vector viewBottomRight = viewTopLeft + Vector(static_cast(g_FrameMan.GetPlayerScreenWidth()), static_cast(g_FrameMan.GetPlayerScreenHeight())); + drawList->AddRect(toMap(viewTopLeft), toMap(viewBottomRight), IM_COL32(255, 255, 255, 140), 2.0F); + // Units. + Actor* controlled = activity->GetControlledActor(0); + for (const Actor* actor: g_MovableMan.m_Actors) { + if (!actor || actor->IsDead()) { + continue; + } + ImVec2 point = toMap(actor->GetPos()); + float radius = (actor == controlled ? 3.5F : 2.2F) * scale; + drawList->AddCircleFilled(point, radius + 1.0F, IM_COL32(0, 0, 0, 200)); + drawList->AddCircleFilled(point, radius, actor == controlled ? IM_COL32(255, 255, 255, 255) : TeamColor(actor->GetTeam())); + } + drawList->AddRect(ImVec2(topLeft.x - 3.0F, topLeft.y - 3.0F), ImVec2(bottomRight.x + 3.0F, bottomRight.y + 3.0F), IM_COL32(255, 255, 255, 50), 5.0F); + } + + // Controlled unit: name, health and ammo, bottom left. + if (Actor* controlled = activity->GetControlledActor(0); controlled && !controlled->IsDead()) { + float barWidth = 230.0F * scale; + float barHeight = 20.0F * scale; + ImVec2 base(margin, io.DisplaySize.y - margin - barHeight * 2.0F - 30.0F * scale); + drawList->AddText(ImVec2(base.x + 2.0F, base.y), IM_COL32(255, 255, 255, 220), controlled->GetPresetName().c_str()); + base.y += 20.0F * scale; + float health = controlled->GetHealth(); + float maxHealth = std::max(1.0F, controlled->GetMaxHealth()); + float healthFraction = health / maxHealth; + ImU32 healthColor = healthFraction > 0.5F ? IM_COL32(80, 205, 95, 255) : (healthFraction > 0.25F ? IM_COL32(235, 185, 50, 255) : IM_COL32(230, 60, 50, 255)); + char label[64]; + std::snprintf(label, sizeof(label), "%d / %d", static_cast(health), static_cast(maxHealth)); + DrawBar(drawList, base, ImVec2(barWidth, barHeight), healthFraction, healthColor, label); + base.y += barHeight + 6.0F * scale; + if (const AHuman* human = dynamic_cast(controlled)) { + if (const HDFirearm* firearm = dynamic_cast(human->GetEquippedItem())) { + int rounds = firearm->GetRoundInMagCount(); + int capacity = firearm->GetRoundInMagCapacity(); + if (capacity > 0) { + std::snprintf(label, sizeof(label), "%s %d / %d", firearm->GetPresetName().c_str(), std::max(rounds, 0), capacity); + DrawBar(drawList, base, ImVec2(barWidth, barHeight), rounds < 0 ? 1.0F : static_cast(rounds) / static_cast(capacity), IM_COL32(230, 200, 90, 255), label); + } else { + std::snprintf(label, sizeof(label), "%s infinite", firearm->GetPresetName().c_str()); + DrawBar(drawList, base, ImVec2(barWidth, barHeight), 1.0F, IM_COL32(230, 200, 90, 255), label); + } + } + } + } + + // Loss feed, top left below the funds: units that died or vanished since last frame. + std::unordered_map> currentActors; + for (const Actor* actor: g_MovableMan.m_Actors) { + if (actor && !actor->IsDead()) { + currentActors.emplace(actor, std::make_pair(actor->GetPresetName(), actor->GetTeam())); + } + } + for (const auto& [actor, info]: s_KnownActors) { + if (!currentActors.count(actor)) { + s_Feed.push_back({info.first + " lost", info.second, ImGui::GetTime()}); + } + } + s_KnownActors.swap(currentActors); + while (!s_Feed.empty() && (ImGui::GetTime() - s_Feed.front().Time > 8.0 || s_Feed.size() > 6)) { + s_Feed.pop_front(); + } + ImVec2 feedPosition(margin, margin + 30.0F * scale); + for (const FeedEntry& entry: s_Feed) { + float age = static_cast(ImGui::GetTime() - entry.Time); + int alpha = static_cast(255.0F * std::clamp(8.0F - age, 0.0F, 1.0F)); + ImVec2 textSize = ImGui::CalcTextSize(entry.Text.c_str()); + drawList->AddRectFilled(ImVec2(feedPosition.x - 4.0F, feedPosition.y - 2.0F), ImVec2(feedPosition.x + textSize.x + 14.0F, feedPosition.y + textSize.y + 2.0F), IM_COL32(0, 0, 0, alpha / 2), 3.0F); + ImU32 teamColor = (TeamColor(entry.Team) & 0x00FFFFFF) | (static_cast(alpha) << 24); + drawList->AddRectFilled(ImVec2(feedPosition.x - 4.0F, feedPosition.y - 2.0F), ImVec2(feedPosition.x, feedPosition.y + textSize.y + 2.0F), teamColor); + drawList->AddText(ImVec2(feedPosition.x + 6.0F, feedPosition.y), IM_COL32(255, 255, 255, alpha), entry.Text.c_str()); + feedPosition.y += textSize.y + 6.0F; + } +} diff --git a/Source/Managers/ModernHUD.h b/Source/Managers/ModernHUD.h new file mode 100644 index 0000000000..b17da7d945 --- /dev/null +++ b/Source/Managers/ModernHUD.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include + +namespace RTE { + + /// An optional modern HUD drawn at window resolution over the game: a minimap of the terrain and units, health and ammo bars + /// for the controlled unit, and a feed of unit losses. The classic HUD stays the default; this is drawn in addition when enabled. + class ModernHUD { + + public: + /// Gets whether the modern HUD is shown. + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether the modern HUD is shown. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Draws the HUD for the first player, with ImGui. Call once per frame while building the ImGui frame. + static void Draw(); + + private: + static bool s_Enabled; //!< Whether the modern HUD is shown. + }; +} // namespace RTE diff --git a/Source/Managers/MovableMan.cpp b/Source/Managers/MovableMan.cpp index 904ddba508..75668a234f 100644 --- a/Source/Managers/MovableMan.cpp +++ b/Source/Managers/MovableMan.cpp @@ -1,4 +1,5 @@ #include "MovableMan.h" +#include "FluidSim.h" #include "PrimitiveMan.h" #include "PostProcessMan.h" @@ -1283,10 +1284,7 @@ void MovableMan::Update() { g_SceneMan.ClearMOColorLayer(); } - // If this is the first sim update since a drawn one, then clear the post effects - if (g_TimerMan.SimUpdatesSinceDrawn() == 0) { - g_PostProcessMan.ClearScenePostEffects(); - } + // Scene post effects are cleared at the start of the sim update in RunGameLoop, so activities and global scripts that update before this can register them too. // ---TEMP--- // Reset the draw HUD roster line settings @@ -1656,6 +1654,7 @@ void MovableMan::Update() { } if ((*parIt)->GetDrawPriority() >= terrMat->GetPriority()) { (*parIt)->DrawToTerrain(g_SceneMan.GetTerrain()); + FluidSim::OnParticleSettled(*parIt); } (*parIt)->DestroyScriptState(); delete (*parIt); @@ -1701,6 +1700,19 @@ void MovableMan::Update() { void MovableMan::Travel() { ZoneScoped; + { + ZoneScopedN("Store Render State"); + for (Actor* actor: m_Actors) { + actor->StoreRenderPreviousState(); + } + for (MovableObject* item: m_Items) { + item->StoreRenderPreviousState(); + } + for (MovableObject* particle: m_Particles) { + particle->StoreRenderPreviousState(); + } + } + // Travel Actors { ZoneScopedN("Actors Travel"); @@ -1944,6 +1956,30 @@ void MovableMan::Draw(BITMAP* pTargetBitmap, const Vector& targetPos) { } } +void MovableMan::Draw(const Camera& camera) { + ZoneScoped; + + { + ZoneScopedN("Particles Draw GPU"); + for (auto particle: m_Particles) { + particle->Draw(camera); + } + } + + { + ZoneScopedN("Items Draw GPU"); + for (auto item: m_Items) { + item->Draw(camera); + } + } + { + ZoneScopedN("Actors Draw GPU"); + for (auto actor: m_Actors) { + actor->Draw(camera); + } + } +} + void MovableMan::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int which, bool playerControlled) { ZoneScoped; @@ -1954,3 +1990,14 @@ void MovableMan::DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos, int whi for (std::deque::reverse_iterator aIt = m_Actors.rbegin(); aIt != m_Actors.rend(); ++aIt) (*aIt)->DrawHUD(pTargetBitmap, targetPos, which); } + +void MovableMan::DrawHUD(const Camera& camera) { + ZoneScoped; + for (auto item: m_Items) { + item->DrawHUD(camera); + } + + for (auto actor: m_Actors) { + actor->DrawHUD(camera); + } +} diff --git a/Source/Managers/MovableMan.h b/Source/Managers/MovableMan.h index 3a4183a5ce..305b57bc2d 100644 --- a/Source/Managers/MovableMan.h +++ b/Source/Managers/MovableMan.h @@ -53,6 +53,11 @@ namespace RTE { class MovableMan : public Singleton, public Serializable { friend class SettingsMan; friend struct ManagerLuaBindings; + friend class DebugMan; + friend class ModernHUD; + friend class SmokeGrid; + friend class Sandbox; + friend class ActorFire; /// Public member variable, method and friend function declarations public: @@ -465,6 +470,7 @@ namespace RTE { /// @param pTargetBitmap A pointer to a BITMAP to draw on. /// @param targetPos The absolute position of the target bitmap's upper left corner in the scene. (default: Vector()) void Draw(BITMAP* pTargetBitmap, const Vector& targetPos = Vector()); + void Draw(const Camera& camera); /// Draws the HUDs of all MovableObject:s of this MovableMan to a BITMAP of choice. /// @param pTargetBitmap A pointer to a BITMAP to draw on. @@ -472,6 +478,7 @@ namespace RTE { /// @param which Which player's screen is being drawn. Tis affects which actor's HUDs (default: 0) /// get drawn. void DrawHUD(BITMAP* pTargetBitmap, const Vector& targetPos = Vector(), int which = 0, bool playerControlled = false); + void DrawHUD(const Camera& camera); /// Verifieis whether all elements of MOID index has correct ID. Should be used in Debug mode only. void VerifyMOIDIndex(); diff --git a/Source/Managers/PerformanceMan.cpp b/Source/Managers/PerformanceMan.cpp index b53759b508..2be2653990 100644 --- a/Source/Managers/PerformanceMan.cpp +++ b/Source/Managers/PerformanceMan.cpp @@ -8,6 +8,9 @@ #include +#include "DebugMan.h" +#include "imgui/imgui.h" + using namespace RTE; const std::array PerformanceMan::m_PerfCounterNames = {"Total", "Act AI", "Act Travel", "Act Update", "Prt Travel", "Prt Update", "Activity", "Scripts"}; @@ -221,6 +224,89 @@ void PerformanceMan::DrawCurrentPing() const { g_FrameMan.GetLargeFont()->DrawAligned(&allegroBitmap, g_FrameMan.GetBackBuffer8()->w - 25, g_FrameMan.GetBackBuffer8()->h - 14, "PING: " + std::to_string(m_CurrentPing), GUIFont::Right); } +void PerformanceMan::ImGui() { + CalculateSamplePercentages(); + if (ImGui::Begin("Performance Statistics")) { + float fps = 1.0F / (m_MSPFAverage / 1000.0F); + float ups = 1.0F / (m_MSPSUAverage / 1000.0F); + ImGui::Text("FPS: %.0f UPS: %.0f", fps, ups); + ImGui::Text("Frame: %.2f | Update: %.1f | Draw: %.1f", m_MSPFAverage, m_MSPUAverage, m_MSPDAverage); + float timeScale = g_TimerMan.GetTimeScale(); + ImGui::Text("TimeScale: "); ImGui::SameLine(); + if (ImGui::InputFloat("##ts", &timeScale, 0.1f, 1.0f, "%.6f")) { + if (timeScale < 0) { + timeScale = 0; + } + g_TimerMan.SetTimeScale(timeScale); + } + + float deltaTime = g_TimerMan.GetDeltaTimeSecs(); + ImGui::Text("DeltaTime: "); ImGui::SameLine(); + if (ImGui::InputFloat("##dt", &deltaTime, 0.0001f, 0.001f, "%.6f")) { + if (deltaTime < 0) { + deltaTime = 0; + } + g_TimerMan.SetDeltaTimeSecs(deltaTime); + } + + ImGui::Text("Actors: %li", g_MovableMan.GetActorCount()); + ImGui::Text("Particles: %li", g_MovableMan.GetParticleCount()); + ImGui::Text("Objects: %i", g_MovableMan.GetKnownObjectsCount()); + ImGui::Text("MOIDs: %i", g_MovableMan.GetMOIDCount()); + + + if (int totalPlayingChannelCount = 0, realPlayingChannelCount = 0; g_AudioMan.GetPlayingChannelCount(&totalPlayingChannelCount, &realPlayingChannelCount)) { + ImGui::Text("Sound Channels: %d / %d Real | %d / %d Virtual", realPlayingChannelCount, g_AudioMan.GetTotalRealChannelCount(), totalPlayingChannelCount - realPlayingChannelCount, g_AudioMan.GetTotalVirtualChannelCount()); + } + + if (!m_SortedScriptTimings.empty()) { + ImGui::Text("ScriptTimings"); + if (ImGui::BeginChild("script_timings", ImVec2(0, ImGui::GetFontSize() * 5))) { + for (auto& [script, timing]: m_SortedScriptTimings) { + ImGui::Text("%.1fms | %i calls from: %s", timing.m_Time / 1000.0f, timing.m_CallCount, script.c_str()); + } + } + ImGui::EndChild(); + } + + if (ImGui::TreeNode("Preformance Graphs")) { + for (int pc = 0; pc < PerformanceCounters::PerfCounterCount; pc++) { + ImGui::PushID(pc); + if (ImGui::TreeNode(m_PerfCounterNames[pc].c_str())) { + auto& perfData = m_PerfData[pc]; + std::array floatData; + int peak = 0; + int sample = m_Sample; + for (int i = 0; i < c_MaxSamples; ++i) { + if (peak < perfData.at(i)) { + peak = perfData.at(i); + } + floatData[i] = perfData[sample]; + if (sample == 0) { + sample = c_MaxSamples; + } + sample--; + } + ImGui::PushID(pc); + ImGui::Text("Peak: %i", peak); + ImGui::SameLine(); + int perc = static_cast((static_cast(GetPerformanceCounterAverage(static_cast(pc))) / static_cast(GetPerformanceCounterAverage(PerformanceCounters::SimTotal)) * 100)); + ImGui::Text("%%: %i", perc); + ImGui::SameLine(); + ImGui::Text("Average Time: %lu", GetPerformanceCounterAverage(static_cast(pc)) / 1000); + ImGui::PlotHistogram("", floatData.data(), c_MaxSamples, 0, nullptr, 0.0f, g_TimerMan.GetRealToSimCap() * 1E6f); + ImGui::PopID(); + + ImGui::TreePop(); + } + ImGui::PopID(); + } + ImGui::TreePop(); + } + } + ImGui::End(); +} + void PerformanceMan::UpdateSortedScriptTimings(const std::unordered_map& scriptTimings) { std::vector> sortedScriptTimings; for (auto it = scriptTimings.begin(); it != scriptTimings.end(); it++) { diff --git a/Source/Managers/PerformanceMan.h b/Source/Managers/PerformanceMan.h index fac21aa757..bee8a5443c 100644 --- a/Source/Managers/PerformanceMan.h +++ b/Source/Managers/PerformanceMan.h @@ -128,6 +128,8 @@ namespace RTE { /// Draws the current ping value to the screen. void DrawCurrentPing() const; + + void ImGui(); #pragma endregion /// Updates m_SortedScriptTimings so PerformanceMan::Draw() can list how long scripts took. diff --git a/Source/Managers/PostProcessMan.cpp b/Source/Managers/PostProcessMan.cpp index a89a3bd36e..6d407fd636 100644 --- a/Source/Managers/PostProcessMan.cpp +++ b/Source/Managers/PostProcessMan.cpp @@ -1,4 +1,5 @@ #include "PostProcessMan.h" +#include "SceneLighting.h" #include "CameraMan.h" #include "WindowMan.h" @@ -6,9 +7,12 @@ #include "Scene.h" #include "ContentFile.h" #include "Matrix.h" +#include "Rectangles.h" +#include "Draw.h" +#include "RenderMan.h" #include "PresetMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "RenderTarget.h" #include "GLCheck.h" @@ -61,13 +65,13 @@ int PostProcessMan::Initialize() { m_PostProcessShader = std::make_unique(g_PresetMan.GetFullModulePath("Base.rte/Shaders/PostProcess.vert"), g_PresetMan.GetFullModulePath("Base.rte/Shaders/PostProcess.frag")); // TODO: Make more robust and load more glows! ContentFile glowFile("Base.rte/Effects/Glows/YellowTiny.png"); - m_YellowGlow = glowFile.GetAsBitmap(); + m_YellowGlow = glowFile.GetAsTexture(); m_YellowGlowHash = glowFile.GetHash(); glowFile.SetDataPath("Base.rte/Effects/Glows/RedTiny.png"); - m_RedGlow = glowFile.GetAsBitmap(); + m_RedGlow = glowFile.GetAsTexture(); m_RedGlowHash = glowFile.GetHash(); glowFile.SetDataPath("Base.rte/Effects/Glows/BlueTiny.png"); - m_BlueGlow = glowFile.GetAsBitmap(); + m_BlueGlow = glowFile.GetAsTexture(); m_BlueGlowHash = glowFile.GetHash(); // Create temporary bitmaps to rotate post effects in. @@ -131,10 +135,205 @@ void PostProcessMan::UpdatePalette() { GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); } +void PostProcessMan::RegisterLight(const Vector& pos, const glm::vec3& color, float radius, float intensity) { + if (radius <= 0.0F || intensity <= 0.0F || g_TimerMan.SimUpdatesSinceDrawn() < 0) { + return; + } + glm::vec3 linearColor(std::pow(std::clamp(color.r, 0.0F, 255.0F) / 255.0F, 2.2F), std::pow(std::clamp(color.g, 0.0F, 255.0F) / 255.0F, 2.2F), std::pow(std::clamp(color.b, 0.0F, 255.0F) / 255.0F, 2.2F)); + m_SceneLights.push_back({pos, linearColor * intensity, radius}); +} + +void PostProcessMan::RegisterConeLight(const Vector& pos, const Vector& direction, float halfAngleDegrees, const glm::vec3& color, float radius, float intensity) { + size_t before = m_SceneLights.size(); + RegisterLight(pos, color, radius, intensity); + if (m_SceneLights.size() > before) { + glm::vec2 dir(direction.m_X, direction.m_Y); + float length = glm::length(dir); + m_SceneLights.back().m_Direction = length > 0.0001F ? dir / length : glm::vec2(1.0F, 0.0F); + m_SceneLights.back().m_ConeCos = std::cos(halfAngleDegrees * c_PI / 180.0F); + } +} + +void PostProcessMan::GetLightsWrapped(const Vector& boxPos, int boxWidth, int boxHeight, std::vector& lights) const { + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + float sceneHeight = static_cast(g_SceneMan.GetSceneHeight()); + for (const SceneLight& light: m_SceneLights) { + // Try the light's position and its wrapped copies, keeping any that reach the box. + for (int wrapX = -1; wrapX <= 1; ++wrapX) { + if (wrapX != 0 && !g_SceneMan.SceneWrapsX()) { + continue; + } + for (int wrapY = -1; wrapY <= 1; ++wrapY) { + if (wrapY != 0 && !g_SceneMan.SceneWrapsY()) { + continue; + } + Vector relativePos = light.m_Pos + Vector(wrapX * sceneWidth, wrapY * sceneHeight) - boxPos; + if (relativePos.m_X + light.m_Radius >= 0 && relativePos.m_Y + light.m_Radius >= 0 && relativePos.m_X - light.m_Radius <= boxWidth && relativePos.m_Y - light.m_Radius <= boxHeight) { + lights.push_back({relativePos, light.m_Color, light.m_Radius, light.m_Direction, light.m_ConeCos}); + } + } + } + } +} + +float PostProcessMan::GetSmoothSimTime() { + return (static_cast(g_TimerMan.GetSimUpdateCount()) + g_TimerMan.GetSimUpdateProportion()) * g_TimerMan.GetDeltaTimeSecs(); +} + +void PostProcessMan::RegisterShockwave(const Vector& pos, float energy) { + // Only explosions, not every gibbing body part. Explosives release ~10k, limbs and items a few hundred. + if (energy < 2000.0F || !m_LightingSettings.DistortionEnabled || m_LightingSettings.ShockwaveStrength <= 0.0F) { + return; + } + Shockwave shockwave{pos, std::clamp(std::sqrt(energy) * 2.2F, 60.0F, 500.0F), std::clamp(energy / 2500.0F, 2.0F, 10.0F) * m_LightingSettings.ShockwaveStrength, GetSmoothSimTime()}; + std::scoped_lock lock(m_ShockwaveMutex); + m_Shockwaves.push_back(shockwave); +} + +void PostProcessMan::RegisterScorchMark(const Vector& pos, float energy) { + if (energy < 2000.0F || !m_LightingSettings.ScorchMarks) { + return; + } + ScorchMark mark{pos, std::clamp(std::sqrt(energy) * 0.45F, 14.0F, 90.0F), std::clamp(0.35F + energy / 40000.0F, 0.35F, 0.8F), GetSmoothSimTime()}; + std::scoped_lock lock(m_ShockwaveMutex); + m_PendingScorchMarks.push_back(mark); + m_HotScorchMarks.push_back(mark); +} + +std::vector PostProcessMan::TakePendingScorchMarks() { + std::scoped_lock lock(m_ShockwaveMutex); + std::vector marks; + marks.swap(m_PendingScorchMarks); + return marks; +} + +const std::vector& PostProcessMan::GetHotScorchMarks(float duration) { + float now = GetSmoothSimTime(); + std::scoped_lock lock(m_ShockwaveMutex); + std::erase_if(m_HotScorchMarks, [now, duration](const ScorchMark& mark) { return now - mark.m_StartTime > duration || now < mark.m_StartTime - 1.0F; }); + return m_HotScorchMarks; +} + +void PostProcessMan::GetActiveShockwaves(std::vector& shockwaves) { + const float duration = 0.55F; + float now = GetSmoothSimTime(); + std::scoped_lock lock(m_ShockwaveMutex); + for (const Shockwave& shockwave: m_Shockwaves) { + float progress = std::clamp((now - shockwave.m_StartTime) / duration, 0.0F, 1.0F); + shockwaves.emplace_back(shockwave.m_Pos.m_X, shockwave.m_Pos.m_Y, shockwave.m_Radius * progress, shockwave.m_Amplitude * (1.0F - progress)); + } +} + +void PostProcessMan::GetShockwavesWrapped(const Vector& boxPos, int boxWidth, int boxHeight, std::vector& shockwaves) { + const float duration = 0.55F; + float now = GetSmoothSimTime(); + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + float sceneHeight = static_cast(g_SceneMan.GetSceneHeight()); + std::scoped_lock lock(m_ShockwaveMutex); + std::erase_if(m_Shockwaves, [now, duration](const Shockwave& shockwave) { return now - shockwave.m_StartTime > duration || now < shockwave.m_StartTime - 1.0F; }); + for (const Shockwave& shockwave: m_Shockwaves) { + float progress = std::clamp((now - shockwave.m_StartTime) / duration, 0.0F, 1.0F); + for (int wrapX = -1; wrapX <= 1; ++wrapX) { + if (wrapX != 0 && !g_SceneMan.SceneWrapsX()) { + continue; + } + for (int wrapY = -1; wrapY <= 1; ++wrapY) { + if (wrapY != 0 && !g_SceneMan.SceneWrapsY()) { + continue; + } + Vector relativePos = shockwave.m_Pos + Vector(wrapX * sceneWidth, wrapY * sceneHeight) - boxPos; + if (relativePos.m_X + shockwave.m_Radius >= 0 && relativePos.m_Y + shockwave.m_Radius >= 0 && relativePos.m_X - shockwave.m_Radius <= boxWidth && relativePos.m_Y - shockwave.m_Radius <= boxHeight) { + shockwaves.push_back({glm::vec2(relativePos.m_X, relativePos.m_Y), shockwave.m_Radius, shockwave.m_Amplitude, progress}); + } + } + } + } +} + +void PostProcessMan::ApplySceneAtmosphere(const Scene* scene) { + if (!m_PlayerAtmosphereCaptured) { + m_PlayerAtmosphere = m_LightingSettings; + m_PlayerAtmosphereCaptured = true; + } + m_LightingSettings.TimeOfDay = m_PlayerAtmosphere.TimeOfDay; + m_LightingSettings.DayLengthMinutes = m_PlayerAtmosphere.DayLengthMinutes; + m_LightingSettings.WeatherType = m_PlayerAtmosphere.WeatherType; + m_LightingSettings.WeatherIntensity = m_PlayerAtmosphere.WeatherIntensity; + m_LightingSettings.Wind = m_PlayerAtmosphere.Wind; + m_LightingSettings.SkyColor = m_PlayerAtmosphere.SkyColor; + m_LightingSettings.Ambient = m_PlayerAtmosphere.Ambient; + m_LightingSettings.Temperature = m_PlayerAtmosphere.Temperature; + m_LightingSettings.Tint = m_PlayerAtmosphere.Tint; + m_LightingSettings.Contrast = m_PlayerAtmosphere.Contrast; + m_LightingSettings.ShadowTint = m_PlayerAtmosphere.ShadowTint; + m_LightingSettings.HighlightTint = m_PlayerAtmosphere.HighlightTint; + if (!scene) { + ApplyActivityAtmosphere(); + return; + } + const Scene::Atmosphere& atmosphere = scene->GetAtmosphere(); + if (atmosphere.TimeOfDay >= 0.0F) { + m_LightingSettings.TimeOfDay = std::fmod(atmosphere.TimeOfDay, 24.0F); + } + if (atmosphere.DayLengthMinutes >= 0.0F) { + m_LightingSettings.DayLengthMinutes = atmosphere.DayLengthMinutes; + } + if (atmosphere.WeatherType >= 0) { + m_LightingSettings.WeatherType = std::clamp(atmosphere.WeatherType, 0, 2); + } + if (atmosphere.WeatherIntensity >= 0.0F) { + m_LightingSettings.WeatherIntensity = std::clamp(atmosphere.WeatherIntensity, 0.0F, 1.0F); + } + if (atmosphere.Wind > -10000.0F) { + m_LightingSettings.Wind = atmosphere.Wind; + } + ApplyActivityAtmosphere(); +} + +void PostProcessMan::ApplyActivityAtmosphere() { + if (m_ActivityTimeOfDay >= 0.0F) { + m_LightingSettings.TimeOfDay = std::fmod(m_ActivityTimeOfDay, 24.0F); + m_LightingSettings.DayLengthMinutes = 0.0F; + } + if (m_ActivityWeather >= 0) { + m_LightingSettings.WeatherType = std::clamp(m_ActivityWeather, 0, 2); + if (m_LightingSettings.WeatherType > 0) { + m_LightingSettings.WeatherIntensity = std::max(m_LightingSettings.WeatherIntensity, 0.6F); + } + } +} + +LightingSettings PostProcessMan::GetLightingSettingsToSave() const { + LightingSettings settings = m_LightingSettings; + if (m_PlayerAtmosphereCaptured) { + settings.TimeOfDay = m_PlayerAtmosphere.TimeOfDay; + settings.DayLengthMinutes = m_PlayerAtmosphere.DayLengthMinutes; + settings.WeatherType = m_PlayerAtmosphere.WeatherType; + settings.WeatherIntensity = m_PlayerAtmosphere.WeatherIntensity; + settings.Wind = m_PlayerAtmosphere.Wind; + settings.SkyColor = m_PlayerAtmosphere.SkyColor; + settings.Ambient = m_PlayerAtmosphere.Ambient; + settings.Temperature = m_PlayerAtmosphere.Temperature; + settings.Tint = m_PlayerAtmosphere.Tint; + settings.Contrast = m_PlayerAtmosphere.Contrast; + settings.ShadowTint = m_PlayerAtmosphere.ShadowTint; + settings.HighlightTint = m_PlayerAtmosphere.HighlightTint; + } + return settings; +} + +SceneLighting* PostProcessMan::GetSceneLighting() { + if (!m_SceneLighting) { + m_SceneLighting = std::make_unique(m_LightingSettings); + } + return m_SceneLighting.get(); +} + void PostProcessMan::Destroy() { for (std::pair tempBitmapEntry: m_TempEffectBitmaps) { destroy_bitmap(tempBitmapEntry.second); } + m_SceneLighting.reset(); DestroyGLPointers(); ClearScreenPostEffects(); ClearScenePostEffects(); @@ -151,7 +350,7 @@ void PostProcessMan::AdjustEffectsPosToPlayerScreen(int playerScreen, BITMAP* ta for (const PostEffect& postEffect: screenRelativeEffectsList) { // Make sure we won't be adding any effects to a part of the screen that is occluded by menus and such if (postEffect.m_Pos.GetFloorIntX() > screenOcclusionOffsetX && postEffect.m_Pos.GetFloorIntY() > screenOcclusionOffsetY && postEffect.m_Pos.GetFloorIntX() < occludedOffsetX && postEffect.m_Pos.GetFloorIntY() < occludedOffsetY) { - m_PostScreenEffects.emplace_back(postEffect.m_Pos + targetBitmapOffset, postEffect.m_Bitmap, postEffect.m_BitmapHash, postEffect.m_Strength, postEffect.m_Angle); + m_PostScreenEffects.emplace_back(postEffect.m_Pos, postEffect.m_Bitmap, postEffect.m_BitmapHash, postEffect.m_Strength, postEffect.m_Angle); } } // Adjust glow areas for the player screen's position on the final buffer @@ -162,7 +361,7 @@ void PostProcessMan::AdjustEffectsPosToPlayerScreen(int playerScreen, BITMAP* ta } } -void PostProcessMan::RegisterPostEffect(const Vector& effectPos, BITMAP* effect, size_t hash, int strength, float angle) { +void PostProcessMan::RegisterPostEffect(const Vector& effectPos, std::shared_ptr effect, size_t hash, int strength, float angle) { // These effects get applied when there's a drawn frame that followed one or more sim updates. // They are not only registered on drawn sim updates; flashes and stuff could be missed otherwise if they occur on undrawn sim updates. @@ -291,7 +490,7 @@ bool PostProcessMan::GetPostScreenEffects(int left, int top, int right, int bott return found; } -BITMAP* PostProcessMan::GetDotGlowEffect(DotGlowColor whichColor) const { +std::shared_ptr PostProcessMan::GetDotGlowEffect(DotGlowColor whichColor) const { switch (whichColor) { case NoDot: return nullptr; @@ -330,30 +529,21 @@ void PostProcessMan::PostProcess() { // First copy the current 8bpp backbuffer to the 32bpp buffer; we'll add effects to it m_PostProcessFramebuffer->Begin(true); - //m_Blit8->Begin(); - //int paletteUniform = m_Blit8->GetUniformLocation("rtePalette"); - //rlSetUniformSampler(paletteUniform, m_Palette8Texture); - rlDisableColorBlend(); - rlDisableDepthTest(); - DrawTextureRec(g_FrameMan.GetBackBuffer()->GetColorTexture(), {0, 0, g_FrameMan.GetBackBuffer()->GetSize().w, -g_FrameMan.GetBackBuffer()->GetSize().h}, {0.0f, 0.0f}, {255, 255, 255, 255}); - //m_Blit8->End(); + g_RenderMan.BeginFrame(nullptr); + Draw::DrawTexture(g_FrameMan.GetBackBuffer()->GetColorTexture().lock().get(), {-1.0f, -1.0f, 2.0f, 2.0f})->m_Indexed = false; + m_PostProcessFramebuffer->End(); // Set the screen blender mode for glows - set_screen_blender(128, 128, 128, 128); - rlEnableColorBlend(); - rlSetBlendFactorsSeparate(GL_ONE, GL_ONE_MINUS_SRC_COLOR, GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD, GL_FUNC_ADD); - rlSetBlendMode(RL_BLEND_CUSTOM_SEPARATE); - m_PostProcessFramebuffer->End(); - m_PostProcessFramebuffer->Begin(false); + m_PostProcessFramebuffer->Begin(false, false); - m_PostProcessShader->Begin(); + g_RenderMan.BeginFrame(nullptr); + g_RenderMan.SetActiveBlendMode(Blend::SCREEN); DrawDotGlowEffects(); DrawPostScreenEffects(); // Clear the effects list for this frame m_PostScreenEffects.clear(); - m_PostProcessShader->End(); m_PostProcessFramebuffer->End(); } @@ -364,8 +554,6 @@ void PostProcessMan::DrawDotGlowEffects() { int endY = 0; int testpixel = 0; - Texture2D yellowGlow = g_GLResourceMan.GetStaticTextureFromBitmap(m_YellowGlow); - // Randomly sample the entire backbuffer, looking for pixels to put a glow on. for (const Box& glowBox: m_PostScreenGlowBoxes) { startX = glowBox.m_Corner.GetFloorIntX(); @@ -390,7 +578,7 @@ void PostProcessMan::DrawDotGlowEffects() { // YELLOW if ((testpixel == g_YellowGlowColor && RandomNum() < 0.9F) || testpixel == 98 || (testpixel == 120 && RandomNum() < 0.7F)) { - DrawTexture(yellowGlow, x - yellowGlow.width / 2, y - yellowGlow.height / 2, {255, 255, 255, 255}); + Draw::DrawTexture(m_YellowGlow.get(), std::floor(x -m_YellowGlow->GetDimensions().w / 2.0f), std::floor(y - m_YellowGlow->GetDimensions().h / 2.0f)); } // TODO: Enable and add more colors once we actually have something that needs these. // RED @@ -413,24 +601,13 @@ void PostProcessMan::DrawPostScreenEffects() { int effectPosY = 0; unsigned char effectStrength = 0; - GL_CHECK(glActiveTexture(GL_TEXTURE0)); - GL_CHECK(glBindVertexArray(m_VertexArray)); - m_PostProcessShader->SetInt(m_PostProcessShader->GetTextureUniform(), 0); - m_PostProcessShader->SetMatrix4f(m_PostProcessShader->GetProjectionUniform(), *m_ProjectionMatrix); - m_PostProcessShader->SetVector4f(m_PostProcessShader->GetColorUniform(), glm::vec4(1.0f)); - for (const PostEffect& postEffect: m_PostScreenEffects) { if (postEffect.m_Bitmap) { effectStrength = postEffect.m_Strength; effectPosX = postEffect.m_Pos.GetFloorIntX(); effectPosY = postEffect.m_Pos.GetFloorIntY(); - DrawTexturePro( - g_GLResourceMan.GetStaticTextureFromBitmap(postEffect.m_Bitmap), - Rectangle(0, 0, postEffect.m_Bitmap->w, postEffect.m_Bitmap->h), - Rectangle(effectPosX, effectPosY, postEffect.m_Bitmap->w, postEffect.m_Bitmap->h), - Vector2(postEffect.m_Bitmap->w / 2, postEffect.m_Bitmap->h / 2), - postEffect.m_Angle, - {.r=effectStrength, .g=effectStrength, .b=effectStrength, .a=255}); + glm::vec2 effectDims(postEffect.m_Bitmap->GetDimensions().w, postEffect.m_Bitmap->GetDimensions().h); + Draw::DrawTexture(postEffect.m_Bitmap.get(), glm::vec2(effectPosX, effectPosY), -effectDims / 2.0F, -postEffect.m_Angle, glm::vec2(1.0F), {effectStrength, effectStrength, effectStrength, 255})->m_Indexed = false; } } } diff --git a/Source/Managers/PostProcessMan.h b/Source/Managers/PostProcessMan.h index b282c3bd29..8ec3357431 100644 --- a/Source/Managers/PostProcessMan.h +++ b/Source/Managers/PostProcessMan.h @@ -6,33 +6,56 @@ #include "glm/fwd.hpp" #include "SceneMan.h" #include "Shader.h" +#include "LightingSettings.h" #include #include #include #include #include +#include +#include +#include #define g_PostProcessMan PostProcessMan::Instance() namespace RTE { class RenderTarget; + class SceneLighting; + class Scene; /// Struct for storing GL information in the BITMAP->extra field. /// Structure for storing a post-process screen effect to be applied at the last stage of 32bpp rendering. struct PostEffect { - BITMAP* m_Bitmap = nullptr; //!< The bitmap to blend, not owned. + std::shared_ptr m_Bitmap = nullptr; //!< The bitmap to blend, not owned. size_t m_BitmapHash = 0; //!< Hash used to transmit glow events over the network. float m_Angle = 0.0F; // Post effect angle in radians. int m_Strength = 128; //!< Scalar float for how hard to blend it in, 0 - 255. Vector m_Pos; //!< Post effect position. Can be relative to the scene, or to the screen, depending on context. /// Constructor method used to instantiate a PostEffect object in system memory. - PostEffect(const Vector& pos, BITMAP* bitmap, size_t bitmapHash, int strength, float angle) : + PostEffect(const Vector& pos, std::shared_ptr bitmap, size_t bitmapHash, int strength, float angle) : m_Bitmap(bitmap), m_BitmapHash(bitmapHash), m_Angle(angle), m_Strength(strength), m_Pos(pos) {} }; /// Singleton manager responsible for all 32bpp post-process effect drawing. + /// A dynamic light in the scene, registered for the current frame by MovableObjects with light properties or from Lua. + struct SceneLight { + Vector m_Pos; //!< Light position. Scene coordinates, or relative to a screen, depending on context. + glm::vec3 m_Color{1.0F}; //!< Linear light color, intensity included. + float m_Radius = 0.0F; //!< Radius in pixels, where the light reaches zero. + glm::vec2 m_Direction{1.0F, 0.0F}; //!< For cone lights (flashlights): the direction the cone points, screen space (Y down). + float m_ConeCos = -2.0F; //!< Cosine of the cone's half angle; below -1 is an ordinary all-round light. + }; + + /// A shockwave ring as seen by one player screen this frame. + struct ScreenShockwave { + glm::vec2 m_Pos; //!< Position relative to the screen. + float m_Radius; //!< Maximum radius of the ring, in pixels. + float m_Amplitude; //!< Maximum displacement, in pixels. + float m_Progress; //!< How far the ring has expanded, 0 to 1. + }; + class PostProcessMan : public Singleton { public: @@ -65,6 +88,7 @@ namespace RTE { void ClearScenePostEffects() { m_PostSceneEffects.clear(); m_GlowAreas.clear(); + m_SceneLights.clear(); } #pragma endregion @@ -88,7 +112,7 @@ namespace RTE { /// @param hash Hash value of the effect for transmitting over the network. /// @param strength The intensity level this effect should have when blended in post. 0 - 255. /// @param angle The angle this effect should be rotated at in radians. - void RegisterPostEffect(const Vector& effectPos, BITMAP* effect, size_t hash, int strength = 255, float angle = 0); + void RegisterPostEffect(const Vector& effectPos, std::shared_ptr effect, size_t hash, int strength = 255, float angle = 0); /// Gets all screen effects that are located within a box in the scene. /// Their coordinates will be returned relative to the upper left corner of the box passed in here. Wrapping of the box will be taken care of. @@ -143,6 +167,112 @@ namespace RTE { /// @return The opengl backbuffer texture for indexed drawings. std::shared_ptr GetPostProcessColorBuffer() { return m_PostProcessFramebuffer; } + /// Registers a dynamic light for the current frame. Lights persist until the next sim update after a drawn frame, like scene post effects. + /// @param pos Scene position of the light. + /// @param color Light color in 0-255 gamma space, like palette and INI colors. + /// @param radius Radius in pixels, where the light reaches zero. + /// @param intensity Brightness multiplier. + void RegisterLight(const Vector& pos, const glm::vec3& color, float radius, float intensity); + + /// Registers a cone light (flashlight, headlamp) for the current frame. + /// @param pos Where the light comes from, scene coordinates. + /// @param direction Direction the cone points (Y down), any length. + /// @param halfAngleDegrees Half the cone's width. + void RegisterConeLight(const Vector& pos, const Vector& direction, float halfAngleDegrees, const glm::vec3& color, float radius, float intensity); + + /// Registers a dynamic light for the current frame, from Lua. See RegisterLight. + void AddLight(const Vector& pos, float radius, float red, float green, float blue, float intensity) { RegisterLight(pos, glm::vec3(red, green, blue), radius, intensity); } + + /// Gets the scene lights that may affect a box, with positions relative to the box. Handles scene wrapping. + /// @param boxPos Scene position of the box's top left corner. + /// @param boxWidth Width of the box. + /// @param boxHeight Height of the box. + /// @param lights Out parameter the lights are appended to. + void GetLightsWrapped(const Vector& boxPos, int boxWidth, int boxHeight, std::vector& lights) const; + + /// Registers an explosion shockwave. Ring size and strength scale with the energy released. + /// @param pos Scene position of the explosion. + /// @param energy Energy released, as computed for gib screen shake. + void RegisterShockwave(const Vector& pos, float energy); + + /// Registers a scorch mark: soot stamped into the terrain that glows hot for a few seconds. Size and darkness scale with the energy released. + /// @param pos Scene position of the explosion. + /// @param energy Energy released, as computed for gib screen shake. + void RegisterScorchMark(const Vector& pos, float energy); + + /// Gets the active shockwaves that may affect a box, with positions relative to the box, and forgets expired ones. Handles scene wrapping. + void GetShockwavesWrapped(const Vector& boxPos, int boxWidth, int boxHeight, std::vector& shockwaves); + + /// A soot mark to stamp into the world, and the hot spot it leaves. + struct ScorchMark { + Vector m_Pos; + float m_Radius; + float m_Darkness; + float m_StartTime; + }; + + /// Takes the scorch marks registered since the last call, for stamping. + std::vector TakePendingScorchMarks(); + + /// Gets the recent scorch marks that are still hot, and forgets the cooled ones. + /// @param duration How long marks stay hot, in seconds. + const std::vector& GetHotScorchMarks(float duration); + + /// Gets the current simulation time in seconds, including the fraction of the current sim update, for smooth time based effects that pause and slow down with the game. + static float GetSmoothSimTime(); + + /// Gets the scene lighting, creating it on first use (it needs a GL context). + /// @return The scene lighting. + SceneLighting* GetSceneLighting(); + +#pragma region Atmosphere Lua Accessors + float GetTimeOfDay() const { return m_LightingSettings.TimeOfDay; } + void SetTimeOfDay(float hours) { m_LightingSettings.TimeOfDay = std::fmod(std::fmod(hours, 24.0F) + 24.0F, 24.0F); } + float GetDayLengthMinutes() const { return m_LightingSettings.DayLengthMinutes; } + void SetDayLengthMinutes(float minutes) { m_LightingSettings.DayLengthMinutes = std::max(minutes, 0.0F); } + int GetWeatherType() const { return m_LightingSettings.WeatherType; } + void SetWeatherType(int weatherType) { m_LightingSettings.WeatherType = std::clamp(weatherType, 0, 2); } + float GetWeatherIntensity() const { return m_LightingSettings.WeatherIntensity; } + void SetWeatherIntensity(float intensity) { m_LightingSettings.WeatherIntensity = std::clamp(intensity, 0.0F, 1.0F); } + float GetWind() const { return m_LightingSettings.Wind; } + void SetWind(float wind) { m_LightingSettings.Wind = wind; } + bool GetLightingEnabled() const { return m_LightingSettings.Enabled; } + void SetLightingEnabled(bool enabled) { m_LightingSettings.Enabled = enabled; } + /// Sets the sky light color, 0-255 gamma space per channel. Values above 255 brighten. + void SetSkyColor(float red, float green, float blue) { m_LightingSettings.SkyColor = glm::vec3(std::pow(red / 255.0F, 2.2F), std::pow(green / 255.0F, 2.2F), std::pow(blue / 255.0F, 2.2F)); } + /// Sets the color grade: white balance (-1 cool .. 1 warm), tint (-1 green .. 1 magenta) and contrast (1 neutral). + void SetColorGrade(float temperature, float tint, float contrast) { + m_LightingSettings.Temperature = temperature; + m_LightingSettings.Tint = tint; + m_LightingSettings.Contrast = contrast; + } + /// Sets the shadow and highlight tints for split toning, as linear multipliers (1 = neutral). + void SetSplitToning(float shadowR, float shadowG, float shadowB, float highlightR, float highlightG, float highlightB) { + m_LightingSettings.ShadowTint = glm::vec3(shadowR, shadowG, shadowB); + m_LightingSettings.HighlightTint = glm::vec3(highlightR, highlightG, highlightB); + } + + /// Sets the ambient light color where no sky light reaches, 0-255 gamma space per channel. + void SetAmbientColor(float red, float green, float blue) { m_LightingSettings.Ambient = glm::vec3(std::pow(red / 255.0F, 2.2F), std::pow(green / 255.0F, 2.2F), std::pow(blue / 255.0F, 2.2F)); } +#pragma endregion + + /// Resets the atmosphere (time of day, weather) to the player's settings and applies the overrides of the newly loaded Scene, if any. + /// Also undoes any atmosphere changes scripts made during the previous Scene. + void ApplySceneAtmosphere(const Scene* scene); + + /// Gets the settings to save to Settings.ini: the player's own atmosphere, not a Scene's or script's. + LightingSettings GetLightingSettingsToSave() const; + + /// Makes the current atmosphere the player's own, so it's what gets saved and restored between Scenes (used by the Graphics Lab). + void AdoptAtmosphereAsPlayers() { + m_PlayerAtmosphere = m_LightingSettings; + m_PlayerAtmosphereCaptured = true; + } + + /// Gets the lighting and post-processing settings. These persist in Settings.ini and can be changed live. + /// @return The lighting settings. + LightingSettings& GetLightingSettings() { return m_LightingSettings; } + GLuint GetPaletteTexture() { return m_Palette8Texture; } protected: @@ -155,9 +285,9 @@ namespace RTE { std::array, c_MaxScreenCount> m_ScreenRelativeEffects; //!< List of screen relative effects for each player in online multiplayer. std::array ScreenRelativeEffectsMutex; //!< Mutex for the ScreenRelativeEffects list when accessed by multiple threads in online multiplayer. - BITMAP* m_YellowGlow; //!< Bitmap for the yellow dot glow effect. - BITMAP* m_RedGlow; //!< Bitmap for the red dot glow effect. - BITMAP* m_BlueGlow; //!< Bitmap for the blue dot glow effect. + std::shared_ptr m_YellowGlow; //!< Bitmap for the yellow dot glow effect. + std::shared_ptr m_RedGlow; //!< Bitmap for the red dot glow effect. + std::shared_ptr m_BlueGlow; //!< Bitmap for the blue dot glow effect. size_t m_YellowGlowHash; //!< Hash value for the yellow dot glow effect bitmap. size_t m_RedGlowHash; //!< Hash value for the red dot glow effect bitmap. @@ -170,6 +300,43 @@ namespace RTE { GLuint m_Palette8Texture; //!< Palette texture for incoming indexed drawings. std::shared_ptr m_BlitFramebuffer; //!< Framebuffer for blitting the 8bpp backbuffer to the 32bpp backbuffer. std::shared_ptr m_PostProcessFramebuffer; //!< Framebuffer for post-processing effects. + std::unique_ptr m_SceneLighting; //!< Scene lighting, bloom and tonemapping applied to each player screen. + LightingSettings m_LightingSettings; //!< Settings for the scene lighting. + LightingSettings m_PlayerAtmosphere; //!< The player's own atmosphere settings, captured when the first Scene loads. + bool m_PlayerAtmosphereCaptured = false; + std::vector m_SceneLights; //!< Dynamic lights registered for the current frame, in scene coordinates. + + /// An active explosion shockwave. + struct Shockwave { + Vector m_Pos; + float m_Radius; + float m_Amplitude; + float m_StartTime; + }; + std::vector m_Shockwaves; //!< Active shockwaves, in scene coordinates. + float m_ActivityTimeOfDay = -1.0F; //!< Time of day chosen for the current activity, negative for none. + int m_ActivityWeather = -1; //!< Weather chosen for the current activity, negative for none. + + public: + /// Gets the active shockwaves in scene coordinates, as xy position, z current wavefront radius, w remaining strength. For vegetation pushed by blasts. + void GetActiveShockwaves(std::vector& shockwaves); + + /// Sets the time of day and weather for the activity about to start, overriding the scene's and the player's settings. Negative values leave them alone. + /// Kept for restarts of the same activity, until set again. + /// @param timeOfDay Hours, or negative for the default. + /// @param weatherType 0 clear, 1 rain, 2 snow, or negative for the default. + /// Applies the activity's chosen atmosphere, if any, over the current settings. + void ApplyActivityAtmosphere(); + + void SetActivityAtmosphere(float timeOfDay, int weatherType) { + m_ActivityTimeOfDay = timeOfDay; + m_ActivityWeather = weatherType; + } + + private: + std::mutex m_ShockwaveMutex; //!< Gibbing can happen off the main thread. + std::vector m_PendingScorchMarks; //!< Scorch marks not stamped yet. Guarded by m_ShockwaveMutex. + std::vector m_HotScorchMarks; //!< Recent scorch marks, for the cooling glow. Guarded by m_ShockwaveMutex. std::unique_ptr m_ProjectionMatrix; //!< Projection matrix for post-processing effects. GLuint m_VertexBuffer; //!< Vertex buffer for post-processing effects. GLuint m_VertexArray; //!< Vertex array for post-processing effects. @@ -201,7 +368,7 @@ namespace RTE { /// Gets a specific standard dot glow effect for making pixels glow. /// @param which Which of the dot glow colors to get, see the DotGlowColor enumerator. /// @return The requested glow dot BITMAP. - BITMAP* GetDotGlowEffect(DotGlowColor whichColor) const; + std::shared_ptr GetDotGlowEffect(DotGlowColor whichColor) const; /// Gets the hash value of a specific standard dot glow effect for making pixels glow. /// @param which Which of the dot glow colors to get, see the DotGlowColor enumerator. diff --git a/Source/Managers/PrimitiveMan.cpp b/Source/Managers/PrimitiveMan.cpp index a16bc14beb..32e1dd4a8d 100644 --- a/Source/Managers/PrimitiveMan.cpp +++ b/Source/Managers/PrimitiveMan.cpp @@ -10,6 +10,8 @@ #include #include "Draw.h" +#include "RenderMan.h" +#include "Camera.h" #include "glad/gl.h" #include "Shader.h" #include "PresetMan.h" @@ -225,61 +227,50 @@ void PrimitiveMan::DrawIconPrimitive(int player, const Vector& centerPos, Entity } } -void PrimitiveMan::DrawPrimitives(int player, BITMAP* targetBitmap, const Vector& targetPos) const { +namespace { + /// Maps a Lua-facing DrawBlendMode to a GL blend mode. Advanced (KHR) blend equations need shader support we don't have yet, so those modes use their closest standard equivalent. + BlendMode BlendModeForPrimitive(DrawBlendMode blendMode) { + switch (blendMode) { + case DrawBlendMode::BlendScreen: + case DrawBlendMode::BlendLuminance: + return BlendMode(Blend::SCREEN); + case DrawBlendMode::BlendDodge: + return BlendMode(Blend::ADD); + case DrawBlendMode::BlendMultiply: + case DrawBlendMode::BlendBurn: + return BlendMode(GL_DST_COLOR, GL_ZERO, GL_FUNC_ADD); + case DrawBlendMode::BlendDifference: + return BlendMode(GL_ONE, GL_ONE, GL_FUNC_REVERSE_SUBTRACT); + case DrawBlendMode::BlendInvert: + return BlendMode(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_FUNC_ADD); + default: + return BlendMode(Blend::ALPHA); + } + } +} // namespace + +void PrimitiveMan::DrawPrimitives(int player, const Camera& camera) const { ZoneScoped; if (m_ScheduledPrimitives.empty()) { return; } - int lastDrawMode = DRAW_MODE_SOLID; - DrawBlendMode lastBlendMode = DrawBlendMode::NoBlend; - std::array lastBlendAmounts = {BlendAmountLimits::MinBlend, BlendAmountLimits::MinBlend, BlendAmountLimits::MinBlend, BlendAmountLimits::MinBlend}; - GLint currentShader = rlGetShaderCurrent(); - rlDrawRenderBatchActive(); - if (GLAD_GL_KHR_blend_equation_advanced_coherent){ - glBlendBarrierKHR(); - rlEnableAdvancedColorBlend(); - } - const Shader* background = dynamic_cast(g_PresetMan.GetEntityPreset("Shader", "Background")); - rlEnableColorBlend(); + float previousZOffset = g_RenderMan.GetCurrentZOffset(); for (const std::unique_ptr& primitive: m_ScheduledPrimitives) { - if (int playerToDrawFor = primitive->m_Player; playerToDrawFor == player || playerToDrawFor == -1) { - rlDrawRenderBatchActive(); - if (DrawBlendMode blendMode = primitive->m_BlendMode; blendMode > DrawBlendMode::NoBlend) { - if (const std::array& blendAmounts = primitive->m_ColorChannelBlendAmounts; blendMode != lastBlendMode || blendAmounts != lastBlendAmounts) { - if (lastBlendMode == BlendDissolve) { - background->Begin(); - } - rlEnableShader(rlGetShaderCurrent()); - g_FrameMan.SetBlendMode(blendMode); - GLint colorUniform = glGetUniformLocation(rlGetShaderCurrent(), "rteColor"); - glUniform4f(colorUniform, blendAmounts[0] / static_cast(MaxBlend), blendAmounts[1] / static_cast(MaxBlend), blendAmounts[2] / static_cast(MaxBlend), blendAmounts[3] / static_cast(MaxBlend)); - lastBlendMode = blendMode; - lastBlendAmounts = blendAmounts; - } - } else { - g_FrameMan.SetBlendMode(BlendTransparency); - rlEnableShader(currentShader); - GLint colorUniform = glGetUniformLocation(rlGetShaderCurrent(), "rteColor"); - glUniform4f(colorUniform, 1.0f, 1.0f, 1.0f, 1.0f); - lastBlendMode = DrawBlendMode::NoBlend; - } - if (GLAD_GL_KHR_blend_equation_advanced_coherent) { - glBlendBarrierKHR(); - } - rlZDepth(primitive->m_Depth); - primitive->DrawTiled(targetBitmap, targetPos); + if (int playerToDrawFor = primitive->m_Player; playerToDrawFor != player && playerToDrawFor != -1) { + continue; } + Vector cullCenter; + float cullRadius = 0.0f; + primitive->GetCullCircle(cullCenter, cullRadius); + if (!camera.IsVisible(cullCenter, cullRadius)) { + continue; + } + g_RenderMan.SetActiveBlendMode(BlendModeForPrimitive(primitive->m_BlendMode)); + g_RenderMan.SetCurrentZOffset(primitive->m_Depth); + primitive->Draw(); } - rlDrawRenderBatchActive(); - if (GLAD_GL_KHR_blend_equation_advanced_coherent) { - rlDisableAdvancedColorBlend(); - } - rlSetBlendMode(RL_BLEND_ALPHA); - background->Begin(); - GLint colorUniform = glGetUniformLocation(rlGetShaderCurrent(), "rteColor"); - glUniform4f(colorUniform, 1.0f, 1.0f, 1.0f, 1.0f); - rlZDepth(c_DefaultDrawDepth); - drawing_mode(DRAW_MODE_SOLID, nullptr, 0, 0); + g_RenderMan.SetActiveBlendMode(BlendMode(Blend::ALPHA)); + g_RenderMan.SetCurrentZOffset(previousZOffset); } diff --git a/Source/Managers/PrimitiveMan.h b/Source/Managers/PrimitiveMan.h index 3bfa9dc48d..a3cb592ee4 100644 --- a/Source/Managers/PrimitiveMan.h +++ b/Source/Managers/PrimitiveMan.h @@ -28,7 +28,7 @@ namespace RTE { /// @param player Player to draw for. /// @param targetBitmap Bitmap to draw on. /// @param targetPos Position to draw. - void DrawPrimitives(int player, BITMAP* targetBitmap, const Vector& targetPos) const; + void DrawPrimitives(int player, const Camera& camera) const; #pragma endregion #pragma region Primitive Draw Scheduling diff --git a/Source/Managers/Sandbox.cpp b/Source/Managers/Sandbox.cpp new file mode 100644 index 0000000000..f04a0545cc --- /dev/null +++ b/Source/Managers/Sandbox.cpp @@ -0,0 +1,1856 @@ +#include "Sandbox.h" +#include "ACrab.h" +#include "ACraft.h" +#include "ADoor.h" +#include "AHuman.h" +#include "ActivityMan.h" +#include "CameraMan.h" +#include "ConsoleMan.h" +#include "Controller.h" +#include "Constants.h" +#include "EffectsParticles.h" +#include "FluidSim.h" +#include "FrameMan.h" +#include "GameActivity.h" +#include "HDFirearm.h" +#include "Material.h" +#include "MovableMan.h" +#include "PostProcessMan.h" +#include "PresetMan.h" +#include "SLTerrain.h" +#include "Scene.h" +#include "SceneLighting.h" +#include "SceneMan.h" +#include "SoundContainer.h" +#include "TDExplosive.h" +#include "TerrainCollapse.h" +#include "TerrainFire.h" +#include "TerrainObject.h" +#include "TimerMan.h" + +#include "imgui/imgui.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace RTE; + +bool Sandbox::s_Open = false; + +std::deque& Sandbox::Actors() { + return g_MovableMan.m_Actors; +} + +std::deque& Sandbox::Items() { + return g_MovableMan.m_Items; +} + +namespace RTE { + /// Lets the sandbox's helper functions reach its private parts. + struct SandboxAccess { + static std::deque& Actors() { return Sandbox::Actors(); } + static std::deque& Items() { return Sandbox::Items(); } + }; +} // namespace RTE + +namespace { + enum class Tool { + None, + Possess, + Remove, + RallyPoint, + Unit, + Brain, + Item, + Structure, + Drop, + Command, + Follow, + Fire, + Water, + Lava, + Acid, + Oil, + Smoke, + ToxicGas, + Dig, + Earth, + Sand, + Grass, + Wood, + Concrete, + Grenade, + BigBomb, + Napalm, + Lightning, + // Not tools, but queued the same way. + OrderSide, + RemoveSide, + Release, + Select, + OrderSelected + }; + + struct ToolInfo { + Tool Kind; + const char* Name; + float Interval; //!< Seconds between strokes while the button is held; 0 means once per click. + bool UsesRadius; + }; + + constexpr ToolInfo c_Tools[] = { + {Tool::None, "Look around", 0.0F, false}, + {Tool::Possess, "Take control", 0.0F, false}, + {Tool::Remove, "Remove", 0.0F, false}, + {Tool::RallyPoint, "Rally point", 0.0F, false}, + {Tool::Unit, "Units", 0.0F, false}, + {Tool::Brain, "Brain", 0.0F, false}, + {Tool::Item, "Item", 0.0F, false}, + {Tool::Structure, "Structure", 0.0F, false}, + {Tool::Drop, "Drop squad", 0.0F, false}, + {Tool::Command, "Command", 0.0F, false}, + {Tool::Follow, "Follow", 0.0F, false}, + {Tool::Fire, "Fire", 0.08F, true}, + {Tool::Water, "Water", 0.03F, true}, + {Tool::Lava, "Lava", 0.03F, true}, + {Tool::Acid, "Acid", 0.03F, true}, + {Tool::Oil, "Oil", 0.03F, true}, + {Tool::Smoke, "Smoke", 0.06F, true}, + {Tool::ToxicGas, "Toxic gas", 0.06F, true}, + {Tool::Dig, "Dig", 0.03F, true}, + {Tool::Earth, "Earth", 0.03F, true}, + {Tool::Sand, "Sand", 0.03F, true}, + {Tool::Grass, "Grass", 0.03F, true}, + {Tool::Wood, "Wood", 0.03F, true}, + {Tool::Concrete, "Concrete", 0.03F, true}, + {Tool::Grenade, "Grenade blast", 0.0F, false}, + {Tool::BigBomb, "Big bomb", 0.0F, false}, + {Tool::Napalm, "Napalm burst", 0.0F, false}, + {Tool::Lightning, "Lightning", 0.0F, false}, + }; + constexpr int c_ToolCount = static_cast(std::size(c_Tools)); + + int ToolIndex(Tool kind) { + for (int i = 0; i < c_ToolCount; ++i) { + if (c_Tools[i].Kind == kind) { + return i; + } + } + return 0; + } + + constexpr int c_Sides = 4; + // The game's own team colours, as on the team icons over units' heads. + constexpr const char* c_SideNames[c_Sides] = {"Red", "Green", "Blue", "Yellow"}; + constexpr ImU32 c_SideColors[c_Sides] = {IM_COL32(249, 120, 100, 255), IM_COL32(170, 210, 100, 255), IM_COL32(110, 180, 250, 255), IM_COL32(248, 230, 100, 255)}; + + enum class Order { + Hold, + Attack, + HuntBrains, + Patrol, + Rally, + Idle + }; + constexpr const char* c_OrderNames = "Hold position\0Attack nearest enemy\0Hunt brains\0Patrol\0Go to rally point\0Do nothing\0"; + constexpr const char* c_AttackTag = "SandboxAttack"; //!< Number value on units told to attack, so they get a new target when theirs dies. + + /// A preset the sandbox can spawn. + struct Preset { + std::string Label; + std::string ClassName; + std::string PresetName; + std::string Module; + int ModuleID = -1; + int Width = 0; //!< Structures: footprint, for the preview. + int Height = 0; + float OffsetX = 0.0F; + float OffsetY = 0.0F; + }; + + /// Weapons a faction hands its units by default. + struct FactionArmoury { + std::vector Primaries; + std::vector Secondaries; + std::vector Grenades; + }; + + std::vector s_Units; + std::vector s_Brains; + std::vector s_Items; + std::vector s_Structures; + std::vector> s_Armouries; //!< By module ID. + std::vector s_Weapons; //!< Guns among the items, for loadouts. + bool s_CatalogueBuilt = false; + + /// One queued action, with the settings it was made with. + struct Stroke { + Tool Kind; + Vector Position; + int Radius = 0; + int Choice = 0; //!< Index into the list the tool spawns from. + int Team = 0; + Order Orders = Order::Hold; + int Loadout = 0; //!< 0 faction default, 1 unarmed, 2+ a weapon from s_Weapons. + int Count = 1; + bool LitGrenade = false; + Vector Position2; //!< Selection box: the other corner. + int Craft = 0; //!< Drops: index into c_Crafts. + }; + + struct CraftChoice { + const char* Label; + const char* ClassName; + const char* PresetName; + }; + constexpr CraftChoice c_Crafts[] = {{"Dropship", "ACDropShip", "Dropship MK1"}, {"Rocket", "ACRocket", "Rocket MK2"}}; + + /// A unit the sandbox keeps a hold of, checked against its unique ID before use (its memory may be reused by a new object). + struct UnitRef { + Actor* Unit = nullptr; + long ID = 0; + }; + + /// One side in an auto battle. + struct AutoSide { + bool Active = false; + int Faction = 0; //!< Index into s_FactionModules. + int Budget = 5000; + float Spent = 0.0F; + int Sent = 0; + long long NextWave = 0; + bool Broke = false; //!< Can't afford another unit. + }; + + int s_ToolIndex = 0; + int s_Craft = 0; + std::vector s_Selected; + UnitRef s_FollowTarget; + bool s_FollowAction = false; + Vector s_ActionSpot; + bool s_ActionSpotValid = false; + bool s_Dragging = false; + ImVec2 s_DragStart; + std::array s_AutoSides; + bool s_AutoRunning = false; + int s_AutoWinner = -2; //!< -2 no result yet, -1 a draw, otherwise the winning side. + Vector s_AutoCenter; + std::vector s_FactionModules; + std::vector s_FactionNames; + int s_Radius = 6; + int s_UnitChoice = 0; + int s_BrainChoice = 0; + int s_ItemChoice = 0; + int s_StructureChoice = 0; + char s_Filter[64] = ""; + int s_Team = 1; + int s_Order = static_cast(Order::Attack); + int s_Loadout = 0; + int s_SquadSize = 1; + bool s_LitGrenade = false; + bool s_SnapToGrid = true; + bool s_FreeCamera = false; + bool s_SlowMotion = false; + bool s_FreeCameraStarted = false; + int s_CameraWarmupFrames = 0; //!< Frames to leave the camera alone at the start of a game, while the game mode points it somewhere sensible. + Vector s_CameraCenter; + float s_StrokeTimer = 0.0F; + std::vector s_Queue; + std::array s_RallyPoints; + std::array s_RallySet{}; + Actor* s_Possessed = nullptr; //!< The unit you're controlling in the god mode, checked with IsActor before use. + const Activity* s_GodActivity = nullptr; //!< The Sandbox game the window was last set up for. + unsigned int s_Random = 0x5A17B0Bu; + SoundContainer* s_Thunder = nullptr; //!< Never deleted: it would outlive the audio system at exit. + + float Random01() { + s_Random ^= s_Random << 13; + s_Random ^= s_Random >> 17; + s_Random ^= s_Random << 5; + return static_cast(s_Random & 0xFFFFFF) / static_cast(0x1000000); + } + + const ToolInfo& CurrentTool() { return c_Tools[s_ToolIndex]; } + + bool InGame() { + const Activity* activity = g_ActivityMan.GetActivity(); + return activity && activity->GetActivityState() >= Activity::ActivityState::Editing && activity->GetActivityState() <= Activity::ActivityState::Running && g_SceneMan.GetScene() && g_SceneMan.GetScene()->GetTerrain(); + } + + GameActivity* CurrentGame() { return dynamic_cast(g_ActivityMan.GetActivity()); } + + /// How many scene pixels one window pixel covers (player 1's screen fills the window). + float ScenePixelsPerWindowPixel() { return static_cast(g_FrameMan.GetPlayerScreenWidth()) / std::max(1.0F, ImGui::GetIO().DisplaySize.x); } + + Vector MouseScenePosition() { + const ImVec2& mouse = ImGui::GetIO().MousePos; + Vector position = g_CameraMan.GetOffset(0) + Vector(mouse.x, mouse.y) * ScenePixelsPerWindowPixel(); + g_SceneMan.WrapPosition(position); + return position; + } + + bool ContainsIgnoringCase(const std::string& text, const char* filter) { + if (!filter[0]) { + return true; + } + auto lower = [](unsigned char c) { return static_cast(std::tolower(c)); }; + std::string haystack(text.size(), ' '); + std::transform(text.begin(), text.end(), haystack.begin(), lower); + std::string needle(filter); + std::transform(needle.begin(), needle.end(), needle.begin(), lower); + return haystack.find(needle) != std::string::npos; + } + +#pragma region Catalogue + void AddPresets(std::vector& list, const std::list& entities, bool buyableOnly, bool skipBrains) { + for (const Entity* entity: entities) { + const SceneObject* object = dynamic_cast(entity); + if (!object || (buyableOnly && !object->IsBuyable()) || (skipBrains && object->IsInGroup("Brains"))) { + continue; + } + Preset preset; + preset.ClassName = entity->GetClassName(); + preset.PresetName = entity->GetPresetName(); + preset.ModuleID = entity->GetModuleID(); + preset.Module = g_PresetMan.GetDataModuleName(preset.ModuleID); + std::string faction = preset.Module.substr(0, preset.Module.find(".rte")); + preset.Label = preset.PresetName + " (" + faction + ")"; + if (const TerrainObject* terrainObject = dynamic_cast(entity)) { + preset.Width = terrainObject->GetBitmapWidth(); + preset.Height = terrainObject->GetBitmapHeight(); + preset.OffsetX = terrainObject->GetBitmapOffset().m_X; + preset.OffsetY = terrainObject->GetBitmapOffset().m_Y; + } + list.push_back(std::move(preset)); + } + } + + void SortAndDedupe(std::vector& list) { + std::sort(list.begin(), list.end(), [](const Preset& a, const Preset& b) { return a.Label < b.Label; }); + list.erase(std::unique(list.begin(), list.end(), [](const Preset& a, const Preset& b) { return a.Label == b.Label && a.ClassName == b.ClassName; }), list.end()); + } + + FactionArmoury& ArmouryOf(int moduleID) { + for (auto& [id, armoury]: s_Armouries) { + if (id == moduleID) { + return armoury; + } + } + s_Armouries.emplace_back(moduleID, FactionArmoury()); + return s_Armouries.back().second; + } + + void BuildCatalogue() { + s_Units.clear(); + s_Brains.clear(); + s_Items.clear(); + s_Structures.clear(); + s_Armouries.clear(); + s_Weapons.clear(); + for (const char* type: {"AHuman", "ACrab"}) { + std::list entities; + g_PresetMan.GetAllOfType(entities, type); + AddPresets(s_Units, entities, true, true); + } + { + std::list entities; + g_PresetMan.GetAllOfGroup(entities, "Brains", "Actor"); + AddPresets(s_Brains, entities, false, false); + } + for (const char* type: {"HDFirearm", "TDExplosive", "HeldDevice"}) { + std::list entities; + g_PresetMan.GetAllOfType(entities, type); + AddPresets(s_Items, entities, true, false); + } + for (const char* group: {"Bunker Modules", "Bunker Systems"}) { + std::list entities; + g_PresetMan.GetAllOfGroup(entities, group, "All"); + AddPresets(s_Structures, entities, false, false); + } + SortAndDedupe(s_Units); + SortAndDedupe(s_Brains); + SortAndDedupe(s_Items); + SortAndDedupe(s_Structures); + // What each faction arms its units with. + for (const Preset& item: s_Items) { + const Entity* entity = g_PresetMan.GetEntityPreset(item.ClassName, item.PresetName, item.ModuleID); + if (!entity) { + continue; + } + if (item.ClassName == "HDFirearm") { + s_Weapons.push_back(&item); + } + FactionArmoury& armoury = ArmouryOf(item.ModuleID); + if (entity->IsInGroup("Weapons - Primary")) { + armoury.Primaries.push_back(&item); + } else if (entity->IsInGroup("Weapons - Secondary")) { + armoury.Secondaries.push_back(&item); + } else if (entity->IsInGroup("Bombs - Grenades")) { + // Bandoliers unpack themselves by deleting themselves when held; hand out plain grenades instead, so battlefields aren't strewn with them. + const MovableObject* grenade = dynamic_cast(entity); + if (grenade && !grenade->StringValueExists("GrenadeName")) { + armoury.Grenades.push_back(&item); + } + } + } + auto preferredIndex = [](const std::vector& list, const char* name) { + for (size_t i = 0; i < list.size(); ++i) { + if (list[i].PresetName == name) { + return static_cast(i); + } + } + return 0; + }; + s_FactionModules.clear(); + s_FactionNames.clear(); + for (const Preset& unit: s_Units) { + if (std::find(s_FactionModules.begin(), s_FactionModules.end(), unit.ModuleID) == s_FactionModules.end()) { + s_FactionModules.push_back(unit.ModuleID); + s_FactionNames.push_back(unit.Module.substr(0, unit.Module.find(".rte"))); + } + } + for (size_t side = 0; side < s_AutoSides.size(); ++side) { + s_AutoSides[side].Faction = std::min(static_cast(side), static_cast(s_FactionModules.size()) - 1); + } + s_UnitChoice = preferredIndex(s_Units, "Soldier Light"); + s_BrainChoice = preferredIndex(s_Brains, "Brain Case"); + s_ItemChoice = preferredIndex(s_Items, "Frag Grenade"); + s_CatalogueBuilt = true; + } + + const std::vector& ListFor(Tool kind) { + switch (kind) { + case Tool::Brain: + return s_Brains; + case Tool::Item: + return s_Items; + case Tool::Structure: + return s_Structures; + default: + return s_Units; + } + } + + int& ChoiceFor(Tool kind) { + switch (kind) { + case Tool::Brain: + return s_BrainChoice; + case Tool::Item: + return s_ItemChoice; + case Tool::Structure: + return s_StructureChoice; + default: + return s_UnitChoice; + } + } + + const Preset* ChosenPreset(Tool kind, int choice) { + const std::vector& list = ListFor(kind); + return choice >= 0 && choice < static_cast(list.size()) ? &list[choice] : nullptr; + } +#pragma endregion + +#pragma region World helpers + MovableObject* CreateObject(const std::string& className, const std::string& presetName, int moduleID) { + const Entity* preset = g_PresetMan.GetEntityPreset(className, presetName, moduleID); + return preset ? dynamic_cast(preset->Clone()) : nullptr; + } + + MovableObject* CreateBaseObject(const char* className, const char* presetName) { + const Entity* preset = g_PresetMan.GetEntityPreset(className, presetName, "Base.rte"); + return preset ? dynamic_cast(preset->Clone()) : nullptr; + } + + void AddObject(MovableObject* object) { + if (Actor* actor = dynamic_cast(object)) { + g_MovableMan.AddActor(actor); + } else if (HeldDevice* device = dynamic_cast(object)) { + g_MovableMan.AddItem(device); + } else { + g_MovableMan.AddParticle(object); + } + } + + /// Whether an actor is a real unit on a side (not a door or other neutral scenery). + bool IsCombatant(const Actor* actor) { + return actor && actor->GetTeam() >= 0 && actor->GetTeam() < c_Sides && !actor->IsDead() && !dynamic_cast(actor) && actor->GetHealth() > 0.0F; + } + + Actor* NearestEnemy(const Actor* of) { + Actor* nearest = nullptr; + float nearestDistance = 0.0F; + for (Actor* actor: SandboxAccess::Actors()) { + if (actor == of || !IsCombatant(actor) || actor->GetTeam() == of->GetTeam()) { + continue; + } + float distance = g_SceneMan.ShortestDistance(of->GetPos(), actor->GetPos(), g_SceneMan.SceneWrapsX()).GetSqrMagnitude(); + if (!nearest || distance < nearestDistance) { + nearest = actor; + nearestDistance = distance; + } + } + return nearest; + } + + /// The actor (or, failing that, loose item) closest to a point, within reach. + MovableObject* ObjectUnder(const Vector& position, bool actorsOnly) { + MovableObject* found = nullptr; + float foundDistance = 24.0F * 24.0F; + for (Actor* actor: SandboxAccess::Actors()) { + float distance = g_SceneMan.ShortestDistance(position, actor->GetPos(), g_SceneMan.SceneWrapsX()).GetSqrMagnitude(); + if (distance < foundDistance) { + found = actor; + foundDistance = distance; + } + } + if (!found && !actorsOnly) { + foundDistance = 16.0F * 16.0F; + for (MovableObject* item: SandboxAccess::Items()) { + float distance = g_SceneMan.ShortestDistance(position, item->GetPos(), g_SceneMan.SceneWrapsX()).GetSqrMagnitude(); + if (distance < foundDistance) { + found = item; + foundDistance = distance; + } + } + } + return found; + } + + void GiveOrder(Actor* actor, Order order) { + if (!actor || dynamic_cast(actor) || actor->IsInGroup("Brains")) { + return; + } + actor->RemoveNumberValue(c_AttackTag); + switch (order) { + case Order::Attack: + actor->SetNumberValue(c_AttackTag, 1.0); + actor->ClearAIWaypoints(); + if (Actor* enemy = NearestEnemy(actor)) { + actor->AddAIMOWaypoint(enemy); + actor->SetAIMode(Actor::AIMODE_GOTO); + } else { + actor->SetAIMode(Actor::AIMODE_SENTRY); + } + break; + case Order::HuntBrains: + actor->SetAIMode(Actor::AIMODE_BRAINHUNT); + break; + case Order::Patrol: + actor->SetAIMode(Actor::AIMODE_PATROL); + break; + case Order::Rally: + actor->ClearAIWaypoints(); + if (int team = actor->GetTeam(); team >= 0 && team < c_Sides && s_RallySet[team]) { + actor->AddAISceneWaypoint(s_RallyPoints[team]); + actor->SetAIMode(Actor::AIMODE_GOTO); + } else { + actor->SetAIMode(Actor::AIMODE_SENTRY); + } + break; + case Order::Idle: + actor->SetAIMode(Actor::AIMODE_NONE); + break; + default: + actor->SetAIMode(Actor::AIMODE_SENTRY); + break; + } + } + + /// Units told to attack get a new target when theirs is gone, and go on guard when no enemies are left. + void RetargetAttackers() { + for (Actor* actor: SandboxAccess::Actors()) { + if (actor->GetNumberValue(c_AttackTag) <= 0.0 || actor->IsPlayerControlled() || !IsCombatant(actor) || actor->NumberValueExists("OnFire")) { + continue; + } + const MovableObject* target = actor->GetMOMoveTarget(); + const Actor* targetActor = target && g_MovableMan.ValidMO(target) ? dynamic_cast(target) : nullptr; + if (actor->GetAIMode() == Actor::AIMODE_GOTO && targetActor && IsCombatant(targetActor) && targetActor->GetTeam() != actor->GetTeam()) { + continue; + } + GiveOrder(actor, Order::Attack); + } + } + + void ActivateSide(int team) { + if (Activity* activity = g_ActivityMan.GetActivity(); activity && team >= 0 && team < c_Sides) { + activity->ForceSetTeamAsActive(team); + } + } +#pragma endregion + +#pragma region Actions + void Detonate(const char* presetName, const Vector& position) { + if (MovableObject* object = CreateBaseObject("TDExplosive", presetName)) { + object->SetPos(position); + MOSRotating* explosive = dynamic_cast(object); + AddObject(object); + if (explosive) { + explosive->GibThis(); + } + } + } + + void SpawnPuffs(const char* presetName, const Vector& position, int radius, int count) { + for (int i = 0; i < count; ++i) { + if (MovableObject* puff = CreateBaseObject("MOSParticle", presetName)) { + puff->SetPos(position + Vector((Random01() - 0.5F) * 2.0F * static_cast(radius), (Random01() - 0.5F) * 2.0F * static_cast(radius))); + puff->SetVel(Vector((Random01() - 0.5F) * 2.0F, (Random01() - 0.5F) * 2.0F)); + g_MovableMan.AddParticle(puff); + } + } + } + + /// Paints a disc of terrain material into the air, or digs one out when there's no material. + void PaintTerrain(const Vector& center, int radius, const char* materialName) { + SLTerrain* terrain = g_SceneMan.GetScene()->GetTerrain(); + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + int material = g_MaterialAir; + int color = ColorKeys::g_MaskColor; + int speckleColor = color; + if (materialName) { + const Material* found = g_SceneMan.GetMaterial(materialName); + if (!found || found->GetIndex() == g_MaterialAir) { + return; + } + material = found->GetIndex(); + Color materialColor = found->GetColor(); + materialColor.RecalculateIndex(); + color = materialColor.GetIndex(); + Color darker = materialColor; + darker.SetRGB(materialColor.GetR() * 4 / 5, materialColor.GetG() * 4 / 5, materialColor.GetB() * 4 / 5); + darker.RecalculateIndex(); + speckleColor = darker.GetIndex() > 1 ? darker.GetIndex() : color; + } + int centerX = center.GetFloorIntX(); + int centerY = center.GetFloorIntY(); + bool changed = false; + for (int dy = -radius; dy <= radius; ++dy) { + for (int dx = -radius; dx <= radius; ++dx) { + if (dx * dx + dy * dy > radius * radius) { + continue; + } + int x = centerX + dx; + int y = centerY + dy; + if (g_SceneMan.SceneWrapsX()) { + x = ((x % width) + width) % width; + } + if (x < 0 || y < 0 || x >= width || y >= height) { + continue; + } + int existing = terrain->GetMaterialPixel(x, y); + // Painting only fills air; digging removes anything but the indestructible edge of the world. + if (materialName ? existing != g_MaterialAir : (existing == g_MaterialAir || existing == g_MaterialOutOfBounds)) { + continue; + } + terrain->SetMaterialPixel(x, y, material); + // A little speckle, so painted ground isn't one flat colour. + terrain->SetFGColorPixel(x, y, (materialName && Random01() < 0.25F) ? speckleColor : color); + changed = true; + } + } + if (changed) { + terrain->AddUpdatedMaterialArea(Box(Vector(static_cast(centerX - radius), static_cast(centerY - radius)), static_cast(radius * 2 + 1), static_cast(radius * 2 + 1))); + // Liquid around the change may flow into it, and dug-out ground may be left hanging. + FluidSim::Disturb(center, static_cast(radius + 2)); + if (!materialName) { + TerrainCollapse::QueueCheck(center, static_cast(radius + 30)); + } + } + } + + /// A lightning strike: a jagged bolt from the sky to the first thing below the point, a flash, fire and harm where it lands, and thunder. + void StrikeLightning(const Vector& target) { + Vector ground = target; + for (int i = 0; i < 600 && g_SceneMan.GetTerrMatter(ground.GetFloorIntX(), ground.GetFloorIntY()) == g_MaterialAir && ground.m_Y < static_cast(g_SceneMan.GetSceneHeight() - 1); ++i) { + ground.m_Y += 1.0F; + } + float top = std::max(g_CameraMan.GetOffset(0).m_Y - 20.0F, 0.0F); + auto boltDot = [](const Vector& at) { + if (MovableObject* spark = CreateBaseObject("MOPixel", "Lightning Bolt Particle")) { + spark->SetPos(at); + g_MovableMan.AddParticle(spark); + } + }; + // The bolt: a few jagged segments, with a short side branch. + Vector from(ground.m_X + (Random01() - 0.5F) * 60.0F, top); + constexpr int segments = 9; + for (int segment = 1; segment <= segments; ++segment) { + float t = static_cast(segment) / static_cast(segments); + Vector to = segment == segments ? ground : Vector(Lerp(0.0F, 1.0F, from.m_X, ground.m_X, t) + (Random01() - 0.5F) * 26.0F, Lerp(0.0F, 1.0F, top, ground.m_Y, t)); + Vector step = to - from; + int dots = std::max(1, static_cast(step.GetMagnitude() / 2.0F)); + for (int dot = 0; dot < dots; ++dot) { + boltDot(from + step * (static_cast(dot) / static_cast(dots))); + } + if (segment == segments / 2) { + Vector branch = to; + for (int dot = 0; dot < 14; ++dot) { + branch += Vector(Random01() < 0.5F ? -2.0F : 2.0F, 2.0F); + boltDot(branch); + } + } + from = to; + } + if (SceneLighting* lighting = g_PostProcessMan.GetSceneLighting()) { + lighting->TriggerLightning(); + } + EffectsParticles::SpawnExplosion(ground, 900.0F); + TerrainFire::QueueIgniteArea(ground, 12.0F); + TerrainFire::QueueIgniteArea(ground, 6.0F); + for (Actor* actor: SandboxAccess::Actors()) { + float distance = g_SceneMan.ShortestDistance(ground, actor->GetPos(), g_SceneMan.SceneWrapsX()).GetMagnitude(); + if (distance < 30.0F) { + actor->SetHealth(actor->GetHealth() - 80.0F * (1.0F - distance / 30.0F)); + } + } + if (!s_Thunder) { + if (const Entity* preset = g_PresetMan.GetEntityPreset("SoundContainer", "Explosion Large", "Base.rte")) { + s_Thunder = dynamic_cast(preset->Clone()); + } + } + if (s_Thunder) { + s_Thunder->Play(ground); + } + } + + void GiveLoadout(Actor* actor, const Preset& unit, int loadout) { + if (loadout == 1) { + return; + } + if (loadout >= 2) { + if (size_t weapon = static_cast(loadout - 2); weapon < s_Weapons.size()) { + if (MovableObject* gun = CreateObject(s_Weapons[weapon]->ClassName, s_Weapons[weapon]->PresetName, s_Weapons[weapon]->ModuleID)) { + actor->AddInventoryItem(gun); + } + } + return; + } + // The faction's own kit, or the Coalition's for factions without guns of their own. + const FactionArmoury* armoury = &ArmouryOf(unit.ModuleID); + if (armoury->Primaries.empty()) { + armoury = &ArmouryOf(g_PresetMan.GetModuleID("Coalition.rte")); + } + auto pick = [](const std::vector& from) { return from.empty() ? nullptr : from[std::min(from.size() - 1, static_cast(Random01() * static_cast(from.size())))]; }; + for (const Preset* item: {pick(armoury->Primaries), pick(armoury->Secondaries), Random01() < 0.5F ? pick(armoury->Grenades) : nullptr}) { + if (item) { + if (MovableObject* object = CreateObject(item->ClassName, item->PresetName, item->ModuleID)) { + actor->AddInventoryItem(object); + } + } + } + } + + Actor* GetRef(const UnitRef& ref) { return ref.Unit && g_MovableMan.IsActor(ref.Unit) && ref.Unit->GetUniqueID() == ref.ID ? ref.Unit : nullptr; } + + UnitRef MakeRef(Actor* actor) { return {actor, actor ? actor->GetUniqueID() : 0}; } + + /// Makes a unit ready to go: armed, on a side, run by the AI, with orders to follow once it's in the world. + Actor* CreateUnit(const Preset& preset, int team, int loadout, Order order) { + Actor* actor = dynamic_cast(CreateObject(preset.ClassName, preset.PresetName, preset.ModuleID)); + if (!actor) { + return nullptr; + } + GiveLoadout(actor, preset, loadout); + actor->SetTeam(team); + actor->SetControllerMode(Controller::CIM_AI); + switch (order) { + case Order::Attack: + // Gets its target once it's out among the enemy. + actor->SetNumberValue(c_AttackTag, 1.0); + actor->SetAIMode(Actor::AIMODE_SENTRY); + break; + case Order::HuntBrains: + actor->SetAIMode(Actor::AIMODE_BRAINHUNT); + break; + case Order::Patrol: + actor->SetAIMode(Actor::AIMODE_PATROL); + break; + case Order::Rally: + if (team >= 0 && team < c_Sides && s_RallySet[team]) { + actor->AddAISceneWaypoint(s_RallyPoints[team]); + actor->SetAIMode(Actor::AIMODE_GOTO); + } + break; + case Order::Idle: + actor->SetAIMode(Actor::AIMODE_NONE); + break; + default: + actor->SetAIMode(Actor::AIMODE_SENTRY); + break; + } + return actor; + } + + /// Sends units in by dropship or rocket, which comes down from the sky over a point, unloads and leaves. Returns what the units cost. + float DropUnits(std::vector& units, int team, float x, int craft) { + const CraftChoice& choice = c_Crafts[std::clamp(craft, 0, static_cast(std::size(c_Crafts)) - 1)]; + ACraft* ship = dynamic_cast(CreateBaseObject(choice.ClassName, choice.PresetName)); + float cost = 0.0F; + if (!ship) { + for (Actor* unit: units) { + delete unit; + } + units.clear(); + return cost; + } + ActivateSide(team); + for (Actor* unit: units) { + cost += unit->GetTotalValue(unit->GetModuleID(), 1.0F); + ship->AddInventoryItem(unit); + } + units.clear(); + bool fromBelow = g_SceneMan.GetTerrain() && g_SceneMan.GetTerrain()->GetOrbitDirection() == Directions::Down; + ship->SetPos(Vector(x, fromBelow ? static_cast(g_SceneMan.GetSceneHeight()) : 0.0F)); + ship->SetTeam(team); + ship->SetControllerMode(Controller::CIM_AI); + ship->SetAIMode(Actor::AIMODE_DELIVER); + ship->ResetAllTimers(); + g_MovableMan.AddActor(ship); + return cost; + } + + void SpawnUnits(const Stroke& stroke, bool brain) { + const Preset* preset = ChosenPreset(brain ? Tool::Brain : Tool::Unit, stroke.Choice); + if (!preset) { + return; + } + ActivateSide(stroke.Team); + int count = brain ? 1 : stroke.Count; + for (int i = 0; i < count; ++i) { + Actor* actor = dynamic_cast(CreateObject(preset->ClassName, preset->PresetName, preset->ModuleID)); + if (!actor) { + return; + } + if (!brain) { + GiveLoadout(actor, *preset, stroke.Loadout); + } + // A squad spreads out sideways from the click. + float spread = (static_cast(i) - static_cast(count - 1) * 0.5F) * 16.0F; + actor->SetPos(stroke.Position + Vector(spread, 0.0F)); + actor->SetTeam(stroke.Team); + actor->SetControllerMode(Controller::CIM_AI); + actor->SetHFlipped(stroke.Position.m_X > g_CameraMan.GetOffset(0).m_X + static_cast(g_FrameMan.GetPlayerScreenWidth()) * 0.5F); + g_MovableMan.AddActor(actor); + GiveOrder(actor, brain ? Order::Hold : stroke.Orders); + } + } + + void DropSquad(const Stroke& stroke) { + const Preset* preset = ChosenPreset(Tool::Unit, stroke.Choice); + if (!preset) { + return; + } + std::vector units; + for (int i = 0; i < stroke.Count; ++i) { + if (Actor* unit = CreateUnit(*preset, stroke.Team, stroke.Loadout, stroke.Orders)) { + units.push_back(unit); + } + } + DropUnits(units, stroke.Team, stroke.Position.m_X, stroke.Craft); + } + + void SpawnItem(const Stroke& stroke) { + const Preset* preset = ChosenPreset(Tool::Item, stroke.Choice); + MovableObject* item = preset ? CreateObject(preset->ClassName, preset->PresetName, preset->ModuleID) : nullptr; + if (!item) { + return; + } + item->SetPos(stroke.Position); + if (stroke.LitGrenade) { + if (TDExplosive* explosive = dynamic_cast(item)) { + explosive->Activate(); + } + } + AddObject(item); + } + + Vector StructureCorner(const Preset& preset, const Vector& center, bool snap) { + Vector topLeft = center - Vector(static_cast(preset.Width) * 0.5F, static_cast(preset.Height) * 0.5F); + if (snap) { + topLeft.SetXY(std::round(topLeft.m_X / 24.0F) * 24.0F, std::round(topLeft.m_Y / 24.0F) * 24.0F); + } + return topLeft; + } + + void PlaceStructure(const Stroke& stroke) { + const Preset* preset = ChosenPreset(Tool::Structure, stroke.Choice); + const Entity* entity = preset ? g_PresetMan.GetEntityPreset(preset->ClassName, preset->PresetName, preset->ModuleID) : nullptr; + SceneObject* object = entity ? dynamic_cast(entity->Clone()) : nullptr; + if (!object) { + return; + } + if (dynamic_cast(object)) { + // Position plus the bitmap offset is the top left corner. + object->SetPos(StructureCorner(*preset, stroke.Position, stroke.Count > 0) - Vector(preset->OffsetX, preset->OffsetY)); + } else { + // Doors and other moving bunker parts belong to a side, and open for it. + object->SetPos(stroke.Position); + object->SetTeam(stroke.Team); + ActivateSide(stroke.Team); + } + g_SceneMan.AddSceneObject(object); + } + + void TakeControl(const Vector& position) { + Actor* actor = dynamic_cast(ObjectUnder(position, true)); + GameActivity* game = CurrentGame(); + if (!actor || !game || !actor->IsPlayerControllable()) { + return; + } + if (game->SwitchToActor(actor, Players::PlayerOne, actor->GetTeam())) { + game->SetViewState(Activity::ViewState::Normal, Players::PlayerOne); + s_Possessed = actor; + Sandbox::Toggle(); + g_ConsoleMan.PrintString("SANDBOX: You're controlling " + actor->GetPresetName() + ". Press F7 to go back to the god view."); + } + } + + void ReleaseControl() { + if (GameActivity* game = CurrentGame()) { + game->LoseControlOfActor(Players::PlayerOne); + game->SetViewState(Activity::ViewState::Observe, Players::PlayerOne); + } + s_Possessed = nullptr; + } + + void SelectInBox(const Vector& cornerA, const Vector& cornerB) { + s_Selected.clear(); + float left = std::min(cornerA.m_X, cornerB.m_X); + float right = std::max(cornerA.m_X, cornerB.m_X); + float top = std::min(cornerA.m_Y, cornerB.m_Y); + float bottom = std::max(cornerA.m_Y, cornerB.m_Y); + for (Actor* actor: SandboxAccess::Actors()) { + const Vector& position = actor->GetPos(); + if (IsCombatant(actor) && !actor->IsInGroup("Brains") && position.m_X >= left && position.m_X <= right && position.m_Y >= top && position.m_Y <= bottom) { + s_Selected.push_back(MakeRef(actor)); + } + } + } + + /// The selected units move to a point, or attack the unit there. + void CommandSelected(const Vector& position) { + Actor* target = dynamic_cast(ObjectUnder(position, true)); + bool attack = target && IsCombatant(target) && std::none_of(s_Selected.begin(), s_Selected.end(), [target](const UnitRef& ref) { return ref.Unit == target; }); + for (const UnitRef& ref: s_Selected) { + if (Actor* unit = GetRef(ref); unit && !unit->IsPlayerControlled()) { + unit->RemoveNumberValue(c_AttackTag); + unit->ClearAIWaypoints(); + if (attack) { + unit->AddAIMOWaypoint(target); + } else { + unit->AddAISceneWaypoint(position); + } + unit->SetAIMode(Actor::AIMODE_GOTO); + } + } + } + + /// The closest pair of enemies anywhere: where the fighting is. + void FindAction() { + s_ActionSpotValid = false; + float best = 0.0F; + std::deque& actors = SandboxAccess::Actors(); + for (size_t i = 0; i < actors.size(); ++i) { + if (!IsCombatant(actors[i])) { + continue; + } + for (size_t j = i + 1; j < actors.size(); ++j) { + if (!IsCombatant(actors[j]) || actors[j]->GetTeam() == actors[i]->GetTeam()) { + continue; + } + Vector between = g_SceneMan.ShortestDistance(actors[i]->GetPos(), actors[j]->GetPos(), g_SceneMan.SceneWrapsX()); + float distance = between.GetSqrMagnitude(); + if (!s_ActionSpotValid || distance < best) { + best = distance; + s_ActionSpot = actors[i]->GetPos() + between * 0.5F; + s_ActionSpotValid = true; + } + } + } + } + + /// The faction's units an auto battle can buy: soldiers mostly, the odd crab. + std::vector FactionUnits(int moduleID) { + std::vector units; + for (const Preset& unit: s_Units) { + const Entity* entity = unit.ModuleID == moduleID ? g_PresetMan.GetEntityPreset(unit.ClassName, unit.PresetName, unit.ModuleID) : nullptr; + if (entity && !entity->IsInGroup("Actors - Turrets")) { + units.push_back(&unit); + } + } + return units; + } + + float AutoLaneX(int side) { + if (s_RallySet[side]) { + return s_RallyPoints[side].m_X; + } + static constexpr float lanes[c_Sides] = {-0.7F, 0.7F, -0.35F, 0.35F}; + Vector lane = s_AutoCenter + Vector(lanes[side] * static_cast(g_FrameMan.GetPlayerScreenWidth()), 0.0F); + g_SceneMan.WrapPosition(lane); + return lane.m_X; + } + + /// Each side in an auto battle buys a wave every so often with what's left of its budget and sends it in to attack, until one side is left. + void UpdateAutoBattle() { + if (!s_AutoRunning) { + return; + } + long long now = g_TimerMan.GetSimUpdateCount(); + for (int side = 0; side < c_Sides; ++side) { + AutoSide& autoSide = s_AutoSides[side]; + if (!autoSide.Active || autoSide.Broke || now < autoSide.NextWave || s_FactionModules.empty()) { + continue; + } + autoSide.NextWave = now + 900; + std::vector choices = FactionUnits(s_FactionModules[std::clamp(autoSide.Faction, 0, static_cast(s_FactionModules.size()) - 1)]); + float left = static_cast(autoSide.Budget) - autoSide.Spent; + float waveBudget = std::min(left, 900.0F); + std::vector wave; + float waveCost = 0.0F; + for (int attempt = 0; attempt < 12 && wave.size() < 5 && !choices.empty(); ++attempt) { + const Preset* pick = choices[std::min(choices.size() - 1, static_cast(Random01() * static_cast(choices.size())))]; + Actor* unit = CreateUnit(*pick, side, 0, Order::Attack); + float cost = unit ? unit->GetTotalValue(unit->GetModuleID(), 1.0F) : 0.0F; + if (unit && waveCost + cost <= waveBudget) { + wave.push_back(unit); + waveCost += cost; + } else { + delete unit; + } + } + if (wave.empty()) { + autoSide.Broke = true; + continue; + } + autoSide.Sent += static_cast(wave.size()); + autoSide.Spent += DropUnits(wave, side, AutoLaneX(side), 0); + } + // One side left standing wins. + if (now % 60 == 0) { + int standing = 0; + int lastStanding = -1; + bool anySent = false; + for (int side = 0; side < c_Sides; ++side) { + const AutoSide& autoSide = s_AutoSides[side]; + if (!autoSide.Active) { + continue; + } + anySent = anySent || autoSide.Sent > 0; + if (!autoSide.Broke || Sandbox::CountUnits(side) > 0) { + ++standing; + lastStanding = side; + } + } + if (anySent && standing <= 1) { + s_AutoRunning = false; + s_AutoWinner = standing == 1 ? lastStanding : -1; + std::string result = s_AutoWinner >= 0 ? std::string(c_SideNames[s_AutoWinner]) + " wins!" : std::string("It's a draw!"); + g_FrameMan.SetScreenText(result, 0, 0, 6000, true); + g_ConsoleMan.PrintString("SANDBOX: Auto battle over. " + result); + } + } + } + + void Apply(const Stroke& stroke) { + const Vector& at = stroke.Position; + float radius = static_cast(stroke.Radius); + switch (stroke.Kind) { + case Tool::Possess: + TakeControl(at); + break; + case Tool::Release: + ReleaseControl(); + break; + case Tool::Remove: + if (MovableObject* object = ObjectUnder(at, false)) { + object->SetToDelete(true); + } + break; + case Tool::RallyPoint: + if (stroke.Team >= 0 && stroke.Team < c_Sides) { + s_RallyPoints[stroke.Team] = at; + s_RallySet[stroke.Team] = true; + } + break; + case Tool::Unit: + SpawnUnits(stroke, false); + break; + case Tool::Brain: + SpawnUnits(stroke, true); + break; + case Tool::Item: + SpawnItem(stroke); + break; + case Tool::Drop: + DropSquad(stroke); + break; + case Tool::Select: + SelectInBox(stroke.Position, stroke.Position2); + break; + case Tool::Command: + CommandSelected(at); + break; + case Tool::OrderSelected: + for (const UnitRef& ref: s_Selected) { + if (Actor* unit = GetRef(ref); unit && !unit->IsPlayerControlled()) { + GiveOrder(unit, stroke.Orders); + } + } + break; + case Tool::Follow: + s_FollowTarget = MakeRef(dynamic_cast(ObjectUnder(at, true))); + s_FollowAction = false; + break; + case Tool::Structure: + PlaceStructure(stroke); + break; + case Tool::OrderSide: + for (Actor* actor: SandboxAccess::Actors()) { + if (actor->GetTeam() == stroke.Team && IsCombatant(actor) && !actor->IsPlayerControlled()) { + GiveOrder(actor, stroke.Orders); + } + } + break; + case Tool::RemoveSide: + for (Actor* actor: SandboxAccess::Actors()) { + if (actor->GetTeam() == stroke.Team && !dynamic_cast(actor)) { + actor->SetToDelete(true); + } + } + break; + case Tool::Fire: + TerrainFire::QueueIgniteArea(at, radius); + // Something to see even over rock, which doesn't burn. + if (MovableObject* flame = CreateBaseObject("MOSParticle", "Flame Hurt Short")) { + flame->SetPos(at + Vector((Random01() - 0.5F) * radius, (Random01() - 0.5F) * radius)); + flame->SetVel(Vector((Random01() - 0.5F) * 1.5F, -1.0F - Random01())); + g_MovableMan.AddParticle(flame); + } + break; + case Tool::Water: + FluidSim::Pour(at, radius * 0.5F, "Water"); + break; + case Tool::Lava: + FluidSim::Pour(at, radius * 0.5F, "Lava"); + break; + case Tool::Acid: + FluidSim::Pour(at, radius * 0.5F, "Acid"); + break; + case Tool::Oil: + FluidSim::Pour(at, radius * 0.5F, "Oil"); + break; + case Tool::Smoke: + SpawnPuffs("Thick Smoke Ball", at, stroke.Radius, 2); + break; + case Tool::ToxicGas: + SpawnPuffs("Toxic Gas Ball", at, stroke.Radius, 2); + // The invisible cloud that does the harm, now and then so painting doesn't stack hundreds of them. + if (Random01() < 0.15F) { + SpawnPuffs("Toxic Gas Cloud", at, 0, 1); + } + break; + case Tool::Dig: + PaintTerrain(at, stroke.Radius, nullptr); + break; + case Tool::Earth: + PaintTerrain(at, stroke.Radius, "Earth"); + break; + case Tool::Sand: + PaintTerrain(at, stroke.Radius, "Sand"); + break; + case Tool::Grass: + PaintTerrain(at, stroke.Radius, "Grass"); + break; + case Tool::Wood: + PaintTerrain(at, stroke.Radius, "Wood"); + break; + case Tool::Concrete: + PaintTerrain(at, stroke.Radius, "Concrete"); + break; + case Tool::Grenade: + Detonate("Frag Grenade", at); + break; + case Tool::BigBomb: + Detonate("Standard Bomb", at); + break; + case Tool::Napalm: + Detonate("Napalm Bomb", at); + break; + case Tool::Lightning: + StrikeLightning(at); + break; + default: + break; + } + } + + void QueueStroke(Tool kind, const Vector& position) { + Stroke stroke; + stroke.Kind = kind; + stroke.Position = position; + stroke.Radius = s_Radius; + stroke.Choice = ChoiceFor(kind); + stroke.Team = s_Team; + stroke.Orders = static_cast(s_Order); + stroke.Loadout = s_Loadout; + stroke.Count = kind == Tool::Structure ? (s_SnapToGrid ? 1 : 0) : s_SquadSize; + stroke.LitGrenade = s_LitGrenade; + stroke.Craft = s_Craft; + s_Queue.push_back(stroke); + } +#pragma endregion + +#pragma region Window + void UpdateFreeCamera() { + if (!s_FreeCamera || !InGame()) { + s_FreeCameraStarted = false; + return; + } + if (s_CameraWarmupFrames > 0) { + --s_CameraWarmupFrames; + return; + } + if (!s_FreeCameraStarted) { + s_FreeCameraStarted = true; + s_CameraCenter = g_CameraMan.GetOffset(0) + Vector(static_cast(g_FrameMan.GetPlayerScreenWidth()) * 0.5F, static_cast(g_FrameMan.GetPlayerScreenHeight()) * 0.5F); + } + ImGuiIO& io = ImGui::GetIO(); + bool movedByHand = false; + if (!io.WantCaptureMouse && ImGui::IsMouseDown(ImGuiMouseButton_Right)) { + s_CameraCenter -= Vector(io.MouseDelta.x, io.MouseDelta.y) * ScenePixelsPerWindowPixel(); + movedByHand = io.MouseDelta.x != 0.0F || io.MouseDelta.y != 0.0F; + } + if (!io.WantCaptureKeyboard) { + float keySpeed = 400.0F * io.DeltaTime * (ImGui::IsKeyDown(ImGuiKey_LeftShift) ? 3.0F : 1.0F); + bool left = ImGui::IsKeyDown(ImGuiKey_LeftArrow) || ImGui::IsKeyDown(ImGuiKey_A); + bool right = ImGui::IsKeyDown(ImGuiKey_RightArrow) || ImGui::IsKeyDown(ImGuiKey_D); + bool up = ImGui::IsKeyDown(ImGuiKey_UpArrow) || ImGui::IsKeyDown(ImGuiKey_W); + bool down = ImGui::IsKeyDown(ImGuiKey_DownArrow) || ImGui::IsKeyDown(ImGuiKey_S); + s_CameraCenter.m_X += (right ? keySpeed : 0.0F) - (left ? keySpeed : 0.0F); + s_CameraCenter.m_Y += (down ? keySpeed : 0.0F) - (up ? keySpeed : 0.0F); + movedByHand = movedByHand || left || right || up || down; + } + if (movedByHand) { + s_FollowTarget = UnitRef(); + s_FollowAction = false; + } + if (Actor* followed = GetRef(s_FollowTarget)) { + s_CameraCenter += g_SceneMan.ShortestDistance(s_CameraCenter, followed->GetPos(), g_SceneMan.SceneWrapsX()) * std::min(1.0F, io.DeltaTime * 8.0F); + } else if (s_FollowAction && s_ActionSpotValid) { + s_CameraCenter += g_SceneMan.ShortestDistance(s_CameraCenter, s_ActionSpot, g_SceneMan.SceneWrapsX()) * std::min(1.0F, io.DeltaTime * 2.0F); + } + g_SceneMan.WrapPosition(s_CameraCenter); + g_SceneMan.ForceBounds(s_CameraCenter); + g_CameraMan.SetScrollTarget(s_CameraCenter, 1.0F, 0); + // The god view's own camera follows along, so the two don't fight. + if (GameActivity* game = CurrentGame(); game && Sandbox::IsGodMode()) { + game->SetObservationTarget(s_CameraCenter, Players::PlayerOne); + } + } + + void ToolButtons(std::initializer_list tools) { + int column = 0; + for (Tool kind: tools) { + if (column++ % 4 != 0) { + ImGui::SameLine(); + } + ImGui::RadioButton(c_Tools[ToolIndex(kind)].Name, &s_ToolIndex, ToolIndex(kind)); + } + } + + void SideChooser() { + for (int side = 0; side < c_Sides; ++side) { + if (side > 0) { + ImGui::SameLine(); + } + ImGui::PushStyleColor(ImGuiCol_Text, c_SideColors[side]); + ImGui::RadioButton(c_SideNames[side], &s_Team, side); + ImGui::PopStyleColor(); + } + } + + void PresetList(Tool kind) { + const std::vector& list = ListFor(kind); + int& choice = ChoiceFor(kind); + ImGui::SetNextItemWidth(-1.0F); + ImGui::InputTextWithHint("##filter", "Search...", s_Filter, sizeof(s_Filter)); + if (ImGui::BeginListBox("##presets", ImVec2(-1.0F, ImGui::GetTextLineHeightWithSpacing() * 8.0F))) { + for (int i = 0; i < static_cast(list.size()); ++i) { + if (!ContainsIgnoringCase(list[i].Label, s_Filter)) { + continue; + } + if (ImGui::Selectable(list[i].Label.c_str(), i == choice)) { + choice = i; + } + if (i == choice && ImGui::IsWindowAppearing()) { + ImGui::SetScrollHereY(); + } + } + ImGui::EndListBox(); + } + } + + void LoadoutChooser() { + const char* current = s_Loadout == 0 ? "Faction default" : (s_Loadout == 1 ? "Unarmed" : (s_Loadout - 2 < static_cast(s_Weapons.size()) ? s_Weapons[s_Loadout - 2]->Label.c_str() : "?")); + if (ImGui::BeginCombo("Loadout", current)) { + if (ImGui::Selectable("Faction default", s_Loadout == 0)) { + s_Loadout = 0; + } + if (ImGui::Selectable("Unarmed", s_Loadout == 1)) { + s_Loadout = 1; + } + for (int i = 0; i < static_cast(s_Weapons.size()); ++i) { + if (ImGui::Selectable(s_Weapons[i]->Label.c_str(), s_Loadout == i + 2)) { + s_Loadout = i + 2; + } + } + ImGui::EndCombo(); + } + } + + void DrawCursor() { + ImGuiIO& io = ImGui::GetIO(); + const ToolInfo& tool = CurrentTool(); + ImDrawList* drawList = ImGui::GetForegroundDrawList(); + float scale = ScenePixelsPerWindowPixel(); + ImU32 white = IM_COL32(255, 255, 255, 170); + std::string label = tool.Name; + if (tool.Kind == Tool::Structure) { + if (const Preset* preset = ChosenPreset(Tool::Structure, s_StructureChoice); preset && preset->Width > 0) { + // The footprint, where it will land. + Vector corner = StructureCorner(*preset, MouseScenePosition(), s_SnapToGrid) - g_CameraMan.GetOffset(0); + ImVec2 topLeft(corner.m_X / scale, corner.m_Y / scale); + drawList->AddRect(topLeft, ImVec2(topLeft.x + static_cast(preset->Width) / scale, topLeft.y + static_cast(preset->Height) / scale), white, 0.0F, 0, 1.5F); + } + } else { + float outline = tool.UsesRadius ? static_cast(s_Radius) / scale : 6.0F; + drawList->AddCircle(io.MousePos, std::max(outline, 3.0F), tool.Kind == Tool::Unit || tool.Kind == Tool::Brain || tool.Kind == Tool::RallyPoint ? c_SideColors[s_Team] : white, 0, 1.5F); + } + if (const Preset* preset = (tool.Kind == Tool::Unit || tool.Kind == Tool::Brain || tool.Kind == Tool::Item || tool.Kind == Tool::Structure) ? ChosenPreset(tool.Kind, ChoiceFor(tool.Kind)) : nullptr) { + label = preset->PresetName; + if (tool.Kind == Tool::Unit && s_SquadSize > 1) { + label += " x" + std::to_string(s_SquadSize); + } + } + drawList->AddText(ImVec2(io.MousePos.x + 14.0F, io.MousePos.y - 8.0F), IM_COL32(255, 255, 255, 220), label.c_str()); + } + + ImVec2 ToScreen(const Vector& scenePosition) { + Vector onScreen = g_SceneMan.ShortestDistance(g_CameraMan.GetOffset(0), scenePosition, g_SceneMan.SceneWrapsX()); + float scale = ScenePixelsPerWindowPixel(); + return ImVec2(onScreen.m_X / scale, onScreen.m_Y / scale); + } + + /// Rings over selected units, and a marker over the followed one. + void DrawSelection() { + ImDrawList* drawList = ImGui::GetBackgroundDrawList(); + float scale = ScenePixelsPerWindowPixel(); + for (const UnitRef& ref: s_Selected) { + if (const Actor* unit = GetRef(ref)) { + ImVec2 at = ToScreen(unit->GetPos()); + int team = std::clamp(unit->GetTeam(), 0, c_Sides - 1); + drawList->AddCircle(at, std::max(unit->GetRadius() / scale, 8.0F), c_SideColors[team], 0, 2.0F); + } + } + if (const Actor* followed = GetRef(s_FollowTarget)) { + ImVec2 at = ToScreen(followed->GetPos() - Vector(0.0F, followed->GetRadius() + 8.0F)); + drawList->AddTriangleFilled(ImVec2(at.x - 6.0F, at.y - 8.0F), ImVec2(at.x + 6.0F, at.y - 8.0F), ImVec2(at.x, at.y), IM_COL32(255, 255, 255, 230)); + } + } + + /// Flags marking each side's rally point. + void DrawRallyPoints() { + ImDrawList* drawList = ImGui::GetBackgroundDrawList(); + float scale = ScenePixelsPerWindowPixel(); + for (int side = 0; side < c_Sides; ++side) { + if (!s_RallySet[side]) { + continue; + } + Vector onScreen = g_SceneMan.ShortestDistance(g_CameraMan.GetOffset(0), s_RallyPoints[side], g_SceneMan.SceneWrapsX()); + ImVec2 base(onScreen.m_X / scale, onScreen.m_Y / scale); + drawList->AddLine(base, ImVec2(base.x, base.y - 26.0F), IM_COL32(230, 230, 230, 220), 2.0F); + drawList->AddTriangleFilled(ImVec2(base.x, base.y - 26.0F), ImVec2(base.x + 16.0F, base.y - 21.0F), ImVec2(base.x, base.y - 16.0F), c_SideColors[side]); + } + } + + void SideStatus() { + std::array counts{}; + for (const Actor* actor: SandboxAccess::Actors()) { + if (IsCombatant(actor)) { + counts[actor->GetTeam()]++; + } + } + for (int side = 0; side < c_Sides; ++side) { + if (side > 0) { + ImGui::SameLine(); + } + ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(c_SideColors[side]), "%s %d", c_SideNames[side], counts[side]); + } + } +#pragma endregion +} // namespace + +bool Sandbox::Do(const std::string& toolName, const Vector& position, int team, int order, int count, const std::string& presetName) { + if (!InGame()) { + return false; + } + if (!s_CatalogueBuilt) { + BuildCatalogue(); + } + Stroke stroke; + stroke.Position = position; + stroke.Team = std::clamp(team, 0, c_Sides - 1); + stroke.Orders = static_cast(std::clamp(order, 0, static_cast(Order::Idle))); + stroke.Count = std::max(count, 1); + stroke.Radius = std::max(count, 1); + if (ContainsIgnoringCase(toolName, "Orders") && toolName.size() == 6) { + stroke.Kind = Tool::OrderSide; + s_Queue.push_back(stroke); + return true; + } + if (ContainsIgnoringCase(toolName, "Select") && toolName.size() == 6) { + // A box of half-size count around the point. + stroke.Kind = Tool::Select; + stroke.Position = position - Vector(static_cast(count), static_cast(count)); + stroke.Position2 = position + Vector(static_cast(count), static_cast(count)); + s_Queue.push_back(stroke); + return true; + } + int toolIndex = -1; + for (int i = 0; i < c_ToolCount; ++i) { + std::string name = c_Tools[i].Name; + if (name.size() == toolName.size() && ContainsIgnoringCase(name, toolName.c_str())) { + toolIndex = i; + } + } + if (toolIndex < 0) { + return false; + } + stroke.Kind = c_Tools[toolIndex].Kind; + if (stroke.Kind == Tool::Unit || stroke.Kind == Tool::Drop || stroke.Kind == Tool::Brain || stroke.Kind == Tool::Item || stroke.Kind == Tool::Structure) { + const std::vector& list = ListFor(stroke.Kind); + auto found = std::find_if(list.begin(), list.end(), [&presetName](const Preset& preset) { return preset.PresetName == presetName; }); + if (found == list.end()) { + return false; + } + stroke.Choice = static_cast(found - list.begin()); + if (stroke.Kind == Tool::Structure) { + stroke.Count = 1; + } + } + s_Queue.push_back(stroke); + return true; +} + +void Sandbox::SetAutoBattleSide(int team, const std::string& faction, int budget) { + if (!s_CatalogueBuilt && InGame()) { + BuildCatalogue(); + } + if (team < 0 || team >= c_Sides) { + return; + } + AutoSide& autoSide = s_AutoSides[team]; + autoSide.Active = budget > 0; + autoSide.Budget = budget; + for (size_t i = 0; i < s_FactionNames.size(); ++i) { + if (s_FactionNames[i] == faction || s_FactionNames[i] + ".rte" == faction) { + autoSide.Faction = static_cast(i); + } + } +} + +void Sandbox::SetAIPaused(bool paused) { + Controller::SetAIPaused(paused); +} + +void Sandbox::StartAutoBattle() { + if (!InGame()) { + return; + } + if (!s_CatalogueBuilt) { + BuildCatalogue(); + } + s_AutoCenter = g_CameraMan.GetOffset(0) + Vector(static_cast(g_FrameMan.GetPlayerScreenWidth()) * 0.5F, static_cast(g_FrameMan.GetPlayerScreenHeight()) * 0.5F); + long long now = g_TimerMan.GetSimUpdateCount(); + for (int side = 0; side < c_Sides; ++side) { + AutoSide& autoSide = s_AutoSides[side]; + autoSide.Spent = 0.0F; + autoSide.Sent = 0; + autoSide.Broke = false; + // Staggered, so the first ships don't all arrive at once. + autoSide.NextWave = now + side * 60; + } + s_AutoWinner = -2; + s_AutoRunning = true; +} + +bool Sandbox::SetBuildMode(bool build) { + GameActivity* game = CurrentGame(); + if (!game || !InGame()) { + return false; + } + if (build && s_Possessed) { + // Building is done from the god view. + ReleaseControl(); + } + game->SetFreeBuildMode(build); + if (build) { + s_Open = false; + } + return game->IsFreeBuildMode(); +} + +int Sandbox::CountUnits(int team) { + int count = 0; + for (const Actor* actor: SandboxAccess::Actors()) { + if (IsCombatant(actor) && actor->GetTeam() == team && !dynamic_cast(actor)) { + ++count; + } + } + return count; +} + +bool Sandbox::IsGodMode() { + const Activity* activity = g_ActivityMan.GetActivity(); + return activity && InGame() && activity->GetPresetName() == "Sandbox"; +} + +bool Sandbox::CapturesWorldClicks() { + return s_Open && CurrentTool().Kind != Tool::None && InGame() && !ImGui::GetIO().WantCaptureMouse; +} + +void Sandbox::DrawGUI() { + // A new Sandbox game opens the god view: the window and the free camera. + if (IsGodMode()) { + if (s_GodActivity != g_ActivityMan.GetActivity()) { + s_GodActivity = g_ActivityMan.GetActivity(); + s_Open = true; + s_FreeCamera = true; + s_FreeCameraStarted = false; + s_CameraWarmupFrames = 30; + s_Possessed = nullptr; + s_RallySet.fill(false); + s_Selected.clear(); + s_FollowTarget = UnitRef(); + s_AutoRunning = false; + s_AutoWinner = -2; + s_ToolIndex = ToolIndex(Tool::Unit); + } + } else { + s_GodActivity = nullptr; + } + if (GameActivity* game = CurrentGame(); s_Open && game && game->IsFreeBuildMode()) { + game->SetFreeBuildMode(false); + } + if (s_Open && s_Possessed) { + // Back to the god view. + Stroke release; + release.Kind = Tool::Release; + s_Queue.push_back(release); + s_Possessed = nullptr; + s_FreeCameraStarted = false; + } + if (Controller::IsAIPaused() && InGame()) { + // A reminder that nobody will move until it's resumed. + const char* banner = "AI PAUSED"; + ImDrawList* drawList = ImGui::GetForegroundDrawList(); + ImVec2 size = ImGui::CalcTextSize(banner); + float scale = 1.6F; + ImVec2 at((ImGui::GetIO().DisplaySize.x - size.x * scale) * 0.5F, 36.0F); + drawList->AddRectFilled(ImVec2(at.x - 10.0F, at.y - 4.0F), ImVec2(at.x + size.x * scale + 10.0F, at.y + size.y * scale + 4.0F), IM_COL32(0, 0, 0, 150), 4.0F); + drawList->AddText(ImGui::GetFont(), ImGui::GetFontSize() * scale, at, IM_COL32(255, 210, 80, 255), banner); + } + if (!s_Open) { + s_FreeCameraStarted = false; + return; + } + if (InGame() && !s_CatalogueBuilt) { + BuildCatalogue(); + } + UpdateFreeCamera(); + if (InGame()) { + DrawRallyPoints(); + } + + ImGuiIO& io = ImGui::GetIO(); + // Paint or spawn with the left mouse button on the world. + if (CapturesWorldClicks()) { + const ToolInfo& tool = CurrentTool(); + Vector position = MouseScenePosition(); + if (tool.Kind == Tool::Command) { + // Drag a box to select units; click the ground to send them there, or an enemy to attack it. + if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) { + s_Dragging = true; + s_DragStart = io.MousePos; + } + } else if (tool.Interval <= 0.0F) { + if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) { + QueueStroke(tool.Kind, position); + } + } else if (ImGui::IsMouseDown(ImGuiMouseButton_Left)) { + s_StrokeTimer -= io.DeltaTime; + if (ImGui::IsMouseClicked(ImGuiMouseButton_Left) || s_StrokeTimer <= 0.0F) { + s_StrokeTimer = tool.Interval; + QueueStroke(tool.Kind, position); + } + } + DrawCursor(); + } + if (s_Dragging) { + ImVec2 now = io.MousePos; + ImGui::GetForegroundDrawList()->AddRect(ImVec2(std::min(s_DragStart.x, now.x), std::min(s_DragStart.y, now.y)), ImVec2(std::max(s_DragStart.x, now.x), std::max(s_DragStart.y, now.y)), IM_COL32(255, 255, 255, 200), 0.0F, 0, 1.5F); + if (!ImGui::IsMouseDown(ImGuiMouseButton_Left)) { + s_Dragging = false; + Stroke stroke; + float scale = ScenePixelsPerWindowPixel(); + Vector start = g_CameraMan.GetOffset(0) + Vector(s_DragStart.x, s_DragStart.y) * scale; + Vector end = g_CameraMan.GetOffset(0) + Vector(now.x, now.y) * scale; + if (std::abs(now.x - s_DragStart.x) + std::abs(now.y - s_DragStart.y) > 8.0F) { + stroke.Kind = Tool::Select; + stroke.Position = start; + stroke.Position2 = end; + } else { + stroke.Kind = Tool::Command; + stroke.Position = end; + g_SceneMan.WrapPosition(stroke.Position); + } + s_Queue.push_back(stroke); + } + } + if (InGame()) { + DrawSelection(); + } + + ImGui::SetNextWindowSize(ImVec2(430.0F, 0.0F), ImGuiCond_FirstUseEver); + ImGui::SetNextWindowPos(ImVec2(io.DisplaySize.x - 445.0F, 40.0F), ImGuiCond_FirstUseEver); + if (ImGui::Begin(IsGodMode() ? "Sandbox (F7)###Sandbox" : "Sandbox tools (F7)###Sandbox", &s_Open)) { + if (!InGame()) { + ImGui::TextWrapped("Start a game to use the sandbox. Pick \"Sandbox\" in the scenario menu for the full god mode."); + ImGui::End(); + return; + } + SideStatus(); + bool aiPaused = Controller::IsAIPaused(); + ImGui::PushStyleColor(ImGuiCol_Text, aiPaused ? IM_COL32(255, 210, 80, 255) : ImGui::GetColorU32(ImGuiCol_Text)); + if (ImGui::Checkbox("Pause AI (set things up, then let them loose)", &aiPaused)) { + Controller::SetAIPaused(aiPaused); + } + ImGui::PopStyleColor(); + ImGui::TextDisabled("Left click: use tool. Right drag / WASD: move camera."); + ToolButtons({Tool::None, Tool::Command, Tool::Follow, Tool::Possess}); + ToolButtons({Tool::Remove, Tool::RallyPoint}); + + if (ImGui::BeginTabBar("SandboxTabs")) { + if (ImGui::BeginTabItem("Spawn")) { + ToolButtons({Tool::Unit, Tool::Drop, Tool::Brain, Tool::Item}); + if (CurrentTool().Kind == Tool::Structure) { + s_ToolIndex = ToolIndex(Tool::Unit); + } + if (ImGui::Button("Build bunkers with the build menu", ImVec2(-1.0F, 0.0F))) { + // The game's own build menu, placing straight into the world. Choose Done in its pie menu (or press F7) to come back. + Sandbox::SetBuildMode(true); + } + Tool kind = CurrentTool().Kind; + if (kind == Tool::Unit || kind == Tool::Drop || kind == Tool::Brain || kind == Tool::Item || kind == Tool::Structure) { + PresetList(kind); + } + if (kind == Tool::Unit || kind == Tool::Drop || kind == Tool::Brain || kind == Tool::Structure || kind == Tool::RallyPoint) { + SideChooser(); + } + if (kind == Tool::Drop) { + ImGui::Combo("Craft", &s_Craft, "Dropship\0Rocket\0"); + } + if (kind == Tool::Unit || kind == Tool::Drop) { + ImGui::SliderInt("Squad size", &s_SquadSize, 1, 10); + LoadoutChooser(); + ImGui::Combo("Orders", &s_Order, c_OrderNames); + } else if (kind == Tool::Item) { + ImGui::Checkbox("Pull the pin (grenades)", &s_LitGrenade); + } else if (kind == Tool::Structure) { + ImGui::Checkbox("Snap to the bunker grid", &s_SnapToGrid); + } + ImGui::EndTabItem(); + } + if (ImGui::BeginTabItem("Orders")) { + ImGui::TextWrapped("Give every unit on a side new orders. Units told to attack find a new target when theirs dies."); + SideChooser(); + ImGui::Combo("Orders", &s_Order, c_OrderNames); + if (ImGui::Button("Give orders", ImVec2(-1.0F, 0.0F))) { + Stroke stroke; + stroke.Kind = Tool::OrderSide; + stroke.Team = s_Team; + stroke.Orders = static_cast(s_Order); + s_Queue.push_back(stroke); + } + if (ImGui::Button("Everyone attack!", ImVec2(-1.0F, 0.0F))) { + for (int side = 0; side < c_Sides; ++side) { + Stroke stroke; + stroke.Kind = Tool::OrderSide; + stroke.Team = side; + stroke.Orders = Order::Attack; + s_Queue.push_back(stroke); + } + } + if (ImGui::Button("Remove this side's units", ImVec2(-1.0F, 0.0F))) { + Stroke stroke; + stroke.Kind = Tool::RemoveSide; + stroke.Team = s_Team; + s_Queue.push_back(stroke); + } + ImGui::TextDisabled("Rally point: pick the tool above and click to place this side's flag."); + + ImGui::SeparatorText("Selected units"); + int selected = static_cast(std::count_if(s_Selected.begin(), s_Selected.end(), [](const UnitRef& ref) { return GetRef(ref) != nullptr; })); + ImGui::Text("%d selected. Use the Command tool: drag a box to select, click to move or attack.", selected); + if (ImGui::Button("Give the selected these orders") && selected > 0) { + Stroke stroke; + stroke.Kind = Tool::OrderSelected; + stroke.Orders = static_cast(s_Order); + s_Queue.push_back(stroke); + } + ImGui::SameLine(); + if (ImGui::Button("Clear selection")) { + s_Selected.clear(); + } + + ImGui::SeparatorText("Auto battle"); + ImGui::TextWrapped("Each side buys waves of its faction's units with its budget and drops them in to attack, until one side is left."); + for (int side = 0; side < c_Sides && !s_FactionNames.empty(); ++side) { + AutoSide& autoSide = s_AutoSides[side]; + ImGui::PushID(side); + ImGui::PushStyleColor(ImGuiCol_Text, c_SideColors[side]); + ImGui::Checkbox(c_SideNames[side], &autoSide.Active); + ImGui::PopStyleColor(); + ImGui::SameLine(90.0F); + ImGui::SetNextItemWidth(120.0F); + if (ImGui::BeginCombo("##faction", s_FactionNames[std::clamp(autoSide.Faction, 0, static_cast(s_FactionNames.size()) - 1)].c_str())) { + for (int faction = 0; faction < static_cast(s_FactionNames.size()); ++faction) { + if (ImGui::Selectable(s_FactionNames[faction].c_str(), faction == autoSide.Faction)) { + autoSide.Faction = faction; + } + } + ImGui::EndCombo(); + } + ImGui::SameLine(); + ImGui::SetNextItemWidth(-1.0F); + ImGui::SliderInt("##budget", &autoSide.Budget, 500, 30000, "%d oz"); + if (autoSide.Sent > 0) { + int alive = Sandbox::CountUnits(side); + ImGui::TextDisabled(" spent %.0f oz, sent %d, alive %d, lost %d%s", autoSide.Spent, autoSide.Sent, alive, std::max(autoSide.Sent - alive, 0), autoSide.Broke ? ", out of money" : ""); + } + ImGui::PopID(); + } + if (!s_AutoRunning) { + if (ImGui::Button("Start auto battle", ImVec2(-1.0F, 0.0F))) { + Sandbox::StartAutoBattle(); + } + } else if (ImGui::Button("Stop auto battle", ImVec2(-1.0F, 0.0F))) { + s_AutoRunning = false; + } + if (s_AutoWinner >= 0) { + ImGui::TextColored(ImGui::ColorConvertU32ToFloat4(c_SideColors[s_AutoWinner]), "%s won the last battle.", c_SideNames[s_AutoWinner]); + } else if (s_AutoWinner == -1) { + ImGui::Text("The last battle was a draw."); + } + ImGui::EndTabItem(); + } + if (ImGui::BeginTabItem("Paint")) { + ImGui::SeparatorText("Elements"); + ToolButtons({Tool::Fire, Tool::Water, Tool::Lava, Tool::Acid, Tool::Oil, Tool::Smoke, Tool::ToxicGas}); + ImGui::SeparatorText("Terrain"); + ToolButtons({Tool::Dig, Tool::Earth, Tool::Sand, Tool::Grass, Tool::Wood, Tool::Concrete}); + ImGui::SliderInt("Brush size", &s_Radius, 1, 40); + ImGui::EndTabItem(); + } + if (ImGui::BeginTabItem("Boom")) { + ToolButtons({Tool::Grenade, Tool::BigBomb, Tool::Napalm, Tool::Lightning}); + ImGui::EndTabItem(); + } + if (ImGui::BeginTabItem("World")) { + LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + ImGui::Combo("Weather", &settings.WeatherType, "Clear\0Rain\0Snow\0"); + ImGui::SliderFloat("Intensity", &settings.WeatherIntensity, 0.0F, 1.0F); + ImGui::SliderFloat("Wind", &settings.Wind, -200.0F, 200.0F, "%.0f px/s"); + ImGui::SliderFloat("Hour", &settings.TimeOfDay, 0.0F, 24.0F, "%.1f"); + for (auto [name, hour]: {std::pair{"Dawn", 6.5F}, std::pair{"Day", 12.0F}, std::pair{"Dusk", 19.0F}, std::pair{"Night", 23.0F}}) { + if (hour != 6.5F) { + ImGui::SameLine(); + } + if (ImGui::Button(name)) { + settings.TimeOfDay = hour; + } + } + ImGui::Separator(); + ImGui::Checkbox("Free camera", &s_FreeCamera); + ImGui::SameLine(); + ImGui::Checkbox("Follow the action", &s_FollowAction); + ImGui::SameLine(); + if (ImGui::Checkbox("Slow motion", &s_SlowMotion)) { + g_TimerMan.SetTimeScale(s_SlowMotion ? 0.25F : 1.0F); + } + ImGui::Text("%d burning, %d liquid pixels flowing", TerrainFire::GetCount(), FluidSim::GetActiveCount()); + if (ImGui::Button("Put out all fire")) { + TerrainFire::Clear(); + } + ImGui::EndTabItem(); + } + ImGui::EndTabBar(); + } + } + ImGui::End(); +} + +void Sandbox::Update() { + static const Activity* lastActivity = nullptr; + if (g_ActivityMan.GetActivity() != lastActivity) { + lastActivity = g_ActivityMan.GetActivity(); + Controller::SetAIPaused(false); + } + std::vector strokes; + strokes.swap(s_Queue); + if (!InGame()) { + s_Possessed = nullptr; + return; + } + for (const Stroke& stroke: strokes) { + Apply(stroke); + } + if (g_TimerMan.GetSimUpdateCount() % 60 == 0) { + RetargetAttackers(); + } + UpdateAutoBattle(); + if (s_FollowAction && g_TimerMan.GetSimUpdateCount() % 30 == 0) { + FindAction(); + } + if (IsGodMode()) { + GameActivity* game = CurrentGame(); + if (s_Possessed && !g_MovableMan.IsActor(s_Possessed)) { + // The unit you were controlling died: back to the god view. + s_Possessed = nullptr; + s_Open = true; + s_FreeCameraStarted = false; + } + if (game) { + for (int team = 0; team < c_Sides; ++team) { + if (game->GetTeamFunds(team) < 500000.0F) { + game->SetTeamFunds(1000000.0F, team); + } + } + } + // The god doesn't get handed a unit: stay watching unless controlling one on purpose. + if (game && !s_Possessed && game->GetViewState(Players::PlayerOne) != Activity::ViewState::Observe) { + if (game->GetControlledActor(Players::PlayerOne)) { + game->LoseControlOfActor(Players::PlayerOne); + } + game->SetViewState(Activity::ViewState::Observe, Players::PlayerOne); + } + } +} diff --git a/Source/Managers/Sandbox.h b/Source/Managers/Sandbox.h new file mode 100644 index 0000000000..d52bc35af7 --- /dev/null +++ b/Source/Managers/Sandbox.h @@ -0,0 +1,79 @@ +#pragma once + +#include +#include + +namespace RTE { + class Actor; + class MovableObject; + class Vector; + + /// The sandbox (F7): spawn units, brains, items and bunker pieces for any side and give them orders, paint fire, liquids, smoke and terrain, set off explosions and lightning, and change the weather. + /// In the Sandbox game mode it's the whole game: you're a god with a free camera, every unit is run by the AI, and you can take control of any unit. In other games it's a debug tool. + /// The window only queues what you do; it's applied during the next simulation update on the main thread, like any other change to the world. + class Sandbox { + + public: + /// Gets whether the sandbox window is open. + static bool IsOpen() { return s_Open; } + + /// Opens or closes the sandbox window. Opening it while controlling a unit in the Sandbox game mode goes back to the god view. + static void Toggle() { s_Open = !s_Open; } + + /// Gets whether the current game is the Sandbox game mode. + static bool IsGodMode(); + + /// Gets whether clicks on the world go to the sandbox instead of the game: the window is open, a tool is picked and the mouse isn't over a debug window. + static bool CapturesWorldClicks(); + + /// Draws the sandbox window, the brush outline and the free camera. Call from the ImGui frame. + static void DrawGUI(); + + /// Applies what was queued from the window, keeps attacking units on a target and keeps the god view. Call once per sim update, from the main thread, before the fire, liquid and object updates. + static void Update(); + + /// Uses a sandbox tool from a script, as if clicked at a point (Lua: SandboxDo). Applied in the next sim update. + /// @param toolName The tool's name as shown in the window ("Units", "Brain", "Item", "Structure", "Fire", "Water", "Lightning", "Rally point", "Take control", "Remove"...) or "Orders" to order a whole side. + /// @param position Where to use it. + /// @param team The side: 0 Red, 1 Green, 2 Blue, 3 Yellow (the game's team colours). + /// @param order For units and "Orders": 0 hold, 1 attack nearest enemy, 2 hunt brains, 3 patrol, 4 go to rally point, 5 do nothing. + /// @param count Squad size for units, brush size for painting. + /// @param presetName What to spawn, for units, brains, items and structures. + /// @return Whether the tool and preset were found. + static bool Do(const std::string& toolName, const Vector& position, int team, int order, int count, const std::string& presetName); + + /// Gets how many fighting units a side has (Lua: SandboxCountUnits). + /// @param team The side. + /// @return The number of units. + static int CountUnits(int team); + + /// Opens or closes the game's build menu in the middle of play, placing straight into the world (Lua: SandboxBuildMode). + /// @param build Whether to build. + /// @return Whether the game is now building. + static bool SetBuildMode(bool build); + + /// Sets up one side of an auto battle (Lua: SandboxAutoBattleSide). + /// @param team The side. + /// @param faction The faction's module name, like "Coalition" or "Browncoats.rte". + /// @param budget How much the side can spend, 0 to leave it out. + static void SetAutoBattleSide(int team, const std::string& faction, int budget); + + /// Starts an auto battle between the sides set up for it (Lua: SandboxStartAutoBattle). + static void StartAutoBattle(); + + /// Pauses or resumes the AI everywhere: AI-run units stand still until it's resumed (Lua: SandboxPauseAI). + /// @param paused Whether to pause. + static void SetAIPaused(bool paused); + + private: + static bool s_Open; //!< Whether the sandbox window is open. + + /// Gets every actor in the game. + static std::deque& Actors(); + + /// Gets every loose item in the game. + static std::deque& Items(); + + friend struct SandboxAccess; + }; +} // namespace RTE diff --git a/Source/Managers/SceneMan.cpp b/Source/Managers/SceneMan.cpp index 2fd0682046..16822d46d9 100644 --- a/Source/Managers/SceneMan.cpp +++ b/Source/Managers/SceneMan.cpp @@ -1,4 +1,13 @@ #include "SceneMan.h" +#include "EffectsParticles.h" +#include "FluidSim.h" +#include "SmokeGrid.h" +#include "TerrainFire.h" +#include "ActorFire.h" +#include "SceneLighting.h" +#include "PostProcessMan.h" +#include "Shader.h" +#include "RenderMan.h" #include "PostProcessMan.h" #include "PresetMan.h" #include "FrameMan.h" @@ -17,6 +26,8 @@ #include "Atom.h" #include "Material.h" #include "SoundContainer.h" +#include "Draw.h" +#include "DebugMan.h" #include "tracy/Tracy.hpp" @@ -124,6 +135,8 @@ int SceneMan::LoadScene(Scene* pNewScene, bool placeObjects, bool placeUnits) { return -1; } + g_PostProcessMan.ApplySceneAtmosphere(m_pCurrentScene); + // Report successful load to the console g_ConsoleMan.PrintString("SYSTEM: Scene \"" + m_pCurrentScene->GetPresetName() + "\" was loaded"); @@ -149,7 +162,7 @@ int SceneMan::LoadScene(Scene* pNewScene, bool placeObjects, bool placeUnits) { BITMAP* pBitmap = create_bitmap_ex(8, GetSceneWidth(), GetSceneHeight()); clear_to_color(pBitmap, g_MaskColor); m_pMOColorLayer = new SceneLayerTracked(); - m_pMOColorLayer->Create(pBitmap, true, Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)); + m_pMOColorLayer->Create(pBitmap, Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)); pBitmap = 0; const int cellSize = 20; @@ -161,7 +174,7 @@ int SceneMan::LoadScene(Scene* pNewScene, bool placeObjects, bool placeUnits) { pBitmap = create_bitmap_ex(8, GetSceneWidth(), GetSceneHeight()); clear_to_color(pBitmap, g_MaskColor); m_pDebugLayer = new SceneLayer(); - m_pDebugLayer->Create(pBitmap, true, Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)); + m_pDebugLayer->Create(pBitmap, Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)); pBitmap = nullptr; } @@ -564,6 +577,8 @@ bool SceneMan::TryPenetrate(int posX, } Material const* sceneMat = GetMaterialFromID(materialID); Material const* spawnMat; + // Visual only: chips, dust and sparks where things hit terrain. + EffectsParticles::SpawnImpact(Vector(static_cast(posX), static_cast(posY)), velocity, EffectsParticles::ColorToRGB(sceneMat->GetColor()), sceneMat->GetIntegrity() >= 100.0F ? 1.0F : 0.0F); float sprayScale = 0.1F; float sqrImpMag = impulse.GetSqrMagnitude(); @@ -685,6 +700,10 @@ bool SceneMan::TryPenetrate(int posX, return false; } +void SceneMan::PourLiquid(const Vector& centre, float radius, const std::string& liquidName) { + FluidSim::Pour(centre, radius, liquidName.c_str()); +} + MOPixel* SceneMan::DislodgePixel(int posX, int posY) { WrapPosition(posX, posY); int materialID = getpixel(m_pCurrentScene->GetTerrain()->GetMaterialBitmap(), posX, posY); @@ -900,7 +919,7 @@ void SceneMan::MakeAllUnseen(Vector pixelSize, const int team) { bool SceneMan::LoadUnseenLayer(const std::string& bitmapPath, int team) { ContentFile bitmapFile(bitmapPath.c_str()); SceneLayer* pUnseenLayer = new SceneLayer(); - if (pUnseenLayer->Create(bitmapFile.GetAsBitmap(COLORCONV_NONE, false), true, Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)) < 0) { + if (pUnseenLayer->Create(bitmapFile.GetAsBitmap(COLORCONV_NONE, false), Vector(), m_pCurrentScene->WrapsX(), m_pCurrentScene->WrapsY(), Vector(1.0, 1.0)) < 0) { g_ConsoleMan.PrintString("ERROR: Loading background layer " + pUnseenLayer->GetPresetName() + "\'s data failed!"); return false; } @@ -1429,6 +1448,26 @@ float SceneMan::CastNotMaterialRay(const Vector& start, const Vector& ray, unsig return -1; } +bool SceneMan::SmokeBlocksSight(const Vector& start, const Vector& end) const { + return SmokeGrid::BlocksSight(start, end); +} + +bool SceneMan::IsBurningNear(const Vector& position, int radius) const { + return TerrainFire::IsBurningNear(position, radius); +} + +int SceneMan::GetBurningUnitCount() const { + return ActorFire::GetCount(); +} + +int SceneMan::GetBurningPixelCount() const { + return TerrainFire::GetCount(); +} + +int SceneMan::GetFlowingLiquidPixelCount() const { + return FluidSim::GetActiveCount(); +} + float SceneMan::CastStrengthSumRay(const Vector& start, const Vector& end, int skip, unsigned char ignoreMaterial) { Vector ray = g_SceneMan.ShortestDistance(start, end); float strengthSum = 0; @@ -2544,14 +2583,7 @@ void SceneMan::Update(int screenId) { m_LastUpdatedScreen = screenId; - const Vector& offset = g_CameraMan.GetOffset(screenId); - m_pMOColorLayer->SetOffset(offset); - if (m_pDebugLayer) { - m_pDebugLayer->SetOffset(offset); - } - SLTerrain* terrain = m_pCurrentScene->GetTerrain(); - terrain->SetOffset(offset); terrain->Update(); // Background layers may scroll in fractions of the real offset and need special care to avoid jumping after having traversed wrapped edges, so they need the total offset without taking wrapping into account. @@ -2561,12 +2593,6 @@ void SceneMan::Update(int screenId) { backgroundLayer->Update(); } - // Update the unseen obstruction layer for this team's screen view, if there is one. - const int teamId = g_CameraMan.GetScreenTeam(screenId); - if (SceneLayer* unseenLayer = (teamId != Activity::NoTeam) ? m_pCurrentScene->GetUnseenLayer(teamId) : nullptr) { - unseenLayer->SetOffset(offset); - } - if (m_CleanTimer.GetElapsedSimTimeMS() > CLEANAIRINTERVAL) { terrain->CleanAir(); m_CleanTimer.Reset(); @@ -2663,6 +2689,63 @@ void SceneMan::Draw(BITMAP* targetBitmap, BITMAP* targetGUIBitmap, const Vector& } } +void SceneMan::DrawGUI(const Camera& camera) { + +} + +void SceneMan::Draw(const Camera& camera) { + ZoneScoped; + if (!m_pCurrentScene) { + return; + } + + for (std::list::reverse_iterator backgroundLayer = m_pCurrentScene->GetBackLayers().rbegin(); backgroundLayer != m_pCurrentScene->GetBackLayers().rend(); backgroundLayer++) { + (*backgroundLayer)->Draw(camera); + } + + SLTerrain* terrainLayer = m_pCurrentScene->GetTerrain(); + + // Terrain layers get scorch marks and the glow of freshly blasted terrain. + const Shader* sceneShader = g_RenderMan.GetCurrentShader(); + const Shader* terrainShader = g_PostProcessMan.GetSceneLighting()->PrepareTerrainShader(); + + terrainLayer->SetLayerToDraw(SLTerrain::LayerType::BackgroundLayer); + g_RenderMan.SetCurrentShader(terrainShader ? terrainShader : sceneShader); + terrainLayer->Draw(camera); + g_RenderMan.SetCurrentShader(sceneShader); + + g_MovableMan.Draw(camera); + + terrainLayer->SetLayerToDraw(SLTerrain::LayerType::ForegroundLayer); + g_RenderMan.SetCurrentShader(terrainShader ? terrainShader : sceneShader); + terrainLayer->Draw(camera); + g_RenderMan.SetCurrentShader(sceneShader); + + int teamId = camera.GetTeam(); + if (teamId != Activity::NoTeam && m_pCurrentScene->GetUnseenLayer(teamId)) { + // Soft edged fog of war instead of hard blocks. + static std::unique_ptr s_UnseenSoftShader = std::make_unique("Base.rte/Shaders/Blit8.vert", "Base.rte/Shaders/UnseenSoft.frag"); + const Shader* previousShader = g_RenderMan.GetCurrentShader(); + g_RenderMan.SetCurrentShader(s_UnseenSoftShader.get()); + m_pCurrentScene->GetUnseenLayer(teamId)->Draw(camera); + g_RenderMan.SetCurrentShader(previousShader); + } + + if (camera.IsShowHUD()) { + g_MovableMan.DrawHUD(camera); + g_ActivityMan.GetActivity()->DrawGUI(camera); + } + + if (g_DebugMan.DrawNoGravBoxes()) { + if (Scene::Area* noGravArea = m_pCurrentScene->GetArea("NoGravityArea")) { + const std::vector& boxList = noGravArea->GetBoxes(); + for (auto box: boxList) { + Draw::Rectangle(*box, g_RedColor); + } + } + } +} + void SceneMan::ClearMOColorLayer() { m_pMOColorLayer->ClearBitmap(g_MaskColor); if (m_pDebugLayer) { diff --git a/Source/Managers/SceneMan.h b/Source/Managers/SceneMan.h index 068bc1e2c1..b148611ccb 100644 --- a/Source/Managers/SceneMan.h +++ b/Source/Managers/SceneMan.h @@ -398,6 +398,12 @@ namespace RTE { /// @return A list of the removed pixels, if any. std::vector* DislodgePixelRingNoBool(const Vector& centre, float innerRadius, float outerRadius); + /// Fills air in a circle with a flowing liquid ("Water", "Lava" or "Acid"), applied on the next sim update. + /// @param centre Centre of the circle. + /// @param radius Radius in pixels. + /// @param liquidName Name of the liquid. + void PourLiquid(const Vector& centre, float radius, const std::string& liquidName); + /// Removes a box of pixels from the terrain and adds them to MovableMan. /// @param upperLeftCorner The vector position of the upper left corner of the box. /// @param lowerRightCorner The vector position of the lower right corner of the box. @@ -600,6 +606,26 @@ namespace RTE { /// all Air, then 0 is returned (Air's strength value is 0). float CastStrengthSumRay(const Vector& start, const Vector& end, int skip = 0, unsigned char ignoreMaterial = g_MaterialAir); + /// Gets whether thick smoke between two points hides one from the other. Always false when smoke doesn't block sight. + /// @param start The starting position. + /// @param end The ending position. + /// @return Whether smoke blocks the view. + bool SmokeBlocksSight(const Vector& start, const Vector& end) const; + + /// Gets how many terrain pixels are on fire. + int GetBurningPixelCount() const; + + /// Gets whether any terrain is burning near a point. + /// @param position The centre. + /// @param radius How far to look, in pixels. + bool IsBurningNear(const Vector& position, int radius) const; + + /// Gets how many units are on fire. + int GetBurningUnitCount() const; + + /// Gets how many liquid pixels in the terrain are flowing. + int GetFlowingLiquidPixelCount() const; + /// Traces along a vector and returns the strongest of all encountered pixels' /// material strength values. /// This will take wrapping into account. @@ -938,6 +964,8 @@ namespace RTE { /// @param targetBitmap A pointer to a BITMAP to draw on, appropriately sized for the split screen segment. /// @param targetGUIBitmap The offset into the scene where the target bitmap's upper left corner is located. void Draw(BITMAP* targetBitmap, BITMAP* targetGUIBitmap, const Vector& targetPos = Vector(), bool skipBackgroundLayers = false, bool skipTerrain = false); + void DrawGUI(const Camera& camera); + void Draw(const Camera& camera); /// Clears the color MO layer. Should be done every frame. void ClearMOColorLayer(); diff --git a/Source/Managers/SettingsMan.cpp b/Source/Managers/SettingsMan.cpp index 7695cb9ca5..17c6ac5cd8 100644 --- a/Source/Managers/SettingsMan.cpp +++ b/Source/Managers/SettingsMan.cpp @@ -1,4 +1,11 @@ #include "SettingsMan.h" +#include "TextOverlay.h" +#include "TerrainFire.h" +#include "TerrainCollapse.h" +#include "FluidSim.h" +#include "SmokeGrid.h" +#include "ActorFire.h" +#include "ModernHUD.h" #include "ConsoleMan.h" #include "CameraMan.h" #include "MovableMan.h" @@ -8,15 +15,41 @@ #include "AudioMan.h" #include "PerformanceMan.h" #include "UInputMan.h" +#include "DebugMan.h" #include "System.h" +#include +#include using namespace RTE; +namespace { + /// Parses "r g b" (commas also accepted), keeping the fallback for anything missing. + glm::vec3 ReadVec3(std::string value, const glm::vec3& fallback) { + std::replace(value.begin(), value.end(), ',', ' '); + std::istringstream stream(value); + glm::vec3 result = fallback; + stream >> result.x >> result.y >> result.z; + return result; + } + + std::string WriteVec3(const glm::vec3& value) { + std::ostringstream stream; + stream << value.x << " " << value.y << " " << value.z; + return stream.str(); + } + + /// Bumped when lighting defaults change enough that values saved by older versions should be dropped in favour of the new defaults. + /// 2: brighter ambient light in interiors and caves. + constexpr int c_LightingSettingsVersion = 2; + int s_ReadLightingSettingsVersion = 0; //!< Version of the lighting settings in the file being read, 0 when it has none. +} // namespace + const std::string SettingsMan::c_ClassName = "SettingsMan"; void SettingsMan::Clear() { m_SettingsPath = System::GetUserdataDirectory() + "Settings.ini"; m_SettingsNeedOverwrite = false; + s_ReadLightingSettingsVersion = 0; m_FlashOnBrainDamage = true; m_BlipOnRevealUnseen = false; @@ -115,6 +148,77 @@ int SettingsMan::ReadProperty(const std::string_view& propName, Reader& reader) MatchProperty("Fullscreen", { reader >> g_WindowMan.m_Fullscreen; }); MatchProperty("UseMultiDisplays", { reader >> g_WindowMan.m_UseMultiDisplays; }); MatchProperty("TwoPlayerSplitscreenVertSplit", { reader >> g_FrameMan.m_TwoPlayerVSplit; }); + MatchProperty("BurningUnits", { ActorFire::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("SmokeBlocksSight", { SmokeGrid::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("FlowingLiquids", { FluidSim::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("TerrainCollapse", { TerrainCollapse::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("TerrainFire", { TerrainFire::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("ModernHUD", { ModernHUD::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("SmoothHUDText", { TextOverlay::SetEnabled(std::stoi(reader.ReadPropValue()) != 0); }); + MatchProperty("LightingSettingsVersion", { s_ReadLightingSettingsVersion = std::stoi(reader.ReadPropValue()); }); + MatchProperty("GraphicsQuality", { g_PostProcessMan.GetLightingSettings().GraphicsQuality = std::clamp(std::stoi(reader.ReadPropValue()), 0, static_cast(LightingSettings::QualityCustom)); }); + MatchProperty("LightingEnabled", { g_PostProcessMan.GetLightingSettings().Enabled = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("LightingAmbient", { + std::string value = reader.ReadPropValue(); + if (s_ReadLightingSettingsVersion >= 2) { + g_PostProcessMan.GetLightingSettings().Ambient = ReadVec3(value, g_PostProcessMan.GetLightingSettings().Ambient); + } + }); + MatchProperty("LightingForegroundAmbient", { + std::string value = reader.ReadPropValue(); + if (s_ReadLightingSettingsVersion >= 2) { + g_PostProcessMan.GetLightingSettings().ForegroundAmbient = ReadVec3(value, g_PostProcessMan.GetLightingSettings().ForegroundAmbient); + } + }); + MatchProperty("LightingSkyColor", { g_PostProcessMan.GetLightingSettings().SkyColor = ReadVec3(reader.ReadPropValue(), g_PostProcessMan.GetLightingSettings().SkyColor); }); + MatchProperty("LightingAirFalloff", { g_PostProcessMan.GetLightingSettings().AirFalloff = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingSolidFalloff", { g_PostProcessMan.GetLightingSettings().SolidFalloff = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingDebugView", { g_PostProcessMan.GetLightingSettings().DebugView = std::stoi(reader.ReadPropValue()); }); // Read only, for automated screenshots. + MatchProperty("GodRays", { g_PostProcessMan.GetLightingSettings().GodRays = std::stof(reader.ReadPropValue()); }); + MatchProperty("GodRayDecay", { g_PostProcessMan.GetLightingSettings().GodRayDecay = std::stof(reader.ReadPropValue()); }); + MatchProperty("AtmosphereHaze", { g_PostProcessMan.GetLightingSettings().AtmosphereHaze = std::stof(reader.ReadPropValue()); }); + MatchProperty("AtmosphereColor", { g_PostProcessMan.GetLightingSettings().AtmosphereColor = ReadVec3(reader.ReadPropValue(), g_PostProcessMan.GetLightingSettings().AtmosphereColor); }); + MatchProperty("WeatherType", { g_PostProcessMan.GetLightingSettings().WeatherType = std::stoi(reader.ReadPropValue()); }); + MatchProperty("WeatherIntensity", { g_PostProcessMan.GetLightingSettings().WeatherIntensity = std::stof(reader.ReadPropValue()); }); + MatchProperty("Wind", { g_PostProcessMan.GetLightingSettings().Wind = std::stof(reader.ReadPropValue()); }); + MatchProperty("TimeOfDay", { g_PostProcessMan.GetLightingSettings().TimeOfDay = std::stof(reader.ReadPropValue()); }); + MatchProperty("DayLengthMinutes", { g_PostProcessMan.GetLightingSettings().DayLengthMinutes = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingGlowIntensity", { g_PostProcessMan.GetLightingSettings().GlowLightIntensity = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingGlowRadiusScale", { g_PostProcessMan.GetLightingSettings().GlowLightRadiusScale = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingShadowStrength", { g_PostProcessMan.GetLightingSettings().ShadowStrength = std::stof(reader.ReadPropValue()); }); + MatchProperty("RadianceCascades", { g_PostProcessMan.GetLightingSettings().RadianceCascades = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("GIStrength", { g_PostProcessMan.GetLightingSettings().GIStrength = std::stof(reader.ReadPropValue()); }); + MatchProperty("GIBounce", { g_PostProcessMan.GetLightingSettings().GIBounce = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingIndirect", { g_PostProcessMan.GetLightingSettings().IndirectLight = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingEdgeLighting", { g_PostProcessMan.GetLightingSettings().EdgeLighting = std::stof(reader.ReadPropValue()); }); + MatchProperty("LightingEmissiveIntensity", { g_PostProcessMan.GetLightingSettings().EmissiveIntensity = std::stof(reader.ReadPropValue()); }); + MatchProperty("DistortionEnabled", { g_PostProcessMan.GetLightingSettings().DistortionEnabled = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("HeatHaze", { g_PostProcessMan.GetLightingSettings().HeatHaze = std::stof(reader.ReadPropValue()); }); + MatchProperty("ShockwaveStrength", { g_PostProcessMan.GetLightingSettings().ShockwaveStrength = std::stof(reader.ReadPropValue()); }); + MatchProperty("SmokeScattering", { g_PostProcessMan.GetLightingSettings().SmokeScattering = std::stof(reader.ReadPropValue()); }); + MatchProperty("EffectsParticles", { g_PostProcessMan.GetLightingSettings().EffectsParticles = std::stof(reader.ReadPropValue()); }); + MatchProperty("Embers", { g_PostProcessMan.GetLightingSettings().Embers = std::stof(reader.ReadPropValue()); }); + MatchProperty("Headlamps", { g_PostProcessMan.GetLightingSettings().Headlamps = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("NightAffectsAI", { g_PostProcessMan.GetLightingSettings().NightAffectsAI = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("LivingWorld", { g_PostProcessMan.GetLightingSettings().LivingWorld = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("Stains", { g_PostProcessMan.GetLightingSettings().Stains = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("ScorchMarks", { g_PostProcessMan.GetLightingSettings().ScorchMarks = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("BloomEnabled", { g_PostProcessMan.GetLightingSettings().BloomEnabled = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("BloomThreshold", { g_PostProcessMan.GetLightingSettings().BloomThreshold = std::stof(reader.ReadPropValue()); }); + MatchProperty("BloomIntensity", { g_PostProcessMan.GetLightingSettings().BloomIntensity = std::stof(reader.ReadPropValue()); }); + MatchProperty("AutoExposureLow", { g_PostProcessMan.GetLightingSettings().AutoExposureLow = std::stof(reader.ReadPropValue()); }); + MatchProperty("AutoExposureHigh", { g_PostProcessMan.GetLightingSettings().AutoExposureHigh = std::stof(reader.ReadPropValue()); }); + MatchProperty("AutoExposure", { g_PostProcessMan.GetLightingSettings().AutoExposure = std::stof(reader.ReadPropValue()); }); + MatchProperty("PostExposure", { g_PostProcessMan.GetLightingSettings().Exposure = std::stof(reader.ReadPropValue()); }); + MatchProperty("GradeTemperature", { g_PostProcessMan.GetLightingSettings().Temperature = std::stof(reader.ReadPropValue()); }); + MatchProperty("GradeTint", { g_PostProcessMan.GetLightingSettings().Tint = std::stof(reader.ReadPropValue()); }); + MatchProperty("GradeContrast", { g_PostProcessMan.GetLightingSettings().Contrast = std::stof(reader.ReadPropValue()); }); + MatchProperty("GradeShadowTint", { g_PostProcessMan.GetLightingSettings().ShadowTint = ReadVec3(reader.ReadPropValue(), g_PostProcessMan.GetLightingSettings().ShadowTint); }); + MatchProperty("GradeHighlightTint", { g_PostProcessMan.GetLightingSettings().HighlightTint = ReadVec3(reader.ReadPropValue(), g_PostProcessMan.GetLightingSettings().HighlightTint); }); + MatchProperty("FilmGrain", { g_PostProcessMan.GetLightingSettings().FilmGrain = std::stof(reader.ReadPropValue()); }); + MatchProperty("ChromaticAberration", { g_PostProcessMan.GetLightingSettings().ChromaticAberration = std::stof(reader.ReadPropValue()); }); + MatchProperty("PostVignette", { g_PostProcessMan.GetLightingSettings().Vignette = std::stof(reader.ReadPropValue()); }); + MatchProperty("PostSaturation", { g_PostProcessMan.GetLightingSettings().Saturation = std::stof(reader.ReadPropValue()); }); MatchProperty("MasterVolume", { g_AudioMan.SetMasterVolume(std::stof(reader.ReadPropValue()) / 100.0F); }); MatchProperty("MuteMaster", { reader >> g_AudioMan.m_MuteMaster; }); MatchProperty("MusicVolume", { g_AudioMan.SetMusicVolume(std::stof(reader.ReadPropValue()) / 100.0F); }); @@ -140,7 +244,8 @@ int SettingsMan::ReadProperty(const std::string_view& propName, Reader& reader) MatchProperty("UnheldItemsHUDDisplayRange", { SetUnheldItemsHUDDisplayRange(std::stof(reader.ReadPropValue())); }); MatchProperty("AlwaysDisplayUnheldItemsInStrategicMode", { reader >> m_AlwaysDisplayUnheldItemsInStrategicMode; }); MatchProperty("SubPieMenuHoverOpenDelay", { reader >> m_SubPieMenuHoverOpenDelay; }); - MatchProperty("EndlessMode", { reader >> m_EndlessMetaGameMode; }); + MatchProperty("EndlessMetaGameMode", { reader >> m_EndlessMetaGameMode; }); + MatchProperty("EndlessMode", { reader >> m_EndlessMetaGameMode; }); // Legacy name, kept for old Settings.ini files. MatchProperty("EnableCrabBombs", { reader >> m_EnableCrabBombs; }); MatchProperty("CrabBombThreshold", { reader >> m_CrabBombThreshold; }); MatchProperty("ShowEnemyHUD", { reader >> m_ShowEnemyHUD; }); @@ -187,6 +292,9 @@ int SettingsMan::ReadProperty(const std::string_view& propName, Reader& reader) MatchProperty("DrawRaycastVisualizations", { reader >> g_SceneMan.m_DrawRayCastVisualizations; }); MatchProperty("DrawPixelCheckVisualizations", { reader >> g_SceneMan.m_DrawPixelCheckVisualizations; }); MatchProperty("PrintDebugInfo", { reader >> m_PrintDebugInfo; }); + MatchProperty("EnableDebugMenus", { reader >> g_DebugMan.m_ShowDebugWindow; }); + MatchProperty("ShowGraphicsLab", { g_DebugMan.m_ShowGraphicsLab = std::stoi(reader.ReadPropValue()) != 0; }); + MatchProperty("ShowWorldDebug", { g_DebugMan.m_ShowWorldDebug = std::stoi(reader.ReadPropValue()) != 0; }); // Read only, for automated captures. MatchProperty("MeasureModuleLoadTime", { reader >> m_MeasureModuleLoadTime; }); MatchProperty("VisibleAssemblyGroup", { m_VisibleAssemblyGroupsList.push_back(reader.ReadPropValue()); }); MatchProperty("DisableMod", { m_DisabledMods.try_emplace(reader.ReadPropValue(), true); }); @@ -221,6 +329,67 @@ int SettingsMan::Save(Writer& writer) const { writer.NewPropertyWithValue("EnableVSync", g_WindowMan.m_EnableVSync); writer.NewPropertyWithValue("UseMultiDisplays", g_WindowMan.m_UseMultiDisplays); writer.NewPropertyWithValue("TwoPlayerSplitscreenVertSplit", g_FrameMan.m_TwoPlayerVSplit); + writer.NewPropertyWithValue("SmoothHUDText", TextOverlay::IsEnabled()); + writer.NewPropertyWithValue("ModernHUD", ModernHUD::IsEnabled()); + + writer.NewLine(false, 2); + writer.NewDivider(false); + writer.NewLineString("// Lighting and Post-Processing Settings (colors are linear R G B)", false); + writer.NewLine(false); + const LightingSettings lighting = g_PostProcessMan.GetLightingSettingsToSave(); + writer.NewPropertyWithValue("LightingSettingsVersion", c_LightingSettingsVersion); + writer.NewPropertyWithValue("GraphicsQuality", lighting.GraphicsQuality); + writer.NewPropertyWithValue("LightingEnabled", lighting.Enabled); + writer.NewPropertyWithValue("LightingAmbient", WriteVec3(lighting.Ambient)); + writer.NewPropertyWithValue("LightingSkyColor", WriteVec3(lighting.SkyColor)); + writer.NewPropertyWithValue("LightingForegroundAmbient", WriteVec3(lighting.ForegroundAmbient)); + writer.NewPropertyWithValue("LightingAirFalloff", lighting.AirFalloff); + writer.NewPropertyWithValue("LightingSolidFalloff", lighting.SolidFalloff); + writer.NewPropertyWithValue("GodRays", lighting.GodRays); + writer.NewPropertyWithValue("GodRayDecay", lighting.GodRayDecay); + writer.NewPropertyWithValue("AtmosphereHaze", lighting.AtmosphereHaze); + writer.NewPropertyWithValue("AtmosphereColor", WriteVec3(lighting.AtmosphereColor)); + writer.NewPropertyWithValue("WeatherType", lighting.WeatherType); + writer.NewPropertyWithValue("WeatherIntensity", lighting.WeatherIntensity); + writer.NewPropertyWithValue("Wind", lighting.Wind); + writer.NewPropertyWithValue("TimeOfDay", lighting.TimeOfDay); + writer.NewPropertyWithValue("DayLengthMinutes", lighting.DayLengthMinutes); + writer.NewPropertyWithValue("LightingGlowIntensity", lighting.GlowLightIntensity); + writer.NewPropertyWithValue("LightingGlowRadiusScale", lighting.GlowLightRadiusScale); + writer.NewPropertyWithValue("LightingShadowStrength", lighting.ShadowStrength); + writer.NewPropertyWithValue("LightingEmissiveIntensity", lighting.EmissiveIntensity); + writer.NewPropertyWithValue("LightingEdgeLighting", lighting.EdgeLighting); + writer.NewPropertyWithValue("LightingIndirect", lighting.IndirectLight); + writer.NewPropertyWithValue("RadianceCascades", lighting.RadianceCascades); + writer.NewPropertyWithValue("GIStrength", lighting.GIStrength); + writer.NewPropertyWithValue("GIBounce", lighting.GIBounce); + writer.NewPropertyWithValue("DistortionEnabled", lighting.DistortionEnabled); + writer.NewPropertyWithValue("HeatHaze", lighting.HeatHaze); + writer.NewPropertyWithValue("ShockwaveStrength", lighting.ShockwaveStrength); + writer.NewPropertyWithValue("Embers", lighting.Embers); + writer.NewPropertyWithValue("EffectsParticles", lighting.EffectsParticles); + writer.NewPropertyWithValue("SmokeScattering", lighting.SmokeScattering); + writer.NewPropertyWithValue("ScorchMarks", lighting.ScorchMarks); + writer.NewPropertyWithValue("Stains", lighting.Stains); + writer.NewPropertyWithValue("LivingWorld", lighting.LivingWorld); + writer.NewPropertyWithValue("Headlamps", lighting.Headlamps); + writer.NewPropertyWithValue("NightAffectsAI", lighting.NightAffectsAI); + writer.NewPropertyWithValue("BloomEnabled", lighting.BloomEnabled); + writer.NewPropertyWithValue("BloomThreshold", lighting.BloomThreshold); + writer.NewPropertyWithValue("BloomIntensity", lighting.BloomIntensity); + writer.NewPropertyWithValue("PostExposure", lighting.Exposure); + writer.NewPropertyWithValue("AutoExposure", lighting.AutoExposure); + writer.NewPropertyWithValue("AutoExposureLow", lighting.AutoExposureLow); + writer.NewPropertyWithValue("AutoExposureHigh", lighting.AutoExposureHigh); + writer.NewPropertyWithValue("PostVignette", lighting.Vignette); + writer.NewPropertyWithValue("GradeTemperature", lighting.Temperature); + writer.NewPropertyWithValue("GradeTint", lighting.Tint); + writer.NewPropertyWithValue("GradeContrast", lighting.Contrast); + writer.NewPropertyWithValue("GradeShadowTint", WriteVec3(lighting.ShadowTint)); + writer.NewPropertyWithValue("GradeHighlightTint", WriteVec3(lighting.HighlightTint)); + writer.NewPropertyWithValue("FilmGrain", lighting.FilmGrain); + writer.NewPropertyWithValue("ChromaticAberration", lighting.ChromaticAberration); + writer.NewPropertyWithValue("PostSaturation", lighting.Saturation); writer.NewLine(false, 2); writer.NewDivider(false); @@ -246,6 +415,11 @@ int SettingsMan::Save(Writer& writer) const { writer.NewLineString("// Gameplay Settings", false); writer.NewLine(false); writer.NewPropertyWithValue("ShowForeignItems", m_ShowForeignItems); + writer.NewPropertyWithValue("TerrainFire", TerrainFire::IsEnabled()); + writer.NewPropertyWithValue("TerrainCollapse", TerrainCollapse::IsEnabled()); + writer.NewPropertyWithValue("FlowingLiquids", FluidSim::IsEnabled()); + writer.NewPropertyWithValue("SmokeBlocksSight", SmokeGrid::IsEnabled()); + writer.NewPropertyWithValue("BurningUnits", ActorFire::IsEnabled()); writer.NewPropertyWithValue("FlashOnBrainDamage", m_FlashOnBrainDamage); writer.NewPropertyWithValue("BlipOnRevealUnseen", m_BlipOnRevealUnseen); writer.NewPropertyWithValue("MaxUnheldItems", g_MovableMan.m_MaxDroppedItems); diff --git a/Source/Managers/SmokeGrid.cpp b/Source/Managers/SmokeGrid.cpp new file mode 100644 index 0000000000..37e073fcf4 --- /dev/null +++ b/Source/Managers/SmokeGrid.cpp @@ -0,0 +1,110 @@ +#include "SmokeGrid.h" +#include "Constants.h" +#include "MOSParticle.h" +#include "Material.h" +#include "MovableMan.h" +#include "SceneMan.h" +#include "Vector.h" + +#include +#include +#include + +using namespace RTE; + +bool SmokeGrid::s_Enabled = true; + +namespace { + constexpr int c_CellSize = 16; + constexpr float c_BlockingDensity = 2.5F; //!< Smoke that adds up to this much along a line of sight hides what's behind it. + + std::vector s_Density; + int s_Width = 0; + int s_Height = 0; + bool s_HasSmoke = false; + + float Sample(int cellX, int cellY) { + if (g_SceneMan.SceneWrapsX()) { + cellX = ((cellX % s_Width) + s_Width) % s_Width; + } + if (cellX < 0 || cellY < 0 || cellX >= s_Width || cellY >= s_Height) { + return 0.0F; + } + return s_Density[static_cast(cellY) * s_Width + cellX]; + } +} // namespace + +void SmokeGrid::Update() { + s_HasSmoke = false; + if (!s_Enabled || !g_SceneMan.GetScene()) { + return; + } + int width = (g_SceneMan.GetSceneWidth() + c_CellSize - 1) / c_CellSize; + int height = (g_SceneMan.GetSceneHeight() + c_CellSize - 1) / c_CellSize; + if (width != s_Width || height != s_Height) { + s_Width = width; + s_Height = height; + s_Density.assign(static_cast(width) * height, 0.0F); + } else { + std::fill(s_Density.begin(), s_Density.end(), 0.0F); + } + for (const MovableObject* particle: g_MovableMan.m_Particles) { + // Smoke: weightless air particles that float up. + if (!particle || particle->GetGlobalAccScalar() >= 0.0F || particle->ToDelete()) { + continue; + } + const MOSParticle* smoke = dynamic_cast(particle); + if (!smoke || !smoke->GetAtom() || smoke->GetAtom()->GetMaterial()->GetIndex() != g_MaterialAir) { + continue; + } + float life = smoke->GetLifetime() > 0 ? std::clamp(1.0F - static_cast(smoke->GetAge()) / static_cast(smoke->GetLifetime()), 0.0F, 1.0F) : 1.0F; + // Bigger puffs are thicker and cover more of the cells around them. + float amount = life * std::clamp(smoke->GetRadius() / 10.0F, 0.2F, 2.0F) * 0.6F; + int cellX = static_cast(std::floor(smoke->GetPos().m_X / c_CellSize)); + int cellY = static_cast(std::floor(smoke->GetPos().m_Y / c_CellSize)); + int reach = smoke->GetRadius() > 12.0F ? 1 : 0; + for (int dy = -reach; dy <= reach; ++dy) { + for (int dx = -reach; dx <= reach; ++dx) { + int x = cellX + dx; + int y = cellY + dy; + if (g_SceneMan.SceneWrapsX()) { + x = ((x % s_Width) + s_Width) % s_Width; + } + if (x >= 0 && y >= 0 && x < s_Width && y < s_Height) { + s_Density[static_cast(y) * s_Width + x] += (dx == 0 && dy == 0) ? amount : amount * 0.4F; + s_HasSmoke = true; + } + } + } + } +} + +float SmokeGrid::GetDensity(const Vector& position) { + if (!s_HasSmoke) { + return 0.0F; + } + return Sample(static_cast(std::floor(position.m_X / c_CellSize)), static_cast(std::floor(position.m_Y / c_CellSize))); +} + +bool SmokeGrid::BlocksSight(const Vector& from, const Vector& to) { + if (!s_Enabled || !s_HasSmoke) { + return false; + } + Vector ray = g_SceneMan.ShortestDistance(from, to, g_SceneMan.SceneWrapsX()); + float length = ray.GetMagnitude(); + if (length < 1.0F) { + return false; + } + // March in half-cell steps, adding up the smoke crossed. + float step = c_CellSize * 0.5F; + int steps = static_cast(length / step) + 1; + float total = 0.0F; + for (int i = 1; i < steps; ++i) { + Vector point = from + ray * (static_cast(i) / static_cast(steps)); + total += GetDensity(point) * (step / c_CellSize); + if (total >= c_BlockingDensity) { + return true; + } + } + return false; +} diff --git a/Source/Managers/SmokeGrid.h b/Source/Managers/SmokeGrid.h new file mode 100644 index 0000000000..fa379b189c --- /dev/null +++ b/Source/Managers/SmokeGrid.h @@ -0,0 +1,29 @@ +#pragma once + +namespace RTE { + class Vector; + + /// A coarse map of how thick smoke is across the scene, rebuilt every simulation update from the smoke particles, so units can't see through smoke. + /// Part of the simulation and deterministic: built from simulated particles in a fixed order on the main thread, then only read. + class SmokeGrid { + + public: + /// Gets whether smoke blocks sight (a gameplay setting). + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether smoke blocks sight. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Rebuilds the map from the current smoke particles. Call once per sim update, from the main thread, before units look around. + static void Update(); + + /// Gets whether thick enough smoke lies between two points to hide one from the other. Safe to call from any thread during the sim update. + static bool BlocksSight(const Vector& from, const Vector& to); + + /// Gets how thick the smoke is at a point, 0 for none. Safe to call from any thread during the sim update. + static float GetDensity(const Vector& position); + + private: + static bool s_Enabled; //!< Whether smoke blocks sight. + }; +} // namespace RTE diff --git a/Source/Managers/TerrainCollapse.cpp b/Source/Managers/TerrainCollapse.cpp new file mode 100644 index 0000000000..b133af7835 --- /dev/null +++ b/Source/Managers/TerrainCollapse.cpp @@ -0,0 +1,316 @@ +#include "TerrainCollapse.h" +#include "Constants.h" +#include "Material.h" +#include "SceneMan.h" +#include "SLTerrain.h" +#include "Scene.h" +#include "TimerMan.h" +#include "Vector.h" +#include "EffectsParticles.h" +#include "FluidSim.h" + +#include +#include +#include +#include +#include +#include + +using namespace RTE; + +bool TerrainCollapse::s_Enabled = true; + +namespace { + struct Check { + int X, Y; + int Radius; + long long DueUpdate; //!< Sim update count when the check runs. + }; + + constexpr int c_MaxIslandPixels = 2500; //!< Bigger detached pieces are left standing; they're too big to crumble convincingly. + std::array s_Anchors{}; //!< Materials that hold a piece up: built structures (concrete, metal) and the world's bedrock. + bool s_AnchorsBuilt = false; + + void BuildAnchors() { + s_Anchors.fill(false); + for (int id = 1; id < 256; ++id) { + const Material* material = g_SceneMan.GetMaterialFromID(static_cast(id)); + if (!material || material->GetIndex() != id) { + continue; + } + const std::string& name = material->GetPresetName(); + // Scrap and mangled metal are debris, not structure. ("Bedrock" is used for ordinary hill cores in some scenes, so it isn't an anchor.) + if (name.find("Scrap") != std::string::npos || name.find("Mangled") != std::string::npos) { + continue; + } + for (const char* word: {"Concrete", "Metal", "Military", "Level End", "Xenocronium", "Door", "Test"}) { + if (name.find(word) != std::string::npos) { + s_Anchors[id] = true; + break; + } + } + } + s_AnchorsBuilt = true; + } + + std::vector s_Pending; //!< Checks queued from (possibly parallel) gib code, waiting to be scheduled. + std::vector s_Scheduled; + std::mutex s_QueueMutex; + const void* s_Scene = nullptr; + int s_CollapsedCount = 0; + + /// A detached piece of terrain falling as a rigid chunk until it lands. + struct FallingPiece { + std::vector Keys; //!< Pixels, y * width + x, sorted. + std::vector Materials; + std::vector Colors; + float Speed = 0.0F; //!< Pixels per sim update. + float Progress = 0.0F; //!< Fraction of a pixel moved but not applied yet. + }; + std::vector s_Falling; + std::unordered_set s_FallingKeys; //!< All pixels of falling pieces, which checks ignore. + + void RebuildFallingKeys() { + s_FallingKeys.clear(); + for (const FallingPiece& piece: s_Falling) { + s_FallingKeys.insert(piece.Keys.begin(), piece.Keys.end()); + } + } + + /// Flood fills the solid piece containing a pixel. Returns true if it's a small floating piece that should fall, filling its pixels. + bool FindFloatingPiece(SLTerrain* terrain, int startX, int startY, int width, int height, bool wrapX, std::unordered_set& supported, std::unordered_set& visited, std::vector& piece) { + piece.clear(); + std::vector stack{startY * width + startX}; + std::unordered_set seen{stack.back()}; + bool floating = true; + while (!stack.empty()) { + int key = stack.back(); + stack.pop_back(); + piece.push_back(key); + if (static_cast(piece.size()) > c_MaxIslandPixels || supported.count(key)) { + floating = false; + break; + } + int x = key % width; + int y = key / width; + if (s_Anchors[static_cast(terrain->GetMaterialPixel(x, y))]) { + floating = false; + break; + } + for (int dy = -1; dy <= 1; ++dy) { + for (int dx = -1; dx <= 1; ++dx) { + if (dx == 0 && dy == 0) { + continue; + } + int nx = x + dx; + int ny = y + dy; + if (wrapX) { + nx = (nx + width) % width; + } + if (nx < 0 || ny < 0 || nx >= width || ny >= height) { + // Touching the edge of the world counts as being held up by it. + floating = false; + continue; + } + int neighbour = ny * width + nx; + if (seen.count(neighbour) || s_FallingKeys.count(neighbour) || terrain->GetMaterialPixel(nx, ny) == g_MaterialAir) { + continue; + } + seen.insert(neighbour); + stack.push_back(neighbour); + } + } + if (!floating) { + break; + } + } + for (int key: seen) { + visited.insert(key); + } + if (!floating) { + // Everything reached is held up; later fills that touch it stop early. + for (int key: seen) { + supported.insert(key); + } + return false; + } + std::sort(piece.begin(), piece.end()); + return true; + } + + void RunCheck(SLTerrain* terrain, const Check& check) { + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + bool wrapX = g_SceneMan.SceneWrapsX(); + std::unordered_set supported; + std::unordered_set visited; + std::vector piece; + std::vector falling; + for (int y = std::max(0, check.Y - check.Radius); y <= std::min(height - 1, check.Y + check.Radius); ++y) { + for (int rawX = check.X - check.Radius; rawX <= check.X + check.Radius; ++rawX) { + int x = wrapX ? (rawX % width + width) % width : rawX; + if (x < 0 || x >= width) { + continue; + } + int key = y * width + x; + if (visited.count(key) || s_FallingKeys.count(key) || terrain->GetMaterialPixel(x, y) == g_MaterialAir) { + continue; + } + if (FindFloatingPiece(terrain, x, y, width, height, wrapX, supported, visited, piece)) { + falling.insert(falling.end(), piece.begin(), piece.end()); + } + } + } + if (falling.empty()) { + return; + } + std::sort(falling.begin(), falling.end()); + falling.erase(std::unique(falling.begin(), falling.end()), falling.end()); + // Lift the piece out of the terrain; it falls as a rigid chunk from the next update on. + FallingPiece fallingPiece; + fallingPiece.Keys = falling; + for (int key: falling) { + int x = key % width; + int y = key / width; + fallingPiece.Materials.push_back(static_cast(terrain->GetMaterialPixel(x, y))); + fallingPiece.Colors.push_back(terrain->GetFGColorPixel(x, y)); + } + s_CollapsedCount += static_cast(falling.size()); + s_Falling.push_back(std::move(fallingPiece)); + RebuildFallingKeys(); + } + /// Moves falling pieces down, accelerating under gravity, until they land; landed pieces are removed. + void UpdateFalling(SLTerrain* terrain) { + if (s_Falling.empty()) { + return; + } + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + for (FallingPiece& piece: s_Falling) { + piece.Speed = std::min(piece.Speed + 0.12F, 6.0F); + piece.Progress += piece.Speed; + int steps = static_cast(piece.Progress); + piece.Progress -= static_cast(steps); + std::unordered_set inPiece(piece.Keys.begin(), piece.Keys.end()); + bool landed = false; + for (int step = 0; step < steps && !landed; ++step) { + // Blocked if any pixel would move into solid terrain that isn't part of the piece. + for (int key: piece.Keys) { + int below = key + width; + if (key / width + 1 >= height) { + continue; + } + if (!inPiece.count(below) && terrain->GetMaterialPixel(below % width, below / width) != g_MaterialAir) { + landed = true; + break; + } + } + if (landed) { + break; + } + for (int key: piece.Keys) { + terrain->SetMaterialPixel(key % width, key / width, g_MaterialAir); + terrain->SetFGColorPixel(key % width, key / width, ColorKeys::g_MaskColor); + } + std::vector moved; + std::vector movedMaterials; + std::vector movedColors; + for (size_t i = 0; i < piece.Keys.size(); ++i) { + int below = piece.Keys[i] + width; + // Pixels falling out of the bottom of the world are gone. + if (below / width < height) { + moved.push_back(below); + movedMaterials.push_back(piece.Materials[i]); + movedColors.push_back(piece.Colors[i]); + } + } + piece.Keys.swap(moved); + piece.Materials.swap(movedMaterials); + piece.Colors.swap(movedColors); + for (size_t i = 0; i < piece.Keys.size(); ++i) { + terrain->SetMaterialPixel(piece.Keys[i] % width, piece.Keys[i] / width, piece.Materials[i]); + terrain->SetFGColorPixel(piece.Keys[i] % width, piece.Keys[i] / width, piece.Colors[i]); + } + inPiece = std::unordered_set(piece.Keys.begin(), piece.Keys.end()); + } + if (landed || piece.Keys.empty()) { + int minX = width; + int minY = height; + int maxX = -1; + int maxY = -1; + for (int key: piece.Keys) { + minX = std::min(minX, key % width); + minY = std::min(minY, key / width); + maxX = std::max(maxX, key % width); + maxY = std::max(maxY, key / width); + } + if (maxX >= 0) { + terrain->AddUpdatedMaterialArea(Box(Vector(static_cast(minX), static_cast(minY - 64)), static_cast(maxX - minX + 1), static_cast(maxY - minY + 65))); + FluidSim::Disturb(Vector(static_cast(minX + maxX) * 0.5F, static_cast(minY + maxY) * 0.5F), static_cast(std::max(maxX - minX, maxY - minY)) * 0.5F + 8.0F); + // A thud of dust where it lands (visual only). + EffectsParticles::SpawnExplosion(Vector(static_cast(minX + maxX) * 0.5F, static_cast(maxY)), std::min(600.0F + static_cast(piece.Keys.size()) * 6.0F, 8000.0F) * std::max(0.3F, piece.Speed / 6.0F)); + } + piece.Keys.clear(); + } + } + s_Falling.erase(std::remove_if(s_Falling.begin(), s_Falling.end(), [](const FallingPiece& piece) { return piece.Keys.empty(); }), s_Falling.end()); + RebuildFallingKeys(); + } +} // namespace + +void TerrainCollapse::QueueCheck(const Vector& position, float radius) { + if (!s_Enabled) { + return; + } + std::scoped_lock lock(s_QueueMutex); + s_Pending.push_back({static_cast(position.m_X), static_cast(position.m_Y), static_cast(radius), 0}); +} + +void TerrainCollapse::Update() { + if (g_SceneMan.GetScene() != s_Scene) { + Clear(); + s_Scene = g_SceneMan.GetScene(); + s_CollapsedCount = 0; + s_AnchorsBuilt = false; + } + Scene* scene = g_SceneMan.GetScene(); + SLTerrain* terrain = scene ? scene->GetTerrain() : nullptr; + if (!terrain || !s_Enabled) { + Clear(); + return; + } + if (!s_AnchorsBuilt) { + BuildAnchors(); + } + long long now = g_TimerMan.GetSimUpdateCount(); + { + std::scoped_lock lock(s_QueueMutex); + // Sort for a fixed order, whatever order the gib code queued them in. The crater is still being dug by the blast's particles, + // so check after half a second and again after a second and a half. + std::sort(s_Pending.begin(), s_Pending.end(), [](const Check& a, const Check& b) { return a.Y != b.Y ? a.Y < b.Y : (a.X != b.X ? a.X < b.X : a.Radius < b.Radius); }); + for (const Check& check: s_Pending) { + s_Scheduled.push_back({check.X, check.Y, check.Radius, now + 30}); + s_Scheduled.push_back({check.X, check.Y, check.Radius, now + 90}); + } + s_Pending.clear(); + } + UpdateFalling(terrain); + for (const Check& check: s_Scheduled) { + if (check.DueUpdate <= now) { + RunCheck(terrain, check); + } + } + s_Scheduled.erase(std::remove_if(s_Scheduled.begin(), s_Scheduled.end(), [now](const Check& check) { return check.DueUpdate <= now; }), s_Scheduled.end()); +} + +void TerrainCollapse::Clear() { + s_Falling.clear(); + s_FallingKeys.clear(); + std::scoped_lock lock(s_QueueMutex); + s_Pending.clear(); + s_Scheduled.clear(); +} + +int TerrainCollapse::GetCollapsedCount() { + return s_CollapsedCount; +} diff --git a/Source/Managers/TerrainCollapse.h b/Source/Managers/TerrainCollapse.h new file mode 100644 index 0000000000..34511875a8 --- /dev/null +++ b/Source/Managers/TerrainCollapse.h @@ -0,0 +1,35 @@ +#pragma once + +namespace RTE { + class Vector; + + /// Terrain left floating after explosions breaks loose: pieces of earth, rock and sand no longer touching any other terrain + /// fall as loose pixels and pile up where they land. Built structures (concrete, metal) stay up. + /// Part of the simulation and deterministic: checks happen in fixed sim steps, in sorted order, with no random numbers. + class TerrainCollapse { + + public: + /// Gets whether collapsing terrain is on (a gameplay setting). + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether collapsing terrain is on. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Queues a check for floating terrain around a crater. Thread safe. + /// @param position Centre of the crater, in scene coordinates. + /// @param radius How far around it to look. + static void QueueCheck(const Vector& position, float radius); + + /// Runs due checks. Call once per sim update, from the main thread. + static void Update(); + + /// Forgets pending checks, e.g. when the scene changes. + static void Clear(); + + /// Gets how many pixels have collapsed in this scene, for statistics. + static int GetCollapsedCount(); + + private: + static bool s_Enabled; //!< Whether collapsing terrain is on. + }; +} // namespace RTE diff --git a/Source/Managers/TerrainFire.cpp b/Source/Managers/TerrainFire.cpp new file mode 100644 index 0000000000..85c3bf69a4 --- /dev/null +++ b/Source/Managers/TerrainFire.cpp @@ -0,0 +1,557 @@ +#include "TerrainFire.h" +#include "Constants.h" +#include "ConsoleMan.h" +#include "Material.h" +#include "MovableMan.h" +#include "MovableObject.h" +#include "MOPixel.h" +#include "PostProcessMan.h" +#include "PresetMan.h" +#include "SceneMan.h" +#include "SLTerrain.h" +#include "Scene.h" +#include "TimerMan.h" +#include "Vector.h" +#include "EffectsParticles.h" +#include "WeatherEffects.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace RTE; + +bool TerrainFire::s_Enabled = true; + +namespace { + enum class Fuel : unsigned char { + None, + Grass, //!< Grass, vegetation, leaves: flares up and burns away quickly. + Wood, //!< Wood, cloth, rubber: burns slowly from the surface in, leaving ash. + Oil //!< Burns fast and hot, spreads eagerly. + }; + + struct FuelProperties { + int MinTicks, MaxTicks; //!< How long a pixel burns, in fire ticks. + float Spread; //!< Chance per tick of setting each flammable neighbour alight. + bool LeavesAsh; + }; + + constexpr FuelProperties c_Fuels[] = { + {0, 0, 0.0F, false}, // None + {25, 50, 0.25F, false}, // Grass + {40, 90, 0.07F, true}, // Wood + {20, 40, 0.5F, false}, // Oil + }; + + constexpr int c_TickInterval = 3; //!< Sim updates per fire tick (about 20 per second). + constexpr size_t c_MaxBurning = 6000; + + struct BurningPixel { + int X, Y; + short TicksLeft; + short TotalTicks; + Fuel Kind; + }; + + std::array s_FuelTable{}; + bool s_FuelTableBuilt = false; + int s_AshMaterial = -1; + int s_AshColor = 0; + + std::map s_Burning; //!< Keyed by y * width + x, so iteration order is deterministic. + std::vector> s_IgniteQueue; + std::vector> s_AreaQueue; + std::vector s_DouseQueue; //!< x, y, radius. + std::array s_DousingTable{}; + int s_WaterColor = -1; //!< Palette index water is drawn with. + std::mutex s_QueueMutex; + std::unordered_map s_FireSourceCache; + std::mutex s_FireSourceMutex; + + const void* s_Scene = nullptr; + std::string s_PendingLoadState; //!< Saved fire to restore when the loaded scene starts. + const void* s_MaterialBitmap = nullptr; + long long s_LastTickUpdate = -1; + unsigned int s_Random = 0x2545F491u; //!< The fire's own deterministic random state, reset per scene. + unsigned int s_LightFlicker = 0x9E3779B9u; //!< Render only: flicker of the fire's lights. + struct FireLight { + glm::vec2 Position; + float Radius; + float Intensity; + }; + std::vector s_Lights; //!< Lights of the fire as of its last tick, registered every sim update (scene lights are cleared every update). + + float Random01(unsigned int& state) { + state ^= state << 13; + state ^= state >> 17; + state ^= state << 5; + return static_cast(state & 0xFFFFFF) / static_cast(0x1000000); + } + + void RegisterLights() { + for (const FireLight& light: s_Lights) { + float flicker = 0.75F + 0.25F * Random01(s_LightFlicker); + g_PostProcessMan.AddLight(Vector(light.Position.x, light.Position.y), light.Radius, 255.0F, 130.0F, 45.0F, light.Intensity * flicker); + } + } + + bool Contains(const std::string& text, const char* word) { return text.find(word) != std::string::npos; } + + void BuildFuelTable() { + s_FuelTable.fill(Fuel::None); + s_DousingTable.fill(false); + s_AshMaterial = -1; + for (int id = 1; id < 256; ++id) { + const Material* material = g_SceneMan.GetMaterialFromID(static_cast(id)); + if (!material || material->GetIndex() != id) { + continue; + } + const std::string& name = material->GetPresetName(); + s_DousingTable[id] = name == "Water"; + if (name == "Water") { + Color waterColor = material->GetColor(); + waterColor.RecalculateIndex(); + s_WaterColor = waterColor.GetIndex(); + } + if (Contains(name, "Ash")) { + s_AshMaterial = id; + Color ashColor = material->GetColor(); + ashColor.RecalculateIndex(); + s_AshColor = ashColor.GetIndex(); + } else if (Contains(name, "Oil")) { + s_FuelTable[id] = Fuel::Oil; + } else if (Contains(name, "Grass") || Contains(name, "Vegetation") || Contains(name, "Leaf") || Contains(name, "Leaves") || Contains(name, "Hay") || Contains(name, "Straw") || Contains(name, "Plant")) { + s_FuelTable[id] = Fuel::Grass; + } else if (Contains(name, "Wood") || Contains(name, "Cloth") || Contains(name, "Rubber") || Contains(name, "Timber")) { + s_FuelTable[id] = Fuel::Wood; + } + } + s_FuelTableBuilt = true; + } + + SLTerrain* CurrentTerrain() { + Scene* scene = g_SceneMan.GetScene(); + return scene ? scene->GetTerrain() : nullptr; + } + + bool WrapPixel(int& x, int& y, int width, int height) { + if (g_SceneMan.SceneWrapsX()) { + x = ((x % width) + width) % width; + } + if (g_SceneMan.SceneWrapsY()) { + y = ((y % height) + height) % height; + } + return x >= 0 && y >= 0 && x < width && y < height; + } + + /// Fire needs air: a pixel only catches if it touches air (or ash, which lets air through). + bool IsExposed(const SLTerrain* terrain, int x, int y, int width, int height) { + static constexpr int offsets[4][2] = {{0, -1}, {-1, 0}, {1, 0}, {0, 1}}; + for (const auto& offset: offsets) { + int nx = x + offset[0]; + int ny = y + offset[1]; + if (!WrapPixel(nx, ny, width, height)) { + return true; + } + int material = terrain->GetMaterialPixel(nx, ny); + if (material == g_MaterialAir || material == s_AshMaterial) { + return true; + } + } + return false; + } + + void TryIgnite(SLTerrain* terrain, int x, int y, int width, int height) { + if (s_Burning.size() >= c_MaxBurning || !WrapPixel(x, y, width, height)) { + return; + } + int key = y * width + x; + if (s_Burning.count(key)) { + return; + } + Fuel kind = s_FuelTable[static_cast(terrain->GetMaterialPixel(x, y))]; + if (kind == Fuel::None || !IsExposed(terrain, x, y, width, height)) { + return; + } + const FuelProperties& fuel = c_Fuels[static_cast(kind)]; + short ticks = static_cast(fuel.MinTicks + static_cast(Random01(s_Random) * static_cast(fuel.MaxTicks - fuel.MinTicks + 1))); + s_Burning.emplace(key, BurningPixel{x, y, ticks, ticks, kind}); + } + + MovableObject* CreateEffect(const char* className, const char* presetName) { + const Entity* preset = g_PresetMan.GetEntityPreset(className, presetName, "Base.rte"); + return preset ? dynamic_cast(preset->Clone()) : nullptr; + } +} // namespace + +bool TerrainFire::IsFlammable(int materialID) { + return s_FuelTableBuilt && materialID > 0 && materialID < 256 && s_FuelTable[materialID] != Fuel::None; +} + +bool TerrainFire::IsFireSource(const MovableObject* object) { + if (!object) { + return false; + } + const std::string& name = object->GetPresetName(); + std::scoped_lock lock(s_FireSourceMutex); + auto found = s_FireSourceCache.find(name); + if (found != s_FireSourceCache.end()) { + return found->second; + } + bool source = Contains(name, "Fire") || Contains(name, "Flame") || Contains(name, "Napalm") || Contains(name, "Burn") || Contains(name, "Incendi") || Contains(name, "Ember"); + s_FireSourceCache.emplace(name, source); + return source; +} + +bool TerrainFire::IsBurningNear(const Vector& position, int radius) { + SLTerrain* terrain = CurrentTerrain(); + if (s_Burning.empty() || !terrain) { + return false; + } + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + int centerX = position.GetFloorIntX(); + int centerY = position.GetFloorIntY(); + for (int dy = -radius; dy <= radius; ++dy) { + for (int dx = -radius; dx <= radius; ++dx) { + int x = centerX + dx; + int y = centerY + dy; + if (WrapPixel(x, y, width, height) && s_Burning.count(y * width + x)) { + return true; + } + } + } + return false; +} + +void TerrainFire::SpawnSteam(const Vector& position, int count) { + for (int i = 0; i < count; ++i) { + if (MovableObject* steam = CreateEffect("MOSParticle", "Steam Puff")) { + steam->SetPos(position + Vector((Random01(s_Random) - 0.5F) * 6.0F, -2.0F - Random01(s_Random) * 4.0F)); + steam->SetVel(Vector((Random01(s_Random) - 0.5F) * 1.5F, -1.0F - Random01(s_Random) * 1.5F)); + g_MovableMan.AddParticle(steam); + } + } +} + +bool TerrainFire::IsDousing(int materialID) { + return s_FuelTableBuilt && materialID > 0 && materialID < 256 && s_DousingTable[materialID]; +} + +bool TerrainFire::IsDousingParticle(const MovableObject* particle, const Material* material) { + if (!material || !IsDousing(material->GetIndex())) { + return false; + } + const MOPixel* pixel = dynamic_cast(particle); + // Only drops of water: blood sprays are water-material sprites too. + return pixel && pixel->GetColor().GetIndex() == s_WaterColor; +} + +void TerrainFire::QueueDouse(int x, int y, int radius) { + if (!s_Enabled) { + return; + } + std::scoped_lock lock(s_QueueMutex); + if (s_DouseQueue.size() < 4096) { + s_DouseQueue.emplace_back(x, y, radius); + } +} + +void TerrainFire::QueueIgnite(int x, int y) { + if (!s_Enabled) { + return; + } + std::scoped_lock lock(s_QueueMutex); + if (s_IgniteQueue.size() < 4096) { + s_IgniteQueue.emplace_back(x, y); + } +} + +void TerrainFire::QueueIgniteArea(const Vector& position, float radius) { + if (!s_Enabled) { + return; + } + std::scoped_lock lock(s_QueueMutex); + s_AreaQueue.emplace_back(glm::vec2(position.m_X, position.m_Y), radius); +} + +void TerrainFire::Update() { + SLTerrain* terrain = CurrentTerrain(); + const void* materialBitmap = terrain ? terrain->GetMaterialBitmap() : nullptr; + if (g_SceneMan.GetScene() != s_Scene || materialBitmap != s_MaterialBitmap) { + // New scene: start over, deterministically. + Clear(); + s_Scene = g_SceneMan.GetScene(); + s_MaterialBitmap = materialBitmap; + s_Random = 0x2545F491u; + s_FuelTableBuilt = false; + if (!s_PendingLoadState.empty() && s_Scene) { + // Restore a saved game's fire: "x y ticksLeft totalTicks kind" per burning pixel, then the random state. + std::istringstream stream(s_PendingLoadState); + unsigned int random = 0; + stream >> random; + if (random != 0) { + s_Random = random; + } + SLTerrain* loadedTerrain = CurrentTerrain(); + int loadedWidth = loadedTerrain ? loadedTerrain->GetBitmap()->w : 0; + int x = 0; + int y = 0; + int ticksLeft = 0; + int totalTicks = 0; + int kind = 0; + while (loadedWidth > 0 && stream >> x >> y >> ticksLeft >> totalTicks >> kind) { + if (kind > 0 && kind <= static_cast(Fuel::Oil) && s_Burning.size() < c_MaxBurning) { + s_Burning.emplace(y * loadedWidth + x, BurningPixel{x, y, static_cast(ticksLeft), static_cast(totalTicks), static_cast(kind)}); + } + } + g_ConsoleMan.PrintString("SYSTEM: Restored " + std::to_string(s_Burning.size()) + " burning terrain pixels from the saved game."); + } + s_PendingLoadState.clear(); + } + if (!terrain || !s_Enabled) { + std::scoped_lock lock(s_QueueMutex); + s_IgniteQueue.clear(); + s_AreaQueue.clear(); + s_DouseQueue.clear(); + s_Burning.clear(); + return; + } + if (!s_FuelTableBuilt) { + BuildFuelTable(); + } + long long simUpdate = g_TimerMan.GetSimUpdateCount(); + if (s_LastTickUpdate >= 0 && simUpdate - s_LastTickUpdate < c_TickInterval) { + RegisterLights(); + return; + } + s_LastTickUpdate = simUpdate; + + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + + // Apply queued ignitions in a fixed order, whatever order the (possibly parallel) collision code queued them in. + std::vector> ignitions; + std::vector> areas; + std::vector douses; + { + std::scoped_lock lock(s_QueueMutex); + ignitions.swap(s_IgniteQueue); + areas.swap(s_AreaQueue); + douses.swap(s_DouseQueue); + } + std::sort(ignitions.begin(), ignitions.end(), [](const auto& a, const auto& b) { return a.second != b.second ? a.second < b.second : a.first < b.first; }); + ignitions.erase(std::unique(ignitions.begin(), ignitions.end()), ignitions.end()); + for (const auto& [x, y]: ignitions) { + TryIgnite(terrain, x, y, width, height); + } + std::sort(areas.begin(), areas.end(), [](const auto& a, const auto& b) { return a.first.y != b.first.y ? a.first.y < b.first.y : (a.first.x != b.first.x ? a.first.x < b.first.x : a.second < b.second); }); + for (const auto& [center, radius]: areas) { + int reach = static_cast(radius); + int centerX = static_cast(std::floor(center.x)); + int centerY = static_cast(std::floor(center.y)); + for (int dy = -reach; dy <= reach; dy += 2) { + for (int dx = -reach; dx <= reach; dx += 2) { + if (dx * dx + dy * dy <= reach * reach && Random01(s_Random) < 0.35F) { + TryIgnite(terrain, centerX + dx, centerY + dy, width, height); + } + } + } + } + // Water last, so it wins over anything set alight at the same time. + std::sort(douses.begin(), douses.end(), [](const glm::ivec3& a, const glm::ivec3& b) { return a.y != b.y ? a.y < b.y : (a.x != b.x ? a.x < b.x : a.z < b.z); }); + for (const glm::ivec3& douse: douses) { + if (s_Burning.empty()) { + break; + } + size_t putOut = 0; + for (int dy = -douse.z; dy <= douse.z; ++dy) { + for (int dx = -douse.z; dx <= douse.z; ++dx) { + int x = douse.x + dx; + int y = douse.y + dy; + if (dx * dx + dy * dy <= douse.z * douse.z && WrapPixel(x, y, width, height)) { + putOut += s_Burning.erase(y * width + x); + } + } + } + // Water on fire hisses into steam. + if (putOut > 0 && Random01(s_Random) < 0.5F) { + SpawnSteam(Vector(static_cast(douse.x), static_cast(douse.y)), 1); + } + } + if (s_Burning.empty()) { + s_Lights.clear(); + return; + } + + // Spread to neighbours (fire climbs: up is likelier than sideways, down least, and downwind likelier than upwind), then burn down. + // Rain and snow damp it: it spreads less and burns out sooner. In dry wind, embers carry it a little way downwind. + static constexpr int neighbours[4][2] = {{0, -1}, {-1, 0}, {1, 0}, {0, 1}}; + float rain = WeatherEffects::GetRain(); + float snow = WeatherEffects::GetSnow(); + float wind = WeatherEffects::GetWind(); + float damping = std::max(1.0F - 0.75F * rain - 0.35F * snow, 0.1F); + const float directionScale[4] = {2.2F, 1.0F - 0.7F * std::max(wind, 0.0F) + 0.8F * std::max(-wind, 0.0F), 1.0F + 0.8F * std::max(wind, 0.0F) - 0.7F * std::max(-wind, 0.0F), 0.4F}; + float emberChance = (rain == 0.0F && snow == 0.0F) ? 0.006F * std::abs(wind) : 0.0F; + float quenchChance = 0.3F * rain + 0.1F * snow; + std::vector> spreadTo; + std::vector burntOut; + std::vector goneOut; + for (auto& [key, pixel]: s_Burning) { + if (s_FuelTable[static_cast(terrain->GetMaterialPixel(pixel.X, pixel.Y))] == Fuel::None) { + // The fuel flowed or was blown away. + goneOut.push_back(key); + continue; + } + const FuelProperties& fuel = c_Fuels[static_cast(pixel.Kind)]; + for (int i = 0; i < 4; ++i) { + if (Random01(s_Random) < fuel.Spread * directionScale[i] * damping) { + spreadTo.emplace_back(pixel.X + neighbours[i][0], pixel.Y + neighbours[i][1]); + } + } + if (emberChance > 0.0F && Random01(s_Random) < emberChance) { + int distance = 3 + static_cast(Random01(s_Random) * 9.0F); + spreadTo.emplace_back(pixel.X + (wind > 0.0F ? distance : -distance), pixel.Y - static_cast(Random01(s_Random) * 5.0F)); + } + if (quenchChance > 0.0F && Random01(s_Random) < quenchChance) { + --pixel.TicksLeft; + } + if (--pixel.TicksLeft <= 0) { + burntOut.push_back(key); + } + } + + for (int key: goneOut) { + s_Burning.erase(key); + } + + // Burnt out pixels become air or ash. + int minX = width; + int minY = height; + int maxX = -1; + int maxY = -1; + for (int key: burntOut) { + const BurningPixel& pixel = s_Burning[key]; + bool ash = c_Fuels[static_cast(pixel.Kind)].LeavesAsh && s_AshMaterial > 0; + terrain->SetMaterialPixel(pixel.X, pixel.Y, ash ? s_AshMaterial : g_MaterialAir); + terrain->SetFGColorPixel(pixel.X, pixel.Y, ash ? s_AshColor : ColorKeys::g_MaskColor); + minX = std::min(minX, pixel.X); + minY = std::min(minY, pixel.Y); + maxX = std::max(maxX, pixel.X); + maxY = std::max(maxY, pixel.Y); + s_Burning.erase(key); + } + if (maxX >= 0) { + // Let the pathfinder know the terrain changed. + terrain->AddUpdatedMaterialArea(Box(Vector(static_cast(minX), static_cast(minY)), static_cast(maxX - minX + 1), static_cast(maxY - minY + 1))); + } + for (const auto& [x, y]: spreadTo) { + TryIgnite(terrain, x, y, width, height); + } + + // Group burning pixels into cells for flames, smoke and light. std::map keeps this ordered and deterministic. + constexpr int cellSize = 24; + std::map> cells; + for (const auto& [key, pixel]: s_Burning) { + int cellKey = (pixel.Y / cellSize) * ((width + cellSize - 1) / cellSize) + pixel.X / cellSize; + auto& cell = cells[cellKey]; + if (cell.second == 0) { + cell.first = glm::ivec2(pixel.X, pixel.Y); + } + cell.second++; + } + s_Lights.clear(); + for (const auto& [cellKey, cell]: cells) { + const glm::ivec2& position = cell.first; + int count = cell.second; + // Flames that hurt whatever stands in them. + if (count >= 2 && Random01(s_Random) < 0.25F) { + if (MovableObject* flame = CreateEffect("MOPixel", "Flame Hurt Particle")) { + flame->SetPos(Vector(static_cast(position.x), static_cast(position.y - 2))); + flame->SetVel(Vector((Random01(s_Random) - 0.5F) * 2.0F, -2.0F - Random01(s_Random) * 3.0F)); + g_MovableMan.AddParticle(flame); + } + } + // Smoke rising from bigger fires. + if (count >= 4 && Random01(s_Random) < 0.2F) { + if (MovableObject* smoke = CreateEffect("MOSParticle", "Tiny Smoke Ball 1")) { + smoke->SetPos(Vector(static_cast(position.x), static_cast(position.y - 3))); + smoke->SetVel(Vector((Random01(s_Random) - 0.5F) * 1.0F, -1.0F - Random01(s_Random))); + g_MovableMan.AddParticle(smoke); + } + } + // Light (render only, so it may flicker with its own random numbers). + if (s_Lights.size() < 48 && count >= 2) { + s_Lights.push_back({glm::vec2(static_cast(position.x), static_cast(position.y - 4)), std::min(40.0F + static_cast(count) * 2.0F, 130.0F), std::min(0.6F + static_cast(count) * 0.05F, 1.6F)}); + } + } + RegisterLights(); +} + +void TerrainFire::Extinguish(int x, int y) { + if (s_Burning.empty()) { + return; + } + SLTerrain* terrain = CurrentTerrain(); + if (!terrain) { + return; + } + int width = terrain->GetBitmap()->w; + int height = terrain->GetBitmap()->h; + if (WrapPixel(x, y, width, height) && s_Burning.erase(y * width + x) > 0 && Random01(s_Random) < 0.08F) { + SpawnSteam(Vector(static_cast(x), static_cast(y)), 1); + } +} + +void TerrainFire::GetBurning(const glm::vec2& screenOrigin, int width, int height, std::vector& burning) { + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + bool wraps = g_SceneMan.SceneWrapsX(); + for (const auto& [key, pixel]: s_Burning) { + glm::vec2 position = glm::vec2(static_cast(pixel.X), static_cast(pixel.Y)) - screenOrigin; + if (wraps) { + if (position.x < -sceneWidth * 0.5F) { + position.x += sceneWidth; + } else if (position.x > sceneWidth * 0.5F) { + position.x -= sceneWidth; + } + } + if (position.x < -2.0F || position.y < -2.0F || position.x > static_cast(width) + 2.0F || position.y > static_cast(height) + 2.0F) { + continue; + } + float heat = static_cast(pixel.TicksLeft) / static_cast(std::max(pixel.TotalTicks, 1)); + burning.emplace_back(position, heat); + } +} + +std::string TerrainFire::GetSaveState() { + std::ostringstream stream; + stream << s_Random; + for (const auto& [key, pixel]: s_Burning) { + stream << ' ' << pixel.X << ' ' << pixel.Y << ' ' << pixel.TicksLeft << ' ' << pixel.TotalTicks << ' ' << static_cast(pixel.Kind); + } + return stream.str(); +} + +void TerrainFire::SetPendingLoadState(const std::string& state) { + s_PendingLoadState = state; +} + +void TerrainFire::Clear() { + s_Burning.clear(); + s_Lights.clear(); + s_LastTickUpdate = -1; + std::scoped_lock lock(s_QueueMutex); + s_IgniteQueue.clear(); + s_AreaQueue.clear(); + s_DouseQueue.clear(); +} + +int TerrainFire::GetCount() { + return static_cast(s_Burning.size()); +} diff --git a/Source/Managers/TerrainFire.h b/Source/Managers/TerrainFire.h new file mode 100644 index 0000000000..06cf1f8b8b --- /dev/null +++ b/Source/Managers/TerrainFire.h @@ -0,0 +1,81 @@ +#pragma once + +#include "glm/glm.hpp" +#include +#include + +namespace RTE { + class MovableObject; + class Vector; + class Material; + + /// Fire that spreads through flammable terrain (grass, vegetation, wood, oil) and burns it away or to ash. + /// This is part of the simulation and deterministic: it updates in fixed sim steps with its own seeded random numbers, + /// and ignitions queued from (possibly parallel) collision code are sorted before they're applied. + class TerrainFire { + + public: + /// Gets whether terrain fire is on (a gameplay setting). + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether terrain fire is on. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Gets whether a terrain material can burn. Cheap; safe to call from collision code. + static bool IsFlammable(int materialID); + + /// Gets whether a moving object sets flammable terrain alight when it touches it (fire, flame and napalm particles). Thread safe. + static bool IsFireSource(const MovableObject* object); + + /// Queues an ignition of the terrain pixel at a position. Thread safe. + static void QueueIgnite(int x, int y); + + /// Queues an explosion's chance of setting flammable terrain around it alight. Thread safe. + static void QueueIgniteArea(const Vector& position, float radius); + + /// Puts out the fire at a pixel, if it's burning. Call from the simulation (main thread). + static void Extinguish(int x, int y); + + /// Gets whether a material puts fire out where it splashes (water). Thread safe. + static bool IsDousing(int materialID); + + /// Gets whether a particle puts fire out: water drawn in water's own colour (blood is drawn in water too, but red, and doesn't). Thread safe. + /// @param particle The particle. + /// @param material Its material. + static bool IsDousingParticle(const MovableObject* particle, const Material* material); + + /// Queues putting out the fire around a point, where water splashed. Thread safe. + static void QueueDouse(int x, int y, int radius); + + /// Gets whether any terrain is burning within a square around a point. Safe to call during the sim update, from any thread, but not while the fire itself updates. + /// @param position The centre. + /// @param radius Half the square's side, in pixels. + static bool IsBurningNear(const Vector& position, int radius); + + /// Puffs of steam (where water meets fire or lava), which rise, fade and block sight like smoke. Main thread only. + /// @param position Where. + /// @param count How many puffs. + static void SpawnSteam(const Vector& position, int count); + + /// Advances the fire one simulation step. Call once per sim update, from the main thread. + static void Update(); + + /// Gets the burning pixels visible in a screen area, relative to it, with a 0..1 heat each (in z). + static void GetBurning(const glm::vec2& screenOrigin, int width, int height, std::vector& burning); + + /// Gets the current state as text, for saved games. + static std::string GetSaveState(); + + /// Sets state from a saved game, applied when the loaded scene starts. + static void SetPendingLoadState(const std::string& state); + + /// Puts out all fire, e.g. when the scene changes. + static void Clear(); + + /// Gets how many pixels are burning, for statistics. + static int GetCount(); + + private: + static bool s_Enabled; //!< Whether terrain fire is on. + }; +} // namespace RTE diff --git a/Source/Managers/TimerMan.h b/Source/Managers/TimerMan.h index b1f272b36f..aa98894baf 100644 --- a/Source/Managers/TimerMan.h +++ b/Source/Managers/TimerMan.h @@ -48,6 +48,10 @@ namespace RTE { /// @return Whether there is enough sim time to do a physics update. bool TimeForSimUpdate() const { return m_SimAccumulator >= m_DeltaTime; } + /// Gets how far the current frame is between the last simulation update and the next one, from 0 to 1. Used to interpolate render state between sim updates so motion is smooth at any frame rate. + /// @return The proportion of a sim update that has elapsed since the last one. + float GetSimUpdateProportion() const { return m_DeltaTime > 0 ? std::clamp(static_cast(m_SimAccumulator) / static_cast(m_DeltaTime), 0.0F, 1.0F) : 1.0F; } + /// Tells whether the current simulation update will be drawn in a frame. Use this to check if it is necessary to draw purely graphical things during the sim update. /// @return Whether this is the last sim update before a frame with its results will appear. bool DrawnSimUpdate() const { return m_DrawnSimUpdate; } @@ -91,7 +95,7 @@ namespace RTE { /// Gets a current global simulation time measured in ms ticks from the start of the simulation up to the last UpdateSim of this TimerMan. /// @return The number of ms passed since the simulation started. - long long GetSimTimeMS() const { return static_cast((static_cast(m_SimTimeTicks) / static_cast(m_TicksPerSecond)) * 0.001F); } + long long GetSimTimeMS() const { return static_cast((static_cast(m_SimTimeTicks) / static_cast(m_TicksPerSecond)) * 1000.0); } /// Gets the current number of ticks that the simulation should be updating with. /// @return The current fixed delta time that the simulation should be updating with, in ticks. diff --git a/Source/Managers/UInputMan.cpp b/Source/Managers/UInputMan.cpp index a1d4c261ff..97783c358d 100644 --- a/Source/Managers/UInputMan.cpp +++ b/Source/Managers/UInputMan.cpp @@ -8,6 +8,7 @@ #include "ConsoleMan.h" #include "PresetMan.h" #include "PerformanceMan.h" +#include "DebugMan.h" #include "MenuMan.h" #include "Icon.h" #include "GameActivity.h" diff --git a/Source/Managers/WeatherEffects.h b/Source/Managers/WeatherEffects.h new file mode 100644 index 0000000000..9d27653b18 --- /dev/null +++ b/Source/Managers/WeatherEffects.h @@ -0,0 +1,35 @@ +#pragma once + +#include "PostProcessMan.h" + +#include + +namespace RTE { + + /// How the scene's weather affects the simulation: rain and snow damp fire, snow slows walkers, wind pushes fire downwind. + /// The weather comes from the scene, the scenario setup or the player's settings, and stays the same through a game. + namespace WeatherEffects { + + /// Gets how hard it's raining, 0 for not at all to 1 for a downpour. + inline float GetRain() { + const LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + return settings.WeatherType == 1 ? std::clamp(settings.WeatherIntensity, 0.0F, 1.0F) : 0.0F; + } + + /// Gets how hard it's snowing, 0 for not at all to 1 for a blizzard. + inline float GetSnow() { + const LightingSettings& settings = g_PostProcessMan.GetLightingSettings(); + return settings.WeatherType == 2 ? std::clamp(settings.WeatherIntensity, 0.0F, 1.0F) : 0.0F; + } + + /// Gets the wind, from -1 (a gale blowing left) to 1 (a gale blowing right). + inline float GetWind() { + return std::clamp(g_PostProcessMan.GetLightingSettings().Wind / 150.0F, -1.0F, 1.0F); + } + + /// Gets how fast units walk compared to normal: snow slows them down a little. + inline float GetWalkSpeedMultiplier() { + return 1.0F - 0.15F * GetSnow(); + } + } // namespace WeatherEffects +} // namespace RTE diff --git a/Source/Managers/WindowMan.cpp b/Source/Managers/WindowMan.cpp index 51c87a1616..b40a06bc93 100644 --- a/Source/Managers/WindowMan.cpp +++ b/Source/Managers/WindowMan.cpp @@ -1,4 +1,10 @@ #include "WindowMan.h" +#include "TextOverlay.h" +#include +#include "loadpng.h" +#include "System.h" +#include +#include #include "RTEError.h" #include "SDL3/SDL.h" #include "SettingsMan.h" @@ -9,7 +15,10 @@ #include "PresetMan.h" #include "PostProcessMan.h" #include "RenderTarget.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" +#include "RenderMan.h" +#include "DebugMan.h" +#include "Draw.h" #include "GLCheck.h" #include @@ -90,9 +99,6 @@ void WindowMan::Destroy() { ImGui_ImplOpenGL3_Shutdown(); ImGui_ImplSDL3_Shutdown(); ImGui::DestroyContext(); - GL_CHECK(glDeleteTextures(1, &m_BackBuffer32Texture)); - GL_CHECK(glDeleteBuffers(1, &m_ScreenVBO)); - GL_CHECK(glDeleteVertexArrays(1, &m_ScreenVAO)); } void WindowMan::Initialize() { @@ -125,6 +131,7 @@ void WindowMan::Initialize() { SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG); CreatePrimaryWindow(); InitializeOpenGL(); @@ -135,6 +142,15 @@ void WindowMan::Initialize() { io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange; ImGui::StyleColorsDark(); + // A TTF font rasterized at twice its normal size, drawn at half scale (see DebugMan), so debug windows stay sharp when scaled up for big screens. + { + std::string fontPath = g_PresetMan.GetFullModulePath("Base.rte/GUIs/Fonts/Roboto-Medium.ttf"); + ImFontConfig fontConfig; + fontConfig.OversampleH = 2; + if (std::filesystem::exists(fontPath) && io.Fonts->AddFontFromFileTTF(fontPath.c_str(), 30.0F, &fontConfig)) { + m_ImGuiFontBaseScale = 0.5F; + } + } ImGui_ImplSDL3_InitForOpenGL(m_PrimaryWindow.get(), m_GLContext.get()); ImGui_ImplOpenGL3_Init("#version 330 core"); ImGui_ImplOpenGL3_NewFrame(); @@ -143,6 +159,8 @@ void WindowMan::Initialize() { CreateBackBufferTexture(); m_ScreenBlitShader = std::make_unique(g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenBlit.vert"), g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenBlit.frag")); + m_ScreenUpscaleShader = std::make_unique(g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenBlit.vert"), g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenUpscale.frag")); + m_ScreenUpscaleMaskedShader = std::make_unique(g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenBlit.vert"), g_PresetMan.GetFullModulePath("Base.rte/Shaders/ScreenUpscaleMasked.frag")); // SDL is kinda dumb about the taskbar icon so we need to poll after creating the window for it to show up, otherwise there's no icon till it starts polling in the main menu loop. SDL_PollEvent(nullptr); @@ -220,6 +238,99 @@ void WindowMan::CreatePrimaryWindow() { #endif } +static void GLAPIENTRY DebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam) { + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) + return; + + const char* msgSource = NULL; + switch (source) { + case GL_DEBUG_SOURCE_API: + msgSource = "API"; + break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: + msgSource = "WINDOW_SYSTEM"; + break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: + msgSource = "SHADER_COMPILER"; + break; + case GL_DEBUG_SOURCE_THIRD_PARTY: + msgSource = "THIRD_PARTY"; + break; + case GL_DEBUG_SOURCE_APPLICATION: + msgSource = "APPLICATION"; + break; + case GL_DEBUG_SOURCE_OTHER: + msgSource = "OTHER"; + break; + default: + break; + } + + const char* msgType = NULL; + switch (type) { + case GL_DEBUG_TYPE_ERROR: + msgType = "ERROR"; + break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: + msgType = "DEPRECATED_BEHAVIOR"; + break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: + msgType = "UNDEFINED_BEHAVIOR"; + break; + case GL_DEBUG_TYPE_PORTABILITY: + msgType = "PORTABILITY"; + break; + case GL_DEBUG_TYPE_PERFORMANCE: + msgType = "PERFORMANCE"; + break; + case GL_DEBUG_TYPE_MARKER: + msgType = "MARKER"; + break; + case GL_DEBUG_TYPE_PUSH_GROUP: + msgType = "PUSH_GROUP"; + break; + case GL_DEBUG_TYPE_POP_GROUP: + msgType = "POP_GROUP"; + break; + case GL_DEBUG_TYPE_OTHER: + msgType = "OTHER"; + break; + default: + break; + } + + const char* msgSeverity = "DEFAULT"; + switch (severity) { + case GL_DEBUG_SEVERITY_LOW: + msgSeverity = "LOW"; + break; + case GL_DEBUG_SEVERITY_MEDIUM: + msgSeverity = "MEDIUM"; + break; + case GL_DEBUG_SEVERITY_HIGH: + msgSeverity = "HIGH"; + break; + case GL_DEBUG_SEVERITY_NOTIFICATION: + msgSeverity = "NOTIFICATION"; + break; + default: + break; + } + + std::cout << "GL: OpenGL debug message: " << message << "\n"; + std::cout << " > Type: " << msgType << "\n"; + std::cout << " > Source = " << msgSource << "\n"; + std::cout << " > Severity = " << msgSeverity << std::endl; +} + void WindowMan::InitializeOpenGL() { m_GLContext = std::unique_ptr(SDL_GL_CreateContext(m_PrimaryWindow.get())); @@ -228,9 +339,19 @@ void WindowMan::InitializeOpenGL() { } if (!gladLoadGL((GLADloadfunc)SDL_GL_GetProcAddress)) { + m_GLContext = nullptr; RTEAbort("Failed to load GL functions!"); } + gladUninstallGLDebug(); + + if (GLAD_GL_KHR_debug || GLAD_GL_ARB_debug_output) { + std::cout << "Enable Debug output!" << std::endl; + glDebugMessageCallback(DebugMessageCallback, nullptr); + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } + #ifndef _WIN32 SDL_GL_SetSwapInterval(m_EnableVSync ? 1 : 0); #else @@ -239,24 +360,12 @@ void WindowMan::InitializeOpenGL() { rlLoadExtensions((void*)SDL_GL_GetProcAddress); rlglInit(m_ResX, m_ResY); - - GL_CHECK(glEnable(GL_BLEND)); - GL_CHECK(glEnable(GL_DEPTH_TEST)); - GL_CHECK(glGenBuffers(1, &m_ScreenVBO)); - GL_CHECK(glGenVertexArrays(1, &m_ScreenVAO)); - GL_CHECK(glBindVertexArray(m_ScreenVAO)); - GL_CHECK(glGenTextures(1, &m_BackBuffer32Texture)); TracyGpuContext; - Texture2D shapesTexture = {rlGetTextureIdDefault(), 1, 1, 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8}; - SetShapesTexture(shapesTexture, {0.0f, 0.0f, 1.0f, 1.0f}); } void WindowMan::CreateBackBufferTexture() { m_ScreenBuffer = std::make_unique(FloatRect(0, 0, m_ResX, m_ResY), FloatRect(0, 0, m_ResX, m_ResY)); - GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer32Texture)); - GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_ResX, m_ResY, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr)); - GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + m_BackBuffer32Texture = std::make_unique(FloatRect(0, 0, m_ResX, m_ResY)); } int WindowMan::GetWindowResX() { @@ -677,9 +786,16 @@ void WindowMan::DisplaySwitchOut() const { bool WindowMan::HandleWindowExposedEvent(void *userdata, SDL_Event *event) { if (event->type == SDL_EVENT_WINDOW_EXPOSED) { + // Re-show the last finished frame (e.g. while the window is being dragged or something was moved over it). + // Rebuilding it here instead would happen outside the frame and could show a cleared screen buffer with only the GUI on it. g_WindowMan.SetViewportLetterboxed(); g_WindowMan.ClearBackbuffer(false); - g_WindowMan.UploadFrame(); + if (g_WindowMan.m_LastPresentUsedTextOverlay) { + g_WindowMan.PresentWithTextOverlay(true); + } else { + g_WindowMan.BlitScreenBufferToWindows(); + } + g_WindowMan.Present(); } return true; @@ -757,38 +873,179 @@ void WindowMan::ClearBackbuffer(bool clearFrameMan) { void WindowMan::UploadFrame() { m_ScreenBuffer->Begin(g_ActivityMan.IsInActivity()); + //Camera viewport(Vector(m_ResX / 2, m_ResY / 2), m_ScreenBuffer->GetSize()); + g_RenderMan.BeginFrame(nullptr); - rlDisableDepthTest(); - rlDisableColorBlend(); - //rlSetBlendMode(RL_BLEND_ALPHA); - - GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer32Texture)); + glActiveTexture(GL_TEXTURE2); + m_BackBuffer32Texture->Bind(); GL_CHECK(glPixelStorei(GL_UNPACK_ALIGNMENT, 4)); GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, g_FrameMan.GetBackBuffer32()->w, g_FrameMan.GetBackBuffer32()->h, GL_RGBA, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer32()->line[0])); - m_ScreenBlitShader->Begin(); - rlSetUniformSampler(m_ScreenBlitShader->GetUniformLocation("rteGUITexture"), m_BackBuffer32Texture); + // The GUI is always composited on top of whatever is in the screen buffer, so don't let it depth test against earlier draws (e.g. the title screen's stars punched holes in menu text). + glClear(GL_DEPTH_BUFFER_BIT); + if (m_DrawPostProcessBuffer) { - Texture2D postBuffer = g_PostProcessMan.GetPostProcessColorBuffer()->GetColorTexture(); - DrawTextureRec(postBuffer, Rectangle(0.0f, 0.0f, postBuffer.width, -postBuffer.height), {0.0f, 0.0f}, {255, 255, 255, 255}); - } else { - Texture2D empty(rlGetTextureIdDefault(), m_ResX, m_ResY, 1, 0); - //rlSetUniformSampler(m_ScreenBlitShader->GetTextureUniform(), 0); - DrawTextureRec(m_ScreenBuffer->GetColorTexture(), {0.0f, 0.0f, static_cast(m_ResX), -static_cast(m_ResY)}, {0, 0}, {255, 255, 255, 255}); + Texture* postBuffer = g_PostProcessMan.GetPostProcessColorBuffer()->GetColorTexture().lock().get(); + Draw::DrawTexture(postBuffer, {-1.0f, -1.0f, 2.0f, 2.0f}); } + // Otherwise the screen buffer already holds the frame, drawing it onto itself would be a feedback loop. + m_ScreenBlitShader->Begin(); + Draw::DrawTexture(m_BackBuffer32Texture.get(), {-1.0f, -1.0f, 2.0f, 2.0f}); m_ScreenBlitShader->End(); m_ScreenBuffer->End(); + g_RenderMan.BeginFrame(nullptr); + + // HUD text captured for high resolution drawing goes between the scene and the GUI layer, so it needs them separately. + m_LastPresentUsedTextOverlay = m_DrawPostProcessBuffer && m_MultiDisplayWindows.empty() && TextOverlay::HasPendingText(); + if (m_LastPresentUsedTextOverlay) { + PresentWithTextOverlay(false); + } else { + BlitScreenBufferToWindows(); + } + if (g_DebugMan.ConsumeScreenshotRequest()) { + SaveWindowScreenshot(); + } + g_DebugMan.DrawImGui(); + ImGui::Render(); + ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); + Present(); + TracyGpuCollect; + FrameMark; + ImGui_ImplOpenGL3_NewFrame(); + ImGui_ImplSDL3_NewFrame(); + ImGui::NewFrame(); +} + +void WindowMan::BlitTextureToPrimaryWindow(Texture* texture, Shader* shader, bool blend) { + GLuint textureId = texture->GetTextureId(); + GLint previousMinFilter = GL_NEAREST; + GLint previousMagFilter = GL_NEAREST; + glBindTexture(GL_TEXTURE_2D, textureId); + glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, &previousMinFilter); + glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &previousMagFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glBindFramebuffer(GL_FRAMEBUFFER, m_BlitTargetFramebuffer); + glClear(GL_DEPTH_BUFFER_BIT); + g_RenderMan.BeginFrame(nullptr); + shader->Begin(); + g_RenderMan.SetActiveBlendMode(blend ? Blend::ALPHA : Blend::NONE); + GL_CHECK(glViewport(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h)); + Draw::DrawTexture(texture, {-1.0f, 1.0f, 2.0f, -2.0f}); + g_RenderMan.DrawActiveBatch(); + shader->End(); + g_RenderMan.BeginFrame(nullptr); + glBindTexture(GL_TEXTURE_2D, textureId); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, previousMinFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, previousMagFilter); + glBindTexture(GL_TEXTURE_2D, 0); +} + +void WindowMan::SaveWindowScreenshot() { + int scale = g_DebugMan.GetScreenshotScale(); + int width = scale > 0 ? static_cast(m_ResX) * scale : m_PrimaryWindowViewport->w; + int height = scale > 0 ? static_cast(m_ResY) * scale : m_PrimaryWindowViewport->h; + if (width <= 0 || height <= 0) { + return; + } + std::vector pixels(static_cast(width) * height * 4); + glPixelStorei(GL_PACK_ALIGNMENT, 1); + if (scale > 0) { + // Draw the frame again, exactly as for the window, but into an offscreen target at the photo's resolution. + GLuint framebuffer = 0; + GLuint color = 0; + GLuint depth = 0; + glGenFramebuffers(1, &framebuffer); + glGenTextures(1, &color); + glBindTexture(GL_TEXTURE_2D, color); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); + glGenRenderbuffers(1, &depth); + glBindRenderbuffer(GL_RENDERBUFFER, depth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height); + glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, color, 0); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depth); + glClearColor(0.0F, 0.0F, 0.0F, 1.0F); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + SDL_Rect windowViewport = *m_PrimaryWindowViewport; + *m_PrimaryWindowViewport = SDL_Rect{0, 0, width, height}; + m_BlitTargetFramebuffer = framebuffer; + if (m_LastPresentUsedTextOverlay) { + PresentWithTextOverlay(true); + } else { + BlitScreenBufferToWindows(); + } + m_BlitTargetFramebuffer = 0; + *m_PrimaryWindowViewport = windowViewport; + + glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer); + glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + glDeleteRenderbuffers(1, &depth); + glDeleteTextures(1, &color); + glDeleteFramebuffers(1, &framebuffer); + glViewport(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h); + } else { + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glReadPixels(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + } + BITMAP* image = create_bitmap_ex(32, width, height); + for (int y = 0; y < height; ++y) { + // GL rows start at the bottom. + const unsigned char* row = &pixels[static_cast(height - 1 - y) * width * 4]; + for (int x = 0; x < width; ++x) { + _putpixel32(image, x, y, makeacol32(row[x * 4], row[x * 4 + 1], row[x * 4 + 2], 255)); + } + } + std::time_t now = std::time(nullptr); + std::array stamp{}; + std::strftime(stamp.data(), stamp.size(), "%Y-%m-%d_%H-%M-%S", std::localtime(&now)); + std::string fileName = System::GetScreenshotDirectory() + "/Photo_" + stamp.data() + ".png"; + if (save_png(fileName.c_str(), image, nullptr) == 0) { + g_ConsoleMan.PrintString("SYSTEM: Photo saved to: " + fileName); + } else { + g_ConsoleMan.PrintString("ERROR: Could not save photo to: " + fileName); + } + destroy_bitmap(image); +} - rlDisableColorBlend(); +void WindowMan::PresentWithTextOverlay(bool redrawLast) { + Texture* sceneTexture = g_PostProcessMan.GetPostProcessColorBuffer()->GetColorTexture().lock().get(); + BlitTextureToPrimaryWindow(sceneTexture, m_ScreenUpscaleShader.get(), false); + int windowWidth = 0; + int windowHeight = 0; + SDL_GetWindowSizeInPixels(m_PrimaryWindow.get(), &windowWidth, &windowHeight); + if (m_BlitTargetFramebuffer != 0) { + // Offscreen photo: the target is exactly the viewport. + windowWidth = m_PrimaryWindowViewport->w; + windowHeight = m_PrimaryWindowViewport->h; + } + glBindFramebuffer(GL_FRAMEBUFFER, m_BlitTargetFramebuffer); + TextOverlay::Render(windowWidth, windowHeight, m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h, static_cast(m_ResX), static_cast(m_ResY), redrawLast); + BlitTextureToPrimaryWindow(m_BackBuffer32Texture.get(), m_ScreenUpscaleMaskedShader.get(), true); +} + +void WindowMan::BlitScreenBufferToWindows() { + glBindFramebuffer(GL_FRAMEBUFFER, m_BlitTargetFramebuffer); + glDisable(GL_BLEND); + // The upscale shader blends only across pixel boundaries, which needs linear filtering; restore the texture's own filtering afterwards. + GLuint screenTexture = m_ScreenBuffer->GetColorTexture().lock()->GetTextureId(); + GLint previousMinFilter = GL_NEAREST; + GLint previousMagFilter = GL_NEAREST; + glBindTexture(GL_TEXTURE_2D, screenTexture); + glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, &previousMinFilter); + glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &previousMagFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + m_ScreenUpscaleShader->Begin(); if (m_MultiDisplayWindows.empty()) { - rlMatrixMode(RL_PROJECTION); - rlLoadIdentity(); - rlOrtho(0, m_ResX, m_ResY, 0, 0.0, 1.0); - rlMatrixMode(RL_MODELVIEW); - rlLoadIdentity(); + g_RenderMan.BeginFrame(nullptr); + // BeginFrame resets the shader. + m_ScreenUpscaleShader->Begin(); GL_CHECK(glViewport(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h)); - DrawTextureRec(m_ScreenBuffer->GetColorTexture(), {0.0f, 0.0f, static_cast(m_ResX), static_cast(-m_ResY)}, {0.0f, 0.0f}, {255, 255, 255, 255}); - rlDrawRenderBatchActive(); + Draw::DrawTexture(m_ScreenBuffer->GetColorTexture().lock().get(), {-1.0f, 1.0f, 2.0f, -2.0f}); + g_RenderMan.DrawActiveBatch(); } else { for (size_t i = 0; i < m_MultiDisplayWindows.size(); ++i) { SDL_GL_MakeCurrent(m_MultiDisplayWindows.at(i).get(), m_GLContext.get()); @@ -797,22 +1054,15 @@ void WindowMan::UploadFrame() { SDL_GetWindowSizeInPixels(m_MultiDisplayWindows.at(i).get(), &windowW, &windowH); GL_CHECK(glViewport(0, 0, windowW, windowH)); - rlMatrixMode(RL_PROJECTION); - rlLoadIdentity(); - rlOrtho(0, windowW, windowH, 0, -1.0, 1.0); - - DrawTexture(m_ScreenBuffer->GetColorTexture(), 0, 0, {255, 255, 255, 255}); - rlDrawRenderBatchActive(); + Draw::DrawTexture(m_ScreenBuffer->GetColorTexture().lock().get(), {-1.0f, 1.0f, 2.0f, -2.0f}); + g_RenderMan.DrawActiveBatch(); } } - ImGui::Render(); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - Present(); - TracyGpuCollect; - FrameMark; - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplSDL3_NewFrame(); - ImGui::NewFrame(); + m_ScreenUpscaleShader->End(); + glBindTexture(GL_TEXTURE_2D, screenTexture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, previousMinFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, previousMagFilter); + glBindTexture(GL_TEXTURE_2D, 0); } void WindowMan::Present() { diff --git a/Source/Managers/WindowMan.h b/Source/Managers/WindowMan.h index 53452dbed2..cbdf102c0d 100644 --- a/Source/Managers/WindowMan.h +++ b/Source/Managers/WindowMan.h @@ -65,6 +65,8 @@ namespace RTE { /// @return Pointer to the primary game window. SDL_Window* GetWindow() const { return m_PrimaryWindow.get(); } + SDL_GLContextState* GetGLContext() const { return m_GLContext.get(); } + /// Gets whether any of the game windows is currently in focus. /// @return Whether any of the game windows is currently in focus. bool AnyWindowHasFocus() const { return m_AnyWindowHasFocus; } @@ -187,6 +189,13 @@ namespace RTE { /// Copies the BackBuffer32 content to GPU and shows it on screen. void UploadFrame(); + /// Draws the finished screen buffer to the window(s), letterboxed. + void BlitScreenBufferToWindows(); + + /// Shows the frame with high resolution HUD text: the lit scene scaled up, then the text, then the GUI layer on top. + /// @param redrawLast Whether to redraw the last presented frame (window exposed) rather than this frame's. + void PresentWithTextOverlay(bool redrawLast); + void Present(); #pragma endregion @@ -197,8 +206,8 @@ namespace RTE { bool m_FocusEventsDispatchedByDisplaySwitchIn; //!< Whether queued events were dispatched due to raising windows when taking focus of any game window in the previous update. std::shared_ptr m_PrimaryWindow; //!< The main window. - GLuint m_BackBuffer32Texture; //!< Streaming texture for the software rendered stuff. - + std::unique_ptr m_BackBuffer32Texture; //!< Streaming texture for the software rendered stuff. + std::shared_ptr m_ScreenBuffer{}; std::unique_ptr m_PrimaryWindowViewport; //!< Viewport for the main window. @@ -211,6 +220,23 @@ namespace RTE { GLuint m_ScreenVBO; //!< Vertex Buffer Object for the screen quad. std::unique_ptr m_ScreenBlitShader; //!< Blit shader to combine the menu layer and post process layers and show them on screen. + std::unique_ptr m_ScreenUpscaleShader; //!< Scales the finished frame up to the window with even, crisp pixels at any scale. + std::unique_ptr m_ScreenUpscaleMaskedShader; //!< Scales the GUI layer (black is transparent) up to the window over what's there. + bool m_LastPresentUsedTextOverlay = false; + + public: + /// Gets the scale the ImGui font must be drawn at to appear at its normal size (it's loaded large for sharp scaling). + float GetImGuiFontBaseScale() const { return m_ImGuiFontBaseScale; } + + private: + float m_ImGuiFontBaseScale = 1.0F; + unsigned int m_BlitTargetFramebuffer = 0; //!< Where the frame is shown: 0 for the window, or an offscreen target for high resolution photos. //!< Whether the last frame was shown with PresentWithTextOverlay, for redrawing it. + + /// Draws a texture letterboxed into the primary window with one of the upscale shaders. Flipped like the screen buffer. + void BlitTextureToPrimaryWindow(Texture* texture, Shader* shader, bool blend); + + /// Saves the finished frame as shown in the window (window resolution, before ImGui) to the screenshots folder. + void SaveWindowScreenshot(); bool m_AnyWindowHasFocus; //!< Whether any game window has focus. bool m_ResolutionChanged; //!< Whether the resolution was changed through the settings. diff --git a/Source/Managers/meson.build b/Source/Managers/meson.build index 7d6b7ff6e2..369437e4e7 100644 --- a/Source/Managers/meson.build +++ b/Source/Managers/meson.build @@ -4,9 +4,10 @@ sources += files( 'AudioMan.cpp', 'CameraMan.cpp', 'ConsoleMan.cpp', +'DebugMan.cpp', 'FrameMan.cpp', #'LuaMan.cpp', -'GLResourceMan.cpp', +'GLStateMan.cpp', 'MenuMan.cpp', 'MetaMan.cpp', 'MovableMan.cpp', @@ -18,6 +19,13 @@ sources += files( 'PresetMan.cpp', 'PrimitiveMan.cpp', 'SceneMan.cpp', +'TerrainFire.cpp', +'TerrainCollapse.cpp', +'FluidSim.cpp', +'ModernHUD.cpp', +'SmokeGrid.cpp', +'ActorFire.cpp', +'Sandbox.cpp', 'SettingsMan.cpp', 'ThreadMan.cpp', 'TimerMan.cpp', diff --git a/Source/Menus/InventoryMenuGUI.cpp b/Source/Menus/InventoryMenuGUI.cpp index 469ce8131e..bf69f6d814 100644 --- a/Source/Menus/InventoryMenuGUI.cpp +++ b/Source/Menus/InventoryMenuGUI.cpp @@ -2,10 +2,11 @@ #include "WindowMan.h" #include "FrameMan.h" +#include "Draw.h" #include "UInputMan.h" #include "MovableMan.h" #include "PresetMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "Controller.h" #include "AHuman.h" @@ -1350,18 +1351,18 @@ void InventoryMenuGUI::DrawCarouselMode(BITMAP* targetBitmap, const Vector& draw std::list wrappedRectangles; g_SceneMan.WrapRect(IntRect(drawPos.GetFloorIntX(), drawPos.GetFloorIntY(), drawPos.GetFloorIntX() + m_CarouselBitmap->w, drawPos.GetFloorIntY() + m_CarouselBitmap->h), wrappedRectangles); for (const IntRect& wrappedRectangle: wrappedRectangles) { - g_GLResourceMan.UpdateDynamicBitmap(m_CarouselBGBitmap.get(), true); - g_GLResourceMan.UpdateDynamicBitmap(m_CarouselBitmap.get(), true); + g_GLStateMan.UpdateDynamicBitmap(m_CarouselBGBitmap.get(), true); + g_GLStateMan.UpdateDynamicBitmap(m_CarouselBitmap.get(), true); if (m_CarouselBackgroundTransparent) { g_FrameMan.SetTransTableFromPreset(TransparencyPreset::MoreTrans); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_CarouselBGBitmap.get()), wrappedRectangle.m_Left - m_CarouselBGBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBGBitmap->h / 2, {255, 255, 255, 75}); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_CarouselBitmap.get()), wrappedRectangle.m_Left - m_CarouselBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBitmap->h / 2, {255, 255, 255, 255}); + RTE::DrawTexture(m_CarouselBGBitmap.get(), wrappedRectangle.m_Left - m_CarouselBGBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBGBitmap->h / 2, RLColor{255, 255, 255, 75}); + RTE::DrawTexture(m_CarouselBitmap.get(), wrappedRectangle.m_Left - m_CarouselBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBitmap->h / 2, RLColor{255, 255, 255, 255}); } else { if (!hasDrawnAtLeastOnce) { draw_sprite(m_CarouselBGBitmap.get(), m_CarouselBitmap.get(), 0, 0); } - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(m_CarouselBGBitmap.get()), wrappedRectangle.m_Left - m_CarouselBGBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBGBitmap->h / 2, {255, 255, 255, 255}); + RTE::DrawTexture(m_CarouselBGBitmap.get(), wrappedRectangle.m_Left - m_CarouselBGBitmap->w / 2, wrappedRectangle.m_Top - m_CarouselBGBitmap->h / 2, RLColor{255, 255, 255, 255}); } hasDrawnAtLeastOnce = true; } diff --git a/Source/Menus/LoadingScreen.cpp b/Source/Menus/LoadingScreen.cpp index 3a89154d9f..7acf74134b 100644 --- a/Source/Menus/LoadingScreen.cpp +++ b/Source/Menus/LoadingScreen.cpp @@ -73,7 +73,7 @@ void LoadingScreen::CreateLoadingSplash(int xOffset) { clear_bitmap(m_LoadingSplashBitmap); m_LoadingBackground = std::make_unique(); - m_LoadingBackground->Create(ContentFile("Base.rte/GUIs/Title/LoadingSplash.png").GetAsBitmap(COLORCONV_NONE, false), false, Vector(), true, false, Vector(1.0F, 0)); + m_LoadingBackground->Create(ContentFile("Base.rte/GUIs/Title/LoadingSplash.png").GetAsBitmap(COLORCONV_NONE, false), Vector(), true, false, Vector(1.0F, 0)); m_LoadingBackground->SetOffset(Vector(static_cast(((m_LoadingBackground->GetBitmap()->w - g_WindowMan.GetResX()) / 2) + xOffset), 0)); Box loadingSplashTargetBox(Vector(0, static_cast((g_WindowMan.GetResY() - g_LoadingScreen.m_LoadingBackground->GetBitmap()->h) / 2)), static_cast(g_WindowMan.GetResX()), static_cast(g_LoadingScreen.m_LoadingBackground->GetBitmap()->h)); diff --git a/Source/Menus/ScenarioActivityConfigGUI.cpp b/Source/Menus/ScenarioActivityConfigGUI.cpp index 6d675ce237..d4347af68f 100644 --- a/Source/Menus/ScenarioActivityConfigGUI.cpp +++ b/Source/Menus/ScenarioActivityConfigGUI.cpp @@ -1,4 +1,6 @@ #include "ScenarioActivityConfigGUI.h" +#include "GUISound.h" +#include "PostProcessMan.h" #include "PresetMan.h" #include "UInputMan.h" @@ -37,6 +39,10 @@ ScenarioActivityConfigGUI::ScenarioActivityConfigGUI(GUIControlManager* parentCo m_RequireClearPathToOrbitCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxRequireClearPathToOrbit")); m_FogOfWarCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxFogOfWar")); m_DeployUnitsCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxDeployUnits")); + // Optional in custom layouts. + m_TimeOfDayButton = dynamic_cast(m_GUIControlManager->GetControl("ButtonTimeOfDay")); + m_WeatherButton = dynamic_cast(m_GUIControlManager->GetControl("ButtonWeather")); + UpdateAtmosphereButtons(); m_PlayersAndTeamsConfigBox = dynamic_cast(m_GUIControlManager->GetControl("CollectionBoxPlayersAndTeamsConfig")); m_TeamIconBoxes[TeamRows::DisabledTeam] = dynamic_cast(m_GUIControlManager->GetControl("CollectionBoxDisabledTeamIcon")); @@ -215,7 +221,26 @@ void ScenarioActivityConfigGUI::ResetActivityConfigBox() { } } +namespace { + struct AtmosphereChoice { + const char* Name; + float Value; + }; + constexpr AtmosphereChoice c_TimeChoices[] = {{"Scene default", -1.0F}, {"Dawn", 6.5F}, {"Noon", 12.0F}, {"Dusk", 18.8F}, {"Night", 23.0F}}; + constexpr AtmosphereChoice c_WeatherChoices[] = {{"Scene default", -1.0F}, {"Clear", 0.0F}, {"Rain", 1.0F}, {"Snow", 2.0F}}; +} // namespace + +void ScenarioActivityConfigGUI::UpdateAtmosphereButtons() { + if (m_TimeOfDayButton) { + m_TimeOfDayButton->SetText(std::string("Time: ") + c_TimeChoices[m_TimeOfDayChoice].Name); + } + if (m_WeatherButton) { + m_WeatherButton->SetText(std::string("Weather: ") + c_WeatherChoices[m_WeatherChoice].Name); + } +} + void ScenarioActivityConfigGUI::StartGame() { + g_PostProcessMan.SetActivityAtmosphere(c_TimeChoices[m_TimeOfDayChoice].Value, static_cast(c_WeatherChoices[m_WeatherChoice].Value)); GameActivity* gameActivity = dynamic_cast(m_SelectedActivity->Clone()); gameActivity->SetDifficulty(m_ActivityDifficultySlider->GetValue()); @@ -427,6 +452,14 @@ bool ScenarioActivityConfigGUI::HandleInputEvents() { if (guiEvent.GetControl() == m_CancelConfigButton) { g_GUISound.BackButtonPressSound()->Play(); SetEnabled(false); + } else if (m_TimeOfDayButton && guiEvent.GetControl() == m_TimeOfDayButton) { + g_GUISound.ButtonPressSound()->Play(); + m_TimeOfDayChoice = (m_TimeOfDayChoice + 1) % static_cast(std::size(c_TimeChoices)); + UpdateAtmosphereButtons(); + } else if (m_WeatherButton && guiEvent.GetControl() == m_WeatherButton) { + g_GUISound.ButtonPressSound()->Play(); + m_WeatherChoice = (m_WeatherChoice + 1) % static_cast(std::size(c_WeatherChoices)); + UpdateAtmosphereButtons(); } else if (guiEvent.GetControl() == m_StartGameButton) { // Make sure all players have known input devices if multimouse is enabled. g_GUISound.ButtonPressSound()->Play(); diff --git a/Source/Menus/ScenarioActivityConfigGUI.h b/Source/Menus/ScenarioActivityConfigGUI.h index 62b2fea672..4ea1e0ae45 100644 --- a/Source/Menus/ScenarioActivityConfigGUI.h +++ b/Source/Menus/ScenarioActivityConfigGUI.h @@ -88,6 +88,13 @@ namespace RTE { GUICheckbox* m_RequireClearPathToOrbitCheckbox; GUICheckbox* m_FogOfWarCheckbox; GUICheckbox* m_DeployUnitsCheckbox; + GUIButton* m_TimeOfDayButton; //!< Cycles the time of day for the game. + GUIButton* m_WeatherButton; //!< Cycles the weather for the game. + int m_TimeOfDayChoice = 0; //!< Index into the time of day choices, 0 for the scene's default. + int m_WeatherChoice = 0; //!< Index into the weather choices, 0 for the scene's default. + + /// Updates the time of day and weather buttons' text. + void UpdateAtmosphereButtons(); GUILabel* m_CPULockLabel; GUICollectionBox* m_PlayersAndTeamsConfigBox; std::array m_TeamIconBoxes; diff --git a/Source/Menus/ScenarioGUI.cpp b/Source/Menus/ScenarioGUI.cpp index 59258d3bbe..cefab6a421 100644 --- a/Source/Menus/ScenarioGUI.cpp +++ b/Source/Menus/ScenarioGUI.cpp @@ -1,4 +1,6 @@ #include "ScenarioGUI.h" +#include "RenderMan.h" +#include "Shapes.h" #include "WindowMan.h" #include "FrameMan.h" @@ -20,6 +22,8 @@ #include "GUIComboBox.h" #include "GUIButton.h" #include "GUILabel.h" +#include "raylib/rlgl.h" +#include "Shader.h" using namespace RTE; @@ -544,14 +548,18 @@ void ScenarioGUI::DrawSitePoints(BITMAP* drawBitmap) const { int sitePosX = sitePos.GetFloorIntX(); int sitePosY = sitePos.GetFloorIntY(); + // Glowing site marker: a dim screen-blended halo and a brighter flickering core. + auto siteColor = [&drawColor](int blend, int alpha) { return Color(getr(drawColor) * blend / 255, getg(drawColor) * blend / 255, getb(drawColor) * blend / 255, alpha); }; + g_RenderMan.SetActiveBlendMode(Blend::SCREEN); blendAmount = 70 + RandomNum(0, 40); - set_screen_blender(blendAmount, blendAmount, blendAmount, blendAmount); - circlefill(drawBitmap, sitePosX, sitePosY, 4, drawColor); - circlefill(drawBitmap, sitePosX, sitePosY, 2, drawColor); - + Draw::Circle(glm::vec2(sitePosX, sitePosY), 4.0f, siteColor(blendAmount / 2, 255)); + Draw::Circle(glm::vec2(sitePosX, sitePosY), 3.0f, siteColor(blendAmount, 255)); blendAmount = 145 + RandomNum(0, 110); + Draw::Circle(glm::vec2(sitePosX, sitePosY), 2.0f, siteColor(blendAmount / 4, 255)); + Draw::Circle(glm::vec2(sitePosX, sitePosY), 0.0f, siteColor(blendAmount, 255)); + g_RenderMan.SetActiveBlendMode(Blend::ALPHA); set_screen_blender(blendAmount, blendAmount, blendAmount, blendAmount); - circlefill(drawBitmap, sitePosX, sitePosY, 1, drawColor); + // circlefill(drawBitmap, sitePosX, sitePosY, 1, drawColor); } } diff --git a/Source/Menus/SceneEditorGUI.cpp b/Source/Menus/SceneEditorGUI.cpp index 63386f51be..2bf7fb158a 100644 --- a/Source/Menus/SceneEditorGUI.cpp +++ b/Source/Menus/SceneEditorGUI.cpp @@ -24,7 +24,7 @@ #include "Deployment.h" #include "BunkerAssemblyScheme.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "tracy/Tracy.hpp" #include "tracy/TracyOpenGL.hpp" #include "BigTexture.h" diff --git a/Source/Menus/SettingsVideoGUI.cpp b/Source/Menus/SettingsVideoGUI.cpp index 0156dbbc29..9fd17d2ece 100644 --- a/Source/Menus/SettingsVideoGUI.cpp +++ b/Source/Menus/SettingsVideoGUI.cpp @@ -1,4 +1,7 @@ #include "SettingsVideoGUI.h" +#include "TextOverlay.h" +#include "ModernHUD.h" +#include "PostProcessMan.h" #include "WindowMan.h" #include "FrameMan.h" #include "ActivityMan.h" @@ -51,6 +54,26 @@ SettingsVideoGUI::SettingsVideoGUI(GUIControlManager* parentControlManager) : m_EnableVSyncCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxEnableVSync")); m_EnableVSyncCheckbox->SetCheck(g_WindowMan.GetVSyncEnabled()); + // Custom GUI layouts may not have these, so they're optional. + m_LightingCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxLighting")); + m_BloomCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxBloom")); + m_DistortionCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxDistortion")); + m_GraphicsQualityComboBox = dynamic_cast(m_GUIControlManager->GetControl("ComboGraphicsQuality")); + if (m_GraphicsQualityComboBox) { + for (const char* name: {"Potato (classic)", "Low", "Medium", "High", "Ultra", "Custom"}) { + m_GraphicsQualityComboBox->AddItem(name); + } + } + UpdateVisualEffectControls(); + m_ModernHUDCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxModernHUD")); + if (m_ModernHUDCheckbox) { + m_ModernHUDCheckbox->SetCheck(ModernHUD::IsEnabled()); + } + m_SmoothHUDTextCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxSmoothHUDText")); + if (m_SmoothHUDTextCheckbox) { + m_SmoothHUDTextCheckbox->SetCheck(TextOverlay::IsEnabled()); + } + m_FullscreenCheckbox = dynamic_cast(m_GUIControlManager->GetControl("CheckboxFullscreen")); m_FullscreenCheckbox->SetCheck(m_NewFullscreen); @@ -161,6 +184,22 @@ bool SettingsVideoGUI::IsSupportedResolution(int width, int height) const { return false; } +void SettingsVideoGUI::UpdateVisualEffectControls() { + const LightingSettings& lightingSettings = g_PostProcessMan.GetLightingSettings(); + if (m_LightingCheckbox) { + m_LightingCheckbox->SetCheck(lightingSettings.Enabled); + } + if (m_BloomCheckbox) { + m_BloomCheckbox->SetCheck(lightingSettings.BloomEnabled); + } + if (m_DistortionCheckbox) { + m_DistortionCheckbox->SetCheck(lightingSettings.DistortionEnabled); + } + if (m_GraphicsQualityComboBox) { + m_GraphicsQualityComboBox->SetSelectedIndex(lightingSettings.GraphicsQuality); + } +} + void SettingsVideoGUI::PopulateResolutionsComboBox() { m_PresetResolutions.clear(); m_PresetResolutionComboBox->ClearList(); @@ -395,9 +434,43 @@ void SettingsVideoGUI::HandleInputEvents(GUIEvent& guiEvent) { } } + if (m_GraphicsQualityComboBox && guiEvent.GetControl() == m_GraphicsQualityComboBox && guiEvent.GetMsg() == GUIComboBox::Closed) { + int quality = m_GraphicsQualityComboBox->GetSelectedIndex(); + if (quality >= 0 && quality != LightingSettings::QualityCustom) { + g_PostProcessMan.GetLightingSettings().ApplyQualityPreset(quality); + UpdateVisualEffectControls(); + } + } + + if (guiEvent.GetMsg() == GUICheckbox::Changed && (guiEvent.GetControl() == m_LightingCheckbox || guiEvent.GetControl() == m_BloomCheckbox || guiEvent.GetControl() == m_DistortionCheckbox)) { + // Picking individual effects no longer matches a preset. + g_PostProcessMan.GetLightingSettings().GraphicsQuality = LightingSettings::QualityCustom; + if (m_GraphicsQualityComboBox) { + m_GraphicsQualityComboBox->SetSelectedIndex(LightingSettings::QualityCustom); + } + } + if (guiEvent.GetMsg() == GUICheckbox::Changed) { if (guiEvent.GetControl() == m_EnableVSyncCheckbox) { g_WindowMan.SetVSyncEnabled(m_EnableVSyncCheckbox->GetCheck()); + } else if (m_LightingCheckbox && guiEvent.GetControl() == m_LightingCheckbox) { + g_PostProcessMan.GetLightingSettings().Enabled = m_LightingCheckbox->GetCheck(); + } else if (m_BloomCheckbox && guiEvent.GetControl() == m_BloomCheckbox) { + g_PostProcessMan.GetLightingSettings().BloomEnabled = m_BloomCheckbox->GetCheck(); + } else if (m_DistortionCheckbox && guiEvent.GetControl() == m_DistortionCheckbox) { + // Extra effects: heat haze, shockwaves, scorch marks and embers. + LightingSettings& lightingSettings = g_PostProcessMan.GetLightingSettings(); + bool enabled = m_DistortionCheckbox->GetCheck(); + lightingSettings.DistortionEnabled = enabled; + lightingSettings.ScorchMarks = enabled; + lightingSettings.Stains = enabled; + lightingSettings.LivingWorld = enabled; + lightingSettings.Embers = enabled ? std::max(lightingSettings.Embers, 1.0F) : 0.0F; + lightingSettings.EffectsParticles = enabled ? std::max(lightingSettings.EffectsParticles, 1.0F) : 0.0F; + } else if (m_ModernHUDCheckbox && guiEvent.GetControl() == m_ModernHUDCheckbox) { + ModernHUD::SetEnabled(m_ModernHUDCheckbox->GetCheck()); + } else if (m_SmoothHUDTextCheckbox && guiEvent.GetControl() == m_SmoothHUDTextCheckbox) { + TextOverlay::SetEnabled(m_SmoothHUDTextCheckbox->GetCheck()); } else if (guiEvent.GetControl() == m_UseMultiDisplaysCheckbox) { g_WindowMan.SetUseMultiDisplays(m_UseMultiDisplaysCheckbox->GetCheck()); UpdateCustomResolutionLimits(); diff --git a/Source/Menus/SettingsVideoGUI.h b/Source/Menus/SettingsVideoGUI.h index d334e42f7d..3dd85f498a 100644 --- a/Source/Menus/SettingsVideoGUI.h +++ b/Source/Menus/SettingsVideoGUI.h @@ -98,6 +98,12 @@ namespace RTE { GUIRadioButton* m_TwoPlayerSplitscreenHSplitRadioButton; GUIRadioButton* m_TwoPlayerSplitscreenVSplitRadioButton; GUICheckbox* m_EnableVSyncCheckbox; + GUICheckbox* m_LightingCheckbox; //!< Toggles scene lighting. + GUICheckbox* m_BloomCheckbox; //!< Toggles bloom. + GUICheckbox* m_DistortionCheckbox; //!< Toggles heat haze and shockwaves. + GUIComboBox* m_GraphicsQualityComboBox; //!< Picks a graphics quality preset. + GUICheckbox* m_SmoothHUDTextCheckbox; //!< Toggles high resolution HUD text. + GUICheckbox* m_ModernHUDCheckbox; //!< Toggles the modern HUD (minimap, bars, loss feed). GUICheckbox* m_FullscreenCheckbox; GUICheckbox* m_UseMultiDisplaysCheckbox; GUIRadioButton* m_PresetResolutionRadioButton; @@ -135,6 +141,9 @@ namespace RTE { /// Fills the preset resolutions set and combo box with scaled resolutions down to c_MinRes. Defaults the combobox to the closest resolution to c_DefaultRes. void PopulateResolutionsComboBox(); + /// Updates the visual effect checkboxes and quality preset list from the current lighting settings. + void UpdateVisualEffectControls(); + /// Creates Resolution multipliers down to c_DefaultRes. void PopulateResMultplierComboBox(); diff --git a/Source/Menus/TitleScreen.cpp b/Source/Menus/TitleScreen.cpp index 906aabd09b..0040103ee6 100644 --- a/Source/Menus/TitleScreen.cpp +++ b/Source/Menus/TitleScreen.cpp @@ -1,10 +1,13 @@ #include "TitleScreen.h" +#include "RenderMan.h" +#include "Shapes.h" +#include "Texture.h" #include "Constants.h" #include "WindowMan.h" #include "FrameMan.h" #include "UInputMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "ActivityMan.h" #include "SettingsMan.h" @@ -21,6 +24,10 @@ using namespace RTE; +namespace { + glm::vec2 ToVec2(const Vector& vector) { return glm::vec2(vector.m_X, vector.m_Y); } +} // namespace + void TitleScreen::Clear() { m_FadeAmount = 0; @@ -100,8 +107,8 @@ void TitleScreen::Create(AllegroScreen* guiScreen) { } void TitleScreen::CreateTitleElements() { - m_DataRealmsLogo = ContentFile("Base.rte/GUIs/Title/Intro/DRLogo5x.png").GetAsBitmap(); - m_FmodLogo = ContentFile("Base.rte/GUIs/Title/Intro/FMODLogo.png").GetAsBitmap(); + m_DataRealmsLogo = ContentFile("Base.rte/GUIs/Title/Intro/DRLogo5x.png").GetAsTexture(); + m_FmodLogo = ContentFile("Base.rte/GUIs/Title/Intro/FMODLogo.png").GetAsTexture(); m_PreGameLogoText.Create(ContentFile("Base.rte/GUIs/Title/Intro/PreTitle.png")); m_PreGameLogoText.SetPos(Vector(static_cast(m_TitleScreenMaxWidth / 2), static_cast(g_WindowMan.GetResY() / 2))); @@ -114,17 +121,17 @@ void TitleScreen::CreateTitleElements() { m_Planet.Create(ContentFile("Base.rte/GUIs/Title/Planet.png")); m_Moon.Create(ContentFile("Base.rte/GUIs/Title/Moon.png")); m_Station.Create(ContentFile("Base.rte/GUIs/Title/Station.png")); - m_Nebula.Create(ContentFile("Base.rte/GUIs/Title/Nebula.png"), false, Vector(), false, false, Vector(0, -1.0F)); + m_Nebula.Create(ContentFile("Base.rte/GUIs/Title/Nebula.png"), Vector(), false, false, Vector(0, -1.0F)); m_Nebula.SetScrollRatio(Vector(-1.0F, 1.0F / 3.0F)); int starSmallBitmapCount = 4; - std::vector starSmallBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarSmall.png").GetAsAnimation(starSmallBitmapCount); + std::vector> starSmallBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarSmall.png").GetAsTextureAnimation(starSmallBitmapCount); int starLargeBitmapCount = 1; - std::vector starLargeBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarLarge.png").GetAsAnimation(starLargeBitmapCount); + std::vector> starLargeBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarLarge.png").GetAsTextureAnimation(starLargeBitmapCount); int starHugeBitmapCount = 2; - std::vector starHugeBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarHuge.png").GetAsAnimation(starHugeBitmapCount); + std::vector> starHugeBitmaps = ContentFile("Base.rte/GUIs/Title/Stars/StarHuge.png").GetAsTextureAnimation(starHugeBitmapCount); int starCount = (g_WindowMan.GetResX() * m_Nebula.GetBitmap()->h) / 1000; for (int i = 0; i < starCount; ++i) { @@ -540,22 +547,26 @@ void TitleScreen::UpdateTitleTransitions() { } void TitleScreen::Draw() { + // All title screen element positions are computed in screen space (including scrolling), so draw with an unscrolled screen camera. + m_ScreenCamera = std::make_unique(Vector(0.0f, 0.0f), Box(Vector(0.0f, 0.0f), g_WindowMan.GetResX(), g_WindowMan.GetResY())); + const Camera& scrollCamera = *m_ScreenCamera; + g_RenderMan.BeginFrame(&scrollCamera); if (!m_FinishedPlayingIntro) { if (m_IntroSequenceState >= IntroSequence::SlideshowFadeIn) { - DrawTitleScreenScene(); + DrawTitleScreenScene(scrollCamera); } if (m_IntroSequenceState >= IntroSequence::GameLogoAppear) { DrawGameLogo(); } if (m_IntroSequenceState >= IntroSequence::DataRealmsLogoFadeIn && m_IntroSequenceState <= IntroSequence::DataRealmsLogoFadeOut) { - DrawTexture(m_DataRealmsLogo, (m_TitleScreenMaxWidth - m_DataRealmsLogo->w) / 2, (g_WindowMan.GetResY() - m_DataRealmsLogo->h) / 2, RLColor(255, 255, 255, 255)); + Draw::DrawTexture(m_DataRealmsLogo.get(), (m_TitleScreenMaxWidth - m_DataRealmsLogo->GetDimensions().w) / 2, (g_WindowMan.GetResY() - m_DataRealmsLogo->GetDimensions().h) / 2, Color(255, 255, 255, 255)); std::string copyrightNotice(64, '\0'); std::snprintf(copyrightNotice.data(), copyrightNotice.size(), "Cortex Command is TM and %c 2023 Data Realms, LLC", -35); AllegroBitmap guiBackBuffer(g_FrameMan.GetBackBuffer32()); m_IntroTextFont->DrawAligned(&guiBackBuffer, m_TitleScreenMaxWidth / 2, g_WindowMan.GetResY() - m_IntroTextFont->GetFontHeight() - 5, copyrightNotice, GUIFont::Centre); } else if (m_IntroSequenceState >= IntroSequence::FmodLogoFadeIn && m_IntroSequenceState <= IntroSequence::FmodLogoFadeOut) { - DrawTexture(m_FmodLogo, (m_TitleScreenMaxWidth - m_FmodLogo->w) / 2, (g_WindowMan.GetResY() - m_FmodLogo->h) / 2, RLColor(255, 255, 255, 255)); + Draw::DrawTexture(m_FmodLogo.get(), (m_TitleScreenMaxWidth - m_FmodLogo->GetDimensions().w) / 2, (g_WindowMan.GetResY() - m_FmodLogo->GetDimensions().h) / 2, Color(255, 255, 255, 255)); AllegroBitmap guiBackBuffer(g_FrameMan.GetBackBuffer32()); m_IntroTextFont->DrawAligned(&guiBackBuffer, m_TitleScreenMaxWidth / 2, g_WindowMan.GetResY() - m_IntroTextFont->GetFontHeight() - 5, "Made with FMOD Studio by Firelight Technologies Pty Ltd.", GUIFont::Centre); } else if (m_IntroSequenceState >= IntroSequence::ShowSlide1 && m_IntroSequenceState <= IntroSequence::ShowSlide8) { @@ -563,11 +574,14 @@ void TitleScreen::Draw() { } else if (m_IntroSequenceState == IntroSequence::SlideshowEnd) { m_PreGameLogoText.Draw(g_FrameMan.GetBackBuffer32()); int blendAmount = 220 + RandomNum(-35, 35); - set_screen_blender(blendAmount, blendAmount, blendAmount, blendAmount); + g_FrameMan.SetCurrentAlpha(blendAmount); + rlSetBlendMode(RL_BLEND_SCREEN); m_PreGameLogoTextGlow.Draw(g_FrameMan.GetBackBuffer32(), Vector(), DrawMode::g_DrawTrans); + rlSetBlendMode(RL_BLEND_ALPHA); + g_FrameMan.SetCurrentAlpha(255); } } else { - DrawTitleScreenScene(); + DrawTitleScreenScene(scrollCamera); // In credits have to draw the overlay before the game logo otherwise drawing the game logo again on top of an existing one causes the glow effect to look wonky. if (m_TitleTransitionState == TitleTransition::MainMenuToCredits || m_TitleTransitionState == TitleTransition::CreditsToMainMenu) { @@ -575,6 +589,7 @@ void TitleScreen::Draw() { DrawOverlayEffectBitmap(); } DrawGameLogo(); + g_RenderMan.DrawActiveBatch(); return; } DrawGameLogo(); @@ -582,56 +597,47 @@ void TitleScreen::Draw() { if (m_FadeAmount > 0) { DrawOverlayEffectBitmap(); } + g_RenderMan.DrawActiveBatch(); } -void TitleScreen::DrawTitleScreenScene() { - rlDisableDepthTest(); - - Box nebulaTargetBox(Vector(), g_FrameMan.GetBackBuffer32()->w, g_FrameMan.GetBackBuffer32()->h); - m_Nebula.SetOffset(Vector(static_cast((m_TitleScreenMaxWidth - m_Nebula.GetBitmap()->w) / 2), m_ScrollOffset.GetY())); - m_Nebula.Draw(nebulaTargetBox, nebulaTargetBox, true); +void TitleScreen::DrawTitleScreenScene(const Camera& camera) { + // The nebula scrolls at its scroll ratio relative to the title scroll offset. + glm::vec2 nebulaPos(static_cast((m_TitleScreenMaxWidth - m_Nebula.GetBitmap()->w) / 2), -std::floor(m_ScrollOffset.GetY() * m_Nebula.GetScrollRatio().GetY())); + Draw::DrawTexture(m_Nebula.GetStaticTexture(), nebulaPos); - rlEnableColorBlend(); - rlSetBlendFactorsSeparate(GL_ONE, GL_ONE_MINUS_SRC_COLOR, GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD, GL_FUNC_ADD); - rlSetBlendMode(RL_BLEND_CUSTOM_SEPARATE); + g_RenderMan.SetActiveBlendMode(Blend::SCREEN); for (const Star& star: m_BackdropStars) { int intensity = star.Intensity + RandomNum(0, (star.Size == Star::StarSize::StarSmall) ? 35 : 70); - // set_screen_blender(intensity, intensity, intensity, intensity); int starPosY = static_cast(star.Position.GetY() - (m_ScrollOffset.GetY() * (m_Nebula.GetScrollRatio().GetY() * ((star.Size == Star::StarSize::StarSmall) ? 0.8F : 1.0F)))); - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(star.Bitmap), star.Position.m_X, starPosY, RLColor(intensity, intensity, intensity, intensity)); - // draw_trans_sprite(g_FrameMan.GetBackBuffer32(), star.Bitmap, star.Position.GetFloorIntX(), starPosY); + Draw::DrawTexture(star.Bitmap.get(), star.Position.m_X, starPosY, {intensity, intensity, intensity, intensity}); } - rlSetBlendMode(RL_BLEND_ALPHA); + g_RenderMan.SetActiveBlendMode(Blend::ALPHA); m_PlanetPos.SetXY(static_cast(m_TitleScreenMaxWidth / 2), static_cast(567 - m_ScrollOffset.GetFloorIntY())); m_Moon.SetPos(Vector(m_PlanetPos.GetX() + 200, 364 - (m_ScrollOffset.GetY() * 0.60F))); // m_Moon.Draw(g_FrameMan.GetBackBuffer32(), Vector(), DrawMode::g_DrawAlpha); m_Planet.SetPos(m_PlanetPos); // m_Planet.Draw(g_FrameMan.GetBackBuffer32(), Vector(), DrawMode::g_DrawAlpha); - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(m_Moon.GetSpriteFrame(0)), m_Moon.GetPos() + m_Moon.GetSpriteOffset(), {255, 255, 255, 255}); - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(m_Planet.GetSpriteFrame(0)), m_Planet.GetPos() + m_Planet.GetSpriteOffset(), {255, 255, 255, 255}); + Draw::DrawBitmap(m_Moon.GetSpriteFrame(0), ToVec2(m_Moon.GetPos()), ToVec2(m_Moon.GetSpriteOffset()), 0.0f, glm::vec2(1.0f)); + Draw::DrawBitmap(m_Planet.GetSpriteFrame(0), ToVec2(m_Planet.GetPos()), ToVec2(m_Planet.GetSpriteOffset()), 0.0f, glm::vec2(1.0f)); m_StationOffset.SetXY(m_OrbitRadius, 0); m_StationOffset.RadRotate(m_StationOrbitRotation); m_Station.SetPos(m_PlanetPos + m_StationOffset); m_Station.SetRotAngle(-c_HalfPI + m_StationOrbitRotation); - // m_Station.Draw(g_FrameMan.GetBackBuffer32()); - DrawTextureEx(g_GLResourceMan.GetStaticTextureFromBitmap(m_Station.GetSpriteFrame(0)), m_Station.GetPos() + m_Station.GetSpriteOffset() + Vector(m_Station.GetSpriteFrame(0)->w / 2, m_Station.GetSpriteFrame(0)->h / 2), m_StationOrbitRotation - c_HalfPI, 1.0f, {255, 255, 255, 255}); + // CC rotations are counter-clockwise, screen space rotation is clockwise. + Draw::DrawBitmap(m_Station.GetSpriteFrame(0), ToVec2(m_Station.GetPos()), ToVec2(m_Station.GetSpriteOffset()), -m_Station.GetRotAngle(), glm::vec2(1.0f)); } void TitleScreen::DrawGameLogo() { - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(m_GameLogo.GetSpriteFrame(0)), m_GameLogo.GetPos() + m_GameLogo.GetSpriteOffset(), {255, 255, 255, 255}); - // m_GameLogo.Draw(g_FrameMan.GetBackBuffer32()); + Draw::DrawBitmap(m_GameLogo.GetSpriteFrame(0), ToVec2(m_GameLogo.GetPos()), ToVec2(m_GameLogo.GetSpriteOffset()), 0.0f, glm::vec2(1.0f)); m_GameLogoGlow.SetPos(m_GameLogo.GetPos()); - rlEnableColorBlend(); - rlSetBlendFactorsSeparate(GL_ONE, GL_ONE_MINUS_SRC_COLOR, GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_FUNC_ADD, GL_FUNC_ADD); - rlSetBlendMode(RL_BLEND_CUSTOM_SEPARATE); int glowIntensity = 220 + RandomNum(-35, 35); - // set_screen_blender(glowIntensity, glowIntensity, glowIntensity, glowIntensity); - // m_GameLogoGlow.Draw(g_FrameMan.GetBackBuffer32(), Vector(), DrawMode::g_DrawTrans); - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(m_GameLogoGlow.GetSpriteFrame(0)), m_GameLogoGlow.GetPos() + m_GameLogoGlow.GetSpriteOffset(), RLColor(glowIntensity, glowIntensity, glowIntensity, glowIntensity)); + g_RenderMan.SetActiveBlendMode(Blend::SCREEN); + Draw::DrawBitmap(m_GameLogoGlow.GetSpriteFrame(0), ToVec2(m_GameLogoGlow.GetPos()), ToVec2(m_GameLogoGlow.GetSpriteOffset()), 0.0f, glm::vec2(1.0f), Color(glowIntensity, glowIntensity, glowIntensity, glowIntensity)); + g_RenderMan.SetActiveBlendMode(Blend::ALPHA); } void TitleScreen::DrawSlideshowSlide() { @@ -654,7 +660,7 @@ void TitleScreen::DrawSlideshowSlide() { set_clip_rect(g_FrameMan.GetBackBuffer32(), 0, 0, m_TitleScreenMaxWidth - g_WindowMan.GetResMultiplier(), g_WindowMan.GetResY()); //draw_trans_sprite(g_FrameMan.GetBackBuffer32(), m_IntroSlides.at(slide), slidePos.GetFloorIntX(), slidePos.GetFloorIntY()); - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(m_IntroSlides.at(slide)), slidePos, RLColor(255, 255, 255, fadeAmount)); + Draw::DrawBitmap(m_IntroSlides.at(slide), ToVec2(slidePos), glm::vec2(0.0f), 0.0f, glm::vec2(1.0f), Color(255, 255, 255, fadeAmount)); // Have to immediately reset the clipping rect otherwise the stars in the other displays slowly go into warp speed until the intro sequence is done. set_clip_rect(g_FrameMan.GetBackBuffer32(), 0, 0, g_FrameMan.GetBackBuffer32()->w, g_FrameMan.GetBackBuffer32()->h); @@ -668,8 +674,5 @@ void TitleScreen::DrawSlideshowSlide() { void TitleScreen::DrawOverlayEffectBitmap() const { set_trans_blender(m_FadeAmount, m_FadeAmount, m_FadeAmount, m_FadeAmount); draw_trans_sprite(g_FrameMan.GetBackBuffer32(), g_FrameMan.GetOverlayBitmap32(), 0, 0); - rlEnableColorBlend(); - rlSetBlendMode(RL_BLEND_ALPHA); - DrawRectangle(0, 0, g_WindowMan.GetResX(), g_WindowMan.GetResY(), RLColor(1, 1, 1, m_FadeAmount)); - rlDrawRenderBatchActive(); + Draw::Rectangle(FloatRect(0.0f, 0.0f, static_cast(g_WindowMan.GetResX()), static_cast(g_WindowMan.GetResY())), Color(1, 1, 1, m_FadeAmount)); } diff --git a/Source/Menus/TitleScreen.h b/Source/Menus/TitleScreen.h index 0d006302cf..288d698c69 100644 --- a/Source/Menus/TitleScreen.h +++ b/Source/Menus/TitleScreen.h @@ -134,7 +134,7 @@ namespace RTE { }; StarSize Size; //!< The size of the Star. Used for the appropriate Bitmap selection and Intensity randomization when drawing. - BITMAP* Bitmap; //!< The bitmap to draw, not owned by this. Not Owned. + std::shared_ptr Bitmap; //!< The bitmap to draw, not owned by this. Not Owned. int Intensity; //!< Intensity value on a scale from 0 to 255. Vector Position; //!< The position of the Star on the title screen scene backdrop. }; @@ -148,6 +148,7 @@ namespace RTE { MOSParticle m_Moon; //!< The title screen scene moon. MOSParticle m_Planet; //!< The title screen scene planet. Vector m_PlanetPos; //!< The position of the planet on the title screen scene. + std::unique_ptr m_ScreenCamera; //!< Screen space camera the title screen draws with. Kept alive because menus drawn over the title screen queue GPU draws that are flushed with it later in the frame. float m_PlanetRadius; //!< The radius of the planet. MOSRotating m_Station; //!< The title screen scene station. Vector m_StationOffset; //!< The position of the station on the planet orbit. @@ -184,8 +185,8 @@ namespace RTE { float m_SlideFadeOutDuration; //!< How many seconds the duration of a slideshow slide fade out is supposed to elapse. std::unique_ptr m_IntroTextFont; //!< The GUIFont used for drawing text during the logo splash screens and slideshow. std::string m_SlideshowSlideText; //!< String containing the slide text during each section of the slideshow. - BITMAP* m_DataRealmsLogo; //!< The DataRealms logo bitmap used in the logo splash screen. Not Owned. - BITMAP* m_FmodLogo; //!< The Fmod logo bitmap used in the logo splash screen. Not Owned. + std::shared_ptr m_DataRealmsLogo; //!< The DataRealms logo bitmap used in the logo splash screen. Not Owned. + std::shared_ptr m_FmodLogo; //!< The Fmod logo bitmap used in the logo splash screen. Not Owned. MOSParticle m_PreGameLogoText; //!< The pre-game logo text that appears at the end of the slideshow. MOSParticle m_PreGameLogoTextGlow; //!< The pre-game logo text glow. std::array m_IntroSlides; //!< Array that contains all the slideshow slide bitmaps. Not Owned. @@ -213,7 +214,7 @@ namespace RTE { void UpdateTitleTransitions(); /// Draws the whole title screen scene to the screen. - void DrawTitleScreenScene(); + void DrawTitleScreenScene(const Camera& camera); /// Draws the game logo and effects to the screen. void DrawGameLogo(); diff --git a/Source/Renderer/BigTexture.cpp b/Source/Renderer/BigTexture.cpp index b4aa5c0c5f..d43717f518 100644 --- a/Source/Renderer/BigTexture.cpp +++ b/Source/Renderer/BigTexture.cpp @@ -1,9 +1,13 @@ #include "BigTexture.h" +#include "AllegroTools.h" +#include "Draw.h" +#include "GLStateMan.h" +#include "DebugMan.h" + #include "glad/gl.h" #include #include -#include "Draw.h" -#include "GLResourceMan.h" +#include #include "tracy/Tracy.hpp" #include "tracy/TracyOpenGL.hpp" @@ -13,14 +17,10 @@ int BigTexture::s_MaxGLTextureSize{0}; BigTexture::BigTexture(BITMAP* bitmap) { if (!s_MaxGLTextureSize) { glGetIntegerv(GL_MAX_TEXTURE_SIZE, &s_MaxGLTextureSize); - s_MaxGLTextureSize /= 2; } int bitsPerPixel = bitmap_color_depth(bitmap); int bytesPerPixel = bitsPerPixel / 8; m_Bitmap = bitmap; - GLBitmapInfo* bitmapExtra = g_GLResourceMan.MakeBitmapInfo(); - bitmap->extra = reinterpret_cast(bitmapExtra); - PixelFormat format = bitsPerPixel == 8 ? PIXELFORMAT_UNCOMPRESSED_GRAYSCALE : PIXELFORMAT_UNCOMPRESSED_R8G8B8A8; m_Width = bitmap->w; m_Height = bitmap->h; @@ -31,15 +31,11 @@ BigTexture::BigTexture(BITMAP* bitmap) { int regionWidth = std::min(width, s_MaxGLTextureSize); int regionHeight = std::min(height, s_MaxGLTextureSize); m_Regions.emplace_back( - Vector(x, y), - regionWidth, - regionHeight); - m_Textures.emplace_back( - rlLoadTexture(nullptr, regionWidth, regionHeight, PIXELFORMAT_UNCOMPRESSED_GRAYSCALE, 1), - regionWidth, - regionHeight, - 1, - format); + Vector(x, y), + regionWidth, + regionHeight); + std::unique_ptr targetRegionPixels = std::unique_ptr(create_bitmap_ex(bitmap_color_depth(bitmap), regionWidth, regionHeight)); + m_Textures.emplace_back(std::make_shared(std::move(targetRegionPixels), Filter::Nearest)); GLuint uploadBuffer; glGenBuffers(1, &uploadBuffer); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, uploadBuffer); @@ -52,47 +48,83 @@ BigTexture::BigTexture(BITMAP* bitmap) { } } -BigTexture::~BigTexture() { - for (Texture2D& texture: m_Textures) { - glDeleteTextures(1, &texture.id); +void BigTexture::UpdateChanged(const Box& updateRegion) { + ZoneScoped; + int bytesPerPixel = bitmap_color_depth(m_Bitmap) / 8; + size_t rowBytes = static_cast(m_Width) * bytesPerPixel; + if (m_MirroredBitmap != m_Bitmap || m_Mirror.size() != rowBytes * m_Height) { + // Start from a known state: upload everything once and remember it. + Update(Box(Vector(), static_cast(m_Width), static_cast(m_Height))); + m_Mirror.resize(rowBytes * m_Height); + for (int y = 0; y < m_Height; ++y) { + std::memcpy(m_Mirror.data() + y * rowBytes, m_Bitmap->line[y], rowBytes); + } + m_MirroredBitmap = m_Bitmap; + return; + } + + int left = std::clamp(updateRegion.m_Corner.GetFloorIntX(), 0, m_Width); + int top = std::clamp(updateRegion.m_Corner.GetFloorIntY(), 0, m_Height); + int right = std::clamp(static_cast(std::ceil(updateRegion.m_Corner.m_X + updateRegion.m_Width)), 0, m_Width); + int bottom = std::clamp(static_cast(std::ceil(updateRegion.m_Corner.m_Y + updateRegion.m_Height)), 0, m_Height); + if (left >= right || top >= bottom) { + return; + } + size_t spanBytes = static_cast(right - left) * bytesPerPixel; + size_t spanOffset = static_cast(left) * bytesPerPixel; + + // Bands of rows, each uploading the horizontal extent of its changes, so a few scattered edits don't re-upload the whole view. + constexpr int bandHeight = 32; + for (int bandTop = top; bandTop < bottom; bandTop += bandHeight) { + int bandBottom = std::min(bandTop + bandHeight, bottom); + size_t changedFirst = spanBytes; + size_t changedLast = 0; + int changedTop = -1; + int changedBottom = -1; + for (int y = bandTop; y < bandBottom; ++y) { + const unsigned char* current = m_Bitmap->line[y] + spanOffset; + const unsigned char* mirrored = m_Mirror.data() + y * rowBytes + spanOffset; + if (std::memcmp(current, mirrored, spanBytes) == 0) { + continue; + } + size_t first = 0; + while (current[first] == mirrored[first]) { + ++first; + } + size_t last = spanBytes - 1; + while (current[last] == mirrored[last]) { + --last; + } + changedFirst = std::min(changedFirst, first); + changedLast = std::max(changedLast, last); + if (changedTop < 0) { + changedTop = y; + } + changedBottom = y + 1; + } + if (changedTop < 0) { + continue; + } + int changedLeft = left + static_cast(changedFirst / bytesPerPixel); + int changedRight = left + static_cast(changedLast / bytesPerPixel) + 1; + Update(Box(Vector(static_cast(changedLeft), static_cast(changedTop)), static_cast(changedRight - changedLeft), static_cast(changedBottom - changedTop))); + size_t copyOffset = static_cast(changedLeft) * bytesPerPixel; + size_t copyBytes = static_cast(changedRight - changedLeft) * bytesPerPixel; + for (int y = changedTop; y < changedBottom; ++y) { + std::memcpy(m_Mirror.data() + y * rowBytes + copyOffset, m_Bitmap->line[y] + copyOffset, copyBytes); + } } } -void BigTexture::Draw(Rectangle source, Rectangle dest) { +void BigTexture::Draw(const Box& source, const Box& dest) { ZoneScoped; TracyGpuZone("BigTexture::Draw"); - float scaleX = dest.width / source.width; - float scaleY = dest.height / source.height; - Box sourceBox(Vector(source.x, source.y), source.width, source.height); + float scaleX = dest.m_Width / source.m_Width; + float scaleY = dest.m_Height / source.m_Height; for (int i = 0; i < m_Regions.size(); ++i){ - Box sourceIntersect = sourceBox.GetIntersection(m_Regions[i]); + Box sourceIntersect = source.GetIntersection(m_Regions[i]); if (!sourceIntersect.IsEmpty()) { -#ifdef DEBUG_BUILD - DrawRectangleLines(dest.x + sourceIntersect.m_Corner.m_X * scaleX, - dest.y + sourceIntersect.m_Corner.m_Y * scaleY, - sourceIntersect.m_Width * scaleX, - sourceIntersect.m_Height * scaleY, - {5, 0, 0, 255} - ); - DrawRectangleLines( - dest.x + sourceIntersect.m_Corner.m_X * scaleX + 10, - dest.y + sourceIntersect.m_Corner.m_Y * scaleY + 10, - sourceIntersect.m_Width * scaleX - 20, - sourceIntersect.m_Height * scaleY - 20, - {5, 0, 0, 255} - ); -#endif - DrawTexturePro( - m_Textures[i], - sourceIntersect, - {dest.x + sourceIntersect.m_Corner.m_X * scaleX, - dest.y + sourceIntersect.m_Corner.m_Y * scaleY, - sourceIntersect.m_Width * scaleX, - sourceIntersect.m_Height * scaleY}, - {0.0f, 0.0f}, - 0.0f, - {255, 255, 255, 255} - ); + Draw::DrawTexture(m_Textures[i].get(), sourceIntersect, Box(dest.m_Corner + Vector(sourceIntersect.m_Corner.m_X * scaleX, sourceIntersect.m_Corner.m_Y * scaleY), sourceIntersect.m_Width * scaleX, sourceIntersect.m_Height * scaleY)); } } } @@ -100,9 +132,6 @@ void BigTexture::Draw(Rectangle source, Rectangle dest) { void BigTexture::Update(const Box& updateRegion) { ZoneScoped; TracyGpuZone("BigTexture Upload"); - if (!m_Bitmap->extra) { - m_Bitmap->extra = reinterpret_cast(g_GLResourceMan.MakeBitmapInfo()); - } int bytesPerPixel = bitmap_color_depth(m_Bitmap) / 8; glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap_color_depth(m_Bitmap) == 8 ? 1 : 4); for (int i = 0; i < m_Regions.size(); ++i) { @@ -110,31 +139,36 @@ void BigTexture::Update(const Box& updateRegion) { if (!intersect.IsEmpty()) { glBindBuffer(GL_PIXEL_UNPACK_BUFFER, m_UploadBuffers[i]); size_t pixelsSize = std::ceil(intersect.m_Width) * std::ceil(intersect.m_Height) * bytesPerPixel; - unsigned char* pixels = (unsigned char*)glMapBufferRange(GL_PIXEL_UNPACK_BUFFER, (intersect.m_Corner.GetFloorIntY() %s_MaxGLTextureSize) * m_Textures[i].width + intersect.m_Corner.GetFloorIntX() % s_MaxGLTextureSize, pixelsSize, GL_MAP_WRITE_BIT|GL_MAP_INVALIDATE_BUFFER_BIT); - + // The region is packed tightly from the start of the buffer, which is invalidated (orphaned) every upload anyway. + unsigned char* pixels = (unsigned char*)glMapBufferRange(GL_PIXEL_UNPACK_BUFFER, 0, pixelsSize, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT); + if (!pixels) { + glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); + continue; + } + for (size_t y = 0; y < static_cast(std::ceil(intersect.m_Height)); y++) { memcpy( - pixels + y * static_cast(std::ceil(intersect.m_Width)) * bytesPerPixel, - m_Bitmap->line[y + intersect.m_Corner.GetFloorIntY()] + intersect.m_Corner.GetFloorIntX(), - std::ceil(intersect.m_Width) * bytesPerPixel - ); + pixels + y * static_cast(std::ceil(intersect.m_Width)) * bytesPerPixel, + m_Bitmap->line[y + intersect.m_Corner.GetFloorIntY()] + intersect.m_Corner.GetFloorIntX() * bytesPerPixel, + std::ceil(intersect.m_Width) * bytesPerPixel); } glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER); - glBindTexture(GL_TEXTURE_2D, m_Textures[i].id); + glBindTexture(GL_TEXTURE_2D, m_Textures[i]->GetTextureId()); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + assert(m_Textures[i]->GetDimensions().w >= intersect.m_Width); + assert(m_Textures[i]->GetDimensions().h >= intersect.m_Height); glTexSubImage2D( - GL_TEXTURE_2D, - 0, - intersect.m_Corner.GetFloorIntX() % s_MaxGLTextureSize, - intersect.m_Corner.GetFloorIntY() % s_MaxGLTextureSize, - std::ceil(intersect.m_Width), - std::ceil(intersect.m_Height), - bytesPerPixel == 1 ? GL_RED : GL_RGBA, - GL_UNSIGNED_BYTE, - reinterpret_cast((intersect.m_Corner.GetFloorIntY() % s_MaxGLTextureSize) * m_Textures[i].width + intersect.m_Corner.GetFloorIntX() % s_MaxGLTextureSize) - ); + GL_TEXTURE_2D, + 0, + intersect.m_Corner.GetFloorIntX() % s_MaxGLTextureSize, + intersect.m_Corner.GetFloorIntY() % s_MaxGLTextureSize, + std::ceil(intersect.m_Width), + std::ceil(intersect.m_Height), + bytesPerPixel == 1 ? GL_RED : GL_RGBA, + GL_UNSIGNED_BYTE, + nullptr); glBindTexture(GL_TEXTURE_2D, 0); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); diff --git a/Source/Renderer/BigTexture.h b/Source/Renderer/BigTexture.h index 8e5b0db2a1..8895c9bb2b 100644 --- a/Source/Renderer/BigTexture.h +++ b/Source/Renderer/BigTexture.h @@ -8,24 +8,31 @@ namespace RTE { struct BigTexture { /// Constructs a BigTexture from a bitmap, generating extra textures as needed. BigTexture(BITMAP* bitmap); - + /// Destructs this BigTexture. - ~BigTexture(); - + ~BigTexture() = default; + /// Update a region of this BigTexture. /// @param region the region to update, must be inside the texture. void Update(const Box& region); + /// Uploads only what changed inside a region since it was last uploaded, by comparing against a CPU copy of what the GPU holds. + /// The first call uploads the whole bitmap. Works however the bitmap was modified, so callers don't need to report changes. + /// @param region The region to bring up to date, must be inside the texture. + void UpdateChanged(const Box& region); + /// @brief Draw this texture (or part of it) to the screen /// @param source The source rectangle inside this texture. /// @param dest The destination rectangle on the screen. - void Draw(Rectangle source, Rectangle dest); - std::vector m_Textures{}; //!< The tiles of this BigTexture. + void Draw(const Box& source, const Box& dest); + std::vector> m_Textures{}; //!< The tiles of this BigTexture. std::vector m_UploadBuffers{}; //!< Upload buffers to reduce wait time on big uploads. std::vector m_Regions{}; //!< The offset regions of each tile. BITMAP* m_Bitmap{nullptr}; //!< The memory BITMAP, not owned. int m_Width{0}; //!< The total width of this texture. int m_Height{0}; //!< The total height of this texture. + std::vector m_Mirror{}; //!< What the GPU textures currently hold, for UpdateChanged. Empty until first used. + const BITMAP* m_MirroredBitmap{nullptr}; //!< The bitmap the mirror was made from; a different one resets it. static int s_MaxGLTextureSize; //!< The maximum allowed size for gpu textures, tiles will be generated at half this to save some space since GL may expand textures to power of 2 squares. }; -} // namespace RTE \ No newline at end of file +} // namespace RTE diff --git a/Source/Renderer/BlendMode.cpp b/Source/Renderer/BlendMode.cpp new file mode 100644 index 0000000000..588253a6e3 --- /dev/null +++ b/Source/Renderer/BlendMode.cpp @@ -0,0 +1,122 @@ +#include "BlendMode.h" +#include +#include + +using namespace RTE; + +static constexpr std::array c_KhrBlendEquations{GL_COLORBURN_KHR, GL_COLORDODGE_KHR, GL_HSL_COLOR_KHR, GL_HSL_SATURATION_KHR, GL_HSL_LUMINOSITY_KHR}; + +BlendMode::BlendMode(Blend mode) { + m_BlendMode = mode; + switch (mode) { + case Blend::ALPHA: { + // Blend alpha separately so drawing translucent things over an opaque target keeps the target opaque, otherwise the coverage hole shows through when the target is composited later. + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_FUNC_ADD; + m_SrcFuncRGB = GL_SRC_ALPHA; + m_DestFuncRGB = GL_ONE_MINUS_SRC_ALPHA; + m_SrcFuncAlpha = GL_ONE; + m_DestFuncAlpha = GL_ONE_MINUS_SRC_ALPHA; + break; + } + case Blend::ALPHA_PREMULTIPLY: { + m_SrcFunc = GL_ONE; + m_DestFunc = GL_ONE_MINUS_SRC_ALPHA; + m_Equation = GL_FUNC_ADD; + break; + } + case Blend::BURN: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_COLORBURN_KHR; + break; + } + case Blend::DODGE: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_COLORDODGE_KHR; + break; + } + case Blend::HSL_COLOR: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_HSL_COLOR_KHR; + break; + } + case Blend::HSL_SATURATION: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_HSL_SATURATION_KHR; + break; + } + case Blend::HSL_LUMINOSITY: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_HSL_LUMINOSITY_KHR; + break; + } + case Blend::SCREEN: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_FUNC_ADD; + m_SrcFuncRGB = GL_ONE; + m_DestFuncRGB = GL_ONE_MINUS_SRC_COLOR; + m_SrcFuncAlpha = GL_ONE; + m_DestFuncAlpha = GL_ONE_MINUS_SRC_ALPHA; + break; + } + case Blend::ADD: { + m_SrcFunc = 0; + m_DestFunc = 0; + m_Equation = GL_FUNC_ADD; + m_SrcFuncRGB = GL_SRC_ALPHA; + m_DestFuncRGB = GL_ONE; + m_SrcFuncAlpha = GL_ZERO; + m_DestFuncAlpha = GL_ONE; + break; + } + case Blend::MULTIPLY: { + m_SrcFunc = GL_DST_COLOR; + m_DestFunc = GL_ONE_MINUS_SRC_ALPHA; + m_Equation = GL_FUNC_ADD; + break; + } + default: { + m_SrcFunc = GL_ONE; + m_DestFunc = GL_ONE_MINUS_SRC_ALPHA; + m_Equation = GL_FUNC_ADD; + m_BlendMode = Blend::ALPHA; + break; + } + } +} + +BlendMode::BlendMode(GLint srcFunc, GLint destFunc, GLint equation) : + m_BlendMode(Blend::CUSTOM), m_SrcFunc(srcFunc), m_DestFunc(destFunc), m_Equation(equation) {} + +BlendMode::BlendMode(GLint srcFuncRGB, GLint srcFuncAlpha, GLint destFuncRGB, GLint destFuncAlpha, GLint equationRGB, GLint equationAlpha) : + m_BlendMode(Blend::CUSTOM), m_SrcFunc(0), m_DestFunc(0), m_Equation(0), m_SrcFuncRGB(srcFuncRGB), m_DestFuncRGB(destFuncRGB), m_SrcFuncAlpha(srcFuncAlpha), m_DestFuncAlpha(destFuncAlpha), m_EquationRGB(equationRGB), m_EquationAlpha(equationAlpha) {} + +void BlendMode::Enable() { + if (m_BlendMode == Blend::NONE) { + glDisable(GL_BLEND); + return; + } + glEnable(GL_BLEND); + // Never blend into the second color attachment (normals and emissive strength): blending would average normals and accumulate the emissive encoding across overlapping draws. + glDisablei(GL_BLEND, 1); + if (m_Equation) { + glBlendEquation(m_Equation); + if (std::find(c_KhrBlendEquations.cbegin(), c_KhrBlendEquations.cend(), m_Equation) != c_KhrBlendEquations.cend()) { + return; + } + } else { + glBlendEquationSeparate(m_EquationRGB, m_EquationAlpha); + } + if (m_SrcFuncAlpha || m_SrcFuncRGB || m_DestFuncAlpha || m_DestFuncRGB) { + glBlendFuncSeparate(m_SrcFuncRGB, m_DestFuncRGB, m_SrcFuncAlpha, m_DestFuncAlpha); + } else { + glBlendFunc(m_SrcFunc, m_DestFunc); + } +} diff --git a/Source/Renderer/BlendMode.h b/Source/Renderer/BlendMode.h new file mode 100644 index 0000000000..99e37a519a --- /dev/null +++ b/Source/Renderer/BlendMode.h @@ -0,0 +1,58 @@ +#pragma once +#include "glad/gl.h" + +namespace RTE { + /// Blend Modes + /// see https://en.wikipedia.org/wiki/Blend_modes + enum class Blend { + NONE, //!< Disable Color blending + ALPHA, + ALPHA_PREMULTIPLY, + BURN, //!< Requires GL_KHR_blend_equation_advanced + DODGE, //!< Requires GL_KHR_blend_equation_advanced + HSL_COLOR, //!< Requires GL_KHR_blend_equation_advanced + HSL_SATURATION, //!< Requires GL_KHR_blend_equation_advanced + HSL_LUMINOSITY, //!< Requires GL_KHR_blend_equation_advanced + SCREEN, + ADD, + MULTIPLY, + CUSTOM + }; + class BlendMode { + public: + /// Constructs default Alpha blending mode. + BlendMode() = default; + + /// Constructs blend mode from Blend enum. Sets appropriate Func and Equation for Blend mode + BlendMode(Blend blendMode); + + /// Constructs custom blend mode from srcFunc, destFunc, equation for use in glBlendFunc and glBlendEquation. + /// @param srcFunc Source function as in glBlendFunc. + /// @param destFunc Destination function as in glBlendFunc. + /// @param equation Blending equation as in glBlendEquation. + BlendMode(GLint srcFunc, GLint destFunc, GLint equation); + + /// Constructs custom blend mode from separate rgb and alpha function and equations for use in glBlendFuncSeparate and glBlendEquationSeparate. + /// @param srcFuncRGB Source RGB function. + /// @param srcFuncAlpha Source alpha function. + /// @param destFuncRGB Destination RGB function. + BlendMode(GLint srcFuncRGB, GLint srcFuncAlpha, GLint destFuncRGB, GLint destFuncAlpha, GLint equationRGB, GLint equationAlpha); + + void Enable(); + + Blend GetBlendMode() { return m_BlendMode; } + + bool operator==(const BlendMode& rhs) const = default; + private: + Blend m_BlendMode{Blend::NONE}; + GLint m_SrcFunc{GL_SRC_ALPHA}; //!< glBlendFunc source function. + GLint m_DestFunc{GL_ONE_MINUS_SRC_ALPHA}; //!< glBlendFunc dest function. + GLint m_Equation{GL_FUNC_ADD}; //!< glBlendEquation. + GLint m_SrcFuncRGB{0}; //!< glBlendFuncSeparate source rgb function. + GLint m_DestFuncRGB{0}; //!< glBlendFuncSeparate dest rgb function. + GLint m_SrcFuncAlpha{0}; //!< glBlendFuncSeparate source alpha function. + GLint m_DestFuncAlpha{0}; //!< glBlendFuncSeparate dest alpha function. + GLint m_EquationRGB{0}; //!< glBlendEquationSeparate RGB equation. + GLint m_EquationAlpha{0}; //!< glBlendEquationSeparate alpha equation. + }; +} // namespace RTE diff --git a/Source/Renderer/Camera.cpp b/Source/Renderer/Camera.cpp new file mode 100644 index 0000000000..606fd8d971 --- /dev/null +++ b/Source/Renderer/Camera.cpp @@ -0,0 +1,37 @@ +#include "Camera.h" +#include "Draw.h" +#include "Constants.h" +#include "glm/ext/matrix_transform.hpp" +#include "glm/ext/matrix_clip_space.hpp" +#include "glm/gtx/vector_angle.hpp" + +using namespace RTE; + +Camera::Camera(const Box& viewBox, Vector viewUp, float zoom) { + +} + +bool Camera::IsVisible(Vector center, float radius) const { + // https://yal.cc/rectangle-circle-intersection-test/ + float deltaX = center.m_X - std::max(m_Viewport.m_Corner.m_X, std::min(center.m_X, m_Viewport.m_Corner.m_X + m_Viewport.m_Width)); + float deltaY = center.m_Y - std::max(m_Viewport.m_Corner.m_Y, std::min(center.m_Y, m_Viewport.m_Corner.m_Y + m_Viewport.m_Height)); + return (deltaX * deltaX + deltaY * deltaY) < (radius * radius); +} + +void Camera::SetViewport(const Box& viewport) { + m_Viewport = viewport; +} + +void Camera::UpdateView() { + m_Viewport.m_Corner = m_ViewCorner.GetFloored(); + m_View = glm::translate(glm::mat4(1.0f), glm::vec3(m_Viewport.m_Width / 2, m_Viewport.m_Height / 2, 0.0f)); + m_View = glm::scale(m_View, glm::vec3(m_Scale, m_Scale, -1.0f)); + m_View = glm::rotate(m_View, glm::angle(static_cast(m_ViewUp), glm::vec2(0.0f, 1.0f)), glm::vec3(0.0f, 0.0f, 1.0f)); + m_View = glm::translate(m_View, -glm::vec3(m_Viewport.m_Width / 2, m_Viewport.m_Height / 2, 0.0f)); + m_View = glm::translate(m_View, glm::vec3(static_cast(-m_ViewCorner), 0.0f)); + m_Projection = glm::ortho(0.0f, std::floor(m_Viewport.m_Width), 0.0f, std::floor(m_Viewport.m_Height), c_NearDepth, c_FarDepth); +} + +void Camera::Draw() const { + Draw::Lines::Rectangle(m_Viewport, {69, 245, 255, 255}); +} diff --git a/Source/Renderer/Camera.h b/Source/Renderer/Camera.h new file mode 100644 index 0000000000..92febd5c17 --- /dev/null +++ b/Source/Renderer/Camera.h @@ -0,0 +1,70 @@ +#pragma once +#include "Entity.h" +#include "Box.h" +#include "Vector.h" +#include +#include "glm/glm.hpp" + +namespace RTE { + class Camera{ + public: + Camera(Vector viewCorner, Box viewport, float zoom = 1.0f, Vector viewUp = {0.0f, 1.0f}) : + m_ViewCorner{viewCorner}, m_Viewport{viewport}, m_ClipRect{viewport}, m_Scale{zoom}, m_ViewUp{viewUp} { UpdateView(); } + + Camera(const Box& viewBox, Vector viewUp = {0.0f, 1.0f}, float zoom = 1.0f); + + /// Get the corner of this camera view. + const Vector& GetViewCorner() const { return m_ViewCorner; } + + /// Get the viewport of this camera. + const Box& GetViewport() const { return m_Viewport; } + + /// Set the view box of the camera. + void SetViewport(const Box& viewport); + + const glm::mat4& GetView() const { return m_View; } + + const glm::mat4& GetProjection() const { return m_Projection; } + + void SetViewUp(Vector viewUp) { m_ViewUp = viewUp; } + + /// Set the post viewport scaling. + void SetZoom(float zoom) { m_Scale = zoom; } + + /// @brief Test if a circle with \p radius around \p center overlaps with viewport. + /// This should be used for frustum culling. + /// @param center Center point of the object to test. + /// @param radius Radius of the object to test. + /// @return Whether the object is visible. + bool IsVisible(Vector center, float radius) const; + + Activity::Teams GetTeam() const { return m_Team; } + + /// Sets the team whose view this camera shows, which decides the fog of war drawn. + void SetTeam(Activity::Teams team) { m_Team = team; } + + bool IsShowHUD() const { return m_ShowHUD; } + + void SetClipRect(const Box& clipRect) { m_ClipRect = clipRect; } + void SetClipState(bool clip) { m_EnableClipping = clip; } + + bool GetClipState() { return m_EnableClipping; } + const Box& GetClipRect() { return m_ClipRect; } + + void UpdateView(); + + void Draw() const; + private: + glm::mat4 m_View{1.0f}; + glm::mat4 m_Projection{1.0f}; + Vector m_ViewCorner{0.0f, 0.0f}; + Box m_Viewport{}; + bool m_EnableClipping{false}; + Box m_ClipRect{}; + float m_Scale{1.0f}; + Vector m_ViewUp{}; + Activity::Teams m_Team{Activity::NoTeam}; + bool m_ShowHUD{true}; + bool m_ViewUpdated{true}; + }; +} diff --git a/Source/Renderer/Draw.cpp b/Source/Renderer/Draw.cpp index 9cba299fe5..3eba76358b 100644 --- a/Source/Renderer/Draw.cpp +++ b/Source/Renderer/Draw.cpp @@ -1,22 +1,154 @@ #include "Draw.h" -#include "GLResourceMan.h" +#include +#include "allegro.h" +#include "GLStateMan.h" +#include "RenderMan.h" +#include "glm/gtx/transform.hpp" +#include "tracy/Tracy.hpp" -namespace RTE { - void DrawTexture(BITMAP* bitmap, int posX, int posY, RLColor tint) { - DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), posX, posY, tint); - } +using namespace RTE; - void DrawTextureV(BITMAP* bitmap, Vector2 pos, RLColor tint) { - DrawTextureV(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), pos, tint); +namespace { + /// Bakes a 2D transform into vertex positions on the CPU, keeping their depth. Cheaper than a per draw call uniform and lets consecutive draws be merged. + void TransformVertices(std::vector& vertices, const glm::mat4& transform) { + for (Vertex& vertex: vertices) { + glm::vec4 position = transform * glm::vec4(vertex.m_Pos.x, vertex.m_Pos.y, 0.0f, 1.0f); + vertex.m_Pos.x = position.x; + vertex.m_Pos.y = position.y; + } + } +} // namespace +namespace { + /// Appends a textured rectangle to a draw call in place, reusing the draw call's vector capacity. Same layout as Shape::Rectangle. + void AppendRectangle(DrawCall& draw, const FloatRect& rect, const FloatRect& uv, glm::u8vec4 color) { + int base = static_cast(draw.m_Vertices.size()); + draw.m_Vertices.emplace_back(glm::vec2(rect.x, rect.y), glm::vec2(uv.x, uv.y), color); + draw.m_Vertices.emplace_back(glm::vec2(rect.x + rect.w, rect.y + rect.h), glm::vec2(uv.x + uv.w, uv.y + uv.h), color); + draw.m_Vertices.emplace_back(glm::vec2(rect.x + rect.w, rect.y), glm::vec2(uv.x + uv.w, uv.y), color); + draw.m_Vertices.emplace_back(glm::vec2(rect.x, rect.y + rect.h), glm::vec2(uv.x, uv.y + uv.h), color); + draw.m_Indices.insert(draw.m_Indices.end(), {base, base + 1, base + 2, base, base + 3, base + 1}); } +} // namespace + +// Raylib-style wrappers kept for the remaining CPU-side draw paths (editor/placement previews, menus). They draw on the active render batch, +// in whatever space its camera uses. Rotations follow the old vendored raylib convention: radians, with positive values rotating counter-clockwise on screen. +namespace { + RTE::Color ToColor(RLColor tint) { return RTE::Color(tint.r, tint.g, tint.b, tint.a); } +} // namespace + +void RTE::DrawTexture(BITMAP* bitmap, int posX, int posY, RLColor tint) { + DrawTexturePro(bitmap, {0.0f, 0.0f, static_cast(bitmap->w), static_cast(bitmap->h)}, {static_cast(posX), static_cast(posY), static_cast(bitmap->w), static_cast(bitmap->h)}, {0.0f, 0.0f}, 0.0f, tint); +} - void DrawTextureEx(BITMAP* bitmap, Vector2 pos, float rotation, float scale, RLColor tint) { - DrawTextureEx(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), pos, rotation, scale, tint); +void RTE::DrawTextureV(BITMAP* bitmap, Vector2 pos, RLColor tint) { + DrawTexture(bitmap, static_cast(pos.x), static_cast(pos.y), tint); +} + +void RTE::DrawTextureEx(BITMAP* bitmap, Vector2 pos, float rotation, float scale, RLColor tint) { + DrawTexturePro(bitmap, {0.0f, 0.0f, static_cast(bitmap->w), static_cast(bitmap->h)}, {pos.x, pos.y, bitmap->w * scale, bitmap->h * scale}, {0.0f, 0.0f}, rotation, tint); +} + +void RTE::DrawTextureRec(BITMAP* bitmap, Rectangle source, Vector2 pos, RLColor tint) { + DrawTexturePro(bitmap, source, {pos.x, pos.y, std::abs(source.width), std::abs(source.height)}, {0.0f, 0.0f}, 0.0f, tint); +} + +void RTE::DrawTexturePro(BITMAP* bitmap, Rectangle source, Rectangle dest, Vector2 origin, float rotation, RLColor tint) { + ZoneScoped; + if (!bitmap || dest.width == 0.0f || dest.height == 0.0f) { + return; } - void DrawTextureRec(BITMAP* bitmap, Rectangle source, Vector2 pos, RLColor tint) { - DrawTextureRec(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), source, pos, tint); + // Negative source width/height flips the texture, like raylib. + float textureWidth = static_cast(bitmap->w); + float textureHeight = static_cast(bitmap->h); + float uvLeft = source.x / textureWidth; + float uvTop = source.y / textureHeight; + float uvWidth = std::abs(source.width) / textureWidth; + float uvHeight = std::abs(source.height) / textureHeight; + FloatRect uv(uvLeft, uvTop, uvWidth, uvHeight); + if (source.width < 0.0f) { + uv = FloatRect(uvLeft + uvWidth, uvTop, -uvWidth, uvHeight); } - void DrawTexturePro(BITMAP* bitmap, Rectangle source, Rectangle dest, Vector2 origin, float rotation, RLColor tint) { - DrawTexturePro(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), source, dest, origin, rotation, tint); + if (source.height < 0.0f) { + uv = FloatRect(uv.x, uvTop + uvHeight, uv.w, -uvHeight); } -} \ No newline at end of file + + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = g_GLStateMan.GetStaticTextureFromBitmap(bitmap).id; + draw->m_Indexed = bitmap_color_depth(bitmap) == 8; + AppendRectangle(*draw, FloatRect(0.0f, 0.0f, dest.width, dest.height), uv, ToColor(tint)); + // dest.x/y is where the origin point ends up; rotation is around it. + glm::mat4 transform = glm::translate(glm::vec3(dest.x, dest.y, 0.0f)); + transform = glm::rotate(transform, -rotation, glm::vec3(0.0f, 0.0f, 1.0f)); + transform = glm::translate(transform, glm::vec3(-origin.x, -origin.y, 0.0f)); + TransformVertices(draw->m_Vertices, transform); +} +namespace RTE { + namespace Draw { + std::shared_ptr DrawTexture(Texture* texture, float posX, float posY, Color tint) { + ZoneScoped; + return DrawTexture(texture, glm::vec2(posX, posY), tint); + } + + std::shared_ptr DrawTexture(Texture* texture, glm::vec2 pos, Color tint) { + ZoneScoped; + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = texture->GetTextureId(); + draw->m_Indexed = texture->GetBitDepth() == 8; + AppendRectangle(*draw, FloatRect(pos.x, pos.y, texture->GetDimensions().w, texture->GetDimensions().h), texture->GetUVRect(), tint); + return draw; + } + + std::shared_ptr DrawTexture(Texture* texture, FloatRect dest, Color tint) { + ZoneScoped; + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = texture->GetTextureId(); + draw->m_Indexed = texture->GetBitDepth() == 8; + AppendRectangle(*draw, dest, texture->GetUVRect(), tint); + return draw; + } + + std::shared_ptr DrawTexture(Texture* texture, glm::vec2 pos, glm::vec2 origin, float angle, glm::vec2 scale, Color tint) { + ZoneScoped; + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = texture->GetTextureId(); + draw->m_Indexed = texture->GetBitDepth() == 8; + AppendRectangle(*draw, FloatRect(0, 0, texture->GetDimensions().w, texture->GetDimensions().h), texture->GetUVRect(), tint); + glm::mat4 transform = glm::translate(glm::vec3(pos, 0.0f)); + transform = glm::rotate(transform, angle, glm::vec3(0.0f, 0.0f, 1.0f)); + transform = glm::scale(transform, glm::vec3(scale, 1.0f)); + transform = glm::translate(transform, glm::vec3(origin, 0.0f)); + TransformVertices(draw->m_Vertices, transform); + + return draw; + } + + std::shared_ptr DrawBitmap(BITMAP* bitmap, glm::vec2 pos, glm::vec2 origin, float angle, glm::vec2 scale, Color tint) { + ZoneScoped; + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = g_GLStateMan.GetStaticTextureFromBitmap(bitmap).id; + draw->m_Indexed = bitmap_color_depth(bitmap) == 8; + AppendRectangle(*draw, FloatRect(0, 0, bitmap->w, bitmap->h), FloatRect(0.0f, 0.0f, 1.0f, 1.0f), tint); + glm::mat4 transform = glm::translate(glm::vec3(pos, 0.0f)); + transform = glm::rotate(transform, angle, glm::vec3(0.0f, 0.0f, 1.0f)); + transform = glm::scale(transform, glm::vec3(scale, 1.0f)); + transform = glm::translate(transform, glm::vec3(origin, 0.0f)); + TransformVertices(draw->m_Vertices, transform); + return draw; + } + + std::shared_ptr DrawTexture(Texture* texture, const FloatRect& source, const FloatRect& dest, const Color& tint) { + ZoneScoped; + std::shared_ptr draw = g_RenderMan.BeginDraw(); + draw->m_TextureId = texture->GetTextureId(); + draw->m_Indexed = texture->GetBitDepth() == 8; + FloatRect uv = texture->MapUV(FloatRect( + source.x / texture->GetDimensions().w, + source.y / texture->GetDimensions().h, + source.w / texture->GetDimensions().w, + source.h / texture->GetDimensions().h)); + AppendRectangle(*draw, dest, uv, tint); + return draw; + } + + } // namespace Draw +} // namespace RTE diff --git a/Source/Renderer/Draw.h b/Source/Renderer/Draw.h index f968e46ec5..ff1b320110 100644 --- a/Source/Renderer/Draw.h +++ b/Source/Renderer/Draw.h @@ -1,6 +1,13 @@ #pragma once #include "raylib/raylib.h" #include "raylib/rlgl.h" +#include "Camera.h" +#include "Vertex.h" +#include "Shapes.h" +#include "Texture.h" +#include "RenderTarget.h" +#include "Rectangles.h" +#include "RenderMan.h" struct BITMAP; namespace RTE { @@ -25,6 +32,7 @@ namespace RTE { /// @param scale Scale. /// @param tint Tint color void DrawTextureEx(BITMAP* bitmap, Vector2 pos, float rotation, float scale, RLColor tint); + /// @brief Draw part of a bitmap to pos. /// @param bitmap The Bitmap /// @param source The Source rectangle inside bitmap. @@ -40,4 +48,19 @@ namespace RTE { /// @param rotation Rotation angle in radians. /// @param tint tint color. void DrawTexturePro(BITMAP* bitmap, Rectangle source, Rectangle dest, Vector2 origin, float rotation, RLColor tint); -} \ No newline at end of file + + namespace Draw { + std::shared_ptr DrawTexture(Texture* texture, float posX, float posY, Color tint = {255, 255, 255, 255}); + std::shared_ptr DrawTexture(Texture* texture, glm::vec2 pos, Color tint = {255, 255, 255, 255}); + std::shared_ptr DrawTexture(Texture* texture, FloatRect dest, Color tint = {255, 255, 255, 255}); + std::shared_ptr DrawTexture(Texture* texture, glm::vec2 pos, glm::vec2 origin, float angle, glm::vec2 scale, Color tint = {255, 255, 255, 255}); + std::shared_ptr DrawTexture(Texture* texture, FloatRect source, glm::vec2 pos, Color tint); + std::shared_ptr DrawTexture(Texture* texture, const FloatRect& source, const FloatRect& dest, const Color& tint = {255, 255, 255, 255}); + std::shared_ptr DrawTexture(Texture* bitmap, FloatRect source, FloatRect dest, glm::vec2 origin, float rotation, Color tint); + + /// Draws a (non owned) Allegro BITMAP, using its cached static GL texture. 8 bit bitmaps are drawn palette indexed. + /// @param origin Offset from pos to the bitmap's top left corner, before rotation and scale. + /// @param angle Rotation in radians. + std::shared_ptr DrawBitmap(BITMAP* bitmap, glm::vec2 pos, glm::vec2 origin, float angle, glm::vec2 scale, Color tint = {255, 255, 255, 255}); + } +} diff --git a/Source/Renderer/DrawCall.h b/Source/Renderer/DrawCall.h new file mode 100644 index 0000000000..a4d1b30cf3 --- /dev/null +++ b/Source/Renderer/DrawCall.h @@ -0,0 +1,47 @@ +#pragma once +#include "BlendMode.h" +#include "Shader.h" +#include "Vertex.h" +#include "Camera.h" + +#include "glad/gl.h" +#include +#include + +namespace RTE { + class DrawCall { + public: + friend class RenderMan; + std::vector m_Vertices; + std::vector m_Indices; + bool m_Indexed{true}; + GLuint m_TextureId{0}; + BlendMode m_BlendMode{}; + const Shader* m_Shader{nullptr}; + std::vector> m_UniformValues; + std::optional m_Scissor{std::nullopt}; + GLenum m_DrawMode{GL_TRIANGLES}; + + private: + DrawCall(int id) : + m_Id(id) {} + + /// Resets this for reuse from the pool, keeping the vectors' capacity. + void Reset(int id) { + m_Vertices.clear(); + m_Indices.clear(); + m_Indexed = true; + m_TextureId = 0; + m_BlendMode = BlendMode(); + m_Shader = nullptr; + m_UniformValues.clear(); + m_Scissor.reset(); + m_DrawMode = GL_TRIANGLES; + m_Id = id; + } + DrawCall(DrawCall&& drawCall) = default; + int m_Id{0}; + DrawCall(DrawCall&) = delete; + DrawCall operator=(DrawCall&) = delete; + }; +} // namespace RTE diff --git a/Source/Renderer/EffectsParticles.cpp b/Source/Renderer/EffectsParticles.cpp new file mode 100644 index 0000000000..84e325b1dd --- /dev/null +++ b/Source/Renderer/EffectsParticles.cpp @@ -0,0 +1,467 @@ +#include "EffectsParticles.h" +#include "Camera.h" +#include "Constants.h" +#include "PostProcessMan.h" +#include "SceneMan.h" +#include "Shapes.h" +#include "TimerMan.h" +#include "Vector.h" +#include "Material.h" +#include "Color.h" +#include "Draw.h" +#include "Texture.h" +#include "glad/gl.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +using namespace RTE; + +namespace { + enum class Kind : unsigned char { + Spark, + Debris, + Dust, + Ember + }; + + struct Particle { + glm::vec2 Position; //!< Scene pixels. + glm::vec2 Velocity; //!< Pixels per second. + float Age; + float Life; + float Size; + glm::u8vec3 Color; + Kind Type; + }; + + struct SpawnRequest { + bool Ember = false; + glm::vec2 Position; + glm::vec2 Velocity; //!< Pixels per second, for impacts. + float Energy; //!< Explosion energy, or 0 for an impact. + unsigned int MaterialColor; //!< 0xRRGGBB. + float Hardness; + }; + + constexpr size_t c_MaxParticles = 8000; + constexpr int c_ImpactsPerFrame = 40; //!< Impacts beyond this per frame are skipped; explosions alone make thousands. + + std::vector s_Particles; + std::vector s_Queue; + std::mutex s_QueueMutex; + std::atomic s_ImpactBudget{c_ImpactsPerFrame}; + long long s_LastSimUpdate = -1; + struct SmokeEntry { + glm::vec2 Position; + float Radius; + float Density; + }; + std::vector s_Smoke; + std::unordered_set s_SmokeSeen; + std::mutex s_SmokeMutex; + std::vector s_Stains; + std::mutex s_StainMutex; + constexpr size_t c_MaxStainsPerFrame = 400; + unsigned int s_Random = 0x9E3779B9u; //!< Render-only random state, never the simulation's. + + float Random01() { + s_Random ^= s_Random << 13; + s_Random ^= s_Random >> 17; + s_Random ^= s_Random << 5; + return static_cast(s_Random & 0xFFFFFF) / static_cast(0x1000000); + } + + float RandomRange(float low, float high) { return low + (high - low) * Random01(); } + + glm::vec2 RandomDirection() { + float angle = Random01() * c_TwoPI; + return glm::vec2(std::cos(angle), std::sin(angle)); + } + + glm::u8vec3 UnpackRGB(unsigned int rgb) { + return glm::u8vec3((rgb >> 16) & 0xFF, (rgb >> 8) & 0xFF, rgb & 0xFF); + } + + bool IsSolid(float x, float y) { + int pixelX = static_cast(std::floor(x)); + int pixelY = static_cast(std::floor(y)); + if (g_SceneMan.SceneWrapsX()) { + int width = g_SceneMan.GetSceneWidth(); + pixelX = ((pixelX % width) + width) % width; + } + if (pixelX < 0 || pixelY < 0 || pixelX >= g_SceneMan.GetSceneWidth() || pixelY >= g_SceneMan.GetSceneHeight()) { + return false; + } + return g_SceneMan.GetTerrMatter(pixelX, pixelY) != g_MaterialAir; + } + + void Add(const Particle& particle) { + if (s_Particles.size() < c_MaxParticles) { + s_Particles.push_back(particle); + } + } + + void SpawnFromRequest(const SpawnRequest& request, float amount) { + if (request.Ember) { + Add({request.Position, glm::vec2(RandomRange(-8.0F, 8.0F), RandomRange(-40.0F, -20.0F)), 0.0F, RandomRange(0.8F, 2.0F), 1.0F, glm::u8vec3(255, 160, 60), Kind::Ember}); + return; + } + if (request.Energy > 0.0F) { + // Explosion: a burst of sparks, a ring of dust, and chips of whatever it went off against. + float scale = std::clamp(request.Energy / 6000.0F, 0.3F, 3.0F) * amount; + int sparkCount = static_cast(40.0F * scale); + for (int i = 0; i < sparkCount; ++i) { + glm::vec2 direction = RandomDirection(); + direction.y -= 0.35F; + Add({request.Position, glm::normalize(direction) * RandomRange(120.0F, 520.0F) * std::sqrt(scale), 0.0F, RandomRange(0.25F, 0.9F), 1.0F, glm::u8vec3(255, 220, 140), Kind::Spark}); + } + int dustCount = static_cast(10.0F * scale); + glm::u8vec3 dustColor(110, 100, 92); + int groundMaterial = g_SceneMan.GetTerrMatter(static_cast(request.Position.x), static_cast(request.Position.y + 6.0F)); + if (groundMaterial != g_MaterialAir) { + glm::u8vec3 materialRGB = UnpackRGB(EffectsParticles::ColorToRGB(g_SceneMan.GetMaterialFromID(static_cast(groundMaterial))->GetColor())); + dustColor = glm::u8vec3(glm::mix(glm::vec3(materialRGB), glm::vec3(dustColor), 0.5F)); + int chipCount = static_cast(24.0F * scale); + for (int i = 0; i < chipCount; ++i) { + glm::vec2 direction = RandomDirection(); + direction.y = -std::abs(direction.y) - 0.3F; + Add({request.Position, glm::normalize(direction) * RandomRange(60.0F, 300.0F), 0.0F, RandomRange(1.5F, 3.5F), 1.0F, materialRGB, Kind::Debris}); + } + } + for (int i = 0; i < dustCount; ++i) { + glm::vec2 offset = RandomDirection() * RandomRange(2.0F, 12.0F) * std::sqrt(scale); + Add({request.Position + offset, glm::normalize(offset + glm::vec2(0.0F, -2.0F)) * RandomRange(15.0F, 60.0F), 0.0F, RandomRange(1.5F, 3.5F), RandomRange(3.0F, 6.0F), dustColor, Kind::Dust}); + } + return; + } + // Impact: sparks off hard materials, a puff of dust and a few chips off soft ones, thrown back the way the hit came from. + float speed = glm::length(request.Velocity); + if (speed < 1.0F) { + return; + } + glm::vec2 back = -request.Velocity / speed; + glm::u8vec3 materialRGB = UnpackRGB(request.MaterialColor); + if (request.Hardness > 0.5F) { + int sparkCount = static_cast(RandomRange(2.0F, 5.0F) * amount); + for (int i = 0; i < sparkCount; ++i) { + glm::vec2 direction = glm::normalize(back + RandomDirection() * 0.9F); + Add({request.Position, direction * RandomRange(80.0F, 260.0F), 0.0F, RandomRange(0.15F, 0.45F), 1.0F, glm::u8vec3(255, 230, 170), Kind::Spark}); + } + } else { + Add({request.Position + back * 2.0F, back * RandomRange(10.0F, 30.0F) + glm::vec2(0.0F, -8.0F), 0.0F, RandomRange(0.8F, 1.6F), RandomRange(2.0F, 3.5F), materialRGB, Kind::Dust}); + } + int chipCount = static_cast(RandomRange(1.0F, 4.0F) * amount); + for (int i = 0; i < chipCount; ++i) { + glm::vec2 direction = glm::normalize(back + RandomDirection() * 0.7F + glm::vec2(0.0F, -0.4F)); + Add({request.Position + back * 1.5F, direction * RandomRange(40.0F, 140.0F), 0.0F, RandomRange(0.8F, 2.0F), 1.0F, materialRGB, Kind::Debris}); + } + } + + std::unique_ptr s_PuffTexture; //!< Soft, lumpy round puff for dust, white with alpha. + + GLuint GetPuffTexture_() { + if (!s_PuffTexture) { + constexpr int size = 32; + std::vector pixels(size * size * 4); + for (int y = 0; y < size; ++y) { + for (int x = 0; x < size; ++x) { + float dx = (static_cast(x) + 0.5F) / size * 2.0F - 1.0F; + float dy = (static_cast(y) + 0.5F) / size * 2.0F - 1.0F; + float distance = std::sqrt(dx * dx + dy * dy); + // A few overlapping lobes make it read as a billow rather than a disc. + float lumps = 0.85F + 0.15F * std::sin(std::atan2(dy, dx) * 5.0F) * std::sin(distance * 7.0F); + float alpha = std::clamp(1.0F - distance / lumps, 0.0F, 1.0F); + alpha = alpha * alpha * (3.0F - 2.0F * alpha); + unsigned char* pixel = &pixels[(y * size + x) * 4]; + pixel[0] = pixel[1] = pixel[2] = 255; + pixel[3] = static_cast(alpha * 255.0F); + } + } + GLuint texture = 0; + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, size, size, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels.data()); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glBindTexture(GL_TEXTURE_2D, 0); + s_PuffTexture = std::make_unique(texture); + } + return s_PuffTexture->GetTextureId(); + } + + glm::vec3 SparkColor(const Particle& particle) { + // White-yellow when fresh, cooling through orange to dull red. + float heat = 1.0F - particle.Age / particle.Life; + glm::vec3 hot(1.0F, 0.9F, 0.6F); + glm::vec3 warm(1.0F, 0.45F, 0.1F); + glm::vec3 cool(0.5F, 0.08F, 0.02F); + glm::vec3 color = heat > 0.5F ? glm::mix(warm, hot, (heat - 0.5F) * 2.0F) : glm::mix(cool, warm, heat * 2.0F); + return color * (0.4F + 1.2F * heat); + } +} // namespace + +void EffectsParticles::SpawnExplosion(const Vector& position, float energy) { + if (energy < 500.0F) { + return; + } + std::scoped_lock lock(s_QueueMutex); + s_Queue.push_back({false, glm::vec2(position.m_X, position.m_Y), glm::vec2(0.0F), energy, 0, 0.0F}); +} + +unsigned int EffectsParticles::ColorToRGB(const Color& color) { + if (color.GetR() != 0 || color.GetG() != 0 || color.GetB() != 0) { + return (static_cast(color.GetR()) << 16) | (static_cast(color.GetG()) << 8) | static_cast(color.GetB()); + } + if (color.GetIndex() == 0) { + return 0; + } + Color fromPalette(color.GetIndex()); + return (static_cast(fromPalette.GetR()) << 16) | (static_cast(fromPalette.GetG()) << 8) | static_cast(fromPalette.GetB()); +} + +void EffectsParticles::SpawnEmber(const Vector& position) { + std::scoped_lock lock(s_QueueMutex); + SpawnRequest request{}; + request.Ember = true; + request.Position = glm::vec2(position.m_X, position.m_Y); + s_Queue.push_back(request); +} + +void EffectsParticles::SpawnImpact(const Vector& position, const Vector& velocity, unsigned int materialColor, float hardness) { + // Only fast hits make visible chips and sparks. + if (velocity.GetSqrMagnitude() < 15.0F * 15.0F || s_ImpactBudget.load(std::memory_order_relaxed) <= 0) { + return; + } + if (s_ImpactBudget.fetch_sub(1, std::memory_order_relaxed) <= 0) { + return; + } + std::scoped_lock lock(s_QueueMutex); + s_Queue.push_back({false, glm::vec2(position.m_X, position.m_Y), glm::vec2(velocity.m_X, velocity.m_Y) * c_PPM, 0.0F, materialColor, hardness}); +} + +void EffectsParticles::Update(float amount) { + long long simUpdate = g_TimerMan.GetSimUpdateCount(); + float seconds = s_LastSimUpdate >= 0 ? std::min(static_cast(simUpdate - s_LastSimUpdate) * g_TimerMan.GetDeltaTimeSecs(), 0.1F) : 0.0F; + s_LastSimUpdate = simUpdate; + s_ImpactBudget.store(c_ImpactsPerFrame, std::memory_order_relaxed); + + std::vector requests; + { + std::scoped_lock lock(s_QueueMutex); + requests.swap(s_Queue); + } + if (amount <= 0.0F || !g_SceneMan.GetScene()) { + s_Particles.clear(); + return; + } + for (const SpawnRequest& request: requests) { + SpawnFromRequest(request, amount); + } + if (seconds <= 0.0F) { + return; + } + + float wind = g_PostProcessMan.GetLightingSettings().Wind; + constexpr float gravity = 9.8F * c_PPM; + for (Particle& particle: s_Particles) { + particle.Age += seconds; + if (particle.Type == Kind::Ember) { + // Embers float up on the heat, wobble, and drift with the wind. + particle.Velocity += (glm::vec2(wind * 0.5F + std::sin(particle.Age * 7.0F + particle.Life * 13.0F) * 15.0F, -30.0F) - particle.Velocity) * std::min(1.0F, seconds * 1.5F); + particle.Position += particle.Velocity * seconds; + continue; + } + if (particle.Type == Kind::Dust) { + // Dust billows out, slows quickly, rises a little and drifts with the wind. + particle.Velocity += (glm::vec2(wind * 0.4F, -6.0F) - particle.Velocity) * std::min(1.0F, seconds * 2.5F); + particle.Size += seconds * 3.0F; + particle.Position += particle.Velocity * seconds; + continue; + } + particle.Velocity.y += gravity * seconds * (particle.Type == Kind::Spark ? 0.6F : 1.0F); + particle.Velocity *= 1.0F - std::min(1.0F, seconds * (particle.Type == Kind::Spark ? 0.8F : 0.3F)); + glm::vec2 next = particle.Position + particle.Velocity * seconds; + if (IsSolid(next.x, next.y)) { + // Bounce off whichever axis hit, losing most of the speed. Chips come to rest on the ground. + bool hitX = IsSolid(next.x, particle.Position.y); + bool hitY = IsSolid(particle.Position.x, next.y); + float restitution = particle.Type == Kind::Spark ? 0.45F : 0.25F; + if (hitX || !hitY) { + particle.Velocity.x *= -restitution; + } + if (hitY || !hitX) { + particle.Velocity.y *= -restitution; + particle.Velocity.x *= 0.6F; + } + if (glm::length(particle.Velocity) < 8.0F) { + particle.Velocity = glm::vec2(0.0F); + } + next = particle.Position + particle.Velocity * seconds; + if (IsSolid(next.x, next.y)) { + next = particle.Position; + } + } + particle.Position = next; + } + int sceneHeight = g_SceneMan.GetSceneHeight(); + s_Particles.erase(std::remove_if(s_Particles.begin(), s_Particles.end(), [sceneHeight](const Particle& particle) { return particle.Age >= particle.Life || particle.Position.y > static_cast(sceneHeight) + 50.0F; }), s_Particles.end()); +} + +void EffectsParticles::Draw(const Camera& camera) { + for (const Particle& particle: s_Particles) { + if (particle.Type != Kind::Debris) { + continue; + } + float remaining = 1.0F - particle.Age / particle.Life; + { + // Chips stay solid until the end of their life, then fade. + int alpha = static_cast(255.0F * std::clamp(remaining * 4.0F, 0.0F, 1.0F)); + RTE::Draw::Rectangle(FloatRect(std::floor(particle.Position.x), std::floor(particle.Position.y), 1.0F, 1.0F), Color(particle.Color.r, particle.Color.g, particle.Color.b, alpha)); + } + } +} + +void EffectsParticles::GetSparks(const glm::vec2& screenOrigin, int width, int height, std::vector& sparks) { + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + bool wraps = g_SceneMan.SceneWrapsX(); + for (const Particle& particle: s_Particles) { + if (particle.Type != Kind::Spark && particle.Type != Kind::Ember) { + continue; + } + glm::vec2 position = particle.Position - screenOrigin; + if (wraps) { + if (position.x < -sceneWidth * 0.5F) { + position.x += sceneWidth; + } else if (position.x > sceneWidth * 0.5F) { + position.x -= sceneWidth; + } + } + if (position.x < -8.0F || position.y < -8.0F || position.x > static_cast(width) + 8.0F || position.y > static_cast(height) + 8.0F) { + continue; + } + float speed = glm::length(particle.Velocity); + glm::vec2 direction = speed > 0.01F ? particle.Velocity / speed : glm::vec2(1.0F, 0.0F); + // Motion blurred streak: longer when fast. + if (particle.Type == Kind::Ember) { + float life = 1.0F - particle.Age / particle.Life; + sparks.push_back({position, glm::vec2(1.0F, 0.0F), 1.0F, glm::vec3(1.0F, 0.45F, 0.12F) * (0.3F + 0.7F * life)}); + continue; + } + sparks.push_back({position, direction, std::clamp(speed / 60.0F, 1.0F, 6.0F), SparkColor(particle)}); + } +} + +void EffectsParticles::GetPuffs(const glm::vec2& screenOrigin, int width, int height, std::vector& puffs) { + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + bool wraps = g_SceneMan.SceneWrapsX(); + for (const Particle& particle: s_Particles) { + if (particle.Type != Kind::Dust) { + continue; + } + glm::vec2 position = particle.Position - screenOrigin; + if (wraps) { + if (position.x < -sceneWidth * 0.5F) { + position.x += sceneWidth; + } else if (position.x > sceneWidth * 0.5F) { + position.x -= sceneWidth; + } + } + float size = particle.Size * 2.0F; + if (position.x < -size || position.y < -size || position.x > static_cast(width) + size || position.y > static_cast(height) + size) { + continue; + } + float remaining = 1.0F - particle.Age / particle.Life; + float fadeIn = std::clamp(particle.Age * 6.0F, 0.0F, 1.0F); + puffs.push_back({position, size, glm::vec4(glm::vec3(particle.Color) / 255.0F, 0.4F * remaining * fadeIn)}); + } +} + +unsigned int EffectsParticles::GetPuffTexture() { + return GetPuffTexture_(); +} + +void EffectsParticles::RegisterSmoke(const void* object, const glm::vec2& position, float radius, float density) { + std::scoped_lock lock(s_SmokeMutex); + if (s_SmokeSeen.insert(object).second) { + s_Smoke.push_back({position, radius, density}); + } +} + +void EffectsParticles::BeginFrame() { + std::scoped_lock lock(s_SmokeMutex); + s_Smoke.clear(); + s_SmokeSeen.clear(); +} + +void EffectsParticles::GetSmoke(const glm::vec2& screenOrigin, int width, int height, std::vector& smoke) { + float sceneWidth = static_cast(g_SceneMan.GetSceneWidth()); + bool wraps = g_SceneMan.SceneWrapsX(); + std::scoped_lock lock(s_SmokeMutex); + for (const SmokeEntry& entry: s_Smoke) { + glm::vec2 position = entry.Position - screenOrigin; + if (wraps) { + if (position.x < -sceneWidth * 0.5F) { + position.x += sceneWidth; + } else if (position.x > sceneWidth * 0.5F) { + position.x -= sceneWidth; + } + } + float size = entry.Radius * 2.6F; + if (position.x < -size || position.y < -size || position.x > static_cast(width) + size || position.y > static_cast(height) + size) { + continue; + } + smoke.push_back({position, size, glm::vec4(1.0F, 1.0F, 1.0F, entry.Density)}); + } +} + +bool EffectsParticles::IsStainingMaterial(const Material* material) { + static std::unordered_map cache; + static std::mutex cacheMutex; + std::scoped_lock lock(cacheMutex); + auto found = cache.find(material); + if (found != cache.end()) { + return found->second; + } + const std::string& name = material->GetPresetName(); + bool staining = name.find("Blood") != std::string::npos || name.find("Oil") != std::string::npos; + cache.emplace(material, staining); + return staining; +} + +void EffectsParticles::SpawnStain(const Vector& position, int red, int green, int blue, float speed) { + std::scoped_lock lock(s_StainMutex); + if (s_Stains.size() >= c_MaxStainsPerFrame) { + return; + } + // Faster drops splash wider. + float radius = std::clamp(1.0F + speed * 0.12F, 1.0F, 3.5F); + s_Stains.push_back({glm::vec2(position.m_X, position.m_Y), glm::vec3(red, green, blue) / 255.0F, radius}); +} + +std::vector EffectsParticles::TakeStains() { + std::scoped_lock lock(s_StainMutex); + std::vector stains; + stains.swap(s_Stains); + return stains; +} + +void EffectsParticles::Clear() { + s_Particles.clear(); + std::scoped_lock lock(s_QueueMutex); + s_Queue.clear(); +} + +int EffectsParticles::GetCount() { + return static_cast(s_Particles.size()); +} diff --git a/Source/Renderer/EffectsParticles.h b/Source/Renderer/EffectsParticles.h new file mode 100644 index 0000000000..d13b0bd560 --- /dev/null +++ b/Source/Renderer/EffectsParticles.h @@ -0,0 +1,107 @@ +#pragma once + +#include "glm/glm.hpp" +#include + +namespace RTE { + class Camera; + class Vector; + class Color; + class Material; + + /// Purely visual particles: sparks, dust and debris chips from explosions and impacts. They never affect the simulation: + /// they're spawned from simulation events through a thread safe queue, move in simulation time with their own random numbers, + /// and only ever read the terrain to bounce off it. Thousands cost next to nothing. + class EffectsParticles { + + public: + /// A spark to draw as emitted light, in screen space. + struct Spark { + glm::vec2 Position; //!< Screen pixels. + glm::vec2 Direction; //!< Unit vector along the streak. + float Length; //!< Streak length in pixels. + glm::vec3 Color; //!< Linear-ish brightness, fed to the emissive buffer. + }; + + /// A translucent puff (dust) to draw lit over the scene, in screen space. + struct Puff { + glm::vec2 Position; //!< Screen pixels, centre. + float Size; //!< Diameter in pixels. + glm::vec4 Color; //!< RGB albedo 0..1 in gamma space, A opacity. + }; + + /// Gets a color as 0xRRGGBB: its RGB if set, otherwise its palette index looked up in the palette. 0 if it has neither (index 0 is the mask color). + static unsigned int ColorToRGB(const Color& color); + + /// Queues an explosion's effects. Thread safe; call from the simulation. + /// @param position Where, in scene coordinates. + /// @param energy The gib energy, scaling the amount of effects. + static void SpawnExplosion(const Vector& position, float energy); + + /// Queues effects for something hitting terrain. Thread safe and cheap to call often; most calls are skipped by a per frame budget. + /// @param position Where, in scene coordinates. + /// @param velocity Velocity of the hitting particle. + /// @param materialRGB The hit material's color, 0xRRGGBB, for debris and dust. + /// @param hardness 0 for soft materials like dirt (dust), 1 for hard ones like metal and rock (sparks). + static void SpawnImpact(const Vector& position, const Vector& velocity, unsigned int materialRGB, float hardness); + + /// Queues a glowing ember that rises from a fire. Render only. + static void SpawnEmber(const Vector& position); + + /// Moves all particles on by however much simulation time passed since the last call, and adds queued spawns. Call once per frame. + /// @param amount Multiplier for how many particles spawn; 0 turns the system off. + static void Update(float amount); + + /// Draws the opaque debris chips into the scene (so they're lit like everything else). Call while drawing a camera's view. + /// Translucent dust is drawn later over the lit scene, see GetPuffs. + static void Draw(const Camera& camera); + + /// Gets the sparks visible in a screen area, positioned relative to it. + /// @param screenOrigin Scene position of the screen's top left pixel. + /// @param width Screen size in pixels. + /// @param height Screen size in pixels. + /// @param sparks Filled with the visible sparks. + static void GetSparks(const glm::vec2& screenOrigin, int width, int height, std::vector& sparks); + + /// Gets the dust puffs visible in a screen area, positioned relative to it. + static void GetPuffs(const glm::vec2& screenOrigin, int width, int height, std::vector& puffs); + + /// Gets the GL texture puffs are drawn with (soft round, white with alpha). + static unsigned int GetPuffTexture(); + + /// Records a smoke particle drawn this frame, for light scattering in smoke. Duplicate calls for the same object (several cameras) are ignored. + /// @param object Identifies the smoke particle. + /// @param position Scene position of its centre. + /// @param radius Its radius in pixels. + /// @param density How thick it is, 0 to 1. + static void RegisterSmoke(const void* object, const glm::vec2& position, float radius, float density); + + /// Forgets the smoke recorded last frame. Call at the start of each frame's drawing. + static void BeginFrame(); + + /// Gets the smoke visible in a screen area, as puffs (A = density). + static void GetSmoke(const glm::vec2& screenOrigin, int width, int height, std::vector& smoke); + + /// A splat of liquid to stamp into the terrain stain map. + struct Stain { + glm::vec2 Position; //!< Scene pixels. + glm::vec3 Color; //!< 0..1, gamma space. + float Radius; //!< Pixels. + }; + + /// Gets whether drops of a material stain terrain: blood (any color) and oil. Cached per material. + static bool IsStainingMaterial(const Material* material); + + /// Queues a stain where blood or oil hit terrain. Thread safe and cheap; a per frame budget skips the excess. + static void SpawnStain(const Vector& position, int red, int green, int blue, float speed); + + /// Takes the stains queued since the last call. + static std::vector TakeStains(); + + /// Removes all particles, e.g. when the scene changes. + static void Clear(); + + /// Gets how many particles are alive, for statistics. + static int GetCount(); + }; +} // namespace RTE diff --git a/Source/Renderer/GLState.cpp b/Source/Renderer/GLState.cpp new file mode 100644 index 0000000000..ad117a9c71 --- /dev/null +++ b/Source/Renderer/GLState.cpp @@ -0,0 +1,35 @@ +#include "GLState.h" +#include "glad/gl.h" +#include "GLStateMan.h" + +using namespace RTE; + +GLState::GLState() { + m_SupportedExtensions = { + true, + GLAD_GL_ARB_instanced_arrays, + GLAD_GL_ARB_texture_non_power_of_two, + GLAD_GL_ARB_depth_texture, + false, + false, + GLAD_GL_ARB_compute_shader, + GLAD_GL_ARB_shader_storage_buffer_object, + GLAD_GL_KHR_blend_equation_advanced, + GLAD_GL_KHR_blend_equation_advanced_coherent, + GLAD_GL_ARB_debug_output}; + m_CurrentBlendMode = BlendMode(Blend::ALPHA); + m_CurrentShader = nullptr; +} + +void GLState::BeginFrame() { + m_CurrentShader = nullptr; + m_CurrentBlendMode = Blend::ALPHA; +} + +void GLState::SetBlendMode(BlendMode mode) { + m_CurrentBlendMode = mode; +} + +void GLState::SetShader(Shader* shader) { + m_CurrentShader = shader; +} diff --git a/Source/Renderer/GLState.h b/Source/Renderer/GLState.h new file mode 100644 index 0000000000..80098c3e5c --- /dev/null +++ b/Source/Renderer/GLState.h @@ -0,0 +1,36 @@ +#pragma once +#include "Shader.h" +#include "glad/gl.h" +#include "BlendMode.h" +#include "glm/fwd.hpp" +#include + +namespace RTE { + class Shader; + struct GLState { + struct SupportedExtensions { + int vao{true}; // GL_ARB_vertex_array_object (GLES2.0 support) + int instancing{false}; // GL_ARB_draw_instanced + int texNPOT{false}; // GL_ARB_texture_non_power_of_two + int texDepth{false}; // GL_ARB_depth_texture + int texDepthWebGL{false}; // GL_WEBGL_depth_texture + int programmablePipeline{false}; // GL_ARB_separate_shader_objects + int computeShader{false}; // GL_ARB_compute_shader + int ssbo{false}; + int advanced_blend_equations{false}; + int advanced_blend_equations_coherent{false}; + int debug_output{false}; + } m_SupportedExtensions; + BlendMode m_CurrentBlendMode; + Shader* m_CurrentShader; + std::vector m_CurrentUniforms; + + GLState(); + + /// Reset to a consistent state at frame start + void BeginFrame(); + + void SetBlendMode(BlendMode mode); + void SetShader(Shader* shader); + }; +} diff --git a/Source/Renderer/GraphicalPrimitive.cpp b/Source/Renderer/GraphicalPrimitive.cpp index 9b9797c78d..7f323063d8 100644 --- a/Source/Renderer/GraphicalPrimitive.cpp +++ b/Source/Renderer/GraphicalPrimitive.cpp @@ -2,13 +2,14 @@ #include "Matrix.h" #include "FrameMan.h" #include "SceneMan.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "SLTerrain.h" #include "GUI.h" #include "AllegroBitmap.h" #include "Draw.h" +#include "Shapes.h" #include #include @@ -34,185 +35,201 @@ const GraphicalPrimitive::PrimitiveType PolygonFillPrimitive::c_PrimitiveType = const GraphicalPrimitive::PrimitiveType TextPrimitive::c_PrimitiveType = PrimitiveType::Text; const GraphicalPrimitive::PrimitiveType BitmapPrimitive::c_PrimitiveType = PrimitiveType::Bitmap; -Vector GraphicalPrimitive::WrapCoordinates(Vector targetPos, const Vector& scenePos) const { - return targetPos + scenePos; -} +namespace { + glm::vec2 ToVec2(const Vector& vector) { return glm::vec2(vector.m_X, vector.m_Y); } + glm::vec2 ToFloorVec2(const Vector& vector) { return glm::vec2(vector.GetFloorIntX(), vector.GetFloorIntY()); } -void GraphicalPrimitive::DrawTiled(BITMAP* drawScreen, const Vector& targetPos) { - Vector tiledTarget{targetPos}; - if (g_SceneMan.SceneWrapsX()) { - tiledTarget.m_X = std::fmod(targetPos.m_X, g_SceneMan.GetSceneWidth()); - } - if (g_SceneMan.SceneWrapsY()) { - tiledTarget.m_Y = std::fmod(targetPos.m_Y, g_SceneMan.GetSceneHeight()); + template + void TriangleCullCircle(const TrianglePrimitiveType& triangle, Vector& center, float& radius) { + center = (triangle.m_PointAPos + triangle.m_PointBPos + triangle.m_PointCPos) / 3.0f; + radius = std::sqrt(std::max({(triangle.m_PointAPos - center).GetSqrMagnitude(), (triangle.m_PointBPos - center).GetSqrMagnitude(), (triangle.m_PointCPos - center).GetSqrMagnitude()})); } - float bitmapWidth = g_SceneMan.GetSceneWidth(); - float bitmapHeight = g_SceneMan.GetSceneHeight(); - float areaToCoverX = drawScreen->w + g_SceneMan.GetTerrain()->GetOffset().m_X; - float areaToCoverY = drawScreen->h + g_SceneMan.GetTerrain()->GetOffset().m_Y; - - for (int tiledOffsetX = 0; tiledOffsetX < areaToCoverX;) { - float destX = tiledOffsetX - tiledTarget.m_X; - - for (int tiledOffsetY = 0; tiledOffsetY < areaToCoverY;) { - float destY = tiledOffsetY - tiledTarget.m_Y; - Draw(drawScreen, Vector(destX, destY)); - if (!g_SceneMan.SceneWrapsY()) { - break; - } - tiledOffsetY += bitmapHeight; - } - if (!g_SceneMan.SceneWrapsX()) { - break; + float PolygonCullRadius(const std::vector& vertices) { + float radius = 0.0f; + for (const Vector* vertex: vertices) { + radius = std::max(radius, vertex->GetMagnitude()); } - tiledOffsetX += bitmapWidth; + return radius; + } +} // namespace + +Color GraphicalPrimitive::GetDrawColor() const { + Color paletteColor(static_cast(m_Color)); + float red = static_cast(paletteColor.GetR()); + float green = static_cast(paletteColor.GetG()); + float blue = static_cast(paletteColor.GetB()); + float alpha = 255.0f; + + // Text and bitmaps carry their own colors, so only tint them for blending. + if (GetPrimitiveType() == PrimitiveType::Text || GetPrimitiveType() == PrimitiveType::Bitmap) { + red = green = blue = 255.0f; } - // Draw(drawScreen, targetPos); -} -void LinePrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - DrawLineEx(drawStart, drawEnd, m_Thickness, {m_Color, 0, 0, 255}); -} + auto amount = [this](int channel) { return std::clamp(static_cast(m_ColorChannelBlendAmounts[channel]), static_cast(BlendAmountLimits::MinBlend), static_cast(BlendAmountLimits::MaxBlend)) / static_cast(BlendAmountLimits::MaxBlend); }; -void ArcPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - if (m_Thickness > 1) { - DrawRing(drawStart, m_Radius - (m_Thickness / 2.0f), m_Radius + (m_Thickness / 2.0f), m_StartAngle, m_EndAngle, std::abs(m_EndAngle - m_StartAngle), {m_Color, 0, 0, 255}); - } else { - DrawRing(drawStart, m_Radius - 0.5f, m_Radius + 0.5f, m_StartAngle, m_EndAngle, std::abs(m_EndAngle - m_StartAngle), {m_Color, 0, 0, 255}); + switch (m_BlendMode) { + case DrawBlendMode::NoBlend: + break; + case DrawBlendMode::BlendTransparency: + // Amounts are how transparent each channel is, 0 being opaque. + alpha = 255.0f * (1.0f - (amount(0) + amount(1) + amount(2)) / 3.0f); + break; + case DrawBlendMode::BlendMultiply: + // Amounts are the strength of the effect, so fade towards white (no change) at 0. + red = 255.0f + (red - 255.0f) * amount(0); + green = 255.0f + (green - 255.0f) * amount(1); + blue = 255.0f + (blue - 255.0f) * amount(2); + break; + case DrawBlendMode::BlendInvert: + red = green = blue = 255.0f * amount(3); + break; + case DrawBlendMode::BlendDissolve: + alpha = 255.0f * (1.0f - amount(3)); + break; + default: + // Additive-style modes fade towards black (no change) at 0. + red *= amount(0); + green *= amount(1); + blue *= amount(2); + break; } + return Color(static_cast(red), static_cast(green), static_cast(blue), static_cast(alpha)); } -void SplinePrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawGuideA = WrapCoordinates(targetPos, m_GuidePointAPos); - Vector drawGuideB = WrapCoordinates(targetPos, m_GuidePointBPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - - std::array guidePoints = {drawStart, drawGuideA, drawGuideB, drawEnd}; - DrawSplineBasis(guidePoints.data(), guidePoints.size(), 1, {m_Color, 0, 0, 255}); +void GraphicalPrimitive::GetCullCircle(Vector& center, float& radius) const { + center = m_StartPos; + radius = std::sqrt(m_DrawRadiusSquared); + switch (GetPrimitiveType()) { + case PrimitiveType::Circle: + radius = static_cast(static_cast(this)->m_Radius); + break; + case PrimitiveType::CircleFill: + radius = static_cast(static_cast(this)->m_Radius); + break; + case PrimitiveType::Ellipse: + radius = static_cast(std::max(static_cast(this)->m_HorizRadius, static_cast(this)->m_VertRadius)); + break; + case PrimitiveType::EllipseFill: + radius = static_cast(std::max(static_cast(this)->m_HorizRadius, static_cast(this)->m_VertRadius)); + break; + case PrimitiveType::Triangle: + TriangleCullCircle(*static_cast(this), center, radius); + break; + case PrimitiveType::TriangleFill: + TriangleCullCircle(*static_cast(this), center, radius); + break; + case PrimitiveType::Polygon: + radius = PolygonCullRadius(static_cast(this)->m_Vertices); + break; + case PrimitiveType::PolygonFill: + radius = PolygonCullRadius(static_cast(this)->m_Vertices); + break; + case PrimitiveType::Text: { + const TextPrimitive* text = static_cast(this); + radius = text->m_TextBitmap ? static_cast(text->m_TextBitmap->w + text->m_TextBitmap->h) : 0.0f; + break; + } + case PrimitiveType::Bitmap: { + const BitmapPrimitive* bitmap = static_cast(this); + radius = bitmap->m_Bitmap ? static_cast(bitmap->m_Bitmap->w + bitmap->m_Bitmap->h) * std::abs(bitmap->m_Scale) : 0.0f; + break; + } + case PrimitiveType::Box: + case PrimitiveType::BoxFill: + case PrimitiveType::RoundedBox: + case PrimitiveType::RoundedBoxFill: + center = (m_StartPos + m_EndPos) / 2.0f; + radius = (m_EndPos - m_StartPos).GetMagnitude() / 2.0f; + break; + default: + break; + } + // Pad for line thickness and pixel rounding. + radius += 4.0f; } -void BoxPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - Vector dimensions = drawEnd - drawStart; - DrawRectangleLines(drawStart.m_X, drawStart.m_Y, dimensions.m_X, dimensions.m_Y, {m_Color, 0, 0, 255}); +void LinePrimitive::Draw() { + RTE::Draw::Line(ToFloorVec2(m_StartPos), ToFloorVec2(m_EndPos), std::max(m_Thickness, 1.0f), GetDrawColor()); } -void BoxFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - Vector dimensions = drawEnd - drawStart; - DrawRectangle(drawStart.m_X, drawStart.m_Y, dimensions.m_X, dimensions.m_Y, {m_Color, 0, 0, 255}); +void ArcPrimitive::Draw() { + float thickness = static_cast(std::max(m_Thickness, 1)); + RTE::Draw::Ring(ToFloorVec2(m_StartPos), static_cast(m_Radius) - thickness / 2.0f, static_cast(m_Radius) + thickness / 2.0f, m_StartAngle, m_EndAngle, GetDrawColor()); } -void RoundedBoxPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - if (m_StartPos.m_X > m_EndPos.m_X) { - std::swap(m_StartPos.m_X, m_EndPos.m_X); - } - if (m_StartPos.m_Y > m_EndPos.m_Y) { - std::swap(m_StartPos.m_Y, m_EndPos.m_Y); - } - - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - Vector ringCornerTopLeft(drawStart.GetFloorIntX() + m_CornerRadius, drawStart.GetFloorIntY() + m_CornerRadius); - Vector ringCornerBottomLeft(drawStart.GetFloorIntX() + m_CornerRadius, drawEnd.GetFloorIntY() - m_CornerRadius + 1.0f); - Vector ringCornerTopRight(drawEnd.GetFloorIntX() - m_CornerRadius + 1.0f, drawStart.GetFloorIntY() + m_CornerRadius); - Vector ringCornerBottomRight(drawEnd.GetFloorIntX() - m_CornerRadius + 1.0f, drawEnd.GetFloorIntY() - m_CornerRadius + 1.0f); - - DrawRing(ringCornerTopLeft, m_CornerRadius - 1.0f, m_CornerRadius, -90, -180, 90, {m_Color, 0, 0, 255}); - DrawRing(ringCornerBottomLeft, m_CornerRadius - 1.0f, m_CornerRadius, 90, 180, 90, {m_Color, 0, 0, 255}); - DrawRing(ringCornerTopRight, m_CornerRadius - 1.0f, m_CornerRadius, 0, -90, 90, {m_Color, 0, 0, 255}); - DrawRing(ringCornerBottomRight, m_CornerRadius - 1.0f, m_CornerRadius, 90, 0, 90, {m_Color, 0, 0, 255}); - DrawRectangle(drawStart.GetFloorIntX() + m_CornerRadius, drawStart.GetFloorIntY(), drawEnd.GetFloorIntX() - drawStart.GetFloorIntX() - 2 * m_CornerRadius + 1, 1, {m_Color, 0, 0, 255}); - DrawRectangle(drawStart.GetFloorIntX() + m_CornerRadius, drawEnd.GetFloorIntY(), drawEnd.GetFloorIntX() - drawStart.GetFloorIntX() - 2 * m_CornerRadius + 1, 1, {m_Color, 0, 0, 255}); - DrawRectangle(drawStart.GetFloorIntX(), drawStart.GetFloorIntY() + m_CornerRadius, 1, drawEnd.GetFloorIntY() - drawStart.GetFloorIntY() - 2 * m_CornerRadius + 1, {m_Color, 0, 0, 255}); - DrawRectangle(drawEnd.GetFloorIntX(), drawStart.GetFloorIntY() + m_CornerRadius, 1, drawEnd.GetFloorIntY() - drawStart.GetFloorIntY() - 2 * m_CornerRadius + 1, {m_Color, 0, 0, 255}); +void SplinePrimitive::Draw() { + RTE::Draw::LineSpline({ToFloorVec2(m_StartPos), ToFloorVec2(m_GuidePointAPos), ToFloorVec2(m_GuidePointBPos), ToFloorVec2(m_EndPos)}, GetDrawColor()); } -void RoundedBoxFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - if (m_StartPos.m_X > m_EndPos.m_X) { - std::swap(m_StartPos.m_X, m_EndPos.m_X); - } - if (m_StartPos.m_Y > m_EndPos.m_Y) { - std::swap(m_StartPos.m_Y, m_EndPos.m_Y); +namespace { + /// Normalized integer rectangle covering both corners inclusively, like Allegro's rect/rectfill. + FloatRect InclusiveRect(const Vector& cornerA, const Vector& cornerB) { + float left = static_cast(std::min(cornerA.GetFloorIntX(), cornerB.GetFloorIntX())); + float top = static_cast(std::min(cornerA.GetFloorIntY(), cornerB.GetFloorIntY())); + float right = static_cast(std::max(cornerA.GetFloorIntX(), cornerB.GetFloorIntX())); + float bottom = static_cast(std::max(cornerA.GetFloorIntY(), cornerB.GetFloorIntY())); + return FloatRect(left, top, right - left + 1.0f, bottom - top + 1.0f); } +} // namespace - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - Vector drawEnd = WrapCoordinates(targetPos, m_EndPos); - DrawCircle(drawStart.GetFloorIntX() + m_CornerRadius, drawStart.GetFloorIntY() + m_CornerRadius, m_CornerRadius, {m_Color, 0, 0, 255}); - DrawCircle(drawStart.GetFloorIntX() + m_CornerRadius, drawEnd.GetFloorIntY() - m_CornerRadius, m_CornerRadius, {m_Color, 0, 0, 255}); - DrawCircle(drawEnd.GetFloorIntX() - m_CornerRadius, drawStart.GetFloorIntY() + m_CornerRadius, m_CornerRadius, {m_Color, 0, 0, 255}); - DrawCircle(drawEnd.GetFloorIntX() - m_CornerRadius, drawEnd.GetFloorIntY() - m_CornerRadius, m_CornerRadius, {m_Color, 0, 0, 255}); - DrawRectangle(drawStart.GetFloorIntX(), drawStart.GetFloorIntY() + m_CornerRadius, drawEnd.GetFloorIntX() - drawStart.GetFloorIntX(), drawEnd.GetFloorIntY() - drawStart.GetFloorIntY() - 2 * m_CornerRadius, {m_Color, 0, 0, 255}); - DrawRectangle(drawStart.GetFloorIntX() + m_CornerRadius, drawStart.GetFloorIntY(), drawEnd.GetFloorIntX() - drawStart.GetFloorIntX() - 2 * m_CornerRadius, drawEnd.GetFloorIntY() - drawStart.GetFloorIntY(), {m_Color, 0, 0, 255}); +void BoxPrimitive::Draw() { + RTE::Draw::RectangleLines(InclusiveRect(m_StartPos, m_EndPos), 1.0f, GetDrawColor()); } -void CirclePrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - DrawCircleLines(drawStart.GetFloorIntX(), drawStart.GetFloorIntY(), m_Radius, {m_Color, 0, 0, 255}); +void BoxFillPrimitive::Draw() { + RTE::Draw::Rectangle(InclusiveRect(m_StartPos, m_EndPos), GetDrawColor()); } -void CircleFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - DrawCircle(drawStart.GetFloorIntX(), drawStart.GetFloorIntY(), m_Radius, {m_Color, 0, 0, 255}); +void RoundedBoxPrimitive::Draw() { + RTE::Draw::RoundedRectangleLines(InclusiveRect(m_StartPos, m_EndPos), static_cast(m_CornerRadius), 1.0f, GetDrawColor()); } -void EllipsePrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - DrawEllipseLines(drawStart.GetFloorIntX(), drawStart.GetFloorIntY(), m_HorizRadius, m_VertRadius, {m_Color, 0, 0, 255}); +void RoundedBoxFillPrimitive::Draw() { + RTE::Draw::RoundedRectangle(InclusiveRect(m_StartPos, m_EndPos), static_cast(m_CornerRadius), GetDrawColor()); } -void EllipseFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - DrawEllipse(drawStart.GetFloorIntX(), drawStart.GetFloorIntY(), m_HorizRadius, m_VertRadius, {m_Color, 0, 0, 255}); +void CirclePrimitive::Draw() { + RTE::Draw::CircleLines(ToFloorVec2(m_StartPos), static_cast(m_Radius), GetDrawColor()); } -void TrianglePrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawPointA = WrapCoordinates(targetPos, m_PointAPos); - Vector drawPointB = WrapCoordinates(targetPos, m_PointBPos); - Vector drawPointC = WrapCoordinates(targetPos, m_PointCPos); - DrawLine(drawPointA.GetFloorIntX(), drawPointA.GetFloorIntY(), drawPointB.GetFloorIntX(), drawPointB.GetFloorIntY(), {m_Color, 0, 0, 255}); - DrawLine(drawPointB.GetFloorIntX(), drawPointB.GetFloorIntY(), drawPointC.GetFloorIntX(), drawPointC.GetFloorIntY(), {m_Color, 0, 0, 255}); - DrawLine(drawPointC.GetFloorIntX(), drawPointC.GetFloorIntY(), drawPointA.GetFloorIntX(), drawPointA.GetFloorIntY(), {m_Color, 0, 0, 255}); +void CircleFillPrimitive::Draw() { + RTE::Draw::Circle(ToFloorVec2(m_StartPos), static_cast(m_Radius), GetDrawColor()); } -void TriangleFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawPointA = WrapCoordinates(targetPos, m_PointAPos); - Vector drawPointB = WrapCoordinates(targetPos, m_PointBPos); - Vector drawPointC = WrapCoordinates(targetPos, m_PointCPos); - DrawTriangle(drawPointA, drawPointB, drawPointC, {m_Color, 0, 0, 255}); +void EllipsePrimitive::Draw() { + RTE::Draw::EllipseLines(ToFloorVec2(m_StartPos), static_cast(m_HorizRadius), static_cast(m_VertRadius), GetDrawColor()); } -void PolygonPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - Vector drawStart; - Vector drawEnd; - Vector startPos = WrapCoordinates(targetPos, m_StartPos); - for (int i = 0; i < m_Vertices.size(); ++i) { - drawStart = startPos - targetPos + (*m_Vertices[i]); - drawEnd = startPos - targetPos + ((i + 1 < m_Vertices.size()) ? *m_Vertices[i + 1] : *m_Vertices[0]); - DrawLine(drawStart.GetFloorIntX(), drawStart.GetFloorIntY(), drawEnd.GetFloorIntX(), drawEnd.GetFloorIntY(), {m_Color, 0, 0, 255}); - } +void EllipseFillPrimitive::Draw() { + RTE::Draw::Ellipse(ToFloorVec2(m_StartPos), static_cast(m_HorizRadius), static_cast(m_VertRadius), GetDrawColor()); } -void PolygonFillPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { - size_t drawPointsSize = m_Vertices.size(); - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); +void TrianglePrimitive::Draw() { + RTE::Draw::TriangleLines(ToFloorVec2(m_PointAPos), ToFloorVec2(m_PointBPos), ToFloorVec2(m_PointCPos), GetDrawColor()); +} - std::vector drawPoints = {}; - drawPoints.reserve(drawPointsSize); +void TriangleFillPrimitive::Draw() { + RTE::Draw::Triangle(ToFloorVec2(m_PointAPos), ToFloorVec2(m_PointBPos), ToFloorVec2(m_PointCPos), GetDrawColor()); +} +void PolygonPrimitive::Draw() { + std::vector points; + points.reserve(m_Vertices.size()); for (const Vector* vertex: m_Vertices) { - drawPoints.emplace_back(drawStart.GetFloorIntX() + vertex->GetFloorIntX(), drawStart.GetFloorIntY() + vertex->GetFloorIntY()); + points.emplace_back(ToFloorVec2(m_StartPos + *vertex)); } - DrawTriangleStrip(drawPoints.data(), drawPoints.size(), {m_Color, 0, 0, 255}); + RTE::Draw::PolygonLines(points, GetDrawColor()); } +void PolygonFillPrimitive::Draw() { + std::vector points; + points.reserve(m_Vertices.size()); + for (const Vector* vertex: m_Vertices) { + points.emplace_back(ToFloorVec2(m_StartPos + *vertex)); + } + RTE::Draw::Polygon(std::move(points), GetDrawColor()); +} void TextPrimitive::CreateTextBitmap() { if(m_Text.empty()) { @@ -235,41 +252,25 @@ void TextPrimitive::CreateTextBitmap() { m_TargetPosAlignment = Vector(static_cast(textWidth), 0); } -void TextPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { +void TextPrimitive::Draw() { if (!m_TextBitmap) { return; } - - Vector drawStart = WrapCoordinates(targetPos, m_StartPos) - m_TargetPosAlignment; - Rectangle bitmapRect(0.0f, 0.0f, m_TextBitmap->w, m_TextBitmap->h); - Rectangle destRect( - drawStart.m_X, - drawStart.m_Y, - m_TextBitmap->w, - m_TextBitmap->h); - DrawTexturePro(m_TextBitmap, bitmapRect, destRect, {0.0f, 0.0f}, m_RotAngle, {255, 255, 255, 255}); + // Rotate around the anchor point. CC angles are counter-clockwise, screen space rotation is clockwise. + RTE::Draw::DrawBitmap(m_TextBitmap, ToFloorVec2(m_StartPos), -ToVec2(m_TargetPosAlignment), -m_RotAngle, glm::vec2(1.0f), GetDrawColor()); } TextPrimitive::~TextPrimitive() { if (m_TextBitmap) { - g_GLResourceMan.DestroyBitmapInfo(m_TextBitmap); + g_GLStateMan.DestroyBitmapInfo(m_TextBitmap); destroy_bitmap(m_TextBitmap); } } -void BitmapPrimitive::Draw(BITMAP* drawScreen, const Vector& targetPos) { +void BitmapPrimitive::Draw() { if (!m_Bitmap) { return; } - - Vector drawStart = WrapCoordinates(targetPos, m_StartPos); - - Rectangle flippedRect( - drawStart.m_X - m_Bitmap->w / 2, - drawStart.m_Y - m_Bitmap->h / 2, - (m_VFlipped ? -m_Bitmap->w : m_Bitmap->w) * m_Scale, - (m_HFlipped ? -m_Bitmap->h : m_Bitmap->h) * m_Scale - ); - - DrawTexturePro(m_Bitmap, Rectangle(0.0f, 0.0f, m_Bitmap->w, m_Bitmap->h), flippedRect, {0.0f, 0.0f}, m_RotAngle, {255, 255, 255, 255}); + glm::vec2 scale(m_HFlipped ? -m_Scale : m_Scale, m_VFlipped ? -m_Scale : m_Scale); + RTE::Draw::DrawBitmap(m_Bitmap, ToFloorVec2(m_StartPos), glm::vec2(-m_Bitmap->w / 2.0f, -m_Bitmap->h / 2.0f), -m_RotAngle, scale, GetDrawColor()); } diff --git a/Source/Renderer/GraphicalPrimitive.h b/Source/Renderer/GraphicalPrimitive.h index 4d366a9026..296a0ec2bb 100644 --- a/Source/Renderer/GraphicalPrimitive.h +++ b/Source/Renderer/GraphicalPrimitive.h @@ -3,6 +3,7 @@ #include "MOSprite.h" #include +#include #include #include #include @@ -18,7 +19,7 @@ namespace RTE { /// Convenience macro to cut down on duplicate methods in classes that extend GraphicalPrimitive. #define GraphicalPrimitiveOverrideMethods \ const PrimitiveType GetPrimitiveType() const override { return c_PrimitiveType; } \ - void Draw(BITMAP* drawScreen, const Vector& targetPos) override; + void Draw() override; /// Enumeration of the different primitive types derived from GraphicalPrimitive. enum class PrimitiveType { @@ -54,17 +55,17 @@ namespace RTE { /// Destructor method used to clean up a GraphicalPrimitive object before deletion from system memory. virtual ~GraphicalPrimitive() = default; - /// Wraps coordinates if current Scene is wrapped. - /// @param targetPos Target position. - /// @param scenePos Position on scene. - Vector WrapCoordinates(Vector targetPos, const Vector& scenePos) const; + /// Gets the color this primitive should be drawn with, resolved from the palette and adjusted for the blend mode and amounts. + /// @return The color to draw with. + Color GetDrawColor() const; - void DrawTiled(BITMAP* drawScreen, const Vector& targetPos); + /// Gets a circle in Scene coordinates that encloses this primitive, for culling. + /// @param center Out parameter for the circle's center. + /// @param radius Out parameter for the circle's radius. + void GetCullCircle(Vector& center, float& radius) const; - /// Draws this primitive on provided bitmap. - /// @param drawScreen Bitmap to draw on. - /// @param targetPos Position of graphical primitive. - virtual void Draw(BITMAP* drawScreen, const Vector& targetPos) = 0; + /// Schedules this primitive for drawing on the active render batch, in Scene coordinates. Scene wrapping is handled by the cameras. + virtual void Draw() = 0; /// Gets the type identifier of this primitive. /// @return The type identifier of this primitive. diff --git a/Source/Renderer/LightingSettings.h b/Source/Renderer/LightingSettings.h new file mode 100644 index 0000000000..065e928288 --- /dev/null +++ b/Source/Renderer/LightingSettings.h @@ -0,0 +1,128 @@ +#pragma once + +#include "glm/glm.hpp" + +namespace RTE { + + /// Tunable parameters of the scene lighting and post-processing. Colors are linear. + /// Persisted in Settings.ini by SettingsMan and editable live in the Graphics Lab (DebugMan). + struct LightingSettings { + /// Graphics quality presets, from the classic look up to every effect at full quality. + enum Quality { + QualityPotato, + QualityLow, + QualityMedium, + QualityHigh, + QualityUltra, + QualityCustom, + QualityCount + }; + int GraphicsQuality = QualityHigh; //!< The preset these settings came from, or QualityCustom once individual effects were changed. + + /// Sets the effects that cost performance to one of the presets, leaving the art direction (colors, grading, time of day) alone. + void ApplyQualityPreset(int quality) { + GraphicsQuality = quality; + if (quality < QualityPotato || quality >= QualityCustom) { + return; + } + struct Preset { + bool Lighting, Bloom, Distortion, Scorch; + float Embers, GodRays, Indirect; + int Propagation; + bool RadianceCascades; + float Particles; + float Smoke; + }; + static constexpr Preset presets[] = { + {false, false, false, false, 0.0F, 0.0F, 0.0F, 6, false, 0.0F, 0.0F}, // Potato: the classic look. + {true, true, false, true, 0.5F, 0.0F, 0.0F, 3, false, 0.5F, 0.0F}, // Low + {true, true, true, true, 1.0F, 0.7F, 0.0F, 4, false, 1.0F, 0.7F}, // Medium + {true, true, true, true, 1.0F, 0.7F, 0.35F, 6, false, 1.0F, 1.0F}, // High + {true, true, true, true, 1.3F, 0.8F, 0.45F, 12, true, 1.5F, 1.2F}, // Ultra + }; + const Preset& preset = presets[quality]; + Enabled = preset.Lighting; + BloomEnabled = preset.Bloom; + DistortionEnabled = preset.Distortion; + ScorchMarks = preset.Scorch; + Stains = preset.Scorch; + LivingWorld = preset.Distortion; + Embers = preset.Embers; + GodRays = preset.GodRays; + IndirectLight = preset.Indirect; + PropagationIterationsPerFrame = preset.Propagation; + RadianceCascades = preset.RadianceCascades; + EffectsParticles = preset.Particles; + SmokeScattering = preset.Smoke; + } + + bool Enabled = true; //!< Whether scene lighting is applied at all. Glows and bloom still apply when disabled. + glm::vec3 Ambient = {0.6F, 0.59F, 0.63F}; //!< Light where no sky light reaches: bunker interiors and caves. + glm::vec3 SkyColor = {1.0F, 0.98F, 0.95F}; //!< Light under open sky. + glm::vec3 ForegroundAmbient = {0.5F, 0.49F, 0.52F}; //!< Minimum light on the foreground terrain and objects, so the playfield stays readable deep underground. Caves behind stay darker. + float AirFalloff = 0.96F; //!< How much sky light is kept per grid cell travelled through air. + float SolidFalloff = 0.6F; //!< How much sky light is kept per grid cell travelled into terrain. + int PropagationIterationsPerFrame = 6; //!< Sky light propagation iterations per frame. Light settles into new terrain over a few frames. + + float AtmosphereHaze = 0.18F; //!< How much the furthest background layers fade into the atmosphere, 0 to 1. + glm::vec3 AtmosphereColor = {0.62F, 0.74F, 0.95F}; //!< Color of the atmosphere at noon, linear. Tinted by the time of day. + + int WeatherType = 0; //!< 0 clear, 1 rain, 2 snow. + float WeatherIntensity = 0.6F; //!< How heavy the rain or snow is, 0 to 1. + float Wind = 60.0F; //!< Horizontal wind speed for precipitation, pixels per second. Negative blows left. + + float TimeOfDay = 12.0F; //!< Hours, 0 to 24. Tints and dims the sky light through dawn, day, dusk and night. Noon reproduces the classic look. + float DayLengthMinutes = 0.0F; //!< Real minutes for a full day/night cycle (in sim time, so it pauses with the game). 0 keeps the time of day fixed. + + float GlowLightIntensity = 2.5F; //!< Brightness of the lights cast by glow effects. + float GlowLightRadiusScale = 8.0F; //!< Radius of glow lights relative to the glow sprite's size. + float ShadowStrength = 0.85F; //!< How much terrain blocks dynamic lights, 0 to 1. + float EmissiveIntensity = 1.4F; //!< Brightness of glow sprites drawn as emitted light. Above 1 lets the brightest glows feed the bloom. + float IndirectLight = 0.35F; //!< One bounce of light: lit surfaces bleed their color onto their surroundings. 0 to disable. + bool RadianceCascades = false; //!< Global illumination by radiance cascades: glows light their surroundings with soft occlusion, and light bounces off surfaces. Replaces the simpler indirect light. + float GIStrength = 1.0F; //!< Brightness of the radiance cascades light. + float GIBounce = 0.5F; //!< How much of the light reaching surfaces they pass on. + float EdgeLighting = 1.0F; //!< How strongly sprite and terrain edges (from automatic normals) catch and turn away from light, 0 to 1. + + bool DistortionEnabled = true; //!< Heat haze above hot things and shockwaves from explosions. + float HeatHaze = 1.5F; //!< Heat haze shimmer, in pixels at full heat. + float ShockwaveStrength = 1.0F; //!< Multiplier for explosion shockwave refraction. + + float GodRays = 0.7F; //!< Strength of light shafts streaming from the sky through gaps in terrain, 0 to disable. + float GodRayDecay = 0.965F; //!< How quickly shafts fade along their length. + + float Embers = 1.0F; //!< Amount of embers rising from fire and other warm glows, 0 to disable. + float EffectsParticles = 1.0F; //!< Amount of visual sparks, dust and debris from explosions and impacts, 0 to disable. + float SmokeScattering = 1.0F; //!< How brightly smoke catches the light passing through it (fire, muzzle flashes, lamps), 0 to disable. + + bool ScorchMarks = true; //!< Explosions leave soot on the terrain and glow while it cools. + bool Stains = true; //!< Blood, oil and water splashes stain the terrain. + bool Headlamps = true; //!< At night, soldiers switch on headlamps that light the way they're looking. + bool NightAffectsAI = true; //!< At night, AI sees less far unless it has a headlamp on. Changes gameplay. + bool LivingWorld = true; //!< Vegetation sways in the wind and bends in blasts; snow settles and rain wets exposed ground. + float HotSpotSeconds = 3.5F; //!< How long freshly blasted terrain glows. + + bool BloomEnabled = true; + float BloomThreshold = 0.9F; + float BloomKnee = 0.4F; + float BloomIntensity = 0.5F; + + float Exposure = 1.0F; + float AutoExposure = 0.6F; //!< How strongly exposure adapts when the scene is much brighter or darker than usual (flashes, pitch black caves), 0 to disable. + float AutoExposureLow = 0.01F; //!< Average scene luminance below which exposure starts to brighten. Ordinary scenes, night included, stay above it. + float AutoExposureHigh = 0.3F; //!< Average scene luminance above which exposure starts to darken, e.g. a big explosion filling the screen. + float ShoulderStart = 0.75F; //!< Linear brightness above which highlights are softly compressed. + float Vignette = 0.15F; + float Saturation = 1.05F; + + float Temperature = 0.0F; //!< Color grading white balance, -1 cool to 1 warm. + float Tint = 0.0F; //!< Color grading tint, -1 green to 1 magenta. + float Contrast = 1.0F; //!< Color grading contrast around mid grey. + glm::vec3 ShadowTint = {1.0F, 1.0F, 1.0F}; //!< Color multiplier for the shadows. + glm::vec3 HighlightTint = {1.0F, 1.0F, 1.0F}; //!< Color multiplier for the highlights. + float FilmGrain = 0.0F; //!< Film grain strength, 0 to 1. + float ChromaticAberration = 0.0F; //!< Lens color fringing towards the screen edges, in pixels. + + int DebugView = 0; //!< Not persisted. 0 final image, 1 lighting on grey, 2 sky light only, 3 dynamic light only. + }; +} // namespace RTE diff --git a/Source/Renderer/RenderBatch.cpp b/Source/Renderer/RenderBatch.cpp new file mode 100644 index 0000000000..c7b110deba --- /dev/null +++ b/Source/Renderer/RenderBatch.cpp @@ -0,0 +1,278 @@ +#include "RenderBatch.h" +#include "Constants.h" +#include "GLStateMan.h" +#include "RenderMan.h" +#include "Shader.h" +#include "glad/gl.h" +#include "glm/glm.hpp" +#include +#include +#include "tracy/Tracy.hpp" +#include "tracy/TracyOpenGL.hpp" +#include "GLCheck.h" + +using namespace RTE; + +namespace { + bool SameScissor(const std::optional& a, const std::optional& b) { + if (a.has_value() != b.has_value()) { + return false; + } + return !a.has_value() || (a->x == b->x && a->y == b->y && a->w == b->w && a->h == b->h); + } +} // namespace + +VertexBuffer::VertexBuffer() { + m_Vertices.reserve(4 * c_DefaultBatchVAOElements); + m_Indices.reserve(6 * c_DefaultBatchVAOElements); + InitializeBuffers(); +}; + +VertexBuffer::~VertexBuffer() { + glDeleteBuffers(1, &m_VertexBuffer); + glDeleteBuffers(1, &m_IndexBuffer); + glDeleteVertexArrays(1, &m_VertexArray); + m_VertexBuffer = 0; + m_IndexBuffer = 0; + m_VertexArray = 0; +}; + +VertexBuffer::VertexBuffer(int bufferSize) : + m_BufferElements(bufferSize) { + m_Vertices.reserve(4 * bufferSize); + m_Indices.reserve(6 * bufferSize); + InitializeBuffers(); +} + +void VertexBuffer::InitializeBuffers() { + + GL_CHECK(glGenBuffers(1, &m_VertexBuffer)); + GL_CHECK(glGenBuffers(1, &m_IndexBuffer)); + GL_CHECK(glGenVertexArrays(1, &m_VertexArray)); + + GL_CHECK(glBindVertexArray(m_VertexArray)); + GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer)); + GL_CHECK(glBufferData(GL_ARRAY_BUFFER, m_BufferElements * 4 * sizeof(Vertex), nullptr, GL_DYNAMIC_DRAW)); + + GL_CHECK(glEnableVertexAttribArray(VertexAttribLocation::VERTEX)); + GL_CHECK(glVertexAttribPointer(VertexAttribLocation::VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0)); + + GL_CHECK(glEnableVertexAttribArray(VertexAttribLocation::TEXTURECOORDINATE)); + GL_CHECK(glVertexAttribPointer(VertexAttribLocation::TEXTURECOORDINATE, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*)offsetof(Vertex, m_TextureUV))); + + GL_CHECK(glEnableVertexAttribArray(VertexAttribLocation::COLOR)); + GL_CHECK(glVertexAttribPointer(VertexAttribLocation::COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), (GLvoid*)offsetof(Vertex, m_Color))); + + GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IndexBuffer)); + GL_CHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_BufferElements * 6 * sizeof(decltype(m_Indices)::value_type), nullptr, GL_DYNAMIC_DRAW)); + glBindVertexArray(0); +} + +RenderBatch::RenderBatch() = default; + +void RenderBatch::BeginFrame() { + ZoneScoped; + m_CurrentDepth = 0; + m_CurrentZ = c_DefaultDrawDepth; + m_VertexBuffers.m_Vertices.clear(); + m_VertexBuffers.m_Indices.clear(); + RecycleDrawCalls(); +} + +void RenderBatch::EndFrame() { + ZoneScoped; + ApplyDrawCalls(); + m_VertexBuffers.UpdateBuffers(); +} + +void RenderBatch::Render() { + ZoneScoped; + TracyGpuZone("Render"); + glBindVertexArray(m_VertexBuffers.m_VertexArray); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_VertexBuffers.m_IndexBuffer); + + const Shader* currentShader = m_CurrentShader ? m_CurrentShader : g_RenderMan.GetDefaultShader(); + + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, g_RenderMan.GetPaletteTexture()); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, g_RenderMan.GetEmissivePaletteTexture()); + for (size_t globalUnit = 0; globalUnit < g_RenderMan.GetGlobalTextures().size(); ++globalUnit) { + glActiveTexture(GL_TEXTURE3 + static_cast(globalUnit)); + glBindTexture(GL_TEXTURE_2D, g_RenderMan.GetGlobalTextures()[globalUnit]); + } + // Draw call textures are bound to unit 1, so leave it active. + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, g_RenderMan.GetShapeTexture()); + const Camera* currentCamera = m_CurrentCamera; + currentShader->Enable(); + currentShader->SetInt(currentShader->GetTextureUniform(), 1); + currentShader->SetInt(currentShader->GetPaletteUniform(), 0); + currentShader->SetInt("rteEmissivePalette", 2); + if(!currentCamera) { + currentShader->SetMatrix4f(currentShader->GetProjectionUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetTransformUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetUVTransformUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetViewUniform(), glm::mat4(1.0f)); + } else { + currentShader->SetMatrix4f(currentShader->GetProjectionUniform(), currentCamera->GetProjection()); + currentShader->SetMatrix4f(currentShader->GetTransformUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetUVTransformUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetViewUniform(), currentCamera->GetView()); + } + + GLuint indexOffset = 0; + GLuint activeTexture = g_RenderMan.GetShapeTexture(); + glDisable(GL_MULTISAMPLE); + glDisable(GL_CULL_FACE); + glEnable(GL_DEPTH_TEST); + // Start with blending disabled and track that, so the first draw call enables its own blend mode (default constructed BlendMode is Blend::NONE). + BlendMode activeBlendMode{}; + glDisable(GL_BLEND); + GLint indexedUniform = glGetUniformLocation(currentShader->GetProgramID(), "rteIndexed"); + int activeIndexed = -1; + bool transformsDirty = false; + bool scissorEnabled = false; + + for (size_t drawIndex = 0; drawIndex < m_DrawCalls.size();) { + const std::shared_ptr& drawCall = m_DrawCalls[drawIndex]; + if (drawCall->m_Shader && drawCall->m_Shader != currentShader) { + currentShader = drawCall->m_Shader; + currentShader->Enable(); + currentShader->SetInt(currentShader->GetTextureUniform(), 1); + currentShader->SetInt(currentShader->GetPaletteUniform(), 0); + currentShader->SetInt("rteEmissivePalette", 2); + if (currentCamera) { + currentShader->SetMatrix4f(currentShader->GetProjectionUniform(), currentCamera->GetProjection()); + currentShader->SetMatrix4f(currentShader->GetViewUniform(), currentCamera->GetView()); + } + transformsDirty = true; + indexedUniform = glGetUniformLocation(currentShader->GetProgramID(), "rteIndexed"); + activeIndexed = -1; + } + + if (transformsDirty || !drawCall->m_UniformValues.empty()) { + currentShader->SetMatrix4f(currentShader->GetTransformUniform(), glm::mat4(1.0f)); + currentShader->SetMatrix4f(currentShader->GetUVTransformUniform(), glm::mat4(1.0f)); + transformsDirty = false; + } + for (auto& uniform: drawCall->m_UniformValues) { + uniform->Enable(); + } + if (!drawCall->m_UniformValues.empty()) { + // The draw may have changed transforms or other state, so reset before the next one. + transformsDirty = true; + } + + if (drawCall->m_Scissor != std::nullopt) { + const FloatRect& scissor = *drawCall->m_Scissor; + glEnable(GL_SCISSOR_TEST); + glScissor(scissor.x, scissor.y, scissor.w, scissor.h); + scissorEnabled = true; + } else if (scissorEnabled) { + glDisable(GL_SCISSOR_TEST); + scissorEnabled = false; + } + + if (drawCall->m_TextureId != activeTexture) { + glBindTexture(GL_TEXTURE_2D, drawCall->m_TextureId); + activeTexture = drawCall->m_TextureId; + } + if (drawCall->m_BlendMode != activeBlendMode) { + drawCall->m_BlendMode.Enable(); + activeBlendMode = drawCall->m_BlendMode; + } + if (static_cast(drawCall->m_Indexed) != activeIndexed) { + glUniform1i(indexedUniform, drawCall->m_Indexed ? 1 : 0); + activeIndexed = drawCall->m_Indexed ? 1 : 0; + } + + // Merge following draw calls that would render with exactly the same state into one GL draw. Their indices are contiguous in the index buffer. + size_t indexCount = drawCall->m_Indices.size(); + size_t nextIndex = drawIndex + 1; + if (drawCall->m_UniformValues.empty() && drawCall->m_DrawMode == GL_TRIANGLES) { + while (nextIndex < m_DrawCalls.size()) { + const std::shared_ptr& next = m_DrawCalls[nextIndex]; + const Shader* nextShader = next->m_Shader ? next->m_Shader : currentShader; + if (nextShader != currentShader || next->m_TextureId != drawCall->m_TextureId || !(next->m_BlendMode == drawCall->m_BlendMode) || next->m_Indexed != drawCall->m_Indexed || + next->m_DrawMode != GL_TRIANGLES || !next->m_UniformValues.empty() || !SameScissor(next->m_Scissor, drawCall->m_Scissor)) { + break; + } + indexCount += next->m_Indices.size(); + ++nextIndex; + } + } + + GL_CHECK(glDrawElements(drawCall->m_DrawMode, static_cast(indexCount), GL_UNSIGNED_INT, (GLvoid*)(indexOffset * sizeof(GLuint)))); + indexOffset += static_cast(indexCount); + drawIndex = nextIndex; + } + if (scissorEnabled) { + glDisable(GL_SCISSOR_TEST); + } +} + +void RenderBatch::RecycleDrawCalls() { + for (std::shared_ptr& drawCall: m_DrawCalls) { + // Only reuse draw calls nobody else is holding on to. + if (drawCall.use_count() == 1) { + m_FreeDrawCalls.push_back(std::move(drawCall)); + } + } + m_DrawCalls.clear(); +} + +void RenderBatch::ClearDraws() { + ZoneScoped; + RecycleDrawCalls(); + m_VertexBuffers.m_Vertices.clear(); + m_VertexBuffers.m_Indices.clear(); +} + +void RenderBatch::ApplyDrawCalls() { + ZoneScoped; + + // TODO: Sort and batch DrawCalls by shader and transparency. + // std::stable_sort(m_DrawCalls.begin(), m_DrawCalls.end(), [](auto r, auto l) { return r->m_TextureId < l->m_TextureId; }); + + for (auto drawCall: m_DrawCalls) { + RTEAssert(drawCall.use_count() == 2, "DrawCall still in use on EndFrame!"); + size_t vertexCount = m_VertexBuffers.m_Vertices.size(); + + for (auto& index: drawCall->m_Indices) { + index += vertexCount; + } + m_VertexBuffers.m_Vertices.insert( + m_VertexBuffers.m_Vertices.end(), + std::make_move_iterator(drawCall->m_Vertices.begin()), + std::make_move_iterator(drawCall->m_Vertices.end())); + + m_VertexBuffers.m_Indices.insert( + m_VertexBuffers.m_Indices.end(), + std::make_move_iterator(drawCall->m_Indices.begin()), + std::make_move_iterator(drawCall->m_Indices.end())); + } +} + +void VertexBuffer::UpdateBuffers() { + ZoneScoped; + TracyGpuZone("VertexBuffer::UpdateBuffers"); + glBindVertexArray(m_VertexArray); + + GLint bufferSize; + GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer)); + GL_CHECK(glGetBufferParameteriv(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &bufferSize)); + if (m_Vertices.size() * sizeof(decltype(m_Vertices)::value_type) < bufferSize) { + GL_CHECK(glBufferSubData(GL_ARRAY_BUFFER, 0, m_Vertices.size() * sizeof(decltype(m_Vertices)::value_type), m_Vertices.data())); + } else { + GL_CHECK(glBufferData(GL_ARRAY_BUFFER, m_Vertices.size() * sizeof(decltype(m_Vertices)::value_type), m_Vertices.data(), GL_DYNAMIC_DRAW)); + } + + GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IndexBuffer)); + glGetBufferParameteriv(GL_ELEMENT_ARRAY_BUFFER, GL_BUFFER_SIZE, &bufferSize); + if (m_Indices.size() * sizeof(decltype(m_Indices)::value_type) < bufferSize) { + GL_CHECK(glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, m_Indices.size() * sizeof(decltype(m_Indices)::value_type), m_Indices.data())); + } else { + GL_CHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_Indices.size() * sizeof(decltype(m_Indices)::value_type), m_Indices.data(), GL_DYNAMIC_DRAW)); + } +} diff --git a/Source/Renderer/RenderBatch.h b/Source/Renderer/RenderBatch.h new file mode 100644 index 0000000000..a1b8094822 --- /dev/null +++ b/Source/Renderer/RenderBatch.h @@ -0,0 +1,81 @@ +#pragma once +#include "Shader.h" +#include "BlendMode.h" +#include "Constants.h" +#include "DrawCall.h" + +#include "glad/gl.h" +#include "glm/fwd.hpp" +#include +#include + +namespace RTE { + class Shader; + + struct VertexBuffer { + std::vector m_Vertices{}; + std::vector m_Indices{}; + GLuint m_VertexArray{0}; + GLuint m_VertexBuffer{0}; + GLuint m_IndexBuffer{0}; + int m_BufferElements{c_DefaultBatchVAOElements}; + ~VertexBuffer(); + VertexBuffer(); + VertexBuffer(int bufferSize); + VertexBuffer(VertexBuffer&& vertexBuffer) = default; + + void UpdateBuffers(); + + VertexBuffer& operator=(VertexBuffer&& rhs) = default; + + private: + void InitializeBuffers(); + VertexBuffer(const VertexBuffer&) = delete; + VertexBuffer& operator=(const VertexBuffer&) = delete; + }; + + /// Render batch based on raysan5's raylib + struct RenderBatch { + public: + constexpr static float c_DrawDepthIncrement = -(c_FarDepth - c_NearDepth) / 16777216.0f; + VertexBuffer m_VertexBuffers{}; + std::vector> m_DrawCalls{}; + std::vector> m_FreeDrawCalls{}; //!< Finished draw calls kept for reuse, so drawing doesn't allocate every frame. + float m_CurrentDepth{0.0f}; + float m_CurrentZ{0.0f}; + const Shader* m_CurrentShader{nullptr}; + std::vector> m_CurrentUniforms{}; + glm::mat4 m_CurrentView{1.0f}; + glm::mat4 m_CurrentProjection{1.0f}; + const Camera* m_CurrentCamera{nullptr}; + BlendMode m_CurrentBlendMode{Blend::ALPHA}; + + /// Constructor. + RenderBatch(); + + /// Resets DrawDepth, draw calls, vertices and indices and resets to default values. + void BeginFrame(); + + /// Collects draw calls, uploads vertices. TODO: split drawcalls by shader/alpha. + void EndFrame(); + + /// Draws current draw calls. + void Render(); + + /// Clears draw calls and vertex buffer. + void ClearDraws(); + + /// Collect draw calls, render and clear. + void Flush() { + EndFrame(); + Render(); + ClearDraws(); + } + + /// Moves the current draw calls to the free list for reuse. + void RecycleDrawCalls(); + + private: + void ApplyDrawCalls(); + }; +} // namespace RTE diff --git a/Source/Renderer/RenderMan.cpp b/Source/Renderer/RenderMan.cpp new file mode 100644 index 0000000000..e913ab1227 --- /dev/null +++ b/Source/Renderer/RenderMan.cpp @@ -0,0 +1,108 @@ +#include "RenderMan.h" +#include "Constants.h" +#include +#include "DrawCall.h" +#include "allegro.h" +#include "glad/gl.h" +#include "SDL3/SDL.h" + +#include "FrameMan.h" +#include "tracy/Tracy.hpp" + +using namespace RTE; + +void RenderMan::Initialize() { + std::unique_ptr shapesBitmap = std::unique_ptr(create_bitmap_ex(32, 1, 1)); + clear_to_color(shapesBitmap.get(), makeacol32(255, 255, 255, 255)); + m_ShapesTexture = std::make_unique(std::move(shapesBitmap)); + m_RenderBatch = std::make_unique(); + m_ActiveBatch = m_RenderBatch.get(); + m_DefaultShader = std::make_unique("Base.rte/Shaders/Blit8.vert", "Base.rte/Shaders/Blit8.frag"); + std::unique_ptr paletteBitmap = std::unique_ptr(create_bitmap_ex(32, 256, 1)); + SDL_Palette* palette = ContentFile::DefaultPaletteToSDL(true); + const PALETTE& pal = g_FrameMan.GetDefaultPalette(); + for (int i = 0; i < 256; ++i) { + SDL_Color color = palette->colors[i]; + _putpixel32(paletteBitmap.get(), i, 0, makeacol32(color.r, color.g, color.b, color.a)); + } + m_PaletteTexture = std::make_shared(std::move(paletteBitmap), Filter::Nearest, WrapType::ClampToEdge); + + // The palette's glow yellows (the colors the original dot glows keyed on: gold sparkle, tracers, hot bits) are emissive, so they glint in the dark. + // R = emissive strength, G = vegetation (green-dominant colors, which sway in the wind when they're part of the terrain). + std::array& emissivePalette = m_EmissivePalette; + emissivePalette.fill(0); + emissivePalette[g_YellowGlowColor * 4] = 255; + emissivePalette[98 * 4] = 255; + emissivePalette[120 * 4] = 200; + for (int i = 1; i < 256; ++i) { + SDL_Color color = palette->colors[i]; + int green = color.g; + int otherMax = std::max(color.r, color.b); + if (green > 50 && green > color.r * 1.1F && green > color.b * 1.2F && green - otherMax > 18) { + emissivePalette[i * 4 + 1] = 255; + } + } + glGenTextures(1, &m_EmissivePaletteTexture); + glBindTexture(GL_TEXTURE_2D, m_EmissivePaletteTexture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 256, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, emissivePalette.data()); + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +} + +void RenderMan::SetLiquidPaletteColor(int paletteIndex, int liquidKind, int emissive) { + if (paletteIndex <= 0 || paletteIndex > 255 || !m_EmissivePaletteTexture) { + return; + } + m_EmissivePalette[paletteIndex * 4 + 2] = static_cast(std::clamp(liquidKind, 0, 3) * 85); + m_EmissivePalette[paletteIndex * 4] = std::max(m_EmissivePalette[paletteIndex * 4], static_cast(std::clamp(emissive, 0, 255))); + // Liquids aren't vegetation, even if they're green. + m_EmissivePalette[paletteIndex * 4 + 1] = 0; + glBindTexture(GL_TEXTURE_2D, m_EmissivePaletteTexture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 256, 1, GL_RGBA, GL_UNSIGNED_BYTE, m_EmissivePalette.data()); + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + glBindTexture(GL_TEXTURE_2D, 0); +} + +void RenderMan::Destroy() { + if (m_EmissivePaletteTexture) { + glDeleteTextures(1, &m_EmissivePaletteTexture); + m_EmissivePaletteTexture = 0; + } +} + +std::shared_ptr RenderMan::BeginDraw() { + ZoneScoped; + std::shared_ptr drawCall; + if (!m_ActiveBatch->m_FreeDrawCalls.empty()) { + drawCall = std::move(m_ActiveBatch->m_FreeDrawCalls.back()); + m_ActiveBatch->m_FreeDrawCalls.pop_back(); + drawCall->Reset(static_cast(m_ActiveBatch->m_DrawCalls.size())); + } else { + drawCall.reset(new DrawCall(static_cast(m_ActiveBatch->m_DrawCalls.size()))); + } + m_ActiveBatch->m_DrawCalls.push_back(drawCall); + drawCall->m_Shader = m_ActiveBatch->m_CurrentShader; + drawCall->m_TextureId = m_ShapesTexture->GetTextureId(); + drawCall->m_BlendMode = m_ActiveBatch->m_CurrentBlendMode; + m_ActiveBatch->m_CurrentDepth += RenderBatch::c_DrawDepthIncrement; + return drawCall; +} + +void RenderMan::BeginFrame(const Camera* camera) { + ZoneScoped; + m_ActiveBatch->m_CurrentCamera = camera ? camera : &m_DefaultCamera; + m_ActiveBatch->m_CurrentShader = m_DefaultShader.get(); + m_ActiveBatch->m_CurrentBlendMode = Blend::ALPHA; + m_ActiveBatch->m_CurrentZ = c_DefaultDrawDepth; + m_ActiveBatch->BeginFrame(); +} + +void RenderMan::DrawActiveBatch() { + ZoneScoped; + m_ActiveBatch->Flush(); +} diff --git a/Source/Renderer/RenderMan.h b/Source/Renderer/RenderMan.h new file mode 100644 index 0000000000..cd568db918 --- /dev/null +++ b/Source/Renderer/RenderMan.h @@ -0,0 +1,112 @@ +#pragma once +#include "Singleton.h" +#include "RenderBatch.h" +#include "GLState.h" +#include "DrawCall.h" +#include "Texture.h" +#include +#include + +#define g_RenderMan RenderMan::Instance() + +namespace RTE { + class DrawCall; + class RenderMan: public Singleton { + public: + /// Constructor + RenderMan() = default; + /// Destructor + ~RenderMan() { Destroy(); } + + /// Initializes this RenderMan. + void Initialize(); + + /// Destroys this RenderMan. + void Destroy(); + + /// Returns the active RenderBatch. + /// @return The active RenderBatch. + RenderBatch* GetActiveBatch() { return m_ActiveBatch; } + void SetActiveBatch(RenderBatch* batch) { m_ActiveBatch = batch; } + void ResetActiveBatch() { m_ActiveBatch = m_RenderBatch.get(); } + + /// Returns the current RenderDepth to be set on new Vertices. + /// @return Depth value to use for the current draw call. + float GetCurrentDepth() const { return m_ActiveBatch->m_CurrentDepth; } + + /// Returns the current depth offset to be added to the current depth. + /// @return Depth offset to be added to the vertex or transform. + float GetCurrentZOffset() const { return m_ActiveBatch->m_CurrentZ; } + + /// Set the current depth offset, this can be used to change draw order without sorting. + /// @param depth The new offset. + void SetCurrentZOffset(float depth) { m_ActiveBatch->m_CurrentZ = depth; } + + /// Set the default shader for upcoming draw calls. + /// @param shader (non owning) pointer to the new shader. + void SetCurrentShader(const Shader* shader) { m_ActiveBatch->m_CurrentShader = shader; } + + const Shader* GetCurrentShader() { return m_ActiveBatch->m_CurrentShader ? m_ActiveBatch->m_CurrentShader : GetDefaultShader(); } + + void SetActiveBlendMode(BlendMode mode) { m_ActiveBatch->m_CurrentBlendMode = std::move(mode); } + + /// Add a uniform value to be set on upcoming draw calls. + /// @param uniform The unform value to enable. + void PushUniform(std::shared_ptr uniform) { m_ActiveBatch->m_CurrentUniforms.push_back(uniform); } + + /// Clears active uniforms. + void ClearUniforms() { m_ActiveBatch->m_CurrentUniforms.clear(); } + + /// Schedules a new draw call on the current batch, initialized with the current shader, uniforms and camera. + std::shared_ptr BeginDraw(); + + /// Returns the shape texture id (1x1 white pixel texture). + /// @return GL texture object. + GLuint GetShapeTexture() { return m_ShapesTexture->GetTextureId(); } + + /// Returns the texture id for the default palette. TODO: allow palette swapping. + GLuint GetPaletteTexture() { return m_PaletteTexture->GetTextureId(); } + + /// Returns the texture marking which palette colors glow (256x1, R = emissive strength), so indexed art can be emissive without new assets. + GLuint GetEmissivePaletteTexture() const { return m_EmissivePaletteTexture; } + + /// Marks a palette color as a liquid (for the terrain shader's water, lava and acid looks) and optionally as emissive. + /// @param paletteIndex The palette color. + /// @param liquidKind 0 none, 1 water, 2 lava, 3 acid. + /// @param emissive How strongly the color glows, 0 to 255. + void SetLiquidPaletteColor(int paletteIndex, int liquidKind, int emissive); + + /// Sets a texture that's bound for every batch render, for shaders that sample world space maps. Units 3 to 5. + void SetGlobalTexture(int unit, GLuint texture) { + if (unit >= 3 && unit < 3 + static_cast(m_GlobalTextures.size())) { + m_GlobalTextures[unit - 3] = texture; + } + } + + /// Gets the textures to bind to units 3 and up for every batch render. + const std::array& GetGlobalTextures() const { return m_GlobalTextures; } + + /// Returns the default shader. + const Shader* GetDefaultShader() { return m_DefaultShader.get(); } + + /// Returns the camera the was set at BeginFrame. + const Camera* GetActiveCamera() { return m_ActiveBatch->m_CurrentCamera; } + + /// Begin a set of draws with camera. Clears batched draw calls. + void BeginFrame(const Camera* camera = nullptr); + + /// Draws current draw calls to the active target and clears the batch for new draws. + void DrawActiveBatch(); + private: + RenderBatch* m_ActiveBatch; + std::unique_ptr m_RenderBatch{nullptr}; + std::unique_ptr m_GLState{nullptr}; + std::shared_ptr m_ShapesTexture{nullptr}; + std::shared_ptr m_PaletteTexture{nullptr}; + GLuint m_EmissivePaletteTexture{0}; + std::array m_EmissivePalette{}; //!< RGBA per palette color: R emissive, G vegetation, B liquid kind. + std::array m_GlobalTextures{}; + std::shared_ptr m_DefaultShader{nullptr}; + Camera m_DefaultCamera{{-1.0f, -1.0f}, {{0.0f, 0.0f}, {2.0f, 2.0f}}}; + }; +} diff --git a/Source/Renderer/RenderTarget.cpp b/Source/Renderer/RenderTarget.cpp index eafc09d82b..391ea847b1 100644 --- a/Source/Renderer/RenderTarget.cpp +++ b/Source/Renderer/RenderTarget.cpp @@ -2,88 +2,88 @@ #include "RTEError.h" #include "glad/gl.h" #include "GLCheck.h" -#include "raylib/rlgl.h" #include "WindowMan.h" +#include "RenderMan.h" #include "Constants.h" +#include "Texture.h" #include "glm/glm.hpp" #include "glm/gtc/matrix_transform.hpp" using namespace RTE; -RenderTarget::RenderTarget(const FloatRect& size, const FloatRect& defaultViewport, int bitDepth, Texture2D colorTexture, bool defaultFB0) { +RenderTarget::RenderTarget(const FloatRect& size, const FloatRect& defaultViewport, int bitDepth, std::shared_ptr colorTexture, bool defaultFB0) { m_Size = size; m_Viewport = defaultViewport; if (!defaultFB0) { - if (colorTexture.id != 0) { - m_Texture = std::move(colorTexture); - m_ColorTextureOwned = false; + if (colorTexture) { + m_Texture = colorTexture; } else { - m_Texture = { - .id = rlLoadTexture(nullptr, size.w, size.h, bitDepth == 8 ? PIXELFORMAT_UNCOMPRESSED_GRAYSCALE : PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1), - .width = static_cast(size.w), - .height = static_cast(size.h), - .mipmaps = 0, - .format = bitDepth == 8 ? PIXELFORMAT_UNCOMPRESSED_GRAYSCALE : PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, - }; + m_Texture = std::make_shared(size, Filter::Linear, WrapType::ClampToEdge, bitDepth); } - m_Depth = { - .id = rlLoadTextureDepth(size.w, size.h, false), - .width = static_cast(size.w), - .height = static_cast(size.h), - .mipmaps = 0, - .format = GL_DEPTH_COMPONENT, - }; - m_FBO = rlLoadFramebuffer(); - rlEnableFramebuffer(m_FBO); - rlFramebufferAttach(m_FBO, m_Texture.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0); - rlFramebufferAttach(m_FBO, m_Depth.id, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_TEXTURE2D, 0); - rlDisableFramebuffer(); + m_Depth = std::make_shared(size); + glGenFramebuffers(1, &m_FBO); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_Texture->GetTextureId(), 0); + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, m_Depth->GetTextureId(), 0); + + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); } else { - m_ColorTextureOwned = false; - m_Depth.id = 0; - m_Texture.id = 0; + m_Depth = nullptr; + m_Texture = nullptr; + } +} + +RenderTarget::RenderTarget(bool defaultFB0) { + if (!defaultFB0) { + glGenFramebuffers(1, &m_FBO); } } RenderTarget::~RenderTarget() { if (m_FBO) { - rlUnloadFramebuffer(m_FBO); + glDeleteFramebuffers(1, &m_FBO); } - if (m_ColorTextureOwned) { - rlUnloadTexture(m_Texture.id); - } - rlUnloadTexture(m_Depth.id); } -void RenderTarget::Begin(bool clear, float zoom) { - rlDrawRenderBatchActive(); - rlResetDrawDepth(); - rlEnableFramebuffer(m_FBO); - - glViewport(m_Viewport.x, m_Viewport.y, m_Viewport.w, m_Viewport.h); +void RenderTarget::Begin(bool clear, bool drawBatch) { - rlSetFramebufferWidth(m_Size.w); - rlSetFramebufferHeight(m_Size.h); + if (drawBatch) { + g_RenderMan.DrawActiveBatch(); + } + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); - rlMatrixMode(RL_PROJECTION); - rlLoadIdentity(); - rlOrtho(0.0f, m_Size.w, m_Size.h, 0.0f, c_NearDepth, c_FarDepth); - rlMatrixMode(RL_MODELVIEW); - rlLoadIdentity(); - rlTranslatef(m_Size.w / 2, m_Size.h / 2, 0.0f); - rlScalef(zoom, zoom, 1.0f); - rlTranslatef(-m_Size.w / 2, -m_Size.h / 2, 0.0f); + glViewport(m_Viewport.x, m_Viewport.y, m_Viewport.w, m_Viewport.h); if (clear) { - rlClearScreenBuffers(); + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); + } +} + +void RenderTarget::End(bool drawBatch) { + if (drawBatch) { + g_RenderMan.DrawActiveBatch(); } + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); } -void RenderTarget::End() { - rlDrawRenderBatchActive(); +void RenderTarget::EnableNormalAttachment() { + if (m_Normal || !m_FBO) { + return; + } + m_Normal = std::make_shared(m_Size, Filter::Nearest, WrapType::ClampToEdge, 32); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); + glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, GL_TEXTURE_2D, m_Normal->GetTextureId(), 0); + // Draw buffer state belongs to the framebuffer, so this sticks. Shaders that don't write location 1 leave it undefined, which is fine after the lighting has read it. + const GLenum drawBuffers[2] = {GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1}; + glDrawBuffers(2, drawBuffers); + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); +} - rlDisableFramebuffer(); - glViewport(0, 0, g_WindowMan.GetResX(), g_WindowMan.GetResY()); - rlResetDrawDepth(); +void RenderTarget::Bind() { + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_FBO); } diff --git a/Source/Renderer/RenderTarget.h b/Source/Renderer/RenderTarget.h index 19c66001b0..3e2c87a3ce 100644 --- a/Source/Renderer/RenderTarget.h +++ b/Source/Renderer/RenderTarget.h @@ -1,11 +1,11 @@ #pragma once -#include -#include #include "Rectangles.h" #include "glad/gl.h" #include "raylib/raylib.h" namespace RTE { class Shader; + class Texture; + class DepthTexture; class RenderTarget { public: @@ -15,24 +15,35 @@ namespace RTE { /// @param bitDepth The color depth of this target, either 8 or 32 (default 32) /// @param colorTexture Optional color texture, if specified, bitDepth will be ignored. /// @param defaultFB0 Make this target for the window backbuffer. - RenderTarget(const FloatRect& size, const FloatRect& defaultViewport, int bitDepth = 32, Texture2D colorTexture = {0, 0, 0, 0, -1}, bool defaultFB0 = false); + RenderTarget(const FloatRect& size, const FloatRect& defaultViewport, int bitDepth = 32, std::shared_ptr colorTexture = nullptr, bool defaultFB0 = false); + + + RenderTarget(bool defaultFB0); /// Destructor. virtual ~RenderTarget(); - + /// Enables this RenderTarget for drawing and sets up projection matrix. Draws current batch, resets draw depth and model matrix. /// @param clear Whether to clear the target. - void Begin(bool clear = true, float zoom = 1.0f); - + void Begin(bool clear = true, bool drawBatch = true); + /// Disables this RenderTarget and flushes the active batch. - void End(); + void End(bool drawBatch = true); + + void Bind(); /// @brief Getter for the FBO /// @return The FBO. GLuint GetFramebuffer() { return m_FBO; } /// Getter for the color buffer - const Texture2D& GetColorTexture() { return m_Texture; } + std::weak_ptr GetColorTexture() { return m_Texture; } /// Getter for the depth buffer. - const Texture2D& GetDepthTexture() { return m_Depth; } + std::weak_ptr GetDepthTexture() { return m_Depth; } + + /// Adds a second color attachment that shaders write screen space normals to (location 1), for the lighting. + void EnableNormalAttachment(); + + /// Getter for the normal buffer, if enabled. RGB = normal * 0.5 + 0.5, A = 1 where something was drawn. + std::weak_ptr GetNormalTexture() { return m_Normal; } /// Getter for the size of this target. const FloatRect& GetSize() { return m_Size; } @@ -43,8 +54,8 @@ namespace RTE { GLuint m_FBO{0}; private: - Texture2D m_Texture{}; - Texture2D m_Depth{}; - bool m_ColorTextureOwned{true}; + std::shared_ptr m_Texture{nullptr}; + std::shared_ptr m_Depth{nullptr}; + std::shared_ptr m_Normal{nullptr}; }; } // namespace RTE diff --git a/Source/Renderer/SceneLighting.cpp b/Source/Renderer/SceneLighting.cpp new file mode 100644 index 0000000000..adc153764d --- /dev/null +++ b/Source/Renderer/SceneLighting.cpp @@ -0,0 +1,1437 @@ +#include "SceneLighting.h" +#include "EffectsParticles.h" +#include "TerrainFire.h" + +#include "PostProcessMan.h" +#include "SceneMan.h" +#include "SLTerrain.h" +#include "RenderTarget.h" +#include "Shader.h" +#include "Texture.h" +#include "GLCheck.h" +#include "Constants.h" +#include "TimerMan.h" +#include "RenderMan.h" +#include + +#include "allegro.h" +#include "tracy/Tracy.hpp" +#include "tracy/TracyOpenGL.hpp" + +#include +#include +#include + +using namespace RTE; + +namespace { + /// Terrain material indices that light passes through. + bool IsOpenMaterial(unsigned char material) { return material == MaterialColorKeys::g_MaterialAir || material == MaterialColorKeys::g_MaterialCavity; } + + glm::vec3 ToLinear(float r, float g, float b) { return glm::vec3(std::pow(r / 255.0F, 2.2F), std::pow(g / 255.0F, 2.2F), std::pow(b / 255.0F, 2.2F)); } +} // namespace + +#pragma region GLTarget + +void SceneLighting::GLTarget::Create(int width, int height, GLenum internalFormat, GLenum format, GLenum type, GLint filter, GLint wrapS, GLint wrapT, bool withFramebuffer) { + Destroy(); + Width = width; + Height = height; + glGenTextures(1, &Texture); + glBindTexture(GL_TEXTURE_2D, Texture); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, width, height, 0, format, type, nullptr)); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapS); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapT); + if (withFramebuffer) { + glGenFramebuffers(1, &Framebuffer); + glBindFramebuffer(GL_FRAMEBUFFER, Framebuffer); + GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, Texture, 0)); + glClearColor(0.0F, 0.0F, 0.0F, 0.0F); + glClear(GL_COLOR_BUFFER_BIT); + glBindFramebuffer(GL_FRAMEBUFFER, 0); + } +} + +void SceneLighting::GLTarget::Destroy() { + if (Framebuffer) { + glDeleteFramebuffers(1, &Framebuffer); + Framebuffer = 0; + } + if (Texture) { + glDeleteTextures(1, &Texture); + Texture = 0; + } + Width = 0; + Height = 0; +} + +#pragma endregion + +#pragma region Creation and Destruction + +SceneLighting::SceneLighting(LightingSettings& settings) : + m_Settings(settings) { + LoadShaders(); + CreateGeometry(); +} + +SceneLighting::~SceneLighting() { + DestroyWorldResources(); + DestroyScreenResources(); + if (m_FullscreenVAO) { + glDeleteVertexArrays(1, &m_FullscreenVAO); + glDeleteBuffers(1, &m_FullscreenVBO); + } + if (m_EmptyVAO) { + glDeleteVertexArrays(1, &m_EmptyVAO); + } + if (m_QuadVAO) { + glDeleteVertexArrays(1, &m_QuadVAO); + glDeleteBuffers(1, &m_QuadVBO); + glDeleteBuffers(1, &m_QuadIBO); + } +} + +void SceneLighting::LoadShaders() { + const std::string fullscreenVertex = "Base.rte/Shaders/Lighting/Fullscreen.vert"; + m_PropagateShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/LightPropagate.frag"); + m_PointLightShader = std::make_unique("Base.rte/Shaders/Lighting/PointLight.vert", "Base.rte/Shaders/Lighting/PointLight.frag"); + m_CompositeShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/LightComposite.frag"); + m_EmissiveShader = std::make_unique("Base.rte/Shaders/Lighting/Emissive.vert", "Base.rte/Shaders/Lighting/Emissive.frag"); + m_BloomDownsampleShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/BloomDownsample.frag"); + m_BloomUpsampleShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/BloomUpsample.frag"); + m_TonemapShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/Tonemap.frag"); + m_LuminanceShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/Luminance.frag"); + m_RCSceneShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/RCScene.frag"); + m_LitParticleShader = std::make_unique("Base.rte/Shaders/Lighting/Emissive.vert", "Base.rte/Shaders/Lighting/LitParticle.frag"); + m_SmokeScatterShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/SmokeScatter.frag"); + m_RCCascadeShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/RCCascade.frag"); + m_RCIrradianceShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/RCIrradiance.frag"); + m_ExposureAdaptShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/ExposureAdapt.frag"); + m_ShockwaveShader = std::make_unique("Base.rte/Shaders/Lighting/PointLight.vert", "Base.rte/Shaders/Lighting/Shockwave.frag"); + m_PrecipitationShader = std::make_unique("Base.rte/Shaders/Lighting/Precipitation.vert", "Base.rte/Shaders/Lighting/Precipitation.frag"); + m_GodRaysShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/GodRays.frag"); + m_GodRaysApplyShader = std::make_unique(fullscreenVertex, "Base.rte/Shaders/Lighting/GodRaysApply.frag"); + m_ScorchShader = std::make_unique("Base.rte/Shaders/Lighting/PointLight.vert", "Base.rte/Shaders/Lighting/Scorch.frag"); + m_StainShader = std::make_unique("Base.rte/Shaders/Lighting/PointLight.vert", "Base.rte/Shaders/Lighting/Stain.frag"); + m_TerrainShader = std::make_unique("Base.rte/Shaders/TerrainLayer.vert", "Base.rte/Shaders/Terrain.frag"); +} + +void SceneLighting::CreateGeometry() { + const float fullscreen[] = { + -1.0F, -1.0F, 0.0F, 0.0F, 0.0F, + 1.0F, -1.0F, 0.0F, 1.0F, 0.0F, + -1.0F, 1.0F, 0.0F, 0.0F, 1.0F, + 1.0F, 1.0F, 0.0F, 1.0F, 1.0F}; + glGenVertexArrays(1, &m_FullscreenVAO); + glGenBuffers(1, &m_FullscreenVBO); + glBindVertexArray(m_FullscreenVAO); + glBindBuffer(GL_ARRAY_BUFFER, m_FullscreenVBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(fullscreen), fullscreen, GL_STATIC_DRAW); + glEnableVertexAttribArray(VertexAttribLocation::VERTEX); + glVertexAttribPointer(VertexAttribLocation::VERTEX, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), nullptr); + glEnableVertexAttribArray(VertexAttribLocation::TEXTURECOORDINATE); + glVertexAttribPointer(VertexAttribLocation::TEXTURECOORDINATE, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), reinterpret_cast(3 * sizeof(float))); + + glGenVertexArrays(1, &m_EmptyVAO); + + glGenVertexArrays(1, &m_QuadVAO); + glGenBuffers(1, &m_QuadVBO); + glGenBuffers(1, &m_QuadIBO); + glBindVertexArray(m_QuadVAO); + glBindBuffer(GL_ARRAY_BUFFER, m_QuadVBO); + glEnableVertexAttribArray(VertexAttribLocation::VERTEX); + glVertexAttribPointer(VertexAttribLocation::VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(QuadVertex), reinterpret_cast(offsetof(QuadVertex, X))); + glEnableVertexAttribArray(VertexAttribLocation::TEXTURECOORDINATE); + glVertexAttribPointer(VertexAttribLocation::TEXTURECOORDINATE, 2, GL_FLOAT, GL_FALSE, sizeof(QuadVertex), reinterpret_cast(offsetof(QuadVertex, U))); + glEnableVertexAttribArray(VertexAttribLocation::COLOR); + glVertexAttribPointer(VertexAttribLocation::COLOR, 4, GL_FLOAT, GL_FALSE, sizeof(QuadVertex), reinterpret_cast(offsetof(QuadVertex, R))); + glEnableVertexAttribArray(VertexAttribLocation::NORMAL); + glVertexAttribPointer(VertexAttribLocation::NORMAL, 3, GL_FLOAT, GL_FALSE, sizeof(QuadVertex), reinterpret_cast(offsetof(QuadVertex, CenterX))); + glEnableVertexAttribArray(VertexAttribLocation::LIGHTCONE); + glVertexAttribPointer(VertexAttribLocation::LIGHTCONE, 3, GL_FLOAT, GL_FALSE, sizeof(QuadVertex), reinterpret_cast(offsetof(QuadVertex, ConeX))); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_QuadIBO); + glBindVertexArray(0); +} + +bool SceneLighting::EnsureWorldResources() { + const Scene* scene = g_SceneMan.GetScene(); + SLTerrain* terrain = scene ? g_SceneMan.GetTerrain() : nullptr; + BITMAP* materialBitmap = terrain ? terrain->GetMaterialBitmap() : nullptr; + if (!materialBitmap) { + return false; + } + if (scene == m_WorldScene && materialBitmap == m_WorldMaterialBitmap && materialBitmap->w == m_SceneWidth && materialBitmap->h == m_SceneHeight) { + return true; + } + ZoneScopedN("Build World Light Grid"); + + DestroyWorldResources(); + m_WorldScene = scene; + m_WorldMaterialBitmap = materialBitmap; + m_SceneWidth = materialBitmap->w; + m_SceneHeight = materialBitmap->h; + m_WrapX = g_SceneMan.SceneWrapsX(); + m_WrapY = g_SceneMan.SceneWrapsY(); + // Keep the grid a manageable size on huge scenes. + m_CellSize = (static_cast(m_SceneWidth) * m_SceneHeight > 32'000'000LL) ? 8 : 4; + m_GridWidth = (m_SceneWidth + m_CellSize - 1) / m_CellSize; + m_GridHeight = (m_SceneHeight + m_CellSize - 1) / m_CellSize; + + m_Occupancy.assign(static_cast(m_GridWidth) * m_GridHeight, 0); + m_Skyline.assign(m_GridWidth, 0.0F); + + GLint wrapS = m_WrapX ? GL_REPEAT : GL_CLAMP_TO_EDGE; + GLint wrapT = m_WrapY ? GL_REPEAT : GL_CLAMP_TO_EDGE; + m_OccupancyTexture.Create(m_GridWidth, m_GridHeight, GL_R8, GL_RED, GL_UNSIGNED_BYTE, GL_LINEAR, wrapS, wrapT, false); + m_SkylineTexture.Create(m_GridWidth, 1, GL_R32F, GL_RED, GL_FLOAT, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, false); + for (GLTarget& skyLight: m_SkyLight) { + skyLight.Create(m_GridWidth, m_GridHeight, GL_R16F, GL_RED, GL_FLOAT, GL_LINEAR, wrapS, wrapT, true); + } + m_CurrentSkyLight = 0; + + m_ScorchCellSize = (static_cast(m_SceneWidth) * m_SceneHeight > 32'000'000LL) ? 4 : 2; + m_Scorch.Create((m_SceneWidth + m_ScorchCellSize - 1) / m_ScorchCellSize, (m_SceneHeight + m_ScorchCellSize - 1) / m_ScorchCellSize, GL_R8, GL_RED, GL_UNSIGNED_BYTE, GL_LINEAR, wrapS, wrapT, true); + m_Stains.Create(m_Scorch.Width, m_Scorch.Height, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, GL_LINEAR, wrapS, wrapT, true); + g_PostProcessMan.TakePendingScorchMarks(); + + RefreshOccupancyRows(0, m_GridHeight); + UploadOccupancyRows(0, m_GridHeight); + RecomputeSkyline(); + m_NextRefreshRow = 0; + + // Start with the light already settled instead of it visibly flowing in at scene start. + PropagateSkyLight(std::max(m_GridWidth, m_GridHeight) / 2); + return true; +} + +void SceneLighting::DestroyWorldResources() { + m_OccupancyTexture.Destroy(); + m_SkylineTexture.Destroy(); + m_SkyLight[0].Destroy(); + m_SkyLight[1].Destroy(); + m_Scorch.Destroy(); + m_Stains.Destroy(); + m_WorldScene = nullptr; + m_WorldMaterialBitmap = nullptr; + m_SceneWidth = 0; + m_SceneHeight = 0; +} + +void SceneLighting::EnsureScreenResources(int width, int height) { + if (width == m_ScreenWidth && height == m_ScreenHeight && m_HDRScene.Texture) { + return; + } + DestroyScreenResources(); + m_ScreenWidth = width; + m_ScreenHeight = height; + m_DynamicLight.Create(width, height, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_Emissive.Create(width, height, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_Distortion.Create(width, height, GL_RG16F, GL_RG, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_GodRays.Create(std::max(1, width / 2), std::max(1, height / 2), GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + int indirectWidth = width; + int indirectHeight = height; + for (GLTarget& mip: m_IndirectMips) { + indirectWidth = std::max(1, indirectWidth / 2); + indirectHeight = std::max(1, indirectHeight / 2); + mip.Create(indirectWidth, indirectHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + } + for (int screen = 0; screen < c_MaxScreens; ++screen) { + m_IndirectHistory[screen].Create(indirectWidth, indirectHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_IndirectHistoryValid[screen] = false; + } + m_HDRScene.Create(width, height, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + int mipWidth = width; + int mipHeight = height; + for (GLTarget& mip: m_BloomMips) { + mipWidth = std::max(1, mipWidth / 2); + mipHeight = std::max(1, mipHeight / 2); + mip.Create(mipWidth, mipHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + } + int rcWidth = std::max(4, width / 2); + int rcHeight = std::max(4, height / 2); + m_RCScene.Create(rcWidth, rcHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_SmokeDensity.Create(rcWidth, rcHeight, GL_R16F, GL_RED, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + for (GLTarget& cascade: m_RCCascades) { + cascade.Create(rcWidth, rcHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + } + m_RCIrradiance.Create(rcWidth / 2, rcHeight / 2, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + for (int screen = 0; screen < c_MaxScreens; ++screen) { + m_RCPreviousLit[screen].Create(rcWidth, rcHeight, GL_RGBA16F, GL_RGBA, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + m_RCPreviousValid[screen] = false; + } + // 64x32 log luminance; its mip chain down to 1x1 is the average. + m_Luminance.Create(64, 32, GL_R16F, GL_RED, GL_FLOAT, GL_LINEAR, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + glBindTexture(GL_TEXTURE_2D, m_Luminance.Texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); + glGenerateMipmap(GL_TEXTURE_2D); + m_LuminanceMaxLod = 6; + for (int screen = 0; screen < c_MaxScreens; ++screen) { + for (GLTarget& adapted: m_AdaptedLuminance[screen]) { + adapted.Create(1, 1, GL_R32F, GL_RED, GL_FLOAT, GL_NEAREST, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, true); + } + m_AdaptedLuminanceValid[screen] = false; + } +} + +void SceneLighting::DestroyScreenResources() { + m_DynamicLight.Destroy(); + m_Emissive.Destroy(); + m_Distortion.Destroy(); + m_GodRays.Destroy(); + for (GLTarget& mip: m_IndirectMips) { + mip.Destroy(); + } + for (int screen = 0; screen < c_MaxScreens; ++screen) { + m_IndirectHistory[screen].Destroy(); + m_IndirectHistoryValid[screen] = false; + } + m_HDRScene.Destroy(); + for (GLTarget& mip: m_BloomMips) { + mip.Destroy(); + } + m_Luminance.Destroy(); + m_RCScene.Destroy(); + m_SmokeDensity.Destroy(); + for (GLTarget& cascade: m_RCCascades) { + cascade.Destroy(); + } + m_RCIrradiance.Destroy(); + for (int screen = 0; screen < c_MaxScreens; ++screen) { + m_RCPreviousLit[screen].Destroy(); + m_RCPreviousValid[screen] = false; + } + for (int screen = 0; screen < c_MaxScreens; ++screen) { + for (GLTarget& adapted: m_AdaptedLuminance[screen]) { + adapted.Destroy(); + } + m_AdaptedLuminanceValid[screen] = false; + } + m_ScreenWidth = 0; + m_ScreenHeight = 0; +} + +#pragma endregion + +#pragma region World Grid + +void SceneLighting::RefreshOccupancyRows(int firstRow, int endRow) { + ZoneScoped; + const BITMAP* materialBitmap = static_cast(m_WorldMaterialBitmap); + // Sample a 2x2 pattern inside each cell rather than every pixel, which is plenty to tell air, surfaces and solid apart. + const int sampleNear = m_CellSize / 4; + const int sampleFar = (m_CellSize * 3) / 4; + for (int row = firstRow; row < endRow; ++row) { + int y0 = std::min(row * m_CellSize + sampleNear, m_SceneHeight - 1); + int y1 = std::min(row * m_CellSize + sampleFar, m_SceneHeight - 1); + const unsigned char* line0 = materialBitmap->line[y0]; + const unsigned char* line1 = materialBitmap->line[y1]; + unsigned char* occupancyRow = &m_Occupancy[static_cast(row) * m_GridWidth]; + for (int column = 0; column < m_GridWidth; ++column) { + int x0 = std::min(column * m_CellSize + sampleNear, m_SceneWidth - 1); + int x1 = std::min(column * m_CellSize + sampleFar, m_SceneWidth - 1); + int solidSamples = !IsOpenMaterial(line0[x0]) + !IsOpenMaterial(line0[x1]) + !IsOpenMaterial(line1[x0]) + !IsOpenMaterial(line1[x1]); + occupancyRow[column] = static_cast((solidSamples * 255) / 4); + } + } +} + +void SceneLighting::RecomputeSkyline() { + ZoneScoped; + for (int column = 0; column < m_GridWidth; ++column) { + int row = 0; + while (row < m_GridHeight && m_Occupancy[static_cast(row) * m_GridWidth + column] < 128) { + ++row; + } + m_Skyline[column] = static_cast(row) / static_cast(m_GridHeight); + } + glBindTexture(GL_TEXTURE_2D, m_SkylineTexture.Texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_GridWidth, 1, GL_RED, GL_FLOAT, m_Skyline.data())); +} + +void SceneLighting::UploadOccupancyRows(int firstRow, int endRow) { + if (endRow <= firstRow) { + return; + } + glBindTexture(GL_TEXTURE_2D, m_OccupancyTexture.Texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, 0, firstRow, m_GridWidth, endRow - firstRow, GL_RED, GL_UNSIGNED_BYTE, &m_Occupancy[static_cast(firstRow) * m_GridWidth])); + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); +} + +void SceneLighting::PropagateSkyLight(int iterations) { + ZoneScoped; + TracyGpuZone("Sky Light Propagation"); + glDisable(GL_BLEND); + glDisable(GL_DEPTH_TEST); + glDisable(GL_SCISSOR_TEST); + glViewport(0, 0, m_GridWidth, m_GridHeight); + m_PropagateShader->Enable(); + m_PropagateShader->SetInt("rteLight", 0); + m_PropagateShader->SetInt("rteOccupancy", 1); + m_PropagateShader->SetInt("rteSkyline", 2); + m_PropagateShader->SetVector2f("rteGridSize", glm::vec2(m_GridWidth, m_GridHeight)); + m_PropagateShader->SetBool("rteWrapX", m_WrapX); + m_PropagateShader->SetBool("rteWrapY", m_WrapY); + m_PropagateShader->SetFloat("rteAirFalloff", m_Settings.AirFalloff); + m_PropagateShader->SetFloat("rteSolidFalloff", m_Settings.SolidFalloff); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_OccupancyTexture.Texture); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_SkylineTexture.Texture); + for (int i = 0; i < iterations; ++i) { + const GLTarget& source = m_SkyLight[m_CurrentSkyLight]; + const GLTarget& destination = m_SkyLight[1 - m_CurrentSkyLight]; + glBindFramebuffer(GL_FRAMEBUFFER, destination.Framebuffer); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, source.Texture); + DrawFullscreen(); + m_CurrentSkyLight = 1 - m_CurrentSkyLight; + } + glActiveTexture(GL_TEXTURE0); +} + +glm::vec3 SceneLighting::GetDaylightTint(float hours) { + struct Keyframe { + float Hours; + glm::vec3 Tint; + }; + static const Keyframe keyframes[] = { + {0.0F, {0.06F, 0.08F, 0.17F}}, + {4.5F, {0.06F, 0.08F, 0.17F}}, + {5.5F, {0.30F, 0.22F, 0.30F}}, + {6.5F, {0.95F, 0.55F, 0.35F}}, + {8.0F, {1.0F, 0.92F, 0.82F}}, + {12.0F, {1.0F, 1.0F, 1.0F}}, + {16.0F, {1.0F, 0.95F, 0.85F}}, + {18.0F, {1.0F, 0.62F, 0.38F}}, + {19.0F, {0.55F, 0.32F, 0.42F}}, + {20.0F, {0.10F, 0.11F, 0.22F}}, + {24.0F, {0.06F, 0.08F, 0.17F}}}; + hours = std::fmod(std::fmod(hours, 24.0F) + 24.0F, 24.0F); + for (size_t i = 1; i < std::size(keyframes); ++i) { + if (hours <= keyframes[i].Hours) { + float t = (hours - keyframes[i - 1].Hours) / (keyframes[i].Hours - keyframes[i - 1].Hours); + // Smooth the transitions between keyframes. + t = t * t * (3.0F - 2.0F * t); + return glm::mix(keyframes[i - 1].Tint, keyframes[i].Tint, t); + } + } + return keyframes[0].Tint; +} + +void SceneLighting::ReadAutoExposure(float& averageLuminance, float& autoExposure) const { + averageLuminance = 0.0F; + autoExposure = 1.0F; + if (!m_AdaptedLuminanceValid[0] || !m_AdaptedLuminance[0][0].Texture) { + return; + } + float logLuminance = 0.0F; + glBindTexture(GL_TEXTURE_2D, m_AdaptedLuminance[0][m_AdaptedLuminanceCurrent[0]].Texture); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RED, GL_FLOAT, &logLuminance); + glBindTexture(GL_TEXTURE_2D, 0); + averageLuminance = std::exp(logLuminance); + // Same as Tonemap.frag. + float target = std::clamp(averageLuminance, m_Settings.AutoExposureLow, m_Settings.AutoExposureHigh); + autoExposure = std::clamp(std::pow(target / std::max(averageLuminance, 0.0001F), m_Settings.AutoExposure), 0.5F, 2.0F); +} + +void SceneLighting::StampScorchMarks() { + std::vector marks = g_PostProcessMan.TakePendingScorchMarks(); + if (marks.empty() || !m_Scorch.Framebuffer) { + return; + } + ZoneScoped; + TracyGpuZone("Scorch Marks"); + m_QuadVertices.clear(); + float cell = static_cast(m_ScorchCellSize); + auto addMark = [this, cell](glm::vec2 center, float radius, float darkness) { + const glm::vec2 corners[4] = {{-1.0F, -1.0F}, {1.0F, -1.0F}, {1.0F, 1.0F}, {-1.0F, 1.0F}}; + for (const glm::vec2& corner: corners) { + glm::vec2 position = center + corner * radius; + m_QuadVertices.push_back({position.x, position.y, 0.0F, corner.x, corner.y, darkness, 0.0F, 0.0F, 1.0F, center.x * cell, center.y * cell, radius, 1.0F, 0.0F, -2.0F}); + } + }; + for (const PostProcessMan::ScorchMark& mark: marks) { + glm::vec2 center(mark.m_Pos.m_X / cell, mark.m_Pos.m_Y / cell); + float radius = mark.m_Radius / cell; + addMark(center, radius, mark.m_Darkness); + // Wrapped copies so marks across the seam of wrapping scenes show on both sides. + if (m_WrapX) { + addMark(center + glm::vec2(static_cast(m_Scorch.Width), 0.0F), radius, mark.m_Darkness); + addMark(center - glm::vec2(static_cast(m_Scorch.Width), 0.0F), radius, mark.m_Darkness); + } + } + UploadQuads(); + glBindFramebuffer(GL_FRAMEBUFFER, m_Scorch.Framebuffer); + glViewport(0, 0, m_Scorch.Width, m_Scorch.Height); + glDisable(GL_DEPTH_TEST); + glDisable(GL_SCISSOR_TEST); + glEnable(GL_BLEND); + // Max, so repeated explosions don't pile up into flat black. + glBlendEquation(GL_MAX); + glBlendFunc(GL_ONE, GL_ONE); + m_ScorchShader->Enable(); + m_ScorchShader->SetVector2f("rteScreenSize", glm::vec2(m_Scorch.Width, m_Scorch.Height)); + DrawQuads(0, m_QuadVertices.size() / 4); + glBlendEquation(GL_FUNC_ADD); + glDisable(GL_BLEND); + glBindVertexArray(0); +} + +void SceneLighting::StampStains() { + std::vector stains = EffectsParticles::TakeStains(); + if (stains.empty() || !m_Stains.Framebuffer || !m_Settings.Stains) { + return; + } + ZoneScoped; + TracyGpuZone("Stains"); + m_QuadVertices.clear(); + float cell = static_cast(m_ScorchCellSize); + auto addSplat = [this, cell](glm::vec2 center, float radius, const glm::vec3& color) { + const glm::vec2 corners[4] = {{-1.0F, -1.0F}, {1.0F, -1.0F}, {1.0F, 1.0F}, {-1.0F, 1.0F}}; + for (const glm::vec2& corner: corners) { + glm::vec2 position = center + corner * radius; + m_QuadVertices.push_back({position.x, position.y, 0.0F, corner.x, corner.y, color.r, color.g, color.b, 0.55F, center.x * cell, center.y * cell, radius, 1.0F, 0.0F, -2.0F}); + } + }; + for (const EffectsParticles::Stain& stain: stains) { + glm::vec2 center = stain.Position / cell; + float radius = std::max(1.0F, stain.Radius / cell); + addSplat(center, radius, stain.Color); + if (m_WrapX) { + addSplat(center + glm::vec2(static_cast(m_Stains.Width), 0.0F), radius, stain.Color); + addSplat(center - glm::vec2(static_cast(m_Stains.Width), 0.0F), radius, stain.Color); + } + } + UploadQuads(); + glBindFramebuffer(GL_FRAMEBUFFER, m_Stains.Framebuffer); + glViewport(0, 0, m_Stains.Width, m_Stains.Height); + glDisable(GL_DEPTH_TEST); + glDisable(GL_SCISSOR_TEST); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + // New stains cover old ones; coverage builds up towards fully stained. + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + m_StainShader->Enable(); + m_StainShader->SetVector2f("rteScreenSize", glm::vec2(m_Stains.Width, m_Stains.Height)); + DrawQuads(0, m_QuadVertices.size() / 4); + glDisable(GL_BLEND); + glBindVertexArray(0); +} + +const Shader* SceneLighting::PrepareTerrainShader() { + if (!m_Scorch.Texture) { + return nullptr; + } + m_TerrainShader->Enable(); + m_TerrainShader->SetInt("rteScorch", 3); + m_TerrainShader->SetBool("rteScorchEnabled", m_Settings.ScorchMarks); + m_TerrainShader->SetVector2f("rteScorchWorldSize", glm::vec2(static_cast(m_Scorch.Width * m_ScorchCellSize), static_cast(m_Scorch.Height * m_ScorchCellSize))); + g_RenderMan.SetGlobalTexture(3, m_Scorch.Texture); + g_RenderMan.SetGlobalTexture(4, m_Stains.Texture); + g_RenderMan.SetGlobalTexture(5, m_SkylineTexture.Texture); + m_TerrainShader->SetBool("rteLivingWorld", m_Settings.LivingWorld); + m_TerrainShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + m_TerrainShader->SetFloat("rteWind", m_Settings.Wind); + m_TerrainShader->SetFloat("rteSnowCover", m_Settings.LivingWorld ? m_SnowCover : 0.0F); + m_TerrainShader->SetFloat("rteWetness", m_Settings.LivingWorld ? m_Wetness : 0.0F); + m_TerrainShader->SetInt("rteSkyline", 5); + m_TerrainShader->SetVector2f("rteGridWorldSize", glm::vec2(static_cast(m_GridWidth * m_CellSize), static_cast(m_GridHeight * m_CellSize))); + { + std::vector blasts; + if (m_Settings.LivingWorld) { + g_PostProcessMan.GetActiveShockwaves(blasts); + } + constexpr size_t maxBlasts = 8; + if (blasts.size() > maxBlasts) { + blasts.resize(maxBlasts); + } + m_TerrainShader->SetInt("rteBlastCount", static_cast(blasts.size())); + if (!blasts.empty()) { + glUniform4fv(m_TerrainShader->GetUniformLocation("rteBlasts"), static_cast(blasts.size()), &blasts[0].x); + } + } + m_TerrainShader->SetInt("rteStains", 4); + m_TerrainShader->SetBool("rteStainsEnabled", m_Settings.Stains); + + // Hot spots: the most recent marks, cooling over HotSpotSeconds. + const std::vector& hotMarks = g_PostProcessMan.GetHotScorchMarks(std::max(m_Settings.HotSpotSeconds, 0.01F)); + float now = PostProcessMan::GetSmoothSimTime(); + std::array hotSpots{}; + int hotSpotCount = 0; + for (auto mark = hotMarks.rbegin(); mark != hotMarks.rend() && hotSpotCount < static_cast(hotSpots.size()); ++mark) { + float age = (now - mark->m_StartTime) / std::max(m_Settings.HotSpotSeconds, 0.01F); + float heat = std::clamp(1.0F - age, 0.0F, 1.0F); + heat *= heat; + if (heat > 0.0F) { + hotSpots[hotSpotCount++] = glm::vec4(mark->m_Pos.m_X, mark->m_Pos.m_Y, mark->m_Radius * 1.1F, heat); + } + } + m_TerrainShader->SetInt("rteHotSpotCount", hotSpotCount); + if (hotSpotCount > 0) { + glUniform4fv(m_TerrainShader->GetUniformLocation("rteHotSpots"), hotSpotCount, &hotSpots[0].x); + } + return m_TerrainShader.get(); +} + +void SceneLighting::Update() { + ZoneScoped; + + // Advance the time of day in sim time, so it pauses with the game. + long long simUpdateCount = g_TimerMan.GetSimUpdateCount(); + if (m_LastSimUpdateCount >= 0 && m_Settings.DayLengthMinutes > 0.0F) { + float elapsedSeconds = static_cast(simUpdateCount - m_LastSimUpdateCount) * g_TimerMan.GetDeltaTimeSecs(); + float hoursPerSecond = 24.0F / (m_Settings.DayLengthMinutes * 60.0F); + m_Settings.TimeOfDay = std::fmod(m_Settings.TimeOfDay + elapsedSeconds * hoursPerSecond, 24.0F); + } + m_LastSimUpdateCount = simUpdateCount; + glm::vec3 daylight = GetDaylightTint(m_Settings.TimeOfDay); + float dayFactor = std::clamp(glm::dot(daylight, glm::vec3(0.2126F, 0.7152F, 0.0722F)), 0.0F, 1.0F); + m_EffectiveSky = m_Settings.SkyColor * daylight; + m_NightSky = std::clamp(1.0F - dayFactor * 3.0F, 0.0F, 1.0F); + m_MoonHours = std::fmod(m_Settings.TimeOfDay + 12.0F, 24.0F); + + // Lightning in heavy rain: a bright double flicker every so often that briefly lights the whole sky. + long long lightningUpdates = m_LightningLastSimUpdate >= 0 ? simUpdateCount - m_LightningLastSimUpdate : 0; + m_LightningLastSimUpdate = simUpdateCount; + // Sim time, so storms pause with the game. + float frameSeconds = std::min(static_cast(lightningUpdates) * g_TimerMan.GetDeltaTimeSecs(), 0.1F); + auto nextRandom = [this]() { + m_LightningRandom = m_LightningRandom * 1664525u + 1013904223u; + return static_cast(m_LightningRandom >> 8) / static_cast(1u << 24); + }; + if (m_Settings.WeatherType == 1 && m_Settings.WeatherIntensity > 0.5F) { + m_NextLightningSeconds -= frameSeconds; + if (m_NextLightningSeconds <= 0.0F) { + m_LightningSecondsLeft = 0.45F; + // Heavier storms flash more often. + float storm = (m_Settings.WeatherIntensity - 0.5F) * 2.0F; + m_NextLightningSeconds = (6.0F + nextRandom() * 16.0F) * (1.2F - 0.6F * storm); + } + } + if (m_LightningSecondsLeft > 0.0F) { + m_LightningSecondsLeft = std::max(m_LightningSecondsLeft - frameSeconds, 0.0F); + float t = 0.45F - m_LightningSecondsLeft; + // Two strokes: a sharp first flash and a weaker echo. + m_Lightning = 1.6F * std::exp(-t * 18.0F) + 0.9F * std::exp(-std::abs(t - 0.2F) * 25.0F); + } else { + m_Lightning = 0.0F; + } + m_EffectiveSky += glm::vec3(0.75F, 0.8F, 1.0F) * m_Lightning; + + // Snow settles over about a minute of heavy snowfall and melts slower than that; rain wets the ground quickly and dries slowly. + float snowTarget = m_Settings.WeatherType == 2 ? m_Settings.WeatherIntensity : 0.0F; + float wetTarget = m_Settings.WeatherType == 1 ? std::min(1.0F, m_Settings.WeatherIntensity * 1.3F) : 0.0F; + m_SnowCover += std::clamp(snowTarget - m_SnowCover, -frameSeconds / 90.0F, frameSeconds / 60.0F); + m_Wetness += std::clamp(wetTarget - m_Wetness, -frameSeconds / 60.0F, frameSeconds / 8.0F); + // Interiors and caves get a little darker at night too, but much less than the outdoors: bunkers are artificially lit and should stay playable. + m_EffectiveAmbient = m_Settings.Ambient * (0.85F + 0.15F * dayFactor); + // The readability floor drops more at night than the interior ambient does, so night battles outdoors stay dark and moody. + m_EffectiveForegroundAmbient = m_Settings.ForegroundAmbient * (0.4F + 0.6F * dayFactor); + + if (!EnsureWorldResources()) { + return; + } + ++m_FrameCounter; + + // Round-robin refresh of the terrain into the grid, so digging and explosions show up in the lighting within a fraction of a second. + int rowsPerFrame = std::max(4, m_GridHeight / 30); + int firstRow = m_NextRefreshRow; + int endRow = std::min(firstRow + rowsPerFrame, m_GridHeight); + RefreshOccupancyRows(firstRow, endRow); + UploadOccupancyRows(firstRow, endRow); + m_NextRefreshRow = (endRow >= m_GridHeight) ? 0 : endRow; + RecomputeSkyline(); + + GLint previousFramebuffer = 0; + glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &previousFramebuffer); + GLint previousViewport[4]; + glGetIntegerv(GL_VIEWPORT, previousViewport); + PropagateSkyLight(m_Settings.PropagationIterationsPerFrame); + StampScorchMarks(); + StampStains(); + glBindFramebuffer(GL_FRAMEBUFFER, previousFramebuffer); + glViewport(previousViewport[0], previousViewport[1], previousViewport[2], previousViewport[3]); +} + +#pragma endregion + +#pragma region Player Screen + +const SceneLighting::GlowInfo& SceneLighting::GetGlowInfo(const BitmapTexture* glowTexture) { + if (auto cached = m_GlowInfoCache.find(glowTexture); cached != m_GlowInfoCache.end()) { + return cached->second; + } + GlowInfo info{glm::vec3(1.0F), std::max(glowTexture->GetDimensions().w, glowTexture->GetDimensions().h)}; + if (const BITMAP* bitmap = glowTexture->GetBitmap(); bitmap && bitmap_color_depth(const_cast(bitmap)) == 32) { + // Average the glow's visible pixels for the color of the light it casts. Glow art is light on black, so weight by brightness. + glm::vec3 sum(0.0F); + float weight = 0.0F; + for (int y = 0; y < bitmap->h; ++y) { + const uint32_t* line = reinterpret_cast(bitmap->line[y]); + for (int x = 0; x < bitmap->w; ++x) { + uint32_t pixel = line[x]; + glm::vec3 color = ToLinear(static_cast(getr32(pixel)), static_cast(getg32(pixel)), static_cast(getb32(pixel))); + float brightness = std::max(color.r, std::max(color.g, color.b)); + sum += color * brightness; + weight += brightness; + } + } + if (weight > 0.0F) { + glm::vec3 average = sum / weight; + float peak = std::max(average.r, std::max(average.g, average.b)); + info.LightColor = peak > 0.0F ? average / peak : glm::vec3(1.0F); + } + } + return m_GlowInfoCache.emplace(glowTexture, info).first->second; +} + +void SceneLighting::UploadQuads() { + size_t quadCount = m_QuadVertices.size() / 4; + if (quadCount * 6 > m_QuadIndexCapacity) { + m_QuadIndexCapacity = std::max(quadCount * 6, 6 * 256); + std::vector indices(m_QuadIndexCapacity); + for (size_t quad = 0; quad < m_QuadIndexCapacity / 6; ++quad) { + GLuint base = static_cast(quad * 4); + indices[quad * 6 + 0] = base; + indices[quad * 6 + 1] = base + 1; + indices[quad * 6 + 2] = base + 2; + indices[quad * 6 + 3] = base; + indices[quad * 6 + 4] = base + 2; + indices[quad * 6 + 5] = base + 3; + } + glBindVertexArray(m_QuadVAO); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_QuadIBO); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(GLuint), indices.data(), GL_STATIC_DRAW); + } + glBindBuffer(GL_ARRAY_BUFFER, m_QuadVBO); + glBufferData(GL_ARRAY_BUFFER, m_QuadVertices.size() * sizeof(QuadVertex), m_QuadVertices.data(), GL_STREAM_DRAW); +} + +void SceneLighting::DrawQuads(size_t firstQuad, size_t quadCount) { + if (quadCount == 0) { + return; + } + glBindVertexArray(m_QuadVAO); + GL_CHECK(glDrawElements(GL_TRIANGLES, static_cast(quadCount * 6), GL_UNSIGNED_INT, reinterpret_cast(firstQuad * 6 * sizeof(GLuint)))); +} + +void SceneLighting::DrawFullscreen() const { + glBindVertexArray(m_FullscreenVAO); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); +} + +void SceneLighting::LightPlayerScreen(int screenIndex, RenderTarget* playerScreen, const Vector& screenOrigin, const std::list& screenEffects, const std::vector& screenLights, const std::vector& screenShockwaves) { + screenIndex = std::clamp(screenIndex, 0, c_MaxScreens - 1); + ZoneScoped; + TracyGpuZone("Scene Lighting"); + if (!EnsureWorldResources()) { + return; + } + int width = static_cast(playerScreen->GetSize().w); + int height = static_cast(playerScreen->GetSize().h); + EnsureScreenResources(width, height); + + GLint previousViewport[4]; + glGetIntegerv(GL_VIEWPORT, previousViewport); + glDisable(GL_DEPTH_TEST); + glDisable(GL_SCISSOR_TEST); + glDisable(GL_CULL_FACE); + glViewport(0, 0, width, height); + + glm::vec2 screenSize(static_cast(width), static_cast(height)); + glm::vec2 origin(std::floor(screenOrigin.m_X), std::floor(screenOrigin.m_Y)); + glm::vec2 gridWorldSize(static_cast(m_GridWidth * m_CellSize), static_cast(m_GridHeight * m_CellSize)); + + // Build light and emissive quads from the glow effects. Lights first, emissives after, so each can be drawn as one range. + m_QuadVertices.clear(); + auto addQuad = [this](glm::vec2 center, glm::vec2 halfSize, float angle, glm::vec3 color, float radius) { + const glm::vec2 corners[4] = {{-1.0F, -1.0F}, {1.0F, -1.0F}, {1.0F, 1.0F}, {-1.0F, 1.0F}}; + float cosAngle = std::cos(angle); + float sinAngle = std::sin(angle); + for (const glm::vec2& corner: corners) { + glm::vec2 local = corner * halfSize; + glm::vec2 rotated(local.x * cosAngle - local.y * sinAngle, local.x * sinAngle + local.y * cosAngle); + glm::vec2 position = center + rotated; + m_QuadVertices.push_back({position.x, position.y, 0.0F, (corner.x + 1.0F) * 0.5F, (corner.y + 1.0F) * 0.5F, color.r, color.g, color.b, 1.0F, center.x, center.y, radius, 1.0F, 0.0F, -2.0F}); + } + }; + size_t lightCount = 0; + if (m_Settings.Enabled) { + for (const PostEffect& effect: screenEffects) { + if (!effect.m_Bitmap) { + continue; + } + const GlowInfo& glow = GetGlowInfo(effect.m_Bitmap.get()); + float radius = std::max(24.0F, glow.Size * 0.5F * m_Settings.GlowLightRadiusScale); + glm::vec3 color = glm::mix(glow.LightColor, glm::vec3(1.0F), 0.25F) * (static_cast(effect.m_Strength) / 255.0F) * m_Settings.GlowLightIntensity; + glm::vec2 center(effect.m_Pos.m_X, effect.m_Pos.m_Y); + size_t firstVertex = m_QuadVertices.size(); + addQuad(center, glm::vec2(radius), 0.0F, color, radius); + // The point light shader wants local positions in -1..1 rather than 0..1 UVs. + for (size_t vertex = firstVertex; vertex < m_QuadVertices.size(); ++vertex) { + m_QuadVertices[vertex].U = m_QuadVertices[vertex].U * 2.0F - 1.0F; + m_QuadVertices[vertex].V = m_QuadVertices[vertex].V * 2.0F - 1.0F; + } + ++lightCount; + } + for (const SceneLight& light: screenLights) { + glm::vec2 center(light.m_Pos.m_X, light.m_Pos.m_Y); + size_t firstVertex = m_QuadVertices.size(); + addQuad(center, glm::vec2(light.m_Radius), 0.0F, light.m_Color, light.m_Radius); + for (size_t vertex = firstVertex; vertex < m_QuadVertices.size(); ++vertex) { + m_QuadVertices[vertex].U = m_QuadVertices[vertex].U * 2.0F - 1.0F; + m_QuadVertices[vertex].V = m_QuadVertices[vertex].V * 2.0F - 1.0F; + m_QuadVertices[vertex].ConeX = light.m_Direction.x; + m_QuadVertices[vertex].ConeY = light.m_Direction.y; + m_QuadVertices[vertex].ConeCos = light.m_ConeCos; + } + ++lightCount; + } + } + m_LastLightCount = static_cast(lightCount); + size_t emissiveStart = m_QuadVertices.size() / 4; + std::vector emissiveTextures; + for (const PostEffect& effect: screenEffects) { + if (!effect.m_Bitmap) { + continue; + } + float strength = static_cast(effect.m_Strength) / 255.0F; + glm::vec2 halfSize(effect.m_Bitmap->GetDimensions().w * 0.5F, effect.m_Bitmap->GetDimensions().h * 0.5F); + // CC angles are counter-clockwise, screen space is Y down. + addQuad(glm::vec2(std::floor(effect.m_Pos.m_X), std::floor(effect.m_Pos.m_Y)), halfSize, -effect.m_Angle, glm::vec3(strength), 0.0F); + const FloatRect& uvRect = effect.m_Bitmap->GetUVRect(); + for (size_t vertex = m_QuadVertices.size() - 4; vertex < m_QuadVertices.size(); ++vertex) { + m_QuadVertices[vertex].U = uvRect.x + m_QuadVertices[vertex].U * uvRect.w; + m_QuadVertices[vertex].V = uvRect.y + m_QuadVertices[vertex].V * uvRect.h; + } + emissiveTextures.push_back(effect.m_Bitmap->GetTextureId()); + } + + // Visual sparks from explosions and impacts: short glowing streaks along their motion. + { + std::vector sparks; + EffectsParticles::GetSparks(origin, width, height, sparks); + GLuint whiteTexture = g_RenderMan.GetShapeTexture(); + for (const EffectsParticles::Spark& spark: sparks) { + float angle = std::atan2(spark.Direction.y, spark.Direction.x); + addQuad(spark.Position - spark.Direction * (spark.Length * 0.5F), glm::vec2(spark.Length * 0.5F + 0.5F, 0.6F), angle, glm::min(spark.Color, glm::vec3(1.0F)), 0.0F); + emissiveTextures.push_back(whiteTexture); + } + } + + // Burning terrain: each pixel flickers between yellow and deep orange as it burns down, and sometimes throws an ember. + { + std::vector burning; + TerrainFire::GetBurning(origin, width, height, burning); + GLuint whiteTexture = g_RenderMan.GetShapeTexture(); + float time = PostProcessMan::GetSmoothSimTime(); + for (const glm::vec3& pixel: burning) { + glm::vec2 position(pixel.x, pixel.y); + float noise = glm::fract(std::sin(glm::dot(position + origin, glm::vec2(12.9898F, 78.233F)) + std::floor(time * 14.0F) * 3.1F) * 43758.5453F); + float heat = pixel.z; + glm::vec3 color = glm::mix(glm::vec3(0.9F, 0.25F, 0.03F), glm::vec3(1.0F, 0.85F, 0.35F), std::clamp(heat * 0.7F + noise * 0.5F, 0.0F, 1.0F)) * (0.7F + 0.6F * noise); + // A flame tongue above the pixel, taller where it's hotter. + float flameHeight = 1.0F + std::floor(noise * 3.0F * (0.4F + heat)); + addQuad(position + glm::vec2(0.5F, 0.5F - flameHeight * 0.5F), glm::vec2(0.5F, flameHeight * 0.5F + 0.5F), 0.0F, glm::min(color, glm::vec3(1.0F)), 0.0F); + emissiveTextures.push_back(whiteTexture); + if (noise > 0.995F) { + EffectsParticles::SpawnEmber(Vector(position.x + origin.x, position.y + origin.y - 2.0F)); + } + } + } + + // Embers rising from fire and other warm glows. Procedural from a seed tied to the glow's world position (quantized, so flickering flames keep the same embers), no simulation needed. + if (m_Settings.Embers > 0.0F) { + auto hash = [](float n) { return glm::fract(std::sin(n) * 43758.5453F); }; + float time = PostProcessMan::GetSmoothSimTime(); + GLuint whiteTexture = g_RenderMan.GetShapeTexture(); + for (const PostEffect& effect: screenEffects) { + if (!effect.m_Bitmap) { + continue; + } + const GlowInfo& glow = GetGlowInfo(effect.m_Bitmap.get()); + float strength = static_cast(effect.m_Strength) / 255.0F; + if (glow.LightColor.r < glow.LightColor.b * 1.4F || strength < 0.25F || glow.Size < 6.0F) { + continue; + } + glm::vec2 world = origin + glm::vec2(effect.m_Pos.m_X, effect.m_Pos.m_Y); + glm::vec2 cell = glm::floor(world / 10.0F); + float seedBase = hash(cell.x * 12.9898F + cell.y * 78.233F) * 1000.0F; + int count = std::clamp(static_cast(glow.Size / 14.0F * m_Settings.Embers), 1, 5); + for (int i = 0; i < count; ++i) { + float seed = hash(seedBase + static_cast(i) * 17.31F); + float seed2 = hash(seedBase + static_cast(i) * 41.17F + 3.0F); + float rate = 0.45F + seed * 0.7F; + float phase = glm::fract(time * rate + seed * 7.0F); + float rise = 25.0F + seed2 * 45.0F; + glm::vec2 emberWorld(cell.x * 10.0F + 5.0F + (seed2 - 0.5F) * glow.Size * 0.5F + std::sin(time * 2.3F + seed * 20.0F) * 3.0F * phase, cell.y * 10.0F - phase * rise); + float fade = std::pow(1.0F - phase, 1.5F) * strength; + glm::vec3 emberColor = glm::mix(glm::vec3(1.0F, 0.85F, 0.45F), glm::vec3(1.0F, 0.35F, 0.08F), phase) * fade; + glm::vec2 screen = glm::floor(emberWorld - origin) + glm::vec2(0.5F); + addQuad(screen, glm::vec2(0.5F), 0.0F, emberColor, 0.0F); + emissiveTextures.push_back(whiteTexture); + } + } + } + size_t shockwaveStart = m_QuadVertices.size() / 4; + if (m_Settings.DistortionEnabled) { + for (const ScreenShockwave& shockwave: screenShockwaves) { + // Amplitude and progress travel in the color, radius in the light parameters. + size_t firstVertex = m_QuadVertices.size(); + addQuad(shockwave.m_Pos, glm::vec2(shockwave.m_Radius), 0.0F, glm::vec3(shockwave.m_Amplitude, shockwave.m_Progress, 0.0F), shockwave.m_Radius); + for (size_t vertex = firstVertex; vertex < m_QuadVertices.size(); ++vertex) { + m_QuadVertices[vertex].U = m_QuadVertices[vertex].U * 2.0F - 1.0F; + m_QuadVertices[vertex].V = m_QuadVertices[vertex].V * 2.0F - 1.0F; + } + } + } + size_t shockwaveCount = m_QuadVertices.size() / 4 - shockwaveStart; + // Dust puffs, lit and drawn over the scene after the composite. + size_t puffStart = m_QuadVertices.size() / 4; + { + std::vector puffs; + EffectsParticles::GetPuffs(origin, width, height, puffs); + for (const EffectsParticles::Puff& puff: puffs) { + size_t firstVertex = m_QuadVertices.size(); + addQuad(puff.Position, glm::vec2(puff.Size * 0.5F), 0.0F, glm::vec3(puff.Color), 0.0F); + for (size_t vertex = firstVertex; vertex < m_QuadVertices.size(); ++vertex) { + m_QuadVertices[vertex].A = puff.Color.a; + } + } + } + size_t puffCount = m_QuadVertices.size() / 4 - puffStart; + // Smoke density splats, in half resolution pixels. + size_t smokeStart = m_QuadVertices.size() / 4; + if (m_Settings.Enabled && m_Settings.SmokeScattering > 0.0F) { + std::vector smoke; + EffectsParticles::GetSmoke(origin, width, height, smoke); + for (const EffectsParticles::Puff& puff: smoke) { + addQuad(puff.Position * 0.5F, glm::vec2(puff.Size * 0.25F), 0.0F, glm::vec3(puff.Color.a), 0.0F); + } + } + size_t smokeCount = m_QuadVertices.size() / 4 - smokeStart; + UploadQuads(); + + // Shockwave displacement. + glBindFramebuffer(GL_FRAMEBUFFER, m_Distortion.Framebuffer); + glClearColor(0.0F, 0.0F, 0.0F, 0.0F); + glClear(GL_COLOR_BUFFER_BIT); + if (shockwaveCount > 0) { + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + m_ShockwaveShader->Enable(); + m_ShockwaveShader->SetVector2f("rteScreenSize", screenSize); + DrawQuads(shockwaveStart, shockwaveCount); + glDisable(GL_BLEND); + } + + std::shared_ptr normals = playerScreen->GetNormalTexture().lock(); + + // Dynamic lights. + glBindFramebuffer(GL_FRAMEBUFFER, m_DynamicLight.Framebuffer); + glClearColor(0.0F, 0.0F, 0.0F, 0.0F); + glClear(GL_COLOR_BUFFER_BIT); + if (lightCount > 0) { + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + m_PointLightShader->Enable(); + m_PointLightShader->SetInt("rteOccupancy", 0); + m_PointLightShader->SetVector2f("rteScreenSize", screenSize); + m_PointLightShader->SetVector2f("rteScreenOrigin", origin); + m_PointLightShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_PointLightShader->SetFloat("rteShadowStrength", m_Settings.ShadowStrength); + m_PointLightShader->SetInt("rteNormals", 1); + m_PointLightShader->SetFloat("rteEdgeLighting", m_Settings.EdgeLighting); + m_PointLightShader->SetBool("rteBeamMode", false); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_OccupancyTexture.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, normals ? normals->GetTextureId() : 0); + glActiveTexture(GL_TEXTURE0); + DrawQuads(0, lightCount); + glDisable(GL_BLEND); + } + + // Glows, screen blended into their own buffer like the original glows. + glBindFramebuffer(GL_FRAMEBUFFER, m_Emissive.Framebuffer); + glClearColor(0.0F, 0.0F, 0.0F, 0.0F); + glClear(GL_COLOR_BUFFER_BIT); + if (!emissiveTextures.empty()) { + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR); + m_EmissiveShader->Enable(); + m_EmissiveShader->SetInt("rteTexture", 0); + m_EmissiveShader->SetVector2f("rteScreenSize", screenSize); + glActiveTexture(GL_TEXTURE0); + size_t runStart = 0; + for (size_t i = 1; i <= emissiveTextures.size(); ++i) { + if (i == emissiveTextures.size() || emissiveTextures[i] != emissiveTextures[runStart]) { + glBindTexture(GL_TEXTURE_2D, emissiveTextures[runStart]); + DrawQuads(emissiveStart + runStart, i - runStart); + runStart = i; + } + } + glDisable(GL_BLEND); + } + + // Global illumination by radiance cascades, from the glows drawn above and last frame's lit surfaces. + std::shared_ptr cascadeDepth = playerScreen->GetDepthTexture().lock(); + bool useRadianceCascades = m_Settings.Enabled && m_Settings.RadianceCascades && cascadeDepth; + float foregroundCascadeThresholdZ = c_TerrainBGDepth * 0.5F; + float foregroundCascadeDepth = ((2.0F * foregroundCascadeThresholdZ - (c_FarDepth + c_NearDepth)) / (c_FarDepth - c_NearDepth)) * 0.5F + 0.5F; + if (useRadianceCascades) { + TracyGpuZone("Radiance Cascades"); + glDisable(GL_BLEND); + glm::vec2 rcSize(static_cast(m_RCScene.Width), static_cast(m_RCScene.Height)); + glBindFramebuffer(GL_FRAMEBUFFER, m_RCScene.Framebuffer); + glViewport(0, 0, m_RCScene.Width, m_RCScene.Height); + m_RCSceneShader->Enable(); + m_RCSceneShader->SetInt("rteEmissive", 0); + m_RCSceneShader->SetInt("rteSceneDepth", 1); + m_RCSceneShader->SetInt("rtePreviousLit", 2); + m_RCSceneShader->SetVector2f("rtePreviousOffset", m_RCPreviousValid[screenIndex] ? (origin - m_RCPreviousOrigin[screenIndex]) : glm::vec2(0.0F)); + m_RCSceneShader->SetVector2f("rteTargetSize", rcSize); + m_RCSceneShader->SetVector2f("rteScreenSize", screenSize); + m_RCSceneShader->SetFloat("rteForegroundDepth", foregroundCascadeDepth); + m_RCSceneShader->SetFloat("rteEmissiveIntensity", m_Settings.EmissiveIntensity); + m_RCSceneShader->SetFloat("rteBounce", m_Settings.GIBounce); + m_RCSceneShader->SetBool("rteHavePrevious", m_RCPreviousValid[screenIndex]); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_Emissive.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, cascadeDepth->GetTextureId()); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_RCPreviousLit[screenIndex].Texture); + DrawFullscreen(); + + m_RCCascadeShader->Enable(); + m_RCCascadeShader->SetInt("rteScene", 0); + m_RCCascadeShader->SetInt("rteUpper", 1); + m_RCCascadeShader->SetInt("rteCascadeCount", c_RCCascadeCount); + m_RCCascadeShader->SetVector2f("rteTargetSize", rcSize); + m_RCCascadeShader->SetFloat("rteBaseInterval", 1.5F); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_RCScene.Texture); + int written = 0; + for (int cascade = c_RCCascadeCount - 1; cascade >= 0; --cascade) { + int target = (c_RCCascadeCount - 1 - cascade) % 2; + glBindFramebuffer(GL_FRAMEBUFFER, m_RCCascades[target].Framebuffer); + m_RCCascadeShader->SetInt("rteCascade", cascade); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_RCCascades[1 - target].Texture); + DrawFullscreen(); + written = target; + } + + glBindFramebuffer(GL_FRAMEBUFFER, m_RCIrradiance.Framebuffer); + glViewport(0, 0, m_RCIrradiance.Width, m_RCIrradiance.Height); + m_RCIrradianceShader->Enable(); + m_RCIrradianceShader->SetInt("rteCascade0", 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_RCCascades[written].Texture); + DrawFullscreen(); + glViewport(0, 0, width, height); + } + + // Composite the lit scene into HDR. + std::shared_ptr albedo = playerScreen->GetColorTexture().lock(); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + m_CompositeShader->Enable(); + m_CompositeShader->SetInt("rteAlbedo", 0); + m_CompositeShader->SetInt("rteDynamicLight", 1); + m_CompositeShader->SetInt("rteSkyLight", 2); + m_CompositeShader->SetInt("rteSceneDepth", 3); + m_CompositeShader->SetInt("rteDebugView", m_Settings.DebugView); + m_CompositeShader->SetInt("rteEmissive", 4); + m_CompositeShader->SetInt("rteNormals", 5); + m_CompositeShader->SetInt("rteIndirect", 6); + // Radiance cascades include bounced light, so the simpler indirect light is left out with them. + bool useIndirect = m_Settings.Enabled && m_Settings.IndirectLight > 0.0F && m_IndirectHistoryValid[screenIndex] && !useRadianceCascades; + m_CompositeShader->SetInt("rteGI", 7); + m_CompositeShader->SetFloat("rteGIStrength", useRadianceCascades ? m_Settings.GIStrength : 0.0F); + m_CompositeShader->SetFloat("rteIndirectStrength", useIndirect ? m_Settings.IndirectLight : 0.0F); + m_CompositeShader->SetVector2f("rteIndirectOffset", useIndirect ? (origin - m_IndirectHistoryOrigin[screenIndex]) : glm::vec2(0.0F)); + m_CompositeShader->SetFloat("rteEdgeLighting", normals ? m_Settings.EdgeLighting : 0.0F); + float foregroundCompositeThresholdZ = c_TerrainBGDepth * 0.5F; + m_CompositeShader->SetFloat("rteForegroundDepth", ((2.0F * foregroundCompositeThresholdZ - (c_FarDepth + c_NearDepth)) / (c_FarDepth - c_NearDepth)) * 0.5F + 0.5F); + m_CompositeShader->SetVector3f("rteForegroundAmbient", m_Settings.Enabled ? m_EffectiveForegroundAmbient : glm::vec3(1.0F)); + m_CompositeShader->SetFloat("rteEmissiveIntensity", m_Settings.EmissiveIntensity); + m_CompositeShader->SetFloat("rteMaxDynamicLight", 2.0F); + // Layers are drawn at depth z mapped linearly through the cameras' ortho projection. Background layers sit at c_BackgroundDepth, terrain background at c_TerrainBGDepth. + float backgroundThresholdZ = (c_BackgroundDepth + c_TerrainBGDepth) * 0.5F; + float backgroundThresholdNDC = (2.0F * backgroundThresholdZ - (c_FarDepth + c_NearDepth)) / (c_FarDepth - c_NearDepth); + m_CompositeShader->SetFloat("rteBackgroundDepth", backgroundThresholdNDC * 0.5F + 0.5F); + auto depthForZ = [](float z) { return ((2.0F * z - (c_FarDepth + c_NearDepth)) / (c_FarDepth - c_NearDepth)) * 0.5F + 0.5F; }; + m_CompositeShader->SetFloat("rteBackgroundNearDepth", depthForZ(c_BackgroundDepth)); + m_CompositeShader->SetFloat("rteBackgroundFarDepth", depthForZ(c_BackgroundDepth + c_BackgroundDepthRange)); + m_CompositeShader->SetVector3f("rteAtmosphereColor", m_Settings.AtmosphereColor * GetDaylightTint(m_Settings.TimeOfDay)); + m_CompositeShader->SetFloat("rteAtmosphereHaze", m_Settings.Enabled ? m_Settings.AtmosphereHaze : 0.0F); + m_CompositeShader->SetVector3f("rteBackgroundLight", m_Settings.Enabled ? m_EffectiveSky : glm::vec3(1.0F)); + m_CompositeShader->SetFloat("rteNightSky", m_Settings.Enabled ? m_NightSky * (1.0F - std::clamp(m_Settings.WeatherType > 0 ? m_Settings.WeatherIntensity * 1.5F : 0.0F, 0.0F, 1.0F)) : 0.0F); + m_CompositeShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + { + // The moon follows the same arc as the sun, high in the sky behind everything. Player screens are drawn top down, so y 0 is the top. + float arc = (m_MoonHours - 12.0F) / 6.0F; + glm::vec2 moonPosition((0.5F + arc * 0.38F) * screenSize.x, (0.34F - 0.14F * (1.0F - arc * arc)) * screenSize.y); + m_CompositeShader->SetVector2f("rteMoonPosition", moonPosition); + } + m_CompositeShader->SetVector2f("rteScreenSize", screenSize); + m_CompositeShader->SetVector2f("rteScreenOrigin", origin); + m_CompositeShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_CompositeShader->SetVector3f("rteAmbient", m_Settings.Enabled ? m_EffectiveAmbient : glm::vec3(1.0F)); + m_CompositeShader->SetVector3f("rteSkyColor", m_Settings.Enabled ? m_EffectiveSky : glm::vec3(1.0F)); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, albedo ? albedo->GetTextureId() : 0); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_DynamicLight.Texture); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_SkyLight[m_CurrentSkyLight].Texture); + std::shared_ptr sceneDepth = playerScreen->GetDepthTexture().lock(); + glActiveTexture(GL_TEXTURE3); + glBindTexture(GL_TEXTURE_2D, sceneDepth ? sceneDepth->GetTextureId() : 0); + glActiveTexture(GL_TEXTURE4); + glBindTexture(GL_TEXTURE_2D, m_Emissive.Texture); + glActiveTexture(GL_TEXTURE5); + glBindTexture(GL_TEXTURE_2D, normals ? normals->GetTextureId() : 0); + glActiveTexture(GL_TEXTURE6); + glBindTexture(GL_TEXTURE_2D, m_IndirectHistory[screenIndex].Texture); + glActiveTexture(GL_TEXTURE7); + glBindTexture(GL_TEXTURE_2D, m_RCIrradiance.Texture); + glActiveTexture(GL_TEXTURE0); + DrawFullscreen(); + + // Keep this frame's lit scene for next frame's bounces. + if (useRadianceCascades) { + glBindFramebuffer(GL_READ_FRAMEBUFFER, m_HDRScene.Framebuffer); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_RCPreviousLit[screenIndex].Framebuffer); + glBlitFramebuffer(0, 0, width, height, 0, 0, m_RCPreviousLit[screenIndex].Width, m_RCPreviousLit[screenIndex].Height, GL_COLOR_BUFFER_BIT, GL_LINEAR); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + m_RCPreviousOrigin[screenIndex] = origin; + m_RCPreviousValid[screenIndex] = true; + } else { + m_RCPreviousValid[screenIndex] = false; + } + + // Blur the lit scene down for next frame's indirect light. Taken before glows, rain and god rays so only lit surfaces bounce. + if (m_Settings.Enabled && m_Settings.IndirectLight > 0.0F) { + TracyGpuZone("Indirect Light"); + m_BloomDownsampleShader->Enable(); + m_BloomDownsampleShader->SetInt("rteSource", 0); + m_BloomDownsampleShader->SetBool("rteFirstPass", false); + glActiveTexture(GL_TEXTURE0); + for (int mip = 0; mip < c_IndirectMipCount; ++mip) { + const GLTarget& source = mip == 0 ? m_HDRScene : m_IndirectMips[mip - 1]; + const GLTarget& destination = mip == c_IndirectMipCount - 1 ? m_IndirectHistory[screenIndex] : m_IndirectMips[mip]; + glBindFramebuffer(GL_FRAMEBUFFER, destination.Framebuffer); + glViewport(0, 0, destination.Width, destination.Height); + m_BloomDownsampleShader->SetVector2f("rteSourceTexelSize", glm::vec2(1.0F / source.Width, 1.0F / source.Height)); + glBindTexture(GL_TEXTURE_2D, source.Texture); + DrawFullscreen(); + } + m_IndirectHistoryOrigin[screenIndex] = origin; + m_IndirectHistoryValid[screenIndex] = true; + glViewport(0, 0, width, height); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + } + + // Translucent particles (dust) lit like the scene behind them. + if (puffCount > 0) { + TracyGpuZone("Lit Particles"); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + glViewport(0, 0, width, height); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + m_LitParticleShader->Enable(); + m_LitParticleShader->SetVector2f("rteScreenSize", screenSize); + m_LitParticleShader->SetVector2f("rteScreenOrigin", origin); + m_LitParticleShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_LitParticleShader->SetVector3f("rteAmbient", m_Settings.Enabled ? m_EffectiveAmbient : glm::vec3(1.0F)); + m_LitParticleShader->SetVector3f("rteSkyColor", m_Settings.Enabled ? m_EffectiveSky : glm::vec3(1.0F)); + m_LitParticleShader->SetInt("rteTexture", 0); + m_LitParticleShader->SetInt("rteSkyLight", 1); + m_LitParticleShader->SetInt("rteDynamicLight", 2); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, EffectsParticles::GetPuffTexture()); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_SkyLight[m_CurrentSkyLight].Texture); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_DynamicLight.Texture); + glActiveTexture(GL_TEXTURE0); + DrawQuads(puffStart, puffCount); + glDisable(GL_BLEND); + } + + // Flashlight beams visible in the air, as light catching dust. Only cone lights draw anything here. + if (lightCount > 0 && m_Settings.Enabled) { + TracyGpuZone("Light Beams"); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + glViewport(0, 0, width, height); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + m_PointLightShader->Enable(); + m_PointLightShader->SetInt("rteOccupancy", 0); + m_PointLightShader->SetVector2f("rteScreenSize", screenSize); + m_PointLightShader->SetVector2f("rteScreenOrigin", origin); + m_PointLightShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_PointLightShader->SetFloat("rteShadowStrength", m_Settings.ShadowStrength); + m_PointLightShader->SetBool("rteBeamMode", true); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_OccupancyTexture.Texture); + DrawQuads(0, lightCount); + m_PointLightShader->SetBool("rteBeamMode", false); + glDisable(GL_BLEND); + } + + // Light scattered in smoke: splat the smoke's density, then add the light passing through it. + if (smokeCount > 0) { + TracyGpuZone("Smoke Scattering"); + glBindFramebuffer(GL_FRAMEBUFFER, m_SmokeDensity.Framebuffer); + glViewport(0, 0, m_SmokeDensity.Width, m_SmokeDensity.Height); + glClearColor(0.0F, 0.0F, 0.0F, 0.0F); + glClear(GL_COLOR_BUFFER_BIT); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + m_EmissiveShader->Enable(); + m_EmissiveShader->SetInt("rteTexture", 0); + m_EmissiveShader->SetBool("rteUseAlpha", true); + m_EmissiveShader->SetVector2f("rteScreenSize", glm::vec2(static_cast(m_SmokeDensity.Width), static_cast(m_SmokeDensity.Height))); + glActiveTexture(GL_TEXTURE0); + // The puff texture's alpha is its shape; its color is white, so the emissive shader outputs the density from the vertex color. + glBindTexture(GL_TEXTURE_2D, EffectsParticles::GetPuffTexture()); + DrawQuads(smokeStart, smokeCount); + m_EmissiveShader->SetBool("rteUseAlpha", false); + + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + glViewport(0, 0, width, height); + m_SmokeScatterShader->Enable(); + m_SmokeScatterShader->SetInt("rteDensity", 0); + m_SmokeScatterShader->SetInt("rteDynamicLight", 1); + m_SmokeScatterShader->SetInt("rteGI", 2); + m_SmokeScatterShader->SetFloat("rteGIStrength", useRadianceCascades ? m_Settings.GIStrength : 0.0F); + m_SmokeScatterShader->SetVector2f("rteScreenSize", screenSize); + m_SmokeScatterShader->SetFloat("rteStrength", m_Settings.SmokeScattering * 0.35F); + m_SmokeScatterShader->SetVector3f("rteSmokeColor", glm::vec3(0.95F, 0.9F, 0.85F)); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_SmokeDensity.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_DynamicLight.Texture); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_RCIrradiance.Texture); + glActiveTexture(GL_TEXTURE0); + DrawFullscreen(); + glDisable(GL_BLEND); + } + + // Rain or snow, lit by the sky, over the lit scene. + if (m_Settings.WeatherType > 0 && m_Settings.WeatherIntensity > 0.0F) { + TracyGpuZone("Precipitation"); + int dropCount = static_cast(m_Settings.WeatherIntensity * (m_Settings.WeatherType == 2 ? 1500.0F : 2500.0F) * (static_cast(width * height) / (960.0F * 540.0F))); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + m_PrecipitationShader->Enable(); + m_PrecipitationShader->SetVector2f("rteScreenSize", screenSize); + m_PrecipitationShader->SetVector2f("rteScreenOrigin", origin); + m_PrecipitationShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + m_PrecipitationShader->SetInt("rteType", m_Settings.WeatherType); + m_PrecipitationShader->SetFloat("rteWind", m_Settings.Wind); + m_PrecipitationShader->SetInt("rteSkyline", 0); + m_PrecipitationShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_PrecipitationShader->SetVector3f("rteSkyLight", m_Settings.Enabled ? m_EffectiveSky : glm::vec3(1.0F)); + m_PrecipitationShader->SetFloat("rteIntensity", std::clamp(0.6F + 0.4F * m_Settings.WeatherIntensity, 0.0F, 1.0F)); + m_PrecipitationShader->SetInt("rteDynamicLight", 1); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_SkylineTexture.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_DynamicLight.Texture); + glActiveTexture(GL_TEXTURE0); + glBindVertexArray(m_EmptyVAO); + glDrawArrays(GL_TRIANGLES, 0, dropCount * 6); + glDisable(GL_BLEND); + } + + // God rays: light shafts from the sky through gaps in the terrain. + if (m_Settings.Enabled && m_Settings.GodRays > 0.0F && sceneDepth) { + TracyGpuZone("God Rays"); + // The sun crosses the sky with the time of day; at night the moon takes over, dimly (the sky light is dim then anyway). + float sunHours = (m_Settings.TimeOfDay >= 6.0F && m_Settings.TimeOfDay <= 18.0F) ? m_Settings.TimeOfDay : std::fmod(m_Settings.TimeOfDay + 12.0F, 24.0F); + glm::vec2 sunPosition(0.5F + ((sunHours - 12.0F) / 6.0F) * 0.7F, -0.7F); + glViewport(0, 0, m_GodRays.Width, m_GodRays.Height); + glBindFramebuffer(GL_FRAMEBUFFER, m_GodRays.Framebuffer); + m_GodRaysShader->Enable(); + m_GodRaysShader->SetInt("rteSkyline", 0); + m_GodRaysShader->SetVector2f("rteScreenOrigin", origin); + m_GodRaysShader->SetVector2f("rteScreenSize", screenSize); + m_GodRaysShader->SetVector2f("rteGridWorldSize", gridWorldSize); + m_GodRaysShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + m_GodRaysShader->SetVector2f("rteSunPosition", sunPosition); + m_GodRaysShader->SetVector3f("rteSunColor", m_EffectiveSky * m_Settings.GodRays); + m_GodRaysShader->SetFloat("rteDecay", m_Settings.GodRayDecay); + m_GodRaysShader->SetVector2f("rteTargetSize", glm::vec2(m_GodRays.Width, m_GodRays.Height)); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_SkylineTexture.Texture); + DrawFullscreen(); + + glViewport(0, 0, width, height); + glBindFramebuffer(GL_FRAMEBUFFER, m_HDRScene.Framebuffer); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + m_GodRaysApplyShader->Enable(); + m_GodRaysApplyShader->SetInt("rteGodRays", 0); + m_GodRaysApplyShader->SetInt("rteSceneDepth", 1); + // Behind the foreground terrain and objects (z 0), in front of the terrain background (z c_TerrainBGDepth). + float foregroundThresholdZ = c_TerrainBGDepth * 0.5F; + m_GodRaysApplyShader->SetFloat("rteForegroundDepth", ((2.0F * foregroundThresholdZ - (c_FarDepth + c_NearDepth)) / (c_FarDepth - c_NearDepth)) * 0.5F + 0.5F); + m_GodRaysApplyShader->SetVector2f("rteScreenSize", screenSize); + m_GodRaysApplyShader->SetFloat("rteBackgroundDepth", backgroundThresholdNDC * 0.5F + 0.5F); + m_GodRaysApplyShader->SetVector2f("rteScreenOrigin", origin); + m_GodRaysApplyShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + m_GodRaysApplyShader->SetFloat("rteDustMotes", 1.0F); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_GodRays.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, sceneDepth->GetTextureId()); + glActiveTexture(GL_TEXTURE0); + DrawFullscreen(); + glDisable(GL_BLEND); + } + + // Auto exposure: average the scene's log luminance, then let the adapted value drift towards it. + bool useAutoExposure = m_Settings.Enabled && m_Settings.AutoExposure > 0.0F; + if (useAutoExposure) { + TracyGpuZone("Auto Exposure"); + glDisable(GL_BLEND); + glBindFramebuffer(GL_FRAMEBUFFER, m_Luminance.Framebuffer); + glViewport(0, 0, m_Luminance.Width, m_Luminance.Height); + m_LuminanceShader->Enable(); + m_LuminanceShader->SetInt("rteScene", 0); + m_LuminanceShader->SetVector2f("rteSourceTexelSize", glm::vec2(1.0F / static_cast(width), 1.0F / static_cast(height)) * (static_cast(width) / static_cast(m_Luminance.Width * 4))); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_HDRScene.Texture); + DrawFullscreen(); + glBindTexture(GL_TEXTURE_2D, m_Luminance.Texture); + glGenerateMipmap(GL_TEXTURE_2D); + + double nowSeconds = std::chrono::duration(std::chrono::steady_clock::now().time_since_epoch()).count(); + float deltaSeconds = m_AdaptedLuminanceValid[screenIndex] ? static_cast(std::clamp(nowSeconds - m_LastAdaptSeconds[screenIndex], 0.0, 0.25)) : 0.0F; + m_LastAdaptSeconds[screenIndex] = nowSeconds; + int previous = m_AdaptedLuminanceCurrent[screenIndex]; + int next = 1 - previous; + glBindFramebuffer(GL_FRAMEBUFFER, m_AdaptedLuminance[screenIndex][next].Framebuffer); + glViewport(0, 0, 1, 1); + m_ExposureAdaptShader->Enable(); + m_ExposureAdaptShader->SetInt("rteLuminance", 0); + m_ExposureAdaptShader->SetInt("rtePrevious", 1); + m_ExposureAdaptShader->SetFloat("rteLuminanceLod", static_cast(m_LuminanceMaxLod)); + m_ExposureAdaptShader->SetFloat("rteDeltaSeconds", deltaSeconds); + m_ExposureAdaptShader->SetFloat("rteBrightenSpeed", 3.0F); + m_ExposureAdaptShader->SetFloat("rteDarkenSpeed", 1.2F); + m_ExposureAdaptShader->SetBool("rteReset", !m_AdaptedLuminanceValid[screenIndex]); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_AdaptedLuminance[screenIndex][previous].Texture); + glActiveTexture(GL_TEXTURE0); + DrawFullscreen(); + m_AdaptedLuminanceCurrent[screenIndex] = next; + m_AdaptedLuminanceValid[screenIndex] = true; + glViewport(0, 0, width, height); + } else { + m_AdaptedLuminanceValid[screenIndex] = false; + } + + // Bloom. + if (m_Settings.BloomEnabled) { + TracyGpuZone("Bloom"); + m_BloomDownsampleShader->Enable(); + m_BloomDownsampleShader->SetInt("rteSource", 0); + m_BloomDownsampleShader->SetFloat("rteThreshold", m_Settings.BloomThreshold); + m_BloomDownsampleShader->SetFloat("rteKnee", m_Settings.BloomKnee); + glActiveTexture(GL_TEXTURE0); + for (int mip = 0; mip < c_BloomMipCount; ++mip) { + const GLTarget& source = mip == 0 ? m_HDRScene : m_BloomMips[mip - 1]; + glBindFramebuffer(GL_FRAMEBUFFER, m_BloomMips[mip].Framebuffer); + glViewport(0, 0, m_BloomMips[mip].Width, m_BloomMips[mip].Height); + m_BloomDownsampleShader->SetBool("rteFirstPass", mip == 0); + m_BloomDownsampleShader->SetVector2f("rteSourceTexelSize", glm::vec2(1.0F / source.Width, 1.0F / source.Height)); + glBindTexture(GL_TEXTURE_2D, source.Texture); + DrawFullscreen(); + } + m_BloomUpsampleShader->Enable(); + m_BloomUpsampleShader->SetInt("rteSource", 0); + m_BloomUpsampleShader->SetFloat("rteRadius", 1.0F); + glEnable(GL_BLEND); + glBlendEquation(GL_FUNC_ADD); + glBlendFunc(GL_ONE, GL_ONE); + for (int mip = c_BloomMipCount - 1; mip > 0; --mip) { + const GLTarget& source = m_BloomMips[mip]; + const GLTarget& destination = m_BloomMips[mip - 1]; + glBindFramebuffer(GL_FRAMEBUFFER, destination.Framebuffer); + glViewport(0, 0, destination.Width, destination.Height); + m_BloomUpsampleShader->SetVector2f("rteSourceTexelSize", glm::vec2(1.0F / source.Width, 1.0F / source.Height)); + m_BloomUpsampleShader->SetVector2f("rteTargetTexelSize", glm::vec2(1.0F / destination.Width, 1.0F / destination.Height)); + glBindTexture(GL_TEXTURE_2D, source.Texture); + DrawFullscreen(); + } + glDisable(GL_BLEND); + glViewport(0, 0, width, height); + } + + // Tonemap back into the player screen. + playerScreen->Bind(); + glViewport(0, 0, width, height); + m_TonemapShader->Enable(); + m_TonemapShader->SetInt("rteScene", 0); + m_TonemapShader->SetInt("rteBloom", 1); + m_TonemapShader->SetVector2f("rteScreenSize", screenSize); + m_TonemapShader->SetFloat("rteBloomIntensity", m_Settings.BloomEnabled ? m_Settings.BloomIntensity : 0.0F); + // With lighting off, the image should be the classic one: no exposure, highlight compression, saturation or vignette (the player's own grade still applies). + m_TonemapShader->SetFloat("rteExposure", m_Settings.Enabled ? m_Settings.Exposure : 1.0F); + m_TonemapShader->SetFloat("rteShoulderStart", m_Settings.Enabled ? m_Settings.ShoulderStart : 1.0F); + m_TonemapShader->SetFloat("rteVignette", m_Settings.Enabled ? m_Settings.Vignette : 0.0F); + m_TonemapShader->SetFloat("rteSaturation", m_Settings.Enabled ? m_Settings.Saturation : 1.0F); + m_TonemapShader->SetInt("rteDistortion", 2); + m_TonemapShader->SetInt("rteEmissive", 3); + m_TonemapShader->SetBool("rteDistortionEnabled", m_Settings.DistortionEnabled); + m_TonemapShader->SetFloat("rteHeatHaze", m_Settings.HeatHaze); + m_TonemapShader->SetFloat("rteTime", PostProcessMan::GetSmoothSimTime()); + m_TonemapShader->SetInt("rteDebugView", m_Settings.DebugView); + m_TonemapShader->SetFloat("rteTemperature", m_Settings.Temperature); + m_TonemapShader->SetFloat("rteTint", m_Settings.Tint); + m_TonemapShader->SetFloat("rteContrast", m_Settings.Contrast); + m_TonemapShader->SetVector3f("rteShadowTint", m_Settings.ShadowTint); + m_TonemapShader->SetVector3f("rteHighlightTint", m_Settings.HighlightTint); + m_TonemapShader->SetFloat("rteFilmGrain", m_Settings.FilmGrain); + m_TonemapShader->SetFloat("rteChromaticAberration", m_Settings.ChromaticAberration); + m_TonemapShader->SetInt("rteAdaptedLuminance", 4); + m_TonemapShader->SetFloat("rteAutoExposure", useAutoExposure ? m_Settings.AutoExposure : 0.0F); + m_TonemapShader->SetFloat("rteAutoExposureLow", m_Settings.AutoExposureLow); + m_TonemapShader->SetFloat("rteAutoExposureHigh", m_Settings.AutoExposureHigh); + glActiveTexture(GL_TEXTURE4); + glBindTexture(GL_TEXTURE_2D, m_AdaptedLuminance[screenIndex][m_AdaptedLuminanceCurrent[screenIndex]].Texture); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, m_HDRScene.Texture); + glActiveTexture(GL_TEXTURE1); + glBindTexture(GL_TEXTURE_2D, m_BloomMips[0].Texture); + glActiveTexture(GL_TEXTURE2); + glBindTexture(GL_TEXTURE_2D, m_Distortion.Texture); + glActiveTexture(GL_TEXTURE3); + glBindTexture(GL_TEXTURE_2D, m_Emissive.Texture); + DrawFullscreen(); + + glActiveTexture(GL_TEXTURE0); + glBindVertexArray(0); + glViewport(previousViewport[0], previousViewport[1], previousViewport[2], previousViewport[3]); +} + +#pragma endregion diff --git a/Source/Renderer/SceneLighting.h b/Source/Renderer/SceneLighting.h new file mode 100644 index 0000000000..e8912bd5aa --- /dev/null +++ b/Source/Renderer/SceneLighting.h @@ -0,0 +1,222 @@ +#pragma once + +#include "Vector.h" +#include "LightingSettings.h" +#include "glad/gl.h" +#include "glm/glm.hpp" + +#include +#include +#include +#include + +namespace RTE { + + class RenderTarget; + class Shader; + class BitmapTexture; + struct PostEffect; + struct SceneLight; + struct ScreenShockwave; + + /// Lights the scene: sky light that propagates through a low resolution grid of the terrain, dynamic lights cast by glow effects, glows drawn as emitted light, bloom and tonemapping. + /// Works on each player screen after the scene is drawn and before the HUD, so the HUD is never lit. + class SceneLighting { + + public: + /// Starts a lightning flash now, as if a bolt just struck (the sandbox's lightning). + void TriggerLightning() { m_LightningSecondsLeft = 0.45F; } + + /// Constructor. + /// @param settings The settings to use, not owned. Read every frame, so they can be changed live. + explicit SceneLighting(LightingSettings& settings); + ~SceneLighting(); + + /// Gets the tunable settings. + LightingSettings& GetSettings() { return m_Settings; } + + /// Updates the world light grid from the terrain and propagates sky light. Call once per frame before lighting any player screens. + void Update(); + + /// Lights a player screen in place. + /// @param playerScreen The render target holding the unlit scene for this player screen. + /// @param screenOrigin Scene position of the player screen's top left pixel. + /// @param screenEffects Glow effects visible on this screen, with positions relative to the screen. + void LightPlayerScreen(int screenIndex, RenderTarget* playerScreen, const Vector& screenOrigin, const std::list& screenEffects, const std::vector& screenLights, const std::vector& screenShockwaves); + + /// Forces the world light grid to be rebuilt from scratch, e.g. after the scene's terrain changed wholesale. + void InvalidateWorld() { m_WorldScene = nullptr; } + + /// Gets the linear daylight tint for a time of day. + /// @param hours Time of day in hours, 0 to 24. + /// @return The daylight tint, white at noon. + static glm::vec3 GetDaylightTint(float hours); + + /// Prepares the terrain shader (scorch marks, cooling hot spots) for this frame and returns it, to set as the current shader while terrain layers are drawn. + /// @return The terrain shader, or nullptr if there's no scene. + const Shader* PrepareTerrainShader(); + + /// Gets statistics from the last frame, for the Graphics Lab. + int GetLastLightCount() const { return m_LastLightCount; } + int GetGridCellSize() const { return m_CellSize; } + int GetGridWidth() const { return m_GridWidth; } + int GetGridHeight() const { return m_GridHeight; } + + /// Gets the first player screen's average scene luminance and the exposure auto exposure applied, for the Graphics Lab. Reading them stalls the GPU, so only while it's shown. + /// @param averageLuminance The adapted average luminance. + /// @param autoExposure The exposure multiplier from auto exposure. + void ReadAutoExposure(float& averageLuminance, float& autoExposure) const; + + private: + /// A GL texture with an optional framebuffer. + struct GLTarget { + GLuint Texture = 0; + GLuint Framebuffer = 0; + int Width = 0; + int Height = 0; + + void Create(int width, int height, GLenum internalFormat, GLenum format, GLenum type, GLint filter, GLint wrapS, GLint wrapT, bool withFramebuffer); + void Destroy(); + }; + + /// A light or emissive quad vertex, positioned in screen pixels. + struct QuadVertex { + float X, Y, Z; + float U, V; + float R, G, B, A; + float CenterX, CenterY, Radius; + float ConeX = 1.0F, ConeY = 0.0F, ConeCos = -2.0F; //!< Cone lights: direction and cosine of the half angle (below -1 for none). + }; + + /// Cached properties of a glow sprite. + struct GlowInfo { + glm::vec3 LightColor; //!< Average color of the glow's lit pixels, linear. + float Size; //!< The larger of the glow's dimensions. + }; + + LightingSettings& m_Settings; + + const void* m_WorldScene = nullptr; //!< The scene the world grid was built for. + const void* m_WorldMaterialBitmap = nullptr; //!< The terrain material bitmap the world grid was built from. + int m_SceneWidth = 0; + int m_SceneHeight = 0; + int m_CellSize = 4; //!< Size of a world grid cell, in scene pixels. + int m_GridWidth = 0; + int m_GridHeight = 0; + bool m_WrapX = false; + bool m_WrapY = false; + std::vector m_Occupancy; //!< Terrain coverage per grid cell, 0 air .. 255 solid. + std::vector m_Skyline; //!< Per grid column, the row of the first mostly solid cell, normalized by grid height. + int m_NextRefreshRow = 0; //!< Row the round-robin terrain refresh continues from. + int m_FrameCounter = 0; + int m_LastLightCount = 0; + long long m_LastSimUpdateCount = -1; //!< For advancing the time of day in sim time. + glm::vec3 m_EffectiveSky{1.0F}; //!< Sky light after time of day, this frame. + glm::vec3 m_EffectiveAmbient{1.0F}; //!< Ambient light after time of day, this frame. + glm::vec3 m_EffectiveForegroundAmbient{1.0F}; //!< Foreground light floor after time of day, this frame. + float m_NightSky = 0.0F; //!< How visible the stars and moon are, this frame. + float m_SnowCover = 0.0F; //!< How deep snow has settled on exposed ground, 0 to 1. Builds up while it snows, melts otherwise. + float m_Wetness = 0.0F; //!< How wet exposed ground is from rain, 0 to 1. + float m_MoonHours = 0.0F; //!< Where the moon is along its path across the sky, in sun-path hours (6 rising, 18 setting). + float m_Lightning = 0.0F; //!< Current lightning flash brightness. + float m_LightningSecondsLeft = 0.0F; //!< Time left in the current flash. + float m_NextLightningSeconds = 8.0F; //!< Sim seconds until the next flash. + long long m_LightningLastSimUpdate = -1; + unsigned int m_LightningRandom = 12345u; //!< Render-only random state, so lightning never touches the sim's random numbers. + + GLTarget m_OccupancyTexture; + GLTarget m_SkylineTexture; + GLTarget m_SkyLight[2]; //!< Ping-ponged sky light propagation buffers. + GLTarget m_Scorch; //!< World space soot darkness, R. + GLTarget m_Stains; //!< World space liquid stains, RGB color and A coverage, same cells as m_Scorch. + int m_ScorchCellSize = 2; //!< Size of a scorch map texel, in scene pixels. + int m_CurrentSkyLight = 0; + + int m_ScreenWidth = 0; + int m_ScreenHeight = 0; + GLTarget m_DynamicLight; + GLTarget m_Emissive; + GLTarget m_Distortion; //!< Screen space displacement in pixels, RG. + GLTarget m_GodRays; //!< Half resolution light shafts. + static constexpr int c_IndirectMipCount = 4; + GLTarget m_IndirectMips[c_IndirectMipCount]; //!< Downsample chain of the lit scene, the smallest is the next frame's indirect light. + static constexpr int c_MaxScreens = 4; + GLTarget m_IndirectHistory[c_MaxScreens]; //!< Per player screen, last frame's heavily blurred lit scene. + glm::vec2 m_IndirectHistoryOrigin[c_MaxScreens]; //!< Per player screen, the screen origin the history was made at, for reprojection. + bool m_IndirectHistoryValid[c_MaxScreens] = {}; + GLTarget m_HDRScene; + static constexpr int c_BloomMipCount = 5; + GLTarget m_BloomMips[c_BloomMipCount]; + static constexpr int c_RCCascadeCount = 5; + GLTarget m_SmokeDensity; //!< Half resolution smoke density, for light scattering in smoke. + GLTarget m_RCScene; //!< Half resolution radiance cascades input: light and occluders. + GLTarget m_RCCascades[2]; //!< Ping-ponged cascades, the last one written is cascade 0. + GLTarget m_RCIrradiance; //!< Quarter resolution light from radiance cascades. + GLTarget m_RCPreviousLit[c_MaxScreens]; //!< Per player screen, last frame's lit scene at half resolution, for bounces. + glm::vec2 m_RCPreviousOrigin[c_MaxScreens]; //!< Per player screen, the screen origin m_RCPreviousLit was made at. + bool m_RCPreviousValid[c_MaxScreens] = {}; + GLTarget m_Luminance; //!< Power of two log luminance of the HDR scene, with mipmaps, for auto exposure. + int m_LuminanceMaxLod = 0; + GLTarget m_AdaptedLuminance[c_MaxScreens][2]; //!< Per player screen, ping-ponged 1x1 adapted log luminance. + int m_AdaptedLuminanceCurrent[c_MaxScreens] = {}; + bool m_AdaptedLuminanceValid[c_MaxScreens] = {}; + double m_LastAdaptSeconds[c_MaxScreens] = {}; + + std::unique_ptr m_PropagateShader; + std::unique_ptr m_PointLightShader; + std::unique_ptr m_CompositeShader; + std::unique_ptr m_EmissiveShader; + std::unique_ptr m_BloomDownsampleShader; + std::unique_ptr m_BloomUpsampleShader; + std::unique_ptr m_TonemapShader; + std::unique_ptr m_LitParticleShader; + std::unique_ptr m_SmokeScatterShader; + std::unique_ptr m_RCSceneShader; + std::unique_ptr m_RCCascadeShader; + std::unique_ptr m_RCIrradianceShader; + std::unique_ptr m_LuminanceShader; + std::unique_ptr m_ExposureAdaptShader; + std::unique_ptr m_ShockwaveShader; + std::unique_ptr m_PrecipitationShader; + std::unique_ptr m_GodRaysShader; + std::unique_ptr m_GodRaysApplyShader; + std::unique_ptr m_ScorchShader; + std::unique_ptr m_StainShader; + std::unique_ptr m_TerrainShader; + GLuint m_EmptyVAO = 0; //!< For draws that generate their vertices from gl_VertexID. + + GLuint m_FullscreenVAO = 0; + GLuint m_FullscreenVBO = 0; + GLuint m_QuadVAO = 0; + GLuint m_QuadVBO = 0; + GLuint m_QuadIBO = 0; + size_t m_QuadIndexCapacity = 0; + std::vector m_QuadVertices; + + std::unordered_map m_GlowInfoCache; + + void LoadShaders(); + void CreateGeometry(); + + /// Rebuilds the world grid if the scene changed. Returns false if there's no scene. + bool EnsureWorldResources(); + void DestroyWorldResources(); + void EnsureScreenResources(int width, int height); + void DestroyScreenResources(); + + /// Recomputes occupancy for a range of grid rows from the terrain material layer. + void RefreshOccupancyRows(int firstRow, int endRow); + void RecomputeSkyline(); + void UploadOccupancyRows(int firstRow, int endRow); + void PropagateSkyLight(int iterations); + void StampScorchMarks(); + void StampStains(); + + const GlowInfo& GetGlowInfo(const BitmapTexture* glowTexture); + + void DrawFullscreen() const; + /// Uploads m_QuadVertices and draws them as quads. + void DrawQuads(size_t firstQuad, size_t quadCount); + void UploadQuads(); + }; +} // namespace RTE diff --git a/Source/Renderer/Shader.cpp b/Source/Renderer/Shader.cpp index 0e6134253d..e48da99877 100644 --- a/Source/Renderer/Shader.cpp +++ b/Source/Renderer/Shader.cpp @@ -3,11 +3,12 @@ #include "glm/glm.hpp" #include "glm/gtc/type_ptr.hpp" #include "GLCheck.h" -#include "GLResourceMan.h" +#include "GLStateMan.h" #include "PresetMan.h" #include "ConsoleMan.h" #include "System.h" #include "RTEError.h" +#include "RenderMan.h" #include "raylib/rlgl.h" @@ -21,7 +22,7 @@ Shader::Shader() : m_ProgramID(0), m_TextureUniform(-1), m_ColorUniform(-1), m_TransformUniform(-1), m_ProjectionUniform(-1) {} Shader::Shader(const std::string& vertexFilename, const std::string& fragPath) : - m_ProgramID(g_GLResourceMan.MakeGLProgram()), m_TextureUniform(-1), m_ColorUniform(-1), m_TransformUniform(-1), m_ProjectionUniform(-1) { + m_ProgramID(g_GLStateMan.MakeGLProgram()), m_TextureUniform(-1), m_ColorUniform(-1), m_TransformUniform(-1), m_ProjectionUniform(-1) { Compile(vertexFilename, fragPath); } @@ -45,7 +46,7 @@ int Shader::Create() { if (m_FragmentPath.empty() || m_VertexPath.empty()) { return -1; } - m_ProgramID = g_GLResourceMan.MakeGLProgram(); + m_ProgramID = g_GLStateMan.MakeGLProgram(); Compile(m_VertexPath, m_FragmentPath); return 0; } @@ -73,13 +74,17 @@ bool Shader::Compile(const std::string& vertexPath, const std::string& fragPath) std::string error; result = CompileShader(vertexShader, g_PresetMan.GetFullModulePath(vertexPath), error) && CompileShader(fragmentShader, g_PresetMan.GetFullModulePath(fragPath), error); if (result) { - GL_CHECK(glBindAttribLocation(m_ProgramID, 0, "rteVertexPosition")); - GL_CHECK(glBindAttribLocation(m_ProgramID, 1, "rteVertexTexUV")); - GL_CHECK(glBindAttribLocation(m_ProgramID, 3, "rteVertexColor")); + GL_CHECK(glBindAttribLocation(m_ProgramID, VertexAttribLocation::VERTEX, "rteVertexPosition")); + GL_CHECK(glBindAttribLocation(m_ProgramID, VertexAttribLocation::TEXTURECOORDINATE, "rteVertexTexUV")); + GL_CHECK(glBindAttribLocation(m_ProgramID, VertexAttribLocation::NORMAL, "rteNormal")); + GL_CHECK(glBindAttribLocation(m_ProgramID, VertexAttribLocation::COLOR, "rteVertexColor")); + GL_CHECK(glBindAttribLocation(m_ProgramID, VertexAttribLocation::LIGHTCONE, "rteLightCone")); if (Link(vertexShader, fragmentShader)) { m_TextureUniform = GetUniformLocation("rteTexture"); + m_PaletteUniform = GetUniformLocation("rtePalette"); m_ColorUniform = GetUniformLocation("rteColor"); m_TransformUniform = GetUniformLocation("rteTransform"); + m_ViewUniform = GetUniformLocation("rteView"); m_UVTransformUniform = GetUniformLocation("rteUVTransform"); m_ProjectionUniform = GetUniformLocation("rteProjection"); } else { @@ -97,35 +102,69 @@ bool Shader::Compile(const std::string& vertexPath, const std::string& fragPath) return true; } -void Shader::Enable() { +void Shader::Enable() const { rlEnableShader(m_ProgramID); } void Shader::Begin() const { - rlSetShader(m_ProgramID, m_Locations.data()); + //rlSetShader(m_ProgramID, m_Locations.data()); + g_RenderMan.SetCurrentShader(this); glUseProgram(m_ProgramID); } void Shader::End() const { - rlSetShader(rlGetShaderIdDefault(), rlGetShaderLocsDefault()); - rlDisableShader(); - rlClearActiveTextures(); + g_RenderMan.SetCurrentShader(g_RenderMan.GetDefaultShader()); } GLint Shader::GetUniformLocation(const std::string& name) const { return glGetUniformLocation(m_ProgramID, name.c_str()); } void Shader::SetBool(const std::string& name, bool value) const { GL_CHECK(glUniform1i(glGetUniformLocation(m_ProgramID, name.c_str()), static_cast(value))); } +template <> +void BoolValue::Enable() { + GL_CHECK(glUniform1i(m_UniformLocation, m_Value)); +} + void Shader::SetInt(const std::string& name, int value) const { GL_CHECK(glUniform1i(glGetUniformLocation(m_ProgramID, name.c_str()), value)); } +template <> +void IntValue::Enable() { + GL_CHECK(glUniform1i(m_UniformLocation, m_Value)); +} + void Shader::SetFloat(const std::string& name, float value) const { GL_CHECK(glUniform1f(glGetUniformLocation(m_ProgramID, name.c_str()), value)); } +template <> +void FloatValue::Enable() { + GL_CHECK(glUniform1f(m_UniformLocation, m_Value)); +} + void Shader::SetMatrix4f(const std::string& name, const glm::mat4& value) const { GL_CHECK(glUniformMatrix4fv(glGetUniformLocation(m_ProgramID, name.c_str()), 1, GL_FALSE, glm::value_ptr(value))); } +template <> +void Matrix4fValue::Enable() { + GL_CHECK(glUniformMatrix4fv(m_UniformLocation, 1, GL_FALSE, glm::value_ptr(m_Value))); +} + void Shader::SetVector2f(const std::string& name, const glm::vec2& value) const { GL_CHECK(glUniform2fv(glGetUniformLocation(m_ProgramID, name.c_str()), 1, glm::value_ptr(value))); } +template <> +void Vector2fValue::Enable() { + GL_CHECK(glUniform2fv(m_UniformLocation, 1, glm::value_ptr(m_Value))); +} + void Shader::SetVector3f(const std::string& name, const glm::vec3& value) const { GL_CHECK(glUniform3fv(glGetUniformLocation(m_ProgramID, name.c_str()), 1, glm::value_ptr(value))); } +template <> +void Vector3fValue::Enable() { + GL_CHECK(glUniform3fv(m_UniformLocation, 1, glm::value_ptr(m_Value))); +} + void Shader::SetVector4f(const std::string& name, const glm::vec4& value) const { GL_CHECK(glUniform4fv(glGetUniformLocation(m_ProgramID, name.c_str()), 1, glm::value_ptr(value))); } +template <> +void Vector4fValue::Enable() { + GL_CHECK(glUniform4fv(m_UniformLocation, 1, glm::value_ptr(m_Value))); +} + void Shader::SetBool(int32_t uniformLoc, bool value) const { GL_CHECK(glUniform1i(uniformLoc, value)); } void Shader::SetInt(int32_t uniformLoc, int value) const { GL_CHECK(glUniform1i(uniformLoc, value)); } @@ -174,6 +213,9 @@ bool Shader::CompileShader(GLuint shaderID, const std::string& filename, std::st } bool Shader::Link(GLuint vtxShader, GLuint fragShader) { + assert(glLinkProgram); + assert(vtxShader); + assert(fragShader); GL_CHECK(glAttachShader(m_ProgramID, vtxShader)); GL_CHECK(glAttachShader(m_ProgramID, fragShader)); diff --git a/Source/Renderer/Shader.h b/Source/Renderer/Shader.h index 14e51df99c..357d903449 100644 --- a/Source/Renderer/Shader.h +++ b/Source/Renderer/Shader.h @@ -9,6 +9,42 @@ #include namespace RTE { + class UniformValueType { + public: + UniformValueType(GLint uniformLocation): m_UniformLocation(uniformLocation) {} + virtual ~UniformValueType() = default; + virtual void Enable() = 0; + protected: + GLint m_UniformLocation{0}; + }; + + template + class UniformValue: public UniformValueType { + public: + UniformValue(GLint uniformLocation, T value): UniformValueType(uniformLocation), m_Value(std::move(value)) {} + void Enable() override; + private: + T m_Value{}; + }; + + + using BoolValue = UniformValue; + using IntValue = UniformValue; + using FloatValue = UniformValue; + using Matrix4fValue = UniformValue; + using Vector2fValue = UniformValue; + using Vector3fValue = UniformValue; + using Vector4fValue = UniformValue; + using Matrix4fvValue = UniformValue>; + + enum VertexAttribLocation:GLuint { + VERTEX, + TEXTURECOORDINATE, + COLOR, + NORMAL, + LIGHTCONE //!< Light quads: xy cone direction, z cosine of the cone's half angle (below -1 for no cone). + }; + class Shader: public Entity { public: EntityAllocation(Shader); @@ -39,7 +75,7 @@ namespace RTE { bool Compile(const std::string& vertexFilename, const std::string& fragPath); /// Enables the shader program for use. Always enable before setting uniforms. - void Enable(); + void Enable() const; /// Begin shader draw mode. Flushes the active batch and enables this shader. void Begin() const; @@ -54,6 +90,9 @@ namespace RTE { /// A GLint containing the location of the requested uniform. int32_t GetUniformLocation(const std::string& name) const; + /// Gets the GL program object of this shader. + GLuint GetProgramID() const { return m_ProgramID; } + /// Set a boolean uniform value in the active program by name. /// @param name /// The name of the uniform to set. @@ -160,6 +199,8 @@ namespace RTE { /// The location of the texture uniform. This may be -1 if the shader doesn't use textures, in which case the value will be ignored. int GetTextureUniform() const { return m_TextureUniform; } + int GetPaletteUniform() const { return m_PaletteUniform; } + /// Get the location of the color modifier uniform. /// @return /// The location of the color modifier uniform. This may be -1 if the shader doesn't use the color mod, in which case the value will be ignored. @@ -175,6 +216,10 @@ namespace RTE { /// The location of the UV transformation matrix uniform. This may be -1 if the shader doesn't use UV transforms, in which case the value will be ignored. int GetUVTransformUniform() const { return m_UVTransformUniform; } + /// Get the location of the view matrix uniform. + /// @return The location of the view matrix uniform. May be -1 if the shader doesn't support view transformation. + int GetViewUniform() const { return m_ViewUniform; } + /// Get the location of the projection matrix uniform. /// @return /// The location of the color modifier uniform. This may be -1 if the shader doesn't apply projection, in which case the value will be ignored. @@ -212,10 +257,12 @@ namespace RTE { std::array m_Locations{}; - GLint m_TextureUniform{0}; //!< Location of the texture uniform (sampler2d rteTexture). - GLint m_ColorUniform{0}; //!< Location of the colormod uniform (vec4 rteColor). - GLint m_TransformUniform{0}; //!< Location of the transform uniform (mat4 rteTransform). - GLint m_UVTransformUniform{0}; //!< Location of the UV transform uniform (mat4 rteUVTransform). - GLint m_ProjectionUniform{0}; //!< Location of the projection uniform (mat4 rteProjection). + GLint m_TextureUniform{-1}; //!< Location of the texture uniform (sampler2d rteTexture). + GLint m_PaletteUniform{-1}; + GLint m_ColorUniform{-1}; //!< Location of the colormod uniform (vec4 rteColor). + GLint m_TransformUniform{-1}; //!< Location of the transform uniform (mat4 rteTransform). + GLint m_ViewUniform{-1}; //!< Location of the view matrix uniform (mat4 rteView). + GLint m_UVTransformUniform{-1}; //!< Location of the UV transform uniform (mat4 rteUVTransform). + GLint m_ProjectionUniform{-1}; //!< Location of the projection uniform (mat4 rteProjection). }; } // namespace RTE diff --git a/Source/Renderer/Shapes.cpp b/Source/Renderer/Shapes.cpp new file mode 100644 index 0000000000..43b194eb36 --- /dev/null +++ b/Source/Renderer/Shapes.cpp @@ -0,0 +1,616 @@ +#include "Shapes.h" +#include "DrawCall.h" +#include "RenderMan.h" +#include "Constants.h" +#include "RTETools.h" +#include "tracy/Tracy.hpp" + +#include +#include + +using namespace RTE; + +namespace { + /// Number of segments to use for a curve of the given radius covering the given arc (radians), so curves stay smooth at any size without wasting vertices on tiny ones. + int SegmentsForArc(float radius, float arcRadians) { + int segments = static_cast(std::ceil(std::abs(arcRadians) * std::max(radius, 1.0f) / 2.0f)); + return std::clamp(segments, 4, 256); + } + + /// Appends a quad covering a line segment of the given thickness to a shape. + void AppendSegment(Shape::Shape& shape, glm::vec2 start, glm::vec2 end, float thickness, glm::u8vec4 color) { + glm::vec2 direction = end - start; + float length = glm::length(direction); + if (length < 0.0001f) { + direction = glm::vec2(1.0f, 0.0f); + length = 0.0f; + } else { + direction /= length; + } + // Extend half a pixel along the direction so the end pixels are covered like a rasterized line would. + glm::vec2 halfExtent = direction * 0.5f; + glm::vec2 normal = glm::vec2(-direction.y, direction.x) * (std::max(thickness, 1.0f) * 0.5f); + int base = static_cast(shape.m_Vertices.size()); + shape.m_Vertices.emplace_back(start - halfExtent + normal, color); + shape.m_Vertices.emplace_back(start - halfExtent - normal, color); + shape.m_Vertices.emplace_back(end + halfExtent - normal, color); + shape.m_Vertices.emplace_back(end + halfExtent + normal, color); + shape.m_Indices.insert(shape.m_Indices.end(), {base, base + 1, base + 2, base, base + 2, base + 3}); + } + + /// Appends a filled triangle fan around a center point through the given outline points. + void AppendFan(Shape::Shape& shape, glm::vec2 center, const std::vector& outline, glm::u8vec4 color, bool closed) { + if (outline.size() < 2) { + return; + } + int base = static_cast(shape.m_Vertices.size()); + shape.m_Vertices.emplace_back(center, color); + for (const glm::vec2& point: outline) { + shape.m_Vertices.emplace_back(point, color); + } + int count = static_cast(outline.size()); + for (int i = 0; i < count - 1; ++i) { + shape.m_Indices.insert(shape.m_Indices.end(), {base, base + 1 + i, base + 2 + i}); + } + if (closed) { + shape.m_Indices.insert(shape.m_Indices.end(), {base, base + count, base + 1}); + } + } + + /// Points along an elliptical arc. Angles are in degrees, measured like screen space (Y down). + std::vector ArcPoints(glm::vec2 center, float radiusH, float radiusV, float startAngle, float endAngle) { + float startRadians = DegreesToRadians(startAngle); + float endRadians = DegreesToRadians(endAngle); + int segments = SegmentsForArc(std::max(radiusH, radiusV), endRadians - startRadians); + std::vector points; + points.reserve(segments + 1); + for (int i = 0; i <= segments; ++i) { + float angle = startRadians + (endRadians - startRadians) * (static_cast(i) / static_cast(segments)); + points.emplace_back(center + glm::vec2(std::cos(angle) * radiusH, std::sin(angle) * radiusV)); + } + return points; + } + + std::shared_ptr Submit(Shape::Shape&& shape, GLenum drawMode = GL_TRIANGLES) { + std::shared_ptr draw = g_RenderMan.BeginDraw(); + // Append rather than move, so pooled draw calls keep their capacity. + draw->m_Vertices.insert(draw->m_Vertices.end(), shape.m_Vertices.begin(), shape.m_Vertices.end()); + draw->m_Indices.insert(draw->m_Indices.end(), shape.m_Indices.begin(), shape.m_Indices.end()); + draw->m_TextureId = g_RenderMan.GetShapeTexture(); + draw->m_Indexed = false; + draw->m_DrawMode = drawMode; + return draw; + } +} // namespace + +Shape::Shape Shape::Pixel(glm::vec2 position, Color color) { + return Rectangle(FloatRect(position.x, position.y, 1.0f, 1.0f), color); +} + +Shape::Shape Shape::Pixels(const std::vector>& positions, Color color) { + ZoneScoped; + Shape pixels; + glm::u8vec4 vertexColor = color; + pixels.m_Vertices.reserve(positions.size() * 4); + pixels.m_Indices.reserve(positions.size() * 6); + for (const auto& [x, y]: positions) { + int base = static_cast(pixels.m_Vertices.size()); + glm::vec2 corner(static_cast(x), static_cast(y)); + pixels.m_Vertices.emplace_back(corner, vertexColor); + pixels.m_Vertices.emplace_back(corner + glm::vec2(1.0f, 0.0f), vertexColor); + pixels.m_Vertices.emplace_back(corner + glm::vec2(1.0f, 1.0f), vertexColor); + pixels.m_Vertices.emplace_back(corner + glm::vec2(0.0f, 1.0f), vertexColor); + pixels.m_Indices.insert(pixels.m_Indices.end(), {base, base + 1, base + 2, base, base + 2, base + 3}); + } + return pixels; +} + +Shape::Shape Shape::Line(glm::vec2 start, glm::vec2 end, Color color) { + return Line(start, end, 1.0f, color); +} + +Shape::Shape Shape::Line(glm::vec2 start, glm::vec2 end, float thickness, Color color) { + ZoneScoped; + Shape line; + // Offset to pixel centers so 1px lines land exactly on the pixels a rasterizer would fill. + AppendSegment(line, start + glm::vec2(0.5f), end + glm::vec2(0.5f), thickness, color); + return line; +} + +Shape::Shape Shape::LineStrip(const std::vector& points, Color color) { + return LineStrip(points, 1.0f, color); +} + +Shape::Shape Shape::LineStrip(const std::vector& points, float thickness, Color color) { + ZoneScoped; + Shape strip; + for (size_t i = 1; i < points.size(); ++i) { + AppendSegment(strip, points[i - 1] + glm::vec2(0.5f), points[i] + glm::vec2(0.5f), thickness, color); + } + return strip; +} + +Shape::Shape Shape::LineBezier(glm::vec2 start, glm::vec2 end, Color color) { + // Simple S-curve between two points, matching raylib's DrawLineBezier. + glm::vec2 control = glm::vec2((start.x + end.x) * 0.5f, start.y); + glm::vec2 control2 = glm::vec2((start.x + end.x) * 0.5f, end.y); + return LineSpline({start, control, control2, end}, color); +} + +Shape::Shape Shape::LineSpline(const std::array& controlPoints, Color color) { + ZoneScoped; + float approximateLength = glm::length(controlPoints[1] - controlPoints[0]) + glm::length(controlPoints[2] - controlPoints[1]) + glm::length(controlPoints[3] - controlPoints[2]); + int segments = std::clamp(static_cast(approximateLength / 4.0f), 8, 128); + std::vector points; + points.reserve(segments + 1); + for (int i = 0; i <= segments; ++i) { + float t = static_cast(i) / static_cast(segments); + float u = 1.0f - t; + points.emplace_back(u * u * u * controlPoints[0] + 3.0f * u * u * t * controlPoints[1] + 3.0f * u * t * t * controlPoints[2] + t * t * t * controlPoints[3]); + } + return LineStrip(points, 1.0f, color); +} + +Shape::Shape Shape::Circle(glm::vec2 center, float radius, Color color) { + return Ellipse(center, radius, radius, color); +} + +Shape::Shape Shape::CircleSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color) { + ZoneScoped; + Shape sector; + AppendFan(sector, center + glm::vec2(0.5f), ArcPoints(center + glm::vec2(0.5f), radius, radius, startAngle, endAngle), color, false); + return sector; +} + +Shape::Shape Shape::CircleLines(glm::vec2 center, float radius, Color color) { + return EllipseLines(center, radius, radius, color); +} + +Shape::Shape Shape::CircleLinesSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color) { + return Ring(center, radius - 0.5f, radius + 0.5f, startAngle, endAngle, color); +} + +Shape::Shape Shape::Ellipse(glm::vec2 center, float radiusH, float radiusV, Color color) { + ZoneScoped; + Shape ellipse; + glm::vec2 pixelCenter = center + glm::vec2(0.5f); + // Radius + 0.5 so the filled area covers the same pixels as a rasterized circle of that radius. + std::vector outline = ArcPoints(pixelCenter, radiusH + 0.5f, radiusV + 0.5f, 0.0f, 360.0f); + outline.pop_back(); + AppendFan(ellipse, pixelCenter, outline, color, true); + return ellipse; +} + +Shape::Shape Shape::EllipseLines(glm::vec2 center, float radiusH, float radiusV, Color color) { + ZoneScoped; + Shape ellipse; + glm::vec2 pixelCenter = center + glm::vec2(0.5f); + std::vector inner = ArcPoints(pixelCenter, std::max(radiusH - 0.5f, 0.0f), std::max(radiusV - 0.5f, 0.0f), 0.0f, 360.0f); + std::vector outer = ArcPoints(pixelCenter, radiusH + 0.5f, radiusV + 0.5f, 0.0f, 360.0f); + glm::u8vec4 vertexColor = color; + for (size_t i = 0; i < inner.size(); ++i) { + ellipse.m_Vertices.emplace_back(inner[i], vertexColor); + ellipse.m_Vertices.emplace_back(outer[i], vertexColor); + } + for (int i = 0; i + 3 < static_cast(ellipse.m_Vertices.size()); i += 2) { + ellipse.m_Indices.insert(ellipse.m_Indices.end(), {i, i + 1, i + 2, i + 1, i + 3, i + 2}); + } + return ellipse; +} + +Shape::Shape Shape::Ring(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color) { + ZoneScoped; + Shape ring; + glm::vec2 pixelCenter = center + glm::vec2(0.5f); + std::vector inner = ArcPoints(pixelCenter, std::max(innerRadius, 0.0f), std::max(innerRadius, 0.0f), startAngle, endAngle); + std::vector outer = ArcPoints(pixelCenter, outerRadius, outerRadius, startAngle, endAngle); + glm::u8vec4 vertexColor = color; + for (size_t i = 0; i < inner.size(); ++i) { + ring.m_Vertices.emplace_back(inner[i], vertexColor); + ring.m_Vertices.emplace_back(outer[i], vertexColor); + } + for (int i = 0; i + 3 < static_cast(ring.m_Vertices.size()); i += 2) { + ring.m_Indices.insert(ring.m_Indices.end(), {i, i + 1, i + 2, i + 1, i + 3, i + 2}); + } + return ring; +} + +Shape::Shape Shape::RingLines(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color) { + ZoneScoped; + Shape ring; + std::vector inner = ArcPoints(center, innerRadius, innerRadius, startAngle, endAngle); + std::vector outer = ArcPoints(center, outerRadius, outerRadius, startAngle, endAngle); + glm::u8vec4 vertexColor = color; + for (size_t i = 1; i < inner.size(); ++i) { + AppendSegment(ring, inner[i - 1] + glm::vec2(0.5f), inner[i] + glm::vec2(0.5f), 1.0f, vertexColor); + AppendSegment(ring, outer[i - 1] + glm::vec2(0.5f), outer[i] + glm::vec2(0.5f), 1.0f, vertexColor); + } + AppendSegment(ring, inner.front() + glm::vec2(0.5f), outer.front() + glm::vec2(0.5f), 1.0f, vertexColor); + AppendSegment(ring, inner.back() + glm::vec2(0.5f), outer.back() + glm::vec2(0.5f), 1.0f, vertexColor); + return ring; +} + +Shape::Shape Shape::Rectangle(FloatRect rect, Color color) { + return Rectangle(rect, FloatRect(0.0f, 0.0f, 1.0f, 1.0f), color); +} + +Shape::Shape Shape::Rectangle(FloatRect rect, float angle, Color color) { + ZoneScoped; + Shape rectangle; + glm::vec2 center(rect.x + rect.w * 0.5f, rect.y + rect.h * 0.5f); + float cosAngle = std::cos(angle); + float sinAngle = std::sin(angle); + auto rotate = [&](glm::vec2 point) { + glm::vec2 local = point - center; + return center + glm::vec2(local.x * cosAngle - local.y * sinAngle, local.x * sinAngle + local.y * cosAngle); + }; + glm::u8vec4 vertexColor = color; + rectangle.m_Vertices = { + Vertex(rotate({rect.x, rect.y}), {0.0f, 0.0f}, vertexColor), + Vertex(rotate({rect.x + rect.w, rect.y + rect.h}), {1.0f, 1.0f}, vertexColor), + Vertex(rotate({rect.x + rect.w, rect.y}), {1.0f, 0.0f}, vertexColor), + Vertex(rotate({rect.x, rect.y + rect.h}), {0.0f, 1.0f}, vertexColor)}; + rectangle.m_Indices = {0, 1, 2, 0, 3, 1}; + return rectangle; +} + +Shape::Shape Shape::Rectangle(FloatRect rect, FloatRect uv, Color color) { + ZoneScoped; + Shape rectangle; + rectangle.m_Vertices = { + Vertex(glm::vec2(rect.x, rect.y), glm::vec2(uv.x, uv.y), color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w, rect.h), {uv.x + uv.w, uv.y + uv.h}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w, 0.0f), {uv.x + uv.w, uv.y}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(0.0f, rect.h), {uv.x, uv.y + uv.h}, color)}; + + rectangle.m_Indices = { + 0, 1, 2, + 0, 3, 1}; + + return rectangle; +} + +Shape::Shape Shape::RectangleLines(FloatRect rect, float thickness, Color color) { + ZoneScoped; + Shape rectangle; + rectangle.m_Vertices = { + Vertex(glm::vec2(rect.x, rect.y), {0.0f, 0.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w, rect.h), {1.0f, 1.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w, 0.0f), {1.0f, 0.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(0.0f, rect.h), {0.0f, 1.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(thickness, thickness), {0.0f, 0.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w - thickness, rect.h - thickness), {1.0f, 1.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(rect.w - thickness, thickness), {1.0f, 0.0f}, color), + Vertex(glm::vec2(rect.x, rect.y) + glm::vec2(thickness, rect.h - thickness), {0.0f, 1.0f}, color)}; + + rectangle.m_Indices = { + 0, 4, 2, + 4, 6, 2, + 2, 6, 1, + 1, 6, 5, + 5, 3, 1, + 5, 7, 3, + 0, 3, 7, + 0, 7, 4}; + + return rectangle; +} + +Shape::Shape Shape::RoundedRectangle(FloatRect rect, float cornerRadius, Color color) { + ZoneScoped; + float radius = std::clamp(cornerRadius, 0.0f, std::min(rect.w, rect.h) * 0.5f); + if (radius <= 0.0f) { + return Rectangle(rect, color); + } + std::vector outline; + auto appendCorner = [&](glm::vec2 cornerCenter, float startAngle) { + std::vector corner = ArcPoints(cornerCenter, radius, radius, startAngle, startAngle + 90.0f); + outline.insert(outline.end(), corner.begin(), corner.end()); + }; + appendCorner({rect.x + rect.w - radius, rect.y + radius}, -90.0f); + appendCorner({rect.x + rect.w - radius, rect.y + rect.h - radius}, 0.0f); + appendCorner({rect.x + radius, rect.y + rect.h - radius}, 90.0f); + appendCorner({rect.x + radius, rect.y + radius}, 180.0f); + Shape rounded; + AppendFan(rounded, {rect.x + rect.w * 0.5f, rect.y + rect.h * 0.5f}, outline, color, true); + return rounded; +} + +Shape::Shape Shape::RoundedRectangleLines(FloatRect rect, float cornerRadius, Color color) { + return RoundedRectangleLines(rect, cornerRadius, 1.0f, color); +} + +Shape::Shape Shape::RoundedRectangleLines(FloatRect rect, float cornerRadius, float thickness, Color color) { + ZoneScoped; + float radius = std::clamp(cornerRadius, 0.0f, std::min(rect.w, rect.h) * 0.5f); + std::vector outline; + auto appendCorner = [&](glm::vec2 cornerCenter, float startAngle) { + std::vector corner = ArcPoints(cornerCenter, radius, radius, startAngle, startAngle + 90.0f); + outline.insert(outline.end(), corner.begin(), corner.end()); + }; + // Inset by half a pixel so the outline lies on the edge pixels of the rectangle. + FloatRect inset(rect.x + 0.5f, rect.y + 0.5f, rect.w - 1.0f, rect.h - 1.0f); + appendCorner({inset.x + inset.w - radius, inset.y + radius}, -90.0f); + appendCorner({inset.x + inset.w - radius, inset.y + inset.h - radius}, 0.0f); + appendCorner({inset.x + radius, inset.y + inset.h - radius}, 90.0f); + appendCorner({inset.x + radius, inset.y + radius}, 180.0f); + outline.push_back(outline.front()); + Shape rounded; + for (size_t i = 1; i < outline.size(); ++i) { + AppendSegment(rounded, outline[i - 1], outline[i], thickness, color); + } + return rounded; +} + +Shape::Shape Shape::Triangle(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color) { + ZoneScoped; + Shape triangle; + glm::u8vec4 vertexColor = color; + triangle.m_Vertices = {Vertex(point1 + glm::vec2(0.5f), vertexColor), Vertex(point2 + glm::vec2(0.5f), vertexColor), Vertex(point3 + glm::vec2(0.5f), vertexColor)}; + triangle.m_Indices = {0, 1, 2}; + return triangle; +} + +Shape::Shape Shape::TriangleLines(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color) { + return LineStrip({point1, point2, point3, point1}, 1.0f, color); +} + +Shape::Shape Shape::TriangleStrip(std::vector points, Color color) { + ZoneScoped; + Shape strip; + glm::u8vec4 vertexColor = color; + for (const glm::vec2& point: points) { + strip.m_Vertices.emplace_back(point + glm::vec2(0.5f), vertexColor); + } + for (int i = 2; i < static_cast(points.size()); ++i) { + strip.m_Indices.insert(strip.m_Indices.end(), {i - 2, i - 1, i}); + } + return strip; +} + +Shape::Shape Shape::Polygon(std::vector points, Color color) { + ZoneScoped; + Shape polygon; + if (points.size() < 3) { + return polygon; + } + // Ear clipping, so concave polygons (which Allegro's polygon() supported) fill correctly. + std::vector pixelPoints; + pixelPoints.reserve(points.size()); + for (const glm::vec2& point: points) { + pixelPoints.emplace_back(point + glm::vec2(0.5f)); + } + glm::u8vec4 vertexColor = color; + for (const glm::vec2& point: pixelPoints) { + polygon.m_Vertices.emplace_back(point, vertexColor); + } + + float signedArea = 0.0f; + for (size_t i = 0; i < pixelPoints.size(); ++i) { + const glm::vec2& a = pixelPoints[i]; + const glm::vec2& b = pixelPoints[(i + 1) % pixelPoints.size()]; + signedArea += a.x * b.y - b.x * a.y; + } + float winding = signedArea >= 0.0f ? 1.0f : -1.0f; + + auto cross = [](glm::vec2 a, glm::vec2 b, glm::vec2 c) { return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x); }; + auto pointInTriangle = [&](glm::vec2 p, glm::vec2 a, glm::vec2 b, glm::vec2 c) { + float d1 = cross(a, b, p) * winding; + float d2 = cross(b, c, p) * winding; + float d3 = cross(c, a, p) * winding; + return d1 > 0.0f && d2 > 0.0f && d3 > 0.0f; + }; + + std::vector remaining(pixelPoints.size()); + for (int i = 0; i < static_cast(remaining.size()); ++i) { + remaining[i] = i; + } + int guard = static_cast(remaining.size()) * static_cast(remaining.size()); + while (remaining.size() > 3 && guard-- > 0) { + bool clipped = false; + for (size_t i = 0; i < remaining.size(); ++i) { + int prev = remaining[(i + remaining.size() - 1) % remaining.size()]; + int curr = remaining[i]; + int next = remaining[(i + 1) % remaining.size()]; + if (cross(pixelPoints[prev], pixelPoints[curr], pixelPoints[next]) * winding <= 0.0f) { + continue; + } + bool containsOther = false; + for (int other: remaining) { + if (other != prev && other != curr && other != next && pointInTriangle(pixelPoints[other], pixelPoints[prev], pixelPoints[curr], pixelPoints[next])) { + containsOther = true; + break; + } + } + if (containsOther) { + continue; + } + polygon.m_Indices.insert(polygon.m_Indices.end(), {prev, curr, next}); + remaining.erase(remaining.begin() + i); + clipped = true; + break; + } + if (!clipped) { + // Degenerate or self-intersecting polygon, fall back to a fan for whatever is left. + for (size_t i = 1; i + 1 < remaining.size(); ++i) { + polygon.m_Indices.insert(polygon.m_Indices.end(), {remaining[0], remaining[i], remaining[i + 1]}); + } + remaining.clear(); + } + } + if (remaining.size() == 3) { + polygon.m_Indices.insert(polygon.m_Indices.end(), {remaining[0], remaining[1], remaining[2]}); + } + return polygon; +} + +Shape::Shape Shape::PolygonLines(const std::vector& points, Color color) { + if (points.size() < 2) { + return {}; + } + std::vector closed = points; + closed.push_back(points.front()); + return LineStrip(closed, 1.0f, color); +} + +Shape::Shape Shape::Lines::VectorArrow(glm::vec2 pos, glm::vec2 vector, Color color) { + ZoneScoped; + Shape arrow; + arrow.m_Vertices = { + Vertex(pos, color), + Vertex(pos + vector, color), + Vertex(pos + vector - (std::sqrt(2.0f) / 10.0f * glm::vec2(vector.x - vector.y, vector.x + vector.y)), color), + Vertex(pos + vector - (std::sqrt(2.0f) / 10.0f * glm::vec2(vector.x + vector.y, -vector.x + vector.y)), color)}; + + arrow.m_Indices = {0, 1, 1, 2, 1, 3}; + + return arrow; +} + +Shape::Shape Shape::Lines::Rectangle(const FloatRect& rect, Color color) { + Shape rectangle; + rectangle.m_Vertices = { + Vertex(glm::vec2(rect.x, rect.y), color), + Vertex(glm::vec2(rect.x + rect.w, rect.y), color), + Vertex(glm::vec2(rect.x + rect.w, rect.y + rect.h), color), + Vertex(glm::vec2(rect.x, rect.y + rect.h), color), + }; + + rectangle.m_Indices = {0, 1, 2, 3}; + return rectangle; +} + +Shape::Shape Shape::Lines::Line(const glm::vec2& start, const glm::vec2& end, Color color) { + Shape line; + line.m_Vertices = { + Vertex(start, color), + Vertex(end, color)}; + line.m_Indices = {0, 1}; + return line; +} + +std::shared_ptr Draw::Pixel(glm::vec2 position, Color color) { + // Hot path (every MOPixel), so build the quad in place without temporary vectors. + std::shared_ptr draw = g_RenderMan.BeginDraw(); + glm::u8vec4 vertexColor = color; + draw->m_Vertices.emplace_back(position, glm::vec2(0.0f, 0.0f), vertexColor); + draw->m_Vertices.emplace_back(position + glm::vec2(1.0f, 1.0f), glm::vec2(1.0f, 1.0f), vertexColor); + draw->m_Vertices.emplace_back(position + glm::vec2(1.0f, 0.0f), glm::vec2(1.0f, 0.0f), vertexColor); + draw->m_Vertices.emplace_back(position + glm::vec2(0.0f, 1.0f), glm::vec2(0.0f, 1.0f), vertexColor); + draw->m_Indices.insert(draw->m_Indices.end(), {0, 1, 2, 0, 3, 1}); + draw->m_TextureId = g_RenderMan.GetShapeTexture(); + draw->m_Indexed = false; + return draw; +} + +std::shared_ptr Draw::Pixels(const std::vector>& positions, Color color) { + return Submit(Shape::Pixels(positions, color)); +} + +std::shared_ptr Draw::Line(glm::vec2 start, glm::vec2 end, Color color) { + return Submit(Shape::Line(start, end, color)); +} + +std::shared_ptr Draw::Line(glm::vec2 start, glm::vec2 end, float thickness, Color color) { + return Submit(Shape::Line(start, end, thickness, color)); +} + +std::shared_ptr Draw::LineStrip(const std::vector& points, Color color) { + return Submit(Shape::LineStrip(points, color)); +} + +std::shared_ptr Draw::LineStrip(const std::vector& points, float thickness, Color color) { + return Submit(Shape::LineStrip(points, thickness, color)); +} + +std::shared_ptr Draw::LineBezier(glm::vec2 start, glm::vec2 end, Color color) { + return Submit(Shape::LineBezier(start, end, color)); +} + +std::shared_ptr Draw::LineSpline(const std::array& controlPoints, Color color) { + return Submit(Shape::LineSpline(controlPoints, color)); +} + +std::shared_ptr Draw::Circle(glm::vec2 center, float radius, Color color) { + return Submit(Shape::Circle(center, radius, color)); +} + +std::shared_ptr Draw::CircleSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color) { + return Submit(Shape::CircleSector(center, radius, startAngle, endAngle, color)); +} + +std::shared_ptr Draw::CircleLines(glm::vec2 center, float radius, Color color) { + return Submit(Shape::CircleLines(center, radius, color)); +} + +std::shared_ptr Draw::CircleLinesSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color) { + return Submit(Shape::CircleLinesSector(center, radius, startAngle, endAngle, color)); +} + +std::shared_ptr Draw::Ellipse(glm::vec2 center, float radiusH, float radiusV, Color color) { + return Submit(Shape::Ellipse(center, radiusH, radiusV, color)); +} + +std::shared_ptr Draw::EllipseLines(glm::vec2 center, float radiusH, float radiusV, Color color) { + return Submit(Shape::EllipseLines(center, radiusH, radiusV, color)); +} + +std::shared_ptr Draw::Ring(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color) { + return Submit(Shape::Ring(center, innerRadius, outerRadius, startAngle, endAngle, color)); +} + +std::shared_ptr Draw::RingLines(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color) { + return Submit(Shape::RingLines(center, innerRadius, outerRadius, startAngle, endAngle, color)); +} + +std::shared_ptr Draw::Rectangle(FloatRect rect, Color color) { + return Submit(Shape::Rectangle(rect, color)); +} + +std::shared_ptr Draw::RectangleLines(const FloatRect& rect, float thickness, Color color) { + return Submit(Shape::RectangleLines(rect, thickness, color)); +} + +std::shared_ptr Draw::RoundedRectangle(FloatRect rect, float cornerRadius, Color color) { + return Submit(Shape::RoundedRectangle(rect, cornerRadius, color)); +} + +std::shared_ptr Draw::RoundedRectangleLines(FloatRect rect, float cornerRadius, Color color) { + return Submit(Shape::RoundedRectangleLines(rect, cornerRadius, color)); +} + +std::shared_ptr Draw::RoundedRectangleLines(FloatRect rect, float cornerRadius, float thickness, Color color) { + return Submit(Shape::RoundedRectangleLines(rect, cornerRadius, thickness, color)); +} + +std::shared_ptr Draw::Triangle(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color) { + return Submit(Shape::Triangle(point1, point2, point3, color)); +} + +std::shared_ptr Draw::TriangleLines(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color) { + return Submit(Shape::TriangleLines(point1, point2, point3, color)); +} + +std::shared_ptr Draw::TriangleStrip(std::vector points, Color color) { + return Submit(Shape::TriangleStrip(std::move(points), color)); +} + +std::shared_ptr Draw::Polygon(std::vector points, Color color) { + return Submit(Shape::Polygon(std::move(points), color)); +} + +std::shared_ptr Draw::PolygonLines(const std::vector& points, Color color) { + return Submit(Shape::PolygonLines(points, color)); +} + +std::shared_ptr Draw::Lines::VectorArrow(glm::vec2 pos, glm::vec2 vector, Color color) { + return Submit(Shape::Lines::VectorArrow(pos, vector, color), GL_LINES); +} + +std::shared_ptr Draw::Lines::Rectangle(const FloatRect& rect, Color color) { + return Submit(Shape::Lines::Rectangle(rect, color), GL_LINE_LOOP); +} + +std::shared_ptr Draw::Lines::Line(const glm::vec2& start, const glm::vec2& end, Color color) { + return Submit(Shape::Lines::Line(start, end, color), GL_LINES); +} diff --git a/Source/Renderer/Shapes.h b/Source/Renderer/Shapes.h new file mode 100644 index 0000000000..ff6443f8a2 --- /dev/null +++ b/Source/Renderer/Shapes.h @@ -0,0 +1,87 @@ +#pragma once +#include "Color.h" +#include "glm/fwd.hpp" +#include +#include +#include +#include "Vertex.h" + +namespace RTE { + class DrawCall; + /// Shapes are in scene/screen pixel space: a pixel at (x, y) covers [x, x+1). Angles for arcs/sectors/rings are in degrees. + namespace Shape { + struct Shape { + std::vector m_Vertices{}; + std::vector m_Indices{}; + }; + Shape Pixel(glm::vec2 position, Color color); + /// Many single pixels in one shape. + Shape Pixels(const std::vector>& positions, Color color); + Shape Line(glm::vec2 start, glm::vec2 end, Color color); + Shape Line(glm::vec2 start, glm::vec2 end, float thickness, Color color); + Shape LineStrip(const std::vector& points, Color color); + Shape LineStrip(const std::vector& points, float thickness, Color color); + Shape LineBezier(glm::vec2 start, glm::vec2 end, Color color); + /// Cubic bezier through 4 control points (start, guide A, guide B, end). + Shape LineSpline(const std::array& controlPoints, Color color); + Shape Circle(glm::vec2 center, float radius, Color color); + Shape CircleSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color); + Shape CircleLines(glm::vec2 center, float radius, Color color); + Shape CircleLinesSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color); + Shape Ellipse(glm::vec2 center, float radiusH, float radiusV, Color color); + Shape EllipseLines(glm::vec2 center, float radiusH, float radiusV, Color color); + Shape Ring(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color); + Shape RingLines(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color); + Shape Rectangle(FloatRect rect, Color color); + Shape Rectangle(FloatRect rect, float angle, Color color); + Shape Rectangle(FloatRect rect, FloatRect uv, Color color); + Shape RectangleLines(FloatRect rect, float thickness, Color color); + Shape RoundedRectangle(FloatRect rect, float cornerRadius, Color color); + Shape RoundedRectangleLines(FloatRect rect, float cornerRadius, Color color); + Shape RoundedRectangleLines(FloatRect rect, float cornerRadius, float thickness, Color color); + Shape Triangle(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color); + Shape TriangleLines(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color); + Shape TriangleStrip(std::vector points, Color color); + Shape Polygon(std::vector points, Color color); + Shape PolygonLines(const std::vector& points, Color color); + /// Lines mode shapes. Don't use for primitives. + namespace Lines { + Shape VectorArrow(glm::vec2 pos, glm::vec2 vector, Color color); + Shape Rectangle(const FloatRect& rect, Color color); + Shape Line(const glm::vec2& start, const glm::vec2& end, Color color); + } + } // namespace Shape + namespace Draw { + std::shared_ptr Pixel(glm::vec2 position, Color color); + std::shared_ptr Pixels(const std::vector>& positions, Color color); + std::shared_ptr Line(glm::vec2 start, glm::vec2 end, Color color); + std::shared_ptr Line(glm::vec2 start, glm::vec2 end, float thickness, Color color); + std::shared_ptr LineStrip(const std::vector& points, Color color); + std::shared_ptr LineStrip(const std::vector& points, float thickness, Color color); + std::shared_ptr LineBezier(glm::vec2 start, glm::vec2 end, Color color); + std::shared_ptr LineSpline(const std::array& controlPoints, Color color); + std::shared_ptr Circle(glm::vec2 center, float radius, Color color); + std::shared_ptr CircleSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color); + std::shared_ptr CircleLines(glm::vec2 center, float radius, Color color); + std::shared_ptr CircleLinesSector(glm::vec2 center, float radius, float startAngle, float endAngle, Color color); + std::shared_ptr Ellipse(glm::vec2 center, float radiusH, float radiusV, Color color); + std::shared_ptr EllipseLines(glm::vec2 center, float radiusH, float radiusV, Color color); + std::shared_ptr Ring(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color); + std::shared_ptr RingLines(glm::vec2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, Color color); + std::shared_ptr Rectangle(FloatRect rect, Color color); + std::shared_ptr RectangleLines(const FloatRect& rect, float thickness, Color color); + std::shared_ptr RoundedRectangle(FloatRect rect, float cornerRadius, Color color); + std::shared_ptr RoundedRectangleLines(FloatRect rect, float cornerRadius, Color color); + std::shared_ptr RoundedRectangleLines(FloatRect rect, float cornerRadius, float thickness, Color color); + std::shared_ptr Triangle(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color); + std::shared_ptr TriangleLines(glm::vec2 point1, glm::vec2 point2, glm::vec2 point3, Color color); + std::shared_ptr TriangleStrip(std::vector points, Color color); + std::shared_ptr Polygon(std::vector points, Color color); + std::shared_ptr PolygonLines(const std::vector& points, Color color); + namespace Lines { + std::shared_ptr VectorArrow(glm::vec2 pos, glm::vec2 vector, Color color); + std::shared_ptr Rectangle(const FloatRect& rect, Color color); + std::shared_ptr Line(const glm::vec2& start, const glm::vec2& end, Color color); + } + } // namespace Draw +} // namespace RTE diff --git a/Source/Renderer/TextOverlay.cpp b/Source/Renderer/TextOverlay.cpp new file mode 100644 index 0000000000..cff085ac4d --- /dev/null +++ b/Source/Renderer/TextOverlay.cpp @@ -0,0 +1,290 @@ +#include "TextOverlay.h" +#include "Camera.h" +#include "Draw.h" +#include "PresetMan.h" +#include "RenderMan.h" +#include "Texture.h" +#include "allegro.h" +#include "glad/gl.h" + +#include +#include +#include +#include +#include +#include +#include + +// ImGui vendors stb_truetype. Compile a private copy of its implementation here (static, so it doesn't clash with ImGui's). +#define STBTT_STATIC +#define STB_TRUETYPE_IMPLEMENTATION +#include "imstb_truetype.h" + +using namespace RTE; + +bool TextOverlay::s_Enabled = true; +int TextOverlay::s_Suspended = 0; + +namespace { + struct CapturedText { + std::string Text; + float X, Y; //!< Anchor in internal screen pixels. + TextOverlay::Align Align; + float LineHeight; //!< Internal pixels. + unsigned int Fill, Outline; + bool Shadow; + int ClipX, ClipY, ClipWidth, ClipHeight; //!< Internal pixels. + int BoxLeft, BoxTop, BoxRight, BoxBottom; //!< Where the text would have been in the target bitmap. + size_t BoxHash; //!< Hash of the target's pixels under the text when captured. + }; + + /// Hash of a rectangle of an 8 or 32 bit bitmap's pixels. + size_t HashRegion(const BITMAP* bitmap, int left, int top, int right, int bottom) { + left = std::clamp(left, 0, bitmap->w); + right = std::clamp(right, 0, bitmap->w); + top = std::clamp(top, 0, bitmap->h); + bottom = std::clamp(bottom, 0, bitmap->h); + int bytesPerPixel = bitmap_color_depth(const_cast(bitmap)) / 8; + size_t hash = 1469598103934665603ULL; + for (int y = top; y < bottom; ++y) { + const unsigned char* row = bitmap->line[y] + left * bytesPerPixel; + for (int i = 0; i < (right - left) * bytesPerPixel; ++i) { + hash = (hash ^ row[i]) * 1099511628211ULL; + } + } + return hash; + } + + size_t s_TargetFirstItem = 0; //!< Index of the first item captured for the current target. + + /// Glyphs of the font baked at one pixel size. + struct GlyphSet { + std::unique_ptr Atlas; + int AtlasWidth = 0; + int AtlasHeight = 0; + stbtt_packedchar Chars[95]{}; //!< Printable ASCII, 32 to 126. + float Ascent = 0.0F; + float Descent = 0.0F; + }; + + const BITMAP* s_Target = nullptr; + int s_TargetX = 0; + int s_TargetY = 0; + int s_TargetClipWidth = 0; + int s_TargetClipHeight = 0; + std::vector s_Pending; + std::vector s_Presented; + + std::vector s_FontData; + stbtt_fontinfo s_FontInfo{}; + bool s_FontLoadAttempted = false; + bool s_FontLoaded = false; + std::unordered_map> s_GlyphSets; + + bool LoadFont() { + if (s_FontLoadAttempted) { + return s_FontLoaded; + } + s_FontLoadAttempted = true; + std::ifstream file(g_PresetMan.GetFullModulePath("Base.rte/GUIs/Fonts/Roboto-Medium.ttf"), std::ios::binary); + if (!file) { + return false; + } + s_FontData.assign(std::istreambuf_iterator(file), std::istreambuf_iterator()); + s_FontLoaded = !s_FontData.empty() && stbtt_InitFont(&s_FontInfo, s_FontData.data(), stbtt_GetFontOffsetForIndex(s_FontData.data(), 0)) != 0; + return s_FontLoaded; + } + + const GlyphSet* GetGlyphSet(int pixelSize) { + auto found = s_GlyphSets.find(pixelSize); + if (found != s_GlyphSets.end()) { + return found->second.get(); + } + auto set = std::make_unique(); + int side = pixelSize <= 24 ? 256 : (pixelSize <= 48 ? 512 : 1024); + std::vector coverage(static_cast(side) * side, 0); + stbtt_pack_context pack; + if (!stbtt_PackBegin(&pack, coverage.data(), side, side, 0, 1, nullptr)) { + return nullptr; + } + stbtt_PackSetOversampling(&pack, 1, 1); + stbtt_PackFontRange(&pack, s_FontData.data(), 0, static_cast(pixelSize), 32, 95, set->Chars); + stbtt_PackEnd(&pack); + + GLuint texture = 0; + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, side, side, 0, GL_RED, GL_UNSIGNED_BYTE, coverage.data()); + // White glyphs with coverage as alpha, so the vertex color tints them. + GLint swizzle[] = {GL_ONE, GL_ONE, GL_ONE, GL_RED}; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzle); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glBindTexture(GL_TEXTURE_2D, 0); + set->Atlas = std::make_unique(texture); + set->AtlasWidth = side; + set->AtlasHeight = side; + + int ascent = 0; + int descent = 0; + int lineGap = 0; + stbtt_GetFontVMetrics(&s_FontInfo, &ascent, &descent, &lineGap); + float scale = stbtt_ScaleForPixelHeight(&s_FontInfo, static_cast(pixelSize)); + set->Ascent = static_cast(ascent) * scale; + set->Descent = static_cast(descent) * scale; + const GlyphSet* result = set.get(); + s_GlyphSets[pixelSize] = std::move(set); + return result; + } + + float MeasureWidth(const GlyphSet& glyphs, const std::string& text) { + float width = 0.0F; + for (char character: text) { + width += glyphs.Chars[static_cast(character) - 32].xadvance; + } + return width; + } + + /// Positions are window pixels from the top left; the window camera's y axis points up, so quads are flipped into it. + void DrawString(const GlyphSet& glyphs, const std::string& text, float x, float baseline, Color color, const std::optional& scissor, float windowHeight) { + float penX = x; + float penY = baseline; + for (char character: text) { + stbtt_aligned_quad quad; + stbtt_GetPackedQuad(glyphs.Chars, glyphs.AtlasWidth, glyphs.AtlasHeight, static_cast(character) - 32, &penX, &penY, &quad, 1); + if (quad.x1 <= quad.x0 || quad.y1 <= quad.y0) { + continue; + } + FloatRect source(quad.s0 * glyphs.AtlasWidth, quad.t0 * glyphs.AtlasHeight, (quad.s1 - quad.s0) * glyphs.AtlasWidth, (quad.t1 - quad.t0) * glyphs.AtlasHeight); + std::shared_ptr draw = Draw::DrawTexture(glyphs.Atlas.get(), source, FloatRect(quad.x0, windowHeight - quad.y0, quad.x1 - quad.x0, -(quad.y1 - quad.y0)), color); + draw->m_Scissor = scissor; + } + } + + Color FromRGB(unsigned int rgb, int alpha = 255) { + return Color(static_cast((rgb >> 16) & 0xFF), static_cast((rgb >> 8) & 0xFF), static_cast(rgb & 0xFF), alpha); + } +} // namespace + +void TextOverlay::SetTarget(const BITMAP* bitmap, int offsetX, int offsetY, int clipWidth, int clipHeight) { + s_Target = bitmap; + s_TargetX = offsetX; + s_TargetY = offsetY; + s_TargetClipWidth = clipWidth; + s_TargetClipHeight = clipHeight; + s_TargetFirstItem = s_Pending.size(); +} + +void TextOverlay::ClearTarget() { + if (s_Target) { + const BITMAP* target = s_Target; + auto firstItem = s_Pending.begin() + static_cast(std::min(s_TargetFirstItem, s_Pending.size())); + s_Pending.erase(std::remove_if(firstItem, s_Pending.end(), [target](const CapturedText& item) { return HashRegion(target, item.BoxLeft, item.BoxTop, item.BoxRight, item.BoxBottom) != item.BoxHash; }), s_Pending.end()); + } + s_Target = nullptr; +} + +bool TextOverlay::Capture(const BITMAP* target, int x, int y, const std::string& text, Align align, int lineHeight, unsigned int fillRGB, unsigned int outlineRGB, bool shadow, int bitmapWidth) { + if (!s_Enabled || s_Suspended > 0 || !target || target != s_Target || text.empty() || !LoadFont()) { + return false; + } + // Special characters (icons in the game's bitmap fonts) aren't in the TTF; keep those lines as they were. + for (char character: text) { + unsigned char code = static_cast(character); + if (code < 32 || code > 126) { + return false; + } + } + int boxLeft = align == Centre ? x - bitmapWidth / 2 : (align == Right ? x - bitmapWidth : x); + int boxRight = boxLeft + bitmapWidth; + size_t boxHash = HashRegion(target, boxLeft, y, boxRight, y + lineHeight); + s_Pending.push_back({text, static_cast(x + s_TargetX), static_cast(y + s_TargetY), align, static_cast(lineHeight), fillRGB, outlineRGB, shadow, s_TargetX, s_TargetY, s_TargetClipWidth, s_TargetClipHeight, boxLeft, y, boxRight, y + lineHeight, boxHash}); + return true; +} + +bool TextOverlay::HasPendingText() { + return !s_Pending.empty(); +} + +void TextOverlay::Render(int windowWidth, int windowHeight, int viewportX, int viewportY, int viewportWidth, int viewportHeight, int internalWidth, int internalHeight, bool redrawLast) { + if (!redrawLast) { + s_Presented.swap(s_Pending); + s_Pending.clear(); + } + if (s_Presented.empty() || internalWidth <= 0 || internalHeight <= 0 || !LoadFont()) { + return; + } + float scale = static_cast(viewportWidth) / static_cast(internalWidth); + // Window pixels, top left origin. + float originX = static_cast(viewportX); + float originY = static_cast(windowHeight - viewportY - viewportHeight); + + glViewport(0, 0, windowWidth, windowHeight); + glClear(GL_DEPTH_BUFFER_BIT); + Camera windowCamera(Vector(0.0F, 0.0F), Box(Vector(0.0F, 0.0F), static_cast(windowWidth), static_cast(windowHeight))); + g_RenderMan.BeginFrame(&windowCamera); + g_RenderMan.SetActiveBlendMode(Blend::ALPHA); + + for (const CapturedText& item: s_Presented) { + // Slightly smaller than the bitmap font's line, whose height includes its outline. + int pixelSize = std::max(8, static_cast(std::lround(item.LineHeight * scale * 0.95F))); + const GlyphSet* glyphs = GetGlyphSet(pixelSize); + if (!glyphs) { + continue; + } + float width = MeasureWidth(*glyphs, item.Text); + float x = originX + item.X * scale; + if (item.Align == Centre) { + x -= width * 0.5F; + } else if (item.Align == Right) { + x -= width; + } + x = std::round(x); + float lineTop = originY + item.Y * scale; + float textHeight = glyphs->Ascent - glyphs->Descent; + float baseline = std::round(lineTop + (item.LineHeight * scale - textHeight) * 0.5F + glyphs->Ascent); + + // Split screens clip text to their own screen. Scissor rectangles are in GL convention, from the bottom left. + std::optional scissor; + if (item.ClipWidth > 0 && item.ClipHeight > 0) { + float clipLeft = originX + static_cast(item.ClipX) * scale; + float clipTop = originY + static_cast(item.ClipY) * scale; + float clipWidth = static_cast(item.ClipWidth) * scale; + float clipHeight = static_cast(item.ClipHeight) * scale; + scissor = FloatRect(clipLeft, static_cast(windowHeight) - clipTop - clipHeight, clipWidth, clipHeight); + } + + // An outline like the bitmap fonts' baked one keeps text readable over anything; a drop shadow when asked for. + float outline = std::max(1.0F, std::round(scale * 0.6F)); + Color outlineColor = FromRGB(item.Outline, 255); + if (item.Shadow) { + DrawString(*glyphs, item.Text, x + outline * 2.0F, baseline + outline * 2.0F, FromRGB(item.Outline, 160), scissor, static_cast(windowHeight)); + } + for (int dy = -1; dy <= 1; ++dy) { + for (int dx = -1; dx <= 1; ++dx) { + if (dx != 0 || dy != 0) { + DrawString(*glyphs, item.Text, x + static_cast(dx) * outline, baseline + static_cast(dy) * outline, outlineColor, scissor, static_cast(windowHeight)); + } + } + } + DrawString(*glyphs, item.Text, x, baseline, FromRGB(item.Fill), scissor, static_cast(windowHeight)); + } + g_RenderMan.DrawActiveBatch(); + g_RenderMan.BeginFrame(nullptr); +} + +unsigned int TextOverlay::ToRGB(unsigned long color, int colorDepth) { + int red = getr_depth(colorDepth, static_cast(color)); + int green = getg_depth(colorDepth, static_cast(color)); + int blue = getb_depth(colorDepth, static_cast(color)); + return (static_cast(red) << 16) | (static_cast(green) << 8) | static_cast(blue); +} + +void TextOverlay::Destroy() { + s_GlyphSets.clear(); + s_Pending.clear(); + s_Presented.clear(); +} diff --git a/Source/Renderer/TextOverlay.h b/Source/Renderer/TextOverlay.h new file mode 100644 index 0000000000..e12bc87874 --- /dev/null +++ b/Source/Renderer/TextOverlay.h @@ -0,0 +1,87 @@ +#pragma once + +#include + +struct BITMAP; + +namespace RTE { + + /// High resolution HUD text. Text the HUD draws into its low resolution bitmap is captured instead of rasterized, and drawn with a TTF font + /// at the window's resolution after the frame is scaled up, so it stays crisp at any window size. Menus and GUI panels are composited on top + /// afterwards, so they still cover it. Only text aimed at registered target bitmaps (the HUD layers) is captured; everything else is unchanged. + class TextOverlay { + + public: + /// Horizontal alignment of captured text, matching GUIFont's. + enum Align { + Left = 0, + Centre = 1, + Right = 2 + }; + + /// Gets whether HUD text is drawn at high resolution. + static bool IsEnabled() { return s_Enabled; } + + /// Sets whether HUD text is drawn at high resolution. + static void SetEnabled(bool enabled) { s_Enabled = enabled; } + + /// Registers a bitmap whose text should be captured, and where it ends up on the internal resolution screen. + /// @param bitmap The target bitmap (a HUD layer). + /// @param offsetX Position of the bitmap's top left pixel on the screen, in internal pixels. + /// @param offsetY Position of the bitmap's top left pixel on the screen, in internal pixels. + /// @param clipWidth Size of the area of the screen text from this bitmap may cover, in internal pixels. + /// @param clipHeight Size of the area of the screen text from this bitmap may cover, in internal pixels. + static void SetTarget(const BITMAP* bitmap, int offsetX, int offsetY, int clipWidth, int clipHeight); + + /// Stops capturing text for the target bitmap. Text that something else was drawn over after it was captured is dropped, + /// since overlay text is drawn above the whole layer but in the bitmap it would have been covered. + static void ClearTarget(); + + /// Captures a line of text aimed at the target bitmap, instead of it being drawn into it. + /// @param target The bitmap the text was going to be drawn into. + /// @param x Anchor of the text in the bitmap, in pixels: its left edge, centre or right edge according to align. + /// @param y Top of the text line in the bitmap, in pixels. + /// @param text One line of text. + /// @param align How x anchors the text. + /// @param lineHeight Height of the original font's lines, in pixels. + /// @param fillRGB Text color, 0xRRGGBB. + /// @param outlineRGB Outline color, 0xRRGGBB. + /// @param shadow Whether the original asked for a drop shadow. + /// @param bitmapWidth Width the text would have had in the bitmap font, for detecting whether something is drawn over it later. + /// @return Whether the text was captured. If not, the caller draws it normally. + static bool Capture(const BITMAP* target, int x, int y, const std::string& text, Align align, int lineHeight, unsigned int fillRGB, unsigned int outlineRGB, bool shadow, int bitmapWidth); + + /// Pauses capturing while GUI controls draw: their text sits among other controls in the same layer and must keep its place in the drawing order. + static void SuspendCapture() { ++s_Suspended; } + + /// Resumes capturing after SuspendCapture. + static void ResumeCapture() { --s_Suspended; } + + /// Gets whether any text is waiting to be drawn this frame. + static bool HasPendingText(); + + /// Draws this frame's captured text to the window and keeps it for redrawing the same frame later. Clears the captured text. + /// @param windowWidth The window's size in pixels. + /// @param windowHeight The window's size in pixels. + /// @param viewportX The letterboxed game area in the window, GL convention (from the bottom left), in pixels. + /// @param viewportY The letterboxed game area in the window, GL convention (from the bottom left), in pixels. + /// @param viewportWidth The letterboxed game area in the window, in pixels. + /// @param viewportHeight The letterboxed game area in the window, in pixels. + /// @param internalWidth The internal resolution the HUD was laid out at. + /// @param internalHeight The internal resolution the HUD was laid out at. + /// @param redrawLast Draws the text of the last presented frame again instead (for redraws when the window is exposed). + static void Render(int windowWidth, int windowHeight, int viewportX, int viewportY, int viewportWidth, int viewportHeight, int internalWidth, int internalHeight, bool redrawLast = false); + + /// Converts a color value of a bitmap color depth to 0xRRGGBB. + /// @param color The color value; a palette index for 8 bit. + /// @param colorDepth The color depth the value is in. + static unsigned int ToRGB(unsigned long color, int colorDepth); + + /// Releases the font and its glyph textures. + static void Destroy(); + + private: + static bool s_Enabled; //!< Whether HUD text is drawn at high resolution. + static int s_Suspended; //!< Nesting count of SuspendCapture. + }; +} // namespace RTE diff --git a/Source/Renderer/Texture.cpp b/Source/Renderer/Texture.cpp new file mode 100644 index 0000000000..b44dfeaae5 --- /dev/null +++ b/Source/Renderer/Texture.cpp @@ -0,0 +1,289 @@ +#include "Texture.h" +#include "allegro.h" +#include "GLCheck.h" +#include "glad/gl.h" +#include +#include +#include + +using namespace RTE; + +Texture::Texture() : m_Dimensions() { + glGenTextures(1, &m_TextureID); +} + +Texture::~Texture() { + if (m_OwnsTexture) { + glDeleteTextures(1, &m_TextureID); + } +} + +Texture::Texture(GLuint textureId) : m_TextureID(textureId), m_Dimensions() { + glBindTexture(GL_TEXTURE_2D, m_TextureID); + glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &m_Dimensions.w); + glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &m_Dimensions.h); + glBindTexture(GL_TEXTURE_2D, 0); +} + +Texture::Texture(FloatRect dimensions, Filter filtering, WrapType wrapType, int bitDepth) : m_BitDepth(bitDepth), m_Dimensions(std::move(dimensions)) { + glGenTextures(1, &m_TextureID); + + Bind(); + + if (bitDepth == 8) { + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, m_Dimensions.w, m_Dimensions.h, 0, GL_RED, GL_UNSIGNED_BYTE, nullptr); + GLint swizzleMask[] = {GL_RED, GL_RED, GL_RED, GL_ONE}; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + } else { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_Dimensions.w, m_Dimensions.h, 0, bitDepth == 32 ? GL_RGBA : GL_RGB, GL_UNSIGNED_BYTE, nullptr); + } + + GLint wrap; + switch (wrapType) { + case WrapType::ClampToBorder: + wrap = GL_CLAMP_TO_BORDER; + break; + case WrapType::ClampToEdge: + wrap = GL_CLAMP_TO_EDGE; + break; + case RTE::WrapType::Repeat: + wrap = GL_REPEAT; + break; + } + + GLint textureMagFilter; + GLint textureMinFilter; + switch (filtering) { + case Filter::Linear: + textureMagFilter = GL_LINEAR; + textureMinFilter = GL_LINEAR; + break; + case Filter::LinearMipmap: + textureMagFilter = GL_LINEAR; + textureMinFilter = GL_LINEAR_MIPMAP_LINEAR; + break; + case Filter::Nearest: + textureMagFilter = GL_NEAREST; + textureMinFilter = GL_NEAREST; + break; + } + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, textureMagFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, textureMinFilter); + glBindTexture(GL_TEXTURE_2D, 0); +} + +void Texture::Bind() { + glBindTexture(GL_TEXTURE_2D, m_TextureID); +} + +BitmapTexture::BitmapTexture(std::unique_ptr bitmap, Filter filtering, WrapType clamp) : Texture(), m_Pixels(std::move(bitmap)), m_HaveAlpha(false) { + m_Dimensions = FloatRect(0.0f, 0.0f, m_Pixels->w, m_Pixels->h); + Bind(); + + m_BitDepth = bitmap_color_depth(m_Pixels.get()); + if (m_BitDepth == 8) { + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, m_Pixels->w, m_Pixels->h, 0, GL_RED, GL_UNSIGNED_BYTE, m_Pixels->dat); + GLint swizzleMask[] = {GL_RED, GL_RED, GL_RED, GL_ONE}; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + filtering = Filter::Nearest; + } else { + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_Pixels->w, m_Pixels->h, 0, m_BitDepth == 32 ? GL_RGBA : GL_RGB, GL_UNSIGNED_BYTE, m_Pixels->dat); + } + + GLint wrap; + switch (clamp) { + case WrapType::ClampToBorder: + wrap = GL_CLAMP_TO_BORDER; + break; + case WrapType::ClampToEdge: + wrap = GL_CLAMP_TO_EDGE; + break; + case RTE::WrapType::Repeat: + wrap = GL_REPEAT; + break; + } + + GLint textureMagFilter; + GLint textureMinFilter; + switch (filtering) { + case Filter::Linear: + textureMagFilter = GL_LINEAR; + textureMinFilter = GL_LINEAR; + break; + case Filter::LinearMipmap: + textureMagFilter = GL_LINEAR; + textureMinFilter = GL_LINEAR_MIPMAP_LINEAR; + break; + case Filter::Nearest: + textureMagFilter = GL_NEAREST; + textureMinFilter = GL_NEAREST; + break; + } + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, textureMagFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, textureMinFilter); + + if (filtering == Filter::LinearMipmap) { + glGenerateMipmap(GL_TEXTURE_2D); + } + + glBindTexture(GL_TEXTURE_2D, 0); +} + +namespace { + /// A sprite atlas page: an 8-bit texture filled with small sprites by simple shelf packing. + struct AtlasPage { + GLuint Texture = 0; + int ShelfX = 0; //!< Where the next sprite goes on the current shelf. + int ShelfY = 0; //!< Top of the current shelf. + int ShelfHeight = 0; //!< Height of the tallest sprite on the current shelf. + }; + constexpr int c_AtlasPageSize = 2048; + constexpr int c_AtlasMaxSpriteSize = 256; //!< Larger sprites keep their own texture. + // The sprite shader looks up to 2 texels around each pixel for edge normals, so keep sprites apart by that much transparency. + constexpr int c_AtlasPadding = 2; + std::vector s_AtlasPages; + int s_AtlasTextureCount = 0; + + GLuint CreateAtlasPage() { + GLuint texture = 0; + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + // Zero is the transparent palette index, so empty space and padding are see-through. + std::vector zeros(static_cast(c_AtlasPageSize) * c_AtlasPageSize, 0); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, c_AtlasPageSize, c_AtlasPageSize, 0, GL_RED, GL_UNSIGNED_BYTE, zeros.data()); + GLint swizzleMask[] = {GL_RED, GL_RED, GL_RED, GL_ONE}; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, swizzleMask); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glBindTexture(GL_TEXTURE_2D, 0); + return texture; + } + + /// Finds room for a w x h block (padding included) and returns the page index and top left corner. + bool AllocateAtlasSpace(int width, int height, int& pageIndex, int& x, int& y) { + for (size_t attempt = 0; attempt < 2; ++attempt) { + if (!s_AtlasPages.empty()) { + AtlasPage& page = s_AtlasPages.back(); + if (page.ShelfX + width > c_AtlasPageSize) { + // Start a new shelf below the current one. + page.ShelfY += page.ShelfHeight; + page.ShelfX = 0; + page.ShelfHeight = 0; + } + if (page.ShelfY + height <= c_AtlasPageSize && page.ShelfX + width <= c_AtlasPageSize) { + pageIndex = static_cast(s_AtlasPages.size()) - 1; + x = page.ShelfX; + y = page.ShelfY; + page.ShelfX += width; + page.ShelfHeight = std::max(page.ShelfHeight, height); + return true; + } + } + s_AtlasPages.push_back({CreateAtlasPage()}); + } + return false; + } +} // namespace + +bool BitmapTexture::MoveToAtlas() { + if (!m_OwnsTexture) { + return true; + } + BITMAP* bitmap = m_Pixels.get(); + if (!bitmap || bitmap_color_depth(bitmap) != 8 || bitmap->w > c_AtlasMaxSpriteSize || bitmap->h > c_AtlasMaxSpriteSize || bitmap->w < 1 || bitmap->h < 1) { + return false; + } + int pageIndex = 0; + int x = 0; + int y = 0; + if (!AllocateAtlasSpace(bitmap->w + c_AtlasPadding * 2, bitmap->h + c_AtlasPadding * 2, pageIndex, x, y)) { + return false; + } + x += c_AtlasPadding; + y += c_AtlasPadding; + glBindTexture(GL_TEXTURE_2D, s_AtlasPages[pageIndex].Texture); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + for (int row = 0; row < bitmap->h; ++row) { + glTexSubImage2D(GL_TEXTURE_2D, 0, x, y + row, bitmap->w, 1, GL_RED, GL_UNSIGNED_BYTE, bitmap->line[row]); + } + glBindTexture(GL_TEXTURE_2D, 0); + + glDeleteTextures(1, &m_TextureID); + m_TextureID = s_AtlasPages[pageIndex].Texture; + m_OwnsTexture = false; + float pageSize = static_cast(c_AtlasPageSize); + m_UVRect = FloatRect(static_cast(x) / pageSize, static_cast(y) / pageSize, static_cast(bitmap->w) / pageSize, static_cast(bitmap->h) / pageSize); + ++s_AtlasTextureCount; + return true; +} + +void BitmapTexture::GetAtlasStats(int& pageCount, int& textureCount) { + pageCount = static_cast(s_AtlasPages.size()); + textureCount = s_AtlasTextureCount; +} + +void BitmapTexture::Update() { + if (!m_OwnsTexture) { + Update(FloatRect(0.0f, 0.0f, m_Dimensions.w, m_Dimensions.h)); + return; + } + Bind(); + if (bitmap_color_depth(m_Pixels.get()) == 8) { + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, m_Pixels->w, m_Pixels->h, 0, GL_RED, GL_UNSIGNED_BYTE, m_Pixels->dat); + } else { + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_Pixels->w, m_Pixels->h, 0, m_BitDepth == 32 ? GL_RGBA : GL_RGB, GL_UNSIGNED_BYTE, m_Pixels->dat); + } + glBindTexture(GL_TEXTURE_2D, 0); +} + +void BitmapTexture::Update(const FloatRect& region) { + RTEAssert((region.x >= 0) && (region.y >= 0) && (region.x + region.w) <= m_Dimensions.w && (region.y + region.h) <= m_Dimensions.h, "Update area out of BITMAP bounds!"); + Bind(); + if (!m_OwnsTexture) { + // In an atlas: write into this texture's part of the page. + int offsetX = static_cast(std::lround(m_UVRect.x * c_AtlasPageSize)); + int offsetY = static_cast(std::lround(m_UVRect.y * c_AtlasPageSize)); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + for (int row = static_cast(region.y); row < static_cast(region.y + region.h); ++row) { + glTexSubImage2D(GL_TEXTURE_2D, 0, offsetX + static_cast(region.x), offsetY + row, static_cast(region.w), 1, GL_RED, GL_UNSIGNED_BYTE, m_Pixels->line[row] + static_cast(region.x)); + } + glBindTexture(GL_TEXTURE_2D, 0); + return; + } + int bitDepth = bitmap_color_depth(m_Pixels.get()); + glPixelStorei(GL_UNPACK_ROW_LENGTH, m_Dimensions.w); + if (bitDepth == 8) { + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexSubImage2D(GL_TEXTURE_2D, 0, region.x, region.y, region.w, region.h, GL_RED, GL_UNSIGNED_BYTE, m_Pixels->line[static_cast(region.y)] + static_cast(region.x)); + } else { + glPixelStorei(GL_UNPACK_ALIGNMENT, 4); + glTexSubImage2D(GL_TEXTURE_2D, 0, region.x, region.y, region.w, region.h, GL_RGBA, GL_UNSIGNED_BYTE, m_Pixels->line[static_cast(region.y)] + (static_cast(region.x) * 4)); + } + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + glBindTexture(GL_TEXTURE_2D, 0); +} + +DepthTexture::DepthTexture(FloatRect dimensions) : Texture(std::move(dimensions)) { + Bind(); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, m_Dimensions.w, m_Dimensions.h, 0, GL_DEPTH_COMPONENT, GL_FLOAT, nullptr); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); +} diff --git a/Source/Renderer/Texture.h b/Source/Renderer/Texture.h new file mode 100644 index 0000000000..1ccfdc3b1e --- /dev/null +++ b/Source/Renderer/Texture.h @@ -0,0 +1,94 @@ +#pragma once +#include "glm/fwd.hpp" +#include "Rectangles.h" +#include "Color.h" +#include "glad/gl.h" +#include +#include "DrawCall.h" +#include "AllegroTools.h" + +extern "C" { +typedef struct BITMAP BITMAP; +} + +namespace RTE { + enum class Filter { + Linear, + LinearMipmap, + Nearest + }; + + enum class WrapType { + ClampToBorder, + ClampToEdge, + Repeat + }; + + /// Abstraction for rectangular textures. + class Texture { + public: + Texture(); + Texture(GLuint textureId); + Texture(FloatRect dimensions, Filter filtering = Filter::Linear, WrapType wrap = WrapType::ClampToEdge, int bitDepth = 32); + virtual ~Texture(); + void Bind(); + GLuint GetTextureId() const { return m_TextureID; } + const FloatRect& GetDimensions() const { return m_Dimensions; } + int GetBitDepth() { return m_BitDepth; } + + /// Gets where this texture's pixels are inside its GL texture, in normalized coordinates. The whole texture unless it lives in an atlas. + const FloatRect& GetUVRect() const { return m_UVRect; } + + /// Maps normalized coordinates within this texture to coordinates in its GL texture. + FloatRect MapUV(const FloatRect& uv) const { return FloatRect(m_UVRect.x + uv.x * m_UVRect.w, m_UVRect.y + uv.y * m_UVRect.h, uv.w * m_UVRect.w, uv.h * m_UVRect.h); } + + protected: + GLuint m_TextureID{0}; + int m_BitDepth{32}; + FloatRect m_Dimensions; + FloatRect m_UVRect{0.0f, 0.0f, 1.0f, 1.0f}; //!< Where this texture's pixels are inside m_TextureID. + bool m_OwnsTexture{true}; //!< False when m_TextureID is a shared atlas page. + }; + + class BitmapTexture : public Texture { + public: + /// Constructs a texture from an allegro BITMAP. + /// @param bitmap Unique pointer to the BITMAP representing this texture's pixels. + /// @param filtering A Filter mode which is applied to the GL texture. Always set to Nearest for indexed images. + /// @param clamp The texture wrapping mode. + BitmapTexture(std::unique_ptr bitmap, Filter filtering = Filter::Linear, WrapType clamp = WrapType::ClampToEdge); + + /// Destructor. + ~BitmapTexture() = default; + + /// Returns the pixels of this BitmapTexture. + /// If the bitmap is modified, call Update to update the texture on the GPU as well. + /// @return (Non owning) Bitmap to the pixels. + BITMAP* GetBitmap() const { return m_Pixels.get(); } + + /// Update the pixels on GPU. + void Update(); + void Update(const FloatRect& region); + + /// Moves a small 8-bit texture into a shared sprite atlas page, so consecutive sprites can be drawn in one GL draw. + /// Its pixels are copied there and its own GL texture is freed. Does nothing for textures that aren't eligible. + /// @return Whether the texture is now in the atlas. + bool MoveToAtlas(); + + /// Gets how many atlas pages exist and how many textures they hold, for statistics. + static void GetAtlasStats(int& pageCount, int& textureCount); + + private: + std::unique_ptr m_Pixels; + bool m_HaveAlpha; + + public: + // explicit operator BITMAP*() { return m_Pixels.get(); } + }; + + class DepthTexture : public Texture { + public: + DepthTexture(FloatRect dimensions); + ~DepthTexture() = default; + }; +} // namespace RTE diff --git a/Source/Renderer/Vertex.cpp b/Source/Renderer/Vertex.cpp new file mode 100644 index 0000000000..b438ae8690 --- /dev/null +++ b/Source/Renderer/Vertex.cpp @@ -0,0 +1,13 @@ +#include "Vertex.h" +#include "RenderMan.h" + +#include + +using namespace RTE; + +Vertex::Vertex(glm::vec2 pos, glm::u8vec4 color) : Vertex(std::move(pos), glm::vec2(0.0f), g_RenderMan.GetActiveBatch()->m_CurrentZ, std::move(color)) {} + +Vertex::Vertex(glm::vec2 pos, glm::vec2 uv, glm::u8vec4 color) : Vertex(std::move(pos), std::move(uv), g_RenderMan.GetActiveBatch()->m_CurrentZ, std::move(color)) {} + +Vertex::Vertex(glm::vec2 pos, glm::vec2 uv, float layerDepth, glm::u8vec4 color) : + m_Pos(std::move(pos), layerDepth + g_RenderMan.GetActiveBatch()->m_CurrentDepth), m_TextureUV(std::move(uv)), m_Color(std::move(color)) {} diff --git a/Source/Renderer/Vertex.h b/Source/Renderer/Vertex.h new file mode 100644 index 0000000000..5db2523b1e --- /dev/null +++ b/Source/Renderer/Vertex.h @@ -0,0 +1,14 @@ +#pragma once +#include "glm/glm.hpp" + +namespace RTE { + struct Vertex { + Vertex(glm::vec2 pos, glm::u8vec4 color = {255, 255, 255, 255}); + Vertex(glm::vec2 pos, glm::vec2 uv, glm::u8vec4 color = {255, 255, 255, 255}); + Vertex(glm::vec2 pos, glm::vec2 uv, float layerDepth, glm::u8vec4 color = {255, 255, 255, 255}); + + glm::vec3 m_Pos{}; + glm::vec2 m_TextureUV{}; + glm::u8vec4 m_Color{}; + }; +} diff --git a/Source/Renderer/meson.build b/Source/Renderer/meson.build index 4a695aaebe..6b2137ec1f 100644 --- a/Source/Renderer/meson.build +++ b/Source/Renderer/meson.build @@ -1,13 +1,24 @@ sources += files( -'RenderTarget.cpp', -'Shader.cpp', -'BigTexture.cpp', -'glad/gl.c', 'raylib/rlgl.c', +'raylib/rlutils.c', 'raylib/rshapes.c', 'raylib/rtextures.c', -'raylib/rlutils.c', +'glad/gl.c', +'BigTexture.cpp', +'TextOverlay.cpp', +'EffectsParticles.cpp', +'BlendMode.cpp', +'Camera.cpp', +'Draw.cpp', 'GLCheck.cpp', +'GLState.cpp', 'GraphicalPrimitive.cpp', -'Draw.cpp', +'RenderBatch.cpp', +'RenderMan.cpp', +'RenderTarget.cpp', +'SceneLighting.cpp', +'Shader.cpp', +'Shapes.cpp', +'Texture.cpp', +'Vertex.cpp', ) diff --git a/Source/Renderer/raylib/raylib.h b/Source/Renderer/raylib/raylib.h index b663bc0547..40fd64df94 100644 --- a/Source/Renderer/raylib/raylib.h +++ b/Source/Renderer/raylib/raylib.h @@ -269,25 +269,23 @@ typedef struct Image { } Image; // Texture, tex data stored in GPU memory (VRAM) -typedef struct Texture { +typedef struct Texture2D { unsigned int id; // OpenGL texture id int width; // Texture base width int height; // Texture base height int mipmaps; // Mipmap levels, 1 by default int format; // Data format (PixelFormat type) -} Texture; +} Texture2D; -// Texture2D, same as Texture -typedef Texture Texture2D; // TextureCubemap, same as Texture -typedef Texture TextureCubemap; +typedef Texture2D TextureCubemap; // RenderTexture, fbo for texture rendering typedef struct RenderTexture { unsigned int id; // OpenGL framebuffer object id - Texture texture; // RLColor buffer attachment texture - Texture depth; // Depth buffer attachment texture + Texture2D texture; // RLColor buffer attachment texture + Texture2D depth; // Depth buffer attachment texture } RenderTexture; // RenderTexture2D, same as RenderTexture @@ -903,7 +901,7 @@ typedef enum { BLEND_ALPHA_PREMULTIPLY, // Blend premultiplied textures considering alpha BLEND_CUSTOM, // Blend textures using custom src/dst factors (use rlSetBlendFactors()) BLEND_CUSTOM_SEPARATE // Blend textures using custom rgb/alpha separate src/dst factors (use rlSetBlendFactorsSeparate()) -} BlendMode; +} rlBlendModeType; // // Gesture // // NOTE: Provided as bit-wise flags to enable only desired gestures diff --git a/Source/Renderer/raylib/rlgl.c b/Source/Renderer/raylib/rlgl.c index b83096a366..2db41801fc 100644 --- a/Source/Renderer/raylib/rlgl.c +++ b/Source/Renderer/raylib/rlgl.c @@ -1512,7 +1512,7 @@ static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint // Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states void rlglInit(int width, int height) { // Enable OpenGL debug context if required -#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) +#if false && defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) if (RLGL.ExtSupported.debug_output && (glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) { glDebugMessageCallback(rlDebugMessageCallback, 0); // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); @@ -4938,4 +4938,4 @@ static RLMatrix rlMatrixInvert(RLMatrix mat) { result.m15 = (a20 * b03 - a21 * b01 + a22 * b00) * invDet; return result; -} \ No newline at end of file +} diff --git a/Source/System/AllegroTools.cpp b/Source/System/AllegroTools.cpp index b369af20d6..b097e7444f 100644 --- a/Source/System/AllegroTools.cpp +++ b/Source/System/AllegroTools.cpp @@ -2,36 +2,39 @@ #include "allegro.h" #include "allegro/internal/aintern.h" -namespace RTE { - unsigned long TrueAlphaBlender(unsigned long x, unsigned long y, unsigned long n) { - // This is the original allegro alpha blender with added alpha component blending. - unsigned long res; - unsigned long green; - unsigned long alphaX = geta32(x); - unsigned long alphaY = geta32(y); - unsigned long alpha = 0; - - n = geta32(x); +using namespace RTE; +unsigned long RTE::TrueAlphaBlender(unsigned long x, unsigned long y, unsigned long n) { + // This is the original allegro alpha blender with added alpha component blending. + unsigned long res; + unsigned long green; + unsigned long alphaX = geta32(x); + unsigned long alphaY = geta32(y); + unsigned long alpha = 0; + + n = geta32(x); + + if (n) { + n++; + } - if (n) { - n++; - } + res = ((x & 0xFF00FF) - (y & 0xFF00FF)) * n / 256 + y; + y &= 0xFF00; + x &= 0xFF00; + green = (x - y) * n / 256 + y; - res = ((x & 0xFF00FF) - (y & 0xFF00FF)) * n / 256 + y; - y &= 0xFF00; - x &= 0xFF00; - green = (x - y) * n / 256 + y; + res &= 0xFF00FF; + green &= 0xFF00; - res &= 0xFF00FF; - green &= 0xFF00; + alpha = alphaX + (255 - alphaX) / 255.0f * alphaY; + alpha <<= 24; - alpha = alphaX + (255 - alphaX) / 255.0f * alphaY; - alpha <<= 24; + return res | green | alpha; +} - return res | green | alpha; - } +void RTE::SetTrueAlphaBlender() { + set_blender_mode_ex(_blender_black, _blender_black, _blender_black, TrueAlphaBlender, _blender_black, _blender_black, _blender_black, 0, 0, 0, 0); +} - void SetTrueAlphaBlender() { - set_blender_mode_ex(_blender_black, _blender_black, _blender_black, TrueAlphaBlender, _blender_black, _blender_black, _blender_black, 0, 0, 0, 0); - } -} // namespace RTE +void RTE::BitmapDeleter::operator()(BITMAP * bitmap) { + destroy_bitmap(bitmap); +} diff --git a/Source/System/AllegroTools.h b/Source/System/AllegroTools.h index a8efefbbcc..b74dca1343 100644 --- a/Source/System/AllegroTools.h +++ b/Source/System/AllegroTools.h @@ -1,5 +1,9 @@ #pragma once +extern "C" { + typedef struct BITMAP BITMAP; +} + /// Contains hacks and workarounds for missing or wrong allegro functionality. /// Note: Prefer fixing in allegro itself over adding hacks here. namespace RTE { @@ -10,5 +14,10 @@ namespace RTE { unsigned long TrueAlphaBlender(unsigned long x, unsigned long y, unsigned long n); /// Sets the 32bit allegro blender mode to TrueAlphaBlender void SetTrueAlphaBlender(); + + class BitmapDeleter { + public: + void operator()(BITMAP* bitmap); + }; #pragma endregion } // namespace RTE diff --git a/Source/System/Atom.cpp b/Source/System/Atom.cpp index e0f3ae690c..1f53721dc5 100644 --- a/Source/System/Atom.cpp +++ b/Source/System/Atom.cpp @@ -1,4 +1,7 @@ #include "Atom.h" +#include "EffectsParticles.h" +#include "TerrainFire.h" +#include "ActorFire.h" #include "SLTerrain.h" #include "MovableMan.h" @@ -642,7 +645,6 @@ int Atom::Travel(float travelTime, bool autoTravel) { bool& didWrap = m_OwnerMO->m_DidWrap; m_LastHit.Reset(); - BITMAP* trailBitmap = 0; int hitCount = 0; int error = 0; @@ -698,7 +700,6 @@ int Atom::Travel(float travelTime, bool autoTravel) { // Get trail bitmap and put first pixel. if (m_TrailLength) { - trailBitmap = g_SceneMan.GetMOColorBitmap(); trailPoints.push_back({intPos[X], intPos[Y]}); } // Compute and scale the actual on-screen travel trajectory for this segment, based on the velocity, the travel time and the pixels-per-meter constant. @@ -892,6 +893,8 @@ int Atom::Travel(float travelTime, bool autoTravel) { m_LastHit.RootBody[HITEE] = m_LastHit.Body[HITEE]->GetRootParent(); m_LastHit.RootBody[HITOR]->OnMOHit(m_LastHit); m_LastHit.RootBody[HITEE]->OnMOHit(m_LastHit); + // Fire sets what it hits alight, and water puts it out. + ActorFire::OnHit(m_OwnerMO, m_LastHit.RootBody[HITEE], m_Material); } /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -908,11 +911,29 @@ int Atom::Travel(float travelTime, bool autoTravel) { hitPos[Y] = intPos[Y]; ++hitCount; -#ifdef DEBUG_BUILD - if (m_TrailLength) { - putpixel(trailBitmap, intPos[X], intPos[Y], 199); + // Fire, flame and napalm particles set flammable terrain alight. + if (TerrainFire::IsFlammable(hitMaterialID) && TerrainFire::IsFireSource(m_OwnerMO)) { + TerrainFire::QueueIgnite(intPos[X], intPos[Y]); } -#endif + // Water puts out fire where it splashes. + if (TerrainFire::IsDousingParticle(m_OwnerMO, m_Material)) { + TerrainFire::QueueDouse(intPos[X], intPos[Y], 4); + } + + // Visual only: blood and oil leave stains where they splash on terrain. + if (m_Material && m_Material->GetIntegrity() <= 1.0F && velocity.MagnitudeIsGreaterThan(2.0F) && hitMaterial->GetIndex() != g_MaterialOutOfBounds && EffectsParticles::IsStainingMaterial(m_Material)) { + Color stainColor = m_Material->GetColor(); + if (m_Material->UsesOwnColor()) { + if (const MOPixel* ownerPixel = dynamic_cast(m_OwnerMO)) { + stainColor = ownerPixel->GetColor(); + } + } + unsigned int stainRGB = EffectsParticles::ColorToRGB(stainColor); + if (stainRGB != 0) { + EffectsParticles::SpawnStain(Vector(static_cast(intPos[X]), static_cast(intPos[Y])), (stainRGB >> 16) & 0xFF, (stainRGB >> 8) & 0xFF, stainRGB & 0xFF, velocity.GetMagnitude()); + } + } + // Try penetration of the terrain. if (hitMaterial->GetIndex() != g_MaterialOutOfBounds && g_SceneMan.TryPenetrate(intPos[X], intPos[Y], velocity * mass * sharpness, velocity, retardation, 0.65F, m_NumPenetrations, removeOrphansRadius, removeOrphansMaxArea, removeOrphansRate)) { hit[dom] = hit[sub] = sinkHit = true; @@ -1040,22 +1061,13 @@ int Atom::Travel(float travelTime, bool autoTravel) { // RTEAssert(hitCount < 100, "Atom travel resulted in more than 100 segments!!"); - // Draw the trail - if (g_TimerMan.DrawnSimUpdate() && m_TrailLength && trailPoints.size() > 0) { - Vector topLeftExtent = Vector(trailPoints[0].first, trailPoints[0].second); - Vector bottomRightExtent = topLeftExtent + Vector(1.0F, 1.0F); - - int length = static_cast(static_cast(m_TrailLength) * RandomNum(1.0F - m_TrailLengthVariation, 1.0F)); - for (size_t i = trailPoints.size() - std::min(length, static_cast(trailPoints.size())); i < trailPoints.size(); ++i) { - putpixel(trailBitmap, trailPoints[i].first, trailPoints[i].second, m_TrailColor.GetIndex()); - - topLeftExtent.m_X = std::min(topLeftExtent.m_X, static_cast(trailPoints[i].first)); - topLeftExtent.m_Y = std::min(topLeftExtent.m_Y, static_cast(trailPoints[i].second)); - bottomRightExtent.m_X = std::max(bottomRightExtent.m_X, static_cast(trailPoints[i].first)); - bottomRightExtent.m_Y = std::max(bottomRightExtent.m_Y, static_cast(trailPoints[i].second)); + // Keep the trail for the renderer to draw. + if (g_TimerMan.DrawnSimUpdate() && m_TrailLength) { + m_DrawnTrail.clear(); + if (!trailPoints.empty()) { + int length = static_cast(static_cast(m_TrailLength) * RandomNum(1.0F - m_TrailLengthVariation, 1.0F)); + m_DrawnTrail.assign(trailPoints.end() - std::min(length, static_cast(trailPoints.size())), trailPoints.end()); } - - g_SceneMan.RegisterDrawing(trailBitmap, g_NoMOID, topLeftExtent.m_X, topLeftExtent.m_Y, bottomRightExtent.m_X + 1.0F, bottomRightExtent.m_Y + 1.0F); } // Extract Atom offset. diff --git a/Source/System/Atom.h b/Source/System/Atom.h index ea5f3d2d03..26053f2559 100644 --- a/Source/System/Atom.h +++ b/Source/System/Atom.h @@ -163,6 +163,10 @@ namespace RTE { /// @return The new max length, in pixels. If 0, no trail is drawn. int GetTrailLength() const { return m_TrailLength; } + /// Gets the trail pixels from the last drawn sim update, in scene coordinates, for the renderer. + /// @return The trail pixels, oldest first. + const std::vector>& GetDrawnTrail() const { return m_DrawnTrail; } + /// Sets the longest a trail can be drawn, in pixels. /// @param trailLength The new max length, in pixels. If 0, no trail is drawn. void SetTrailLength(const int trailLength) { m_TrailLength = trailLength; } @@ -389,6 +393,7 @@ namespace RTE { Color m_TrailColor; //!< Trail color int m_TrailLength; //!< The longest the trail should/can get drawn. If 0, no trail is drawn. + std::vector> m_DrawnTrail; //!< Trail pixels from the last drawn sim update, for the renderer. float m_TrailLengthVariation; //!< What percentage the trail length of this Atom can vary each frame it's drawn. 0 means no variance, 1 means 100% variance between 0 and its TrailLength. // Bresenham line algorithm variables diff --git a/Source/System/Box.cpp b/Source/System/Box.cpp index 9fa1267b0d..59e6f4ec7e 100644 --- a/Source/System/Box.cpp +++ b/Source/System/Box.cpp @@ -1,20 +1,10 @@ #include "Box.h" +#include "Rectangles.h" using namespace RTE; const std::string Box::c_ClassName = "Box"; -bool IntRect::IntersectionCut(const IntRect& rhs) { - if (Intersects(rhs)) { - m_Left = std::max(m_Left, rhs.m_Left); - m_Right = std::min(m_Right, rhs.m_Right); - m_Top = std::max(m_Top, rhs.m_Top); - m_Bottom = std::min(m_Bottom, rhs.m_Bottom); - return true; - } - return false; -} - int Box::Create(const Vector& corner1, const Vector& corner2) { m_Corner = corner1; m_Width = corner2.m_X - corner1.m_X; diff --git a/Source/System/Box.h b/Source/System/Box.h index d6421868eb..829b780ecf 100644 --- a/Source/System/Box.h +++ b/Source/System/Box.h @@ -42,6 +42,8 @@ namespace RTE { /// @param height Height of this box. Box(const Vector& corner, float width, float height) { Create(corner, width, height); } + Box(const FloatRect& rectangle): m_Corner(rectangle.x, rectangle.y), m_Width(rectangle.w), m_Height(rectangle.h) {} + /// Copy constructor method used to instantiate a Box object identical to an already existing one. /// @param reference A Box object which is passed in by reference. Box(const Box& reference) { Create(reference); } @@ -195,7 +197,8 @@ namespace RTE { /// @return A boolean indicating whether the two operands are unequal or not. friend bool operator!=(const Box& lhs, const Box& rhs) { return lhs.m_Corner != rhs.m_Corner || lhs.m_Width != rhs.m_Width || lhs.m_Height != rhs.m_Height; } - operator Rectangle() { return {m_Corner.m_X, m_Corner.m_Y, m_Width, m_Height}; } + operator Rectangle() const { return {m_Corner.m_X, m_Corner.m_Y, m_Width, m_Height}; } + operator FloatRect() const { return {m_Corner.m_X, m_Corner.m_Y, m_Width, m_Height}; } #pragma endregion private: diff --git a/Source/System/Color.cpp b/Source/System/Color.cpp index 517a12bec1..3e742b61c5 100644 --- a/Source/System/Color.cpp +++ b/Source/System/Color.cpp @@ -1,5 +1,6 @@ #include "Color.h" #include "allegro/color.h" +#include "glm/glm.hpp" using namespace RTE; @@ -52,8 +53,11 @@ void Color::SetRGBWithIndex(int index) { m_R = rgbColor.r; m_G = rgbColor.g; m_B = rgbColor.b; + m_A = 255; } int Color::RecalculateIndex() { return m_Index = makecol8(m_R, m_G, m_B); } + +Color::operator glm::u8vec4() const { return glm::ivec4(m_R, m_G, m_B, m_A); } diff --git a/Source/System/Color.h b/Source/System/Color.h index 5604af3d4e..c201e7c8b7 100644 --- a/Source/System/Color.h +++ b/Source/System/Color.h @@ -2,9 +2,9 @@ #include "Serializable.h" #include +#include "glm/fwd.hpp" namespace RTE { - /// A class representing a RGB color value. class Color : public Serializable { @@ -25,6 +25,8 @@ namespace RTE { Create(R, G, B); } + Color(int R, int G, int B, int A): m_R(R), m_G(G), m_B(B), m_A(A), m_Index(0) {} + /// Constructor method used to instantiate a Color object from an entry in the current color palette. /// @param index Palette index entry to create this color from. Color(int index) { @@ -98,6 +100,9 @@ namespace RTE { m_Index = 0; } + int GetA() const { return m_A; } + void SetA(int newA) { m_A = std::clamp(newA, 0, 255); } + /// Sets all three RGB values of this Color. /// @param newR Integer value that the Red value will be set to, between 0 and 255. /// @param newG Integer value that the Green value will be set to, between 0 and 255. @@ -106,6 +111,7 @@ namespace RTE { SetR(newR); SetG(newG); SetB(newB); + m_A = 255; m_Index = 0; } #pragma endregion @@ -116,16 +122,18 @@ namespace RTE { int RecalculateIndex(); #pragma endregion + operator glm::u8vec4() const; protected: - int m_R; //!< Red value of this color. - int m_G; //!< Green value of this color. - int m_B; //!< Blue value of this color. - int m_Index; //!< The closest matching index in the current color palette. If 0, this needs to be recalculated and updated. + int m_R{0}; //!< Red value of this color. + int m_G{0}; //!< Green value of this color. + int m_B{0}; //!< Blue value of this color. + int m_A{255}; //!< Alpha value of this color. + int m_Index{0}; //!< The closest matching index in the current color palette. If 0, this needs to be recalculated and updated. private: static const std::string c_ClassName; //!< A string with the friendly-formatted type name of this. /// Clears all the member variables of this Color, effectively resetting the members of this abstraction level only. - void Clear() { m_R = m_G = m_B = m_Index = 0; } + void Clear() { m_R = m_G = m_B = m_Index = 0; m_A = 255; } }; } // namespace RTE diff --git a/Source/System/Constants.h b/Source/System/Constants.h index e1e451b178..08c44a48a0 100644 --- a/Source/System/Constants.h +++ b/Source/System/Constants.h @@ -30,6 +30,7 @@ namespace RTE { #pragma region Time Constants static constexpr float c_DefaultDeltaTimeS = 0.0166666F; //!< The default simulation update step size, in seconds. + static constexpr float c_RenderInterpolationTeleportDistance = 200.0F; //!< Objects that moved further than this in one sim update are treated as teleported and not interpolated. static constexpr float c_RealToSimCap = 0.0166666F; //!< The default cap of number of ticks that the real time can add to the tick accumulator each update. #pragma endregion @@ -38,6 +39,9 @@ namespace RTE { #pragma endregion #pragma region Graphics Constants + static constexpr int c_DefaultBatchVAOElements = 8192; + static constexpr int c_DefaultBatchDrawCalls = 1024; + static constexpr int c_DefaultResX = 960; //!< Default game window width. static constexpr int c_DefaultResY = 540; //!< Default game window height. @@ -148,6 +152,7 @@ namespace RTE { static constexpr float c_DefaultDrawDepth = 0.0f; static constexpr float c_TerrainBGDepth = 50.0f; static constexpr float c_BackgroundDepth = 100.0f; + static constexpr float c_BackgroundDepthRange = 85.0f; //!< Background layers are spread over this much depth beyond c_BackgroundDepth according to their parallax, nearest to furthest. static constexpr float c_FarDepth = 200.0f; static constexpr float c_NearDepth = -200.0f; diff --git a/Source/System/ContentFile.cpp b/Source/System/ContentFile.cpp index 3d7b9b4b8f..66509cd634 100644 --- a/Source/System/ContentFile.cpp +++ b/Source/System/ContentFile.cpp @@ -1,4 +1,5 @@ #include "ContentFile.h" +#include #include "AudioMan.h" #include "PresetMan.h" @@ -7,6 +8,8 @@ #include "System.h" #include "FrameMan.h" +#include "Texture.h" + #include "png.h" #include "fmod/fmod.hpp" #include "fmod/fmod_errors.h" @@ -23,6 +26,7 @@ std::array, ContentFile::BitDepths::Bit std::unordered_map ContentFile::s_MemoryPNGs; std::unordered_map ContentFile::s_LoadedSamples; std::unordered_map ContentFile::s_PathHashes; +std::unordered_map> ContentFile::s_LoadedTextures; void ContentFile::Clear() { m_DataPath.clear(); @@ -58,6 +62,7 @@ void ContentFile::FreeAllLoaded() { destroy_bitmap(bitmapPtr); } } + s_LoadedTextures.clear(); } int ContentFile::ReadProperty(const std::string_view& propName, Reader& reader) { @@ -275,6 +280,68 @@ BITMAP* ContentFile::GetAsBitmap(int conversionMode, bool storeBitmap, const std return returnBitmap; } +std::shared_ptr ContentFile::GetAsTexture(int conversionMode, bool storeBitmap, const std::string& dataPathToSpecificFrame) { + if (m_DataPath.empty()) { + return nullptr; + } + std::shared_ptr returnTexture; + + std::string dataPathToLoad = dataPathToSpecificFrame.empty() ? m_DataPath : dataPathToSpecificFrame; + + auto foundTexture = s_LoadedTextures.find(dataPathToLoad); + if (foundTexture != s_LoadedTextures.end()) { + if (storeBitmap) { + returnTexture = foundTexture->second; + } + } + + // Images that only exist in memory (saved game terrain) are in the bitmap cache, not on disk. + if (!returnTexture) { + auto memoryBitmap = s_LoadedBitmaps[BitDepths::Eight].find(dataPathToLoad); + if (memoryBitmap != s_LoadedBitmaps[BitDepths::Eight].end() && s_MemoryPNGs.count(dataPathToLoad)) { + BITMAP* source = memoryBitmap->second; + BITMAP* bitmap = nullptr; + if (storeBitmap) { + // Others may still use the cached bitmap; give the texture its own copy. + bitmap = create_bitmap_ex(bitmap_color_depth(source), source->w, source->h); + blit(source, bitmap, 0, 0, 0, 0, source->w, source->h); + } else { + // One-time use, like GetAsBitmap: hand the bitmap over and forget the memory image. + bitmap = source; + s_LoadedBitmaps[BitDepths::Eight].erase(memoryBitmap); + SDL_DestroySurface(s_MemoryPNGs[dataPathToLoad]); + s_MemoryPNGs.erase(dataPathToLoad); + } + returnTexture = std::make_shared(std::unique_ptr(bitmap)); + if (storeBitmap) { + s_LoadedTextures[dataPathToLoad] = returnTexture; + } + return returnTexture; + } + } + + if (!returnTexture) { + if (!System::PathExistsCaseSensitive(dataPathToLoad)) { + const std::string dataPathWithoutExtension = dataPathToLoad.substr(0, dataPathToLoad.length() - m_DataPathExtension.length()); + const std::string altFileExtension = (m_DataPathExtension == ".png") ? ".bmp" : ".png"; + + if (System::PathExistsCaseSensitive(dataPathWithoutExtension + altFileExtension)) { + g_ConsoleMan.AddLoadWarningLogExtensionMismatchEntry(m_DataPath, m_FormattedReaderPosition, altFileExtension); + SetDataPath(m_DataPathWithoutExtension + altFileExtension); + dataPathToLoad = dataPathWithoutExtension + altFileExtension; + } else { + RTEAbort("Failed to find image file with following path and name:\n\n" + dataPathToLoad + " or " + altFileExtension + "\n" + m_FormattedReaderPosition); + } + } + returnTexture = std::make_shared(std::unique_ptr(LoadAndReleaseBitmap(conversionMode, dataPathToLoad))); + if (storeBitmap) { + s_LoadedTextures[dataPathToLoad] = returnTexture; + } + } + + return returnTexture; +} + void ContentFile::GetAsAnimation(std::vector& vectorToFill, int frameCount, int conversionMode) { if (m_DataPath.empty() || frameCount < 1) { return; @@ -302,6 +369,45 @@ void ContentFile::GetAsAnimation(std::vector& vectorToFill, int frameCo } } } + +void ContentFile::GetAsAnimation(std::vector>& vectorToFill, int frameCount, int conversionMode) { + if (m_DataPath.empty() || frameCount < 1) { + return; + } + vectorToFill.reserve(frameCount); + + if (frameCount == 1) { + // Check for 000 in the file name in case it is part of an animation but the FrameCount was set to 1. Do not warn about this because it's normal operation, but warn about incorrect extension. + if (!System::PathExistsCaseSensitive(m_DataPath)) { + const std::string altFileExtension = (m_DataPathExtension == ".png") ? ".bmp" : ".png"; + + if (System::PathExistsCaseSensitive(m_DataPathWithoutExtension + "000" + m_DataPathExtension)) { + SetDataPath(m_DataPathWithoutExtension + "000" + m_DataPathExtension); + } else if (System::PathExistsCaseSensitive(m_DataPathWithoutExtension + "000" + altFileExtension)) { + g_ConsoleMan.AddLoadWarningLogExtensionMismatchEntry(m_DataPath, m_FormattedReaderPosition, altFileExtension); + SetDataPath(m_DataPathWithoutExtension + "000" + altFileExtension); + } + } + vectorToFill.emplace_back(GetAsTexture(conversionMode)); + } else { + char framePath[1024]; + for (int frameNum = 0; frameNum < frameCount; ++frameNum) { + std::snprintf(framePath, sizeof(framePath), "%s%03i%s", m_DataPathWithoutExtension.c_str(), frameNum, m_DataPathExtension.c_str()); + vectorToFill.emplace_back(GetAsTexture(conversionMode, true, framePath)); + } + } + // Sprite frames go into the shared atlas, so many different sprites can be drawn together. CCCP_NO_SPRITE_ATLAS turns it off, for comparisons and debugging. + static const bool useAtlas = std::getenv("CCCP_NO_SPRITE_ATLAS") == nullptr; + if (useAtlas) { + for (const std::shared_ptr& frame: vectorToFill) { + if (frame) { + frame->MoveToAtlas(); + } + } + } +} + + SDL_Palette* ContentFile::DefaultPaletteToSDL(bool preMask) { SDL_Palette* palette = SDL_CreatePalette(256); std::array paletteColor; diff --git a/Source/System/ContentFile.h b/Source/System/ContentFile.h index 454511d13b..57f1ed701c 100644 --- a/Source/System/ContentFile.h +++ b/Source/System/ContentFile.h @@ -15,7 +15,7 @@ struct SDL_Palette; struct SDL_Surface; namespace RTE { - + class BitmapTexture; /// A representation of a content file that is stored directly on disk. class ContentFile : public Serializable { @@ -130,6 +130,7 @@ namespace RTE { /// @param dataPathToSpecificFrame Path to a specific frame when loading an animation to avoid overwriting the original preset DataPath when loading each frame. /// @return Pointer to the BITMAP loaded from disk. BITMAP* GetAsBitmap(int conversionMode = 0, bool storeBitmap = true, const std::string& dataPathToSpecificFrame = ""); + std::shared_ptr GetAsTexture(int conversionMode = 0, bool storeBitmap = true, const std::string& dataPathToSpecificFrame = ""); /// Fills an existing vector of Allegro BITMAPs representing each frame in the animation with the data represented by this ContentFile object. /// It loads the BITMAPs into the static maps if they're not already loaded. Ownership of the BITMAPs is NOT transferred! @@ -137,6 +138,7 @@ namespace RTE { /// @param frameCount The number of frames to attempt to load, more than 1 frame will mean 00# is appended to DataPath to handle naming conventions. /// @param conversionMode The Allegro color conversion mode to use when loading this bitmap. void GetAsAnimation(std::vector& vectorToFill, int frameCount = 1, int conversionMode = 0); + void GetAsAnimation(std::vector>& vectorToFill, int frameCount = 1, int conversionMode = 0); /// Gets the data represented by this ContentFile object as a vector of Allegro BITMAPs, each representing a frame in the animation. /// It loads the BITMAPs into the static maps if they're not already loaded. Ownership of the BITMAPs is NOT transferred! @@ -149,6 +151,12 @@ namespace RTE { return returnBitmaps; } + std::vector> GetAsTextureAnimation(int frameCount = 1, int conversionMode = 0) { + std::vector> returnArray; + GetAsAnimation(returnArray, frameCount, conversionMode); + return returnArray; + } + /// Gets the data represented by this ContentFile object as an FMOD FSOUND_SAMPLE, loading it into the static maps if it's not already loaded. Ownership of the FSOUND_SAMPLE is NOT transferred! /// @param abortGameForInvalidSound Whether to abort the game if the sound couldn't be added, or just show a console error. Default true. /// @param asyncLoading Whether to enable FMOD asynchronous loading or not. Should be disabled for loading audio files with Lua AddSound. @@ -180,6 +188,7 @@ namespace RTE { static std::unordered_map s_PathHashes; //!< Static map containing the hash values of paths of all loaded data files. static std::array, BitDepths::BitDepthCount> s_LoadedBitmaps; //!< Static map containing all the already loaded BITMAPs and their paths for each bit depth. + static std::unordered_map> s_LoadedTextures; static std::unordered_map s_MemoryPNGs; //!< Static map containing in-memory PNG files for save/load static std::unordered_map s_LoadedSamples; //!< Static map containing all the already loaded FSOUND_SAMPLEs and their paths. diff --git a/Source/System/Controller.cpp b/Source/System/Controller.cpp index e7807102f8..6b2d36bbe8 100644 --- a/Source/System/Controller.cpp +++ b/Source/System/Controller.cpp @@ -5,6 +5,7 @@ #include "MovableMan.h" #include "Actor.h" #include "PieMenu.h" +#include "ACraft.h" #include @@ -163,7 +164,10 @@ void Controller::Update() { GetInputFromPlayer(); break; case InputMode::CIM_AI: - if (ShouldUpdateAIThisFrame()) { + if (IsHeldByPausedAI()) { + // Standing still while the AI is paused. + ResetCommandState(); + } else if (ShouldUpdateAIThisFrame()) { // AI will be updated in separate UpdateAI call, but we need to clear the command state for them ResetCommandState(); } @@ -193,8 +197,14 @@ void Controller::GetInputFromPlayer() { UpdatePlayerInput(lastControlStates); } +bool Controller::s_AIPaused = false; + +bool Controller::IsHeldByPausedAI() const { + return s_AIPaused && m_InputMode == InputMode::CIM_AI && !dynamic_cast(m_ControlledActor); +} + bool Controller::ShouldUpdateAIThisFrame() const { - if (IsDisabled() || m_InputMode != InputMode::CIM_AI) { + if (IsDisabled() || m_InputMode != InputMode::CIM_AI || IsHeldByPausedAI()) { return false; } diff --git a/Source/System/Controller.h b/Source/System/Controller.h index 8e3dde95d9..638e899791 100644 --- a/Source/System/Controller.h +++ b/Source/System/Controller.h @@ -290,6 +290,15 @@ namespace RTE { /// Returns whether the AI should be updated this frame. /// @return Whether the AI should be updated this frame. bool ShouldUpdateAIThisFrame() const; + + /// Gets whether the AI is paused: AI-run units (except craft, which would fall) stand still and do nothing, so a battle can be set up in peace. + static bool IsAIPaused() { return s_AIPaused; } + + /// Pauses or resumes the AI. + static void SetAIPaused(bool paused) { s_AIPaused = paused; } + + /// Gets whether this controller's actor is held still by the paused AI. + bool IsHeldByPausedAI() const; #pragma endregion #pragma region Virtual Override Methods @@ -349,6 +358,7 @@ namespace RTE { std::pair, bool> m_AnalogCursorAngleLimits; //!< Analog aim value limits, as well as whether or not the limit is actually enabled. private: + static bool s_AIPaused; //!< Whether the AI is paused. #pragma region Update Breakdown /// Updates the player's inputs portion of this Controller. For breaking down Update into more comprehensible chunks. /// This method will call both UpdatePlayerPieMenuInput and UpdatePlayerAnalogInput. diff --git a/Source/System/Entity.cpp b/Source/System/Entity.cpp index 3aa2579c63..6cfd15dc17 100644 --- a/Source/System/Entity.cpp +++ b/Source/System/Entity.cpp @@ -3,6 +3,12 @@ #include "PresetMan.h" #include "DataModule.h" +#if defined(_MSC_VER) +#define RTE_NO_SANITIZE_ADDRESS __declspec(no_sanitize_address) +#else +#define RTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) +#endif + namespace RTE { Entity::ClassInfo Entity::m_sClass("Entity"); @@ -265,6 +271,7 @@ namespace RTE { return false; } + RTE_NO_SANITIZE_ADDRESS void* Entity::ClassInfo::GetPoolMemory() { #ifdef __SANITIZE_ADDRESS__ // If compiled with ASan, sidestep pooling and just use the allocator normally. @@ -295,6 +302,7 @@ namespace RTE { return foundMemory; } + RTE_NO_SANITIZE_ADDRESS int Entity::ClassInfo::ReturnPoolMemory(void* returnedMemory) { if (!returnedMemory) { return 0; diff --git a/Source/System/RTEError.cpp b/Source/System/RTEError.cpp index de1e78503f..21a6c7b1f6 100644 --- a/Source/System/RTEError.cpp +++ b/Source/System/RTEError.cpp @@ -32,6 +32,7 @@ #include #endif +#include "allegro.h" #include "backward/backward.hpp" @@ -558,7 +559,7 @@ void RTEError::DumpHardwareInfo() { bool RTEError::DumpAbortScreen() { int success = -1; - if (glReadPixels != nullptr) { + if (g_WindowMan.GetGLContext()) { int w, h; SDL_GetWindowSizeInPixels(g_WindowMan.GetWindow(), &w, &h); if (!(w > 0 && h > 0)) { diff --git a/Source/System/RTEError.h b/Source/System/RTEError.h index d06c8b49be..7a12767623 100644 --- a/Source/System/RTEError.h +++ b/Source/System/RTEError.h @@ -1,7 +1,5 @@ #pragma once -#include "allegro.h" -#include "loadpng.h" #ifdef _WIN32 #define DebuggerBreak IsDebuggerPresent() ? __debugbreak() : std::abort(); @@ -15,6 +13,9 @@ #define AbortAction std::abort() #endif +#include "allegro.h" //FIXME: Evil +#include "loadpng.h" //FIXME: Evil + #include #include diff --git a/Source/System/Rectangles.h b/Source/System/Rectangles.h index 2cb44aa19c..559d345a04 100644 --- a/Source/System/Rectangles.h +++ b/Source/System/Rectangles.h @@ -1,42 +1,43 @@ #pragma once +#include "glm/fwd.hpp" namespace RTE { - /// A simple rectangle with integer coordinates. - struct IntRect { + /// A simple rectangle from 2 points. + template + struct Rectangle2Point { + Rectangle2Point() = default; + Rectangle2Point(T left, T top, T right, T bottom) : m_Left(left), m_Top(top), m_Right(right), m_Bottom(bottom) {} - int m_Left = 0; //!< X position of the IntRect top left corner. - int m_Top = 0; //!< Y position of the IntRect top left corner. - int m_Right = 0; //!< X position of the IntRect bottom right corner. - int m_Bottom = 0; //!< Y position of the IntRect bottom right corner. + bool Intersects(const Rectangle2Point& rhs) const { return m_Left < rhs.m_Right && m_Right > rhs.m_Left && m_Top < rhs.m_Bottom && m_Bottom > rhs.m_Top; } - /// Constructor method used to instantiate an IntRect object from four int values defining the initial corners of this IntRect. - /// @param left X position of the IntRect top left corner. - /// @param top Y position of the IntRect top left corner. - /// @param right X position of the IntRect bottom right corner. - /// @param bottom Y position of the IntRect bottom right corner. - IntRect(int left, int top, int right, int bottom) : - m_Left(left), m_Top(top), m_Right(right), m_Bottom(bottom) {} + bool IntersectionCut(const Rectangle2Point& rhs) { + if (Intersects(rhs)) { + m_Left = std::max(m_Left, rhs.m_Left); + m_Right = std::min(m_Right, rhs.m_Right); + m_Top = std::max(m_Top, rhs.m_Top); + m_Bottom = std::min(m_Bottom, rhs.m_Bottom); + return true; + } + return false; + } - /// Checks whether this IntRect is intersecting another one. - /// @param rhs The other IntRect to check for intersection with. - /// @return Whether this IntRect is intersecting another one. - bool Intersects(const IntRect& rhs) const { return m_Left < rhs.m_Right && m_Right > rhs.m_Left && m_Top < rhs.m_Bottom && m_Bottom > rhs.m_Top; } - - /// If this and the passed in IntRect intersect, this will be modified to represent the boolean AND of the two. - /// If they don't intersect, nothing happens and false is returned. - /// @param rhs THe other IntRect to cut against. - /// @return Whether an intersection was detected and this was cut down to the AND of the two IntRects. - bool IntersectionCut(const IntRect& rhs); + T m_Left{}; + T m_Top{}; + T m_Right{}; + T m_Bottom{}; }; + using IntRect = Rectangle2Point; - struct FloatRect { - FloatRect() = default; - ~FloatRect() = default; - FloatRect(FloatRect& ref) = default; - FloatRect(int x, int y, int w, int h) :x(x), y(y), w(w), h(h) {} - FloatRect(float x, float y, float w, float h) :x(x), y(y), w(w), h(h) {} - float x{0.0f}; - float y{0.0f}; - float w{0.0f}; - float h{0.0f}; + template + struct RectangleWidthHeight { + RectangleWidthHeight() = default; + RectangleWidthHeight(T x, T y, T width, T height) : x(x), y(y), w(width), h(height) {} + RectangleWidthHeight(Vector pos, T width, T height) : x(pos.m_X), y(pos.m_Y), w(width), h(height) {} + RectangleWidthHeight(glm::vec<2, T, glm::defaultp> pos, T width, T height) : x(pos.x), y(pos.y), w(width), h(height) {} + T x{0.0f}; + T y{0.0f}; + T w{0.0f}; + T h{0.0f}; }; -} \ No newline at end of file + + using FloatRect = RectangleWidthHeight; +} diff --git a/Source/System/SpatialPartitionGrid.h b/Source/System/SpatialPartitionGrid.h index 79f04fde66..e3ed671522 100644 --- a/Source/System/SpatialPartitionGrid.h +++ b/Source/System/SpatialPartitionGrid.h @@ -12,7 +12,6 @@ namespace RTE { class Box; - struct IntRect; class MovableObject; /// A spatial partitioning grid, used to optimize MOID collision checks. diff --git a/Tools/RenderTest/.gitignore b/Tools/RenderTest/.gitignore new file mode 100644 index 0000000000..2fe317a809 --- /dev/null +++ b/Tools/RenderTest/.gitignore @@ -0,0 +1 @@ +Output/ diff --git a/Tools/RenderTest/BeforeAfter.ps1 b/Tools/RenderTest/BeforeAfter.ps1 new file mode 100644 index 0000000000..a9c93b78a0 --- /dev/null +++ b/Tools/RenderTest/BeforeAfter.ps1 @@ -0,0 +1,24 @@ +param([string]$Before, [string]$After, [string]$Out, [string]$LabelBefore = "BEFORE (development)", [string]$LabelAfter = "AFTER (modernisation)", [int]$CropX = 8, [int]$CropY = 31, [int]$CropW = 600, [int]$CropH = 540) +# Puts two captures side by side (cropped to the game view) with labels. +Add-Type -AssemblyName System.Drawing +# .NET resolves relative paths against the process directory, not the PowerShell location. +$Before = (Resolve-Path $Before).Path +$After = (Resolve-Path $After).Path +if (-not [IO.Path]::IsPathRooted($Out)) { $Out = Join-Path (Get-Location).Path $Out } +$a = [System.Drawing.Bitmap]::FromFile($Before) +$b = [System.Drawing.Bitmap]::FromFile($After) +$gap = 8 +$canvas = New-Object System.Drawing.Bitmap ($CropW * 2 + $gap), ($CropH + 28) +$g = [System.Drawing.Graphics]::FromImage($canvas) +$g.Clear([System.Drawing.Color]::FromArgb(20, 20, 24)) +$g.InterpolationMode = 'NearestNeighbor' +$src = New-Object System.Drawing.Rectangle $CropX, $CropY, $CropW, $CropH +$g.DrawImage($a, (New-Object System.Drawing.Rectangle 0, 28, $CropW, $CropH), $src, [System.Drawing.GraphicsUnit]::Pixel) +$g.DrawImage($b, (New-Object System.Drawing.Rectangle ($CropW + $gap), 28, $CropW, $CropH), $src, [System.Drawing.GraphicsUnit]::Pixel) +$font = New-Object System.Drawing.Font("Segoe UI", 11, [System.Drawing.FontStyle]::Bold) +$brush = New-Object System.Drawing.SolidBrush ([System.Drawing.Color]::FromArgb(235, 235, 240)) +$g.DrawString($LabelBefore, $font, $brush, 8, 4) +$g.DrawString($LabelAfter, $font, $brush, ($CropW + $gap + 8), 4) +$canvas.Save($Out) +$a.Dispose(); $b.Dispose() +$Out diff --git a/Tools/RenderTest/Capture.ps1 b/Tools/RenderTest/Capture.ps1 new file mode 100644 index 0000000000..c7fdaf0b72 --- /dev/null +++ b/Tools/RenderTest/Capture.ps1 @@ -0,0 +1,91 @@ +param( + [string]$Scenario = "Bunker", # Name of a Userdata\RenderTest\.ini written by Setup.ps1. + [string]$Name = "", # Output name, defaults to the scenario. + [string]$Repo = "", # Game folder, defaults to this repository. Point at another checkout to capture a baseline. + [int]$ExtraWait = 25, # Seconds to wait after loading settles, for the scene and effects to get going. + [int]$Burst = 1, # Number of frames to capture. + [int]$BurstIntervalMs = 250, + [string]$CameraPOI = "", # Pins the Camera Tour script to one point of interest (1-6) for comparable shots. + [string]$Exe = "Cortex Command.debug.release.exe", + [switch]$KeepRunning +) +# Launches the game with a scenario's settings, waits for it to load, and captures the window (PrintWindow, so it works even when covered). +# Assert dialogs are captured instead of the game window, so failures show up in the output. +. (Join-Path $PSScriptRoot "Common.ps1") +if (-not $Repo) { $Repo = $RepoRoot } +if (-not $Name) { $Name = $Scenario } +Add-Type -AssemblyName System.Drawing +if (-not ("RenderTestWin" -as [type])) { + Add-Type @" +using System; using System.Runtime.InteropServices; +public class RenderTestWin { + [DllImport("user32.dll")] public static extern bool GetWindowRect(IntPtr h, out RECT r); + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr h); + [DllImport("user32.dll")] public static extern bool PrintWindow(IntPtr h, IntPtr hdc, uint flags); + public struct RECT { public int L, T, R, B; } + public delegate bool EnumProc(IntPtr h, IntPtr l); + [DllImport("user32.dll")] public static extern bool EnumWindows(EnumProc cb, IntPtr l); + [DllImport("user32.dll")] public static extern int GetWindowThreadProcessId(IntPtr h, out int pid); + [DllImport("user32.dll")] public static extern int GetWindowText(IntPtr h, System.Text.StringBuilder s, int n); + [DllImport("user32.dll")] public static extern bool IsWindowVisible(IntPtr h); + public static IntPtr FindTitled(int target, string needle) { + IntPtr found = IntPtr.Zero; + EnumWindows((h, l) => { int pid; GetWindowThreadProcessId(h, out pid); if (pid == target && IsWindowVisible(h)) { var sb = new System.Text.StringBuilder(512); GetWindowText(h, sb, 512); if (sb.ToString().Contains(needle)) { found = h; return false; } } return true; }, IntPtr.Zero); + return found; + } +} +"@ +} + +$procName = [IO.Path]::GetFileNameWithoutExtension($Exe) +$p = Get-Process $procName -ErrorAction SilentlyContinue | Where-Object { $_.Path -like "$Repo*" } | Select-Object -First 1 +if (-not $p -and -not $PSBoundParameters.ContainsKey("Scenario")) { + # Capturing a running game that has gone away (e.g. it quit): report that rather than silently launching a different scenario. + "NOT RUNNING: no game process to capture, and no -Scenario given to launch." + exit 1 +} +if (-not $p) { + if ($CameraPOI) { $env:CCCP_CAMERA_POI = $CameraPOI } else { Remove-Item Env:CCCP_CAMERA_POI -ErrorAction SilentlyContinue } + $env:CCCP_SETTINGSPATH = "Userdata/RenderTest/$Scenario.ini" + $p = Start-Process -FilePath (Join-Path $Repo $Exe) -WorkingDirectory $Repo -PassThru + Start-Sleep 5 + # Wait for LogLoading.txt to stop changing (it's buffered, so ExtraWait covers the rest of loading). + $last = 0; $stable = 0 + for ($i = 0; $i -lt 240; $i++) { + Start-Sleep 1 + if ($p.HasExited) { break } + $t = (Get-Item (Join-Path $Repo "LogLoading.txt") -ErrorAction SilentlyContinue).LastWriteTime.Ticks + if ($t -eq $last) { $stable++ } else { $stable = 0; $last = $t } + if ($stable -ge 6) { break } + } + Start-Sleep $ExtraWait +} +$p.Refresh() +if ($p.HasExited) { "EXITED code=$($p.ExitCode)"; Get-Content (Join-Path $Repo "LogLoading.txt") -Tail 5; exit 1 } +$h = $p.MainWindowHandle +$assert = [RenderTestWin]::FindTitled($p.Id, "Assert") +if ($assert -eq [IntPtr]::Zero) { $assert = [RenderTestWin]::FindTitled($p.Id, "ERROR") } +if ($assert -ne [IntPtr]::Zero) { "ERROR DIALOG present - capturing it instead"; $h = $assert } +[RenderTestWin]::SetForegroundWindow($h) | Out-Null +Start-Sleep -Milliseconds 1500 +$r = New-Object RenderTestWin+RECT +[RenderTestWin]::GetWindowRect($h, [ref]$r) | Out-Null +$saved = @() +for ($b = 0; $b -lt $Burst; $b++) { + $bmp = New-Object System.Drawing.Bitmap ($r.R - $r.L), ($r.B - $r.T) + $g = [System.Drawing.Graphics]::FromImage($bmp) + for ($try = 0; $try -lt 5; $try++) { + $hdc = $g.GetHdc(); [RenderTestWin]::PrintWindow($h, $hdc, 2) | Out-Null; $g.ReleaseHdc($hdc) + # PrintWindow occasionally returns a black frame under GPU load; retry those. + $lit = 0 + for ($sx = 20; $sx -lt $bmp.Width; $sx += 61) { for ($sy = 40; $sy -lt $bmp.Height; $sy += 47) { $c = $bmp.GetPixel($sx, $sy); if ($c.R + $c.G + $c.B -gt 15) { $lit++ } } } + if ($lit -gt 10) { break } + Start-Sleep -Milliseconds 700 + } + $file = if ($Burst -gt 1) { Join-Path $OutputDir "$Name`_$b.png" } else { Join-Path $OutputDir "$Name.png" } + $bmp.Save($file); $saved += $file + $g.Dispose(); $bmp.Dispose() + if ($Burst -gt 1) { Start-Sleep -Milliseconds $BurstIntervalMs } +} +$saved +if (-not $KeepRunning) { Stop-Process $p -Force; $p.WaitForExit(10000) | Out-Null; Start-Sleep -Milliseconds 1500 } diff --git a/Tools/RenderTest/Common.ps1 b/Tools/RenderTest/Common.ps1 new file mode 100644 index 0000000000..5c0a628e70 --- /dev/null +++ b/Tools/RenderTest/Common.ps1 @@ -0,0 +1,6 @@ +# Shared paths for the render test tools. Dot-source this. +$script:RepoRoot = (Resolve-Path (Join-Path $PSScriptRoot "..\..")).Path +$script:OutputDir = Join-Path $PSScriptRoot "Output" +if (-not (Test-Path $script:OutputDir)) { + New-Item -ItemType Directory -Path $script:OutputDir | Out-Null +} diff --git a/Tools/RenderTest/ContactSheet.ps1 b/Tools/RenderTest/ContactSheet.ps1 new file mode 100644 index 0000000000..6d6bfd8855 --- /dev/null +++ b/Tools/RenderTest/ContactSheet.ps1 @@ -0,0 +1,21 @@ +param([string]$Name, [int]$Count = 6, [int]$Cols = 3, [int]$CropX = 8, [int]$CropY = 31, [int]$CropW = 600, [int]$CropH = 540, [double]$Scale = 0.5) +. (Join-Path $PSScriptRoot "Common.ps1") +# Tiles $Name_0..$Name_{Count-1}.png (cropped to the game area) into $Name_sheet.png. +Add-Type -AssemblyName System.Drawing +$tileW = [int]($CropW * $Scale); $tileH = [int]($CropH * $Scale) +$rows = [math]::Ceiling($Count / $Cols) +$sheet = New-Object System.Drawing.Bitmap ($tileW * $Cols), ($tileH * $rows) +$g = [System.Drawing.Graphics]::FromImage($sheet) +$g.InterpolationMode = 'NearestNeighbor' +for ($i = 0; $i -lt $Count; $i++) { + $path = (Join-Path $OutputDir "$Name`_$i.png") + if (-not (Test-Path $path)) { continue } + $img = [System.Drawing.Bitmap]::FromFile($path) + $dest = New-Object System.Drawing.Rectangle (($i % $Cols) * $tileW), ([math]::Floor($i / $Cols) * $tileH), $tileW, $tileH + $src = New-Object System.Drawing.Rectangle $CropX, $CropY, $CropW, $CropH + $g.DrawImage($img, $dest, $src, [System.Drawing.GraphicsUnit]::Pixel) + $img.Dispose() +} +$sheetPath = Join-Path $OutputDir "$Name`_sheet.png" +$sheet.Save($sheetPath) +$sheetPath diff --git a/Tools/RenderTest/Gallery.ps1 b/Tools/RenderTest/Gallery.ps1 new file mode 100644 index 0000000000..6ccfa583f8 --- /dev/null +++ b/Tools/RenderTest/Gallery.ps1 @@ -0,0 +1,25 @@ +param([string[]]$Images, [string[]]$Labels, [string]$Out, [int]$Cols = 2, [int]$CropX = 8, [int]$CropY = 31, [int]$CropW = 600, [int]$CropH = 540) +# Labelled grid of captures cropped to the game view. +Add-Type -AssemblyName System.Drawing +# .NET resolves relative paths against the process directory, not the PowerShell location. +$Images = @($Images | ForEach-Object { (Resolve-Path $_).Path }) +if (-not [IO.Path]::IsPathRooted($Out)) { $Out = Join-Path (Get-Location).Path $Out } +$gap = 8; $labelH = 28 +$rows = [math]::Ceiling($Images.Count / $Cols) +$canvas = New-Object System.Drawing.Bitmap ($Cols * $CropW + ($Cols - 1) * $gap), ($rows * ($CropH + $labelH) + ($rows - 1) * $gap) +$g = [System.Drawing.Graphics]::FromImage($canvas) +$g.Clear([System.Drawing.Color]::FromArgb(20, 20, 24)) +$g.InterpolationMode = 'NearestNeighbor' +$font = New-Object System.Drawing.Font("Segoe UI", 11, [System.Drawing.FontStyle]::Bold) +$brush = New-Object System.Drawing.SolidBrush ([System.Drawing.Color]::FromArgb(235, 235, 240)) +$src = New-Object System.Drawing.Rectangle $CropX, $CropY, $CropW, $CropH +for ($i = 0; $i -lt $Images.Count; $i++) { + $col = $i % $Cols; $row = [math]::Floor($i / $Cols) + $x = $col * ($CropW + $gap); $y = $row * ($CropH + $labelH + $gap) + $img = [System.Drawing.Bitmap]::FromFile($Images[$i]) + $g.DrawImage($img, (New-Object System.Drawing.Rectangle $x, ($y + $labelH), $CropW, $CropH), $src, [System.Drawing.GraphicsUnit]::Pixel) + $g.DrawString($Labels[$i], $font, $brush, ($x + 8), ($y + 4)) + $img.Dispose() +} +$canvas.Save($Out) +$Out diff --git a/Tools/RenderTest/Golden.ps1 b/Tools/RenderTest/Golden.ps1 new file mode 100644 index 0000000000..dfee01a3d8 --- /dev/null +++ b/Tools/RenderTest/Golden.ps1 @@ -0,0 +1,139 @@ +param( + [switch]$Update, # Capture new baselines instead of comparing. + [string[]]$Only = @(), # Limit to these scenarios (names without the Golden prefix also work). + [string]$Exe = "Cortex Command.debug.release.exe", + [int]$ExtraWait = 10, + [double]$MaxMeanDiff = 5.0, # Mean absolute difference per channel (0-255) allowed. + [double]$MaxBadPercent = 4.0 # Percentage of pixels allowed to differ by more than $BadThreshold. +) +# Golden image regression check: captures a few calm, fixed scenes and compares them against the baselines in Golden\. +# The game isn't deterministic (AI, particles, twinkling stars), so the comparison allows a small camera shift and has tolerances: it catches black screens, +# missing layers, broken passes and colour shifts, not a soldier that moved. Exit code 0 when everything passes, 1 otherwise. +. (Join-Path $PSScriptRoot "Common.ps1") +Add-Type -AssemblyName System.Drawing + +$goldenDir = Join-Path $PSScriptRoot "Golden" +if (-not (Test-Path $goldenDir)) { New-Item -ItemType Directory -Path $goldenDir | Out-Null } +$scenarios = @( + @{ Name = "GoldenNoon" }, + @{ Name = "GoldenNight" }, + @{ Name = "GoldenCaves"; CameraPOI = "2" }, + @{ Name = "GoldenClassic" }, + @{ Name = "GoldenLightingOnly" }, + @{ Name = "GoldenInterior" } +) +if ($Only.Count -gt 0) { + $wanted = $Only | ForEach-Object { if ($_ -like "Golden*") { $_ } else { "Golden$_" } } + $scenarios = $scenarios | Where-Object { $wanted -contains $_.Name } +} + +# Captures are cropped to the 960x540 game view, the same as the stored baselines. +function Get-Reduced([string]$path) { + $source = [Drawing.Bitmap]::FromFile($path) + # Crop the window title bar and borders away, leaving the 960x540 game view. + $gameArea = New-Object Drawing.Rectangle 8, 31, ([Math]::Min(960, $source.Width - 16)), ([Math]::Min(540, $source.Height - 39)) + $reduced = New-Object Drawing.Bitmap $gameArea.Width, $gameArea.Height + $g = [Drawing.Graphics]::FromImage($reduced) + $g.InterpolationMode = [Drawing.Drawing2D.InterpolationMode]::NearestNeighbor + $g.DrawImage($source, (New-Object Drawing.Rectangle 0, 0, $reduced.Width, $reduced.Height), $gameArea, [Drawing.GraphicsUnit]::Pixel) + $g.Dispose(); $source.Dispose() + return $reduced +} + +if (-not ("GoldenCompare" -as [type])) { + Add-Type @" +using System; +public static class GoldenCompare { + // Mean absolute channel difference and percentage of clearly different pixels between a and b, with b shifted by (dx, dy). + static void Measure(byte[] a, byte[] b, int w, int h, int stride, int dx, int dy, int margin, byte[] diff, out double mean, out double badPercent) { + double total = 0; long bad = 0, count = 0; + for (int y = margin; y < h - margin; y++) { + for (int x = margin; x < w - margin; x++) { + int i = y * stride + x * 4; + int j = (y + dy) * stride + (x + dx) * 4; + int d0 = Math.Abs(a[i] - b[j]), d1 = Math.Abs(a[i + 1] - b[j + 1]), d2 = Math.Abs(a[i + 2] - b[j + 2]); + total += d0 + d1 + d2; + int m = Math.Max(d0, Math.Max(d1, d2)); + if (m > 40) { bad++; } + count++; + if (diff != null) { + diff[i] = (byte)(b[j] / 4); diff[i + 1] = (byte)(b[j + 1] / 4); diff[i + 2] = (byte)Math.Min(255, b[j + 2] / 4 + m * 3); diff[i + 3] = 255; + } + } + } + mean = total / (count * 3.0); + badPercent = 100.0 * bad / count; + } + + // The game camera can land a pixel or two differently between runs, so compare at the best global shift within maxShift. + public static double[] Compare(byte[] a, byte[] b, int w, int h, int stride, int maxShift, byte[] diff) { + double bestMean = double.MaxValue, bestBad = 0; int bestX = 0, bestY = 0; + // Coarse pass every 4 pixels, then refine around the best. + for (int pass = 0; pass < 2; pass++) { + int step = pass == 0 ? 4 : 1; + int range = pass == 0 ? maxShift : 3; + int centerX = bestX, centerY = bestY; + for (int dy = centerY - range; dy <= centerY + range; dy += step) { + for (int dx = centerX - range; dx <= centerX + range; dx += step) { + if (Math.Abs(dx) > maxShift || Math.Abs(dy) > maxShift) { continue; } + double mean, badPercent; + Measure(a, b, w, h, stride, dx, dy, maxShift, null, out mean, out badPercent); + if (mean < bestMean) { bestMean = mean; bestBad = badPercent; bestX = dx; bestY = dy; } + } + } + } + Measure(a, b, w, h, stride, bestX, bestY, maxShift, diff, out bestMean, out bestBad); + return new double[] { bestMean, bestBad, bestX, bestY }; + } +} +"@ +} + +function Compare-Images([Drawing.Bitmap]$a, [Drawing.Bitmap]$b, [string]$diffPath) { + # Only the left 600 px: most golden scenes have the editor panel on the right, which is fixed while the world can land a few pixels differently. + $w = [Math]::Min(600, [Math]::Min($a.Width, $b.Width)); $h = [Math]::Min($a.Height, $b.Height) + $rect = New-Object Drawing.Rectangle 0, 0, $w, $h + $format = [Drawing.Imaging.PixelFormat]::Format32bppArgb + $da = $a.LockBits($rect, [Drawing.Imaging.ImageLockMode]::ReadOnly, $format) + $db = $b.LockBits($rect, [Drawing.Imaging.ImageLockMode]::ReadOnly, $format) + $bytes = $da.Stride * $h + $pa = New-Object byte[] $bytes; $pb = New-Object byte[] $bytes; $pd = New-Object byte[] $bytes + [Runtime.InteropServices.Marshal]::Copy($da.Scan0, $pa, 0, $bytes) + [Runtime.InteropServices.Marshal]::Copy($db.Scan0, $pb, 0, $bytes) + $stride = $da.Stride + $a.UnlockBits($da); $b.UnlockBits($db) + $r = [GoldenCompare]::Compare($pa, $pb, $w, $h, $stride, 32, $pd) + # Same width as the sources so its rows have the same stride as the comparison buffers. + $diff = New-Object Drawing.Bitmap $a.Width, $h + $dd = $diff.LockBits($rect, [Drawing.Imaging.ImageLockMode]::WriteOnly, $format) + [Runtime.InteropServices.Marshal]::Copy($pd, 0, $dd.Scan0, $bytes) + $diff.UnlockBits($dd); $diff.Save($diffPath); $diff.Dispose() + return @{ Mean = $r[0]; BadPercent = $r[1]; ShiftX = $r[2]; ShiftY = $r[3] } +} + +$failures = 0 +foreach ($scenario in $scenarios) { + $name = $scenario.Name + Get-Process ([IO.Path]::GetFileNameWithoutExtension($Exe)) -ErrorAction SilentlyContinue | Stop-Process -Force + Start-Sleep 2 + $captureArgs = @{ Scenario = $name; Name = "golden_$name"; Exe = $Exe; ExtraWait = $ExtraWait } + if ($scenario.CameraPOI) { $captureArgs.CameraPOI = $scenario.CameraPOI } + $captured = & (Join-Path $PSScriptRoot "Capture.ps1") @captureArgs | Select-Object -Last 1 + if (-not $captured -or -not (Test-Path $captured)) { "FAIL $name : capture failed ($captured)"; $failures++; continue } + $reduced = Get-Reduced $captured + $baselinePath = Join-Path $goldenDir "$name.png" + if ($Update) { + $reduced.Save($baselinePath); $reduced.Dispose() + "UPDATED $name" + continue + } + if (-not (Test-Path $baselinePath)) { "FAIL $name : no baseline (run with -Update)"; $failures++; $reduced.Dispose(); continue } + $baseline = [Drawing.Bitmap]::FromFile($baselinePath) + $result = Compare-Images $baseline $reduced (Join-Path $OutputDir "golden_$name`_diff.png") + $baseline.Dispose(); $reduced.Dispose() + $ok = $result.Mean -le $MaxMeanDiff -and $result.BadPercent -le $MaxBadPercent + if (-not $ok) { $failures++ } + "{0} {1,-20} mean diff {2,5:N2} pixels off {3,5:N2}% (aligned at {4},{5})" -f $(if ($ok) { "PASS" } else { "FAIL" }), $name, $result.Mean, $result.BadPercent, $result.ShiftX, $result.ShiftY +} +if (-not $Update) { if ($failures -eq 0) { "All golden images match." } else { "$failures golden image(s) differ; see Output\golden_*_diff.png" } } +exit $(if ($failures -eq 0) { 0 } else { 1 }) diff --git a/Tools/RenderTest/Golden/GoldenCaves.png b/Tools/RenderTest/Golden/GoldenCaves.png new file mode 100644 index 0000000000..aecca812a4 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenCaves.png differ diff --git a/Tools/RenderTest/Golden/GoldenClassic.png b/Tools/RenderTest/Golden/GoldenClassic.png new file mode 100644 index 0000000000..041ec49609 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenClassic.png differ diff --git a/Tools/RenderTest/Golden/GoldenInterior.png b/Tools/RenderTest/Golden/GoldenInterior.png new file mode 100644 index 0000000000..89f699bb87 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenInterior.png differ diff --git a/Tools/RenderTest/Golden/GoldenLightingOnly.png b/Tools/RenderTest/Golden/GoldenLightingOnly.png new file mode 100644 index 0000000000..c9e9f394f0 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenLightingOnly.png differ diff --git a/Tools/RenderTest/Golden/GoldenNight.png b/Tools/RenderTest/Golden/GoldenNight.png new file mode 100644 index 0000000000..e292222591 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenNight.png differ diff --git a/Tools/RenderTest/Golden/GoldenNoon.png b/Tools/RenderTest/Golden/GoldenNoon.png new file mode 100644 index 0000000000..6752f7ba40 Binary files /dev/null and b/Tools/RenderTest/Golden/GoldenNoon.png differ diff --git a/Tools/RenderTest/Input.ps1 b/Tools/RenderTest/Input.ps1 new file mode 100644 index 0000000000..d32c78bb50 --- /dev/null +++ b/Tools/RenderTest/Input.ps1 @@ -0,0 +1,43 @@ +# Real keyboard and mouse input for playtesting, via SendInput (the game sees it like hardware input). Dot-source this. +if (-not ("PlayInput" -as [type])) { + Add-Type @" +using System; using System.Runtime.InteropServices; +public static class PlayInput { + [StructLayout(LayoutKind.Sequential)] struct MOUSEINPUT { public int dx, dy; public uint mouseData, dwFlags, time; public IntPtr extra; } + [StructLayout(LayoutKind.Sequential)] struct KEYBDINPUT { public ushort wVk, wScan; public uint dwFlags, time; public IntPtr extra; } + [StructLayout(LayoutKind.Explicit)] struct INPUTUNION { [FieldOffset(0)] public MOUSEINPUT mi; [FieldOffset(0)] public KEYBDINPUT ki; } + [StructLayout(LayoutKind.Sequential)] struct INPUT { public uint type; public INPUTUNION u; } + [DllImport("user32.dll")] static extern uint SendInput(uint n, INPUT[] inputs, int size); + [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr h); + [DllImport("user32.dll")] public static extern bool SetCursorPos(int x, int y); + [DllImport("user32.dll")] public static extern bool GetWindowRect(IntPtr h, out RECT r); + public struct RECT { public int L, T, R, B; } + public static void Key(ushort scan, bool up) { + var i = new INPUT[1]; i[0].type = 1; i[0].u.ki.wScan = scan; i[0].u.ki.dwFlags = 0x0008u | (up ? 0x0002u : 0u); + SendInput(1, i, Marshal.SizeOf(typeof(INPUT))); + } + public static void Mouse(uint flags, int dx, int dy) { + var i = new INPUT[1]; i[0].type = 0; i[0].u.mi.dwFlags = flags; i[0].u.mi.dx = dx; i[0].u.mi.dy = dy; + SendInput(1, i, Marshal.SizeOf(typeof(INPUT))); + } +} +"@ +} + +# Set 1 scancodes. +$script:Scan = @{ Esc = 0x01; One = 0x02; Two = 0x03; Q = 0x10; W = 0x11; E = 0x12; R = 0x13; A = 0x1E; S = 0x1F; D = 0x20; F = 0x21; G = 0x22; LCtrl = 0x1D; LShift = 0x2A; Space = 0x39; Enter = 0x1C; Tab = 0x0F; C = 0x2E; Z = 0x2C; F1 = 0x3B; F2 = 0x3C; F3 = 0x3D; F4 = 0x3E; F5 = 0x3F; F6 = 0x40; F7 = 0x41; F8 = 0x42; F9 = 0x43; F10 = 0x44; F11 = 0x57; F12 = 0x58 } + +function Focus-Game([System.Diagnostics.Process]$Process) { [PlayInput]::SetForegroundWindow($Process.MainWindowHandle) | Out-Null; Start-Sleep -Milliseconds 300 } +function Key-Down([string]$Name) { [PlayInput]::Key($Scan[$Name], $false) } +function Key-Up([string]$Name) { [PlayInput]::Key($Scan[$Name], $true) } +function Hold-Key([string]$Name, [int]$Ms) { Key-Down $Name; Start-Sleep -Milliseconds $Ms; Key-Up $Name } +function Tap-Key([string]$Name) { Hold-Key $Name 80 } +function Move-Mouse([int]$Dx, [int]$Dy) { [PlayInput]::Mouse(0x0001, $Dx, $Dy) } +function Mouse-Down([string]$Button = "Left") { [PlayInput]::Mouse($(if ($Button -eq "Left") { 0x0002 } else { 0x0008 }), 0, 0) } +function Mouse-Up([string]$Button = "Left") { [PlayInput]::Mouse($(if ($Button -eq "Left") { 0x0004 } else { 0x0010 }), 0, 0) } +function Hold-Mouse([string]$Button, [int]$Ms) { Mouse-Down $Button; Start-Sleep -Milliseconds $Ms; Mouse-Up $Button } +# Moves the cursor to a point in the game window (window coordinates, including the title bar), for menus. +function Point-At([System.Diagnostics.Process]$Process, [int]$X, [int]$Y) { + $r = New-Object PlayInput+RECT; [PlayInput]::GetWindowRect($Process.MainWindowHandle, [ref]$r) | Out-Null + for ($i = 4; $i -ge 0; $i--) { [PlayInput]::SetCursorPos($r.L + $X + $i * 5, $r.T + $Y + $i * 3) | Out-Null; Start-Sleep -Milliseconds 50 } +} diff --git a/Tools/RenderTest/README.md b/Tools/RenderTest/README.md new file mode 100644 index 0000000000..ad97f7ff89 --- /dev/null +++ b/Tools/RenderTest/README.md @@ -0,0 +1,63 @@ +# Render Test + +These tools are for checking rendering changes by eye, against fixed scenarios, and against another build such as a `development` checkout. + +## Setup + +1. Build the game with `Build.ps1` (Debug Release by default), then run it once so `Userdata\Settings.ini` exists. +2. Run `Setup.ps1`. It installs `RenderTest.rte` into `Mods\` and writes scenario settings files to `Userdata\RenderTest\`. Each scenario is your `Settings.ini` with a few keys changed so the game starts straight into a known scene. + +## Capturing + +```powershell +.\Capture.ps1 -Scenario BunkerNight -Burst 6 -BurstIntervalMs 250 +.\ContactSheet.ps1 -Name BunkerNight -Count 6 -Cols 3 +.\Capture.ps1 -Scenario Caves -CameraPOI 2 +``` + +- `Capture.ps1` launches the game with the scenario's settings, using the `CCCP_SETTINGSPATH` environment variable. It waits for loading to finish, captures the window to `Output\`, and closes the game. If an assert or error dialog appears, it captures that instead. +- Glows and explosions are brief, so use `-Burst` to catch them. +- `-CameraPOI 1..6` pins the camera tour to one spot, so shots from different builds can be compared. +- To compare against another checkout, pass `-Repo` pointing at its game folder. That folder needs the mod and scenario files too, so run `Setup.ps1 -Repo ` there. +- Then compose the results with `BeforeAfter.ps1 -Before a.png -After b.png -Out compare.png` or `Gallery.ps1`. + +## Golden image regression check + +```powershell +.\Golden.ps1 # compare against Golden\*.png; exit code 1 on any failure +.\Golden.ps1 -Update # accept the current look as the new baselines (after an intended visual change) +.\Golden.ps1 -Only Noon,Caves +``` + +- **Scenes:** six calm, fixed scenes (`GoldenNoon`, `GoldenNight`, `GoldenCaves`, `GoldenClassic`, `GoldenLightingOnly`, `GoldenInterior`). They have no explosions and use the built-in lighting defaults, so your own settings can't change them. +- **How it compares:** captures are cropped to the 960x540 game view and compared against the baselines. Small camera offsets are allowed by aligning first, within ±32 px. +- **Tolerances:** a scene fails when the mean channel difference goes over 5, or more than 4% of pixels differ clearly, comparing the game area left of the editor panel (x < 600). Normal run-to-run noise is 0–3. A 20% exposure change scores about 12. +- **Diffs:** each scene writes a diff image to `Output\golden__diff.png`. Differences show in red. +- **Not in CI:** hosted runners have no GPU, so this runs locally. Run it before committing renderer changes. It takes about 3 minutes. + +## Scenarios + +| Scenario | What it shows | +|---|---| +| `Bunker` | Zekarra Mining Outpost by day, with frag and napalm detonations next to the bunker. | +| `BunkerNight`, `BunkerDusk` | The same scene at night or dusk: fire lighting, edge lighting, atmosphere. | +| `BunkerRain` | Night rain glinting in firelight. | +| `BunkerFog` | Fog of war with soft edges, revealed by see-rays. | +| `Caves` | A camera tour of Dvorak Caves with detonations: sky light falloff, scorch marks, god rays. | +| `CavesNightLights` | Actor lamps and a pulsing Lua light (`PostProcessMan:AddLight`). | +| `Primitives` | Every Lua primitive type, drawn near the top left. | +| `Classic` | Lighting, bloom and distortion turned off. | +| `SplitScreen` | Two players, each screen lit independently. | +| `Menu` | The main menu. | + +## The mod's global scripts + +These are enabled per scenario in the scenario files: + +- **Render Test FX:** detonates frag grenades and napalm near player 1's camera. +- **Render Test Camera Tour:** cycles through points of interest. The `CCCP_CAMERA_POI` environment variable pins it to one. +- **Render Test Lights:** gives every actor a lamp, and adds a Lua light. +- **Render Test Fog:** fog of war for team 1, revealed around the screen centre. +- **Render Test Primitives:** a gallery of every primitive type. +- **Render Test Atmosphere:** sets a snowy dawn from Lua. +- **Render Test Perf:** shows the performance overlay. diff --git a/Tools/RenderTest/RenderTest.rte/Atmosphere.lua b/Tools/RenderTest/RenderTest.rte/Atmosphere.lua new file mode 100644 index 0000000000..4a0c8ce283 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/Atmosphere.lua @@ -0,0 +1,9 @@ +function AtmosphereScript:StartScript() + PostProcessMan.TimeOfDay = 6.8; + PostProcessMan.WeatherType = 2; + PostProcessMan.WeatherIntensity = 0.9; + PostProcessMan.Wind = -120; +end + +function AtmosphereScript:UpdateScript() +end diff --git a/Tools/RenderTest/RenderTest.rte/CameraTour.lua b/Tools/RenderTest/RenderTest.rte/CameraTour.lua new file mode 100644 index 0000000000..6942891d3c --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/CameraTour.lua @@ -0,0 +1,17 @@ +function CameraTourScript:StartScript() + self.timer = Timer(); + -- Points as fractions of the scene size. + self.points = {Vector(0.18, 0.62), Vector(0.38, 0.70), Vector(0.55, 0.55), Vector(0.74, 0.66), Vector(0.50, 0.30), Vector(0.90, 0.60)}; + self.holdMS = 3000; + -- CCCP_CAMERA_POI pins the camera to one point, for comparing builds. + self.fixedPoint = nil; + if os and os.getenv then + self.fixedPoint = tonumber(os.getenv("CCCP_CAMERA_POI") or ""); + end +end + +function CameraTourScript:UpdateScript() + local index = self.fixedPoint or (math.floor(self.timer.ElapsedRealTimeMS / self.holdMS) % #self.points + 1); + local point = self.points[index]; + CameraMan:SetScrollTarget(Vector(SceneMan.SceneWidth * point.X, SceneMan.SceneHeight * point.Y), 1.0, 0); +end diff --git a/Tools/RenderTest/RenderTest.rte/CollapseTest.lua b/Tools/RenderTest/RenderTest.rte/CollapseTest.lua new file mode 100644 index 0000000000..7858fd16af --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/CollapseTest.lua @@ -0,0 +1,21 @@ +function CollapseTestScript:StartScript() + self.timer = Timer(); + self.stage = 0; +end + +function CollapseTestScript:UpdateScript() + -- Cuts a ring out of the hill near the camera, leaving a loose disc of earth, then sets off a grenade beside it so the collapse check runs. + local center = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.35, FrameMan.PlayerScreenHeight * 0.78); + if self.stage == 0 and self.timer:IsPastSimMS(8000) then + self.stage = 1; + SceneMan:DislodgePixelRing(center, 18, 22, true); + elseif self.stage == 1 and self.timer:IsPastSimMS(11000) then + self.stage = 2; + local grenade = CreateTDExplosive("Frag Grenade", "Base.rte"); + if grenade then + grenade.Pos = center + Vector(60, 0); + MovableMan:AddItem(grenade); + grenade:GibThis(); + end + end +end diff --git a/Tools/RenderTest/RenderTest.rte/FXTest.lua b/Tools/RenderTest/RenderTest.rte/FXTest.lua new file mode 100644 index 0000000000..14b24bb082 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/FXTest.lua @@ -0,0 +1,21 @@ +function FXTestScript:StartScript() + self.timer = Timer(); + self.index = 0; +end + +function FXTestScript:UpdateScript() + if self.timer:IsPastSimMS(700) then + self.timer:Reset(); + self.index = self.index + 1; + local center = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.35, FrameMan.PlayerScreenHeight * 0.55); + local pos = center + Vector((self.index % 5) * 60 - 120, (self.index % 3) * 25 - 25); + -- Every fourth detonation is napalm, which leaves fire burning for a while. + local presetName = (self.index % 4 == 0) and "Napalm Bomb" or "Frag Grenade"; + local bomb = CreateTDExplosive(presetName, "Base.rte"); + if bomb then + bomb.Pos = pos; + MovableMan:AddItem(bomb); + bomb:GibThis(); + end + end +end diff --git a/Tools/RenderTest/RenderTest.rte/FireTest.lua b/Tools/RenderTest/RenderTest.rte/FireTest.lua new file mode 100644 index 0000000000..5434ae38e1 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/FireTest.lua @@ -0,0 +1,25 @@ +function FireTestScript:StartScript() + self.timer = Timer(); + self.dropped = 0; +end + +function FireTestScript:UpdateScript() + -- Detonates napalm on the ground near the camera a couple of times, to show fire spreading through grass. + if self.dropped < 2 and self.timer:IsPastSimMS(2000 + self.dropped * 2500) then + self.dropped = self.dropped + 1; + local pos = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * (0.36 + 0.12 * self.dropped), FrameMan.PlayerScreenHeight * 0.45); + -- Drop it onto the surface below. + for i = 1, 200 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + local bomb = CreateTDExplosive("Napalm Bomb", "Base.rte"); + if bomb then + bomb.Pos = pos + Vector(0, -4); + MovableMan:AddItem(bomb); + bomb:GibThis(); + end + end +end diff --git a/Tools/RenderTest/RenderTest.rte/FireUnitsTest.lua b/Tools/RenderTest/RenderTest.rte/FireUnitsTest.lua new file mode 100644 index 0000000000..d4a3be73f9 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/FireUnitsTest.lua @@ -0,0 +1,80 @@ +function FireUnitsTestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("fireunitstest.log", "w"); +end + +function FireUnitsTestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function Ground(x, y) + local pos = Vector(x, y); + for i = 1, 600 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + return pos; +end + +function FireUnitsTestScript:UpdateScript() + -- Napalm on a squad, water on a burning soldier, and fire beside fuel barrels. + local t = self.timer.ElapsedSimTimeMS; + if self.stage == 0 and t > 3000 then + self.stage = 1; + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + self.squadPos = Ground(origin.X + w * 0.3, origin.Y); + self.barrelPos = Ground(origin.X + w * 0.62, origin.Y); + SandboxDo("Units", self.squadPos + Vector(0, -20), 0, 0, 4, "Soldier Light"); + for i = 0, 2 do + SandboxDo("Item", self.barrelPos + Vector(i * 14 - 14, -10), 0, 0, 1, "Fuel Barrel"); + end + self:Log("setup"); + elseif self.stage == 1 and t > 6000 then + self.stage = 2; + SandboxDo("Napalm burst", self.squadPos + Vector(0, -4), 0, 0, 1, ""); + self:Log("napalm"); + elseif self.stage == 2 and t > 9000 then + self.stage = 3; + for actor in MovableMan.Actors do + if actor:NumberValueExists("OnFire") then + SandboxDo("Water", actor.Pos + Vector(0, -12), 0, 0, 8, ""); + self:Log("water on a burning " .. actor.PresetName); + break; + end + end + elseif self.stage == 3 and t > 12000 then + self.stage = 4; + SandboxDo("Fire", self.barrelPos + Vector(0, -2), 0, 0, 10, ""); + self:Log("fire by the barrels"); + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(1000) then + self.logTimer:Reset(); + local barrels, steam = 0, 0; + for item in MovableMan.Items do + if item.PresetName == "Fuel Barrel" then + barrels = barrels + 1; + end + end + for particle in MovableMan.Particles do + if particle.PresetName == "Steam Puff" then + steam = steam + 1; + end + end + self:Log(string.format("burning units %d burning ground %d barrels %d steam %d red %d", SceneMan:GetBurningUnitCount(), SceneMan:GetBurningPixelCount(), barrels, steam, SandboxCountUnits(0))); + end +end + +function FireUnitsTestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/FlareTest.lua b/Tools/RenderTest/RenderTest.rte/FlareTest.lua new file mode 100644 index 0000000000..b5d51e6f06 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/FlareTest.lua @@ -0,0 +1,22 @@ +function FlareTestScript:StartScript() + self.timer = Timer(); + self.thrown = false; +end + +function FlareTestScript:UpdateScript() + -- Throws a lit flare out from player 1's soldier. + if not self.thrown and self.timer:IsPastSimMS(4000) then + local actor = ActivityMan:GetActivity():GetControlledActor(0); + if not actor then + return; + end + self.thrown = true; + local flare = CreateTDExplosive("Flare", "Base.rte"); + if flare then + flare.Pos = actor.Pos + Vector(-10, -20); + flare.Vel = Vector(-6, -4); + flare:Activate(); + MovableMan:AddItem(flare); + end + end +end diff --git a/Tools/RenderTest/RenderTest.rte/Fog.lua b/Tools/RenderTest/RenderTest.rte/Fog.lua new file mode 100644 index 0000000000..f0da3521fa --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/Fog.lua @@ -0,0 +1,13 @@ +function FogScript:StartScript() + SceneMan:MakeAllUnseen(Vector(12, 12), Activity.TEAM_1); +end + +function FogScript:UpdateScript() + -- Reveal around the screen center like an actor's view would, with terrain blocking it. + local center = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.32, FrameMan.PlayerScreenHeight * 0.5); + local endPos = Vector(); + for i = 0, 89 do + local ray = Vector(260, 0):RadRotate(i / 90 * math.pi * 2); + SceneMan:CastSeeRay(Activity.TEAM_1, center, ray, endPos, 40, 2); + end +end diff --git a/Tools/RenderTest/RenderTest.rte/GrenadeTest.lua b/Tools/RenderTest/RenderTest.rte/GrenadeTest.lua new file mode 100644 index 0000000000..0ab507ad63 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/GrenadeTest.lua @@ -0,0 +1,81 @@ +function GrenadeTestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("grenadetest.log", "w"); +end + +function GrenadeTestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function SpawnEnemy(pos) + local soldier = CreateAHuman("Soldier Light", "Coalition.rte"); + soldier:AddInventoryItem(CreateHDFirearm("Assault Rifle", "Coalition.rte")); + soldier.Pos = pos; + soldier.Team = 1; + soldier.HFlipped = true; + soldier.AIMode = Actor.AIMODE_SENTRY; + MovableMan:AddActor(soldier); + return soldier; +end + +local function Throw(name, pos, vel) + local grenade = CreateTDExplosive(name, "Base.rte"); + grenade.Pos = pos; + grenade.Vel = vel; + grenade:Activate(); + MovableMan:AddItem(grenade); +end + +function GrenadeTestScript:UpdateScript() + -- An enemy rifleman faces player 1's soldier with a smoke screen between them; a second enemy stands in toxic gas. + local player = ActivityMan:GetActivity():GetControlledActor(0); + if not player then + return; + end + if self.stage == 0 and self.timer:IsPastSimMS(14000) then + self.stage = 1; + self:Log("start, player health " .. player.Health); + Throw("Smoke Grenade", player.Pos + Vector(90, -30), Vector(0, 0)); + Throw("Smoke Grenade", player.Pos + Vector(130, -30), Vector(0, 0)); + self.gasVictim = SpawnEnemy(player.Pos + Vector(-150, -20)); + self.gasVictim.HFlipped = false; + self.gasVictim.AIMode = Actor.AIMODE_NONE; + Throw("Toxic Gas Grenade", player.Pos + Vector(-150, -40), Vector(0, 0)); + elseif self.stage == 1 and self.timer:IsPastSimMS(16000) then + self.stage = 2; + self.rifleman = SpawnEnemy(player.Pos + Vector(220, -20)); + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(1000) then + self.logTimer:Reset(); + local gas = (self.gasVictim and MovableMan:ValidMO(self.gasVictim)) and string.format("%.1f", self.gasVictim.Health) or "gone"; + local shots = "-"; + if self.rifleman and MovableMan:ValidMO(self.rifleman) and self.rifleman.EquippedItem and IsHDFirearm(self.rifleman.EquippedItem) then + local gun = ToHDFirearm(self.rifleman.EquippedItem); + self.lastRounds = self.lastRounds or gun.RoundInMagCount; + if gun.RoundInMagCount < self.lastRounds then + self.fired = (self.fired or 0) + self.lastRounds - gun.RoundInMagCount; + end + self.lastRounds = gun.RoundInMagCount; + shots = tostring(self.fired or 0); + end + local cloud = "none"; + for particle in MovableMan.Particles do + if particle.PresetName == "Toxic Gas Cloud" then + cloud = string.format("%.0f,%.0f", particle.Pos.X - player.Pos.X, particle.Pos.Y - player.Pos.Y); + end + end + self:Log(string.format("player %.1f gas victim %s rifleman rounds fired %s gas cloud %s", player.Health, gas, shots, cloud)); + end +end + +function GrenadeTestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/Index.ini b/Tools/RenderTest/RenderTest.rte/Index.ini new file mode 100644 index 0000000000..00dbe38e41 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/Index.ini @@ -0,0 +1,121 @@ +DataModule + ModuleName = Render Test + SupportedGameVersion = 7.0.0 + Description = Dev-only module for exercising the renderer (primitives, effects). Not shipped. + AddGlobalScript = GlobalScript + PresetName = Render Test Primitives + Description = Draws every primitive type near the top-left of player 1's screen. + ScriptPath = RenderTest.rte/PrimitiveGallery.lua + LuaClassName = PrimitiveGalleryScript + AddGlobalScript = GlobalScript + PresetName = Render Test FX + Description = Periodically detonates explosives in front of player 1's camera, for testing effects rendering. + ScriptPath = RenderTest.rte/FXTest.lua + LuaClassName = FXTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Camera Tour + Description = Moves player 1's camera through fixed points of interest, 3 seconds each, for repeatable screenshots. + ScriptPath = RenderTest.rte/CameraTour.lua + LuaClassName = CameraTourScript + AddGlobalScript = GlobalScript + PresetName = Render Test Lights + Description = Gives every actor a lamp via the MovableObject light properties and adds a pulsing Lua light near the camera. + ScriptPath = RenderTest.rte/LightsTest.lua + LuaClassName = LightsTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Perf + Description = Shows the performance stats overlay. + ScriptPath = RenderTest.rte/Perf.lua + LuaClassName = PerfScript + AddGlobalScript = GlobalScript + PresetName = Render Test Atmosphere + Description = Sets a snowy dawn through the PostProcessMan Lua API. + ScriptPath = RenderTest.rte/Atmosphere.lua + LuaClassName = AtmosphereScript + AddGlobalScript = GlobalScript + PresetName = Render Test Fog + Description = Turns on fog of war for team 1 so the unseen layer can be checked. + ScriptPath = RenderTest.rte/Fog.lua + LuaClassName = FogScript + AddActivity = GAScripted + CopyOf = Test Activity + PresetName = Render Test Split Screen + Player1IsHuman = 1 + Player2IsHuman = 1 + TeamOfPlayer1 = 0 + TeamOfPlayer2 = 0 + AddGlobalScript = GlobalScript + PresetName = Render Test Smoke + Description = A column of smoke rising past a flickering orange Lua light. + ScriptPath = RenderTest.rte/SmokeTest.lua + LuaClassName = SmokeTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Stains + Description = Sprays blood and oil at the ground near the camera. + ScriptPath = RenderTest.rte/StainTest.lua + LuaClassName = StainTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Fire + Description = Detonates napalm on the ground near the camera. + ScriptPath = RenderTest.rte/FireTest.lua + LuaClassName = FireTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Collapse + Description = Cuts a loose disc out of the hill and sets off a grenade beside it. + ScriptPath = RenderTest.rte/CollapseTest.lua + LuaClassName = CollapseTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Liquids + Description = Pours water, lava and acid onto the terrain near the camera. + ScriptPath = RenderTest.rte/LiquidTest.lua + LuaClassName = LiquidTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Flare + Description = Throws a lit flare near the camera. + ScriptPath = RenderTest.rte/FlareTest.lua + LuaClassName = FlareTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Save + Description = Saves and reloads the game a few seconds in. + ScriptPath = RenderTest.rte/SaveTest.lua + LuaClassName = SaveTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Grenades + Description = Smoke screens an enemy rifleman off and gasses another enemy. + ScriptPath = RenderTest.rte/GrenadeTest.lua + LuaClassName = GrenadeTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Liquid Weapons + Description = Fires the napalm flamer, water cannon and acid sprayer at the ground. + ScriptPath = RenderTest.rte/LiquidWeaponTest.lua + LuaClassName = LiquidWeaponTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Weather + Description = Starts a grass fire and sends a walker off, to compare weathers. + ScriptPath = RenderTest.rte/WeatherTest.lua + LuaClassName = WeatherTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Sandbox + Description = Sets up a three-way battle through the sandbox tools. + ScriptPath = RenderTest.rte/SandboxTest.lua + LuaClassName = SandboxTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Sandbox Stress + Description = A huge two-sided battle through the sandbox tools. + ScriptPath = RenderTest.rte/SandboxStress.lua + LuaClassName = SandboxStressScript + AddGlobalScript = GlobalScript + PresetName = Render Test Fire Units + Description = Napalm on a squad, water on a burning soldier, fire by fuel barrels. + ScriptPath = RenderTest.rte/FireUnitsTest.lua + LuaClassName = FireUnitsTestScript + AddGlobalScript = GlobalScript + PresetName = Render Test Sandbox Armies + Description = Dropship squad, auto battle and commanded units. + ScriptPath = RenderTest.rte/SandboxArmies.lua + LuaClassName = SandboxArmiesScript + AddGlobalScript = GlobalScript + PresetName = Render Test Pause AI + Description = Two squads face to face with the AI paused, then let loose. + ScriptPath = RenderTest.rte/PauseAITest.lua + LuaClassName = PauseAITestScript diff --git a/Tools/RenderTest/RenderTest.rte/LightsTest.lua b/Tools/RenderTest/RenderTest.rte/LightsTest.lua new file mode 100644 index 0000000000..302f3b8169 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/LightsTest.lua @@ -0,0 +1,24 @@ +function LightsTestScript:StartScript() + self.timer = Timer(); +end + +function LightsTestScript:UpdateScript() + for actor in MovableMan.Actors do + if actor.LightRadius == 0 then + actor.LightRadius = 140; + actor.LightIntensity = 0.9; + actor:SetLightColor(255, 230, 190); + actor.LightOffset = Vector(0, -12); + end + end + -- Dummies are drawn as translucent additive "ghosts", to exercise RenderBlendMode/RenderOpacity. + for actor in MovableMan.Actors do + if string.find(actor.PresetName, "Dummy") and actor.RenderBlendMode ~= 1 then + actor.RenderBlendMode = 1; + actor.RenderOpacity = 0.6; + end + end + local pulse = 0.6 + 0.4 * math.sin(self.timer.ElapsedRealTimeMS * 0.004); + local center = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.3, FrameMan.PlayerScreenHeight * 0.5); + PostProcessMan:AddLight(center, 220, 90, 160, 255, 1.5 * pulse); +end diff --git a/Tools/RenderTest/RenderTest.rte/LiquidTest.lua b/Tools/RenderTest/RenderTest.rte/LiquidTest.lua new file mode 100644 index 0000000000..0fd7435042 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/LiquidTest.lua @@ -0,0 +1,17 @@ +function LiquidTestScript:StartScript() + self.timer = Timer(); + self.pours = 0; +end + +function LiquidTestScript:UpdateScript() + -- Pours water, lava and acid onto the hill near the camera for a few seconds. + if self.pours < 40 and self.timer:IsPastSimMS(4000 + self.pours * 150) then + self.pours = self.pours + 1; + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + local h = FrameMan.PlayerScreenHeight; + SceneMan:PourLiquid(origin + Vector(w * 0.30, h * 0.25), 3, "Water"); + SceneMan:PourLiquid(origin + Vector(w * 0.50, h * 0.25), 3, "Lava"); + SceneMan:PourLiquid(origin + Vector(w * 0.70, h * 0.25), 3, "Acid"); + end +end diff --git a/Tools/RenderTest/RenderTest.rte/LiquidWeaponTest.lua b/Tools/RenderTest/RenderTest.rte/LiquidWeaponTest.lua new file mode 100644 index 0000000000..8fc6b68375 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/LiquidWeaponTest.lua @@ -0,0 +1,73 @@ +function LiquidWeaponTestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("liquidweapontest.log", "w"); +end + +function LiquidWeaponTestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +-- A gun pinned in mid-air, aimed down at the ground ahead and firing by itself. +function LiquidWeaponTestScript:PlaceGun(name, offset, angle) + if self.gun and MovableMan:ValidMO(self.gun) then + self.gun.ToDelete = true; + end + local gun = CreateHDFirearm(name, "Base.rte"); + gun.Pos = self.origin + offset; + gun.RotAngle = angle; + gun.PinStrength = 10000; + gun.HitsMOs = false; + gun.GetsHitByMOs = false; + MovableMan:AddItem(gun); + self.gun = gun; + self:Log("firing " .. name); +end + +function LiquidWeaponTestScript:UpdateScript() + -- Napalm onto the grassy slope, then the water cannon onto the fire, then acid into the dirt. + local player = ActivityMan:GetActivity():GetControlledActor(0); + if not player then + return; + end + local t = self.timer.ElapsedSimTimeMS; + if self.stage == 0 and t > 12000 then + self.stage = 1; + self.origin = Vector(player.Pos.X, player.Pos.Y); + self:PlaceGun("Napalm Flamer", Vector(70, -70), -0.7); + elseif self.stage == 1 and t > 15000 then + self.stage = 2; + self.gun.ToDelete = true; + self.gun = nil; + self:Log("napalm stopped"); + elseif self.stage == 2 and t > 19000 then + self.stage = 3; + self:PlaceGun("Water Cannon", Vector(70, -70), -1.0); + elseif self.stage == 3 and t > 22000 then + self.stage = 4; + self:PlaceGun("Acid Sprayer", Vector(-60, -50), -2.3); + elseif self.stage == 4 and t > 26000 then + self.stage = 5; + self.gun.ToDelete = true; + self.gun = nil; + self:Log("done"); + end + if self.gun and MovableMan:ValidMO(self.gun) then + self.gun:Activate(); + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(500) then + self.logTimer:Reset(); + self:Log(string.format("burning %d flowing %d player %.1f", SceneMan:GetBurningPixelCount(), SceneMan:GetFlowingLiquidPixelCount(), player.Health)); + end +end + +function LiquidWeaponTestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/PauseAITest.lua b/Tools/RenderTest/RenderTest.rte/PauseAITest.lua new file mode 100644 index 0000000000..c84d58218c --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/PauseAITest.lua @@ -0,0 +1,66 @@ +function PauseAITestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("pauseaitest.log", "w"); +end + +function PauseAITestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function Ground(x, y) + local pos = Vector(x, y); + for i = 1, 600 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + return pos + Vector(0, -20); +end + +function PauseAITestScript:UpdateScript() + -- Two squads on attack orders face to face with the AI paused, then the AI is let loose. + local t = self.timer.ElapsedSimTimeMS; + if self.stage == 0 and t > 3000 then + self.stage = 1; + SandboxPauseAI(true); + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + SandboxDo("Units", Ground(origin.X + w * 0.4, origin.Y), 0, 1, 4, "Soldier Light"); + SandboxDo("Units", Ground(origin.X + w * 0.6, origin.Y), 1, 1, 4, "Soldier Light"); + self:Log("AI paused, squads spawned"); + elseif self.stage == 1 and t > 13000 then + self.stage = 2; + SandboxPauseAI(false); + self:Log("AI resumed"); + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(2000) then + self.logTimer:Reset(); + local moved = 0; + for actor in MovableMan.Actors do + if actor.ClassName == "AHuman" then + if not self.start then + self.start = {}; + end + local key = actor.UniqueID; + if self.start[key] == nil then + self.start[key] = actor.Pos.X; + end + moved = math.max(moved, math.abs(actor.Pos.X - self.start[key])); + end + end + self:Log(string.format("red %d green %d most anyone walked %.0f px", SandboxCountUnits(0), SandboxCountUnits(1), moved)); + end +end + +function PauseAITestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/Perf.lua b/Tools/RenderTest/RenderTest.rte/Perf.lua new file mode 100644 index 0000000000..e3095c8d71 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/Perf.lua @@ -0,0 +1,6 @@ +function PerfScript:StartScript() + PerformanceMan.ShowPerformanceStats = true; +end + +function PerfScript:UpdateScript() +end diff --git a/Tools/RenderTest/RenderTest.rte/PrimitiveGallery.lua b/Tools/RenderTest/RenderTest.rte/PrimitiveGallery.lua new file mode 100644 index 0000000000..e599a27daa --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/PrimitiveGallery.lua @@ -0,0 +1,39 @@ +function PrimitiveGalleryScript:StartScript() + self.icon = CreateHDFirearm("SMG", "Base.rte"); + self.angle = 0; +end + +function PrimitiveGalleryScript:UpdateScript() + local o = CameraMan:GetOffset(0) + Vector(30, 60); + local red, yellow, white, blue, green = 13, 117, 254, 166, 147; + self.angle = self.angle + 0.02; + + PrimitiveMan:DrawLinePrimitive(o, o + Vector(40, 20), red); + PrimitiveMan:DrawLinePrimitive(o + Vector(0, 30), o + Vector(40, 30), yellow, 3); + PrimitiveMan:DrawArcPrimitive(o + Vector(70, 20), 0, 270, 15, white); + PrimitiveMan:DrawArcPrimitive(o + Vector(110, 20), 45, 315, 15, blue, 3); + PrimitiveMan:DrawSplinePrimitive(o + Vector(140, 35), o + Vector(150, 0), o + Vector(170, 40), o + Vector(180, 5), green); + + PrimitiveMan:DrawBoxPrimitive(o + Vector(0, 50), o + Vector(30, 70), white); + PrimitiveMan:DrawBoxFillPrimitive(o + Vector(40, 50), o + Vector(70, 70), red); + PrimitiveMan:DrawRoundedBoxPrimitive(o + Vector(80, 50), o + Vector(120, 70), 6, yellow); + PrimitiveMan:DrawRoundedBoxFillPrimitive(o + Vector(130, 50), o + Vector(170, 70), 6, blue); + + PrimitiveMan:DrawCirclePrimitive(o + Vector(15, 95), 12, green); + PrimitiveMan:DrawCircleFillPrimitive(o + Vector(50, 95), 12, white); + PrimitiveMan:DrawEllipsePrimitive(o + Vector(90, 95), 18, 9, red); + PrimitiveMan:DrawEllipseFillPrimitive(o + Vector(135, 95), 18, 9, yellow); + + PrimitiveMan:DrawTrianglePrimitive(o + Vector(0, 135), o + Vector(15, 112), o + Vector(30, 135), blue); + PrimitiveMan:DrawTriangleFillPrimitive(o + Vector(40, 135), o + Vector(55, 112), o + Vector(70, 135), green); + PrimitiveMan:DrawPolygonPrimitive(o + Vector(95, 125), white, {Vector(-15, -10), Vector(0, -15), Vector(15, -10), Vector(5, 0), Vector(15, 10), Vector(-15, 10)}); + PrimitiveMan:DrawPolygonFillPrimitive(o + Vector(140, 125), red, {Vector(-15, -10), Vector(0, -15), Vector(15, -10), Vector(5, 0), Vector(15, 10), Vector(-15, 10)}); + + PrimitiveMan:DrawTextPrimitive(o + Vector(0, 150), "Small text, left", true, 0); + PrimitiveMan:DrawTextPrimitive(o + Vector(180, 150), "Large text, right", false, 2); + PrimitiveMan:DrawTextPrimitive(o + Vector(90, 175), "Rotating", false, 1, self.angle); + if self.icon then + PrimitiveMan:DrawIconPrimitive(o + Vector(210, 20), self.icon); + PrimitiveMan:DrawBitmapPrimitive(o + Vector(210, 60), self.icon, self.angle, 0); + end +end diff --git a/Tools/RenderTest/RenderTest.rte/SandboxArmies.lua b/Tools/RenderTest/RenderTest.rte/SandboxArmies.lua new file mode 100644 index 0000000000..113e8e3519 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/SandboxArmies.lua @@ -0,0 +1,70 @@ +function SandboxArmiesScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("sandboxarmies.log", "w"); +end + +function SandboxArmiesScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +function SandboxArmiesScript:UpdateScript() + -- A squad dropped by dropship, an auto battle between two factions, and the dropped squad commanded across the map. + local t = self.timer.ElapsedSimTimeMS; + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + local h = FrameMan.PlayerScreenHeight; + if self.stage == 0 and t > 3000 then + self.stage = 1; + self.dropX = origin.X + w * 0.5; + self:Log("drop " .. tostring(SandboxDo("Drop squad", Vector(self.dropX, 0), 0, 0, 3, "Soldier Light"))); + SandboxAutoBattleSide(1, "Browncoats", 2500); + SandboxAutoBattleSide(2, "Techion", 2500); + SandboxStartAutoBattle(); + self:Log("auto battle started"); + elseif self.stage == 1 and t > 14000 then + self.stage = 2; + local red = nil; + for actor in MovableMan.Actors do + if actor.Team == 0 and actor.ClassName == "AHuman" then + red = actor; + break; + end + end + if red then + SandboxDo("Select", red.Pos, 0, 0, 60, ""); + self.commandTarget = red.Pos + Vector(-w * 0.4, 0); + SandboxDo("Command", self.commandTarget, 0, 0, 1, ""); + self.watched = red; + self.watchedStart = Vector(red.Pos.X, red.Pos.Y); + self:Log(string.format("commanded red units from %.0f towards %.0f", red.Pos.X, self.commandTarget.X)); + else + self:Log("no red unit to command"); + end + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(3000) then + self.logTimer:Reset(); + local craft = 0; + for actor in MovableMan.Actors do + if actor.ClassName == "ACDropShip" or actor.ClassName == "ACRocket" then + craft = craft + 1; + end + end + local moved = ""; + if self.watched and MovableMan:IsActor(self.watched) then + moved = string.format(" watched red moved %.0f", self.watched.Pos.X - self.watchedStart.X); + end + self:Log(string.format("red %d green %d blue %d craft %d%s", SandboxCountUnits(0), SandboxCountUnits(1), SandboxCountUnits(2), craft, moved)); + end +end + +function SandboxArmiesScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/SandboxStress.lua b/Tools/RenderTest/RenderTest.rte/SandboxStress.lua new file mode 100644 index 0000000000..0402ad7aff --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/SandboxStress.lua @@ -0,0 +1,59 @@ +function SandboxStressScript:StartScript() + self.timer = Timer(); + self.spawnTimer = Timer(); + self.logTimer = Timer(); + self.waves = 0; + self.log = io.open("sandboxstress.log", "w"); +end + +function SandboxStressScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function Ground(x, y) + local pos = Vector(x, y); + for i = 1, 600 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + return pos + Vector(0, -20); +end + +function SandboxStressScript:UpdateScript() + -- A huge two-sided battle through the sandbox tools: squads of ten on attack orders every second for 25 seconds. + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + if self.waves < 25 and self.timer:IsPastSimMS(3000) and self.spawnTimer:IsPastSimMS(1000) then + self.spawnTimer:Reset(); + self.waves = self.waves + 1; + -- Spawned holding position, like a player setting up armies, then all told to attack at once. + SandboxDo("Units", Ground(origin.X + w * (0.1 + 0.02 * self.waves), origin.Y), 0, 0, 10, "Soldier Heavy"); + SandboxDo("Units", Ground(origin.X + w * (0.9 - 0.02 * self.waves), origin.Y), 1, 0, 10, "Whitebot"); + if self.waves == 25 then + for side = 0, 1 do + SandboxDo("Orders", Vector(), side, 1, 1, ""); + end + self:Log("everyone attack"); + end + end + if self.logTimer:IsPastSimMS(2000) then + self.logTimer:Reset(); + local items = 0; + for item in MovableMan.Items do + items = items + 1; + end + self:Log(string.format("waves %d red %d green %d loose items %d", self.waves, SandboxCountUnits(0), SandboxCountUnits(1), items)); + end +end + +function SandboxStressScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/SandboxTest.lua b/Tools/RenderTest/RenderTest.rte/SandboxTest.lua new file mode 100644 index 0000000000..7418b12e89 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/SandboxTest.lua @@ -0,0 +1,86 @@ +function SandboxTestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("sandboxtest.log", "w"); +end + +function SandboxTestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function Ground(x, y) + local pos = Vector(x, y); + for i = 1, 400 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + return pos + Vector(0, -20); +end + +function SandboxTestScript:UpdateScript() + -- Sets up a three-way battle through the sandbox tools, the way a player would, and logs how it goes. + local t = self.timer.ElapsedSimTimeMS; + local origin = CameraMan:GetOffset(0); + local w = FrameMan.PlayerScreenWidth; + local h = FrameMan.PlayerScreenHeight; + if self.stage == 0 and t > 3000 then + self.stage = 1; + local ok = true; + ok = SandboxDo("Brain", Ground(origin.X + w * 0.15, origin.Y), 0, 0, 1, "Brain Case") and ok; + ok = SandboxDo("Units", Ground(origin.X + w * 0.22, origin.Y), 0, 0, 3, "Soldier Light") and ok; + ok = SandboxDo("Units", Ground(origin.X + w * 0.85, origin.Y), 1, 2, 4, "Soldier Light") and ok; + ok = SandboxDo("Units", Ground(origin.X + w * 0.55, origin.Y), 2, 1, 2, "Browncoat") and ok; + ok = SandboxDo("Structure", Vector(origin.X + w * 0.4, origin.Y + h * 0.25), 0, 0, 1, "Wall") and ok; + ok = SandboxDo("Item", Vector(origin.X + w * 0.5, origin.Y + h * 0.2), 0, 0, 1, "Napalm Flamer") and ok; + ok = SandboxDo("Nonsense", Vector(), 0, 0, 1, "") == false and ok; + self:Log("setup " .. tostring(ok)); + elseif self.stage == 1 and t > 12000 then + self.stage = 2; + SandboxDo("Lightning", Vector(origin.X + w * 0.7, origin.Y + h * 0.3), 0, 0, 1, ""); + self:Log("lightning"); + elseif self.stage == 2 and t > 16000 then + self.stage = 3; + for side = 0, 3 do + SandboxDo("Orders", Vector(), side, 1, 1, ""); + end + self:Log("everyone attack"); + elseif self.stage == 3 and t > 18000 then + self.stage = 4; + for actor in MovableMan.Actors do + if actor.Team == 0 and actor.ClassName == "AHuman" then + self:Log("take control: " .. tostring(SandboxDo("Take control", actor.Pos, 0, 0, 1, ""))); + break; + end + end + elseif self.stage == 5 and t > 50000 then + self.stage = 6; + self:Log("build mode after closing " .. tostring(SandboxBuildMode(false)) .. ", state " .. ActivityMan:GetActivity().ActivityState); + elseif self.stage == 4 and t > 22000 then + self.stage = 5; + local ok, err = pcall(function() + self:Log("build mode " .. tostring(SandboxBuildMode(true)) .. ", state " .. ActivityMan:GetActivity().ActivityState); + end); + if not ok then + self:Log("build mode failed: " .. tostring(err)); + end + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(2000) then + self.logTimer:Reset(); + local activity = ActivityMan:GetActivity(); + local controlled = activity:GetControlledActor(0); + self:Log(string.format("blue %d red %d green %d yellow %d view %d controlling %s", SandboxCountUnits(0), SandboxCountUnits(1), SandboxCountUnits(2), SandboxCountUnits(3), activity:GetViewState(0), controlled and controlled.PresetName or "nobody")); + end +end + +function SandboxTestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/RenderTest.rte/SaveTest.lua b/Tools/RenderTest/RenderTest.rte/SaveTest.lua new file mode 100644 index 0000000000..dd9b2a9be8 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/SaveTest.lua @@ -0,0 +1,29 @@ +function SaveTestScript:StartScript() + self.timer = Timer(); + self.stage = 0; + -- Only save and load once: after loading, this script starts again. + if io and io.open then + local flag = io.open("savetest.flag", "r"); + if flag then + flag:close(); + self.stage = 3; + self.reportTimer = Timer(); + end + end +end + +function SaveTestScript:UpdateScript() + -- After the fire test's napalm has set the hill burning, quicksave (the test harness then presses F9 to load it), to check fire survives a save. + if self.stage == 0 and self.timer:IsPastSimMS(6500) then + self.stage = 1; + ActivityMan:SaveGame("QuickSave"); + local flag = io and io.open and io.open("savetest.flag", "w"); + if flag then + flag:write("1"); + flag:close(); + end + elseif self.stage == 3 and self.reportTimer:IsPastSimMS(500) then + self.stage = 4; + ConsoleMan:SaveAllText("savetest.txt"); + end +end diff --git a/Tools/RenderTest/RenderTest.rte/SmokeTest.lua b/Tools/RenderTest/RenderTest.rte/SmokeTest.lua new file mode 100644 index 0000000000..4f4cb59228 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/SmokeTest.lua @@ -0,0 +1,20 @@ +function SmokeTestScript:StartScript() + self.timer = Timer(); + self.spawnTimer = Timer(); +end + +function SmokeTestScript:UpdateScript() + -- A steady column of smoke rising past a flickering orange light, to show light scattering in smoke. + local base = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.3, FrameMan.PlayerScreenHeight * 0.6); + if self.spawnTimer:IsPastSimMS(25) then + self.spawnTimer:Reset(); + local smoke = CreateMOSParticle("Smoke Ball 1", "Base.rte"); + if smoke then + smoke.Pos = base + Vector(math.random(-6, 6), 0); + smoke.Vel = Vector(math.random(-10, 10) * 0.1, -math.random(10, 25) * 0.1); + MovableMan:AddParticle(smoke); + end + end + local flicker = 0.8 + 0.2 * math.sin(self.timer.ElapsedRealTimeMS * 0.02) * math.sin(self.timer.ElapsedRealTimeMS * 0.013); + PostProcessMan:AddLight(base + Vector(0, -30), 160, 255, 140, 60, 1.6 * flicker); +end diff --git a/Tools/RenderTest/RenderTest.rte/StainTest.lua b/Tools/RenderTest/RenderTest.rte/StainTest.lua new file mode 100644 index 0000000000..b2cf5cad22 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/StainTest.lua @@ -0,0 +1,19 @@ +function StainTestScript:StartScript() + self.timer = Timer(); +end + +function StainTestScript:UpdateScript() + -- Sprays blood and oil at the ground near the camera, to show terrain stains. + if self.timer:IsPastSimMS(30) then + self.timer:Reset(); + local base = CameraMan:GetOffset(0) + Vector(FrameMan.PlayerScreenWidth * 0.42, FrameMan.PlayerScreenHeight * 0.55); + for i = 1, 6 do + local drop = CreateMOPixel("Blood Normal", "Base.rte"); + if drop then + drop.Pos = base + Vector(math.random(-20, 20), 0); + drop.Vel = Vector(math.random(-60, 60) * 0.1, math.random(60, 140) * 0.1); + MovableMan:AddParticle(drop); + end + end + end +end diff --git a/Tools/RenderTest/RenderTest.rte/WeatherTest.lua b/Tools/RenderTest/RenderTest.rte/WeatherTest.lua new file mode 100644 index 0000000000..4a7d753e63 --- /dev/null +++ b/Tools/RenderTest/RenderTest.rte/WeatherTest.lua @@ -0,0 +1,60 @@ +function WeatherTestScript:StartScript() + self.timer = Timer(); + self.logTimer = Timer(); + self.stage = 0; + self.log = io.open("weathertest.log", "w"); +end + +function WeatherTestScript:Log(text) + if self.log then + self.log:write(string.format("%6.1f %s\n", self.timer.ElapsedSimTimeMS / 1000, text)); + self.log:flush(); + end +end + +local function GroundBelow(pos) + for i = 1, 300 do + if SceneMan:GetTerrMatter(pos.X, pos.Y + 1) ~= 0 then + break; + end + pos.Y = pos.Y + 1; + end + return pos; +end + +function WeatherTestScript:UpdateScript() + -- Starts a grass fire left of player 1's soldier and sends a walker off to the right, logging how big the fire is and how far the walker got. + local player = ActivityMan:GetActivity():GetControlledActor(0); + if not player then + return; + end + local t = self.timer.ElapsedSimTimeMS; + if self.stage == 0 and t > 12000 then + self.stage = 1; + self.origin = Vector(player.Pos.X, player.Pos.Y); + local bomb = CreateTDExplosive("Napalm Bomb", "Base.rte"); + bomb.Pos = GroundBelow(self.origin + Vector(-170, -60)) + Vector(0, -4); + MovableMan:AddItem(bomb); + bomb:GibThis(); + local walker = CreateAHuman("Soldier Light", "Coalition.rte"); + walker.Pos = self.origin + Vector(20, -10); + walker.Team = player.Team; + walker:AddAISceneWaypoint(GroundBelow(self.origin + Vector(400, -60))); + walker.AIMode = Actor.AIMODE_GOTO; + MovableMan:AddActor(walker); + self.walker = walker; + self:Log("start"); + end + if self.stage >= 1 and self.logTimer:IsPastSimMS(250) then + self.logTimer:Reset(); + local walked = (self.walker and MovableMan:ValidMO(self.walker)) and string.format("%.0f", self.walker.Pos.X - self.origin.X) or "-"; + self:Log(string.format("burning %d walker %s player x %.1f", SceneMan:GetBurningPixelCount(), walked, player.Pos.X)); + end +end + +function WeatherTestScript:EndScript() + if self.log then + self.log:close(); + self.log = nil; + end +end diff --git a/Tools/RenderTest/Setup.ps1 b/Tools/RenderTest/Setup.ps1 new file mode 100644 index 0000000000..f18e3bef6d --- /dev/null +++ b/Tools/RenderTest/Setup.ps1 @@ -0,0 +1,101 @@ +param([string]$Repo = "") +# Installs the RenderTest.rte dev mod into Mods/ and writes the scenario settings files used by Capture.ps1 into Userdata/RenderTest/. +# Each scenario is the player's Settings.ini with a few keys overridden, so it starts straight into a known scene with known effects. +. (Join-Path $PSScriptRoot "Common.ps1") +if (-not $Repo) { $Repo = $RepoRoot } + +$modsDir = Join-Path $Repo "Mods" +if (-not (Test-Path $modsDir)) { New-Item -ItemType Directory -Path $modsDir | Out-Null } +Copy-Item -Recurse -Force (Join-Path $PSScriptRoot "RenderTest.rte") $modsDir + +$baseSettings = Join-Path $Repo "Userdata\Settings.ini" +if (-not (Test-Path $baseSettings)) { throw "Run the game once first so Userdata\Settings.ini exists." } +$scenarioDir = Join-Path $Repo "Userdata\RenderTest" +if (-not (Test-Path $scenarioDir)) { New-Item -ItemType Directory -Path $scenarioDir | Out-Null } + +function Write-Scenario([string]$Name, [hashtable]$Overrides, [string[]]$GlobalScripts, [switch]$DefaultLighting) { + # Captures are compared against each other, so always use the native 960x540 window whatever the player's own settings are. + $Overrides = @{ ResolutionMultiplier = 1; Fullscreen = 0 } + $Overrides + $lines = Get-Content $baseSettings | Where-Object { $_ -notmatch '^\s*EnableGlobalScript\s*=' } + if ($DefaultLighting) { + # Golden scenarios use the built-in lighting defaults, so the player's own tweaks (time of day, quality, weather) can't change the baselines. + $inLighting = $false + $lines = foreach ($line in $lines) { + if ($line -match '^// Lighting and Post-Processing') { $inLighting = $true; continue } + if ($inLighting -and $line -match '^////') { $inLighting = $false } + if (-not $inLighting) { $line } + } + } + $set = @{} + $lines = foreach ($line in $lines) { + if ($line -match '^(\s*)(\w+)\s*=') { + $key = $Matches[2] + if ($Overrides.ContainsKey($key)) { $set[$key] = $true; "$($Matches[1])$key = $($Overrides[$key])"; continue } + } + $line + } + foreach ($key in $Overrides.Keys) { if (-not $set.ContainsKey($key)) { $lines += "`t$key = $($Overrides[$key])" } } + foreach ($script in $GlobalScripts) { $lines += "`tEnableGlobalScript = RenderTest.rte/$script" } + Set-Content -Path (Join-Path $scenarioDir "$Name.ini") -Value $lines -Encoding ascii + "wrote Userdata\RenderTest\$Name.ini" +} + +$bunker = @{ LaunchIntoActivity = 1; SkipIntro = 1; DefaultActivityType = "GAScripted"; DefaultActivityName = "Test Activity"; DefaultSceneName = "Zekarra Mining Outpost" } +$caves = $bunker.Clone(); $caves.DefaultSceneName = "Dvorak Caves" + +Write-Scenario "Bunker" $bunker @("Render Test FX") +Write-Scenario "BunkerNight" ($bunker + @{ TimeOfDay = 23 }) @("Render Test FX") +Write-Scenario "BunkerDusk" ($bunker + @{ TimeOfDay = 18.5 }) @("Render Test FX") +Write-Scenario "BunkerRain" ($bunker + @{ TimeOfDay = 23; WeatherType = 1; WeatherIntensity = 0.8 }) @("Render Test FX") +Write-Scenario "BunkerFog" $bunker @("Render Test FX", "Render Test Fog") +Write-Scenario "Caves" $caves @("Render Test Camera Tour", "Render Test FX") +Write-Scenario "CavesNightLights" ($caves + @{ TimeOfDay = 23 }) @("Render Test Camera Tour", "Render Test Lights") +Write-Scenario "Primitives" $bunker @("Render Test Primitives") +Write-Scenario "Classic" ($bunker + @{ LightingEnabled = 0; BloomEnabled = 0; DistortionEnabled = 0; ScorchMarks = 0; Embers = 0; EffectsParticles = 0; Stains = 0; LivingWorld = 0; SmokeScattering = 0 }) @("Render Test FX") +$split = $bunker.Clone(); $split.DefaultActivityName = "Render Test Split Screen"; $split.TimeOfDay = 23 +Write-Scenario "SplitScreen" $split @("Render Test FX") +Write-Scenario "BunkerPerf" ($bunker + @{ TimeOfDay = 23 }) @("Render Test FX", "Render Test Perf") +$play = @{ LaunchIntoActivity = 1; SkipIntro = 1; DefaultActivityType = "GAScripted"; DefaultActivityName = "One-Man Army"; DefaultSceneName = "Ketanot Hills" } +Write-Scenario "Play" $play @() +Write-Scenario "PlayDusk" ($play + @{ TimeOfDay = 19 }) @() +Write-Scenario "PlayNight" ($play + @{ TimeOfDay = 23 }) @() +Write-Scenario "PlayStorm" ($play + @{ TimeOfDay = 21; WeatherType = 1; WeatherIntensity = 0.95 }) @() +$tutorial = @{ LaunchIntoActivity = 1; SkipIntro = 1; DefaultActivityType = "GATutorial"; DefaultActivityName = "Tutorial Mission"; DefaultSceneName = "Tutorial Bunker" } +Write-Scenario "TutorialDusk" ($tutorial + @{ TimeOfDay = 19 }) @() +Write-Scenario "TutorialNight" ($tutorial + @{ TimeOfDay = 23 }) @() +Write-Scenario "Menu" @{ LaunchIntoActivity = 0; SkipIntro = 1 } @() +Write-Scenario "Stains" $play @("Render Test Stains") +Write-Scenario "Fire" $play @("Render Test Fire") +Write-Scenario "FireNight" ($play + @{ TimeOfDay = 22 }) @("Render Test Fire") +Write-Scenario "Collapse" $play @("Render Test Collapse") +Write-Scenario "Liquids" $play @("Render Test Liquids") +Write-Scenario "LiquidsNight" ($play + @{ TimeOfDay = 22 }) @("Render Test Liquids") +Write-Scenario "FlareNight" ($play + @{ TimeOfDay = 23 }) @("Render Test Flare") +Write-Scenario "PlainSave" $play @("Render Test Save") +Write-Scenario "FireSave" ($play + @{ TimeOfDay = 22 }) @("Render Test Fire", "Render Test Save") +Write-Scenario "Grenades" $play @("Render Test Grenades") +Write-Scenario "GrenadesNoBlock" ($play + @{ SmokeBlocksSight = 0 }) @("Render Test Grenades") +Write-Scenario "LiquidWeapons" ($play + @{ TimeOfDay = 20 }) @("Render Test Liquid Weapons") +Write-Scenario "WeatherCalm" ($play + @{ WeatherType = 0; Wind = 0 }) @("Render Test Weather") +Write-Scenario "WeatherRain" ($play + @{ WeatherType = 1; WeatherIntensity = 0.9; Wind = 0 }) @("Render Test Weather") +Write-Scenario "WeatherSnow" ($play + @{ WeatherType = 2; WeatherIntensity = 1; Wind = 0 }) @("Render Test Weather") +Write-Scenario "WeatherWindRight" ($play + @{ WeatherType = 0; Wind = 150 }) @("Render Test Weather") +Write-Scenario "WeatherWindLeft" ($play + @{ WeatherType = 0; Wind = -150 }) @("Render Test Weather") +Write-Scenario "SoakFeatures" ($play + @{ TimeOfDay = 19; WeatherType = 1; WeatherIntensity = 0.7; Wind = 90 }) @("Render Test Grenades", "Render Test Liquid Weapons", "Render Test Weather") +$sandbox = @{ LaunchIntoActivity = 1; SkipIntro = 1; DefaultActivityType = "GAScripted"; DefaultActivityName = "Sandbox"; DefaultSceneName = "Ketanot Hills" } +Write-Scenario "Sandbox" $sandbox @() +Write-Scenario "SandboxBattle" $sandbox @("Render Test Sandbox") +Write-Scenario "FireUnits" $sandbox @("Render Test Fire Units") +Write-Scenario "SandboxArmies" $sandbox @("Render Test Sandbox Armies") +Write-Scenario "PauseAI" $sandbox @("Render Test Pause AI") +$sandboxStrom = $sandbox.Clone(); $sandboxStrom.DefaultSceneName = "Stromatolites"; Write-Scenario "SandboxStress" $sandboxStrom @("Render Test Sandbox Stress") +Write-Scenario "SmokeNight" ($bunker + @{ TimeOfDay = 23 }) @("Render Test Smoke") +Write-Scenario "SmokeNightOff" ($bunker + @{ TimeOfDay = 23; SmokeScattering = 0 }) @("Render Test Smoke") + +# Golden scenarios: calm, fixed shots compared against committed baselines by Golden.ps1. No explosions, default lighting. +Write-Scenario "GoldenNoon" $bunker @() -DefaultLighting +Write-Scenario "GoldenNight" ($bunker + @{ TimeOfDay = 23 }) @() -DefaultLighting +Write-Scenario "GoldenCaves" $caves @("Render Test Camera Tour") -DefaultLighting +Write-Scenario "GoldenClassic" ($bunker + @{ LightingEnabled = 0; BloomEnabled = 0; DistortionEnabled = 0; ScorchMarks = 0; Embers = 0; EffectsParticles = 0; Stains = 0; LivingWorld = 0; SmokeScattering = 0 }) @() -DefaultLighting +Write-Scenario "GoldenLightingOnly" ($bunker + @{ TimeOfDay = 19; LightingDebugView = 1 }) @() -DefaultLighting +Write-Scenario "GoldenInterior" ($tutorial + @{ TimeOfDay = 23 }) @() -DefaultLighting diff --git a/Tools/RenderTest/Soak.ps1 b/Tools/RenderTest/Soak.ps1 new file mode 100644 index 0000000000..a35137c482 --- /dev/null +++ b/Tools/RenderTest/Soak.ps1 @@ -0,0 +1,22 @@ +# Soak test: drives the running game with move/fire/jump/reload input and samples memory and responsiveness each round. +# Usage: .\Capture.ps1 -Scenario Play -Exe "Cortex Command.exe" -KeepRunning; .\Soak.ps1 -Rounds 30 [-Exe "Cortex Command.debug.release.exe"] +param([int]$Rounds = 24, [string]$Exe = "Cortex Command.exe") +$t = $PSScriptRoot +. "$t\Input.ps1" +$p = Get-Process ([IO.Path]::GetFileNameWithoutExtension($Exe)) | Select-Object -First 1 +Focus-Game $p +$mem = @() +for ($r = 0; $r -lt $Rounds; $r++) { + $dir = if ($r % 2) { "A" } else { "D" } + Key-Down $dir; Mouse-Down Left; Move-Mouse (Get-Random -Min -60 -Max 60) (Get-Random -Min -30 -Max 30) + Start-Sleep -Milliseconds 1500 + Key-Down W; Start-Sleep -Milliseconds 600; Key-Up W + Start-Sleep -Milliseconds 1500 + Mouse-Up Left; Key-Up $dir; Tap-Key R + Start-Sleep 5 + $p.Refresh() + if ($p.HasExited) { "EXITED at round $r code=$($p.ExitCode)"; break } + $mem += "{0,2}: {1} MB, responding={2}" -f $r, [int]($p.WorkingSet64 / 1MB), $p.Responding + if ($r % 8 -eq 7) { & "$t\Capture.ps1" -Exe $Exe -Name "soak_$r" -ExtraWait 0 -KeepRunning | Out-Null; Focus-Game $p } +} +$mem diff --git a/external/include/glm-0.9.9.8/CMakeLists.txt b/external/include/glm-0.9.9.8/CMakeLists.txt index ebc30d0232..843e754659 100644 --- a/external/include/glm-0.9.9.8/CMakeLists.txt +++ b/external/include/glm-0.9.9.8/CMakeLists.txt @@ -1,15 +1,15 @@ -cmake_minimum_required(VERSION 3.2 FATAL_ERROR) -cmake_policy(VERSION 3.2) - -set(GLM_VERSION "0.9.9") -project(glm VERSION ${GLM_VERSION} LANGUAGES CXX) -enable_testing() - -add_subdirectory(glm) -add_library(glm::glm ALIAS glm) - -if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) - -add_subdirectory(test) - -endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) +cmake_minimum_required(VERSION 3.2 FATAL_ERROR) +cmake_policy(VERSION 3.2) + +set(GLM_VERSION "0.9.9") +project(glm VERSION ${GLM_VERSION} LANGUAGES CXX) +enable_testing() + +add_subdirectory(glm) +add_library(glm::glm ALIAS glm) + +if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) + +add_subdirectory(test) + +endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/external/include/glm-0.9.9.8/cmake/glm/glmConfig-version.cmake b/external/include/glm-0.9.9.8/cmake/glm/glmConfig-version.cmake index d314ddb60f..6e63a4a30a 100644 --- a/external/include/glm-0.9.9.8/cmake/glm/glmConfig-version.cmake +++ b/external/include/glm-0.9.9.8/cmake/glm/glmConfig-version.cmake @@ -1,11 +1,11 @@ -if(${PACKAGE_FIND_VERSION_MAJOR} EQUAL 0) - if (${PACKAGE_FIND_VERSION} VERSION_LESS ${GLM_VERSION}) - set(PACKAGE_VERSION_COMPATIBLE 1) - endif() - if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${GLM_VERSION}) - set(PACKAGE_VERSION_EXACT 1) - endif() -else() - set(PACKAGE_VERSION_UNSUITABLE 1) -endif() - +if(${PACKAGE_FIND_VERSION_MAJOR} EQUAL 0) + if (${PACKAGE_FIND_VERSION} VERSION_LESS ${GLM_VERSION}) + set(PACKAGE_VERSION_COMPATIBLE 1) + endif() + if(${PACKAGE_FIND_VERSION} VERSION_EQUAL ${GLM_VERSION}) + set(PACKAGE_VERSION_EXACT 1) + endif() +else() + set(PACKAGE_VERSION_UNSUITABLE 1) +endif() + diff --git a/external/include/glm-0.9.9.8/cmake/glm/glmConfig.cmake b/external/include/glm-0.9.9.8/cmake/glm/glmConfig.cmake index b634379a5e..4fba5116fc 100644 --- a/external/include/glm-0.9.9.8/cmake/glm/glmConfig.cmake +++ b/external/include/glm-0.9.9.8/cmake/glm/glmConfig.cmake @@ -1,22 +1,22 @@ -cmake_minimum_required(VERSION 3.2 FATAL_ERROR) -cmake_policy(VERSION 3.2) - -set(GLM_VERSION 0.9.9) - -get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) -if (_IMPORT_PREFIX STREQUAL "/") - set(_IMPORT_PREFIX "") -endif() - -# Set the old GLM_INCLUDE_DIRS variable for backwards compatibility -set(GLM_INCLUDE_DIRS ${_IMPORT_PREFIX}) - -add_library(glm::glm INTERFACE IMPORTED) -set_target_properties(glm::glm PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${GLM_INCLUDE_DIRS}) - -mark_as_advanced(glm_DIR) -set(_IMPORT_PREFIX) - +cmake_minimum_required(VERSION 3.2 FATAL_ERROR) +cmake_policy(VERSION 3.2) + +set(GLM_VERSION 0.9.9) + +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if (_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Set the old GLM_INCLUDE_DIRS variable for backwards compatibility +set(GLM_INCLUDE_DIRS ${_IMPORT_PREFIX}) + +add_library(glm::glm INTERFACE IMPORTED) +set_target_properties(glm::glm PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${GLM_INCLUDE_DIRS}) + +mark_as_advanced(glm_DIR) +set(_IMPORT_PREFIX) + diff --git a/external/include/glm-0.9.9.8/copying.txt b/external/include/glm-0.9.9.8/copying.txt index 5c43d396fa..779c32fb9a 100644 --- a/external/include/glm-0.9.9.8/copying.txt +++ b/external/include/glm-0.9.9.8/copying.txt @@ -1,54 +1,54 @@ -================================================================================ -OpenGL Mathematics (GLM) --------------------------------------------------------------------------------- -GLM is licensed under The Happy Bunny License or MIT License - -================================================================================ -The Happy Bunny License (Modified MIT License) --------------------------------------------------------------------------------- -Copyright (c) 2005 - G-Truc Creation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -Restrictions: - By making use of the Software for military purposes, you choose to make a - Bunny unhappy. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -================================================================================ -The MIT License --------------------------------------------------------------------------------- -Copyright (c) 2005 - G-Truc Creation - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +================================================================================ +OpenGL Mathematics (GLM) +-------------------------------------------------------------------------------- +GLM is licensed under The Happy Bunny License or MIT License + +================================================================================ +The Happy Bunny License (Modified MIT License) +-------------------------------------------------------------------------------- +Copyright (c) 2005 - G-Truc Creation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Restrictions: + By making use of the Software for military purposes, you choose to make a + Bunny unhappy. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +================================================================================ +The MIT License +-------------------------------------------------------------------------------- +Copyright (c) 2005 - G-Truc Creation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/external/include/glm-0.9.9.8/doc/api/a00001_source.html b/external/include/glm-0.9.9.8/doc/api/a00001_source.html index 83240fbc47..36d74cebfc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00001_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00001_source.html @@ -1,493 +1,493 @@ - - - - - - -0.9.9 API documentation: _features.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_features.hpp
-
-
-
1 #pragma once
-
2 
-
3 // #define GLM_CXX98_EXCEPTIONS
-
4 // #define GLM_CXX98_RTTI
-
5 
-
6 // #define GLM_CXX11_RVALUE_REFERENCES
-
7 // Rvalue references - GCC 4.3
-
8 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
-
9 
-
10 // GLM_CXX11_TRAILING_RETURN
-
11 // Rvalue references for *this - GCC not supported
-
12 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
-
13 
-
14 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
15 // Initialization of class objects by rvalues - GCC any
-
16 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html
-
17 
-
18 // GLM_CXX11_NONSTATIC_MEMBER_INIT
-
19 // Non-static data member initializers - GCC 4.7
-
20 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
-
21 
-
22 // #define GLM_CXX11_VARIADIC_TEMPLATE
-
23 // Variadic templates - GCC 4.3
-
24 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
-
25 
-
26 //
-
27 // Extending variadic template template parameters - GCC 4.4
-
28 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
-
29 
-
30 // #define GLM_CXX11_GENERALIZED_INITIALIZERS
-
31 // Initializer lists - GCC 4.4
-
32 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
-
33 
-
34 // #define GLM_CXX11_STATIC_ASSERT
-
35 // Static assertions - GCC 4.3
-
36 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
-
37 
-
38 // #define GLM_CXX11_AUTO_TYPE
-
39 // auto-typed variables - GCC 4.4
-
40 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
-
41 
-
42 // #define GLM_CXX11_AUTO_TYPE
-
43 // Multi-declarator auto - GCC 4.4
-
44 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf
-
45 
-
46 // #define GLM_CXX11_AUTO_TYPE
-
47 // Removal of auto as a storage-class specifier - GCC 4.4
-
48 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm
-
49 
-
50 // #define GLM_CXX11_AUTO_TYPE
-
51 // New function declarator syntax - GCC 4.4
-
52 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
-
53 
-
54 // #define GLM_CXX11_LAMBDAS
-
55 // New wording for C++0x lambdas - GCC 4.5
-
56 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf
-
57 
-
58 // #define GLM_CXX11_DECLTYPE
-
59 // Declared type of an expression - GCC 4.3
-
60 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
-
61 
-
62 //
-
63 // Right angle brackets - GCC 4.3
-
64 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
-
65 
-
66 //
-
67 // Default template arguments for function templates DR226 GCC 4.3
-
68 // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
-
69 
-
70 //
-
71 // Solving the SFINAE problem for expressions DR339 GCC 4.4
-
72 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html
-
73 
-
74 // #define GLM_CXX11_ALIAS_TEMPLATE
-
75 // Template aliases N2258 GCC 4.7
-
76 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
-
77 
-
78 //
-
79 // Extern templates N1987 Yes
-
80 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
-
81 
-
82 // #define GLM_CXX11_NULLPTR
-
83 // Null pointer constant N2431 GCC 4.6
-
84 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
-
85 
-
86 // #define GLM_CXX11_STRONG_ENUMS
-
87 // Strongly-typed enums N2347 GCC 4.4
-
88 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
-
89 
-
90 //
-
91 // Forward declarations for enums N2764 GCC 4.6
-
92 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
-
93 
-
94 //
-
95 // Generalized attributes N2761 GCC 4.8
-
96 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
-
97 
-
98 //
-
99 // Generalized constant expressions N2235 GCC 4.6
-
100 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
-
101 
-
102 //
-
103 // Alignment support N2341 GCC 4.8
-
104 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
-
105 
-
106 // #define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
107 // Delegating constructors N1986 GCC 4.7
-
108 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
-
109 
-
110 //
-
111 // Inheriting constructors N2540 GCC 4.8
-
112 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
-
113 
-
114 // #define GLM_CXX11_EXPLICIT_CONVERSIONS
-
115 // Explicit conversion operators N2437 GCC 4.5
-
116 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
-
117 
-
118 //
-
119 // New character types N2249 GCC 4.4
-
120 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
-
121 
-
122 //
-
123 // Unicode string literals N2442 GCC 4.5
-
124 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
125 
-
126 //
-
127 // Raw string literals N2442 GCC 4.5
-
128 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
-
129 
-
130 //
-
131 // Universal character name literals N2170 GCC 4.5
-
132 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
-
133 
-
134 // #define GLM_CXX11_USER_LITERALS
-
135 // User-defined literals N2765 GCC 4.7
-
136 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
-
137 
-
138 //
-
139 // Standard Layout Types N2342 GCC 4.5
-
140 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
-
141 
-
142 // #define GLM_CXX11_DEFAULTED_FUNCTIONS
-
143 // #define GLM_CXX11_DELETED_FUNCTIONS
-
144 // Defaulted and deleted functions N2346 GCC 4.4
-
145 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
-
146 
-
147 //
-
148 // Extended friend declarations N1791 GCC 4.7
-
149 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
-
150 
-
151 //
-
152 // Extending sizeof N2253 GCC 4.4
-
153 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
-
154 
-
155 // #define GLM_CXX11_INLINE_NAMESPACES
-
156 // Inline namespaces N2535 GCC 4.4
-
157 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
-
158 
-
159 // #define GLM_CXX11_UNRESTRICTED_UNIONS
-
160 // Unrestricted unions N2544 GCC 4.6
-
161 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
-
162 
-
163 // #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
164 // Local and unnamed types as template arguments N2657 GCC 4.5
-
165 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
-
166 
-
167 // #define GLM_CXX11_RANGE_FOR
-
168 // Range-based for N2930 GCC 4.6
-
169 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
-
170 
-
171 // #define GLM_CXX11_OVERRIDE_CONTROL
-
172 // Explicit virtual overrides N2928 N3206 N3272 GCC 4.7
-
173 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
-
174 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
-
175 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
-
176 
-
177 //
-
178 // Minimal support for garbage collection and reachability-based leak detection N2670 No
-
179 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
-
180 
-
181 // #define GLM_CXX11_NOEXCEPT
-
182 // Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)
-
183 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
-
184 
-
185 //
-
186 // Defining move special member functions N3053 GCC 4.6
-
187 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
-
188 
-
189 //
-
190 // Sequence points N2239 Yes
-
191 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
192 
-
193 //
-
194 // Atomic operations N2427 GCC 4.4
-
195 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
-
196 
-
197 //
-
198 // Strong Compare and Exchange N2748 GCC 4.5
-
199 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html
-
200 
-
201 //
-
202 // Bidirectional Fences N2752 GCC 4.8
-
203 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm
-
204 
-
205 //
-
206 // Memory model N2429 GCC 4.8
-
207 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm
-
208 
-
209 //
-
210 // Data-dependency ordering: atomics and memory model N2664 GCC 4.4
-
211 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm
-
212 
-
213 //
-
214 // Propagating exceptions N2179 GCC 4.4
-
215 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html
-
216 
-
217 //
-
218 // Abandoning a process and at_quick_exit N2440 GCC 4.8
-
219 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm
-
220 
-
221 //
-
222 // Allow atomics use in signal handlers N2547 Yes
-
223 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm
-
224 
-
225 //
-
226 // Thread-local storage N2659 GCC 4.8
-
227 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
-
228 
-
229 //
-
230 // Dynamic initialization and destruction with concurrency N2660 GCC 4.3
-
231 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
-
232 
-
233 //
-
234 // __func__ predefined identifier N2340 GCC 4.3
-
235 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
-
236 
-
237 //
-
238 // C99 preprocessor N1653 GCC 4.3
-
239 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
-
240 
-
241 //
-
242 // long long N1811 GCC 4.3
-
243 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
-
244 
-
245 //
-
246 // Extended integral types N1988 Yes
-
247 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf
-
248 
-
249 #if(GLM_COMPILER & GLM_COMPILER_GCC)
-
250 
-
251 # define GLM_CXX11_STATIC_ASSERT
-
252 
-
253 #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
-
254 # if(__has_feature(cxx_exceptions))
-
255 # define GLM_CXX98_EXCEPTIONS
-
256 # endif
-
257 
-
258 # if(__has_feature(cxx_rtti))
-
259 # define GLM_CXX98_RTTI
-
260 # endif
-
261 
-
262 # if(__has_feature(cxx_access_control_sfinae))
-
263 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
-
264 # endif
-
265 
-
266 # if(__has_feature(cxx_alias_templates))
-
267 # define GLM_CXX11_ALIAS_TEMPLATE
-
268 # endif
-
269 
-
270 # if(__has_feature(cxx_alignas))
-
271 # define GLM_CXX11_ALIGNAS
-
272 # endif
-
273 
-
274 # if(__has_feature(cxx_attributes))
-
275 # define GLM_CXX11_ATTRIBUTES
-
276 # endif
-
277 
-
278 # if(__has_feature(cxx_constexpr))
-
279 # define GLM_CXX11_CONSTEXPR
-
280 # endif
-
281 
-
282 # if(__has_feature(cxx_decltype))
-
283 # define GLM_CXX11_DECLTYPE
-
284 # endif
-
285 
-
286 # if(__has_feature(cxx_default_function_template_args))
-
287 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
-
288 # endif
-
289 
-
290 # if(__has_feature(cxx_defaulted_functions))
-
291 # define GLM_CXX11_DEFAULTED_FUNCTIONS
-
292 # endif
-
293 
-
294 # if(__has_feature(cxx_delegating_constructors))
-
295 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
-
296 # endif
-
297 
-
298 # if(__has_feature(cxx_deleted_functions))
-
299 # define GLM_CXX11_DELETED_FUNCTIONS
-
300 # endif
-
301 
-
302 # if(__has_feature(cxx_explicit_conversions))
-
303 # define GLM_CXX11_EXPLICIT_CONVERSIONS
-
304 # endif
-
305 
-
306 # if(__has_feature(cxx_generalized_initializers))
-
307 # define GLM_CXX11_GENERALIZED_INITIALIZERS
-
308 # endif
-
309 
-
310 # if(__has_feature(cxx_implicit_moves))
-
311 # define GLM_CXX11_IMPLICIT_MOVES
-
312 # endif
-
313 
-
314 # if(__has_feature(cxx_inheriting_constructors))
-
315 # define GLM_CXX11_INHERITING_CONSTRUCTORS
-
316 # endif
-
317 
-
318 # if(__has_feature(cxx_inline_namespaces))
-
319 # define GLM_CXX11_INLINE_NAMESPACES
-
320 # endif
-
321 
-
322 # if(__has_feature(cxx_lambdas))
-
323 # define GLM_CXX11_LAMBDAS
-
324 # endif
-
325 
-
326 # if(__has_feature(cxx_local_type_template_args))
-
327 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
-
328 # endif
-
329 
-
330 # if(__has_feature(cxx_noexcept))
-
331 # define GLM_CXX11_NOEXCEPT
-
332 # endif
-
333 
-
334 # if(__has_feature(cxx_nonstatic_member_init))
-
335 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
-
336 # endif
-
337 
-
338 # if(__has_feature(cxx_nullptr))
-
339 # define GLM_CXX11_NULLPTR
-
340 # endif
-
341 
-
342 # if(__has_feature(cxx_override_control))
-
343 # define GLM_CXX11_OVERRIDE_CONTROL
-
344 # endif
-
345 
-
346 # if(__has_feature(cxx_reference_qualified_functions))
-
347 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
-
348 # endif
-
349 
-
350 # if(__has_feature(cxx_range_for))
-
351 # define GLM_CXX11_RANGE_FOR
-
352 # endif
-
353 
-
354 # if(__has_feature(cxx_raw_string_literals))
-
355 # define GLM_CXX11_RAW_STRING_LITERALS
-
356 # endif
-
357 
-
358 # if(__has_feature(cxx_rvalue_references))
-
359 # define GLM_CXX11_RVALUE_REFERENCES
-
360 # endif
-
361 
-
362 # if(__has_feature(cxx_static_assert))
-
363 # define GLM_CXX11_STATIC_ASSERT
-
364 # endif
-
365 
-
366 # if(__has_feature(cxx_auto_type))
-
367 # define GLM_CXX11_AUTO_TYPE
-
368 # endif
-
369 
-
370 # if(__has_feature(cxx_strong_enums))
-
371 # define GLM_CXX11_STRONG_ENUMS
-
372 # endif
-
373 
-
374 # if(__has_feature(cxx_trailing_return))
-
375 # define GLM_CXX11_TRAILING_RETURN
-
376 # endif
-
377 
-
378 # if(__has_feature(cxx_unicode_literals))
-
379 # define GLM_CXX11_UNICODE_LITERALS
-
380 # endif
-
381 
-
382 # if(__has_feature(cxx_unrestricted_unions))
-
383 # define GLM_CXX11_UNRESTRICTED_UNIONS
-
384 # endif
-
385 
-
386 # if(__has_feature(cxx_user_literals))
-
387 # define GLM_CXX11_USER_LITERALS
-
388 # endif
-
389 
-
390 # if(__has_feature(cxx_variadic_templates))
-
391 # define GLM_CXX11_VARIADIC_TEMPLATES
-
392 # endif
-
393 
-
394 #endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
-
- - - - + + + + + + +0.9.9 API documentation: _features.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_features.hpp
+
+
+
1 #pragma once
+
2 
+
3 // #define GLM_CXX98_EXCEPTIONS
+
4 // #define GLM_CXX98_RTTI
+
5 
+
6 // #define GLM_CXX11_RVALUE_REFERENCES
+
7 // Rvalue references - GCC 4.3
+
8 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
+
9 
+
10 // GLM_CXX11_TRAILING_RETURN
+
11 // Rvalue references for *this - GCC not supported
+
12 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm
+
13 
+
14 // GLM_CXX11_NONSTATIC_MEMBER_INIT
+
15 // Initialization of class objects by rvalues - GCC any
+
16 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html
+
17 
+
18 // GLM_CXX11_NONSTATIC_MEMBER_INIT
+
19 // Non-static data member initializers - GCC 4.7
+
20 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm
+
21 
+
22 // #define GLM_CXX11_VARIADIC_TEMPLATE
+
23 // Variadic templates - GCC 4.3
+
24 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
+
25 
+
26 //
+
27 // Extending variadic template template parameters - GCC 4.4
+
28 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf
+
29 
+
30 // #define GLM_CXX11_GENERALIZED_INITIALIZERS
+
31 // Initializer lists - GCC 4.4
+
32 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
+
33 
+
34 // #define GLM_CXX11_STATIC_ASSERT
+
35 // Static assertions - GCC 4.3
+
36 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
+
37 
+
38 // #define GLM_CXX11_AUTO_TYPE
+
39 // auto-typed variables - GCC 4.4
+
40 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
+
41 
+
42 // #define GLM_CXX11_AUTO_TYPE
+
43 // Multi-declarator auto - GCC 4.4
+
44 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf
+
45 
+
46 // #define GLM_CXX11_AUTO_TYPE
+
47 // Removal of auto as a storage-class specifier - GCC 4.4
+
48 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm
+
49 
+
50 // #define GLM_CXX11_AUTO_TYPE
+
51 // New function declarator syntax - GCC 4.4
+
52 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
+
53 
+
54 // #define GLM_CXX11_LAMBDAS
+
55 // New wording for C++0x lambdas - GCC 4.5
+
56 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf
+
57 
+
58 // #define GLM_CXX11_DECLTYPE
+
59 // Declared type of an expression - GCC 4.3
+
60 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf
+
61 
+
62 //
+
63 // Right angle brackets - GCC 4.3
+
64 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
+
65 
+
66 //
+
67 // Default template arguments for function templates DR226 GCC 4.3
+
68 // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226
+
69 
+
70 //
+
71 // Solving the SFINAE problem for expressions DR339 GCC 4.4
+
72 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html
+
73 
+
74 // #define GLM_CXX11_ALIAS_TEMPLATE
+
75 // Template aliases N2258 GCC 4.7
+
76 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
+
77 
+
78 //
+
79 // Extern templates N1987 Yes
+
80 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm
+
81 
+
82 // #define GLM_CXX11_NULLPTR
+
83 // Null pointer constant N2431 GCC 4.6
+
84 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
+
85 
+
86 // #define GLM_CXX11_STRONG_ENUMS
+
87 // Strongly-typed enums N2347 GCC 4.4
+
88 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
+
89 
+
90 //
+
91 // Forward declarations for enums N2764 GCC 4.6
+
92 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf
+
93 
+
94 //
+
95 // Generalized attributes N2761 GCC 4.8
+
96 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf
+
97 
+
98 //
+
99 // Generalized constant expressions N2235 GCC 4.6
+
100 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
+
101 
+
102 //
+
103 // Alignment support N2341 GCC 4.8
+
104 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
+
105 
+
106 // #define GLM_CXX11_DELEGATING_CONSTRUCTORS
+
107 // Delegating constructors N1986 GCC 4.7
+
108 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
+
109 
+
110 //
+
111 // Inheriting constructors N2540 GCC 4.8
+
112 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
+
113 
+
114 // #define GLM_CXX11_EXPLICIT_CONVERSIONS
+
115 // Explicit conversion operators N2437 GCC 4.5
+
116 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
+
117 
+
118 //
+
119 // New character types N2249 GCC 4.4
+
120 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html
+
121 
+
122 //
+
123 // Unicode string literals N2442 GCC 4.5
+
124 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
+
125 
+
126 //
+
127 // Raw string literals N2442 GCC 4.5
+
128 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm
+
129 
+
130 //
+
131 // Universal character name literals N2170 GCC 4.5
+
132 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
+
133 
+
134 // #define GLM_CXX11_USER_LITERALS
+
135 // User-defined literals N2765 GCC 4.7
+
136 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf
+
137 
+
138 //
+
139 // Standard Layout Types N2342 GCC 4.5
+
140 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm
+
141 
+
142 // #define GLM_CXX11_DEFAULTED_FUNCTIONS
+
143 // #define GLM_CXX11_DELETED_FUNCTIONS
+
144 // Defaulted and deleted functions N2346 GCC 4.4
+
145 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
+
146 
+
147 //
+
148 // Extended friend declarations N1791 GCC 4.7
+
149 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf
+
150 
+
151 //
+
152 // Extending sizeof N2253 GCC 4.4
+
153 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html
+
154 
+
155 // #define GLM_CXX11_INLINE_NAMESPACES
+
156 // Inline namespaces N2535 GCC 4.4
+
157 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm
+
158 
+
159 // #define GLM_CXX11_UNRESTRICTED_UNIONS
+
160 // Unrestricted unions N2544 GCC 4.6
+
161 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
+
162 
+
163 // #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
+
164 // Local and unnamed types as template arguments N2657 GCC 4.5
+
165 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
+
166 
+
167 // #define GLM_CXX11_RANGE_FOR
+
168 // Range-based for N2930 GCC 4.6
+
169 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
+
170 
+
171 // #define GLM_CXX11_OVERRIDE_CONTROL
+
172 // Explicit virtual overrides N2928 N3206 N3272 GCC 4.7
+
173 // http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+
174 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm
+
175 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm
+
176 
+
177 //
+
178 // Minimal support for garbage collection and reachability-based leak detection N2670 No
+
179 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm
+
180 
+
181 // #define GLM_CXX11_NOEXCEPT
+
182 // Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)
+
183 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
+
184 
+
185 //
+
186 // Defining move special member functions N3053 GCC 4.6
+
187 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html
+
188 
+
189 //
+
190 // Sequence points N2239 Yes
+
191 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
+
192 
+
193 //
+
194 // Atomic operations N2427 GCC 4.4
+
195 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
+
196 
+
197 //
+
198 // Strong Compare and Exchange N2748 GCC 4.5
+
199 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html
+
200 
+
201 //
+
202 // Bidirectional Fences N2752 GCC 4.8
+
203 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm
+
204 
+
205 //
+
206 // Memory model N2429 GCC 4.8
+
207 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm
+
208 
+
209 //
+
210 // Data-dependency ordering: atomics and memory model N2664 GCC 4.4
+
211 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm
+
212 
+
213 //
+
214 // Propagating exceptions N2179 GCC 4.4
+
215 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html
+
216 
+
217 //
+
218 // Abandoning a process and at_quick_exit N2440 GCC 4.8
+
219 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm
+
220 
+
221 //
+
222 // Allow atomics use in signal handlers N2547 Yes
+
223 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm
+
224 
+
225 //
+
226 // Thread-local storage N2659 GCC 4.8
+
227 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm
+
228 
+
229 //
+
230 // Dynamic initialization and destruction with concurrency N2660 GCC 4.3
+
231 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
+
232 
+
233 //
+
234 // __func__ predefined identifier N2340 GCC 4.3
+
235 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm
+
236 
+
237 //
+
238 // C99 preprocessor N1653 GCC 4.3
+
239 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm
+
240 
+
241 //
+
242 // long long N1811 GCC 4.3
+
243 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf
+
244 
+
245 //
+
246 // Extended integral types N1988 Yes
+
247 // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf
+
248 
+
249 #if(GLM_COMPILER & GLM_COMPILER_GCC)
+
250 
+
251 # define GLM_CXX11_STATIC_ASSERT
+
252 
+
253 #elif(GLM_COMPILER & GLM_COMPILER_CLANG)
+
254 # if(__has_feature(cxx_exceptions))
+
255 # define GLM_CXX98_EXCEPTIONS
+
256 # endif
+
257 
+
258 # if(__has_feature(cxx_rtti))
+
259 # define GLM_CXX98_RTTI
+
260 # endif
+
261 
+
262 # if(__has_feature(cxx_access_control_sfinae))
+
263 # define GLM_CXX11_ACCESS_CONTROL_SFINAE
+
264 # endif
+
265 
+
266 # if(__has_feature(cxx_alias_templates))
+
267 # define GLM_CXX11_ALIAS_TEMPLATE
+
268 # endif
+
269 
+
270 # if(__has_feature(cxx_alignas))
+
271 # define GLM_CXX11_ALIGNAS
+
272 # endif
+
273 
+
274 # if(__has_feature(cxx_attributes))
+
275 # define GLM_CXX11_ATTRIBUTES
+
276 # endif
+
277 
+
278 # if(__has_feature(cxx_constexpr))
+
279 # define GLM_CXX11_CONSTEXPR
+
280 # endif
+
281 
+
282 # if(__has_feature(cxx_decltype))
+
283 # define GLM_CXX11_DECLTYPE
+
284 # endif
+
285 
+
286 # if(__has_feature(cxx_default_function_template_args))
+
287 # define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS
+
288 # endif
+
289 
+
290 # if(__has_feature(cxx_defaulted_functions))
+
291 # define GLM_CXX11_DEFAULTED_FUNCTIONS
+
292 # endif
+
293 
+
294 # if(__has_feature(cxx_delegating_constructors))
+
295 # define GLM_CXX11_DELEGATING_CONSTRUCTORS
+
296 # endif
+
297 
+
298 # if(__has_feature(cxx_deleted_functions))
+
299 # define GLM_CXX11_DELETED_FUNCTIONS
+
300 # endif
+
301 
+
302 # if(__has_feature(cxx_explicit_conversions))
+
303 # define GLM_CXX11_EXPLICIT_CONVERSIONS
+
304 # endif
+
305 
+
306 # if(__has_feature(cxx_generalized_initializers))
+
307 # define GLM_CXX11_GENERALIZED_INITIALIZERS
+
308 # endif
+
309 
+
310 # if(__has_feature(cxx_implicit_moves))
+
311 # define GLM_CXX11_IMPLICIT_MOVES
+
312 # endif
+
313 
+
314 # if(__has_feature(cxx_inheriting_constructors))
+
315 # define GLM_CXX11_INHERITING_CONSTRUCTORS
+
316 # endif
+
317 
+
318 # if(__has_feature(cxx_inline_namespaces))
+
319 # define GLM_CXX11_INLINE_NAMESPACES
+
320 # endif
+
321 
+
322 # if(__has_feature(cxx_lambdas))
+
323 # define GLM_CXX11_LAMBDAS
+
324 # endif
+
325 
+
326 # if(__has_feature(cxx_local_type_template_args))
+
327 # define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS
+
328 # endif
+
329 
+
330 # if(__has_feature(cxx_noexcept))
+
331 # define GLM_CXX11_NOEXCEPT
+
332 # endif
+
333 
+
334 # if(__has_feature(cxx_nonstatic_member_init))
+
335 # define GLM_CXX11_NONSTATIC_MEMBER_INIT
+
336 # endif
+
337 
+
338 # if(__has_feature(cxx_nullptr))
+
339 # define GLM_CXX11_NULLPTR
+
340 # endif
+
341 
+
342 # if(__has_feature(cxx_override_control))
+
343 # define GLM_CXX11_OVERRIDE_CONTROL
+
344 # endif
+
345 
+
346 # if(__has_feature(cxx_reference_qualified_functions))
+
347 # define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS
+
348 # endif
+
349 
+
350 # if(__has_feature(cxx_range_for))
+
351 # define GLM_CXX11_RANGE_FOR
+
352 # endif
+
353 
+
354 # if(__has_feature(cxx_raw_string_literals))
+
355 # define GLM_CXX11_RAW_STRING_LITERALS
+
356 # endif
+
357 
+
358 # if(__has_feature(cxx_rvalue_references))
+
359 # define GLM_CXX11_RVALUE_REFERENCES
+
360 # endif
+
361 
+
362 # if(__has_feature(cxx_static_assert))
+
363 # define GLM_CXX11_STATIC_ASSERT
+
364 # endif
+
365 
+
366 # if(__has_feature(cxx_auto_type))
+
367 # define GLM_CXX11_AUTO_TYPE
+
368 # endif
+
369 
+
370 # if(__has_feature(cxx_strong_enums))
+
371 # define GLM_CXX11_STRONG_ENUMS
+
372 # endif
+
373 
+
374 # if(__has_feature(cxx_trailing_return))
+
375 # define GLM_CXX11_TRAILING_RETURN
+
376 # endif
+
377 
+
378 # if(__has_feature(cxx_unicode_literals))
+
379 # define GLM_CXX11_UNICODE_LITERALS
+
380 # endif
+
381 
+
382 # if(__has_feature(cxx_unrestricted_unions))
+
383 # define GLM_CXX11_UNRESTRICTED_UNIONS
+
384 # endif
+
385 
+
386 # if(__has_feature(cxx_user_literals))
+
387 # define GLM_CXX11_USER_LITERALS
+
388 # endif
+
389 
+
390 # if(__has_feature(cxx_variadic_templates))
+
391 # define GLM_CXX11_VARIADIC_TEMPLATES
+
392 # endif
+
393 
+
394 #endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00002_source.html b/external/include/glm-0.9.9.8/doc/api/a00002_source.html index 16fdd4eb8a..b38783549b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00002_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00002_source.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: _fixes.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_fixes.hpp
-
-
-
1 #include <cmath>
-
2 
-
4 #ifdef max
-
5 #undef max
-
6 #endif
-
7 
-
9 #ifdef min
-
10 #undef min
-
11 #endif
-
12 
-
14 #ifdef isnan
-
15 #undef isnan
-
16 #endif
-
17 
-
19 #ifdef isinf
-
20 #undef isinf
-
21 #endif
-
22 
-
24 #ifdef log2
-
25 #undef log2
-
26 #endif
-
27 
-
- - - - + + + + + + +0.9.9 API documentation: _fixes.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_fixes.hpp
+
+
+
1 #include <cmath>
+
2 
+
4 #ifdef max
+
5 #undef max
+
6 #endif
+
7 
+
9 #ifdef min
+
10 #undef min
+
11 #endif
+
12 
+
14 #ifdef isnan
+
15 #undef isnan
+
16 #endif
+
17 
+
19 #ifdef isinf
+
20 #undef isinf
+
21 #endif
+
22 
+
24 #ifdef log2
+
25 #undef log2
+
26 #endif
+
27 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00003_source.html b/external/include/glm-0.9.9.8/doc/api/a00003_source.html index 90e5663cdd..4e90ac88bb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00003_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00003_source.html @@ -1,182 +1,182 @@ - - - - - - -0.9.9 API documentation: _noise.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_noise.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "../common.hpp"
-
4 
-
5 namespace glm{
-
6 namespace detail
-
7 {
-
8  template<typename T>
-
9  GLM_FUNC_QUALIFIER T mod289(T const& x)
-
10  {
-
11  return x - floor(x * (static_cast<T>(1.0) / static_cast<T>(289.0))) * static_cast<T>(289.0);
-
12  }
-
13 
-
14  template<typename T>
-
15  GLM_FUNC_QUALIFIER T permute(T const& x)
-
16  {
-
17  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
18  }
-
19 
-
20  template<typename T, qualifier Q>
-
21  GLM_FUNC_QUALIFIER vec<2, T, Q> permute(vec<2, T, Q> const& x)
-
22  {
-
23  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
24  }
-
25 
-
26  template<typename T, qualifier Q>
-
27  GLM_FUNC_QUALIFIER vec<3, T, Q> permute(vec<3, T, Q> const& x)
-
28  {
-
29  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
30  }
-
31 
-
32  template<typename T, qualifier Q>
-
33  GLM_FUNC_QUALIFIER vec<4, T, Q> permute(vec<4, T, Q> const& x)
-
34  {
-
35  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
-
36  }
-
37 
-
38  template<typename T>
-
39  GLM_FUNC_QUALIFIER T taylorInvSqrt(T const& r)
-
40  {
-
41  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
-
42  }
-
43 
-
44  template<typename T, qualifier Q>
-
45  GLM_FUNC_QUALIFIER vec<2, T, Q> taylorInvSqrt(vec<2, T, Q> const& r)
-
46  {
-
47  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
-
48  }
-
49 
-
50  template<typename T, qualifier Q>
-
51  GLM_FUNC_QUALIFIER vec<3, T, Q> taylorInvSqrt(vec<3, T, Q> const& r)
-
52  {
-
53  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
-
54  }
-
55 
-
56  template<typename T, qualifier Q>
-
57  GLM_FUNC_QUALIFIER vec<4, T, Q> taylorInvSqrt(vec<4, T, Q> const& r)
-
58  {
-
59  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
-
60  }
-
61 
-
62  template<typename T, qualifier Q>
-
63  GLM_FUNC_QUALIFIER vec<2, T, Q> fade(vec<2, T, Q> const& t)
-
64  {
-
65  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
-
66  }
-
67 
-
68  template<typename T, qualifier Q>
-
69  GLM_FUNC_QUALIFIER vec<3, T, Q> fade(vec<3, T, Q> const& t)
-
70  {
-
71  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
-
72  }
-
73 
-
74  template<typename T, qualifier Q>
-
75  GLM_FUNC_QUALIFIER vec<4, T, Q> fade(vec<4, T, Q> const& t)
-
76  {
-
77  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
-
78  }
-
79 }//namespace detail
-
80 }//namespace glm
-
81 
-
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: _noise.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_noise.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "../common.hpp"
+
4 
+
5 namespace glm{
+
6 namespace detail
+
7 {
+
8  template<typename T>
+
9  GLM_FUNC_QUALIFIER T mod289(T const& x)
+
10  {
+
11  return x - floor(x * (static_cast<T>(1.0) / static_cast<T>(289.0))) * static_cast<T>(289.0);
+
12  }
+
13 
+
14  template<typename T>
+
15  GLM_FUNC_QUALIFIER T permute(T const& x)
+
16  {
+
17  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
18  }
+
19 
+
20  template<typename T, qualifier Q>
+
21  GLM_FUNC_QUALIFIER vec<2, T, Q> permute(vec<2, T, Q> const& x)
+
22  {
+
23  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
24  }
+
25 
+
26  template<typename T, qualifier Q>
+
27  GLM_FUNC_QUALIFIER vec<3, T, Q> permute(vec<3, T, Q> const& x)
+
28  {
+
29  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
30  }
+
31 
+
32  template<typename T, qualifier Q>
+
33  GLM_FUNC_QUALIFIER vec<4, T, Q> permute(vec<4, T, Q> const& x)
+
34  {
+
35  return mod289(((x * static_cast<T>(34)) + static_cast<T>(1)) * x);
+
36  }
+
37 
+
38  template<typename T>
+
39  GLM_FUNC_QUALIFIER T taylorInvSqrt(T const& r)
+
40  {
+
41  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
+
42  }
+
43 
+
44  template<typename T, qualifier Q>
+
45  GLM_FUNC_QUALIFIER vec<2, T, Q> taylorInvSqrt(vec<2, T, Q> const& r)
+
46  {
+
47  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
+
48  }
+
49 
+
50  template<typename T, qualifier Q>
+
51  GLM_FUNC_QUALIFIER vec<3, T, Q> taylorInvSqrt(vec<3, T, Q> const& r)
+
52  {
+
53  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
+
54  }
+
55 
+
56  template<typename T, qualifier Q>
+
57  GLM_FUNC_QUALIFIER vec<4, T, Q> taylorInvSqrt(vec<4, T, Q> const& r)
+
58  {
+
59  return static_cast<T>(1.79284291400159) - static_cast<T>(0.85373472095314) * r;
+
60  }
+
61 
+
62  template<typename T, qualifier Q>
+
63  GLM_FUNC_QUALIFIER vec<2, T, Q> fade(vec<2, T, Q> const& t)
+
64  {
+
65  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
+
66  }
+
67 
+
68  template<typename T, qualifier Q>
+
69  GLM_FUNC_QUALIFIER vec<3, T, Q> fade(vec<3, T, Q> const& t)
+
70  {
+
71  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
+
72  }
+
73 
+
74  template<typename T, qualifier Q>
+
75  GLM_FUNC_QUALIFIER vec<4, T, Q> fade(vec<4, T, Q> const& t)
+
76  {
+
77  return (t * t * t) * (t * (t * static_cast<T>(6) - static_cast<T>(15)) + static_cast<T>(10));
+
78  }
+
79 }//namespace detail
+
80 }//namespace glm
+
81 
+
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00004_source.html b/external/include/glm-0.9.9.8/doc/api/a00004_source.html index 110ffe4012..a2a5ebb623 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00004_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00004_source.html @@ -1,905 +1,905 @@ - - - - - - -0.9.9 API documentation: _swizzle.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_swizzle.hpp
-
-
-
1 #pragma once
-
2 
-
3 namespace glm{
-
4 namespace detail
-
5 {
-
6  // Internal class for implementing swizzle operators
-
7  template<typename T, int N>
-
8  struct _swizzle_base0
-
9  {
-
10  protected:
-
11  GLM_FUNC_QUALIFIER T& elem(size_t i){ return (reinterpret_cast<T*>(_buffer))[i]; }
-
12  GLM_FUNC_QUALIFIER T const& elem(size_t i) const{ return (reinterpret_cast<const T*>(_buffer))[i]; }
-
13 
-
14  // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
-
15  // The size 1 buffer is assumed to aligned to the actual members so that the
-
16  // elem()
-
17  char _buffer[1];
-
18  };
-
19 
-
20  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, bool Aligned>
-
21  struct _swizzle_base1 : public _swizzle_base0<T, N>
-
22  {
-
23  };
-
24 
-
25  template<typename T, qualifier Q, int E0, int E1, bool Aligned>
-
26  struct _swizzle_base1<2, T, Q, E0,E1,-1,-2, Aligned> : public _swizzle_base0<T, 2>
-
27  {
-
28  GLM_FUNC_QUALIFIER vec<2, T, Q> operator ()() const { return vec<2, T, Q>(this->elem(E0), this->elem(E1)); }
-
29  };
-
30 
-
31  template<typename T, qualifier Q, int E0, int E1, int E2, bool Aligned>
-
32  struct _swizzle_base1<3, T, Q, E0,E1,E2,-1, Aligned> : public _swizzle_base0<T, 3>
-
33  {
-
34  GLM_FUNC_QUALIFIER vec<3, T, Q> operator ()() const { return vec<3, T, Q>(this->elem(E0), this->elem(E1), this->elem(E2)); }
-
35  };
-
36 
-
37  template<typename T, qualifier Q, int E0, int E1, int E2, int E3, bool Aligned>
-
38  struct _swizzle_base1<4, T, Q, E0,E1,E2,E3, Aligned> : public _swizzle_base0<T, 4>
-
39  {
-
40  GLM_FUNC_QUALIFIER vec<4, T, Q> operator ()() const { return vec<4, T, Q>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
-
41  };
-
42 
-
43  // Internal class for implementing swizzle operators
-
44  /*
-
45  Template parameters:
-
46 
-
47  T = type of scalar values (e.g. float, double)
-
48  N = number of components in the vector (e.g. 3)
-
49  E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
-
50 
-
51  DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
-
52  containing duplicate elements so that they cannot be used as r-values).
-
53  */
-
54  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
-
55  struct _swizzle_base2 : public _swizzle_base1<N, T, Q, E0,E1,E2,E3, detail::is_aligned<Q>::value>
-
56  {
-
57  struct op_equal
-
58  {
-
59  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e = t; }
-
60  };
-
61 
-
62  struct op_minus
-
63  {
-
64  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e -= t; }
-
65  };
-
66 
-
67  struct op_plus
-
68  {
-
69  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e += t; }
-
70  };
-
71 
-
72  struct op_mul
-
73  {
-
74  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e *= t; }
-
75  };
-
76 
-
77  struct op_div
-
78  {
-
79  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e /= t; }
-
80  };
-
81 
-
82  public:
-
83  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const T& t)
-
84  {
-
85  for (int i = 0; i < N; ++i)
-
86  (*this)[i] = t;
-
87  return *this;
-
88  }
-
89 
-
90  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vec<N, T, Q> const& that)
-
91  {
-
92  _apply_op(that, op_equal());
-
93  return *this;
-
94  }
-
95 
-
96  GLM_FUNC_QUALIFIER void operator -= (vec<N, T, Q> const& that)
-
97  {
-
98  _apply_op(that, op_minus());
-
99  }
-
100 
-
101  GLM_FUNC_QUALIFIER void operator += (vec<N, T, Q> const& that)
-
102  {
-
103  _apply_op(that, op_plus());
-
104  }
-
105 
-
106  GLM_FUNC_QUALIFIER void operator *= (vec<N, T, Q> const& that)
-
107  {
-
108  _apply_op(that, op_mul());
-
109  }
-
110 
-
111  GLM_FUNC_QUALIFIER void operator /= (vec<N, T, Q> const& that)
-
112  {
-
113  _apply_op(that, op_div());
-
114  }
-
115 
-
116  GLM_FUNC_QUALIFIER T& operator[](size_t i)
-
117  {
-
118  const int offset_dst[4] = { E0, E1, E2, E3 };
-
119  return this->elem(offset_dst[i]);
-
120  }
-
121  GLM_FUNC_QUALIFIER T operator[](size_t i) const
-
122  {
-
123  const int offset_dst[4] = { E0, E1, E2, E3 };
-
124  return this->elem(offset_dst[i]);
-
125  }
-
126 
-
127  protected:
-
128  template<typename U>
-
129  GLM_FUNC_QUALIFIER void _apply_op(vec<N, T, Q> const& that, const U& op)
-
130  {
-
131  // Make a copy of the data in this == &that.
-
132  // The copier should optimize out the copy in cases where the function is
-
133  // properly inlined and the copy is not necessary.
-
134  T t[N];
-
135  for (int i = 0; i < N; ++i)
-
136  t[i] = that[i];
-
137  for (int i = 0; i < N; ++i)
-
138  op( (*this)[i], t[i] );
-
139  }
-
140  };
-
141 
-
142  // Specialization for swizzles containing duplicate elements. These cannot be modified.
-
143  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
-
144  struct _swizzle_base2<N, T, Q, E0,E1,E2,E3, 1> : public _swizzle_base1<N, T, Q, E0,E1,E2,E3, detail::is_aligned<Q>::value>
-
145  {
-
146  struct Stub {};
-
147 
-
148  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const&) { return *this; }
-
149 
-
150  GLM_FUNC_QUALIFIER T operator[] (size_t i) const
-
151  {
-
152  const int offset_dst[4] = { E0, E1, E2, E3 };
-
153  return this->elem(offset_dst[i]);
-
154  }
-
155  };
-
156 
-
157  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
-
158  struct _swizzle : public _swizzle_base2<N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)>
-
159  {
-
160  typedef _swizzle_base2<N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;
-
161 
-
162  using base_type::operator=;
-
163 
-
164  GLM_FUNC_QUALIFIER operator vec<N, T, Q> () const { return (*this)(); }
-
165  };
-
166 
-
167 //
-
168 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
-
169 //
-
170 #define GLM_SWIZZLE_TEMPLATE1 template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
-
171 #define GLM_SWIZZLE_TEMPLATE2 template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
-
172 #define GLM_SWIZZLE_TYPE1 _swizzle<N, T, Q, E0, E1, E2, E3>
-
173 #define GLM_SWIZZLE_TYPE2 _swizzle<N, T, Q, F0, F1, F2, F3>
-
174 
-
175 //
-
176 // Wrapper for a binary operator (e.g. u.yy + v.zy)
-
177 //
-
178 #define GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
179  GLM_SWIZZLE_TEMPLATE2 \
-
180  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b) \
-
181  { \
-
182  return a() OPERAND b(); \
-
183  } \
-
184  GLM_SWIZZLE_TEMPLATE1 \
-
185  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const vec<N, T, Q>& b) \
-
186  { \
-
187  return a() OPERAND b; \
-
188  } \
-
189  GLM_SWIZZLE_TEMPLATE1 \
-
190  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const vec<N, T, Q>& a, const GLM_SWIZZLE_TYPE1& b) \
-
191  { \
-
192  return a OPERAND b(); \
-
193  }
-
194 
-
195 //
-
196 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
-
197 //
-
198 #define GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
-
199  GLM_SWIZZLE_TEMPLATE1 \
-
200  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const T& b) \
-
201  { \
-
202  return a() OPERAND b; \
-
203  } \
-
204  GLM_SWIZZLE_TEMPLATE1 \
-
205  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const T& a, const GLM_SWIZZLE_TYPE1& b) \
-
206  { \
-
207  return a OPERAND b(); \
-
208  }
-
209 
-
210 //
-
211 // Macro for wrapping a function taking one argument (e.g. abs())
-
212 //
-
213 #define GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
-
214  GLM_SWIZZLE_TEMPLATE1 \
-
215  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a) \
-
216  { \
-
217  return FUNCTION(a()); \
-
218  }
-
219 
-
220 //
-
221 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
-
222 //
-
223 #define GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
-
224  GLM_SWIZZLE_TEMPLATE2 \
-
225  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b) \
-
226  { \
-
227  return FUNCTION(a(), b()); \
-
228  } \
-
229  GLM_SWIZZLE_TEMPLATE1 \
-
230  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE1& b) \
-
231  { \
-
232  return FUNCTION(a(), b()); \
-
233  } \
-
234  GLM_SWIZZLE_TEMPLATE1 \
-
235  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const typename V& b) \
-
236  { \
-
237  return FUNCTION(a(), b); \
-
238  } \
-
239  GLM_SWIZZLE_TEMPLATE1 \
-
240  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const GLM_SWIZZLE_TYPE1& b) \
-
241  { \
-
242  return FUNCTION(a, b()); \
-
243  }
-
244 
-
245 //
-
246 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
-
247 //
-
248 #define GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
-
249  GLM_SWIZZLE_TEMPLATE2 \
-
250  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b, const T& c) \
-
251  { \
-
252  return FUNCTION(a(), b(), c); \
-
253  } \
-
254  GLM_SWIZZLE_TEMPLATE1 \
-
255  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE1& b, const T& c) \
-
256  { \
-
257  return FUNCTION(a(), b(), c); \
-
258  } \
-
259  GLM_SWIZZLE_TEMPLATE1 \
-
260  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
-
261  { \
-
262  return FUNCTION(a(), b, c); \
-
263  } \
-
264  GLM_SWIZZLE_TEMPLATE1 \
-
265  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const GLM_SWIZZLE_TYPE1& b, const T& c) \
-
266  { \
-
267  return FUNCTION(a, b(), c); \
-
268  }
-
269 
-
270 }//namespace detail
-
271 }//namespace glm
-
272 
-
273 namespace glm
-
274 {
-
275  namespace detail
-
276  {
-
277  GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
278  GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
279  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
-
280  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
-
281  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
-
282  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
-
283  }
-
284 
-
285  //
-
286  // Swizzles are distinct types from the unswizzled type. The below macros will
-
287  // provide template specializations for the swizzle types for the given functions
-
288  // so that the compiler does not have any ambiguity to choosing how to handle
-
289  // the function.
-
290  //
-
291  // The alternative is to use the operator()() when calling the function in order
-
292  // to explicitly convert the swizzled type to the unswizzled type.
-
293  //
-
294 
-
295  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
-
296  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
-
297  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
-
298  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
-
299  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
-
300 
-
301  //GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
-
302  //GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
-
303  //GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
-
304  //GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
-
305 }
-
306 
-
307 #define GLM_SWIZZLE2_2_MEMBERS(T, Q, E0,E1) \
-
308  struct { detail::_swizzle<2, T, Q, 0,0,-1,-2> E0 ## E0; }; \
-
309  struct { detail::_swizzle<2, T, Q, 0,1,-1,-2> E0 ## E1; }; \
-
310  struct { detail::_swizzle<2, T, Q, 1,0,-1,-2> E1 ## E0; }; \
-
311  struct { detail::_swizzle<2, T, Q, 1,1,-1,-2> E1 ## E1; };
-
312 
-
313 #define GLM_SWIZZLE2_3_MEMBERS(T, Q, E0,E1) \
-
314  struct { detail::_swizzle<3,T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
315  struct { detail::_swizzle<3,T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
316  struct { detail::_swizzle<3,T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
317  struct { detail::_swizzle<3,T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
318  struct { detail::_swizzle<3,T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
319  struct { detail::_swizzle<3,T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
320  struct { detail::_swizzle<3,T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
321  struct { detail::_swizzle<3,T, Q, 1,1,1,-1> E1 ## E1 ## E1; };
-
322 
-
323 #define GLM_SWIZZLE2_4_MEMBERS(T, Q, E0,E1) \
-
324  struct { detail::_swizzle<4,T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
325  struct { detail::_swizzle<4,T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
326  struct { detail::_swizzle<4,T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
327  struct { detail::_swizzle<4,T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
328  struct { detail::_swizzle<4,T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
329  struct { detail::_swizzle<4,T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
330  struct { detail::_swizzle<4,T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
331  struct { detail::_swizzle<4,T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
332  struct { detail::_swizzle<4,T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
333  struct { detail::_swizzle<4,T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
334  struct { detail::_swizzle<4,T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
335  struct { detail::_swizzle<4,T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
336  struct { detail::_swizzle<4,T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
337  struct { detail::_swizzle<4,T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
338  struct { detail::_swizzle<4,T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
339  struct { detail::_swizzle<4,T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
-
340 
-
341 #define GLM_SWIZZLE3_2_MEMBERS(T, Q, E0,E1,E2) \
-
342  struct { detail::_swizzle<2,T, Q, 0,0,-1,-2> E0 ## E0; }; \
-
343  struct { detail::_swizzle<2,T, Q, 0,1,-1,-2> E0 ## E1; }; \
-
344  struct { detail::_swizzle<2,T, Q, 0,2,-1,-2> E0 ## E2; }; \
-
345  struct { detail::_swizzle<2,T, Q, 1,0,-1,-2> E1 ## E0; }; \
-
346  struct { detail::_swizzle<2,T, Q, 1,1,-1,-2> E1 ## E1; }; \
-
347  struct { detail::_swizzle<2,T, Q, 1,2,-1,-2> E1 ## E2; }; \
-
348  struct { detail::_swizzle<2,T, Q, 2,0,-1,-2> E2 ## E0; }; \
-
349  struct { detail::_swizzle<2,T, Q, 2,1,-1,-2> E2 ## E1; }; \
-
350  struct { detail::_swizzle<2,T, Q, 2,2,-1,-2> E2 ## E2; };
-
351 
-
352 #define GLM_SWIZZLE3_3_MEMBERS(T, Q ,E0,E1,E2) \
-
353  struct { detail::_swizzle<3, T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
354  struct { detail::_swizzle<3, T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
355  struct { detail::_swizzle<3, T, Q, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
356  struct { detail::_swizzle<3, T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
357  struct { detail::_swizzle<3, T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
358  struct { detail::_swizzle<3, T, Q, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
359  struct { detail::_swizzle<3, T, Q, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
360  struct { detail::_swizzle<3, T, Q, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
361  struct { detail::_swizzle<3, T, Q, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
362  struct { detail::_swizzle<3, T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
363  struct { detail::_swizzle<3, T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
364  struct { detail::_swizzle<3, T, Q, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
365  struct { detail::_swizzle<3, T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
366  struct { detail::_swizzle<3, T, Q, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
367  struct { detail::_swizzle<3, T, Q, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
368  struct { detail::_swizzle<3, T, Q, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
369  struct { detail::_swizzle<3, T, Q, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
370  struct { detail::_swizzle<3, T, Q, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
371  struct { detail::_swizzle<3, T, Q, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
372  struct { detail::_swizzle<3, T, Q, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
373  struct { detail::_swizzle<3, T, Q, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
374  struct { detail::_swizzle<3, T, Q, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
375  struct { detail::_swizzle<3, T, Q, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
376  struct { detail::_swizzle<3, T, Q, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
377  struct { detail::_swizzle<3, T, Q, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
378  struct { detail::_swizzle<3, T, Q, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
379  struct { detail::_swizzle<3, T, Q, 2,2,2,-1> E2 ## E2 ## E2; };
-
380 
-
381 #define GLM_SWIZZLE3_4_MEMBERS(T, Q, E0,E1,E2) \
-
382  struct { detail::_swizzle<4,T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
383  struct { detail::_swizzle<4,T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
384  struct { detail::_swizzle<4,T, Q, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
385  struct { detail::_swizzle<4,T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
386  struct { detail::_swizzle<4,T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
387  struct { detail::_swizzle<4,T, Q, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
388  struct { detail::_swizzle<4,T, Q, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
389  struct { detail::_swizzle<4,T, Q, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
390  struct { detail::_swizzle<4,T, Q, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
391  struct { detail::_swizzle<4,T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
392  struct { detail::_swizzle<4,T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
393  struct { detail::_swizzle<4,T, Q, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
394  struct { detail::_swizzle<4,T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
395  struct { detail::_swizzle<4,T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
396  struct { detail::_swizzle<4,T, Q, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
397  struct { detail::_swizzle<4,T, Q, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
398  struct { detail::_swizzle<4,T, Q, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
399  struct { detail::_swizzle<4,T, Q, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
400  struct { detail::_swizzle<4,T, Q, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
401  struct { detail::_swizzle<4,T, Q, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
402  struct { detail::_swizzle<4,T, Q, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
403  struct { detail::_swizzle<4,T, Q, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
404  struct { detail::_swizzle<4,T, Q, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
405  struct { detail::_swizzle<4,T, Q, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
406  struct { detail::_swizzle<4,T, Q, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
407  struct { detail::_swizzle<4,T, Q, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
408  struct { detail::_swizzle<4,T, Q, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
409  struct { detail::_swizzle<4,T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
410  struct { detail::_swizzle<4,T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
411  struct { detail::_swizzle<4,T, Q, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
412  struct { detail::_swizzle<4,T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
413  struct { detail::_swizzle<4,T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
414  struct { detail::_swizzle<4,T, Q, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
415  struct { detail::_swizzle<4,T, Q, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
416  struct { detail::_swizzle<4,T, Q, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
417  struct { detail::_swizzle<4,T, Q, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
418  struct { detail::_swizzle<4,T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
419  struct { detail::_swizzle<4,T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
420  struct { detail::_swizzle<4,T, Q, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
421  struct { detail::_swizzle<4,T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
422  struct { detail::_swizzle<4,T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
423  struct { detail::_swizzle<4,T, Q, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
424  struct { detail::_swizzle<4,T, Q, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
425  struct { detail::_swizzle<4,T, Q, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
426  struct { detail::_swizzle<4,T, Q, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
427  struct { detail::_swizzle<4,T, Q, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
428  struct { detail::_swizzle<4,T, Q, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
429  struct { detail::_swizzle<4,T, Q, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
430  struct { detail::_swizzle<4,T, Q, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
431  struct { detail::_swizzle<4,T, Q, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
432  struct { detail::_swizzle<4,T, Q, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
433  struct { detail::_swizzle<4,T, Q, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
434  struct { detail::_swizzle<4,T, Q, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
435  struct { detail::_swizzle<4,T, Q, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
436  struct { detail::_swizzle<4,T, Q, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
437  struct { detail::_swizzle<4,T, Q, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
438  struct { detail::_swizzle<4,T, Q, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
439  struct { detail::_swizzle<4,T, Q, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
440  struct { detail::_swizzle<4,T, Q, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
441  struct { detail::_swizzle<4,T, Q, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
442  struct { detail::_swizzle<4,T, Q, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
443  struct { detail::_swizzle<4,T, Q, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
444  struct { detail::_swizzle<4,T, Q, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
445  struct { detail::_swizzle<4,T, Q, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
446  struct { detail::_swizzle<4,T, Q, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
447  struct { detail::_swizzle<4,T, Q, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
448  struct { detail::_swizzle<4,T, Q, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
449  struct { detail::_swizzle<4,T, Q, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
450  struct { detail::_swizzle<4,T, Q, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
451  struct { detail::_swizzle<4,T, Q, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
452  struct { detail::_swizzle<4,T, Q, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
453  struct { detail::_swizzle<4,T, Q, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
454  struct { detail::_swizzle<4,T, Q, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
455  struct { detail::_swizzle<4,T, Q, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
456  struct { detail::_swizzle<4,T, Q, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
457  struct { detail::_swizzle<4,T, Q, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
458  struct { detail::_swizzle<4,T, Q, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
459  struct { detail::_swizzle<4,T, Q, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
460  struct { detail::_swizzle<4,T, Q, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
461  struct { detail::_swizzle<4,T, Q, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
462  struct { detail::_swizzle<4,T, Q, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
-
463 
-
464 #define GLM_SWIZZLE4_2_MEMBERS(T, Q, E0,E1,E2,E3) \
-
465  struct { detail::_swizzle<2,T, Q, 0,0,-1,-2> E0 ## E0; }; \
-
466  struct { detail::_swizzle<2,T, Q, 0,1,-1,-2> E0 ## E1; }; \
-
467  struct { detail::_swizzle<2,T, Q, 0,2,-1,-2> E0 ## E2; }; \
-
468  struct { detail::_swizzle<2,T, Q, 0,3,-1,-2> E0 ## E3; }; \
-
469  struct { detail::_swizzle<2,T, Q, 1,0,-1,-2> E1 ## E0; }; \
-
470  struct { detail::_swizzle<2,T, Q, 1,1,-1,-2> E1 ## E1; }; \
-
471  struct { detail::_swizzle<2,T, Q, 1,2,-1,-2> E1 ## E2; }; \
-
472  struct { detail::_swizzle<2,T, Q, 1,3,-1,-2> E1 ## E3; }; \
-
473  struct { detail::_swizzle<2,T, Q, 2,0,-1,-2> E2 ## E0; }; \
-
474  struct { detail::_swizzle<2,T, Q, 2,1,-1,-2> E2 ## E1; }; \
-
475  struct { detail::_swizzle<2,T, Q, 2,2,-1,-2> E2 ## E2; }; \
-
476  struct { detail::_swizzle<2,T, Q, 2,3,-1,-2> E2 ## E3; }; \
-
477  struct { detail::_swizzle<2,T, Q, 3,0,-1,-2> E3 ## E0; }; \
-
478  struct { detail::_swizzle<2,T, Q, 3,1,-1,-2> E3 ## E1; }; \
-
479  struct { detail::_swizzle<2,T, Q, 3,2,-1,-2> E3 ## E2; }; \
-
480  struct { detail::_swizzle<2,T, Q, 3,3,-1,-2> E3 ## E3; };
-
481 
-
482 #define GLM_SWIZZLE4_3_MEMBERS(T, Q, E0,E1,E2,E3) \
-
483  struct { detail::_swizzle<3, T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
-
484  struct { detail::_swizzle<3, T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
-
485  struct { detail::_swizzle<3, T, Q, 0,0,2,-1> E0 ## E0 ## E2; }; \
-
486  struct { detail::_swizzle<3, T, Q, 0,0,3,-1> E0 ## E0 ## E3; }; \
-
487  struct { detail::_swizzle<3, T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
-
488  struct { detail::_swizzle<3, T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
-
489  struct { detail::_swizzle<3, T, Q, 0,1,2,-1> E0 ## E1 ## E2; }; \
-
490  struct { detail::_swizzle<3, T, Q, 0,1,3,-1> E0 ## E1 ## E3; }; \
-
491  struct { detail::_swizzle<3, T, Q, 0,2,0,-1> E0 ## E2 ## E0; }; \
-
492  struct { detail::_swizzle<3, T, Q, 0,2,1,-1> E0 ## E2 ## E1; }; \
-
493  struct { detail::_swizzle<3, T, Q, 0,2,2,-1> E0 ## E2 ## E2; }; \
-
494  struct { detail::_swizzle<3, T, Q, 0,2,3,-1> E0 ## E2 ## E3; }; \
-
495  struct { detail::_swizzle<3, T, Q, 0,3,0,-1> E0 ## E3 ## E0; }; \
-
496  struct { detail::_swizzle<3, T, Q, 0,3,1,-1> E0 ## E3 ## E1; }; \
-
497  struct { detail::_swizzle<3, T, Q, 0,3,2,-1> E0 ## E3 ## E2; }; \
-
498  struct { detail::_swizzle<3, T, Q, 0,3,3,-1> E0 ## E3 ## E3; }; \
-
499  struct { detail::_swizzle<3, T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
-
500  struct { detail::_swizzle<3, T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
-
501  struct { detail::_swizzle<3, T, Q, 1,0,2,-1> E1 ## E0 ## E2; }; \
-
502  struct { detail::_swizzle<3, T, Q, 1,0,3,-1> E1 ## E0 ## E3; }; \
-
503  struct { detail::_swizzle<3, T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
-
504  struct { detail::_swizzle<3, T, Q, 1,1,1,-1> E1 ## E1 ## E1; }; \
-
505  struct { detail::_swizzle<3, T, Q, 1,1,2,-1> E1 ## E1 ## E2; }; \
-
506  struct { detail::_swizzle<3, T, Q, 1,1,3,-1> E1 ## E1 ## E3; }; \
-
507  struct { detail::_swizzle<3, T, Q, 1,2,0,-1> E1 ## E2 ## E0; }; \
-
508  struct { detail::_swizzle<3, T, Q, 1,2,1,-1> E1 ## E2 ## E1; }; \
-
509  struct { detail::_swizzle<3, T, Q, 1,2,2,-1> E1 ## E2 ## E2; }; \
-
510  struct { detail::_swizzle<3, T, Q, 1,2,3,-1> E1 ## E2 ## E3; }; \
-
511  struct { detail::_swizzle<3, T, Q, 1,3,0,-1> E1 ## E3 ## E0; }; \
-
512  struct { detail::_swizzle<3, T, Q, 1,3,1,-1> E1 ## E3 ## E1; }; \
-
513  struct { detail::_swizzle<3, T, Q, 1,3,2,-1> E1 ## E3 ## E2; }; \
-
514  struct { detail::_swizzle<3, T, Q, 1,3,3,-1> E1 ## E3 ## E3; }; \
-
515  struct { detail::_swizzle<3, T, Q, 2,0,0,-1> E2 ## E0 ## E0; }; \
-
516  struct { detail::_swizzle<3, T, Q, 2,0,1,-1> E2 ## E0 ## E1; }; \
-
517  struct { detail::_swizzle<3, T, Q, 2,0,2,-1> E2 ## E0 ## E2; }; \
-
518  struct { detail::_swizzle<3, T, Q, 2,0,3,-1> E2 ## E0 ## E3; }; \
-
519  struct { detail::_swizzle<3, T, Q, 2,1,0,-1> E2 ## E1 ## E0; }; \
-
520  struct { detail::_swizzle<3, T, Q, 2,1,1,-1> E2 ## E1 ## E1; }; \
-
521  struct { detail::_swizzle<3, T, Q, 2,1,2,-1> E2 ## E1 ## E2; }; \
-
522  struct { detail::_swizzle<3, T, Q, 2,1,3,-1> E2 ## E1 ## E3; }; \
-
523  struct { detail::_swizzle<3, T, Q, 2,2,0,-1> E2 ## E2 ## E0; }; \
-
524  struct { detail::_swizzle<3, T, Q, 2,2,1,-1> E2 ## E2 ## E1; }; \
-
525  struct { detail::_swizzle<3, T, Q, 2,2,2,-1> E2 ## E2 ## E2; }; \
-
526  struct { detail::_swizzle<3, T, Q, 2,2,3,-1> E2 ## E2 ## E3; }; \
-
527  struct { detail::_swizzle<3, T, Q, 2,3,0,-1> E2 ## E3 ## E0; }; \
-
528  struct { detail::_swizzle<3, T, Q, 2,3,1,-1> E2 ## E3 ## E1; }; \
-
529  struct { detail::_swizzle<3, T, Q, 2,3,2,-1> E2 ## E3 ## E2; }; \
-
530  struct { detail::_swizzle<3, T, Q, 2,3,3,-1> E2 ## E3 ## E3; }; \
-
531  struct { detail::_swizzle<3, T, Q, 3,0,0,-1> E3 ## E0 ## E0; }; \
-
532  struct { detail::_swizzle<3, T, Q, 3,0,1,-1> E3 ## E0 ## E1; }; \
-
533  struct { detail::_swizzle<3, T, Q, 3,0,2,-1> E3 ## E0 ## E2; }; \
-
534  struct { detail::_swizzle<3, T, Q, 3,0,3,-1> E3 ## E0 ## E3; }; \
-
535  struct { detail::_swizzle<3, T, Q, 3,1,0,-1> E3 ## E1 ## E0; }; \
-
536  struct { detail::_swizzle<3, T, Q, 3,1,1,-1> E3 ## E1 ## E1; }; \
-
537  struct { detail::_swizzle<3, T, Q, 3,1,2,-1> E3 ## E1 ## E2; }; \
-
538  struct { detail::_swizzle<3, T, Q, 3,1,3,-1> E3 ## E1 ## E3; }; \
-
539  struct { detail::_swizzle<3, T, Q, 3,2,0,-1> E3 ## E2 ## E0; }; \
-
540  struct { detail::_swizzle<3, T, Q, 3,2,1,-1> E3 ## E2 ## E1; }; \
-
541  struct { detail::_swizzle<3, T, Q, 3,2,2,-1> E3 ## E2 ## E2; }; \
-
542  struct { detail::_swizzle<3, T, Q, 3,2,3,-1> E3 ## E2 ## E3; }; \
-
543  struct { detail::_swizzle<3, T, Q, 3,3,0,-1> E3 ## E3 ## E0; }; \
-
544  struct { detail::_swizzle<3, T, Q, 3,3,1,-1> E3 ## E3 ## E1; }; \
-
545  struct { detail::_swizzle<3, T, Q, 3,3,2,-1> E3 ## E3 ## E2; }; \
-
546  struct { detail::_swizzle<3, T, Q, 3,3,3,-1> E3 ## E3 ## E3; };
-
547 
-
548 #define GLM_SWIZZLE4_4_MEMBERS(T, Q, E0,E1,E2,E3) \
-
549  struct { detail::_swizzle<4, T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
-
550  struct { detail::_swizzle<4, T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
-
551  struct { detail::_swizzle<4, T, Q, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
-
552  struct { detail::_swizzle<4, T, Q, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
-
553  struct { detail::_swizzle<4, T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
-
554  struct { detail::_swizzle<4, T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
-
555  struct { detail::_swizzle<4, T, Q, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
-
556  struct { detail::_swizzle<4, T, Q, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
-
557  struct { detail::_swizzle<4, T, Q, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
-
558  struct { detail::_swizzle<4, T, Q, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
-
559  struct { detail::_swizzle<4, T, Q, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
-
560  struct { detail::_swizzle<4, T, Q, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
-
561  struct { detail::_swizzle<4, T, Q, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
-
562  struct { detail::_swizzle<4, T, Q, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
-
563  struct { detail::_swizzle<4, T, Q, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
-
564  struct { detail::_swizzle<4, T, Q, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
-
565  struct { detail::_swizzle<4, T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
-
566  struct { detail::_swizzle<4, T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
-
567  struct { detail::_swizzle<4, T, Q, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
-
568  struct { detail::_swizzle<4, T, Q, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
-
569  struct { detail::_swizzle<4, T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
-
570  struct { detail::_swizzle<4, T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
-
571  struct { detail::_swizzle<4, T, Q, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
-
572  struct { detail::_swizzle<4, T, Q, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
-
573  struct { detail::_swizzle<4, T, Q, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
-
574  struct { detail::_swizzle<4, T, Q, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
-
575  struct { detail::_swizzle<4, T, Q, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
-
576  struct { detail::_swizzle<4, T, Q, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
-
577  struct { detail::_swizzle<4, T, Q, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
-
578  struct { detail::_swizzle<4, T, Q, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
-
579  struct { detail::_swizzle<4, T, Q, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
-
580  struct { detail::_swizzle<4, T, Q, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
-
581  struct { detail::_swizzle<4, T, Q, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
-
582  struct { detail::_swizzle<4, T, Q, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
-
583  struct { detail::_swizzle<4, T, Q, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
-
584  struct { detail::_swizzle<4, T, Q, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
-
585  struct { detail::_swizzle<4, T, Q, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
-
586  struct { detail::_swizzle<4, T, Q, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
-
587  struct { detail::_swizzle<4, T, Q, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
-
588  struct { detail::_swizzle<4, T, Q, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
-
589  struct { detail::_swizzle<4, T, Q, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
-
590  struct { detail::_swizzle<4, T, Q, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
-
591  struct { detail::_swizzle<4, T, Q, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
-
592  struct { detail::_swizzle<4, T, Q, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
-
593  struct { detail::_swizzle<4, T, Q, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
-
594  struct { detail::_swizzle<4, T, Q, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
-
595  struct { detail::_swizzle<4, T, Q, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
-
596  struct { detail::_swizzle<4, T, Q, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
-
597  struct { detail::_swizzle<4, T, Q, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
-
598  struct { detail::_swizzle<4, T, Q, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
-
599  struct { detail::_swizzle<4, T, Q, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
-
600  struct { detail::_swizzle<4, T, Q, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
-
601  struct { detail::_swizzle<4, T, Q, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
-
602  struct { detail::_swizzle<4, T, Q, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
-
603  struct { detail::_swizzle<4, T, Q, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
-
604  struct { detail::_swizzle<4, T, Q, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
-
605  struct { detail::_swizzle<4, T, Q, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
-
606  struct { detail::_swizzle<4, T, Q, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
-
607  struct { detail::_swizzle<4, T, Q, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
-
608  struct { detail::_swizzle<4, T, Q, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
-
609  struct { detail::_swizzle<4, T, Q, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
-
610  struct { detail::_swizzle<4, T, Q, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
-
611  struct { detail::_swizzle<4, T, Q, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
-
612  struct { detail::_swizzle<4, T, Q, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
-
613  struct { detail::_swizzle<4, T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
-
614  struct { detail::_swizzle<4, T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
-
615  struct { detail::_swizzle<4, T, Q, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
-
616  struct { detail::_swizzle<4, T, Q, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
-
617  struct { detail::_swizzle<4, T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
-
618  struct { detail::_swizzle<4, T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
-
619  struct { detail::_swizzle<4, T, Q, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
-
620  struct { detail::_swizzle<4, T, Q, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
-
621  struct { detail::_swizzle<4, T, Q, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
-
622  struct { detail::_swizzle<4, T, Q, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
-
623  struct { detail::_swizzle<4, T, Q, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
-
624  struct { detail::_swizzle<4, T, Q, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
-
625  struct { detail::_swizzle<4, T, Q, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
-
626  struct { detail::_swizzle<4, T, Q, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
-
627  struct { detail::_swizzle<4, T, Q, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
-
628  struct { detail::_swizzle<4, T, Q, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
-
629  struct { detail::_swizzle<4, T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
-
630  struct { detail::_swizzle<4, T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
-
631  struct { detail::_swizzle<4, T, Q, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
-
632  struct { detail::_swizzle<4, T, Q, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
-
633  struct { detail::_swizzle<4, T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
-
634  struct { detail::_swizzle<4, T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
-
635  struct { detail::_swizzle<4, T, Q, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
-
636  struct { detail::_swizzle<4, T, Q, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
-
637  struct { detail::_swizzle<4, T, Q, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
-
638  struct { detail::_swizzle<4, T, Q, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
-
639  struct { detail::_swizzle<4, T, Q, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
-
640  struct { detail::_swizzle<4, T, Q, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
-
641  struct { detail::_swizzle<4, T, Q, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
-
642  struct { detail::_swizzle<4, T, Q, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
-
643  struct { detail::_swizzle<4, T, Q, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
-
644  struct { detail::_swizzle<4, T, Q, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
-
645  struct { detail::_swizzle<4, T, Q, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
-
646  struct { detail::_swizzle<4, T, Q, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
-
647  struct { detail::_swizzle<4, T, Q, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
-
648  struct { detail::_swizzle<4, T, Q, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
-
649  struct { detail::_swizzle<4, T, Q, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
-
650  struct { detail::_swizzle<4, T, Q, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
-
651  struct { detail::_swizzle<4, T, Q, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
-
652  struct { detail::_swizzle<4, T, Q, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
-
653  struct { detail::_swizzle<4, T, Q, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
-
654  struct { detail::_swizzle<4, T, Q, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
-
655  struct { detail::_swizzle<4, T, Q, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
-
656  struct { detail::_swizzle<4, T, Q, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
-
657  struct { detail::_swizzle<4, T, Q, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
-
658  struct { detail::_swizzle<4, T, Q, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
-
659  struct { detail::_swizzle<4, T, Q, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
-
660  struct { detail::_swizzle<4, T, Q, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
-
661  struct { detail::_swizzle<4, T, Q, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
-
662  struct { detail::_swizzle<4, T, Q, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
-
663  struct { detail::_swizzle<4, T, Q, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
-
664  struct { detail::_swizzle<4, T, Q, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
-
665  struct { detail::_swizzle<4, T, Q, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
-
666  struct { detail::_swizzle<4, T, Q, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
-
667  struct { detail::_swizzle<4, T, Q, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
-
668  struct { detail::_swizzle<4, T, Q, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
-
669  struct { detail::_swizzle<4, T, Q, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
-
670  struct { detail::_swizzle<4, T, Q, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
-
671  struct { detail::_swizzle<4, T, Q, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
-
672  struct { detail::_swizzle<4, T, Q, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
-
673  struct { detail::_swizzle<4, T, Q, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
-
674  struct { detail::_swizzle<4, T, Q, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
-
675  struct { detail::_swizzle<4, T, Q, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
-
676  struct { detail::_swizzle<4, T, Q, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
-
677  struct { detail::_swizzle<4, T, Q, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
-
678  struct { detail::_swizzle<4, T, Q, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
-
679  struct { detail::_swizzle<4, T, Q, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
-
680  struct { detail::_swizzle<4, T, Q, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
-
681  struct { detail::_swizzle<4, T, Q, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
-
682  struct { detail::_swizzle<4, T, Q, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
-
683  struct { detail::_swizzle<4, T, Q, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
-
684  struct { detail::_swizzle<4, T, Q, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
-
685  struct { detail::_swizzle<4, T, Q, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
-
686  struct { detail::_swizzle<4, T, Q, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
-
687  struct { detail::_swizzle<4, T, Q, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
-
688  struct { detail::_swizzle<4, T, Q, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
-
689  struct { detail::_swizzle<4, T, Q, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
-
690  struct { detail::_swizzle<4, T, Q, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
-
691  struct { detail::_swizzle<4, T, Q, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
-
692  struct { detail::_swizzle<4, T, Q, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
-
693  struct { detail::_swizzle<4, T, Q, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
-
694  struct { detail::_swizzle<4, T, Q, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
-
695  struct { detail::_swizzle<4, T, Q, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
-
696  struct { detail::_swizzle<4, T, Q, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
-
697  struct { detail::_swizzle<4, T, Q, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
-
698  struct { detail::_swizzle<4, T, Q, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
-
699  struct { detail::_swizzle<4, T, Q, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
-
700  struct { detail::_swizzle<4, T, Q, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
-
701  struct { detail::_swizzle<4, T, Q, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
-
702  struct { detail::_swizzle<4, T, Q, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
-
703  struct { detail::_swizzle<4, T, Q, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
-
704  struct { detail::_swizzle<4, T, Q, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
-
705  struct { detail::_swizzle<4, T, Q, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
-
706  struct { detail::_swizzle<4, T, Q, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
-
707  struct { detail::_swizzle<4, T, Q, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
-
708  struct { detail::_swizzle<4, T, Q, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
-
709  struct { detail::_swizzle<4, T, Q, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
-
710  struct { detail::_swizzle<4, T, Q, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
-
711  struct { detail::_swizzle<4, T, Q, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
-
712  struct { detail::_swizzle<4, T, Q, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
-
713  struct { detail::_swizzle<4, T, Q, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
-
714  struct { detail::_swizzle<4, T, Q, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
-
715  struct { detail::_swizzle<4, T, Q, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
-
716  struct { detail::_swizzle<4, T, Q, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
-
717  struct { detail::_swizzle<4, T, Q, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
-
718  struct { detail::_swizzle<4, T, Q, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
-
719  struct { detail::_swizzle<4, T, Q, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
-
720  struct { detail::_swizzle<4, T, Q, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
-
721  struct { detail::_swizzle<4, T, Q, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
-
722  struct { detail::_swizzle<4, T, Q, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
-
723  struct { detail::_swizzle<4, T, Q, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
-
724  struct { detail::_swizzle<4, T, Q, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
-
725  struct { detail::_swizzle<4, T, Q, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
-
726  struct { detail::_swizzle<4, T, Q, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
-
727  struct { detail::_swizzle<4, T, Q, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
-
728  struct { detail::_swizzle<4, T, Q, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
-
729  struct { detail::_swizzle<4, T, Q, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
-
730  struct { detail::_swizzle<4, T, Q, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
-
731  struct { detail::_swizzle<4, T, Q, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
-
732  struct { detail::_swizzle<4, T, Q, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
-
733  struct { detail::_swizzle<4, T, Q, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
-
734  struct { detail::_swizzle<4, T, Q, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
-
735  struct { detail::_swizzle<4, T, Q, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
-
736  struct { detail::_swizzle<4, T, Q, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
-
737  struct { detail::_swizzle<4, T, Q, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
-
738  struct { detail::_swizzle<4, T, Q, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
-
739  struct { detail::_swizzle<4, T, Q, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
-
740  struct { detail::_swizzle<4, T, Q, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
-
741  struct { detail::_swizzle<4, T, Q, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
-
742  struct { detail::_swizzle<4, T, Q, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
-
743  struct { detail::_swizzle<4, T, Q, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
-
744  struct { detail::_swizzle<4, T, Q, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
-
745  struct { detail::_swizzle<4, T, Q, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
-
746  struct { detail::_swizzle<4, T, Q, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
-
747  struct { detail::_swizzle<4, T, Q, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
-
748  struct { detail::_swizzle<4, T, Q, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
-
749  struct { detail::_swizzle<4, T, Q, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
-
750  struct { detail::_swizzle<4, T, Q, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
-
751  struct { detail::_swizzle<4, T, Q, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
-
752  struct { detail::_swizzle<4, T, Q, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
-
753  struct { detail::_swizzle<4, T, Q, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
-
754  struct { detail::_swizzle<4, T, Q, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
-
755  struct { detail::_swizzle<4, T, Q, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
-
756  struct { detail::_swizzle<4, T, Q, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
-
757  struct { detail::_swizzle<4, T, Q, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
-
758  struct { detail::_swizzle<4, T, Q, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
-
759  struct { detail::_swizzle<4, T, Q, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
-
760  struct { detail::_swizzle<4, T, Q, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
-
761  struct { detail::_swizzle<4, T, Q, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
-
762  struct { detail::_swizzle<4, T, Q, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
-
763  struct { detail::_swizzle<4, T, Q, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
-
764  struct { detail::_swizzle<4, T, Q, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
-
765  struct { detail::_swizzle<4, T, Q, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
-
766  struct { detail::_swizzle<4, T, Q, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
-
767  struct { detail::_swizzle<4, T, Q, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
-
768  struct { detail::_swizzle<4, T, Q, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
-
769  struct { detail::_swizzle<4, T, Q, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
-
770  struct { detail::_swizzle<4, T, Q, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
-
771  struct { detail::_swizzle<4, T, Q, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
-
772  struct { detail::_swizzle<4, T, Q, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
-
773  struct { detail::_swizzle<4, T, Q, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
-
774  struct { detail::_swizzle<4, T, Q, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
-
775  struct { detail::_swizzle<4, T, Q, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
-
776  struct { detail::_swizzle<4, T, Q, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
-
777  struct { detail::_swizzle<4, T, Q, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
-
778  struct { detail::_swizzle<4, T, Q, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
-
779  struct { detail::_swizzle<4, T, Q, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
-
780  struct { detail::_swizzle<4, T, Q, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
-
781  struct { detail::_swizzle<4, T, Q, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
-
782  struct { detail::_swizzle<4, T, Q, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
-
783  struct { detail::_swizzle<4, T, Q, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
-
784  struct { detail::_swizzle<4, T, Q, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
-
785  struct { detail::_swizzle<4, T, Q, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
-
786  struct { detail::_swizzle<4, T, Q, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
-
787  struct { detail::_swizzle<4, T, Q, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
-
788  struct { detail::_swizzle<4, T, Q, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
-
789  struct { detail::_swizzle<4, T, Q, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
-
790  struct { detail::_swizzle<4, T, Q, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
-
791  struct { detail::_swizzle<4, T, Q, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
-
792  struct { detail::_swizzle<4, T, Q, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
-
793  struct { detail::_swizzle<4, T, Q, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
-
794  struct { detail::_swizzle<4, T, Q, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
-
795  struct { detail::_swizzle<4, T, Q, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
-
796  struct { detail::_swizzle<4, T, Q, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
-
797  struct { detail::_swizzle<4, T, Q, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
-
798  struct { detail::_swizzle<4, T, Q, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
-
799  struct { detail::_swizzle<4, T, Q, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
-
800  struct { detail::_swizzle<4, T, Q, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
-
801  struct { detail::_swizzle<4, T, Q, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
-
802  struct { detail::_swizzle<4, T, Q, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
-
803  struct { detail::_swizzle<4, T, Q, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
-
804  struct { detail::_swizzle<4, T, Q, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
-
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Return e constant.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: _swizzle.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_swizzle.hpp
+
+
+
1 #pragma once
+
2 
+
3 namespace glm{
+
4 namespace detail
+
5 {
+
6  // Internal class for implementing swizzle operators
+
7  template<typename T, int N>
+
8  struct _swizzle_base0
+
9  {
+
10  protected:
+
11  GLM_FUNC_QUALIFIER T& elem(size_t i){ return (reinterpret_cast<T*>(_buffer))[i]; }
+
12  GLM_FUNC_QUALIFIER T const& elem(size_t i) const{ return (reinterpret_cast<const T*>(_buffer))[i]; }
+
13 
+
14  // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
+
15  // The size 1 buffer is assumed to aligned to the actual members so that the
+
16  // elem()
+
17  char _buffer[1];
+
18  };
+
19 
+
20  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, bool Aligned>
+
21  struct _swizzle_base1 : public _swizzle_base0<T, N>
+
22  {
+
23  };
+
24 
+
25  template<typename T, qualifier Q, int E0, int E1, bool Aligned>
+
26  struct _swizzle_base1<2, T, Q, E0,E1,-1,-2, Aligned> : public _swizzle_base0<T, 2>
+
27  {
+
28  GLM_FUNC_QUALIFIER vec<2, T, Q> operator ()() const { return vec<2, T, Q>(this->elem(E0), this->elem(E1)); }
+
29  };
+
30 
+
31  template<typename T, qualifier Q, int E0, int E1, int E2, bool Aligned>
+
32  struct _swizzle_base1<3, T, Q, E0,E1,E2,-1, Aligned> : public _swizzle_base0<T, 3>
+
33  {
+
34  GLM_FUNC_QUALIFIER vec<3, T, Q> operator ()() const { return vec<3, T, Q>(this->elem(E0), this->elem(E1), this->elem(E2)); }
+
35  };
+
36 
+
37  template<typename T, qualifier Q, int E0, int E1, int E2, int E3, bool Aligned>
+
38  struct _swizzle_base1<4, T, Q, E0,E1,E2,E3, Aligned> : public _swizzle_base0<T, 4>
+
39  {
+
40  GLM_FUNC_QUALIFIER vec<4, T, Q> operator ()() const { return vec<4, T, Q>(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+
41  };
+
42 
+
43  // Internal class for implementing swizzle operators
+
44  /*
+
45  Template parameters:
+
46 
+
47  T = type of scalar values (e.g. float, double)
+
48  N = number of components in the vector (e.g. 3)
+
49  E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
+
50 
+
51  DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
+
52  containing duplicate elements so that they cannot be used as r-values).
+
53  */
+
54  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int DUPLICATE_ELEMENTS>
+
55  struct _swizzle_base2 : public _swizzle_base1<N, T, Q, E0,E1,E2,E3, detail::is_aligned<Q>::value>
+
56  {
+
57  struct op_equal
+
58  {
+
59  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e = t; }
+
60  };
+
61 
+
62  struct op_minus
+
63  {
+
64  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e -= t; }
+
65  };
+
66 
+
67  struct op_plus
+
68  {
+
69  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e += t; }
+
70  };
+
71 
+
72  struct op_mul
+
73  {
+
74  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e *= t; }
+
75  };
+
76 
+
77  struct op_div
+
78  {
+
79  GLM_FUNC_QUALIFIER void operator() (T& e, T& t) const{ e /= t; }
+
80  };
+
81 
+
82  public:
+
83  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const T& t)
+
84  {
+
85  for (int i = 0; i < N; ++i)
+
86  (*this)[i] = t;
+
87  return *this;
+
88  }
+
89 
+
90  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (vec<N, T, Q> const& that)
+
91  {
+
92  _apply_op(that, op_equal());
+
93  return *this;
+
94  }
+
95 
+
96  GLM_FUNC_QUALIFIER void operator -= (vec<N, T, Q> const& that)
+
97  {
+
98  _apply_op(that, op_minus());
+
99  }
+
100 
+
101  GLM_FUNC_QUALIFIER void operator += (vec<N, T, Q> const& that)
+
102  {
+
103  _apply_op(that, op_plus());
+
104  }
+
105 
+
106  GLM_FUNC_QUALIFIER void operator *= (vec<N, T, Q> const& that)
+
107  {
+
108  _apply_op(that, op_mul());
+
109  }
+
110 
+
111  GLM_FUNC_QUALIFIER void operator /= (vec<N, T, Q> const& that)
+
112  {
+
113  _apply_op(that, op_div());
+
114  }
+
115 
+
116  GLM_FUNC_QUALIFIER T& operator[](size_t i)
+
117  {
+
118  const int offset_dst[4] = { E0, E1, E2, E3 };
+
119  return this->elem(offset_dst[i]);
+
120  }
+
121  GLM_FUNC_QUALIFIER T operator[](size_t i) const
+
122  {
+
123  const int offset_dst[4] = { E0, E1, E2, E3 };
+
124  return this->elem(offset_dst[i]);
+
125  }
+
126 
+
127  protected:
+
128  template<typename U>
+
129  GLM_FUNC_QUALIFIER void _apply_op(vec<N, T, Q> const& that, const U& op)
+
130  {
+
131  // Make a copy of the data in this == &that.
+
132  // The copier should optimize out the copy in cases where the function is
+
133  // properly inlined and the copy is not necessary.
+
134  T t[N];
+
135  for (int i = 0; i < N; ++i)
+
136  t[i] = that[i];
+
137  for (int i = 0; i < N; ++i)
+
138  op( (*this)[i], t[i] );
+
139  }
+
140  };
+
141 
+
142  // Specialization for swizzles containing duplicate elements. These cannot be modified.
+
143  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
+
144  struct _swizzle_base2<N, T, Q, E0,E1,E2,E3, 1> : public _swizzle_base1<N, T, Q, E0,E1,E2,E3, detail::is_aligned<Q>::value>
+
145  {
+
146  struct Stub {};
+
147 
+
148  GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const&) { return *this; }
+
149 
+
150  GLM_FUNC_QUALIFIER T operator[] (size_t i) const
+
151  {
+
152  const int offset_dst[4] = { E0, E1, E2, E3 };
+
153  return this->elem(offset_dst[i]);
+
154  }
+
155  };
+
156 
+
157  template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
+
158  struct _swizzle : public _swizzle_base2<N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)>
+
159  {
+
160  typedef _swizzle_base2<N, T, Q, E0, E1, E2, E3, (E0 == E1 || E0 == E2 || E0 == E3 || E1 == E2 || E1 == E3 || E2 == E3)> base_type;
+
161 
+
162  using base_type::operator=;
+
163 
+
164  GLM_FUNC_QUALIFIER operator vec<N, T, Q> () const { return (*this)(); }
+
165  };
+
166 
+
167 //
+
168 // To prevent the C++ syntax from getting entirely overwhelming, define some alias macros
+
169 //
+
170 #define GLM_SWIZZLE_TEMPLATE1 template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3>
+
171 #define GLM_SWIZZLE_TEMPLATE2 template<int N, typename T, qualifier Q, int E0, int E1, int E2, int E3, int F0, int F1, int F2, int F3>
+
172 #define GLM_SWIZZLE_TYPE1 _swizzle<N, T, Q, E0, E1, E2, E3>
+
173 #define GLM_SWIZZLE_TYPE2 _swizzle<N, T, Q, F0, F1, F2, F3>
+
174 
+
175 //
+
176 // Wrapper for a binary operator (e.g. u.yy + v.zy)
+
177 //
+
178 #define GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
+
179  GLM_SWIZZLE_TEMPLATE2 \
+
180  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b) \
+
181  { \
+
182  return a() OPERAND b(); \
+
183  } \
+
184  GLM_SWIZZLE_TEMPLATE1 \
+
185  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const vec<N, T, Q>& b) \
+
186  { \
+
187  return a() OPERAND b; \
+
188  } \
+
189  GLM_SWIZZLE_TEMPLATE1 \
+
190  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const vec<N, T, Q>& a, const GLM_SWIZZLE_TYPE1& b) \
+
191  { \
+
192  return a OPERAND b(); \
+
193  }
+
194 
+
195 //
+
196 // Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz)
+
197 //
+
198 #define GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
+
199  GLM_SWIZZLE_TEMPLATE1 \
+
200  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const GLM_SWIZZLE_TYPE1& a, const T& b) \
+
201  { \
+
202  return a() OPERAND b; \
+
203  } \
+
204  GLM_SWIZZLE_TEMPLATE1 \
+
205  GLM_FUNC_QUALIFIER vec<N, T, Q> operator OPERAND ( const T& a, const GLM_SWIZZLE_TYPE1& b) \
+
206  { \
+
207  return a OPERAND b(); \
+
208  }
+
209 
+
210 //
+
211 // Macro for wrapping a function taking one argument (e.g. abs())
+
212 //
+
213 #define GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
+
214  GLM_SWIZZLE_TEMPLATE1 \
+
215  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a) \
+
216  { \
+
217  return FUNCTION(a()); \
+
218  }
+
219 
+
220 //
+
221 // Macro for wrapping a function taking two vector arguments (e.g. dot()).
+
222 //
+
223 #define GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
+
224  GLM_SWIZZLE_TEMPLATE2 \
+
225  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b) \
+
226  { \
+
227  return FUNCTION(a(), b()); \
+
228  } \
+
229  GLM_SWIZZLE_TEMPLATE1 \
+
230  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE1& b) \
+
231  { \
+
232  return FUNCTION(a(), b()); \
+
233  } \
+
234  GLM_SWIZZLE_TEMPLATE1 \
+
235  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const typename V& b) \
+
236  { \
+
237  return FUNCTION(a(), b); \
+
238  } \
+
239  GLM_SWIZZLE_TEMPLATE1 \
+
240  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const GLM_SWIZZLE_TYPE1& b) \
+
241  { \
+
242  return FUNCTION(a, b()); \
+
243  }
+
244 
+
245 //
+
246 // Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()).
+
247 //
+
248 #define GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
+
249  GLM_SWIZZLE_TEMPLATE2 \
+
250  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE2& b, const T& c) \
+
251  { \
+
252  return FUNCTION(a(), b(), c); \
+
253  } \
+
254  GLM_SWIZZLE_TEMPLATE1 \
+
255  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const GLM_SWIZZLE_TYPE1& b, const T& c) \
+
256  { \
+
257  return FUNCTION(a(), b(), c); \
+
258  } \
+
259  GLM_SWIZZLE_TEMPLATE1 \
+
260  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
+
261  { \
+
262  return FUNCTION(a(), b, c); \
+
263  } \
+
264  GLM_SWIZZLE_TEMPLATE1 \
+
265  GLM_FUNC_QUALIFIER typename GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const GLM_SWIZZLE_TYPE1& b, const T& c) \
+
266  { \
+
267  return FUNCTION(a, b(), c); \
+
268  }
+
269 
+
270 }//namespace detail
+
271 }//namespace glm
+
272 
+
273 namespace glm
+
274 {
+
275  namespace detail
+
276  {
+
277  GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
+
278  GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
+
279  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
+
280  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
+
281  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
+
282  GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
+
283  }
+
284 
+
285  //
+
286  // Swizzles are distinct types from the unswizzled type. The below macros will
+
287  // provide template specializations for the swizzle types for the given functions
+
288  // so that the compiler does not have any ambiguity to choosing how to handle
+
289  // the function.
+
290  //
+
291  // The alternative is to use the operator()() when calling the function in order
+
292  // to explicitly convert the swizzled type to the unswizzled type.
+
293  //
+
294 
+
295  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
+
296  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
+
297  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
+
298  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
+
299  //GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
+
300 
+
301  //GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
+
302  //GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
+
303  //GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
+
304  //GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
+
305 }
+
306 
+
307 #define GLM_SWIZZLE2_2_MEMBERS(T, Q, E0,E1) \
+
308  struct { detail::_swizzle<2, T, Q, 0,0,-1,-2> E0 ## E0; }; \
+
309  struct { detail::_swizzle<2, T, Q, 0,1,-1,-2> E0 ## E1; }; \
+
310  struct { detail::_swizzle<2, T, Q, 1,0,-1,-2> E1 ## E0; }; \
+
311  struct { detail::_swizzle<2, T, Q, 1,1,-1,-2> E1 ## E1; };
+
312 
+
313 #define GLM_SWIZZLE2_3_MEMBERS(T, Q, E0,E1) \
+
314  struct { detail::_swizzle<3,T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
315  struct { detail::_swizzle<3,T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
316  struct { detail::_swizzle<3,T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
317  struct { detail::_swizzle<3,T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
318  struct { detail::_swizzle<3,T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
319  struct { detail::_swizzle<3,T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
320  struct { detail::_swizzle<3,T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
321  struct { detail::_swizzle<3,T, Q, 1,1,1,-1> E1 ## E1 ## E1; };
+
322 
+
323 #define GLM_SWIZZLE2_4_MEMBERS(T, Q, E0,E1) \
+
324  struct { detail::_swizzle<4,T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
325  struct { detail::_swizzle<4,T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
326  struct { detail::_swizzle<4,T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
327  struct { detail::_swizzle<4,T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
328  struct { detail::_swizzle<4,T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
329  struct { detail::_swizzle<4,T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
330  struct { detail::_swizzle<4,T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
331  struct { detail::_swizzle<4,T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
332  struct { detail::_swizzle<4,T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
333  struct { detail::_swizzle<4,T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
334  struct { detail::_swizzle<4,T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
335  struct { detail::_swizzle<4,T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
336  struct { detail::_swizzle<4,T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
337  struct { detail::_swizzle<4,T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
338  struct { detail::_swizzle<4,T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
339  struct { detail::_swizzle<4,T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; };
+
340 
+
341 #define GLM_SWIZZLE3_2_MEMBERS(T, Q, E0,E1,E2) \
+
342  struct { detail::_swizzle<2,T, Q, 0,0,-1,-2> E0 ## E0; }; \
+
343  struct { detail::_swizzle<2,T, Q, 0,1,-1,-2> E0 ## E1; }; \
+
344  struct { detail::_swizzle<2,T, Q, 0,2,-1,-2> E0 ## E2; }; \
+
345  struct { detail::_swizzle<2,T, Q, 1,0,-1,-2> E1 ## E0; }; \
+
346  struct { detail::_swizzle<2,T, Q, 1,1,-1,-2> E1 ## E1; }; \
+
347  struct { detail::_swizzle<2,T, Q, 1,2,-1,-2> E1 ## E2; }; \
+
348  struct { detail::_swizzle<2,T, Q, 2,0,-1,-2> E2 ## E0; }; \
+
349  struct { detail::_swizzle<2,T, Q, 2,1,-1,-2> E2 ## E1; }; \
+
350  struct { detail::_swizzle<2,T, Q, 2,2,-1,-2> E2 ## E2; };
+
351 
+
352 #define GLM_SWIZZLE3_3_MEMBERS(T, Q ,E0,E1,E2) \
+
353  struct { detail::_swizzle<3, T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
354  struct { detail::_swizzle<3, T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
355  struct { detail::_swizzle<3, T, Q, 0,0,2,-1> E0 ## E0 ## E2; }; \
+
356  struct { detail::_swizzle<3, T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
357  struct { detail::_swizzle<3, T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
358  struct { detail::_swizzle<3, T, Q, 0,1,2,-1> E0 ## E1 ## E2; }; \
+
359  struct { detail::_swizzle<3, T, Q, 0,2,0,-1> E0 ## E2 ## E0; }; \
+
360  struct { detail::_swizzle<3, T, Q, 0,2,1,-1> E0 ## E2 ## E1; }; \
+
361  struct { detail::_swizzle<3, T, Q, 0,2,2,-1> E0 ## E2 ## E2; }; \
+
362  struct { detail::_swizzle<3, T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
363  struct { detail::_swizzle<3, T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
364  struct { detail::_swizzle<3, T, Q, 1,0,2,-1> E1 ## E0 ## E2; }; \
+
365  struct { detail::_swizzle<3, T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
366  struct { detail::_swizzle<3, T, Q, 1,1,1,-1> E1 ## E1 ## E1; }; \
+
367  struct { detail::_swizzle<3, T, Q, 1,1,2,-1> E1 ## E1 ## E2; }; \
+
368  struct { detail::_swizzle<3, T, Q, 1,2,0,-1> E1 ## E2 ## E0; }; \
+
369  struct { detail::_swizzle<3, T, Q, 1,2,1,-1> E1 ## E2 ## E1; }; \
+
370  struct { detail::_swizzle<3, T, Q, 1,2,2,-1> E1 ## E2 ## E2; }; \
+
371  struct { detail::_swizzle<3, T, Q, 2,0,0,-1> E2 ## E0 ## E0; }; \
+
372  struct { detail::_swizzle<3, T, Q, 2,0,1,-1> E2 ## E0 ## E1; }; \
+
373  struct { detail::_swizzle<3, T, Q, 2,0,2,-1> E2 ## E0 ## E2; }; \
+
374  struct { detail::_swizzle<3, T, Q, 2,1,0,-1> E2 ## E1 ## E0; }; \
+
375  struct { detail::_swizzle<3, T, Q, 2,1,1,-1> E2 ## E1 ## E1; }; \
+
376  struct { detail::_swizzle<3, T, Q, 2,1,2,-1> E2 ## E1 ## E2; }; \
+
377  struct { detail::_swizzle<3, T, Q, 2,2,0,-1> E2 ## E2 ## E0; }; \
+
378  struct { detail::_swizzle<3, T, Q, 2,2,1,-1> E2 ## E2 ## E1; }; \
+
379  struct { detail::_swizzle<3, T, Q, 2,2,2,-1> E2 ## E2 ## E2; };
+
380 
+
381 #define GLM_SWIZZLE3_4_MEMBERS(T, Q, E0,E1,E2) \
+
382  struct { detail::_swizzle<4,T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
383  struct { detail::_swizzle<4,T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
384  struct { detail::_swizzle<4,T, Q, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+
385  struct { detail::_swizzle<4,T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
386  struct { detail::_swizzle<4,T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
387  struct { detail::_swizzle<4,T, Q, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+
388  struct { detail::_swizzle<4,T, Q, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+
389  struct { detail::_swizzle<4,T, Q, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+
390  struct { detail::_swizzle<4,T, Q, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+
391  struct { detail::_swizzle<4,T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
392  struct { detail::_swizzle<4,T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
393  struct { detail::_swizzle<4,T, Q, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+
394  struct { detail::_swizzle<4,T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
395  struct { detail::_swizzle<4,T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
396  struct { detail::_swizzle<4,T, Q, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+
397  struct { detail::_swizzle<4,T, Q, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+
398  struct { detail::_swizzle<4,T, Q, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+
399  struct { detail::_swizzle<4,T, Q, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+
400  struct { detail::_swizzle<4,T, Q, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+
401  struct { detail::_swizzle<4,T, Q, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+
402  struct { detail::_swizzle<4,T, Q, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+
403  struct { detail::_swizzle<4,T, Q, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+
404  struct { detail::_swizzle<4,T, Q, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+
405  struct { detail::_swizzle<4,T, Q, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+
406  struct { detail::_swizzle<4,T, Q, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+
407  struct { detail::_swizzle<4,T, Q, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+
408  struct { detail::_swizzle<4,T, Q, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+
409  struct { detail::_swizzle<4,T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
410  struct { detail::_swizzle<4,T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
411  struct { detail::_swizzle<4,T, Q, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+
412  struct { detail::_swizzle<4,T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
413  struct { detail::_swizzle<4,T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
414  struct { detail::_swizzle<4,T, Q, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+
415  struct { detail::_swizzle<4,T, Q, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+
416  struct { detail::_swizzle<4,T, Q, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+
417  struct { detail::_swizzle<4,T, Q, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+
418  struct { detail::_swizzle<4,T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
419  struct { detail::_swizzle<4,T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
420  struct { detail::_swizzle<4,T, Q, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+
421  struct { detail::_swizzle<4,T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
422  struct { detail::_swizzle<4,T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+
423  struct { detail::_swizzle<4,T, Q, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+
424  struct { detail::_swizzle<4,T, Q, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+
425  struct { detail::_swizzle<4,T, Q, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+
426  struct { detail::_swizzle<4,T, Q, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+
427  struct { detail::_swizzle<4,T, Q, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+
428  struct { detail::_swizzle<4,T, Q, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+
429  struct { detail::_swizzle<4,T, Q, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+
430  struct { detail::_swizzle<4,T, Q, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+
431  struct { detail::_swizzle<4,T, Q, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+
432  struct { detail::_swizzle<4,T, Q, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+
433  struct { detail::_swizzle<4,T, Q, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+
434  struct { detail::_swizzle<4,T, Q, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+
435  struct { detail::_swizzle<4,T, Q, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+
436  struct { detail::_swizzle<4,T, Q, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+
437  struct { detail::_swizzle<4,T, Q, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+
438  struct { detail::_swizzle<4,T, Q, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+
439  struct { detail::_swizzle<4,T, Q, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+
440  struct { detail::_swizzle<4,T, Q, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+
441  struct { detail::_swizzle<4,T, Q, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+
442  struct { detail::_swizzle<4,T, Q, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+
443  struct { detail::_swizzle<4,T, Q, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+
444  struct { detail::_swizzle<4,T, Q, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+
445  struct { detail::_swizzle<4,T, Q, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+
446  struct { detail::_swizzle<4,T, Q, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+
447  struct { detail::_swizzle<4,T, Q, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+
448  struct { detail::_swizzle<4,T, Q, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+
449  struct { detail::_swizzle<4,T, Q, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+
450  struct { detail::_swizzle<4,T, Q, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+
451  struct { detail::_swizzle<4,T, Q, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+
452  struct { detail::_swizzle<4,T, Q, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+
453  struct { detail::_swizzle<4,T, Q, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+
454  struct { detail::_swizzle<4,T, Q, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+
455  struct { detail::_swizzle<4,T, Q, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+
456  struct { detail::_swizzle<4,T, Q, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+
457  struct { detail::_swizzle<4,T, Q, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+
458  struct { detail::_swizzle<4,T, Q, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+
459  struct { detail::_swizzle<4,T, Q, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+
460  struct { detail::_swizzle<4,T, Q, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+
461  struct { detail::_swizzle<4,T, Q, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+
462  struct { detail::_swizzle<4,T, Q, 2,2,2,2> E2 ## E2 ## E2 ## E2; };
+
463 
+
464 #define GLM_SWIZZLE4_2_MEMBERS(T, Q, E0,E1,E2,E3) \
+
465  struct { detail::_swizzle<2,T, Q, 0,0,-1,-2> E0 ## E0; }; \
+
466  struct { detail::_swizzle<2,T, Q, 0,1,-1,-2> E0 ## E1; }; \
+
467  struct { detail::_swizzle<2,T, Q, 0,2,-1,-2> E0 ## E2; }; \
+
468  struct { detail::_swizzle<2,T, Q, 0,3,-1,-2> E0 ## E3; }; \
+
469  struct { detail::_swizzle<2,T, Q, 1,0,-1,-2> E1 ## E0; }; \
+
470  struct { detail::_swizzle<2,T, Q, 1,1,-1,-2> E1 ## E1; }; \
+
471  struct { detail::_swizzle<2,T, Q, 1,2,-1,-2> E1 ## E2; }; \
+
472  struct { detail::_swizzle<2,T, Q, 1,3,-1,-2> E1 ## E3; }; \
+
473  struct { detail::_swizzle<2,T, Q, 2,0,-1,-2> E2 ## E0; }; \
+
474  struct { detail::_swizzle<2,T, Q, 2,1,-1,-2> E2 ## E1; }; \
+
475  struct { detail::_swizzle<2,T, Q, 2,2,-1,-2> E2 ## E2; }; \
+
476  struct { detail::_swizzle<2,T, Q, 2,3,-1,-2> E2 ## E3; }; \
+
477  struct { detail::_swizzle<2,T, Q, 3,0,-1,-2> E3 ## E0; }; \
+
478  struct { detail::_swizzle<2,T, Q, 3,1,-1,-2> E3 ## E1; }; \
+
479  struct { detail::_swizzle<2,T, Q, 3,2,-1,-2> E3 ## E2; }; \
+
480  struct { detail::_swizzle<2,T, Q, 3,3,-1,-2> E3 ## E3; };
+
481 
+
482 #define GLM_SWIZZLE4_3_MEMBERS(T, Q, E0,E1,E2,E3) \
+
483  struct { detail::_swizzle<3, T, Q, 0,0,0,-1> E0 ## E0 ## E0; }; \
+
484  struct { detail::_swizzle<3, T, Q, 0,0,1,-1> E0 ## E0 ## E1; }; \
+
485  struct { detail::_swizzle<3, T, Q, 0,0,2,-1> E0 ## E0 ## E2; }; \
+
486  struct { detail::_swizzle<3, T, Q, 0,0,3,-1> E0 ## E0 ## E3; }; \
+
487  struct { detail::_swizzle<3, T, Q, 0,1,0,-1> E0 ## E1 ## E0; }; \
+
488  struct { detail::_swizzle<3, T, Q, 0,1,1,-1> E0 ## E1 ## E1; }; \
+
489  struct { detail::_swizzle<3, T, Q, 0,1,2,-1> E0 ## E1 ## E2; }; \
+
490  struct { detail::_swizzle<3, T, Q, 0,1,3,-1> E0 ## E1 ## E3; }; \
+
491  struct { detail::_swizzle<3, T, Q, 0,2,0,-1> E0 ## E2 ## E0; }; \
+
492  struct { detail::_swizzle<3, T, Q, 0,2,1,-1> E0 ## E2 ## E1; }; \
+
493  struct { detail::_swizzle<3, T, Q, 0,2,2,-1> E0 ## E2 ## E2; }; \
+
494  struct { detail::_swizzle<3, T, Q, 0,2,3,-1> E0 ## E2 ## E3; }; \
+
495  struct { detail::_swizzle<3, T, Q, 0,3,0,-1> E0 ## E3 ## E0; }; \
+
496  struct { detail::_swizzle<3, T, Q, 0,3,1,-1> E0 ## E3 ## E1; }; \
+
497  struct { detail::_swizzle<3, T, Q, 0,3,2,-1> E0 ## E3 ## E2; }; \
+
498  struct { detail::_swizzle<3, T, Q, 0,3,3,-1> E0 ## E3 ## E3; }; \
+
499  struct { detail::_swizzle<3, T, Q, 1,0,0,-1> E1 ## E0 ## E0; }; \
+
500  struct { detail::_swizzle<3, T, Q, 1,0,1,-1> E1 ## E0 ## E1; }; \
+
501  struct { detail::_swizzle<3, T, Q, 1,0,2,-1> E1 ## E0 ## E2; }; \
+
502  struct { detail::_swizzle<3, T, Q, 1,0,3,-1> E1 ## E0 ## E3; }; \
+
503  struct { detail::_swizzle<3, T, Q, 1,1,0,-1> E1 ## E1 ## E0; }; \
+
504  struct { detail::_swizzle<3, T, Q, 1,1,1,-1> E1 ## E1 ## E1; }; \
+
505  struct { detail::_swizzle<3, T, Q, 1,1,2,-1> E1 ## E1 ## E2; }; \
+
506  struct { detail::_swizzle<3, T, Q, 1,1,3,-1> E1 ## E1 ## E3; }; \
+
507  struct { detail::_swizzle<3, T, Q, 1,2,0,-1> E1 ## E2 ## E0; }; \
+
508  struct { detail::_swizzle<3, T, Q, 1,2,1,-1> E1 ## E2 ## E1; }; \
+
509  struct { detail::_swizzle<3, T, Q, 1,2,2,-1> E1 ## E2 ## E2; }; \
+
510  struct { detail::_swizzle<3, T, Q, 1,2,3,-1> E1 ## E2 ## E3; }; \
+
511  struct { detail::_swizzle<3, T, Q, 1,3,0,-1> E1 ## E3 ## E0; }; \
+
512  struct { detail::_swizzle<3, T, Q, 1,3,1,-1> E1 ## E3 ## E1; }; \
+
513  struct { detail::_swizzle<3, T, Q, 1,3,2,-1> E1 ## E3 ## E2; }; \
+
514  struct { detail::_swizzle<3, T, Q, 1,3,3,-1> E1 ## E3 ## E3; }; \
+
515  struct { detail::_swizzle<3, T, Q, 2,0,0,-1> E2 ## E0 ## E0; }; \
+
516  struct { detail::_swizzle<3, T, Q, 2,0,1,-1> E2 ## E0 ## E1; }; \
+
517  struct { detail::_swizzle<3, T, Q, 2,0,2,-1> E2 ## E0 ## E2; }; \
+
518  struct { detail::_swizzle<3, T, Q, 2,0,3,-1> E2 ## E0 ## E3; }; \
+
519  struct { detail::_swizzle<3, T, Q, 2,1,0,-1> E2 ## E1 ## E0; }; \
+
520  struct { detail::_swizzle<3, T, Q, 2,1,1,-1> E2 ## E1 ## E1; }; \
+
521  struct { detail::_swizzle<3, T, Q, 2,1,2,-1> E2 ## E1 ## E2; }; \
+
522  struct { detail::_swizzle<3, T, Q, 2,1,3,-1> E2 ## E1 ## E3; }; \
+
523  struct { detail::_swizzle<3, T, Q, 2,2,0,-1> E2 ## E2 ## E0; }; \
+
524  struct { detail::_swizzle<3, T, Q, 2,2,1,-1> E2 ## E2 ## E1; }; \
+
525  struct { detail::_swizzle<3, T, Q, 2,2,2,-1> E2 ## E2 ## E2; }; \
+
526  struct { detail::_swizzle<3, T, Q, 2,2,3,-1> E2 ## E2 ## E3; }; \
+
527  struct { detail::_swizzle<3, T, Q, 2,3,0,-1> E2 ## E3 ## E0; }; \
+
528  struct { detail::_swizzle<3, T, Q, 2,3,1,-1> E2 ## E3 ## E1; }; \
+
529  struct { detail::_swizzle<3, T, Q, 2,3,2,-1> E2 ## E3 ## E2; }; \
+
530  struct { detail::_swizzle<3, T, Q, 2,3,3,-1> E2 ## E3 ## E3; }; \
+
531  struct { detail::_swizzle<3, T, Q, 3,0,0,-1> E3 ## E0 ## E0; }; \
+
532  struct { detail::_swizzle<3, T, Q, 3,0,1,-1> E3 ## E0 ## E1; }; \
+
533  struct { detail::_swizzle<3, T, Q, 3,0,2,-1> E3 ## E0 ## E2; }; \
+
534  struct { detail::_swizzle<3, T, Q, 3,0,3,-1> E3 ## E0 ## E3; }; \
+
535  struct { detail::_swizzle<3, T, Q, 3,1,0,-1> E3 ## E1 ## E0; }; \
+
536  struct { detail::_swizzle<3, T, Q, 3,1,1,-1> E3 ## E1 ## E1; }; \
+
537  struct { detail::_swizzle<3, T, Q, 3,1,2,-1> E3 ## E1 ## E2; }; \
+
538  struct { detail::_swizzle<3, T, Q, 3,1,3,-1> E3 ## E1 ## E3; }; \
+
539  struct { detail::_swizzle<3, T, Q, 3,2,0,-1> E3 ## E2 ## E0; }; \
+
540  struct { detail::_swizzle<3, T, Q, 3,2,1,-1> E3 ## E2 ## E1; }; \
+
541  struct { detail::_swizzle<3, T, Q, 3,2,2,-1> E3 ## E2 ## E2; }; \
+
542  struct { detail::_swizzle<3, T, Q, 3,2,3,-1> E3 ## E2 ## E3; }; \
+
543  struct { detail::_swizzle<3, T, Q, 3,3,0,-1> E3 ## E3 ## E0; }; \
+
544  struct { detail::_swizzle<3, T, Q, 3,3,1,-1> E3 ## E3 ## E1; }; \
+
545  struct { detail::_swizzle<3, T, Q, 3,3,2,-1> E3 ## E3 ## E2; }; \
+
546  struct { detail::_swizzle<3, T, Q, 3,3,3,-1> E3 ## E3 ## E3; };
+
547 
+
548 #define GLM_SWIZZLE4_4_MEMBERS(T, Q, E0,E1,E2,E3) \
+
549  struct { detail::_swizzle<4, T, Q, 0,0,0,0> E0 ## E0 ## E0 ## E0; }; \
+
550  struct { detail::_swizzle<4, T, Q, 0,0,0,1> E0 ## E0 ## E0 ## E1; }; \
+
551  struct { detail::_swizzle<4, T, Q, 0,0,0,2> E0 ## E0 ## E0 ## E2; }; \
+
552  struct { detail::_swizzle<4, T, Q, 0,0,0,3> E0 ## E0 ## E0 ## E3; }; \
+
553  struct { detail::_swizzle<4, T, Q, 0,0,1,0> E0 ## E0 ## E1 ## E0; }; \
+
554  struct { detail::_swizzle<4, T, Q, 0,0,1,1> E0 ## E0 ## E1 ## E1; }; \
+
555  struct { detail::_swizzle<4, T, Q, 0,0,1,2> E0 ## E0 ## E1 ## E2; }; \
+
556  struct { detail::_swizzle<4, T, Q, 0,0,1,3> E0 ## E0 ## E1 ## E3; }; \
+
557  struct { detail::_swizzle<4, T, Q, 0,0,2,0> E0 ## E0 ## E2 ## E0; }; \
+
558  struct { detail::_swizzle<4, T, Q, 0,0,2,1> E0 ## E0 ## E2 ## E1; }; \
+
559  struct { detail::_swizzle<4, T, Q, 0,0,2,2> E0 ## E0 ## E2 ## E2; }; \
+
560  struct { detail::_swizzle<4, T, Q, 0,0,2,3> E0 ## E0 ## E2 ## E3; }; \
+
561  struct { detail::_swizzle<4, T, Q, 0,0,3,0> E0 ## E0 ## E3 ## E0; }; \
+
562  struct { detail::_swizzle<4, T, Q, 0,0,3,1> E0 ## E0 ## E3 ## E1; }; \
+
563  struct { detail::_swizzle<4, T, Q, 0,0,3,2> E0 ## E0 ## E3 ## E2; }; \
+
564  struct { detail::_swizzle<4, T, Q, 0,0,3,3> E0 ## E0 ## E3 ## E3; }; \
+
565  struct { detail::_swizzle<4, T, Q, 0,1,0,0> E0 ## E1 ## E0 ## E0; }; \
+
566  struct { detail::_swizzle<4, T, Q, 0,1,0,1> E0 ## E1 ## E0 ## E1; }; \
+
567  struct { detail::_swizzle<4, T, Q, 0,1,0,2> E0 ## E1 ## E0 ## E2; }; \
+
568  struct { detail::_swizzle<4, T, Q, 0,1,0,3> E0 ## E1 ## E0 ## E3; }; \
+
569  struct { detail::_swizzle<4, T, Q, 0,1,1,0> E0 ## E1 ## E1 ## E0; }; \
+
570  struct { detail::_swizzle<4, T, Q, 0,1,1,1> E0 ## E1 ## E1 ## E1; }; \
+
571  struct { detail::_swizzle<4, T, Q, 0,1,1,2> E0 ## E1 ## E1 ## E2; }; \
+
572  struct { detail::_swizzle<4, T, Q, 0,1,1,3> E0 ## E1 ## E1 ## E3; }; \
+
573  struct { detail::_swizzle<4, T, Q, 0,1,2,0> E0 ## E1 ## E2 ## E0; }; \
+
574  struct { detail::_swizzle<4, T, Q, 0,1,2,1> E0 ## E1 ## E2 ## E1; }; \
+
575  struct { detail::_swizzle<4, T, Q, 0,1,2,2> E0 ## E1 ## E2 ## E2; }; \
+
576  struct { detail::_swizzle<4, T, Q, 0,1,2,3> E0 ## E1 ## E2 ## E3; }; \
+
577  struct { detail::_swizzle<4, T, Q, 0,1,3,0> E0 ## E1 ## E3 ## E0; }; \
+
578  struct { detail::_swizzle<4, T, Q, 0,1,3,1> E0 ## E1 ## E3 ## E1; }; \
+
579  struct { detail::_swizzle<4, T, Q, 0,1,3,2> E0 ## E1 ## E3 ## E2; }; \
+
580  struct { detail::_swizzle<4, T, Q, 0,1,3,3> E0 ## E1 ## E3 ## E3; }; \
+
581  struct { detail::_swizzle<4, T, Q, 0,2,0,0> E0 ## E2 ## E0 ## E0; }; \
+
582  struct { detail::_swizzle<4, T, Q, 0,2,0,1> E0 ## E2 ## E0 ## E1; }; \
+
583  struct { detail::_swizzle<4, T, Q, 0,2,0,2> E0 ## E2 ## E0 ## E2; }; \
+
584  struct { detail::_swizzle<4, T, Q, 0,2,0,3> E0 ## E2 ## E0 ## E3; }; \
+
585  struct { detail::_swizzle<4, T, Q, 0,2,1,0> E0 ## E2 ## E1 ## E0; }; \
+
586  struct { detail::_swizzle<4, T, Q, 0,2,1,1> E0 ## E2 ## E1 ## E1; }; \
+
587  struct { detail::_swizzle<4, T, Q, 0,2,1,2> E0 ## E2 ## E1 ## E2; }; \
+
588  struct { detail::_swizzle<4, T, Q, 0,2,1,3> E0 ## E2 ## E1 ## E3; }; \
+
589  struct { detail::_swizzle<4, T, Q, 0,2,2,0> E0 ## E2 ## E2 ## E0; }; \
+
590  struct { detail::_swizzle<4, T, Q, 0,2,2,1> E0 ## E2 ## E2 ## E1; }; \
+
591  struct { detail::_swizzle<4, T, Q, 0,2,2,2> E0 ## E2 ## E2 ## E2; }; \
+
592  struct { detail::_swizzle<4, T, Q, 0,2,2,3> E0 ## E2 ## E2 ## E3; }; \
+
593  struct { detail::_swizzle<4, T, Q, 0,2,3,0> E0 ## E2 ## E3 ## E0; }; \
+
594  struct { detail::_swizzle<4, T, Q, 0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
+
595  struct { detail::_swizzle<4, T, Q, 0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
+
596  struct { detail::_swizzle<4, T, Q, 0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
+
597  struct { detail::_swizzle<4, T, Q, 0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
+
598  struct { detail::_swizzle<4, T, Q, 0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
+
599  struct { detail::_swizzle<4, T, Q, 0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
+
600  struct { detail::_swizzle<4, T, Q, 0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
+
601  struct { detail::_swizzle<4, T, Q, 0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
+
602  struct { detail::_swizzle<4, T, Q, 0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
+
603  struct { detail::_swizzle<4, T, Q, 0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
+
604  struct { detail::_swizzle<4, T, Q, 0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
+
605  struct { detail::_swizzle<4, T, Q, 0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
+
606  struct { detail::_swizzle<4, T, Q, 0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
+
607  struct { detail::_swizzle<4, T, Q, 0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
+
608  struct { detail::_swizzle<4, T, Q, 0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
+
609  struct { detail::_swizzle<4, T, Q, 0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
+
610  struct { detail::_swizzle<4, T, Q, 0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
+
611  struct { detail::_swizzle<4, T, Q, 0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
+
612  struct { detail::_swizzle<4, T, Q, 0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
+
613  struct { detail::_swizzle<4, T, Q, 1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
+
614  struct { detail::_swizzle<4, T, Q, 1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
+
615  struct { detail::_swizzle<4, T, Q, 1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
+
616  struct { detail::_swizzle<4, T, Q, 1,0,0,3> E1 ## E0 ## E0 ## E3; }; \
+
617  struct { detail::_swizzle<4, T, Q, 1,0,1,0> E1 ## E0 ## E1 ## E0; }; \
+
618  struct { detail::_swizzle<4, T, Q, 1,0,1,1> E1 ## E0 ## E1 ## E1; }; \
+
619  struct { detail::_swizzle<4, T, Q, 1,0,1,2> E1 ## E0 ## E1 ## E2; }; \
+
620  struct { detail::_swizzle<4, T, Q, 1,0,1,3> E1 ## E0 ## E1 ## E3; }; \
+
621  struct { detail::_swizzle<4, T, Q, 1,0,2,0> E1 ## E0 ## E2 ## E0; }; \
+
622  struct { detail::_swizzle<4, T, Q, 1,0,2,1> E1 ## E0 ## E2 ## E1; }; \
+
623  struct { detail::_swizzle<4, T, Q, 1,0,2,2> E1 ## E0 ## E2 ## E2; }; \
+
624  struct { detail::_swizzle<4, T, Q, 1,0,2,3> E1 ## E0 ## E2 ## E3; }; \
+
625  struct { detail::_swizzle<4, T, Q, 1,0,3,0> E1 ## E0 ## E3 ## E0; }; \
+
626  struct { detail::_swizzle<4, T, Q, 1,0,3,1> E1 ## E0 ## E3 ## E1; }; \
+
627  struct { detail::_swizzle<4, T, Q, 1,0,3,2> E1 ## E0 ## E3 ## E2; }; \
+
628  struct { detail::_swizzle<4, T, Q, 1,0,3,3> E1 ## E0 ## E3 ## E3; }; \
+
629  struct { detail::_swizzle<4, T, Q, 1,1,0,0> E1 ## E1 ## E0 ## E0; }; \
+
630  struct { detail::_swizzle<4, T, Q, 1,1,0,1> E1 ## E1 ## E0 ## E1; }; \
+
631  struct { detail::_swizzle<4, T, Q, 1,1,0,2> E1 ## E1 ## E0 ## E2; }; \
+
632  struct { detail::_swizzle<4, T, Q, 1,1,0,3> E1 ## E1 ## E0 ## E3; }; \
+
633  struct { detail::_swizzle<4, T, Q, 1,1,1,0> E1 ## E1 ## E1 ## E0; }; \
+
634  struct { detail::_swizzle<4, T, Q, 1,1,1,1> E1 ## E1 ## E1 ## E1; }; \
+
635  struct { detail::_swizzle<4, T, Q, 1,1,1,2> E1 ## E1 ## E1 ## E2; }; \
+
636  struct { detail::_swizzle<4, T, Q, 1,1,1,3> E1 ## E1 ## E1 ## E3; }; \
+
637  struct { detail::_swizzle<4, T, Q, 1,1,2,0> E1 ## E1 ## E2 ## E0; }; \
+
638  struct { detail::_swizzle<4, T, Q, 1,1,2,1> E1 ## E1 ## E2 ## E1; }; \
+
639  struct { detail::_swizzle<4, T, Q, 1,1,2,2> E1 ## E1 ## E2 ## E2; }; \
+
640  struct { detail::_swizzle<4, T, Q, 1,1,2,3> E1 ## E1 ## E2 ## E3; }; \
+
641  struct { detail::_swizzle<4, T, Q, 1,1,3,0> E1 ## E1 ## E3 ## E0; }; \
+
642  struct { detail::_swizzle<4, T, Q, 1,1,3,1> E1 ## E1 ## E3 ## E1; }; \
+
643  struct { detail::_swizzle<4, T, Q, 1,1,3,2> E1 ## E1 ## E3 ## E2; }; \
+
644  struct { detail::_swizzle<4, T, Q, 1,1,3,3> E1 ## E1 ## E3 ## E3; }; \
+
645  struct { detail::_swizzle<4, T, Q, 1,2,0,0> E1 ## E2 ## E0 ## E0; }; \
+
646  struct { detail::_swizzle<4, T, Q, 1,2,0,1> E1 ## E2 ## E0 ## E1; }; \
+
647  struct { detail::_swizzle<4, T, Q, 1,2,0,2> E1 ## E2 ## E0 ## E2; }; \
+
648  struct { detail::_swizzle<4, T, Q, 1,2,0,3> E1 ## E2 ## E0 ## E3; }; \
+
649  struct { detail::_swizzle<4, T, Q, 1,2,1,0> E1 ## E2 ## E1 ## E0; }; \
+
650  struct { detail::_swizzle<4, T, Q, 1,2,1,1> E1 ## E2 ## E1 ## E1; }; \
+
651  struct { detail::_swizzle<4, T, Q, 1,2,1,2> E1 ## E2 ## E1 ## E2; }; \
+
652  struct { detail::_swizzle<4, T, Q, 1,2,1,3> E1 ## E2 ## E1 ## E3; }; \
+
653  struct { detail::_swizzle<4, T, Q, 1,2,2,0> E1 ## E2 ## E2 ## E0; }; \
+
654  struct { detail::_swizzle<4, T, Q, 1,2,2,1> E1 ## E2 ## E2 ## E1; }; \
+
655  struct { detail::_swizzle<4, T, Q, 1,2,2,2> E1 ## E2 ## E2 ## E2; }; \
+
656  struct { detail::_swizzle<4, T, Q, 1,2,2,3> E1 ## E2 ## E2 ## E3; }; \
+
657  struct { detail::_swizzle<4, T, Q, 1,2,3,0> E1 ## E2 ## E3 ## E0; }; \
+
658  struct { detail::_swizzle<4, T, Q, 1,2,3,1> E1 ## E2 ## E3 ## E1; }; \
+
659  struct { detail::_swizzle<4, T, Q, 1,2,3,2> E1 ## E2 ## E3 ## E2; }; \
+
660  struct { detail::_swizzle<4, T, Q, 1,2,3,3> E1 ## E2 ## E3 ## E3; }; \
+
661  struct { detail::_swizzle<4, T, Q, 1,3,0,0> E1 ## E3 ## E0 ## E0; }; \
+
662  struct { detail::_swizzle<4, T, Q, 1,3,0,1> E1 ## E3 ## E0 ## E1; }; \
+
663  struct { detail::_swizzle<4, T, Q, 1,3,0,2> E1 ## E3 ## E0 ## E2; }; \
+
664  struct { detail::_swizzle<4, T, Q, 1,3,0,3> E1 ## E3 ## E0 ## E3; }; \
+
665  struct { detail::_swizzle<4, T, Q, 1,3,1,0> E1 ## E3 ## E1 ## E0; }; \
+
666  struct { detail::_swizzle<4, T, Q, 1,3,1,1> E1 ## E3 ## E1 ## E1; }; \
+
667  struct { detail::_swizzle<4, T, Q, 1,3,1,2> E1 ## E3 ## E1 ## E2; }; \
+
668  struct { detail::_swizzle<4, T, Q, 1,3,1,3> E1 ## E3 ## E1 ## E3; }; \
+
669  struct { detail::_swizzle<4, T, Q, 1,3,2,0> E1 ## E3 ## E2 ## E0; }; \
+
670  struct { detail::_swizzle<4, T, Q, 1,3,2,1> E1 ## E3 ## E2 ## E1; }; \
+
671  struct { detail::_swizzle<4, T, Q, 1,3,2,2> E1 ## E3 ## E2 ## E2; }; \
+
672  struct { detail::_swizzle<4, T, Q, 1,3,2,3> E1 ## E3 ## E2 ## E3; }; \
+
673  struct { detail::_swizzle<4, T, Q, 1,3,3,0> E1 ## E3 ## E3 ## E0; }; \
+
674  struct { detail::_swizzle<4, T, Q, 1,3,3,1> E1 ## E3 ## E3 ## E1; }; \
+
675  struct { detail::_swizzle<4, T, Q, 1,3,3,2> E1 ## E3 ## E3 ## E2; }; \
+
676  struct { detail::_swizzle<4, T, Q, 1,3,3,3> E1 ## E3 ## E3 ## E3; }; \
+
677  struct { detail::_swizzle<4, T, Q, 2,0,0,0> E2 ## E0 ## E0 ## E0; }; \
+
678  struct { detail::_swizzle<4, T, Q, 2,0,0,1> E2 ## E0 ## E0 ## E1; }; \
+
679  struct { detail::_swizzle<4, T, Q, 2,0,0,2> E2 ## E0 ## E0 ## E2; }; \
+
680  struct { detail::_swizzle<4, T, Q, 2,0,0,3> E2 ## E0 ## E0 ## E3; }; \
+
681  struct { detail::_swizzle<4, T, Q, 2,0,1,0> E2 ## E0 ## E1 ## E0; }; \
+
682  struct { detail::_swizzle<4, T, Q, 2,0,1,1> E2 ## E0 ## E1 ## E1; }; \
+
683  struct { detail::_swizzle<4, T, Q, 2,0,1,2> E2 ## E0 ## E1 ## E2; }; \
+
684  struct { detail::_swizzle<4, T, Q, 2,0,1,3> E2 ## E0 ## E1 ## E3; }; \
+
685  struct { detail::_swizzle<4, T, Q, 2,0,2,0> E2 ## E0 ## E2 ## E0; }; \
+
686  struct { detail::_swizzle<4, T, Q, 2,0,2,1> E2 ## E0 ## E2 ## E1; }; \
+
687  struct { detail::_swizzle<4, T, Q, 2,0,2,2> E2 ## E0 ## E2 ## E2; }; \
+
688  struct { detail::_swizzle<4, T, Q, 2,0,2,3> E2 ## E0 ## E2 ## E3; }; \
+
689  struct { detail::_swizzle<4, T, Q, 2,0,3,0> E2 ## E0 ## E3 ## E0; }; \
+
690  struct { detail::_swizzle<4, T, Q, 2,0,3,1> E2 ## E0 ## E3 ## E1; }; \
+
691  struct { detail::_swizzle<4, T, Q, 2,0,3,2> E2 ## E0 ## E3 ## E2; }; \
+
692  struct { detail::_swizzle<4, T, Q, 2,0,3,3> E2 ## E0 ## E3 ## E3; }; \
+
693  struct { detail::_swizzle<4, T, Q, 2,1,0,0> E2 ## E1 ## E0 ## E0; }; \
+
694  struct { detail::_swizzle<4, T, Q, 2,1,0,1> E2 ## E1 ## E0 ## E1; }; \
+
695  struct { detail::_swizzle<4, T, Q, 2,1,0,2> E2 ## E1 ## E0 ## E2; }; \
+
696  struct { detail::_swizzle<4, T, Q, 2,1,0,3> E2 ## E1 ## E0 ## E3; }; \
+
697  struct { detail::_swizzle<4, T, Q, 2,1,1,0> E2 ## E1 ## E1 ## E0; }; \
+
698  struct { detail::_swizzle<4, T, Q, 2,1,1,1> E2 ## E1 ## E1 ## E1; }; \
+
699  struct { detail::_swizzle<4, T, Q, 2,1,1,2> E2 ## E1 ## E1 ## E2; }; \
+
700  struct { detail::_swizzle<4, T, Q, 2,1,1,3> E2 ## E1 ## E1 ## E3; }; \
+
701  struct { detail::_swizzle<4, T, Q, 2,1,2,0> E2 ## E1 ## E2 ## E0; }; \
+
702  struct { detail::_swizzle<4, T, Q, 2,1,2,1> E2 ## E1 ## E2 ## E1; }; \
+
703  struct { detail::_swizzle<4, T, Q, 2,1,2,2> E2 ## E1 ## E2 ## E2; }; \
+
704  struct { detail::_swizzle<4, T, Q, 2,1,2,3> E2 ## E1 ## E2 ## E3; }; \
+
705  struct { detail::_swizzle<4, T, Q, 2,1,3,0> E2 ## E1 ## E3 ## E0; }; \
+
706  struct { detail::_swizzle<4, T, Q, 2,1,3,1> E2 ## E1 ## E3 ## E1; }; \
+
707  struct { detail::_swizzle<4, T, Q, 2,1,3,2> E2 ## E1 ## E3 ## E2; }; \
+
708  struct { detail::_swizzle<4, T, Q, 2,1,3,3> E2 ## E1 ## E3 ## E3; }; \
+
709  struct { detail::_swizzle<4, T, Q, 2,2,0,0> E2 ## E2 ## E0 ## E0; }; \
+
710  struct { detail::_swizzle<4, T, Q, 2,2,0,1> E2 ## E2 ## E0 ## E1; }; \
+
711  struct { detail::_swizzle<4, T, Q, 2,2,0,2> E2 ## E2 ## E0 ## E2; }; \
+
712  struct { detail::_swizzle<4, T, Q, 2,2,0,3> E2 ## E2 ## E0 ## E3; }; \
+
713  struct { detail::_swizzle<4, T, Q, 2,2,1,0> E2 ## E2 ## E1 ## E0; }; \
+
714  struct { detail::_swizzle<4, T, Q, 2,2,1,1> E2 ## E2 ## E1 ## E1; }; \
+
715  struct { detail::_swizzle<4, T, Q, 2,2,1,2> E2 ## E2 ## E1 ## E2; }; \
+
716  struct { detail::_swizzle<4, T, Q, 2,2,1,3> E2 ## E2 ## E1 ## E3; }; \
+
717  struct { detail::_swizzle<4, T, Q, 2,2,2,0> E2 ## E2 ## E2 ## E0; }; \
+
718  struct { detail::_swizzle<4, T, Q, 2,2,2,1> E2 ## E2 ## E2 ## E1; }; \
+
719  struct { detail::_swizzle<4, T, Q, 2,2,2,2> E2 ## E2 ## E2 ## E2; }; \
+
720  struct { detail::_swizzle<4, T, Q, 2,2,2,3> E2 ## E2 ## E2 ## E3; }; \
+
721  struct { detail::_swizzle<4, T, Q, 2,2,3,0> E2 ## E2 ## E3 ## E0; }; \
+
722  struct { detail::_swizzle<4, T, Q, 2,2,3,1> E2 ## E2 ## E3 ## E1; }; \
+
723  struct { detail::_swizzle<4, T, Q, 2,2,3,2> E2 ## E2 ## E3 ## E2; }; \
+
724  struct { detail::_swizzle<4, T, Q, 2,2,3,3> E2 ## E2 ## E3 ## E3; }; \
+
725  struct { detail::_swizzle<4, T, Q, 2,3,0,0> E2 ## E3 ## E0 ## E0; }; \
+
726  struct { detail::_swizzle<4, T, Q, 2,3,0,1> E2 ## E3 ## E0 ## E1; }; \
+
727  struct { detail::_swizzle<4, T, Q, 2,3,0,2> E2 ## E3 ## E0 ## E2; }; \
+
728  struct { detail::_swizzle<4, T, Q, 2,3,0,3> E2 ## E3 ## E0 ## E3; }; \
+
729  struct { detail::_swizzle<4, T, Q, 2,3,1,0> E2 ## E3 ## E1 ## E0; }; \
+
730  struct { detail::_swizzle<4, T, Q, 2,3,1,1> E2 ## E3 ## E1 ## E1; }; \
+
731  struct { detail::_swizzle<4, T, Q, 2,3,1,2> E2 ## E3 ## E1 ## E2; }; \
+
732  struct { detail::_swizzle<4, T, Q, 2,3,1,3> E2 ## E3 ## E1 ## E3; }; \
+
733  struct { detail::_swizzle<4, T, Q, 2,3,2,0> E2 ## E3 ## E2 ## E0; }; \
+
734  struct { detail::_swizzle<4, T, Q, 2,3,2,1> E2 ## E3 ## E2 ## E1; }; \
+
735  struct { detail::_swizzle<4, T, Q, 2,3,2,2> E2 ## E3 ## E2 ## E2; }; \
+
736  struct { detail::_swizzle<4, T, Q, 2,3,2,3> E2 ## E3 ## E2 ## E3; }; \
+
737  struct { detail::_swizzle<4, T, Q, 2,3,3,0> E2 ## E3 ## E3 ## E0; }; \
+
738  struct { detail::_swizzle<4, T, Q, 2,3,3,1> E2 ## E3 ## E3 ## E1; }; \
+
739  struct { detail::_swizzle<4, T, Q, 2,3,3,2> E2 ## E3 ## E3 ## E2; }; \
+
740  struct { detail::_swizzle<4, T, Q, 2,3,3,3> E2 ## E3 ## E3 ## E3; }; \
+
741  struct { detail::_swizzle<4, T, Q, 3,0,0,0> E3 ## E0 ## E0 ## E0; }; \
+
742  struct { detail::_swizzle<4, T, Q, 3,0,0,1> E3 ## E0 ## E0 ## E1; }; \
+
743  struct { detail::_swizzle<4, T, Q, 3,0,0,2> E3 ## E0 ## E0 ## E2; }; \
+
744  struct { detail::_swizzle<4, T, Q, 3,0,0,3> E3 ## E0 ## E0 ## E3; }; \
+
745  struct { detail::_swizzle<4, T, Q, 3,0,1,0> E3 ## E0 ## E1 ## E0; }; \
+
746  struct { detail::_swizzle<4, T, Q, 3,0,1,1> E3 ## E0 ## E1 ## E1; }; \
+
747  struct { detail::_swizzle<4, T, Q, 3,0,1,2> E3 ## E0 ## E1 ## E2; }; \
+
748  struct { detail::_swizzle<4, T, Q, 3,0,1,3> E3 ## E0 ## E1 ## E3; }; \
+
749  struct { detail::_swizzle<4, T, Q, 3,0,2,0> E3 ## E0 ## E2 ## E0; }; \
+
750  struct { detail::_swizzle<4, T, Q, 3,0,2,1> E3 ## E0 ## E2 ## E1; }; \
+
751  struct { detail::_swizzle<4, T, Q, 3,0,2,2> E3 ## E0 ## E2 ## E2; }; \
+
752  struct { detail::_swizzle<4, T, Q, 3,0,2,3> E3 ## E0 ## E2 ## E3; }; \
+
753  struct { detail::_swizzle<4, T, Q, 3,0,3,0> E3 ## E0 ## E3 ## E0; }; \
+
754  struct { detail::_swizzle<4, T, Q, 3,0,3,1> E3 ## E0 ## E3 ## E1; }; \
+
755  struct { detail::_swizzle<4, T, Q, 3,0,3,2> E3 ## E0 ## E3 ## E2; }; \
+
756  struct { detail::_swizzle<4, T, Q, 3,0,3,3> E3 ## E0 ## E3 ## E3; }; \
+
757  struct { detail::_swizzle<4, T, Q, 3,1,0,0> E3 ## E1 ## E0 ## E0; }; \
+
758  struct { detail::_swizzle<4, T, Q, 3,1,0,1> E3 ## E1 ## E0 ## E1; }; \
+
759  struct { detail::_swizzle<4, T, Q, 3,1,0,2> E3 ## E1 ## E0 ## E2; }; \
+
760  struct { detail::_swizzle<4, T, Q, 3,1,0,3> E3 ## E1 ## E0 ## E3; }; \
+
761  struct { detail::_swizzle<4, T, Q, 3,1,1,0> E3 ## E1 ## E1 ## E0; }; \
+
762  struct { detail::_swizzle<4, T, Q, 3,1,1,1> E3 ## E1 ## E1 ## E1; }; \
+
763  struct { detail::_swizzle<4, T, Q, 3,1,1,2> E3 ## E1 ## E1 ## E2; }; \
+
764  struct { detail::_swizzle<4, T, Q, 3,1,1,3> E3 ## E1 ## E1 ## E3; }; \
+
765  struct { detail::_swizzle<4, T, Q, 3,1,2,0> E3 ## E1 ## E2 ## E0; }; \
+
766  struct { detail::_swizzle<4, T, Q, 3,1,2,1> E3 ## E1 ## E2 ## E1; }; \
+
767  struct { detail::_swizzle<4, T, Q, 3,1,2,2> E3 ## E1 ## E2 ## E2; }; \
+
768  struct { detail::_swizzle<4, T, Q, 3,1,2,3> E3 ## E1 ## E2 ## E3; }; \
+
769  struct { detail::_swizzle<4, T, Q, 3,1,3,0> E3 ## E1 ## E3 ## E0; }; \
+
770  struct { detail::_swizzle<4, T, Q, 3,1,3,1> E3 ## E1 ## E3 ## E1; }; \
+
771  struct { detail::_swizzle<4, T, Q, 3,1,3,2> E3 ## E1 ## E3 ## E2; }; \
+
772  struct { detail::_swizzle<4, T, Q, 3,1,3,3> E3 ## E1 ## E3 ## E3; }; \
+
773  struct { detail::_swizzle<4, T, Q, 3,2,0,0> E3 ## E2 ## E0 ## E0; }; \
+
774  struct { detail::_swizzle<4, T, Q, 3,2,0,1> E3 ## E2 ## E0 ## E1; }; \
+
775  struct { detail::_swizzle<4, T, Q, 3,2,0,2> E3 ## E2 ## E0 ## E2; }; \
+
776  struct { detail::_swizzle<4, T, Q, 3,2,0,3> E3 ## E2 ## E0 ## E3; }; \
+
777  struct { detail::_swizzle<4, T, Q, 3,2,1,0> E3 ## E2 ## E1 ## E0; }; \
+
778  struct { detail::_swizzle<4, T, Q, 3,2,1,1> E3 ## E2 ## E1 ## E1; }; \
+
779  struct { detail::_swizzle<4, T, Q, 3,2,1,2> E3 ## E2 ## E1 ## E2; }; \
+
780  struct { detail::_swizzle<4, T, Q, 3,2,1,3> E3 ## E2 ## E1 ## E3; }; \
+
781  struct { detail::_swizzle<4, T, Q, 3,2,2,0> E3 ## E2 ## E2 ## E0; }; \
+
782  struct { detail::_swizzle<4, T, Q, 3,2,2,1> E3 ## E2 ## E2 ## E1; }; \
+
783  struct { detail::_swizzle<4, T, Q, 3,2,2,2> E3 ## E2 ## E2 ## E2; }; \
+
784  struct { detail::_swizzle<4, T, Q, 3,2,2,3> E3 ## E2 ## E2 ## E3; }; \
+
785  struct { detail::_swizzle<4, T, Q, 3,2,3,0> E3 ## E2 ## E3 ## E0; }; \
+
786  struct { detail::_swizzle<4, T, Q, 3,2,3,1> E3 ## E2 ## E3 ## E1; }; \
+
787  struct { detail::_swizzle<4, T, Q, 3,2,3,2> E3 ## E2 ## E3 ## E2; }; \
+
788  struct { detail::_swizzle<4, T, Q, 3,2,3,3> E3 ## E2 ## E3 ## E3; }; \
+
789  struct { detail::_swizzle<4, T, Q, 3,3,0,0> E3 ## E3 ## E0 ## E0; }; \
+
790  struct { detail::_swizzle<4, T, Q, 3,3,0,1> E3 ## E3 ## E0 ## E1; }; \
+
791  struct { detail::_swizzle<4, T, Q, 3,3,0,2> E3 ## E3 ## E0 ## E2; }; \
+
792  struct { detail::_swizzle<4, T, Q, 3,3,0,3> E3 ## E3 ## E0 ## E3; }; \
+
793  struct { detail::_swizzle<4, T, Q, 3,3,1,0> E3 ## E3 ## E1 ## E0; }; \
+
794  struct { detail::_swizzle<4, T, Q, 3,3,1,1> E3 ## E3 ## E1 ## E1; }; \
+
795  struct { detail::_swizzle<4, T, Q, 3,3,1,2> E3 ## E3 ## E1 ## E2; }; \
+
796  struct { detail::_swizzle<4, T, Q, 3,3,1,3> E3 ## E3 ## E1 ## E3; }; \
+
797  struct { detail::_swizzle<4, T, Q, 3,3,2,0> E3 ## E3 ## E2 ## E0; }; \
+
798  struct { detail::_swizzle<4, T, Q, 3,3,2,1> E3 ## E3 ## E2 ## E1; }; \
+
799  struct { detail::_swizzle<4, T, Q, 3,3,2,2> E3 ## E3 ## E2 ## E2; }; \
+
800  struct { detail::_swizzle<4, T, Q, 3,3,2,3> E3 ## E3 ## E2 ## E3; }; \
+
801  struct { detail::_swizzle<4, T, Q, 3,3,3,0> E3 ## E3 ## E3 ## E0; }; \
+
802  struct { detail::_swizzle<4, T, Q, 3,3,3,1> E3 ## E3 ## E3 ## E1; }; \
+
803  struct { detail::_swizzle<4, T, Q, 3,3,3,2> E3 ## E3 ## E3 ## E2; }; \
+
804  struct { detail::_swizzle<4, T, Q, 3,3,3,3> E3 ## E3 ## E3 ## E3; };
+
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Return e constant.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00005_source.html b/external/include/glm-0.9.9.8/doc/api/a00005_source.html index b07f0b608f..5ef1455ec2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00005_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00005_source.html @@ -1,781 +1,781 @@ - - - - - - -0.9.9 API documentation: _swizzle_func.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_swizzle_func.hpp
-
-
-
1 #pragma once
-
2 
-
3 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, CONST, A, B) \
-
4  vec<2, T, Q> A ## B() CONST \
-
5  { \
-
6  return vec<2, T, Q>(this->A, this->B); \
-
7  }
-
8 
-
9 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, CONST, A, B, C) \
-
10  vec<3, T, Q> A ## B ## C() CONST \
-
11  { \
-
12  return vec<3, T, Q>(this->A, this->B, this->C); \
-
13  }
-
14 
-
15 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, CONST, A, B, C, D) \
-
16  vec<4, T, Q> A ## B ## C ## D() CONST \
-
17  { \
-
18  return vec<4, T, Q>(this->A, this->B, this->C, this->D); \
-
19  }
-
20 
-
21 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(T, P, L, CONST, A, B) \
-
22  template<typename T> \
-
23  vec<L, T, Q> vec<L, T, Q>::A ## B() CONST \
-
24  { \
-
25  return vec<2, T, Q>(this->A, this->B); \
-
26  }
-
27 
-
28 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(T, P, L, CONST, A, B, C) \
-
29  template<typename T> \
-
30  vec<3, T, Q> vec<L, T, Q>::A ## B ## C() CONST \
-
31  { \
-
32  return vec<3, T, Q>(this->A, this->B, this->C); \
-
33  }
-
34 
-
35 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(T, P, L, CONST, A, B, C, D) \
-
36  template<typename T> \
-
37  vec<4, T, Q> vec<L, T, Q>::A ## B ## C ## D() CONST \
-
38  { \
-
39  return vec<4, T, Q>(this->A, this->B, this->C, this->D); \
-
40  }
-
41 
-
42 #define GLM_MUTABLE
-
43 
-
44 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
45  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, A, B) \
-
46  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, B, A)
-
47 
-
48 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(T, P) \
-
49  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, x, y) \
-
50  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, r, g) \
-
51  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, s, t)
-
52 
-
53 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
54  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
-
55  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
-
56  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
-
57  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
-
58  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
-
59  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B)
-
60 
-
61 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
62  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, B, C) \
-
63  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, C, B) \
-
64  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, A, C) \
-
65  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, C, A) \
-
66  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, A, B) \
-
67  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, B, A)
-
68 
-
69 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, A, B, C) \
-
70  GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
71  GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C)
-
72 
-
73 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P) \
-
74  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, x, y, z) \
-
75  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, r, g, b) \
-
76  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, s, t, p)
-
77 
-
78 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
79  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
-
80  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
-
81  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, D) \
-
82  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
-
83  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
-
84  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, D) \
-
85  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
-
86  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B) \
-
87  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, D) \
-
88  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, A) \
-
89  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, B) \
-
90  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, C)
-
91 
-
92 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
93  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, C) \
-
94  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, D) \
-
95  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, B) \
-
96  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, D) \
-
97  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, B) \
-
98  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, C) \
-
99  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, C) \
-
100  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, D) \
-
101  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, A) \
-
102  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, D) \
-
103  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, A) \
-
104  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, C) \
-
105  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, B) \
-
106  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, D) \
-
107  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, A) \
-
108  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, D) \
-
109  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, A) \
-
110  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, B) \
-
111  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, B) \
-
112  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, C) \
-
113  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, A) \
-
114  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, C) \
-
115  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, A) \
-
116  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, B)
-
117 
-
118 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
119  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, B, D) \
-
120  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, D, B) \
-
121  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, B, C) \
-
122  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, C, B) \
-
123  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, D, C) \
-
124  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, C, D) \
-
125  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, A, D) \
-
126  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, D, A) \
-
127  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, A, C) \
-
128  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, C, A) \
-
129  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, D, C) \
-
130  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, C, D) \
-
131  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, A, D) \
-
132  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, D, A) \
-
133  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, A, B) \
-
134  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, B, A) \
-
135  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, D, B) \
-
136  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, B, D) \
-
137  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, B, A) \
-
138  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, A, B) \
-
139  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, B, C) \
-
140  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, C, B) \
-
141  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, A, C) \
-
142  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, C, A)
-
143 
-
144 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, A, B, C, D) \
-
145  GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
146  GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
147  GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
-
148 
-
149 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P) \
-
150  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, x, y, z, w) \
-
151  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, r, g, b, a) \
-
152  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, s, t, p, q)
-
153 
-
154 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
155  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
-
156  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
-
157  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
-
158  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B)
-
159 
-
160 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
161  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
-
162  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
-
163  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
-
164  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
-
165  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
-
166  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
-
167  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
-
168  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B)
-
169 
-
170 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
171  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
-
172  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
-
173  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
-
174  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
-
175  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
-
176  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
-
177  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
-
178  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
-
179  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
-
180  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
-
181  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
-
182  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
-
183  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
-
184  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
-
185  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
-
186  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B)
-
187 
-
188 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, A, B) \
-
189  GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
190  GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
-
191  GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B)
-
192 
-
193 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P) \
-
194  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, x, y) \
-
195  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, r, g) \
-
196  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, s, t)
-
197 
-
198 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
199  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
-
200  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
-
201  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
-
202  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
-
203  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
-
204  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
-
205  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
-
206  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
-
207  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C)
-
208 
-
209 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
210  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
-
211  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
-
212  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
-
213  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
-
214  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
-
215  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
-
216  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
-
217  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
-
218  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
-
219  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
-
220  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
-
221  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
-
222  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
-
223  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
-
224  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
-
225  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
-
226  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
-
227  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
-
228  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
-
229  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
-
230  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
-
231  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
-
232  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
-
233  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
-
234  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
-
235  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
-
236  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C)
-
237 
-
238 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
239  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
-
240  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
-
241  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
-
242  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
-
243  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
-
244  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
-
245  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
-
246  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
-
247  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
-
248  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
-
249  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
-
250  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
-
251  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
-
252  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
-
253  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
-
254  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
-
255  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
-
256  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
-
257  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
-
258  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
-
259  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
-
260  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
-
261  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
-
262  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
-
263  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
-
264  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
-
265  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
-
266  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
-
267  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
-
268  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
-
269  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
-
270  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
-
271  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
-
272  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
-
273  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
-
274  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
-
275  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
-
276  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
-
277  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
-
278  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
-
279  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
-
280  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
-
281  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
-
282  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
-
283  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
-
284  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
-
285  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
-
286  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
-
287  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
-
288  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
-
289  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
-
290  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
-
291  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
-
292  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
-
293  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
-
294  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
-
295  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
-
296  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
-
297  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
-
298  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
-
299  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
-
300  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
-
301  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
-
302  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
-
303  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
-
304  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
-
305  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
-
306  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
-
307  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
-
308  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
-
309  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
-
310  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
-
311  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
-
312  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
-
313  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
-
314  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
-
315  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
-
316  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
-
317  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
-
318  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
-
319  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C)
-
320 
-
321 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, A, B, C) \
-
322  GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
323  GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
-
324  GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C)
-
325 
-
326 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P) \
-
327  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, x, y, z) \
-
328  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, r, g, b) \
-
329  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, s, t, p)
-
330 
-
331 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
332  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
-
333  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
-
334  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
-
335  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, D) \
-
336  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
-
337  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
-
338  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
-
339  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, D) \
-
340  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
-
341  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
-
342  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C) \
-
343  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, D) \
-
344  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, A) \
-
345  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, B) \
-
346  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, C) \
-
347  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, D)
-
348 
-
349 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
350  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
-
351  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
-
352  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
-
353  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, D) \
-
354  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
-
355  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
-
356  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
-
357  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, D) \
-
358  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
-
359  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
-
360  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
-
361  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, D) \
-
362  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, A) \
-
363  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, B) \
-
364  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, C) \
-
365  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, D) \
-
366  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
-
367  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
-
368  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
-
369  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, D) \
-
370  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
-
371  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
-
372  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
-
373  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, D) \
-
374  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
-
375  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
-
376  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
-
377  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, D) \
-
378  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, A) \
-
379  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, B) \
-
380  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, C) \
-
381  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, D) \
-
382  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
-
383  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
-
384  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
-
385  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, D) \
-
386  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
-
387  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
-
388  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
-
389  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, D) \
-
390  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
-
391  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
-
392  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C) \
-
393  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, D) \
-
394  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, A) \
-
395  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, B) \
-
396  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, C) \
-
397  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, D) \
-
398  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, A) \
-
399  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, B) \
-
400  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, C) \
-
401  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, D) \
-
402  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, A) \
-
403  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, B) \
-
404  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, C) \
-
405  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, D) \
-
406  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, A) \
-
407  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, B) \
-
408  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, C) \
-
409  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, D) \
-
410  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, A) \
-
411  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, B) \
-
412  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, C) \
-
413  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, D)
-
414 
-
415 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
416  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
-
417  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
-
418  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
-
419  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, D) \
-
420  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
-
421  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
-
422  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
-
423  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, D) \
-
424  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
-
425  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
-
426  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
-
427  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, D) \
-
428  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, A) \
-
429  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, B) \
-
430  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, C) \
-
431  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, D) \
-
432  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
-
433  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
-
434  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
-
435  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, D) \
-
436  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
-
437  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
-
438  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
-
439  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, D) \
-
440  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
-
441  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
-
442  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
-
443  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, D) \
-
444  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, A) \
-
445  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, B) \
-
446  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, C) \
-
447  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, D) \
-
448  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
-
449  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
-
450  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
-
451  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, D) \
-
452  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
-
453  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
-
454  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
-
455  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, D) \
-
456  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
-
457  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
-
458  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
-
459  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, D) \
-
460  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, A) \
-
461  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, B) \
-
462  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, C) \
-
463  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, D) \
-
464  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, A) \
-
465  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, B) \
-
466  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, C) \
-
467  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, D) \
-
468  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, A) \
-
469  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, B) \
-
470  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, C) \
-
471  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, D) \
-
472  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, A) \
-
473  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, B) \
-
474  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, C) \
-
475  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, D) \
-
476  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, A) \
-
477  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, B) \
-
478  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, C) \
-
479  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, D) \
-
480  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
-
481  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
-
482  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
-
483  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, D) \
-
484  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
-
485  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
-
486  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
-
487  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, D) \
-
488  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
-
489  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
-
490  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
-
491  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, D) \
-
492  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, A) \
-
493  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, B) \
-
494  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, C) \
-
495  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, D) \
-
496  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
-
497  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
-
498  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
-
499  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, D) \
-
500  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
-
501  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
-
502  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
-
503  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, D) \
-
504  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
-
505  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
-
506  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
-
507  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, D) \
-
508  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, A) \
-
509  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, B) \
-
510  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, C) \
-
511  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, D) \
-
512  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
-
513  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
-
514  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
-
515  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, D) \
-
516  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
-
517  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
-
518  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
-
519  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, D) \
-
520  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
-
521  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
-
522  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
-
523  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, D) \
-
524  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, A) \
-
525  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, B) \
-
526  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, C) \
-
527  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, D) \
-
528  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, A) \
-
529  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, B) \
-
530  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, C) \
-
531  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, D) \
-
532  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, A) \
-
533  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, B) \
-
534  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, C) \
-
535  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, D) \
-
536  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, A) \
-
537  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, B) \
-
538  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, C) \
-
539  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, D) \
-
540  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, A) \
-
541  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, B) \
-
542  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, C) \
-
543  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, D) \
-
544  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
-
545  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
-
546  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
-
547  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, D) \
-
548  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
-
549  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
-
550  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
-
551  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, D) \
-
552  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
-
553  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
-
554  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
-
555  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, D) \
-
556  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, A) \
-
557  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, B) \
-
558  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, C) \
-
559  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, D) \
-
560  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
-
561  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
-
562  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
-
563  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, D) \
-
564  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
-
565  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
-
566  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
-
567  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, D) \
-
568  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
-
569  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
-
570  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
-
571  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, D) \
-
572  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, A) \
-
573  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, B) \
-
574  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, C) \
-
575  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, D) \
-
576  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
-
577  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
-
578  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
-
579  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, D) \
-
580  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
-
581  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
-
582  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
-
583  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, D) \
-
584  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
-
585  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
-
586  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C) \
-
587  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, D) \
-
588  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, A) \
-
589  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, B) \
-
590  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, C) \
-
591  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, D) \
-
592  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, A) \
-
593  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, B) \
-
594  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, C) \
-
595  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, D) \
-
596  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, A) \
-
597  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, B) \
-
598  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, C) \
-
599  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, D) \
-
600  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, A) \
-
601  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, B) \
-
602  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, C) \
-
603  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, D) \
-
604  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, A) \
-
605  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, B) \
-
606  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, C) \
-
607  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, D) \
-
608  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, A) \
-
609  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, B) \
-
610  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, C) \
-
611  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, D) \
-
612  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, A) \
-
613  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, B) \
-
614  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, C) \
-
615  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, D) \
-
616  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, A) \
-
617  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, B) \
-
618  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, C) \
-
619  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, D) \
-
620  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, A) \
-
621  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, B) \
-
622  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, C) \
-
623  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, D) \
-
624  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, A) \
-
625  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, B) \
-
626  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, C) \
-
627  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, D) \
-
628  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, A) \
-
629  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, B) \
-
630  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, C) \
-
631  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, D) \
-
632  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, A) \
-
633  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, B) \
-
634  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, C) \
-
635  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, D) \
-
636  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, A) \
-
637  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, B) \
-
638  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, C) \
-
639  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, D) \
-
640  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, A) \
-
641  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, B) \
-
642  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, C) \
-
643  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, D) \
-
644  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, A) \
-
645  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, B) \
-
646  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, C) \
-
647  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, D) \
-
648  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, A) \
-
649  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, B) \
-
650  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, C) \
-
651  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, D) \
-
652  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, A) \
-
653  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, B) \
-
654  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, C) \
-
655  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, D) \
-
656  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, A) \
-
657  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, B) \
-
658  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, C) \
-
659  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, D) \
-
660  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, A) \
-
661  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, B) \
-
662  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, C) \
-
663  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, D) \
-
664  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, A) \
-
665  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, B) \
-
666  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, C) \
-
667  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, D) \
-
668  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, A) \
-
669  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, B) \
-
670  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, C) \
-
671  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, D)
-
672 
-
673 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, A, B, C, D) \
-
674  GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
675  GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
-
676  GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
-
677 
-
678 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P) \
-
679  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, x, y, z, w) \
-
680  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, r, g, b, a) \
-
681  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, s, t, p, q)
-
682 
-
- - - - + + + + + + +0.9.9 API documentation: _swizzle_func.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_swizzle_func.hpp
+
+
+
1 #pragma once
+
2 
+
3 #define GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, CONST, A, B) \
+
4  vec<2, T, Q> A ## B() CONST \
+
5  { \
+
6  return vec<2, T, Q>(this->A, this->B); \
+
7  }
+
8 
+
9 #define GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, CONST, A, B, C) \
+
10  vec<3, T, Q> A ## B ## C() CONST \
+
11  { \
+
12  return vec<3, T, Q>(this->A, this->B, this->C); \
+
13  }
+
14 
+
15 #define GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, CONST, A, B, C, D) \
+
16  vec<4, T, Q> A ## B ## C ## D() CONST \
+
17  { \
+
18  return vec<4, T, Q>(this->A, this->B, this->C, this->D); \
+
19  }
+
20 
+
21 #define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(T, P, L, CONST, A, B) \
+
22  template<typename T> \
+
23  vec<L, T, Q> vec<L, T, Q>::A ## B() CONST \
+
24  { \
+
25  return vec<2, T, Q>(this->A, this->B); \
+
26  }
+
27 
+
28 #define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(T, P, L, CONST, A, B, C) \
+
29  template<typename T> \
+
30  vec<3, T, Q> vec<L, T, Q>::A ## B ## C() CONST \
+
31  { \
+
32  return vec<3, T, Q>(this->A, this->B, this->C); \
+
33  }
+
34 
+
35 #define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(T, P, L, CONST, A, B, C, D) \
+
36  template<typename T> \
+
37  vec<4, T, Q> vec<L, T, Q>::A ## B ## C ## D() CONST \
+
38  { \
+
39  return vec<4, T, Q>(this->A, this->B, this->C, this->D); \
+
40  }
+
41 
+
42 #define GLM_MUTABLE
+
43 
+
44 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
45  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, A, B) \
+
46  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, 2, GLM_MUTABLE, B, A)
+
47 
+
48 #define GLM_SWIZZLE_GEN_REF_FROM_VEC2(T, P) \
+
49  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, x, y) \
+
50  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, r, g) \
+
51  GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(T, P, s, t)
+
52 
+
53 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
54  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
+
55  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
+
56  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
+
57  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
+
58  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
+
59  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B)
+
60 
+
61 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
62  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, B, C) \
+
63  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, A, C, B) \
+
64  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, A, C) \
+
65  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, B, C, A) \
+
66  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, A, B) \
+
67  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, GLM_MUTABLE, C, B, A)
+
68 
+
69 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, A, B, C) \
+
70  GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
71  GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(T, P, A, B, C)
+
72 
+
73 #define GLM_SWIZZLE_GEN_REF_FROM_VEC3(T, P) \
+
74  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, x, y, z) \
+
75  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, r, g, b) \
+
76  GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(T, P, s, t, p)
+
77 
+
78 #define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
79  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, B) \
+
80  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, C) \
+
81  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, A, D) \
+
82  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, A) \
+
83  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, C) \
+
84  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, B, D) \
+
85  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, A) \
+
86  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, B) \
+
87  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, C, D) \
+
88  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, A) \
+
89  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, B) \
+
90  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, GLM_MUTABLE, D, C)
+
91 
+
92 #define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
93  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, C) \
+
94  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, B, D) \
+
95  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, B) \
+
96  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, C, D) \
+
97  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, B) \
+
98  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , A, D, C) \
+
99  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, C) \
+
100  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, A, D) \
+
101  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, A) \
+
102  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, C, D) \
+
103  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, A) \
+
104  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , B, D, C) \
+
105  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, B) \
+
106  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, A, D) \
+
107  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, A) \
+
108  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, B, D) \
+
109  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, A) \
+
110  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , C, D, B) \
+
111  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, B) \
+
112  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, A, C) \
+
113  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, A) \
+
114  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, B, C) \
+
115  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, A) \
+
116  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, , D, C, B)
+
117 
+
118 #define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
119  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, B, D) \
+
120  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, C, D, B) \
+
121  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, B, C) \
+
122  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, D, C, B) \
+
123  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, D, C) \
+
124  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , A, B, C, D) \
+
125  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, A, D) \
+
126  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, C, D, A) \
+
127  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, A, C) \
+
128  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, D, C, A) \
+
129  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, D, C) \
+
130  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , B, A, C, D) \
+
131  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, A, D) \
+
132  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, B, D, A) \
+
133  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, A, B) \
+
134  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, D, B, A) \
+
135  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, D, B) \
+
136  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , C, A, B, D) \
+
137  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, B, A) \
+
138  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, C, A, B) \
+
139  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, B, C) \
+
140  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, A, C, B) \
+
141  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, A, C) \
+
142  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, , D, B, C, A)
+
143 
+
144 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, A, B, C, D) \
+
145  GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
146  GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
147  GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
+
148 
+
149 #define GLM_SWIZZLE_GEN_REF_FROM_VEC4(T, P) \
+
150  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, x, y, z, w) \
+
151  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, r, g, b, a) \
+
152  GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(T, P, s, t, p, q)
+
153 
+
154 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
155  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+
156  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+
157  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+
158  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B)
+
159 
+
160 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
161  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+
162  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+
163  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+
164  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+
165  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+
166  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+
167  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+
168  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B)
+
169 
+
170 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
171  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+
172  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+
173  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+
174  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+
175  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+
176  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+
177  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+
178  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+
179  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+
180  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+
181  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+
182  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+
183  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+
184  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+
185  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+
186  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B)
+
187 
+
188 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, A, B) \
+
189  GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
190  GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(T, P, A, B) \
+
191  GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(T, P, A, B)
+
192 
+
193 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, P) \
+
194  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, x, y) \
+
195  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, r, g) \
+
196  GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(T, P, s, t)
+
197 
+
198 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
199  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+
200  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+
201  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
+
202  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+
203  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
+
204  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
+
205  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
+
206  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
+
207  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C)
+
208 
+
209 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
210  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+
211  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+
212  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
+
213  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+
214  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+
215  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
+
216  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
+
217  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
+
218  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
+
219  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+
220  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+
221  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
+
222  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+
223  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
+
224  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
+
225  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
+
226  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
+
227  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
+
228  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
+
229  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
+
230  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
+
231  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
+
232  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
+
233  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
+
234  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
+
235  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
+
236  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C)
+
237 
+
238 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
239  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+
240  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+
241  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
+
242  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+
243  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+
244  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
+
245  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
+
246  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
+
247  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
+
248  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+
249  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+
250  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
+
251  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+
252  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+
253  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
+
254  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
+
255  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
+
256  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
+
257  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
+
258  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
+
259  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
+
260  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
+
261  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
+
262  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
+
263  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
+
264  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
+
265  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
+
266  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+
267  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+
268  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
+
269  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+
270  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+
271  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
+
272  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
+
273  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
+
274  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
+
275  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+
276  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+
277  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
+
278  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+
279  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
+
280  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
+
281  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
+
282  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
+
283  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
+
284  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
+
285  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
+
286  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
+
287  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
+
288  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
+
289  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
+
290  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
+
291  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
+
292  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
+
293  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
+
294  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
+
295  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
+
296  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
+
297  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
+
298  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
+
299  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
+
300  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
+
301  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
+
302  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
+
303  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
+
304  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
+
305  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
+
306  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
+
307  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
+
308  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
+
309  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
+
310  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
+
311  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
+
312  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
+
313  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
+
314  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
+
315  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
+
316  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
+
317  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
+
318  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
+
319  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C)
+
320 
+
321 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, A, B, C) \
+
322  GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
323  GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(T, P, A, B, C) \
+
324  GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(T, P, A, B, C)
+
325 
+
326 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P) \
+
327  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, x, y, z) \
+
328  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, r, g, b) \
+
329  GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(T, P, s, t, p)
+
330 
+
331 #define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
332  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, A) \
+
333  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, B) \
+
334  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, C) \
+
335  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, A, D) \
+
336  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, A) \
+
337  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, B) \
+
338  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, C) \
+
339  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, B, D) \
+
340  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, A) \
+
341  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, B) \
+
342  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, C) \
+
343  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, C, D) \
+
344  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, A) \
+
345  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, B) \
+
346  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, C) \
+
347  GLM_SWIZZLE_GEN_VEC2_ENTRY(T, P, const, D, D)
+
348 
+
349 #define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
350  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, A) \
+
351  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, B) \
+
352  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, C) \
+
353  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, A, D) \
+
354  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, A) \
+
355  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, B) \
+
356  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, C) \
+
357  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, B, D) \
+
358  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, A) \
+
359  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, B) \
+
360  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, C) \
+
361  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, C, D) \
+
362  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, A) \
+
363  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, B) \
+
364  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, C) \
+
365  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, A, D, D) \
+
366  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, A) \
+
367  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, B) \
+
368  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, C) \
+
369  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, A, D) \
+
370  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, A) \
+
371  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, B) \
+
372  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, C) \
+
373  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, B, D) \
+
374  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, A) \
+
375  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, B) \
+
376  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, C) \
+
377  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, C, D) \
+
378  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, A) \
+
379  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, B) \
+
380  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, C) \
+
381  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, B, D, D) \
+
382  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, A) \
+
383  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, B) \
+
384  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, C) \
+
385  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, A, D) \
+
386  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, A) \
+
387  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, B) \
+
388  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, C) \
+
389  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, B, D) \
+
390  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, A) \
+
391  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, B) \
+
392  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, C) \
+
393  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, C, D) \
+
394  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, A) \
+
395  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, B) \
+
396  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, C) \
+
397  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, C, D, D) \
+
398  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, A) \
+
399  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, B) \
+
400  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, C) \
+
401  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, A, D) \
+
402  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, A) \
+
403  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, B) \
+
404  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, C) \
+
405  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, B, D) \
+
406  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, A) \
+
407  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, B) \
+
408  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, C) \
+
409  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, C, D) \
+
410  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, A) \
+
411  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, B) \
+
412  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, C) \
+
413  GLM_SWIZZLE_GEN_VEC3_ENTRY(T, P, const, D, D, D)
+
414 
+
415 #define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
416  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, A) \
+
417  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, B) \
+
418  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, C) \
+
419  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, A, D) \
+
420  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, A) \
+
421  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, B) \
+
422  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, C) \
+
423  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, B, D) \
+
424  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, A) \
+
425  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, B) \
+
426  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, C) \
+
427  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, C, D) \
+
428  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, A) \
+
429  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, B) \
+
430  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, C) \
+
431  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, A, D, D) \
+
432  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, A) \
+
433  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, B) \
+
434  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, C) \
+
435  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, A, D) \
+
436  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, A) \
+
437  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, B) \
+
438  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, C) \
+
439  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, B, D) \
+
440  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, A) \
+
441  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, B) \
+
442  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, C) \
+
443  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, C, D) \
+
444  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, A) \
+
445  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, B) \
+
446  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, C) \
+
447  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, B, D, D) \
+
448  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, A) \
+
449  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, B) \
+
450  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, C) \
+
451  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, A, D) \
+
452  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, A) \
+
453  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, B) \
+
454  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, C) \
+
455  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, B, D) \
+
456  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, A) \
+
457  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, B) \
+
458  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, C) \
+
459  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, C, D) \
+
460  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, A) \
+
461  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, B) \
+
462  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, C) \
+
463  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, C, D, D) \
+
464  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, A) \
+
465  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, B) \
+
466  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, C) \
+
467  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, A, D) \
+
468  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, A) \
+
469  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, B) \
+
470  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, C) \
+
471  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, B, D) \
+
472  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, A) \
+
473  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, B) \
+
474  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, C) \
+
475  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, C, D) \
+
476  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, A) \
+
477  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, B) \
+
478  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, C) \
+
479  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, A, D, D, D) \
+
480  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, A) \
+
481  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, B) \
+
482  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, C) \
+
483  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, A, D) \
+
484  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, A) \
+
485  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, B) \
+
486  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, C) \
+
487  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, B, D) \
+
488  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, A) \
+
489  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, B) \
+
490  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, C) \
+
491  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, C, D) \
+
492  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, A) \
+
493  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, B) \
+
494  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, C) \
+
495  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, A, D, D) \
+
496  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, A) \
+
497  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, B) \
+
498  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, C) \
+
499  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, A, D) \
+
500  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, A) \
+
501  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, B) \
+
502  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, C) \
+
503  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, B, D) \
+
504  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, A) \
+
505  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, B) \
+
506  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, C) \
+
507  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, C, D) \
+
508  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, A) \
+
509  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, B) \
+
510  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, C) \
+
511  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, B, D, D) \
+
512  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, A) \
+
513  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, B) \
+
514  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, C) \
+
515  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, A, D) \
+
516  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, A) \
+
517  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, B) \
+
518  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, C) \
+
519  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, B, D) \
+
520  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, A) \
+
521  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, B) \
+
522  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, C) \
+
523  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, C, D) \
+
524  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, A) \
+
525  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, B) \
+
526  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, C) \
+
527  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, C, D, D) \
+
528  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, A) \
+
529  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, B) \
+
530  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, C) \
+
531  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, A, D) \
+
532  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, A) \
+
533  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, B) \
+
534  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, C) \
+
535  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, B, D) \
+
536  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, A) \
+
537  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, B) \
+
538  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, C) \
+
539  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, C, D) \
+
540  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, A) \
+
541  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, B) \
+
542  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, C) \
+
543  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, B, D, D, D) \
+
544  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, A) \
+
545  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, B) \
+
546  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, C) \
+
547  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, A, D) \
+
548  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, A) \
+
549  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, B) \
+
550  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, C) \
+
551  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, B, D) \
+
552  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, A) \
+
553  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, B) \
+
554  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, C) \
+
555  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, C, D) \
+
556  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, A) \
+
557  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, B) \
+
558  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, C) \
+
559  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, A, D, D) \
+
560  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, A) \
+
561  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, B) \
+
562  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, C) \
+
563  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, A, D) \
+
564  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, A) \
+
565  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, B) \
+
566  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, C) \
+
567  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, B, D) \
+
568  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, A) \
+
569  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, B) \
+
570  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, C) \
+
571  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, C, D) \
+
572  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, A) \
+
573  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, B) \
+
574  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, C) \
+
575  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, B, D, D) \
+
576  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, A) \
+
577  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, B) \
+
578  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, C) \
+
579  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, A, D) \
+
580  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, A) \
+
581  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, B) \
+
582  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, C) \
+
583  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, B, D) \
+
584  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, A) \
+
585  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, B) \
+
586  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, C) \
+
587  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, C, D) \
+
588  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, A) \
+
589  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, B) \
+
590  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, C) \
+
591  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, C, D, D) \
+
592  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, A) \
+
593  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, B) \
+
594  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, C) \
+
595  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, A, D) \
+
596  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, A) \
+
597  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, B) \
+
598  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, C) \
+
599  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, B, D) \
+
600  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, A) \
+
601  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, B) \
+
602  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, C) \
+
603  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, C, D) \
+
604  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, A) \
+
605  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, B) \
+
606  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, C) \
+
607  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, C, D, D, D) \
+
608  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, A) \
+
609  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, B) \
+
610  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, C) \
+
611  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, A, D) \
+
612  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, A) \
+
613  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, B) \
+
614  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, C) \
+
615  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, B, D) \
+
616  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, A) \
+
617  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, B) \
+
618  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, C) \
+
619  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, C, D) \
+
620  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, A) \
+
621  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, B) \
+
622  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, C) \
+
623  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, A, D, D) \
+
624  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, A) \
+
625  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, B) \
+
626  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, C) \
+
627  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, A, D) \
+
628  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, A) \
+
629  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, B) \
+
630  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, C) \
+
631  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, B, D) \
+
632  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, A) \
+
633  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, B) \
+
634  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, C) \
+
635  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, C, D) \
+
636  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, A) \
+
637  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, B) \
+
638  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, C) \
+
639  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, B, D, D) \
+
640  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, A) \
+
641  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, B) \
+
642  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, C) \
+
643  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, A, D) \
+
644  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, A) \
+
645  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, B) \
+
646  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, C) \
+
647  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, B, D) \
+
648  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, A) \
+
649  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, B) \
+
650  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, C) \
+
651  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, C, D) \
+
652  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, A) \
+
653  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, B) \
+
654  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, C) \
+
655  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, C, D, D) \
+
656  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, A) \
+
657  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, B) \
+
658  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, C) \
+
659  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, A, D) \
+
660  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, A) \
+
661  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, B) \
+
662  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, C) \
+
663  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, B, D) \
+
664  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, A) \
+
665  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, B) \
+
666  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, C) \
+
667  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, C, D) \
+
668  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, A) \
+
669  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, B) \
+
670  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, C) \
+
671  GLM_SWIZZLE_GEN_VEC4_ENTRY(T, P, const, D, D, D, D)
+
672 
+
673 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, A, B, C, D) \
+
674  GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
675  GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(T, P, A, B, C, D) \
+
676  GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(T, P, A, B, C, D)
+
677 
+
678 #define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, P) \
+
679  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, x, y, z, w) \
+
680  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, r, g, b, a) \
+
681  GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(T, P, s, t, p, q)
+
682 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00006_source.html b/external/include/glm-0.9.9.8/doc/api/a00006_source.html index a40311efd4..96923b3b40 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00006_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00006_source.html @@ -1,262 +1,262 @@ - - - - - - -0.9.9 API documentation: _vectorize.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
_vectorize.hpp
-
-
-
1 #pragma once
-
2 
-
3 namespace glm{
-
4 namespace detail
-
5 {
-
6  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename R, typename T, qualifier Q>
-
7  struct functor1{};
-
8 
-
9  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
-
10  struct functor1<vec, 1, R, T, Q>
-
11  {
-
12  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<1, R, Q> call(R (*Func) (T x), vec<1, T, Q> const& v)
-
13  {
-
14  return vec<1, R, Q>(Func(v.x));
-
15  }
-
16  };
-
17 
-
18  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
-
19  struct functor1<vec, 2, R, T, Q>
-
20  {
-
21  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<2, R, Q> call(R (*Func) (T x), vec<2, T, Q> const& v)
-
22  {
-
23  return vec<2, R, Q>(Func(v.x), Func(v.y));
-
24  }
-
25  };
-
26 
-
27  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
-
28  struct functor1<vec, 3, R, T, Q>
-
29  {
-
30  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<3, R, Q> call(R (*Func) (T x), vec<3, T, Q> const& v)
-
31  {
-
32  return vec<3, R, Q>(Func(v.x), Func(v.y), Func(v.z));
-
33  }
-
34  };
-
35 
-
36  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
-
37  struct functor1<vec, 4, R, T, Q>
-
38  {
-
39  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<4, R, Q> call(R (*Func) (T x), vec<4, T, Q> const& v)
-
40  {
-
41  return vec<4, R, Q>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));
-
42  }
-
43  };
-
44 
-
45  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename T, qualifier Q>
-
46  struct functor2{};
-
47 
-
48  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
49  struct functor2<vec, 1, T, Q>
-
50  {
-
51  GLM_FUNC_QUALIFIER static vec<1, T, Q> call(T (*Func) (T x, T y), vec<1, T, Q> const& a, vec<1, T, Q> const& b)
-
52  {
-
53  return vec<1, T, Q>(Func(a.x, b.x));
-
54  }
-
55  };
-
56 
-
57  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
58  struct functor2<vec, 2, T, Q>
-
59  {
-
60  GLM_FUNC_QUALIFIER static vec<2, T, Q> call(T (*Func) (T x, T y), vec<2, T, Q> const& a, vec<2, T, Q> const& b)
-
61  {
-
62  return vec<2, T, Q>(Func(a.x, b.x), Func(a.y, b.y));
-
63  }
-
64  };
-
65 
-
66  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
67  struct functor2<vec, 3, T, Q>
-
68  {
-
69  GLM_FUNC_QUALIFIER static vec<3, T, Q> call(T (*Func) (T x, T y), vec<3, T, Q> const& a, vec<3, T, Q> const& b)
-
70  {
-
71  return vec<3, T, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
-
72  }
-
73  };
-
74 
-
75  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
76  struct functor2<vec, 4, T, Q>
-
77  {
-
78  GLM_FUNC_QUALIFIER static vec<4, T, Q> call(T (*Func) (T x, T y), vec<4, T, Q> const& a, vec<4, T, Q> const& b)
-
79  {
-
80  return vec<4, T, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
-
81  }
-
82  };
-
83 
-
84  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename T, qualifier Q>
-
85  struct functor2_vec_sca{};
-
86 
-
87  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
88  struct functor2_vec_sca<vec, 1, T, Q>
-
89  {
-
90  GLM_FUNC_QUALIFIER static vec<1, T, Q> call(T (*Func) (T x, T y), vec<1, T, Q> const& a, T b)
-
91  {
-
92  return vec<1, T, Q>(Func(a.x, b));
-
93  }
-
94  };
-
95 
-
96  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
97  struct functor2_vec_sca<vec, 2, T, Q>
-
98  {
-
99  GLM_FUNC_QUALIFIER static vec<2, T, Q> call(T (*Func) (T x, T y), vec<2, T, Q> const& a, T b)
-
100  {
-
101  return vec<2, T, Q>(Func(a.x, b), Func(a.y, b));
-
102  }
-
103  };
-
104 
-
105  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
106  struct functor2_vec_sca<vec, 3, T, Q>
-
107  {
-
108  GLM_FUNC_QUALIFIER static vec<3, T, Q> call(T (*Func) (T x, T y), vec<3, T, Q> const& a, T b)
-
109  {
-
110  return vec<3, T, Q>(Func(a.x, b), Func(a.y, b), Func(a.z, b));
-
111  }
-
112  };
-
113 
-
114  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
-
115  struct functor2_vec_sca<vec, 4, T, Q>
-
116  {
-
117  GLM_FUNC_QUALIFIER static vec<4, T, Q> call(T (*Func) (T x, T y), vec<4, T, Q> const& a, T b)
-
118  {
-
119  return vec<4, T, Q>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));
-
120  }
-
121  };
-
122 
-
123  template<length_t L, typename T, qualifier Q>
-
124  struct functor2_vec_int {};
-
125 
-
126  template<typename T, qualifier Q>
-
127  struct functor2_vec_int<1, T, Q>
-
128  {
-
129  GLM_FUNC_QUALIFIER static vec<1, int, Q> call(int (*Func) (T x, int y), vec<1, T, Q> const& a, vec<1, int, Q> const& b)
-
130  {
-
131  return vec<1, int, Q>(Func(a.x, b.x));
-
132  }
-
133  };
-
134 
-
135  template<typename T, qualifier Q>
-
136  struct functor2_vec_int<2, T, Q>
-
137  {
-
138  GLM_FUNC_QUALIFIER static vec<2, int, Q> call(int (*Func) (T x, int y), vec<2, T, Q> const& a, vec<2, int, Q> const& b)
-
139  {
-
140  return vec<2, int, Q>(Func(a.x, b.x), Func(a.y, b.y));
-
141  }
-
142  };
-
143 
-
144  template<typename T, qualifier Q>
-
145  struct functor2_vec_int<3, T, Q>
-
146  {
-
147  GLM_FUNC_QUALIFIER static vec<3, int, Q> call(int (*Func) (T x, int y), vec<3, T, Q> const& a, vec<3, int, Q> const& b)
-
148  {
-
149  return vec<3, int, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
-
150  }
-
151  };
-
152 
-
153  template<typename T, qualifier Q>
-
154  struct functor2_vec_int<4, T, Q>
-
155  {
-
156  GLM_FUNC_QUALIFIER static vec<4, int, Q> call(int (*Func) (T x, int y), vec<4, T, Q> const& a, vec<4, int, Q> const& b)
-
157  {
-
158  return vec<4, int, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
-
159  }
-
160  };
-
161 }//namespace detail
-
162 }//namespace glm
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: _vectorize.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
_vectorize.hpp
+
+
+
1 #pragma once
+
2 
+
3 namespace glm{
+
4 namespace detail
+
5 {
+
6  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename R, typename T, qualifier Q>
+
7  struct functor1{};
+
8 
+
9  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
+
10  struct functor1<vec, 1, R, T, Q>
+
11  {
+
12  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<1, R, Q> call(R (*Func) (T x), vec<1, T, Q> const& v)
+
13  {
+
14  return vec<1, R, Q>(Func(v.x));
+
15  }
+
16  };
+
17 
+
18  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
+
19  struct functor1<vec, 2, R, T, Q>
+
20  {
+
21  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<2, R, Q> call(R (*Func) (T x), vec<2, T, Q> const& v)
+
22  {
+
23  return vec<2, R, Q>(Func(v.x), Func(v.y));
+
24  }
+
25  };
+
26 
+
27  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
+
28  struct functor1<vec, 3, R, T, Q>
+
29  {
+
30  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<3, R, Q> call(R (*Func) (T x), vec<3, T, Q> const& v)
+
31  {
+
32  return vec<3, R, Q>(Func(v.x), Func(v.y), Func(v.z));
+
33  }
+
34  };
+
35 
+
36  template<template<length_t L, typename T, qualifier Q> class vec, typename R, typename T, qualifier Q>
+
37  struct functor1<vec, 4, R, T, Q>
+
38  {
+
39  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static vec<4, R, Q> call(R (*Func) (T x), vec<4, T, Q> const& v)
+
40  {
+
41  return vec<4, R, Q>(Func(v.x), Func(v.y), Func(v.z), Func(v.w));
+
42  }
+
43  };
+
44 
+
45  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename T, qualifier Q>
+
46  struct functor2{};
+
47 
+
48  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
49  struct functor2<vec, 1, T, Q>
+
50  {
+
51  GLM_FUNC_QUALIFIER static vec<1, T, Q> call(T (*Func) (T x, T y), vec<1, T, Q> const& a, vec<1, T, Q> const& b)
+
52  {
+
53  return vec<1, T, Q>(Func(a.x, b.x));
+
54  }
+
55  };
+
56 
+
57  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
58  struct functor2<vec, 2, T, Q>
+
59  {
+
60  GLM_FUNC_QUALIFIER static vec<2, T, Q> call(T (*Func) (T x, T y), vec<2, T, Q> const& a, vec<2, T, Q> const& b)
+
61  {
+
62  return vec<2, T, Q>(Func(a.x, b.x), Func(a.y, b.y));
+
63  }
+
64  };
+
65 
+
66  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
67  struct functor2<vec, 3, T, Q>
+
68  {
+
69  GLM_FUNC_QUALIFIER static vec<3, T, Q> call(T (*Func) (T x, T y), vec<3, T, Q> const& a, vec<3, T, Q> const& b)
+
70  {
+
71  return vec<3, T, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
+
72  }
+
73  };
+
74 
+
75  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
76  struct functor2<vec, 4, T, Q>
+
77  {
+
78  GLM_FUNC_QUALIFIER static vec<4, T, Q> call(T (*Func) (T x, T y), vec<4, T, Q> const& a, vec<4, T, Q> const& b)
+
79  {
+
80  return vec<4, T, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
+
81  }
+
82  };
+
83 
+
84  template<template<length_t L, typename T, qualifier Q> class vec, length_t L, typename T, qualifier Q>
+
85  struct functor2_vec_sca{};
+
86 
+
87  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
88  struct functor2_vec_sca<vec, 1, T, Q>
+
89  {
+
90  GLM_FUNC_QUALIFIER static vec<1, T, Q> call(T (*Func) (T x, T y), vec<1, T, Q> const& a, T b)
+
91  {
+
92  return vec<1, T, Q>(Func(a.x, b));
+
93  }
+
94  };
+
95 
+
96  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
97  struct functor2_vec_sca<vec, 2, T, Q>
+
98  {
+
99  GLM_FUNC_QUALIFIER static vec<2, T, Q> call(T (*Func) (T x, T y), vec<2, T, Q> const& a, T b)
+
100  {
+
101  return vec<2, T, Q>(Func(a.x, b), Func(a.y, b));
+
102  }
+
103  };
+
104 
+
105  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
106  struct functor2_vec_sca<vec, 3, T, Q>
+
107  {
+
108  GLM_FUNC_QUALIFIER static vec<3, T, Q> call(T (*Func) (T x, T y), vec<3, T, Q> const& a, T b)
+
109  {
+
110  return vec<3, T, Q>(Func(a.x, b), Func(a.y, b), Func(a.z, b));
+
111  }
+
112  };
+
113 
+
114  template<template<length_t L, typename T, qualifier Q> class vec, typename T, qualifier Q>
+
115  struct functor2_vec_sca<vec, 4, T, Q>
+
116  {
+
117  GLM_FUNC_QUALIFIER static vec<4, T, Q> call(T (*Func) (T x, T y), vec<4, T, Q> const& a, T b)
+
118  {
+
119  return vec<4, T, Q>(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));
+
120  }
+
121  };
+
122 
+
123  template<length_t L, typename T, qualifier Q>
+
124  struct functor2_vec_int {};
+
125 
+
126  template<typename T, qualifier Q>
+
127  struct functor2_vec_int<1, T, Q>
+
128  {
+
129  GLM_FUNC_QUALIFIER static vec<1, int, Q> call(int (*Func) (T x, int y), vec<1, T, Q> const& a, vec<1, int, Q> const& b)
+
130  {
+
131  return vec<1, int, Q>(Func(a.x, b.x));
+
132  }
+
133  };
+
134 
+
135  template<typename T, qualifier Q>
+
136  struct functor2_vec_int<2, T, Q>
+
137  {
+
138  GLM_FUNC_QUALIFIER static vec<2, int, Q> call(int (*Func) (T x, int y), vec<2, T, Q> const& a, vec<2, int, Q> const& b)
+
139  {
+
140  return vec<2, int, Q>(Func(a.x, b.x), Func(a.y, b.y));
+
141  }
+
142  };
+
143 
+
144  template<typename T, qualifier Q>
+
145  struct functor2_vec_int<3, T, Q>
+
146  {
+
147  GLM_FUNC_QUALIFIER static vec<3, int, Q> call(int (*Func) (T x, int y), vec<3, T, Q> const& a, vec<3, int, Q> const& b)
+
148  {
+
149  return vec<3, int, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));
+
150  }
+
151  };
+
152 
+
153  template<typename T, qualifier Q>
+
154  struct functor2_vec_int<4, T, Q>
+
155  {
+
156  GLM_FUNC_QUALIFIER static vec<4, int, Q> call(int (*Func) (T x, int y), vec<4, T, Q> const& a, vec<4, int, Q> const& b)
+
157  {
+
158  return vec<4, int, Q>(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));
+
159  }
+
160  };
+
161 }//namespace detail
+
162 }//namespace glm
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00007.html b/external/include/glm-0.9.9.8/doc/api/a00007.html index 4c642a6a22..bd708c8f97 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00007.html +++ b/external/include/glm-0.9.9.8/doc/api/a00007.html @@ -1,205 +1,205 @@ - - - - - - -0.9.9 API documentation: associated_min_max.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
associated_min_max.hpp File Reference
-
-
- -

GLM_GTX_associated_min_max -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
-

Detailed Description

-

GLM_GTX_associated_min_max

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file associated_min_max.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: associated_min_max.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
associated_min_max.hpp File Reference
+
+
+ +

GLM_GTX_associated_min_max +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
+

Detailed Description

+

GLM_GTX_associated_min_max

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file associated_min_max.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00007_source.html b/external/include/glm-0.9.9.8/doc/api/a00007_source.html index 3cb39f75e4..45d76a2d85 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00007_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00007_source.html @@ -1,250 +1,250 @@ - - - - - - -0.9.9 API documentation: associated_min_max.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
associated_min_max.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename T, typename U, qualifier Q>
-
35  GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b);
-
36 
-
39  template<length_t L, typename T, typename U, qualifier Q>
-
40  GLM_FUNC_DECL vec<2, U, Q> associatedMin(
-
41  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
42  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
-
43 
-
46  template<length_t L, typename T, typename U, qualifier Q>
-
47  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
48  T x, const vec<L, U, Q>& a,
-
49  T y, const vec<L, U, Q>& b);
-
50 
-
53  template<length_t L, typename T, typename U, qualifier Q>
-
54  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
55  vec<L, T, Q> const& x, U a,
-
56  vec<L, T, Q> const& y, U b);
-
57 
-
60  template<typename T, typename U>
-
61  GLM_FUNC_DECL U associatedMin(
-
62  T x, U a,
-
63  T y, U b,
-
64  T z, U c);
-
65 
-
68  template<length_t L, typename T, typename U, qualifier Q>
-
69  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
70  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
71  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
-
72  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
-
73 
-
76  template<typename T, typename U>
-
77  GLM_FUNC_DECL U associatedMin(
-
78  T x, U a,
-
79  T y, U b,
-
80  T z, U c,
-
81  T w, U d);
-
82 
-
85  template<length_t L, typename T, typename U, qualifier Q>
-
86  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
87  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
88  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
-
89  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
-
90  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
-
91 
-
94  template<length_t L, typename T, typename U, qualifier Q>
-
95  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
96  T x, vec<L, U, Q> const& a,
-
97  T y, vec<L, U, Q> const& b,
-
98  T z, vec<L, U, Q> const& c,
-
99  T w, vec<L, U, Q> const& d);
-
100 
-
103  template<length_t L, typename T, typename U, qualifier Q>
-
104  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
-
105  vec<L, T, Q> const& x, U a,
-
106  vec<L, T, Q> const& y, U b,
-
107  vec<L, T, Q> const& z, U c,
-
108  vec<L, T, Q> const& w, U d);
-
109 
-
112  template<typename T, typename U>
-
113  GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b);
-
114 
-
117  template<length_t L, typename T, typename U, qualifier Q>
-
118  GLM_FUNC_DECL vec<2, U, Q> associatedMax(
-
119  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
120  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
-
121 
-
124  template<length_t L, typename T, typename U, qualifier Q>
-
125  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
-
126  T x, vec<L, U, Q> const& a,
-
127  T y, vec<L, U, Q> const& b);
-
128 
-
131  template<length_t L, typename T, typename U, qualifier Q>
-
132  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
133  vec<L, T, Q> const& x, U a,
-
134  vec<L, T, Q> const& y, U b);
-
135 
-
138  template<typename T, typename U>
-
139  GLM_FUNC_DECL U associatedMax(
-
140  T x, U a,
-
141  T y, U b,
-
142  T z, U c);
-
143 
-
146  template<length_t L, typename T, typename U, qualifier Q>
-
147  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
148  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
149  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
-
150  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
-
151 
-
154  template<length_t L, typename T, typename U, qualifier Q>
-
155  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
-
156  T x, vec<L, U, Q> const& a,
-
157  T y, vec<L, U, Q> const& b,
-
158  T z, vec<L, U, Q> const& c);
-
159 
-
162  template<length_t L, typename T, typename U, qualifier Q>
-
163  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
164  vec<L, T, Q> const& x, U a,
-
165  vec<L, T, Q> const& y, U b,
-
166  vec<L, T, Q> const& z, U c);
-
167 
-
170  template<typename T, typename U>
-
171  GLM_FUNC_DECL U associatedMax(
-
172  T x, U a,
-
173  T y, U b,
-
174  T z, U c,
-
175  T w, U d);
-
176 
-
179  template<length_t L, typename T, typename U, qualifier Q>
-
180  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
181  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
-
182  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
-
183  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
-
184  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
-
185 
-
188  template<length_t L, typename T, typename U, qualifier Q>
-
189  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
190  T x, vec<L, U, Q> const& a,
-
191  T y, vec<L, U, Q> const& b,
-
192  T z, vec<L, U, Q> const& c,
-
193  T w, vec<L, U, Q> const& d);
-
194 
-
197  template<length_t L, typename T, typename U, qualifier Q>
-
198  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
-
199  vec<L, T, Q> const& x, U a,
-
200  vec<L, T, Q> const& y, U b,
-
201  vec<L, T, Q> const& z, U c,
-
202  vec<L, T, Q> const& w, U d);
-
203 
-
205 } //namespace glm
-
206 
-
207 #include "associated_min_max.inl"
-
GLM_FUNC_DECL vec< L, U, Q > associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Maximum comparison between 4 variables and returns 4 associated variable values.
-
GLM_FUNC_DECL vec< L, U, Q > associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Minimum comparison between 4 variables and returns 4 associated variable values.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: associated_min_max.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
associated_min_max.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_associated_min_max extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename T, typename U, qualifier Q>
+
35  GLM_FUNC_DECL U associatedMin(T x, U a, T y, U b);
+
36 
+
39  template<length_t L, typename T, typename U, qualifier Q>
+
40  GLM_FUNC_DECL vec<2, U, Q> associatedMin(
+
41  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
42  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
+
43 
+
46  template<length_t L, typename T, typename U, qualifier Q>
+
47  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
48  T x, const vec<L, U, Q>& a,
+
49  T y, const vec<L, U, Q>& b);
+
50 
+
53  template<length_t L, typename T, typename U, qualifier Q>
+
54  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
55  vec<L, T, Q> const& x, U a,
+
56  vec<L, T, Q> const& y, U b);
+
57 
+
60  template<typename T, typename U>
+
61  GLM_FUNC_DECL U associatedMin(
+
62  T x, U a,
+
63  T y, U b,
+
64  T z, U c);
+
65 
+
68  template<length_t L, typename T, typename U, qualifier Q>
+
69  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
70  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
71  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
+
72  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
+
73 
+
76  template<typename T, typename U>
+
77  GLM_FUNC_DECL U associatedMin(
+
78  T x, U a,
+
79  T y, U b,
+
80  T z, U c,
+
81  T w, U d);
+
82 
+
85  template<length_t L, typename T, typename U, qualifier Q>
+
86  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
87  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
88  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
+
89  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
+
90  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
+
91 
+
94  template<length_t L, typename T, typename U, qualifier Q>
+
95  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
96  T x, vec<L, U, Q> const& a,
+
97  T y, vec<L, U, Q> const& b,
+
98  T z, vec<L, U, Q> const& c,
+
99  T w, vec<L, U, Q> const& d);
+
100 
+
103  template<length_t L, typename T, typename U, qualifier Q>
+
104  GLM_FUNC_DECL vec<L, U, Q> associatedMin(
+
105  vec<L, T, Q> const& x, U a,
+
106  vec<L, T, Q> const& y, U b,
+
107  vec<L, T, Q> const& z, U c,
+
108  vec<L, T, Q> const& w, U d);
+
109 
+
112  template<typename T, typename U>
+
113  GLM_FUNC_DECL U associatedMax(T x, U a, T y, U b);
+
114 
+
117  template<length_t L, typename T, typename U, qualifier Q>
+
118  GLM_FUNC_DECL vec<2, U, Q> associatedMax(
+
119  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
120  vec<L, T, Q> const& y, vec<L, U, Q> const& b);
+
121 
+
124  template<length_t L, typename T, typename U, qualifier Q>
+
125  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
+
126  T x, vec<L, U, Q> const& a,
+
127  T y, vec<L, U, Q> const& b);
+
128 
+
131  template<length_t L, typename T, typename U, qualifier Q>
+
132  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
133  vec<L, T, Q> const& x, U a,
+
134  vec<L, T, Q> const& y, U b);
+
135 
+
138  template<typename T, typename U>
+
139  GLM_FUNC_DECL U associatedMax(
+
140  T x, U a,
+
141  T y, U b,
+
142  T z, U c);
+
143 
+
146  template<length_t L, typename T, typename U, qualifier Q>
+
147  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
148  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
149  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
+
150  vec<L, T, Q> const& z, vec<L, U, Q> const& c);
+
151 
+
154  template<length_t L, typename T, typename U, qualifier Q>
+
155  GLM_FUNC_DECL vec<L, T, Q> associatedMax(
+
156  T x, vec<L, U, Q> const& a,
+
157  T y, vec<L, U, Q> const& b,
+
158  T z, vec<L, U, Q> const& c);
+
159 
+
162  template<length_t L, typename T, typename U, qualifier Q>
+
163  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
164  vec<L, T, Q> const& x, U a,
+
165  vec<L, T, Q> const& y, U b,
+
166  vec<L, T, Q> const& z, U c);
+
167 
+
170  template<typename T, typename U>
+
171  GLM_FUNC_DECL U associatedMax(
+
172  T x, U a,
+
173  T y, U b,
+
174  T z, U c,
+
175  T w, U d);
+
176 
+
179  template<length_t L, typename T, typename U, qualifier Q>
+
180  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
181  vec<L, T, Q> const& x, vec<L, U, Q> const& a,
+
182  vec<L, T, Q> const& y, vec<L, U, Q> const& b,
+
183  vec<L, T, Q> const& z, vec<L, U, Q> const& c,
+
184  vec<L, T, Q> const& w, vec<L, U, Q> const& d);
+
185 
+
188  template<length_t L, typename T, typename U, qualifier Q>
+
189  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
190  T x, vec<L, U, Q> const& a,
+
191  T y, vec<L, U, Q> const& b,
+
192  T z, vec<L, U, Q> const& c,
+
193  T w, vec<L, U, Q> const& d);
+
194 
+
197  template<length_t L, typename T, typename U, qualifier Q>
+
198  GLM_FUNC_DECL vec<L, U, Q> associatedMax(
+
199  vec<L, T, Q> const& x, U a,
+
200  vec<L, T, Q> const& y, U b,
+
201  vec<L, T, Q> const& z, U c,
+
202  vec<L, T, Q> const& w, U d);
+
203 
+
205 } //namespace glm
+
206 
+
207 #include "associated_min_max.inl"
+
GLM_FUNC_DECL vec< L, U, Q > associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Maximum comparison between 4 variables and returns 4 associated variable values.
+
GLM_FUNC_DECL vec< L, U, Q > associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
Minimum comparison between 4 variables and returns 4 associated variable values.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00008.html b/external/include/glm-0.9.9.8/doc/api/a00008.html index 62d6c5ef90..481484f37b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00008.html +++ b/external/include/glm-0.9.9.8/doc/api/a00008.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: bit.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
bit.hpp File Reference
-
-
- -

GLM_GTX_bit -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > highestBitValue (vec< L, T, Q > const &value)
 Find the highest bit set to 1 in a integer variable and return its value. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType lowestBitValue (genIUType Value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove (genIUType Value)
 Return the power of two number which value is just higher the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove (vec< L, T, Q > const &value)
 Return the power of two number which value is just higher the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow (genIUType Value)
 Return the power of two number which value is just lower the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow (vec< L, T, Q > const &value)
 Return the power of two number which value is just lower the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest (genIUType Value)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest (vec< L, T, Q > const &value)
 Return the power of two number which value is the closet to the input value. More...
 
-

Detailed Description

-

GLM_GTX_bit

-
See also
Core features (dependence)
- -

Definition in file bit.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: bit.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bit.hpp File Reference
+
+
+ +

GLM_GTX_bit +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > highestBitValue (vec< L, T, Q > const &value)
 Find the highest bit set to 1 in a integer variable and return its value. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType lowestBitValue (genIUType Value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove (genIUType Value)
 Return the power of two number which value is just higher the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove (vec< L, T, Q > const &value)
 Return the power of two number which value is just higher the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow (genIUType Value)
 Return the power of two number which value is just lower the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow (vec< L, T, Q > const &value)
 Return the power of two number which value is just lower the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest (genIUType Value)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest (vec< L, T, Q > const &value)
 Return the power of two number which value is the closet to the input value. More...
 
+

Detailed Description

+

GLM_GTX_bit

+
See also
Core features (dependence)
+ +

Definition in file bit.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00008_source.html b/external/include/glm-0.9.9.8/doc/api/a00008_source.html index 14bad17bf4..ea56523dd7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00008_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00008_source.html @@ -1,154 +1,154 @@ - - - - - - -0.9.9 API documentation: bit.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
bit.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../gtc/bitfield.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_bit extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
32  template<typename genIUType>
-
33  GLM_FUNC_DECL genIUType highestBitValue(genIUType Value);
-
34 
-
36  template<typename genIUType>
-
37  GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value);
-
38 
-
42  template<length_t L, typename T, qualifier Q>
-
43  GLM_FUNC_DECL vec<L, T, Q> highestBitValue(vec<L, T, Q> const& value);
-
44 
-
50  template<typename genIUType>
-
51  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value);
-
52 
-
58  template<length_t L, typename T, qualifier Q>
-
59  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoAbove(vec<L, T, Q> const& value);
-
60 
-
66  template<typename genIUType>
-
67  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value);
-
68 
-
74  template<length_t L, typename T, qualifier Q>
-
75  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoBelow(vec<L, T, Q> const& value);
-
76 
-
82  template<typename genIUType>
-
83  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value);
-
84 
-
90  template<length_t L, typename T, qualifier Q>
-
91  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoNearest(vec<L, T, Q> const& value);
-
92 
-
94 } //namespace glm
-
95 
-
96 
-
97 #include "bit.inl"
-
98 
-
GLM_FUNC_DECL vec< L, T, Q > highestBitValue(vec< L, T, Q > const &value)
Find the highest bit set to 1 in a integer variable and return its value.
-
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow(vec< L, T, Q > const &value)
Return the power of two number which value is just lower the input value.
-
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove(vec< L, T, Q > const &value)
Return the power of two number which value is just higher the input value.
-
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest(vec< L, T, Q > const &value)
Return the power of two number which value is the closet to the input value.
-
GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: bit.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bit.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../gtc/bitfield.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_bit extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
32  template<typename genIUType>
+
33  GLM_FUNC_DECL genIUType highestBitValue(genIUType Value);
+
34 
+
36  template<typename genIUType>
+
37  GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value);
+
38 
+
42  template<length_t L, typename T, qualifier Q>
+
43  GLM_FUNC_DECL vec<L, T, Q> highestBitValue(vec<L, T, Q> const& value);
+
44 
+
50  template<typename genIUType>
+
51  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove(genIUType Value);
+
52 
+
58  template<length_t L, typename T, qualifier Q>
+
59  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoAbove(vec<L, T, Q> const& value);
+
60 
+
66  template<typename genIUType>
+
67  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow(genIUType Value);
+
68 
+
74  template<length_t L, typename T, qualifier Q>
+
75  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoBelow(vec<L, T, Q> const& value);
+
76 
+
82  template<typename genIUType>
+
83  GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest(genIUType Value);
+
84 
+
90  template<length_t L, typename T, qualifier Q>
+
91  GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> powerOfTwoNearest(vec<L, T, Q> const& value);
+
92 
+
94 } //namespace glm
+
95 
+
96 
+
97 #include "bit.inl"
+
98 
+
GLM_FUNC_DECL vec< L, T, Q > highestBitValue(vec< L, T, Q > const &value)
Find the highest bit set to 1 in a integer variable and return its value.
+
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow(vec< L, T, Q > const &value)
Return the power of two number which value is just lower the input value.
+
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove(vec< L, T, Q > const &value)
Return the power of two number which value is just higher the input value.
+
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest(vec< L, T, Q > const &value)
Return the power of two number which value is the closet to the input value.
+
GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00009.html b/external/include/glm-0.9.9.8/doc/api/a00009.html index 80d483f95b..429ccf0457 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00009.html +++ b/external/include/glm-0.9.9.8/doc/api/a00009.html @@ -1,223 +1,223 @@ - - - - - - -0.9.9 API documentation: bitfield.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
bitfield.hpp File Reference
-
-
- -

GLM_GTC_bitfield -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL glm::u8vec2 bitfieldDeinterleave (glm::uint16 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u16vec2 bitfieldDeinterleave (glm::uint32 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave (glm::uint64 x)
 Deinterleaves the bits of x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (u8vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (u16vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (u32vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 Interleaves the bits of x, y, z and w. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 Rotate all bits to the left. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the left. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 Rotate all bits to the right. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the right. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 Build a mask of 'count' bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mask (vec< L, T, Q > const &v)
 Build a mask of 'count' bits. More...
 
-

Detailed Description

-

GLM_GTC_bitfield

-
See also
Core features (dependence)
-
-GLM_GTC_bitfield (dependence)
- -

Definition in file bitfield.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: bitfield.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bitfield.hpp File Reference
+
+
+ +

GLM_GTC_bitfield +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL glm::u8vec2 bitfieldDeinterleave (glm::uint16 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u16vec2 bitfieldDeinterleave (glm::uint32 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave (glm::uint64 x)
 Deinterleaves the bits of x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (u8vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (u16vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (u32vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 Interleaves the bits of x, y, z and w. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 Rotate all bits to the left. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the left. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 Rotate all bits to the right. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the right. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 Build a mask of 'count' bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mask (vec< L, T, Q > const &v)
 Build a mask of 'count' bits. More...
 
+

Detailed Description

+

GLM_GTC_bitfield

+
See also
Core features (dependence)
+
+GLM_GTC_bitfield (dependence)
+ +

Definition in file bitfield.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00009_source.html b/external/include/glm-0.9.9.8/doc/api/a00009_source.html index 7aa7e45985..ba21496124 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00009_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00009_source.html @@ -1,212 +1,212 @@ - - - - - - -0.9.9 API documentation: bitfield.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
bitfield.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #include "../detail/setup.hpp"
-
15 
-
16 #pragma once
-
17 
-
18 // Dependencies
-
19 #include "../ext/scalar_int_sized.hpp"
-
20 #include "../ext/scalar_uint_sized.hpp"
-
21 #include "../detail/qualifier.hpp"
-
22 #include "../detail/_vectorize.hpp"
-
23 #include "type_precision.hpp"
-
24 #include <limits>
-
25 
-
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
27 # pragma message("GLM: GLM_GTC_bitfield extension included")
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
38  template<typename genIUType>
-
39  GLM_FUNC_DECL genIUType mask(genIUType Bits);
-
40 
-
48  template<length_t L, typename T, qualifier Q>
-
49  GLM_FUNC_DECL vec<L, T, Q> mask(vec<L, T, Q> const& v);
-
50 
-
54  template<typename genIUType>
-
55  GLM_FUNC_DECL genIUType bitfieldRotateRight(genIUType In, int Shift);
-
56 
-
64  template<length_t L, typename T, qualifier Q>
-
65  GLM_FUNC_DECL vec<L, T, Q> bitfieldRotateRight(vec<L, T, Q> const& In, int Shift);
-
66 
-
70  template<typename genIUType>
-
71  GLM_FUNC_DECL genIUType bitfieldRotateLeft(genIUType In, int Shift);
-
72 
-
80  template<length_t L, typename T, qualifier Q>
-
81  GLM_FUNC_DECL vec<L, T, Q> bitfieldRotateLeft(vec<L, T, Q> const& In, int Shift);
-
82 
-
86  template<typename genIUType>
-
87  GLM_FUNC_DECL genIUType bitfieldFillOne(genIUType Value, int FirstBit, int BitCount);
-
88 
-
96  template<length_t L, typename T, qualifier Q>
-
97  GLM_FUNC_DECL vec<L, T, Q> bitfieldFillOne(vec<L, T, Q> const& Value, int FirstBit, int BitCount);
-
98 
-
102  template<typename genIUType>
-
103  GLM_FUNC_DECL genIUType bitfieldFillZero(genIUType Value, int FirstBit, int BitCount);
-
104 
-
112  template<length_t L, typename T, qualifier Q>
-
113  GLM_FUNC_DECL vec<L, T, Q> bitfieldFillZero(vec<L, T, Q> const& Value, int FirstBit, int BitCount);
-
114 
-
120  GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
-
121 
-
127  GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
-
128 
-
134  GLM_FUNC_DECL uint16 bitfieldInterleave(u8vec2 const& v);
-
135 
- -
140 
-
146  GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
-
147 
-
153  GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
-
154 
-
160  GLM_FUNC_DECL uint32 bitfieldInterleave(u16vec2 const& v);
-
161 
- -
166 
-
172  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
-
173 
-
179  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
-
180 
-
186  GLM_FUNC_DECL uint64 bitfieldInterleave(u32vec2 const& v);
-
187 
- -
192 
-
198  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
-
199 
-
205  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
-
206 
-
212  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
-
213 
-
219  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
-
220 
-
226  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
-
227 
-
233  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
-
234 
-
240  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
-
241 
-
247  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
-
248 
-
254  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
-
255 
-
261  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
-
262 
-
264 } //namespace glm
-
265 
-
266 #include "bitfield.inl"
-
detail::uint32 uint32
32 bit unsigned integer type.
-
GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)
Interleaves the bits of x, y, z and w.
-
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave(glm::uint64 x)
Deinterleaves the bits of x.
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)
Set to 0 a range of bits.
-
detail::uint16 uint16
16 bit unsigned integer type.
-
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)
Rotate all bits to the left.
-
GLM_FUNC_DECL vec< L, T, Q > mask(vec< L, T, Q > const &v)
Build a mask of 'count' bits.
-
detail::uint64 uint64
64 bit unsigned integer type.
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)
Set to 1 a range of bits.
-
GLM_GTC_type_precision
-
detail::int64 int64
64 bit signed integer type.
-
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)
Rotate all bits to the right.
-
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: bitfield.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bitfield.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #include "../detail/setup.hpp"
+
15 
+
16 #pragma once
+
17 
+
18 // Dependencies
+
19 #include "../ext/scalar_int_sized.hpp"
+
20 #include "../ext/scalar_uint_sized.hpp"
+
21 #include "../detail/qualifier.hpp"
+
22 #include "../detail/_vectorize.hpp"
+
23 #include "type_precision.hpp"
+
24 #include <limits>
+
25 
+
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
27 # pragma message("GLM: GLM_GTC_bitfield extension included")
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
38  template<typename genIUType>
+
39  GLM_FUNC_DECL genIUType mask(genIUType Bits);
+
40 
+
48  template<length_t L, typename T, qualifier Q>
+
49  GLM_FUNC_DECL vec<L, T, Q> mask(vec<L, T, Q> const& v);
+
50 
+
54  template<typename genIUType>
+
55  GLM_FUNC_DECL genIUType bitfieldRotateRight(genIUType In, int Shift);
+
56 
+
64  template<length_t L, typename T, qualifier Q>
+
65  GLM_FUNC_DECL vec<L, T, Q> bitfieldRotateRight(vec<L, T, Q> const& In, int Shift);
+
66 
+
70  template<typename genIUType>
+
71  GLM_FUNC_DECL genIUType bitfieldRotateLeft(genIUType In, int Shift);
+
72 
+
80  template<length_t L, typename T, qualifier Q>
+
81  GLM_FUNC_DECL vec<L, T, Q> bitfieldRotateLeft(vec<L, T, Q> const& In, int Shift);
+
82 
+
86  template<typename genIUType>
+
87  GLM_FUNC_DECL genIUType bitfieldFillOne(genIUType Value, int FirstBit, int BitCount);
+
88 
+
96  template<length_t L, typename T, qualifier Q>
+
97  GLM_FUNC_DECL vec<L, T, Q> bitfieldFillOne(vec<L, T, Q> const& Value, int FirstBit, int BitCount);
+
98 
+
102  template<typename genIUType>
+
103  GLM_FUNC_DECL genIUType bitfieldFillZero(genIUType Value, int FirstBit, int BitCount);
+
104 
+
112  template<length_t L, typename T, qualifier Q>
+
113  GLM_FUNC_DECL vec<L, T, Q> bitfieldFillZero(vec<L, T, Q> const& Value, int FirstBit, int BitCount);
+
114 
+
120  GLM_FUNC_DECL int16 bitfieldInterleave(int8 x, int8 y);
+
121 
+
127  GLM_FUNC_DECL uint16 bitfieldInterleave(uint8 x, uint8 y);
+
128 
+
134  GLM_FUNC_DECL uint16 bitfieldInterleave(u8vec2 const& v);
+
135 
+ +
140 
+
146  GLM_FUNC_DECL int32 bitfieldInterleave(int16 x, int16 y);
+
147 
+
153  GLM_FUNC_DECL uint32 bitfieldInterleave(uint16 x, uint16 y);
+
154 
+
160  GLM_FUNC_DECL uint32 bitfieldInterleave(u16vec2 const& v);
+
161 
+ +
166 
+
172  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y);
+
173 
+
179  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y);
+
180 
+
186  GLM_FUNC_DECL uint64 bitfieldInterleave(u32vec2 const& v);
+
187 
+ +
192 
+
198  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z);
+
199 
+
205  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z);
+
206 
+
212  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z);
+
213 
+
219  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z);
+
220 
+
226  GLM_FUNC_DECL int64 bitfieldInterleave(int32 x, int32 y, int32 z);
+
227 
+
233  GLM_FUNC_DECL uint64 bitfieldInterleave(uint32 x, uint32 y, uint32 z);
+
234 
+
240  GLM_FUNC_DECL int32 bitfieldInterleave(int8 x, int8 y, int8 z, int8 w);
+
241 
+
247  GLM_FUNC_DECL uint32 bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w);
+
248 
+
254  GLM_FUNC_DECL int64 bitfieldInterleave(int16 x, int16 y, int16 z, int16 w);
+
255 
+
261  GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w);
+
262 
+
264 } //namespace glm
+
265 
+
266 #include "bitfield.inl"
+
detail::uint32 uint32
32 bit unsigned integer type.
+
GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)
Interleaves the bits of x, y, z and w.
+
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave(glm::uint64 x)
Deinterleaves the bits of x.
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)
Set to 0 a range of bits.
+
detail::uint16 uint16
16 bit unsigned integer type.
+
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)
Rotate all bits to the left.
+
GLM_FUNC_DECL vec< L, T, Q > mask(vec< L, T, Q > const &v)
Build a mask of 'count' bits.
+
detail::uint64 uint64
64 bit unsigned integer type.
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)
Set to 1 a range of bits.
+
GLM_GTC_type_precision
+
detail::int64 int64
64 bit signed integer type.
+
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)
Rotate all bits to the right.
+
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00010.html b/external/include/glm-0.9.9.8/doc/api/a00010.html index 3d79423f1c..427c3ad1a2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00010.html +++ b/external/include/glm-0.9.9.8/doc/api/a00010.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: closest_point.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
closest_point.hpp File Reference
-
-
- -

GLM_GTX_closest_point -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > closestPointOnLine (vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)
 Find the point on a straight line which is the closet of a point. More...
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine (vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
 2d lines work as well
 
-

Detailed Description

-

GLM_GTX_closest_point

-
See also
Core features (dependence)
- -

Definition in file closest_point.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: closest_point.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
closest_point.hpp File Reference
+
+
+ +

GLM_GTX_closest_point +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > closestPointOnLine (vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)
 Find the point on a straight line which is the closet of a point. More...
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine (vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
 2d lines work as well
 
+

Detailed Description

+

GLM_GTX_closest_point

+
See also
Core features (dependence)
+ +

Definition in file closest_point.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00010_source.html b/external/include/glm-0.9.9.8/doc/api/a00010_source.html index 33072dab23..57de3ceb74 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00010_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00010_source.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: closest_point.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
closest_point.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T, qualifier Q>
-
34  GLM_FUNC_DECL vec<3, T, Q> closestPointOnLine(
-
35  vec<3, T, Q> const& point,
-
36  vec<3, T, Q> const& a,
-
37  vec<3, T, Q> const& b);
-
38 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL vec<2, T, Q> closestPointOnLine(
-
42  vec<2, T, Q> const& point,
-
43  vec<2, T, Q> const& a,
-
44  vec<2, T, Q> const& b);
-
45 
-
47 }// namespace glm
-
48 
-
49 #include "closest_point.inl"
-
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
2d lines work as well
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: closest_point.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
closest_point.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_closest_point extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T, qualifier Q>
+
34  GLM_FUNC_DECL vec<3, T, Q> closestPointOnLine(
+
35  vec<3, T, Q> const& point,
+
36  vec<3, T, Q> const& a,
+
37  vec<3, T, Q> const& b);
+
38 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL vec<2, T, Q> closestPointOnLine(
+
42  vec<2, T, Q> const& point,
+
43  vec<2, T, Q> const& a,
+
44  vec<2, T, Q> const& b);
+
45 
+
47 }// namespace glm
+
48 
+
49 #include "closest_point.inl"
+
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
2d lines work as well
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00011.html b/external/include/glm-0.9.9.8/doc/api/a00011.html index 790fb90c68..fc81397e7e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00011.html +++ b/external/include/glm-0.9.9.8/doc/api/a00011.html @@ -1,137 +1,137 @@ - - - - - - -0.9.9 API documentation: color_encoding.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
color_encoding.hpp File Reference
-
-
- -

GLM_GTX_color_encoding -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to D50 YUV.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to linear sRGB.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D50 YUV.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D65 YUV.
 
-

Detailed Description

-

GLM_GTX_color_encoding

-
See also
Core features (dependence)
-
-GLM_GTX_color_encoding (dependence)
- -

Definition in file color_encoding.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: color_encoding.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
color_encoding.hpp File Reference
+
+
+ +

GLM_GTX_color_encoding +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to D50 YUV.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to linear sRGB.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D50 YUV.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D65 YUV.
 
+

Detailed Description

+

GLM_GTX_color_encoding

+
See also
Core features (dependence)
+
+GLM_GTX_color_encoding (dependence)
+ +

Definition in file color_encoding.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00011_source.html b/external/include/glm-0.9.9.8/doc/api/a00011_source.html index cea173e354..0deaac4561 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00011_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00011_source.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: color_encoding.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
color_encoding.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 #include "../vec3.hpp"
-
20 #include <limits>
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTC_color_encoding is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTC_color_encoding extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
36  template<typename T, qualifier Q>
-
37  GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD65XYZ(vec<3, T, Q> const& ColorLinearSRGB);
-
38 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD50XYZ(vec<3, T, Q> const& ColorLinearSRGB);
-
42 
-
44  template<typename T, qualifier Q>
-
45  GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToLinearSRGB(vec<3, T, Q> const& ColorD65XYZ);
-
46 
-
48  template<typename T, qualifier Q>
-
49  GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToD50XYZ(vec<3, T, Q> const& ColorD65XYZ);
-
50 
-
52 } //namespace glm
-
53 
-
54 #include "color_encoding.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB(vec< 3, T, Q > const &ColorD65XYZ)
Convert a D65 YUV color to linear sRGB.
-
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ(vec< 3, T, Q > const &ColorLinearSRGB)
Convert a linear sRGB color to D50 YUV.
-
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ(vec< 3, T, Q > const &ColorLinearSRGB)
Convert a linear sRGB color to D65 YUV.
-
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ(vec< 3, T, Q > const &ColorD65XYZ)
Convert a D65 YUV color to D50 YUV.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: color_encoding.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
color_encoding.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 #include "../vec3.hpp"
+
20 #include <limits>
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTC_color_encoding is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTC_color_encoding extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
36  template<typename T, qualifier Q>
+
37  GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD65XYZ(vec<3, T, Q> const& ColorLinearSRGB);
+
38 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD50XYZ(vec<3, T, Q> const& ColorLinearSRGB);
+
42 
+
44  template<typename T, qualifier Q>
+
45  GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToLinearSRGB(vec<3, T, Q> const& ColorD65XYZ);
+
46 
+
48  template<typename T, qualifier Q>
+
49  GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToD50XYZ(vec<3, T, Q> const& ColorD65XYZ);
+
50 
+
52 } //namespace glm
+
53 
+
54 #include "color_encoding.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB(vec< 3, T, Q > const &ColorD65XYZ)
Convert a D65 YUV color to linear sRGB.
+
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ(vec< 3, T, Q > const &ColorLinearSRGB)
Convert a linear sRGB color to D50 YUV.
+
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ(vec< 3, T, Q > const &ColorLinearSRGB)
Convert a linear sRGB color to D65 YUV.
+
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ(vec< 3, T, Q > const &ColorD65XYZ)
Convert a D65 YUV color to D50 YUV.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00012.html b/external/include/glm-0.9.9.8/doc/api/a00012.html index 53675590d3..4262e1e952 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00012.html +++ b/external/include/glm-0.9.9.8/doc/api/a00012.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: color_space.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtc/color_space.hpp File Reference
-
-
- -

GLM_GTC_color_space -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear)
 Convert a linear color to sRGB color using a standard gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear, T Gamma)
 Convert a linear color to sRGB color using a custom gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB)
 Convert a sRGB color to linear color using a standard gamma correction. More...
 
-template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB, T Gamma)
 Convert a sRGB color to linear color using a custom gamma correction.
 
-

Detailed Description

-

GLM_GTC_color_space

-
See also
Core features (dependence)
-
-GLM_GTC_color_space (dependence)
- -

Definition in file gtc/color_space.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: color_space.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtc/color_space.hpp File Reference
+
+
+ +

GLM_GTC_color_space +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear)
 Convert a linear color to sRGB color using a standard gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear, T Gamma)
 Convert a linear color to sRGB color using a custom gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB)
 Convert a sRGB color to linear color using a standard gamma correction. More...
 
+template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB, T Gamma)
 Convert a sRGB color to linear color using a custom gamma correction.
 
+

Detailed Description

+

GLM_GTC_color_space

+
See also
Core features (dependence)
+
+GLM_GTC_color_space (dependence)
+ +

Definition in file gtc/color_space.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00012_source.html b/external/include/glm-0.9.9.8/doc/api/a00012_source.html index c3a62a2e6d..8f864b9f51 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00012_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00012_source.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: color_space.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/color_space.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 #include "../exponential.hpp"
-
20 #include "../vec3.hpp"
-
21 #include "../vec4.hpp"
-
22 #include <limits>
-
23 
-
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
25 # pragma message("GLM: GLM_GTC_color_space extension included")
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<length_t L, typename T, qualifier Q>
-
36  GLM_FUNC_DECL vec<L, T, Q> convertLinearToSRGB(vec<L, T, Q> const& ColorLinear);
-
37 
-
40  template<length_t L, typename T, qualifier Q>
-
41  GLM_FUNC_DECL vec<L, T, Q> convertLinearToSRGB(vec<L, T, Q> const& ColorLinear, T Gamma);
-
42 
-
45  template<length_t L, typename T, qualifier Q>
-
46  GLM_FUNC_DECL vec<L, T, Q> convertSRGBToLinear(vec<L, T, Q> const& ColorSRGB);
-
47 
-
49  // IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
-
50  template<length_t L, typename T, qualifier Q>
-
51  GLM_FUNC_DECL vec<L, T, Q> convertSRGBToLinear(vec<L, T, Q> const& ColorSRGB, T Gamma);
-
52 
-
54 } //namespace glm
-
55 
-
56 #include "color_space.inl"
-
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)
Convert a linear color to sRGB color using a custom gamma correction.
-
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)
Convert a sRGB color to linear color using a custom gamma correction.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: color_space.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/color_space.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 #include "../exponential.hpp"
+
20 #include "../vec3.hpp"
+
21 #include "../vec4.hpp"
+
22 #include <limits>
+
23 
+
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
25 # pragma message("GLM: GLM_GTC_color_space extension included")
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<length_t L, typename T, qualifier Q>
+
36  GLM_FUNC_DECL vec<L, T, Q> convertLinearToSRGB(vec<L, T, Q> const& ColorLinear);
+
37 
+
40  template<length_t L, typename T, qualifier Q>
+
41  GLM_FUNC_DECL vec<L, T, Q> convertLinearToSRGB(vec<L, T, Q> const& ColorLinear, T Gamma);
+
42 
+
45  template<length_t L, typename T, qualifier Q>
+
46  GLM_FUNC_DECL vec<L, T, Q> convertSRGBToLinear(vec<L, T, Q> const& ColorSRGB);
+
47 
+
49  // IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb
+
50  template<length_t L, typename T, qualifier Q>
+
51  GLM_FUNC_DECL vec<L, T, Q> convertSRGBToLinear(vec<L, T, Q> const& ColorSRGB, T Gamma);
+
52 
+
54 } //namespace glm
+
55 
+
56 #include "color_space.inl"
+
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)
Convert a linear color to sRGB color using a custom gamma correction.
+
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)
Convert a sRGB color to linear color using a custom gamma correction.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00013.html b/external/include/glm-0.9.9.8/doc/api/a00013.html index b689d83d83..0c20995098 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00013.html +++ b/external/include/glm-0.9.9.8/doc/api/a00013.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: color_space.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtx/color_space.hpp File Reference
-
-
- -

GLM_GTX_color_space -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > hsvColor (vec< 3, T, Q > const &rgbValue)
 Converts a color from RGB color space to its color in HSV color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T luminosity (vec< 3, T, Q > const &color)
 Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgbColor (vec< 3, T, Q > const &hsvValue)
 Converts a color from HSV color space to its color in RGB color space. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > saturation (T const s)
 Build a saturation matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > saturation (T const s, vec< 3, T, Q > const &color)
 Modify the saturation of a color. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > saturation (T const s, vec< 4, T, Q > const &color)
 Modify the saturation of a color. More...
 
-

Detailed Description

-

GLM_GTX_color_space

-
See also
Core features (dependence)
- -

Definition in file gtx/color_space.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: color_space.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtx/color_space.hpp File Reference
+
+
+ +

GLM_GTX_color_space +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > hsvColor (vec< 3, T, Q > const &rgbValue)
 Converts a color from RGB color space to its color in HSV color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T luminosity (vec< 3, T, Q > const &color)
 Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgbColor (vec< 3, T, Q > const &hsvValue)
 Converts a color from HSV color space to its color in RGB color space. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > saturation (T const s)
 Build a saturation matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > saturation (T const s, vec< 3, T, Q > const &color)
 Modify the saturation of a color. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > saturation (T const s, vec< 4, T, Q > const &color)
 Modify the saturation of a color. More...
 
+

Detailed Description

+

GLM_GTX_color_space

+
See also
Core features (dependence)
+ +

Definition in file gtx/color_space.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00013_source.html b/external/include/glm-0.9.9.8/doc/api/a00013_source.html index d1ab3ee18d..e85a56589f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00013_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00013_source.html @@ -1,150 +1,150 @@ - - - - - - -0.9.9 API documentation: color_space.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/color_space.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_color_space extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T, qualifier Q>
-
34  GLM_FUNC_DECL vec<3, T, Q> rgbColor(
-
35  vec<3, T, Q> const& hsvValue);
-
36 
-
39  template<typename T, qualifier Q>
-
40  GLM_FUNC_DECL vec<3, T, Q> hsvColor(
-
41  vec<3, T, Q> const& rgbValue);
-
42 
-
45  template<typename T>
-
46  GLM_FUNC_DECL mat<4, 4, T, defaultp> saturation(
-
47  T const s);
-
48 
-
51  template<typename T, qualifier Q>
-
52  GLM_FUNC_DECL vec<3, T, Q> saturation(
-
53  T const s,
-
54  vec<3, T, Q> const& color);
-
55 
-
58  template<typename T, qualifier Q>
-
59  GLM_FUNC_DECL vec<4, T, Q> saturation(
-
60  T const s,
-
61  vec<4, T, Q> const& color);
-
62 
-
65  template<typename T, qualifier Q>
-
66  GLM_FUNC_DECL T luminosity(
-
67  vec<3, T, Q> const& color);
-
68 
-
70 }//namespace glm
-
71 
-
72 #include "color_space.inl"
-
GLM_FUNC_DECL T luminosity(vec< 3, T, Q > const &color)
Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
-
GLM_FUNC_DECL vec< 4, T, Q > saturation(T const s, vec< 4, T, Q > const &color)
Modify the saturation of a color.
-
GLM_FUNC_DECL vec< 3, T, Q > rgbColor(vec< 3, T, Q > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
GLM_FUNC_DECL vec< 3, T, Q > hsvColor(vec< 3, T, Q > const &rgbValue)
Converts a color from RGB color space to its color in HSV color space.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: color_space.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/color_space.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_color_space extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T, qualifier Q>
+
34  GLM_FUNC_DECL vec<3, T, Q> rgbColor(
+
35  vec<3, T, Q> const& hsvValue);
+
36 
+
39  template<typename T, qualifier Q>
+
40  GLM_FUNC_DECL vec<3, T, Q> hsvColor(
+
41  vec<3, T, Q> const& rgbValue);
+
42 
+
45  template<typename T>
+
46  GLM_FUNC_DECL mat<4, 4, T, defaultp> saturation(
+
47  T const s);
+
48 
+
51  template<typename T, qualifier Q>
+
52  GLM_FUNC_DECL vec<3, T, Q> saturation(
+
53  T const s,
+
54  vec<3, T, Q> const& color);
+
55 
+
58  template<typename T, qualifier Q>
+
59  GLM_FUNC_DECL vec<4, T, Q> saturation(
+
60  T const s,
+
61  vec<4, T, Q> const& color);
+
62 
+
65  template<typename T, qualifier Q>
+
66  GLM_FUNC_DECL T luminosity(
+
67  vec<3, T, Q> const& color);
+
68 
+
70 }//namespace glm
+
71 
+
72 #include "color_space.inl"
+
GLM_FUNC_DECL T luminosity(vec< 3, T, Q > const &color)
Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
+
GLM_FUNC_DECL vec< 4, T, Q > saturation(T const s, vec< 4, T, Q > const &color)
Modify the saturation of a color.
+
GLM_FUNC_DECL vec< 3, T, Q > rgbColor(vec< 3, T, Q > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
+
GLM_FUNC_DECL vec< 3, T, Q > hsvColor(vec< 3, T, Q > const &rgbValue)
Converts a color from RGB color space to its color in HSV color space.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00014.html b/external/include/glm-0.9.9.8/doc/api/a00014.html index ff1ecebddf..5e838b7a09 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00014.html +++ b/external/include/glm-0.9.9.8/doc/api/a00014.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: color_space_YCoCg.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
color_space_YCoCg.hpp File Reference
-
-
- -

GLM_GTX_color_space_YCoCg -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCg color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCgR color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCg color space to RGB color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCgR color space to RGB color space. More...
 
-

Detailed Description

-

GLM_GTX_color_space_YCoCg

-
See also
Core features (dependence)
- -

Definition in file color_space_YCoCg.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: color_space_YCoCg.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
color_space_YCoCg.hpp File Reference
+
+
+ +

GLM_GTX_color_space_YCoCg +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCg color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCgR color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCg color space to RGB color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCgR color space to RGB color space. More...
 
+

Detailed Description

+

GLM_GTX_color_space_YCoCg

+
See also
Core features (dependence)
+ +

Definition in file color_space_YCoCg.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00014_source.html b/external/include/glm-0.9.9.8/doc/api/a00014_source.html index 9e44fd5386..903a7d9b70 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00014_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00014_source.html @@ -1,141 +1,141 @@ - - - - - - -0.9.9 API documentation: color_space_YCoCg.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
color_space_YCoCg.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T, qualifier Q>
-
34  GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCg(
-
35  vec<3, T, Q> const& rgbColor);
-
36 
-
39  template<typename T, qualifier Q>
-
40  GLM_FUNC_DECL vec<3, T, Q> YCoCg2rgb(
-
41  vec<3, T, Q> const& YCoCgColor);
-
42 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCgR(
-
48  vec<3, T, Q> const& rgbColor);
-
49 
-
53  template<typename T, qualifier Q>
-
54  GLM_FUNC_DECL vec<3, T, Q> YCoCgR2rgb(
-
55  vec<3, T, Q> const& YCoCgColor);
-
56 
-
58 }//namespace glm
-
59 
-
60 #include "color_space_YCoCg.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb(vec< 3, T, Q > const &YCoCgColor)
Convert a color from YCoCgR color space to RGB color space.
-
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb(vec< 3, T, Q > const &YCoCgColor)
Convert a color from YCoCg color space to RGB color space.
-
GLM_FUNC_DECL vec< 3, T, Q > rgbColor(vec< 3, T, Q > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
-
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg(vec< 3, T, Q > const &rgbColor)
Convert a color from RGB color space to YCoCg color space.
-
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR(vec< 3, T, Q > const &rgbColor)
Convert a color from RGB color space to YCoCgR color space.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: color_space_YCoCg.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
color_space_YCoCg.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T, qualifier Q>
+
34  GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCg(
+
35  vec<3, T, Q> const& rgbColor);
+
36 
+
39  template<typename T, qualifier Q>
+
40  GLM_FUNC_DECL vec<3, T, Q> YCoCg2rgb(
+
41  vec<3, T, Q> const& YCoCgColor);
+
42 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL vec<3, T, Q> rgb2YCoCgR(
+
48  vec<3, T, Q> const& rgbColor);
+
49 
+
53  template<typename T, qualifier Q>
+
54  GLM_FUNC_DECL vec<3, T, Q> YCoCgR2rgb(
+
55  vec<3, T, Q> const& YCoCgColor);
+
56 
+
58 }//namespace glm
+
59 
+
60 #include "color_space_YCoCg.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb(vec< 3, T, Q > const &YCoCgColor)
Convert a color from YCoCgR color space to RGB color space.
+
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb(vec< 3, T, Q > const &YCoCgColor)
Convert a color from YCoCg color space to RGB color space.
+
GLM_FUNC_DECL vec< 3, T, Q > rgbColor(vec< 3, T, Q > const &hsvValue)
Converts a color from HSV color space to its color in RGB color space.
+
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg(vec< 3, T, Q > const &rgbColor)
Convert a color from RGB color space to YCoCg color space.
+
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR(vec< 3, T, Q > const &rgbColor)
Convert a color from RGB color space to YCoCgR color space.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00015.html b/external/include/glm-0.9.9.8/doc/api/a00015.html index f01298a14d..0f9e2256d5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00015.html +++ b/external/include/glm-0.9.9.8/doc/api/a00015.html @@ -1,267 +1,267 @@ - - - - - - -0.9.9 API documentation: common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
common.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType abs (genType x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs (vec< L, T, Q > const &x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceil (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is greater than or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt (vec< L, float, Q > const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint (vec< L, float, Q > const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floor (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is less then or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 Computes and returns a * b + c. More...
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 Return x - floor(x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fract (vec< L, T, Q > const &x)
 Return x - floor(x). More...
 
template<typename genType >
GLM_FUNC_DECL genType frexp (genType x, int &exp)
 Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) More...
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat (vec< L, int, Q > const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isinf (vec< L, T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isnan (vec< L, T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename genType >
GLM_FUNC_DECL genType ldexp (genType const &x, int const &exp)
 Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType max (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, T y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType min (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT x, genTypeT y, genTypeU a)
 If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mod (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Modulus. More...
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > round (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundEven (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x)
 Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. More...
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. More...
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (T edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > trunc (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. More...
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat (vec< L, uint, Q > const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
common.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType abs (genType x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs (vec< L, T, Q > const &x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceil (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is greater than or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt (vec< L, float, Q > const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint (vec< L, float, Q > const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floor (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is less then or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 Computes and returns a * b + c. More...
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 Return x - floor(x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fract (vec< L, T, Q > const &x)
 Return x - floor(x). More...
 
template<typename genType >
GLM_FUNC_DECL genType frexp (genType x, int &exp)
 Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) More...
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat (vec< L, int, Q > const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isinf (vec< L, T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isnan (vec< L, T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename genType >
GLM_FUNC_DECL genType ldexp (genType const &x, int const &exp)
 Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType max (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, T y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType min (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT x, genTypeT y, genTypeU a)
 If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mod (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Modulus. More...
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > round (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundEven (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x)
 Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. More...
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. More...
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (T edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > trunc (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. More...
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat (vec< L, uint, Q > const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00015_source.html b/external/include/glm-0.9.9.8/doc/api/a00015_source.html index 97dfad2bca..6bc9d10357 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00015_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00015_source.html @@ -1,276 +1,276 @@ - - - - - - -0.9.9 API documentation: common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
common.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 #include "detail/qualifier.hpp"
-
18 #include "detail/_fixes.hpp"
-
19 
-
20 namespace glm
-
21 {
-
24 
-
31  template<typename genType>
-
32  GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x);
-
33 
-
42  template<length_t L, typename T, qualifier Q>
-
43  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> abs(vec<L, T, Q> const& x);
-
44 
-
53  template<length_t L, typename T, qualifier Q>
-
54  GLM_FUNC_DECL vec<L, T, Q> sign(vec<L, T, Q> const& x);
-
55 
-
64  template<length_t L, typename T, qualifier Q>
-
65  GLM_FUNC_DECL vec<L, T, Q> floor(vec<L, T, Q> const& x);
-
66 
-
76  template<length_t L, typename T, qualifier Q>
-
77  GLM_FUNC_DECL vec<L, T, Q> trunc(vec<L, T, Q> const& x);
-
78 
-
91  template<length_t L, typename T, qualifier Q>
-
92  GLM_FUNC_DECL vec<L, T, Q> round(vec<L, T, Q> const& x);
-
93 
-
105  template<length_t L, typename T, qualifier Q>
-
106  GLM_FUNC_DECL vec<L, T, Q> roundEven(vec<L, T, Q> const& x);
-
107 
-
117  template<length_t L, typename T, qualifier Q>
-
118  GLM_FUNC_DECL vec<L, T, Q> ceil(vec<L, T, Q> const& x);
-
119 
-
126  template<typename genType>
-
127  GLM_FUNC_DECL genType fract(genType x);
-
128 
-
137  template<length_t L, typename T, qualifier Q>
-
138  GLM_FUNC_DECL vec<L, T, Q> fract(vec<L, T, Q> const& x);
-
139 
-
140  template<typename genType>
-
141  GLM_FUNC_DECL genType mod(genType x, genType y);
-
142 
-
143  template<length_t L, typename T, qualifier Q>
-
144  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, T y);
-
145 
-
155  template<length_t L, typename T, qualifier Q>
-
156  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
157 
-
167  template<typename genType>
-
168  GLM_FUNC_DECL genType modf(genType x, genType& i);
-
169 
-
176  template<typename genType>
-
177  GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y);
-
178 
-
187  template<length_t L, typename T, qualifier Q>
-
188  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, T y);
-
189 
-
198  template<length_t L, typename T, qualifier Q>
-
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
200 
-
207  template<typename genType>
-
208  GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y);
-
209 
-
218  template<length_t L, typename T, qualifier Q>
-
219  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, T y);
-
220 
-
229  template<length_t L, typename T, qualifier Q>
-
230  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
231 
-
239  template<typename genType>
-
240  GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal);
-
241 
-
251  template<length_t L, typename T, qualifier Q>
-
252  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, T minVal, T maxVal);
-
253 
-
263  template<length_t L, typename T, qualifier Q>
-
264  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
-
265 
-
308  template<typename genTypeT, typename genTypeU>
-
309  GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
-
310 
-
311  template<length_t L, typename T, typename U, qualifier Q>
-
312  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, U, Q> const& a);
-
313 
-
314  template<length_t L, typename T, typename U, qualifier Q>
-
315  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, U a);
-
316 
-
321  template<typename genType>
-
322  GLM_FUNC_DECL genType step(genType edge, genType x);
-
323 
-
332  template<length_t L, typename T, qualifier Q>
-
333  GLM_FUNC_DECL vec<L, T, Q> step(T edge, vec<L, T, Q> const& x);
-
334 
-
343  template<length_t L, typename T, qualifier Q>
-
344  GLM_FUNC_DECL vec<L, T, Q> step(vec<L, T, Q> const& edge, vec<L, T, Q> const& x);
-
345 
-
360  template<typename genType>
-
361  GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
-
362 
-
363  template<length_t L, typename T, qualifier Q>
-
364  GLM_FUNC_DECL vec<L, T, Q> smoothstep(T edge0, T edge1, vec<L, T, Q> const& x);
-
365 
-
366  template<length_t L, typename T, qualifier Q>
-
367  GLM_FUNC_DECL vec<L, T, Q> smoothstep(vec<L, T, Q> const& edge0, vec<L, T, Q> const& edge1, vec<L, T, Q> const& x);
-
368 
-
383  template<length_t L, typename T, qualifier Q>
-
384  GLM_FUNC_DECL vec<L, bool, Q> isnan(vec<L, T, Q> const& x);
-
385 
-
398  template<length_t L, typename T, qualifier Q>
-
399  GLM_FUNC_DECL vec<L, bool, Q> isinf(vec<L, T, Q> const& x);
-
400 
-
407  GLM_FUNC_DECL int floatBitsToInt(float const& v);
-
408 
-
418  template<length_t L, qualifier Q>
-
419  GLM_FUNC_DECL vec<L, int, Q> floatBitsToInt(vec<L, float, Q> const& v);
-
420 
-
427  GLM_FUNC_DECL uint floatBitsToUint(float const& v);
-
428 
-
438  template<length_t L, qualifier Q>
-
439  GLM_FUNC_DECL vec<L, uint, Q> floatBitsToUint(vec<L, float, Q> const& v);
-
440 
-
449  GLM_FUNC_DECL float intBitsToFloat(int const& v);
-
450 
-
462  template<length_t L, qualifier Q>
-
463  GLM_FUNC_DECL vec<L, float, Q> intBitsToFloat(vec<L, int, Q> const& v);
-
464 
-
473  GLM_FUNC_DECL float uintBitsToFloat(uint const& v);
-
474 
-
486  template<length_t L, qualifier Q>
-
487  GLM_FUNC_DECL vec<L, float, Q> uintBitsToFloat(vec<L, uint, Q> const& v);
-
488 
-
495  template<typename genType>
-
496  GLM_FUNC_DECL genType fma(genType const& a, genType const& b, genType const& c);
-
497 
-
512  template<typename genType>
-
513  GLM_FUNC_DECL genType frexp(genType x, int& exp);
-
514 
-
515  template<length_t L, typename T, qualifier Q>
-
516  GLM_FUNC_DECL vec<L, T, Q> frexp(vec<L, T, Q> const& v, vec<L, int, Q>& exp);
-
517 
-
529  template<typename genType>
-
530  GLM_FUNC_DECL genType ldexp(genType const& x, int const& exp);
-
531 
-
532  template<length_t L, typename T, qualifier Q>
-
533  GLM_FUNC_DECL vec<L, T, Q> ldexp(vec<L, T, Q> const& v, vec<L, int, Q> const& exp);
-
534 
-
536 }//namespace glm
-
537 
-
538 #include "detail/func_common.inl"
-
539 
-
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
-
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
-
GLM_FUNC_DECL vec< L, T, Q > trunc(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
-
GLM_FUNC_DECL vec< L, T, Q > mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Modulus.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
GLM_FUNC_DECL vec< L, T, Q > round(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat(vec< L, uint, Q > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
-
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
-
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
-
GLM_FUNC_DECL vec< L, T, Q > roundEven(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL genType modf(genType x, genType &i)
Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...
-
GLM_FUNC_DECL vec< L, T, Q > ceil(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if y < x; otherwise, it returns x.
-
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat(vec< L, int, Q > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
-
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
-
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint(vec< L, float, Q > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)
Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs(vec< L, T, Q > const &x)
Returns x if x >= 0; otherwise, it returns -x.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if x < y; otherwise, it returns x.
-
GLM_FUNC_DECL vec< L, T, Q > step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
-
GLM_FUNC_DECL vec< L, T, Q > fract(vec< L, T, Q > const &x)
Return x - floor(x).
-
GLM_FUNC_DECL genType ldexp(genType const &x, int const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
-
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt(vec< L, float, Q > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
-
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
GLM_FUNC_DECL genType frexp(genType x, int &exp)
Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
common.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 #include "detail/qualifier.hpp"
+
18 #include "detail/_fixes.hpp"
+
19 
+
20 namespace glm
+
21 {
+
24 
+
31  template<typename genType>
+
32  GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x);
+
33 
+
42  template<length_t L, typename T, qualifier Q>
+
43  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> abs(vec<L, T, Q> const& x);
+
44 
+
53  template<length_t L, typename T, qualifier Q>
+
54  GLM_FUNC_DECL vec<L, T, Q> sign(vec<L, T, Q> const& x);
+
55 
+
64  template<length_t L, typename T, qualifier Q>
+
65  GLM_FUNC_DECL vec<L, T, Q> floor(vec<L, T, Q> const& x);
+
66 
+
76  template<length_t L, typename T, qualifier Q>
+
77  GLM_FUNC_DECL vec<L, T, Q> trunc(vec<L, T, Q> const& x);
+
78 
+
91  template<length_t L, typename T, qualifier Q>
+
92  GLM_FUNC_DECL vec<L, T, Q> round(vec<L, T, Q> const& x);
+
93 
+
105  template<length_t L, typename T, qualifier Q>
+
106  GLM_FUNC_DECL vec<L, T, Q> roundEven(vec<L, T, Q> const& x);
+
107 
+
117  template<length_t L, typename T, qualifier Q>
+
118  GLM_FUNC_DECL vec<L, T, Q> ceil(vec<L, T, Q> const& x);
+
119 
+
126  template<typename genType>
+
127  GLM_FUNC_DECL genType fract(genType x);
+
128 
+
137  template<length_t L, typename T, qualifier Q>
+
138  GLM_FUNC_DECL vec<L, T, Q> fract(vec<L, T, Q> const& x);
+
139 
+
140  template<typename genType>
+
141  GLM_FUNC_DECL genType mod(genType x, genType y);
+
142 
+
143  template<length_t L, typename T, qualifier Q>
+
144  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, T y);
+
145 
+
155  template<length_t L, typename T, qualifier Q>
+
156  GLM_FUNC_DECL vec<L, T, Q> mod(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
157 
+
167  template<typename genType>
+
168  GLM_FUNC_DECL genType modf(genType x, genType& i);
+
169 
+
176  template<typename genType>
+
177  GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y);
+
178 
+
187  template<length_t L, typename T, qualifier Q>
+
188  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, T y);
+
189 
+
198  template<length_t L, typename T, qualifier Q>
+
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
200 
+
207  template<typename genType>
+
208  GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y);
+
209 
+
218  template<length_t L, typename T, qualifier Q>
+
219  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, T y);
+
220 
+
229  template<length_t L, typename T, qualifier Q>
+
230  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
231 
+
239  template<typename genType>
+
240  GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal);
+
241 
+
251  template<length_t L, typename T, qualifier Q>
+
252  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, T minVal, T maxVal);
+
253 
+
263  template<length_t L, typename T, qualifier Q>
+
264  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> clamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
+
265 
+
308  template<typename genTypeT, typename genTypeU>
+
309  GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a);
+
310 
+
311  template<length_t L, typename T, typename U, qualifier Q>
+
312  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, U, Q> const& a);
+
313 
+
314  template<length_t L, typename T, typename U, qualifier Q>
+
315  GLM_FUNC_DECL vec<L, T, Q> mix(vec<L, T, Q> const& x, vec<L, T, Q> const& y, U a);
+
316 
+
321  template<typename genType>
+
322  GLM_FUNC_DECL genType step(genType edge, genType x);
+
323 
+
332  template<length_t L, typename T, qualifier Q>
+
333  GLM_FUNC_DECL vec<L, T, Q> step(T edge, vec<L, T, Q> const& x);
+
334 
+
343  template<length_t L, typename T, qualifier Q>
+
344  GLM_FUNC_DECL vec<L, T, Q> step(vec<L, T, Q> const& edge, vec<L, T, Q> const& x);
+
345 
+
360  template<typename genType>
+
361  GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x);
+
362 
+
363  template<length_t L, typename T, qualifier Q>
+
364  GLM_FUNC_DECL vec<L, T, Q> smoothstep(T edge0, T edge1, vec<L, T, Q> const& x);
+
365 
+
366  template<length_t L, typename T, qualifier Q>
+
367  GLM_FUNC_DECL vec<L, T, Q> smoothstep(vec<L, T, Q> const& edge0, vec<L, T, Q> const& edge1, vec<L, T, Q> const& x);
+
368 
+
383  template<length_t L, typename T, qualifier Q>
+
384  GLM_FUNC_DECL vec<L, bool, Q> isnan(vec<L, T, Q> const& x);
+
385 
+
398  template<length_t L, typename T, qualifier Q>
+
399  GLM_FUNC_DECL vec<L, bool, Q> isinf(vec<L, T, Q> const& x);
+
400 
+
407  GLM_FUNC_DECL int floatBitsToInt(float const& v);
+
408 
+
418  template<length_t L, qualifier Q>
+
419  GLM_FUNC_DECL vec<L, int, Q> floatBitsToInt(vec<L, float, Q> const& v);
+
420 
+
427  GLM_FUNC_DECL uint floatBitsToUint(float const& v);
+
428 
+
438  template<length_t L, qualifier Q>
+
439  GLM_FUNC_DECL vec<L, uint, Q> floatBitsToUint(vec<L, float, Q> const& v);
+
440 
+
449  GLM_FUNC_DECL float intBitsToFloat(int const& v);
+
450 
+
462  template<length_t L, qualifier Q>
+
463  GLM_FUNC_DECL vec<L, float, Q> intBitsToFloat(vec<L, int, Q> const& v);
+
464 
+
473  GLM_FUNC_DECL float uintBitsToFloat(uint const& v);
+
474 
+
486  template<length_t L, qualifier Q>
+
487  GLM_FUNC_DECL vec<L, float, Q> uintBitsToFloat(vec<L, uint, Q> const& v);
+
488 
+
495  template<typename genType>
+
496  GLM_FUNC_DECL genType fma(genType const& a, genType const& b, genType const& c);
+
497 
+
512  template<typename genType>
+
513  GLM_FUNC_DECL genType frexp(genType x, int& exp);
+
514 
+
515  template<length_t L, typename T, qualifier Q>
+
516  GLM_FUNC_DECL vec<L, T, Q> frexp(vec<L, T, Q> const& v, vec<L, int, Q>& exp);
+
517 
+
529  template<typename genType>
+
530  GLM_FUNC_DECL genType ldexp(genType const& x, int const& exp);
+
531 
+
532  template<length_t L, typename T, qualifier Q>
+
533  GLM_FUNC_DECL vec<L, T, Q> ldexp(vec<L, T, Q> const& v, vec<L, int, Q> const& exp);
+
534 
+
536 }//namespace glm
+
537 
+
538 #include "detail/func_common.inl"
+
539 
+
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is less then or equal to x.
+
GLM_FUNC_DECL genType fma(genType const &a, genType const &b, genType const &c)
Computes and returns a * b + c.
+
GLM_FUNC_DECL vec< L, T, Q > trunc(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...
+
GLM_FUNC_DECL vec< L, T, Q > mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Modulus.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
+
GLM_FUNC_DECL vec< L, T, Q > round(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
+
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat(vec< L, uint, Q > const &v)
Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...
+
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x)
Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
+
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
+
GLM_FUNC_DECL vec< L, T, Q > roundEven(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
+
GLM_FUNC_DECL genType modf(genType x, genType &i)
Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...
+
GLM_FUNC_DECL vec< L, T, Q > ceil(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer that is greater than or equal to x.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if y < x; otherwise, it returns x.
+
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat(vec< L, int, Q > const &v)
Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...
+
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
+
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x.
+
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint(vec< L, float, Q > const &v)
Returns a unsigned integer value representing the encoding of a floating-point value.
+
GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)
Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs(vec< L, T, Q > const &x)
Returns x if x >= 0; otherwise, it returns -x.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns y if x < y; otherwise, it returns x.
+
GLM_FUNC_DECL vec< L, T, Q > step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
+
GLM_FUNC_DECL vec< L, T, Q > fract(vec< L, T, Q > const &x)
Return x - floor(x).
+
GLM_FUNC_DECL genType ldexp(genType const &x, int const &exp)
Builds a floating-point number from x and the corresponding integral exponent of two in exp...
+
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt(vec< L, float, Q > const &v)
Returns a signed integer value representing the encoding of a floating-point value.
+
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
GLM_FUNC_DECL genType frexp(genType x, int &exp)
Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00016.html b/external/include/glm-0.9.9.8/doc/api/a00016.html index 087b7bd2b7..82bb375086 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00016.html +++ b/external/include/glm-0.9.9.8/doc/api/a00016.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtx/common.hpp File Reference
-
-
- -

GLM_GTX_common -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > closeBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmod (vec< L, T, Q > const &v)
 Similar to 'mod' but with a different rounding and integer support. More...
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > openBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
-

Detailed Description

-

GLM_GTX_common

-
See also
Core features (dependence)
- -

Definition in file gtx/common.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtx/common.hpp File Reference
+
+
+ +

GLM_GTX_common +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > closeBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmod (vec< L, T, Q > const &v)
 Similar to 'mod' but with a different rounding and integer support. More...
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > openBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
+

Detailed Description

+

GLM_GTX_common

+
See also
Core features (dependence)
+ +

Definition in file gtx/common.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00016_source.html b/external/include/glm-0.9.9.8/doc/api/a00016_source.html index 9d1538e9cd..0833436df8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00016_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00016_source.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/common.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies:
-
16 #include "../vec2.hpp"
-
17 #include "../vec3.hpp"
-
18 #include "../vec4.hpp"
-
19 #include "../gtc/vec1.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_common extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
42  template<typename genType>
-
43  GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const& x);
-
44 
-
50  template<length_t L, typename T, qualifier Q>
-
51  GLM_FUNC_DECL vec<L, T, Q> fmod(vec<L, T, Q> const& v);
-
52 
-
60  template <length_t L, typename T, qualifier Q>
-
61  GLM_FUNC_DECL vec<L, bool, Q> openBounded(vec<L, T, Q> const& Value, vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
-
62 
-
70  template <length_t L, typename T, qualifier Q>
-
71  GLM_FUNC_DECL vec<L, bool, Q> closeBounded(vec<L, T, Q> const& Value, vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
-
72 
-
74 }//namespace glm
-
75 
-
76 #include "common.inl"
-
GLM_FUNC_DECL vec< L, T, Q > fmod(vec< L, T, Q > const &v)
Similar to 'mod' but with a different rounding and integer support.
-
GLM_FUNC_DECL vec< L, bool, Q > openBounded(vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Returns whether vector components values are within an interval.
-
GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)
Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...
-
Definition: common.hpp:20
-
GLM_FUNC_DECL vec< L, bool, Q > closeBounded(vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Returns whether vector components values are within an interval.
-
- - - - + + + + + + +0.9.9 API documentation: common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/common.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies:
+
16 #include "../vec2.hpp"
+
17 #include "../vec3.hpp"
+
18 #include "../vec4.hpp"
+
19 #include "../gtc/vec1.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_common extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
42  template<typename genType>
+
43  GLM_FUNC_DECL typename genType::bool_type isdenormal(genType const& x);
+
44 
+
50  template<length_t L, typename T, qualifier Q>
+
51  GLM_FUNC_DECL vec<L, T, Q> fmod(vec<L, T, Q> const& v);
+
52 
+
60  template <length_t L, typename T, qualifier Q>
+
61  GLM_FUNC_DECL vec<L, bool, Q> openBounded(vec<L, T, Q> const& Value, vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
+
62 
+
70  template <length_t L, typename T, qualifier Q>
+
71  GLM_FUNC_DECL vec<L, bool, Q> closeBounded(vec<L, T, Q> const& Value, vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
+
72 
+
74 }//namespace glm
+
75 
+
76 #include "common.inl"
+
GLM_FUNC_DECL vec< L, T, Q > fmod(vec< L, T, Q > const &v)
Similar to 'mod' but with a different rounding and integer support.
+
GLM_FUNC_DECL vec< L, bool, Q > openBounded(vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Returns whether vector components values are within an interval.
+
GLM_FUNC_DECL genType::bool_type isdenormal(genType const &x)
Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...
+
Definition: common.hpp:20
+
GLM_FUNC_DECL vec< L, bool, Q > closeBounded(vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Returns whether vector components values are within an interval.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00017.html b/external/include/glm-0.9.9.8/doc/api/a00017.html index 6be0c648b9..f5eda22a34 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00017.html +++ b/external/include/glm-0.9.9.8/doc/api/a00017.html @@ -1,443 +1,443 @@ - - - - - - -0.9.9 API documentation: compatibility.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
compatibility.hpp File Reference
-
-
- -

GLM_GTX_compatibility -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef bool bool1
 boolean type with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef bool bool1x1
 boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, bool, highp > bool2
 boolean type with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, bool, highp > bool2x2
 boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, bool, highp > bool2x3
 boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, bool, highp > bool2x4
 boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, bool, highp > bool3
 boolean type with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, bool, highp > bool3x2
 boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, bool, highp > bool3x3
 boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, bool, highp > bool3x4
 boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, bool, highp > bool4
 boolean type with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, bool, highp > bool4x2
 boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, bool, highp > bool4x3
 boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, bool, highp > bool4x4
 boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef double double1
 double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef double double1x1
 double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, double, highp > double2
 double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, double, highp > double2x2
 double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, double, highp > double2x3
 double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, double, highp > double2x4
 double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, double, highp > double3
 double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, double, highp > double3x2
 double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, double, highp > double3x3
 double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, double, highp > double3x4
 double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, double, highp > double4
 double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, double, highp > double4x2
 double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, double, highp > double4x3
 double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, double, highp > double4x4
 double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef float float1
 single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef float float1x1
 single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, float, highp > float2
 single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, float, highp > float2x2
 single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, float, highp > float2x3
 single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, float, highp > float2x4
 single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, float, highp > float3
 single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, float, highp > float3x2
 single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, float, highp > float3x3
 single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, float, highp > float3x4
 single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, float, highp > float4
 single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, float, highp > float4x2
 single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, float, highp > float4x3
 single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, float, highp > float4x4
 single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef int int1
 integer vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef int int1x1
 integer matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, int, highp > int2
 integer vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, int, highp > int2x2
 integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, int, highp > int2x3
 integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, int, highp > int2x4
 integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, int, highp > int3
 integer vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, int, highp > int3x2
 integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, int, highp > int3x3
 integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, int, highp > int3x4
 integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, int, highp > int4
 integer vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, int, highp > int4x2
 integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, int, highp > int4x3
 integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, int, highp > int4x4
 integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > atan2 (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > atan2 (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2 (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, bool, Q > isfinite (const vec< 1, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, bool, Q > isfinite (const vec< 2, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, bool, Q > isfinite (const vec< 3, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isfinite (const vec< 4, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T saturate (T x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > saturate (const vec< 2, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > saturate (const vec< 3, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate (const vec< 4, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-

Detailed Description

-

GLM_GTX_compatibility

-
See also
Core features (dependence)
- -

Definition in file compatibility.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: compatibility.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
compatibility.hpp File Reference
+
+
+ +

GLM_GTX_compatibility +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef bool bool1
 boolean type with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef bool bool1x1
 boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, bool, highp > bool2
 boolean type with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, bool, highp > bool2x2
 boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, bool, highp > bool2x3
 boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, bool, highp > bool2x4
 boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, bool, highp > bool3
 boolean type with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, bool, highp > bool3x2
 boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, bool, highp > bool3x3
 boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, bool, highp > bool3x4
 boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, bool, highp > bool4
 boolean type with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, bool, highp > bool4x2
 boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, bool, highp > bool4x3
 boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, bool, highp > bool4x4
 boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef double double1
 double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef double double1x1
 double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, double, highp > double2
 double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, double, highp > double2x2
 double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, double, highp > double2x3
 double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, double, highp > double2x4
 double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, double, highp > double3
 double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, double, highp > double3x2
 double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, double, highp > double3x3
 double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, double, highp > double3x4
 double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, double, highp > double4
 double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, double, highp > double4x2
 double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, double, highp > double4x3
 double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, double, highp > double4x4
 double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef float float1
 single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef float float1x1
 single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, float, highp > float2
 single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, float, highp > float2x2
 single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, float, highp > float2x3
 single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, float, highp > float2x4
 single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, float, highp > float3
 single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, float, highp > float3x2
 single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, float, highp > float3x3
 single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, float, highp > float3x4
 single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, float, highp > float4
 single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, float, highp > float4x2
 single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, float, highp > float4x3
 single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, float, highp > float4x4
 single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef int int1
 integer vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef int int1x1
 integer matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, int, highp > int2
 integer vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, int, highp > int2x2
 integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, int, highp > int2x3
 integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, int, highp > int2x4
 integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, int, highp > int3
 integer vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, int, highp > int3x2
 integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, int, highp > int3x3
 integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, int, highp > int3x4
 integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, int, highp > int4
 integer vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, int, highp > int4x2
 integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, int, highp > int4x3
 integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, int, highp > int4x4
 integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > atan2 (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > atan2 (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2 (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, bool, Q > isfinite (const vec< 1, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, bool, Q > isfinite (const vec< 2, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, bool, Q > isfinite (const vec< 3, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isfinite (const vec< 4, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T saturate (T x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > saturate (const vec< 2, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > saturate (const vec< 3, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate (const vec< 4, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+

Detailed Description

+

GLM_GTX_compatibility

+
See also
Core features (dependence)
+ +

Definition in file compatibility.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00017_source.html b/external/include/glm-0.9.9.8/doc/api/a00017_source.html index f3f9477f35..206d3954f9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00017_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00017_source.html @@ -1,282 +1,282 @@ - - - - - - -0.9.9 API documentation: compatibility.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
compatibility.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include "../gtc/quaternion.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_compatibility extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 #if GLM_COMPILER & GLM_COMPILER_VC
-
28 # include <cfloat>
-
29 #elif GLM_COMPILER & GLM_COMPILER_GCC
-
30 # include <cmath>
-
31 # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
32 # undef isfinite
-
33 # endif
-
34 #endif//GLM_COMPILER
-
35 
-
36 namespace glm
-
37 {
-
40 
-
41  template<typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
-
42  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> lerp(const vec<2, T, Q>& x, const vec<2, T, Q>& y, T a){return mix(x, y, a);}
-
43 
-
44  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> lerp(const vec<3, T, Q>& x, const vec<3, T, Q>& y, T a){return mix(x, y, a);}
-
45  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> lerp(const vec<4, T, Q>& x, const vec<4, T, Q>& y, T a){return mix(x, y, a);}
-
46  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> lerp(const vec<2, T, Q>& x, const vec<2, T, Q>& y, const vec<2, T, Q>& a){return mix(x, y, a);}
-
47  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> lerp(const vec<3, T, Q>& x, const vec<3, T, Q>& y, const vec<3, T, Q>& a){return mix(x, y, a);}
-
48  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> lerp(const vec<4, T, Q>& x, const vec<4, T, Q>& y, const vec<4, T, Q>& a){return mix(x, y, a);}
-
49 
-
50  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
-
51  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> saturate(const vec<2, T, Q>& x){return clamp(x, T(0), T(1));}
-
52  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> saturate(const vec<3, T, Q>& x){return clamp(x, T(0), T(1));}
-
53  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> saturate(const vec<4, T, Q>& x){return clamp(x, T(0), T(1));}
-
54 
-
55  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
-
56  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> atan2(const vec<2, T, Q>& x, const vec<2, T, Q>& y){return atan(x, y);}
-
57  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> atan2(const vec<3, T, Q>& x, const vec<3, T, Q>& y){return atan(x, y);}
-
58  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> atan2(const vec<4, T, Q>& x, const vec<4, T, Q>& y){return atan(x, y);}
-
59 
-
60  template<typename genType> GLM_FUNC_DECL bool isfinite(genType const& x);
-
61  template<typename T, qualifier Q> GLM_FUNC_DECL vec<1, bool, Q> isfinite(const vec<1, T, Q>& x);
-
62  template<typename T, qualifier Q> GLM_FUNC_DECL vec<2, bool, Q> isfinite(const vec<2, T, Q>& x);
-
63  template<typename T, qualifier Q> GLM_FUNC_DECL vec<3, bool, Q> isfinite(const vec<3, T, Q>& x);
-
64  template<typename T, qualifier Q> GLM_FUNC_DECL vec<4, bool, Q> isfinite(const vec<4, T, Q>& x);
-
65 
-
66  typedef bool bool1;
-
67  typedef vec<2, bool, highp> bool2;
-
68  typedef vec<3, bool, highp> bool3;
-
69  typedef vec<4, bool, highp> bool4;
-
70 
-
71  typedef bool bool1x1;
-
72  typedef mat<2, 2, bool, highp> bool2x2;
-
73  typedef mat<2, 3, bool, highp> bool2x3;
-
74  typedef mat<2, 4, bool, highp> bool2x4;
-
75  typedef mat<3, 2, bool, highp> bool3x2;
-
76  typedef mat<3, 3, bool, highp> bool3x3;
-
77  typedef mat<3, 4, bool, highp> bool3x4;
-
78  typedef mat<4, 2, bool, highp> bool4x2;
-
79  typedef mat<4, 3, bool, highp> bool4x3;
-
80  typedef mat<4, 4, bool, highp> bool4x4;
-
81 
-
82  typedef int int1;
-
83  typedef vec<2, int, highp> int2;
-
84  typedef vec<3, int, highp> int3;
-
85  typedef vec<4, int, highp> int4;
-
86 
-
87  typedef int int1x1;
-
88  typedef mat<2, 2, int, highp> int2x2;
-
89  typedef mat<2, 3, int, highp> int2x3;
-
90  typedef mat<2, 4, int, highp> int2x4;
-
91  typedef mat<3, 2, int, highp> int3x2;
-
92  typedef mat<3, 3, int, highp> int3x3;
-
93  typedef mat<3, 4, int, highp> int3x4;
-
94  typedef mat<4, 2, int, highp> int4x2;
-
95  typedef mat<4, 3, int, highp> int4x3;
-
96  typedef mat<4, 4, int, highp> int4x4;
-
97 
-
98  typedef float float1;
-
99  typedef vec<2, float, highp> float2;
-
100  typedef vec<3, float, highp> float3;
-
101  typedef vec<4, float, highp> float4;
-
102 
-
103  typedef float float1x1;
-
104  typedef mat<2, 2, float, highp> float2x2;
-
105  typedef mat<2, 3, float, highp> float2x3;
-
106  typedef mat<2, 4, float, highp> float2x4;
-
107  typedef mat<3, 2, float, highp> float3x2;
-
108  typedef mat<3, 3, float, highp> float3x3;
-
109  typedef mat<3, 4, float, highp> float3x4;
-
110  typedef mat<4, 2, float, highp> float4x2;
-
111  typedef mat<4, 3, float, highp> float4x3;
-
112  typedef mat<4, 4, float, highp> float4x4;
-
113 
-
114  typedef double double1;
-
115  typedef vec<2, double, highp> double2;
-
116  typedef vec<3, double, highp> double3;
-
117  typedef vec<4, double, highp> double4;
-
118 
-
119  typedef double double1x1;
-
120  typedef mat<2, 2, double, highp> double2x2;
-
121  typedef mat<2, 3, double, highp> double2x3;
-
122  typedef mat<2, 4, double, highp> double2x4;
-
123  typedef mat<3, 2, double, highp> double3x2;
-
124  typedef mat<3, 3, double, highp> double3x3;
-
125  typedef mat<3, 4, double, highp> double3x4;
-
126  typedef mat<4, 2, double, highp> double4x2;
-
127  typedef mat<4, 3, double, highp> double4x3;
-
128  typedef mat<4, 4, double, highp> double4x4;
-
129 
-
131 }//namespace glm
-
132 
-
133 #include "compatibility.inl"
-
mat< 4, 4, double, highp > double4x4
double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
mat< 3, 4, int, highp > int3x4
integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_DECL vec< L, T, Q > atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)
Arc tangent.
-
bool bool1
boolean type with 1 component. (From GLM_GTX_compatibility extension)
-
mat< 4, 3, float, highp > float4x3
single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
mat< 4, 4, float, highp > float4x4
single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 4, double, highp > double2x4
double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 2, double, highp > double2x2
double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
mat< 3, 2, double, highp > double3x2
double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...
-
double double1x1
double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...
-
mat< 3, 3, double, highp > double3x3
double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
vec< 4, float, highp > float4
single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
int int1x1
integer matrix with 1 component. (From GLM_GTX_compatibility extension)
-
vec< 2, float, highp > float2
single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL vec< 4, bool, Q > isfinite(const vec< 4, T, Q > &x)
Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...
-
mat< 2, 3, bool, highp > bool2x3
boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
mat< 2, 3, int, highp > int2x3
integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-
int int1
integer vector with 1 component. (From GLM_GTX_compatibility extension)
-
vec< 3, float, highp > float3
single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 4, float, highp > float2x4
single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 2, bool, highp > bool2x2
boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 4, bool, highp > bool4x4
boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
float float1
single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
float float1x1
single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
-
mat< 4, 2, double, highp > double4x2
double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
mat< 4, 3, int, highp > int4x3
integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 2, bool, highp > bool4x2
boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
mat< 2, 2, float, highp > float2x2
single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
-
vec< 3, int, highp > int3
integer vector with 3 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 2, float, highp > float4x2
single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 3, double, highp > double2x3
double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
mat< 2, 3, float, highp > float2x3
single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
-
mat< 3, 2, int, highp > int3x2
integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
vec< 4, bool, highp > bool4
boolean type with 4 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 2, int, highp > int4x2
integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-
bool bool1x1
boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate(const vec< 4, T, Q > &x)
Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
-
vec< 3, bool, highp > bool3
boolean type with 3 components. (From GLM_GTX_compatibility extension)
-
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
-
mat< 2, 2, int, highp > int2x2
integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-
vec< 2, int, highp > int2
integer vector with 2 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 4, int, highp > int4x4
integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-
mat< 3, 2, bool, highp > bool3x2
boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-
mat< 4, 3, double, highp > double4x3
double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
-
mat< 4, 3, bool, highp > bool4x3
boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-
double double1
double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
-
vec< 3, double, highp > double3
double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
-
vec< 4, double, highp > double4
double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
-
mat< 3, 3, int, highp > int3x3
integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
mat< 3, 3, bool, highp > bool3x3
boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-
mat< 3, 2, float, highp > float3x2
single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
-
vec< 4, int, highp > int4
integer vector with 4 components. (From GLM_GTX_compatibility extension)
-
vec< 2, double, highp > double2
double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
-
mat< 3, 3, float, highp > float3x3
single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
-
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
vec< 2, bool, highp > bool2
boolean type with 2 components. (From GLM_GTX_compatibility extension)
-
mat< 3, 4, bool, highp > bool3x4
boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-
mat< 2, 4, int, highp > int2x4
integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
mat< 2, 4, bool, highp > bool2x4
boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-
mat< 3, 4, double, highp > double3x4
double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
Definition: common.hpp:20
-
mat< 3, 4, float, highp > float3x4
single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
-
- - - - + + + + + + +0.9.9 API documentation: compatibility.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
compatibility.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include "../gtc/quaternion.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_compatibility extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 #if GLM_COMPILER & GLM_COMPILER_VC
+
28 # include <cfloat>
+
29 #elif GLM_COMPILER & GLM_COMPILER_GCC
+
30 # include <cmath>
+
31 # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
+
32 # undef isfinite
+
33 # endif
+
34 #endif//GLM_COMPILER
+
35 
+
36 namespace glm
+
37 {
+
40 
+
41  template<typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}
+
42  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> lerp(const vec<2, T, Q>& x, const vec<2, T, Q>& y, T a){return mix(x, y, a);}
+
43 
+
44  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> lerp(const vec<3, T, Q>& x, const vec<3, T, Q>& y, T a){return mix(x, y, a);}
+
45  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> lerp(const vec<4, T, Q>& x, const vec<4, T, Q>& y, T a){return mix(x, y, a);}
+
46  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> lerp(const vec<2, T, Q>& x, const vec<2, T, Q>& y, const vec<2, T, Q>& a){return mix(x, y, a);}
+
47  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> lerp(const vec<3, T, Q>& x, const vec<3, T, Q>& y, const vec<3, T, Q>& a){return mix(x, y, a);}
+
48  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> lerp(const vec<4, T, Q>& x, const vec<4, T, Q>& y, const vec<4, T, Q>& a){return mix(x, y, a);}
+
49 
+
50  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}
+
51  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> saturate(const vec<2, T, Q>& x){return clamp(x, T(0), T(1));}
+
52  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> saturate(const vec<3, T, Q>& x){return clamp(x, T(0), T(1));}
+
53  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> saturate(const vec<4, T, Q>& x){return clamp(x, T(0), T(1));}
+
54 
+
55  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}
+
56  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<2, T, Q> atan2(const vec<2, T, Q>& x, const vec<2, T, Q>& y){return atan(x, y);}
+
57  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<3, T, Q> atan2(const vec<3, T, Q>& x, const vec<3, T, Q>& y){return atan(x, y);}
+
58  template<typename T, qualifier Q> GLM_FUNC_QUALIFIER vec<4, T, Q> atan2(const vec<4, T, Q>& x, const vec<4, T, Q>& y){return atan(x, y);}
+
59 
+
60  template<typename genType> GLM_FUNC_DECL bool isfinite(genType const& x);
+
61  template<typename T, qualifier Q> GLM_FUNC_DECL vec<1, bool, Q> isfinite(const vec<1, T, Q>& x);
+
62  template<typename T, qualifier Q> GLM_FUNC_DECL vec<2, bool, Q> isfinite(const vec<2, T, Q>& x);
+
63  template<typename T, qualifier Q> GLM_FUNC_DECL vec<3, bool, Q> isfinite(const vec<3, T, Q>& x);
+
64  template<typename T, qualifier Q> GLM_FUNC_DECL vec<4, bool, Q> isfinite(const vec<4, T, Q>& x);
+
65 
+
66  typedef bool bool1;
+
67  typedef vec<2, bool, highp> bool2;
+
68  typedef vec<3, bool, highp> bool3;
+
69  typedef vec<4, bool, highp> bool4;
+
70 
+
71  typedef bool bool1x1;
+
72  typedef mat<2, 2, bool, highp> bool2x2;
+
73  typedef mat<2, 3, bool, highp> bool2x3;
+
74  typedef mat<2, 4, bool, highp> bool2x4;
+
75  typedef mat<3, 2, bool, highp> bool3x2;
+
76  typedef mat<3, 3, bool, highp> bool3x3;
+
77  typedef mat<3, 4, bool, highp> bool3x4;
+
78  typedef mat<4, 2, bool, highp> bool4x2;
+
79  typedef mat<4, 3, bool, highp> bool4x3;
+
80  typedef mat<4, 4, bool, highp> bool4x4;
+
81 
+
82  typedef int int1;
+
83  typedef vec<2, int, highp> int2;
+
84  typedef vec<3, int, highp> int3;
+
85  typedef vec<4, int, highp> int4;
+
86 
+
87  typedef int int1x1;
+
88  typedef mat<2, 2, int, highp> int2x2;
+
89  typedef mat<2, 3, int, highp> int2x3;
+
90  typedef mat<2, 4, int, highp> int2x4;
+
91  typedef mat<3, 2, int, highp> int3x2;
+
92  typedef mat<3, 3, int, highp> int3x3;
+
93  typedef mat<3, 4, int, highp> int3x4;
+
94  typedef mat<4, 2, int, highp> int4x2;
+
95  typedef mat<4, 3, int, highp> int4x3;
+
96  typedef mat<4, 4, int, highp> int4x4;
+
97 
+
98  typedef float float1;
+
99  typedef vec<2, float, highp> float2;
+
100  typedef vec<3, float, highp> float3;
+
101  typedef vec<4, float, highp> float4;
+
102 
+
103  typedef float float1x1;
+
104  typedef mat<2, 2, float, highp> float2x2;
+
105  typedef mat<2, 3, float, highp> float2x3;
+
106  typedef mat<2, 4, float, highp> float2x4;
+
107  typedef mat<3, 2, float, highp> float3x2;
+
108  typedef mat<3, 3, float, highp> float3x3;
+
109  typedef mat<3, 4, float, highp> float3x4;
+
110  typedef mat<4, 2, float, highp> float4x2;
+
111  typedef mat<4, 3, float, highp> float4x3;
+
112  typedef mat<4, 4, float, highp> float4x4;
+
113 
+
114  typedef double double1;
+
115  typedef vec<2, double, highp> double2;
+
116  typedef vec<3, double, highp> double3;
+
117  typedef vec<4, double, highp> double4;
+
118 
+
119  typedef double double1x1;
+
120  typedef mat<2, 2, double, highp> double2x2;
+
121  typedef mat<2, 3, double, highp> double2x3;
+
122  typedef mat<2, 4, double, highp> double2x4;
+
123  typedef mat<3, 2, double, highp> double3x2;
+
124  typedef mat<3, 3, double, highp> double3x3;
+
125  typedef mat<3, 4, double, highp> double3x4;
+
126  typedef mat<4, 2, double, highp> double4x2;
+
127  typedef mat<4, 3, double, highp> double4x3;
+
128  typedef mat<4, 4, double, highp> double4x4;
+
129 
+
131 }//namespace glm
+
132 
+
133 #include "compatibility.inl"
+
mat< 4, 4, double, highp > double4x4
double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
+
mat< 3, 4, int, highp > int3x4
integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+
GLM_FUNC_DECL vec< L, T, Q > atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)
Arc tangent.
+
bool bool1
boolean type with 1 component. (From GLM_GTX_compatibility extension)
+
mat< 4, 3, float, highp > float4x3
single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
+
mat< 4, 4, float, highp > float4x4
single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 4, double, highp > double2x4
double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 2, double, highp > double2x2
double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
+
mat< 3, 2, double, highp > double3x2
double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...
+
double double1x1
double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...
+
mat< 3, 3, double, highp > double3x3
double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
+
vec< 4, float, highp > float4
single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
+
int int1x1
integer matrix with 1 component. (From GLM_GTX_compatibility extension)
+
vec< 2, float, highp > float2
single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_DECL vec< 4, bool, Q > isfinite(const vec< 4, T, Q > &x)
Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...
+
mat< 2, 3, bool, highp > bool2x3
boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+
mat< 2, 3, int, highp > int2x3
integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
+
int int1
integer vector with 1 component. (From GLM_GTX_compatibility extension)
+
vec< 3, float, highp > float3
single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 4, float, highp > float2x4
single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 2, bool, highp > bool2x2
boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 4, bool, highp > bool4x4
boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+
float float1
single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
+
float float1x1
single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...
+
mat< 4, 2, double, highp > double4x2
double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
+
mat< 4, 3, int, highp > int4x3
integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 2, bool, highp > bool4x2
boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+
mat< 2, 2, float, highp > float2x2
single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...
+
vec< 3, int, highp > int3
integer vector with 3 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 2, float, highp > float4x2
single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 3, double, highp > double2x3
double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
+
mat< 2, 3, float, highp > float2x3
single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...
+
mat< 3, 2, int, highp > int3x2
integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+
vec< 4, bool, highp > bool4
boolean type with 4 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 2, int, highp > int4x2
integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
+
bool bool1x1
boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
+
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate(const vec< 4, T, Q > &x)
Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
+
vec< 3, bool, highp > bool3
boolean type with 3 components. (From GLM_GTX_compatibility extension)
+
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal)
Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...
+
mat< 2, 2, int, highp > int2x2
integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
+
vec< 2, int, highp > int2
integer vector with 2 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 4, int, highp > int4x4
integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
+
mat< 3, 2, bool, highp > bool3x2
boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
+
mat< 4, 3, double, highp > double4x3
double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...
+
mat< 4, 3, bool, highp > bool4x3
boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
+
double double1
double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...
+
vec< 3, double, highp > double3
double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...
+
vec< 4, double, highp > double4
double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...
+
mat< 3, 3, int, highp > int3x3
integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+
mat< 3, 3, bool, highp > bool3x3
boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
+
mat< 3, 2, float, highp > float3x2
single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...
+
vec< 4, int, highp > int4
integer vector with 4 components. (From GLM_GTX_compatibility extension)
+
vec< 2, double, highp > double2
double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...
+
mat< 3, 3, float, highp > float3x3
single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...
+
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
vec< 2, bool, highp > bool2
boolean type with 2 components. (From GLM_GTX_compatibility extension)
+
mat< 3, 4, bool, highp > bool3x4
boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
+
mat< 2, 4, int, highp > int2x4
integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+
mat< 2, 4, bool, highp > bool2x4
boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
+
mat< 3, 4, double, highp > double3x4
double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
+
Definition: common.hpp:20
+
mat< 3, 4, float, highp > float3x4
single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00018.html b/external/include/glm-0.9.9.8/doc/api/a00018.html index 77c4ea42cf..5d5fd80405 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00018.html +++ b/external/include/glm-0.9.9.8/doc/api/a00018.html @@ -1,141 +1,141 @@ - - - - - - -0.9.9 API documentation: component_wise.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
component_wise.hpp File Reference
-
-
- -

GLM_GTX_component_wise -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 Add all vector components together. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 Find the maximum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 Find the minimum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 Multiply all vector components together. More...
 
template<typename floatType , length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize (vec< L, T, Q > const &v)
 Convert an integer vector to a normalized float vector. More...
 
template<length_t L, typename T , typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > compScale (vec< L, floatType, Q > const &v)
 Convert a normalized float vector to an integer vector. More...
 
-

Detailed Description

-

GLM_GTX_component_wise

-
Date
2007-05-21 / 2011-06-07
-
Author
Christophe Riccio
-
See also
Core features (dependence)
- -

Definition in file component_wise.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: component_wise.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
component_wise.hpp File Reference
+
+
+ +

GLM_GTX_component_wise +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 Add all vector components together. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 Find the maximum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 Find the minimum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 Multiply all vector components together. More...
 
template<typename floatType , length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize (vec< L, T, Q > const &v)
 Convert an integer vector to a normalized float vector. More...
 
template<length_t L, typename T , typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > compScale (vec< L, floatType, Q > const &v)
 Convert a normalized float vector to an integer vector. More...
 
+

Detailed Description

+

GLM_GTX_component_wise

+
Date
2007-05-21 / 2011-06-07
+
Author
Christophe Riccio
+
See also
Core features (dependence)
+ +

Definition in file component_wise.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00018_source.html b/external/include/glm-0.9.9.8/doc/api/a00018_source.html index f23768887b..81414087d5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00018_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00018_source.html @@ -1,145 +1,145 @@ - - - - - - -0.9.9 API documentation: component_wise.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
component_wise.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependencies
-
18 #include "../detail/setup.hpp"
-
19 #include "../detail/qualifier.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_component_wise extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
37  template<typename floatType, length_t L, typename T, qualifier Q>
-
38  GLM_FUNC_DECL vec<L, floatType, Q> compNormalize(vec<L, T, Q> const& v);
-
39 
-
43  template<length_t L, typename T, typename floatType, qualifier Q>
-
44  GLM_FUNC_DECL vec<L, T, Q> compScale(vec<L, floatType, Q> const& v);
-
45 
-
48  template<typename genType>
-
49  GLM_FUNC_DECL typename genType::value_type compAdd(genType const& v);
-
50 
-
53  template<typename genType>
-
54  GLM_FUNC_DECL typename genType::value_type compMul(genType const& v);
-
55 
-
58  template<typename genType>
-
59  GLM_FUNC_DECL typename genType::value_type compMin(genType const& v);
-
60 
-
63  template<typename genType>
-
64  GLM_FUNC_DECL typename genType::value_type compMax(genType const& v);
-
65 
-
67 }//namespace glm
-
68 
-
69 #include "component_wise.inl"
-
GLM_FUNC_DECL genType::value_type compMax(genType const &v)
Find the maximum value between single vector components.
-
GLM_FUNC_DECL genType::value_type compMul(genType const &v)
Multiply all vector components together.
-
GLM_FUNC_DECL vec< L, T, Q > compScale(vec< L, floatType, Q > const &v)
Convert a normalized float vector to an integer vector.
-
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize(vec< L, T, Q > const &v)
Convert an integer vector to a normalized float vector.
-
GLM_FUNC_DECL genType::value_type compMin(genType const &v)
Find the minimum value between single vector components.
-
GLM_FUNC_DECL genType::value_type compAdd(genType const &v)
Add all vector components together.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: component_wise.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
component_wise.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependencies
+
18 #include "../detail/setup.hpp"
+
19 #include "../detail/qualifier.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_component_wise extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
37  template<typename floatType, length_t L, typename T, qualifier Q>
+
38  GLM_FUNC_DECL vec<L, floatType, Q> compNormalize(vec<L, T, Q> const& v);
+
39 
+
43  template<length_t L, typename T, typename floatType, qualifier Q>
+
44  GLM_FUNC_DECL vec<L, T, Q> compScale(vec<L, floatType, Q> const& v);
+
45 
+
48  template<typename genType>
+
49  GLM_FUNC_DECL typename genType::value_type compAdd(genType const& v);
+
50 
+
53  template<typename genType>
+
54  GLM_FUNC_DECL typename genType::value_type compMul(genType const& v);
+
55 
+
58  template<typename genType>
+
59  GLM_FUNC_DECL typename genType::value_type compMin(genType const& v);
+
60 
+
63  template<typename genType>
+
64  GLM_FUNC_DECL typename genType::value_type compMax(genType const& v);
+
65 
+
67 }//namespace glm
+
68 
+
69 #include "component_wise.inl"
+
GLM_FUNC_DECL genType::value_type compMax(genType const &v)
Find the maximum value between single vector components.
+
GLM_FUNC_DECL genType::value_type compMul(genType const &v)
Multiply all vector components together.
+
GLM_FUNC_DECL vec< L, T, Q > compScale(vec< L, floatType, Q > const &v)
Convert a normalized float vector to an integer vector.
+
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize(vec< L, T, Q > const &v)
Convert an integer vector to a normalized float vector.
+
GLM_FUNC_DECL genType::value_type compMin(genType const &v)
Find the minimum value between single vector components.
+
GLM_FUNC_DECL genType::value_type compAdd(genType const &v)
Add all vector components together.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00019_source.html b/external/include/glm-0.9.9.8/doc/api/a00019_source.html index 4b53c55487..d2fd66f722 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00019_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00019_source.html @@ -1,150 +1,150 @@ - - - - - - -0.9.9 API documentation: compute_common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
compute_common.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "setup.hpp"
-
4 #include <limits>
-
5 
-
6 namespace glm{
-
7 namespace detail
-
8 {
-
9  template<typename genFIType, bool /*signed*/>
-
10  struct compute_abs
-
11  {};
-
12 
-
13  template<typename genFIType>
-
14  struct compute_abs<genFIType, true>
-
15  {
-
16  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
-
17  {
-
18  GLM_STATIC_ASSERT(
-
19  std::numeric_limits<genFIType>::is_iec559 || std::numeric_limits<genFIType>::is_signed,
-
20  "'abs' only accept floating-point and integer scalar or vector inputs");
-
21 
-
22  return x >= genFIType(0) ? x : -x;
-
23  // TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff;
-
24  }
-
25  };
-
26 
-
27 #if GLM_COMPILER & GLM_COMPILER_CUDA
-
28  template<>
-
29  struct compute_abs<float, true>
-
30  {
-
31  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static float call(float x)
-
32  {
-
33  return fabsf(x);
-
34  }
-
35  };
-
36 #endif
-
37 
-
38  template<typename genFIType>
-
39  struct compute_abs<genFIType, false>
-
40  {
-
41  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
-
42  {
-
43  GLM_STATIC_ASSERT(
-
44  (!std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer),
-
45  "'abs' only accept floating-point and integer scalar or vector inputs");
-
46  return x;
-
47  }
-
48  };
-
49 }//namespace detail
-
50 }//namespace glm
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: compute_common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
compute_common.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "setup.hpp"
+
4 #include <limits>
+
5 
+
6 namespace glm{
+
7 namespace detail
+
8 {
+
9  template<typename genFIType, bool /*signed*/>
+
10  struct compute_abs
+
11  {};
+
12 
+
13  template<typename genFIType>
+
14  struct compute_abs<genFIType, true>
+
15  {
+
16  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
+
17  {
+
18  GLM_STATIC_ASSERT(
+
19  std::numeric_limits<genFIType>::is_iec559 || std::numeric_limits<genFIType>::is_signed,
+
20  "'abs' only accept floating-point and integer scalar or vector inputs");
+
21 
+
22  return x >= genFIType(0) ? x : -x;
+
23  // TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff;
+
24  }
+
25  };
+
26 
+
27 #if GLM_COMPILER & GLM_COMPILER_CUDA
+
28  template<>
+
29  struct compute_abs<float, true>
+
30  {
+
31  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static float call(float x)
+
32  {
+
33  return fabsf(x);
+
34  }
+
35  };
+
36 #endif
+
37 
+
38  template<typename genFIType>
+
39  struct compute_abs<genFIType, false>
+
40  {
+
41  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
+
42  {
+
43  GLM_STATIC_ASSERT(
+
44  (!std::numeric_limits<genFIType>::is_signed && std::numeric_limits<genFIType>::is_integer),
+
45  "'abs' only accept floating-point and integer scalar or vector inputs");
+
46  return x;
+
47  }
+
48  };
+
49 }//namespace detail
+
50 }//namespace glm
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00020_source.html b/external/include/glm-0.9.9.8/doc/api/a00020_source.html index 872c7804a8..049fde6eae 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00020_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00020_source.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: compute_vector_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
compute_vector_relational.hpp
-
-
-
1 #pragma once
-
2 
-
3 //#include "compute_common.hpp"
-
4 #include "setup.hpp"
-
5 #include <limits>
-
6 
-
7 namespace glm{
-
8 namespace detail
-
9 {
-
10  template <typename T, bool isFloat>
-
11  struct compute_equal
-
12  {
-
13  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
-
14  {
-
15  return a == b;
-
16  }
-
17  };
-
18 /*
-
19  template <typename T>
-
20  struct compute_equal<T, true>
-
21  {
-
22  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
-
23  {
-
24  return detail::compute_abs<T, std::numeric_limits<T>::is_signed>::call(b - a) <= static_cast<T>(0);
-
25  //return std::memcmp(&a, &b, sizeof(T)) == 0;
-
26  }
-
27  };
-
28 */
-
29 }//namespace detail
-
30 }//namespace glm
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: compute_vector_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
compute_vector_relational.hpp
+
+
+
1 #pragma once
+
2 
+
3 //#include "compute_common.hpp"
+
4 #include "setup.hpp"
+
5 #include <limits>
+
6 
+
7 namespace glm{
+
8 namespace detail
+
9 {
+
10  template <typename T, bool isFloat>
+
11  struct compute_equal
+
12  {
+
13  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
+
14  {
+
15  return a == b;
+
16  }
+
17  };
+
18 /*
+
19  template <typename T>
+
20  struct compute_equal<T, true>
+
21  {
+
22  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
+
23  {
+
24  return detail::compute_abs<T, std::numeric_limits<T>::is_signed>::call(b - a) <= static_cast<T>(0);
+
25  //return std::memcmp(&a, &b, sizeof(T)) == 0;
+
26  }
+
27  };
+
28 */
+
29 }//namespace detail
+
30 }//namespace glm
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00021.html b/external/include/glm-0.9.9.8/doc/api/a00021.html index a86d944fd0..0203aaad51 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00021.html +++ b/external/include/glm-0.9.9.8/doc/api/a00021.html @@ -1,223 +1,223 @@ - - - - - - -0.9.9 API documentation: constants.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
constants.hpp File Reference
-
-
- -

GLM_GTC_constants -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType e ()
 Return e constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType euler ()
 Return Euler's constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi ()
 Return 4 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio ()
 Return the golden ratio constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi ()
 Return pi / 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two ()
 Return ln(ln(2)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten ()
 Return ln(10). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two ()
 Return ln(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one ()
 Return 1. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi ()
 Return 1 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two ()
 Return 1 / sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi ()
 Return 1 / (pi * 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi ()
 Return pi / 4. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five ()
 Return sqrt(5). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi ()
 Return sqrt(pi / 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four ()
 Return sqrt(ln(4)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi ()
 Return square root of pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three ()
 Return sqrt(3). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two ()
 Return sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi ()
 Return sqrt(2 * pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType third ()
 Return 1 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi ()
 Return pi / 2 * 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi ()
 Return 2 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi ()
 Return 2 / sqrt(pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi ()
 Return pi * 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds ()
 Return 2 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType zero ()
 Return 0. More...
 
-

Detailed Description

-

GLM_GTC_constants

-
See also
Core features (dependence)
- -

Definition in file constants.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: constants.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
constants.hpp File Reference
+
+
+ +

GLM_GTC_constants +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType e ()
 Return e constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType euler ()
 Return Euler's constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi ()
 Return 4 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio ()
 Return the golden ratio constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi ()
 Return pi / 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two ()
 Return ln(ln(2)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten ()
 Return ln(10). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two ()
 Return ln(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one ()
 Return 1. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi ()
 Return 1 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two ()
 Return 1 / sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi ()
 Return 1 / (pi * 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi ()
 Return pi / 4. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five ()
 Return sqrt(5). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi ()
 Return sqrt(pi / 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four ()
 Return sqrt(ln(4)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi ()
 Return square root of pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three ()
 Return sqrt(3). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two ()
 Return sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi ()
 Return sqrt(2 * pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType third ()
 Return 1 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi ()
 Return pi / 2 * 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi ()
 Return 2 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi ()
 Return 2 / sqrt(pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi ()
 Return pi * 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds ()
 Return 2 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType zero ()
 Return 0. More...
 
+

Detailed Description

+

GLM_GTC_constants

+
See also
Core features (dependence)
+ +

Definition in file constants.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00021_source.html b/external/include/glm-0.9.9.8/doc/api/a00021_source.html index f6688f8bb8..67c7767d74 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00021_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00021_source.html @@ -1,224 +1,224 @@ - - - - - - -0.9.9 API documentation: constants.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
constants.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../ext/scalar_constants.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_GTC_constants extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
29  template<typename genType>
-
30  GLM_FUNC_DECL GLM_CONSTEXPR genType zero();
-
31 
-
34  template<typename genType>
-
35  GLM_FUNC_DECL GLM_CONSTEXPR genType one();
-
36 
-
39  template<typename genType>
-
40  GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi();
-
41 
-
44  template<typename genType>
-
45  GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi();
-
46 
-
49  template<typename genType>
-
50  GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi();
-
51 
-
54  template<typename genType>
-
55  GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi();
-
56 
-
59  template<typename genType>
-
60  GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi();
-
61 
-
64  template<typename genType>
-
65  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi();
-
66 
-
69  template<typename genType>
-
70  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi();
-
71 
-
74  template<typename genType>
-
75  GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi();
-
76 
-
79  template<typename genType>
-
80  GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi();
-
81 
-
84  template<typename genType>
-
85  GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi();
-
86 
-
89  template<typename genType>
-
90  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two();
-
91 
-
94  template<typename genType>
-
95  GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi();
-
96 
-
99  template<typename genType>
-
100  GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi();
-
101 
-
104  template<typename genType>
-
105  GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four();
-
106 
-
109  template<typename genType>
-
110  GLM_FUNC_DECL GLM_CONSTEXPR genType e();
-
111 
-
114  template<typename genType>
-
115  GLM_FUNC_DECL GLM_CONSTEXPR genType euler();
-
116 
-
119  template<typename genType>
-
120  GLM_FUNC_DECL GLM_CONSTEXPR genType root_two();
-
121 
-
124  template<typename genType>
-
125  GLM_FUNC_DECL GLM_CONSTEXPR genType root_three();
-
126 
-
129  template<typename genType>
-
130  GLM_FUNC_DECL GLM_CONSTEXPR genType root_five();
-
131 
-
134  template<typename genType>
-
135  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two();
-
136 
-
139  template<typename genType>
-
140  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten();
-
141 
-
144  template<typename genType>
-
145  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two();
-
146 
-
149  template<typename genType>
-
150  GLM_FUNC_DECL GLM_CONSTEXPR genType third();
-
151 
-
154  template<typename genType>
-
155  GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds();
-
156 
-
159  template<typename genType>
-
160  GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio();
-
161 
-
163 } //namespace glm
-
164 
-
165 #include "constants.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR genType third()
Return 1 / 3.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two()
Return sqrt(2).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two()
Return 1 / sqrt(2).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType euler()
Return Euler's constant.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds()
Return 2 / 3.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()
Return pi * 2.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio()
Return the golden ratio constant.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi()
Return pi / 4.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType one()
Return 1.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five()
Return sqrt(5).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi()
Return pi / 2 * 3.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType zero()
Return 0.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten()
Return ln(10).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three()
Return sqrt(3).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi()
Return square root of pi.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Return e constant.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi()
Return 1 / pi.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi()
Return 2 / pi.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi()
Return 4 / pi.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi()
Return sqrt(2 * pi).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two()
Return ln(2).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four()
Return sqrt(ln(4)).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi()
Return 2 / sqrt(pi).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two()
Return ln(ln(2)).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi()
Return sqrt(pi / 2).
-
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()
Return pi / 2.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi()
Return 1 / (pi * 2).
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: constants.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
constants.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../ext/scalar_constants.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_GTC_constants extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
29  template<typename genType>
+
30  GLM_FUNC_DECL GLM_CONSTEXPR genType zero();
+
31 
+
34  template<typename genType>
+
35  GLM_FUNC_DECL GLM_CONSTEXPR genType one();
+
36 
+
39  template<typename genType>
+
40  GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi();
+
41 
+
44  template<typename genType>
+
45  GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi();
+
46 
+
49  template<typename genType>
+
50  GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi();
+
51 
+
54  template<typename genType>
+
55  GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi();
+
56 
+
59  template<typename genType>
+
60  GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi();
+
61 
+
64  template<typename genType>
+
65  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi();
+
66 
+
69  template<typename genType>
+
70  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi();
+
71 
+
74  template<typename genType>
+
75  GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi();
+
76 
+
79  template<typename genType>
+
80  GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi();
+
81 
+
84  template<typename genType>
+
85  GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi();
+
86 
+
89  template<typename genType>
+
90  GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two();
+
91 
+
94  template<typename genType>
+
95  GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi();
+
96 
+
99  template<typename genType>
+
100  GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi();
+
101 
+
104  template<typename genType>
+
105  GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four();
+
106 
+
109  template<typename genType>
+
110  GLM_FUNC_DECL GLM_CONSTEXPR genType e();
+
111 
+
114  template<typename genType>
+
115  GLM_FUNC_DECL GLM_CONSTEXPR genType euler();
+
116 
+
119  template<typename genType>
+
120  GLM_FUNC_DECL GLM_CONSTEXPR genType root_two();
+
121 
+
124  template<typename genType>
+
125  GLM_FUNC_DECL GLM_CONSTEXPR genType root_three();
+
126 
+
129  template<typename genType>
+
130  GLM_FUNC_DECL GLM_CONSTEXPR genType root_five();
+
131 
+
134  template<typename genType>
+
135  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two();
+
136 
+
139  template<typename genType>
+
140  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten();
+
141 
+
144  template<typename genType>
+
145  GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two();
+
146 
+
149  template<typename genType>
+
150  GLM_FUNC_DECL GLM_CONSTEXPR genType third();
+
151 
+
154  template<typename genType>
+
155  GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds();
+
156 
+
159  template<typename genType>
+
160  GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio();
+
161 
+
163 } //namespace glm
+
164 
+
165 #include "constants.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR genType third()
Return 1 / 3.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two()
Return sqrt(2).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two()
Return 1 / sqrt(2).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType euler()
Return Euler's constant.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds()
Return 2 / 3.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi()
Return pi * 2.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio()
Return the golden ratio constant.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi()
Return pi / 4.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType one()
Return 1.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five()
Return sqrt(5).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi()
Return pi / 2 * 3.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType zero()
Return 0.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten()
Return ln(10).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three()
Return sqrt(3).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi()
Return square root of pi.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType e()
Return e constant.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi()
Return 1 / pi.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi()
Return 2 / pi.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi()
Return 4 / pi.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi()
Return sqrt(2 * pi).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two()
Return ln(2).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four()
Return sqrt(ln(4)).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi()
Return 2 / sqrt(pi).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two()
Return ln(ln(2)).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi()
Return sqrt(pi / 2).
+
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi()
Return pi / 2.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi()
Return 1 / (pi * 2).
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00022.html b/external/include/glm-0.9.9.8/doc/api/a00022.html index 42bef39a00..450161283b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00022.html +++ b/external/include/glm-0.9.9.8/doc/api/a00022.html @@ -1,192 +1,192 @@ - - - - - - -0.9.9 API documentation: dual_quaternion.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
dual_quaternion.hpp File Reference
-
-
- -

GLM_GTX_dual_quaternion -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 Dual-quaternion of default double-qualifier floating-point numbers. More...
 
typedef highp_fdualquat dualquat
 Dual-quaternion of floating-point numbers. More...
 
typedef highp_fdualquat fdualquat
 Dual-quaternion of single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, highp > highp_ddualquat
 Dual-quaternion of high double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_dualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_fdualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, lowp > lowp_ddualquat
 Dual-quaternion of low double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_dualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_fdualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, mediump > mediump_ddualquat
 Dual-quaternion of medium double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_dualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_fdualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity ()
 Creates an identity dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 2, 4, T, Q > const &x)
 Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 3, 4, T, Q > const &x)
 Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > inverse (tdualquat< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > lerp (tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
 Returns the linear interpolation of two dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 2 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 3 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > normalize (tdualquat< T, Q > const &q)
 Returns the normalized quaternion. More...
 
-

Detailed Description

-

GLM_GTX_dual_quaternion

-
Author
Maksim Vorobiev (msome.nosp@m.one@.nosp@m.gmail.nosp@m..com)
-
See also
Core features (dependence)
-
-GLM_GTC_constants (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file dual_quaternion.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: dual_quaternion.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
dual_quaternion.hpp File Reference
+
+
+ +

GLM_GTX_dual_quaternion +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_ddualquat ddualquat
 Dual-quaternion of default double-qualifier floating-point numbers. More...
 
typedef highp_fdualquat dualquat
 Dual-quaternion of floating-point numbers. More...
 
typedef highp_fdualquat fdualquat
 Dual-quaternion of single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, highp > highp_ddualquat
 Dual-quaternion of high double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_dualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_fdualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, lowp > lowp_ddualquat
 Dual-quaternion of low double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_dualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_fdualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, mediump > mediump_ddualquat
 Dual-quaternion of medium double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_dualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_fdualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity ()
 Creates an identity dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 2, 4, T, Q > const &x)
 Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 3, 4, T, Q > const &x)
 Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > inverse (tdualquat< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > lerp (tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
 Returns the linear interpolation of two dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 2 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 3 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > normalize (tdualquat< T, Q > const &q)
 Returns the normalized quaternion. More...
 
+

Detailed Description

+

GLM_GTX_dual_quaternion

+
Author
Maksim Vorobiev (msome.nosp@m.one@.nosp@m.gmail.nosp@m..com)
+
See also
Core features (dependence)
+
+GLM_GTC_constants (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file dual_quaternion.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00022_source.html b/external/include/glm-0.9.9.8/doc/api/a00022_source.html index 95f3255ba7..6be65eec58 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00022_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00022_source.html @@ -1,317 +1,317 @@ - - - - - - -0.9.9 API documentation: dual_quaternion.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
dual_quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
16 #pragma once
-
17 
-
18 // Dependency:
-
19 #include "../glm.hpp"
-
20 #include "../gtc/constants.hpp"
-
21 #include "../gtc/quaternion.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # ifndef GLM_ENABLE_EXPERIMENTAL
-
25 # pragma message("GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
26 # else
-
27 # pragma message("GLM: GLM_GTX_dual_quaternion extension included")
-
28 # endif
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
36  template<typename T, qualifier Q = defaultp>
-
37  struct tdualquat
-
38  {
-
39  // -- Implementation detail --
-
40 
-
41  typedef T value_type;
-
42  typedef qua<T, Q> part_type;
-
43 
-
44  // -- Data --
-
45 
-
46  qua<T, Q> real, dual;
-
47 
-
48  // -- Component accesses --
-
49 
-
50  typedef length_t length_type;
-
52  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 2;}
-
53 
-
54  GLM_FUNC_DECL part_type & operator[](length_type i);
-
55  GLM_FUNC_DECL part_type const& operator[](length_type i) const;
-
56 
-
57  // -- Implicit basic constructors --
-
58 
-
59  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT;
-
60  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const& d) GLM_DEFAULT;
-
61  template<qualifier P>
-
62  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const& d);
-
63 
-
64  // -- Explicit basic constructors --
-
65 
-
66  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& real);
-
67  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& orientation, vec<3, T, Q> const& translation);
-
68  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& real, qua<T, Q> const& dual);
-
69 
-
70  // -- Conversion constructors --
-
71 
-
72  template<typename U, qualifier P>
-
73  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, P> const& q);
-
74 
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR tdualquat(mat<2, 4, T, Q> const& holder_mat);
-
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR tdualquat(mat<3, 4, T, Q> const& aug_mat);
-
77 
-
78  // -- Unary arithmetic operators --
-
79 
-
80  GLM_FUNC_DECL tdualquat<T, Q> & operator=(tdualquat<T, Q> const& m) GLM_DEFAULT;
-
81 
-
82  template<typename U>
-
83  GLM_FUNC_DECL tdualquat<T, Q> & operator=(tdualquat<U, Q> const& m);
-
84  template<typename U>
-
85  GLM_FUNC_DECL tdualquat<T, Q> & operator*=(U s);
-
86  template<typename U>
-
87  GLM_FUNC_DECL tdualquat<T, Q> & operator/=(U s);
-
88  };
-
89 
-
90  // -- Unary bit operators --
-
91 
-
92  template<typename T, qualifier Q>
-
93  GLM_FUNC_DECL tdualquat<T, Q> operator+(tdualquat<T, Q> const& q);
-
94 
-
95  template<typename T, qualifier Q>
-
96  GLM_FUNC_DECL tdualquat<T, Q> operator-(tdualquat<T, Q> const& q);
-
97 
-
98  // -- Binary operators --
-
99 
-
100  template<typename T, qualifier Q>
-
101  GLM_FUNC_DECL tdualquat<T, Q> operator+(tdualquat<T, Q> const& q, tdualquat<T, Q> const& p);
-
102 
-
103  template<typename T, qualifier Q>
-
104  GLM_FUNC_DECL tdualquat<T, Q> operator*(tdualquat<T, Q> const& q, tdualquat<T, Q> const& p);
-
105 
-
106  template<typename T, qualifier Q>
-
107  GLM_FUNC_DECL vec<3, T, Q> operator*(tdualquat<T, Q> const& q, vec<3, T, Q> const& v);
-
108 
-
109  template<typename T, qualifier Q>
-
110  GLM_FUNC_DECL vec<3, T, Q> operator*(vec<3, T, Q> const& v, tdualquat<T, Q> const& q);
-
111 
-
112  template<typename T, qualifier Q>
-
113  GLM_FUNC_DECL vec<4, T, Q> operator*(tdualquat<T, Q> const& q, vec<4, T, Q> const& v);
-
114 
-
115  template<typename T, qualifier Q>
-
116  GLM_FUNC_DECL vec<4, T, Q> operator*(vec<4, T, Q> const& v, tdualquat<T, Q> const& q);
-
117 
-
118  template<typename T, qualifier Q>
-
119  GLM_FUNC_DECL tdualquat<T, Q> operator*(tdualquat<T, Q> const& q, T const& s);
-
120 
-
121  template<typename T, qualifier Q>
-
122  GLM_FUNC_DECL tdualquat<T, Q> operator*(T const& s, tdualquat<T, Q> const& q);
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL tdualquat<T, Q> operator/(tdualquat<T, Q> const& q, T const& s);
-
126 
-
127  // -- Boolean operators --
-
128 
-
129  template<typename T, qualifier Q>
-
130  GLM_FUNC_DECL bool operator==(tdualquat<T, Q> const& q1, tdualquat<T, Q> const& q2);
-
131 
-
132  template<typename T, qualifier Q>
-
133  GLM_FUNC_DECL bool operator!=(tdualquat<T, Q> const& q1, tdualquat<T, Q> const& q2);
-
134 
-
138  template <typename T, qualifier Q>
-
139  GLM_FUNC_DECL tdualquat<T, Q> dual_quat_identity();
-
140 
-
144  template<typename T, qualifier Q>
-
145  GLM_FUNC_DECL tdualquat<T, Q> normalize(tdualquat<T, Q> const& q);
-
146 
-
150  template<typename T, qualifier Q>
-
151  GLM_FUNC_DECL tdualquat<T, Q> lerp(tdualquat<T, Q> const& x, tdualquat<T, Q> const& y, T const& a);
-
152 
-
156  template<typename T, qualifier Q>
-
157  GLM_FUNC_DECL tdualquat<T, Q> inverse(tdualquat<T, Q> const& q);
-
158 
-
162  template<typename T, qualifier Q>
-
163  GLM_FUNC_DECL mat<2, 4, T, Q> mat2x4_cast(tdualquat<T, Q> const& x);
-
164 
-
168  template<typename T, qualifier Q>
-
169  GLM_FUNC_DECL mat<3, 4, T, Q> mat3x4_cast(tdualquat<T, Q> const& x);
-
170 
-
174  template<typename T, qualifier Q>
-
175  GLM_FUNC_DECL tdualquat<T, Q> dualquat_cast(mat<2, 4, T, Q> const& x);
-
176 
-
180  template<typename T, qualifier Q>
-
181  GLM_FUNC_DECL tdualquat<T, Q> dualquat_cast(mat<3, 4, T, Q> const& x);
-
182 
-
183 
-
187  typedef tdualquat<float, lowp> lowp_dualquat;
-
188 
-
192  typedef tdualquat<float, mediump> mediump_dualquat;
-
193 
-
197  typedef tdualquat<float, highp> highp_dualquat;
-
198 
-
199 
-
203  typedef tdualquat<float, lowp> lowp_fdualquat;
-
204 
-
208  typedef tdualquat<float, mediump> mediump_fdualquat;
-
209 
-
213  typedef tdualquat<float, highp> highp_fdualquat;
-
214 
-
215 
-
219  typedef tdualquat<double, lowp> lowp_ddualquat;
-
220 
-
224  typedef tdualquat<double, mediump> mediump_ddualquat;
-
225 
-
229  typedef tdualquat<double, highp> highp_ddualquat;
-
230 
-
231 
-
232 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
233  typedef highp_fdualquat dualquat;
-
237 
-
241  typedef highp_fdualquat fdualquat;
-
242 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
243  typedef highp_fdualquat dualquat;
-
244  typedef highp_fdualquat fdualquat;
-
245 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
-
246  typedef mediump_fdualquat dualquat;
-
247  typedef mediump_fdualquat fdualquat;
-
248 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
-
249  typedef lowp_fdualquat dualquat;
-
250  typedef lowp_fdualquat fdualquat;
-
251 #else
-
252 # error "GLM error: multiple default precision requested for single-precision floating-point types"
-
253 #endif
-
254 
-
255 
-
256 #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
257  typedef highp_ddualquat ddualquat;
-
261 #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
262  typedef highp_ddualquat ddualquat;
-
263 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
-
264  typedef mediump_ddualquat ddualquat;
-
265 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
-
266  typedef lowp_ddualquat ddualquat;
-
267 #else
-
268 # error "GLM error: Multiple default precision requested for double-precision floating-point types"
-
269 #endif
-
270 
-
272 } //namespace glm
-
273 
-
274 #include "dual_quaternion.inl"
-
highp_ddualquat ddualquat
Dual-quaternion of default double-qualifier floating-point numbers.
-
highp_fdualquat fdualquat
Dual-quaternion of single-qualifier floating-point numbers.
-
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast(tdualquat< T, Q > const &x)
Converts a quaternion to a 2 * 4 matrix.
-
tdualquat< double, highp > highp_ddualquat
Dual-quaternion of high double-qualifier floating-point numbers.
-
GLM_FUNC_DECL tdualquat< T, Q > normalize(tdualquat< T, Q > const &q)
Returns the normalized quaternion.
-
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity()
Creates an identity dual quaternion.
-
GLM_FUNC_DECL tdualquat< T, Q > inverse(tdualquat< T, Q > const &q)
Returns the q inverse.
-
GLM_FUNC_DECL tdualquat< T, Q > lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
Returns the linear interpolation of two dual quaternion.
-
tdualquat< float, lowp > lowp_dualquat
Dual-quaternion of low single-qualifier floating-point numbers.
-
tdualquat< float, lowp > lowp_fdualquat
Dual-quaternion of low single-qualifier floating-point numbers.
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
tdualquat< double, lowp > lowp_ddualquat
Dual-quaternion of low double-qualifier floating-point numbers.
-
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast(tdualquat< T, Q > const &x)
Converts a quaternion to a 3 * 4 matrix.
-
highp_fdualquat dualquat
Dual-quaternion of floating-point numbers.
-
tdualquat< float, highp > highp_fdualquat
Dual-quaternion of high single-qualifier floating-point numbers.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
-
tdualquat< float, mediump > mediump_dualquat
Dual-quaternion of medium single-qualifier floating-point numbers.
-
tdualquat< float, mediump > mediump_fdualquat
Dual-quaternion of medium single-qualifier floating-point numbers.
-
tdualquat< double, mediump > mediump_ddualquat
Dual-quaternion of medium double-qualifier floating-point numbers.
-
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast(mat< 3, 4, T, Q > const &x)
Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.
-
tdualquat< float, highp > highp_dualquat
Dual-quaternion of high single-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: dual_quaternion.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dual_quaternion.hpp
+
+
+Go to the documentation of this file.
1 
+
16 #pragma once
+
17 
+
18 // Dependency:
+
19 #include "../glm.hpp"
+
20 #include "../gtc/constants.hpp"
+
21 #include "../gtc/quaternion.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # ifndef GLM_ENABLE_EXPERIMENTAL
+
25 # pragma message("GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
26 # else
+
27 # pragma message("GLM: GLM_GTX_dual_quaternion extension included")
+
28 # endif
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
36  template<typename T, qualifier Q = defaultp>
+
37  struct tdualquat
+
38  {
+
39  // -- Implementation detail --
+
40 
+
41  typedef T value_type;
+
42  typedef qua<T, Q> part_type;
+
43 
+
44  // -- Data --
+
45 
+
46  qua<T, Q> real, dual;
+
47 
+
48  // -- Component accesses --
+
49 
+
50  typedef length_t length_type;
+
52  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 2;}
+
53 
+
54  GLM_FUNC_DECL part_type & operator[](length_type i);
+
55  GLM_FUNC_DECL part_type const& operator[](length_type i) const;
+
56 
+
57  // -- Implicit basic constructors --
+
58 
+
59  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat() GLM_DEFAULT;
+
60  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, Q> const& d) GLM_DEFAULT;
+
61  template<qualifier P>
+
62  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(tdualquat<T, P> const& d);
+
63 
+
64  // -- Explicit basic constructors --
+
65 
+
66  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& real);
+
67  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& orientation, vec<3, T, Q> const& translation);
+
68  GLM_FUNC_DECL GLM_CONSTEXPR tdualquat(qua<T, Q> const& real, qua<T, Q> const& dual);
+
69 
+
70  // -- Conversion constructors --
+
71 
+
72  template<typename U, qualifier P>
+
73  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT tdualquat(tdualquat<U, P> const& q);
+
74 
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR tdualquat(mat<2, 4, T, Q> const& holder_mat);
+
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR tdualquat(mat<3, 4, T, Q> const& aug_mat);
+
77 
+
78  // -- Unary arithmetic operators --
+
79 
+
80  GLM_FUNC_DECL tdualquat<T, Q> & operator=(tdualquat<T, Q> const& m) GLM_DEFAULT;
+
81 
+
82  template<typename U>
+
83  GLM_FUNC_DECL tdualquat<T, Q> & operator=(tdualquat<U, Q> const& m);
+
84  template<typename U>
+
85  GLM_FUNC_DECL tdualquat<T, Q> & operator*=(U s);
+
86  template<typename U>
+
87  GLM_FUNC_DECL tdualquat<T, Q> & operator/=(U s);
+
88  };
+
89 
+
90  // -- Unary bit operators --
+
91 
+
92  template<typename T, qualifier Q>
+
93  GLM_FUNC_DECL tdualquat<T, Q> operator+(tdualquat<T, Q> const& q);
+
94 
+
95  template<typename T, qualifier Q>
+
96  GLM_FUNC_DECL tdualquat<T, Q> operator-(tdualquat<T, Q> const& q);
+
97 
+
98  // -- Binary operators --
+
99 
+
100  template<typename T, qualifier Q>
+
101  GLM_FUNC_DECL tdualquat<T, Q> operator+(tdualquat<T, Q> const& q, tdualquat<T, Q> const& p);
+
102 
+
103  template<typename T, qualifier Q>
+
104  GLM_FUNC_DECL tdualquat<T, Q> operator*(tdualquat<T, Q> const& q, tdualquat<T, Q> const& p);
+
105 
+
106  template<typename T, qualifier Q>
+
107  GLM_FUNC_DECL vec<3, T, Q> operator*(tdualquat<T, Q> const& q, vec<3, T, Q> const& v);
+
108 
+
109  template<typename T, qualifier Q>
+
110  GLM_FUNC_DECL vec<3, T, Q> operator*(vec<3, T, Q> const& v, tdualquat<T, Q> const& q);
+
111 
+
112  template<typename T, qualifier Q>
+
113  GLM_FUNC_DECL vec<4, T, Q> operator*(tdualquat<T, Q> const& q, vec<4, T, Q> const& v);
+
114 
+
115  template<typename T, qualifier Q>
+
116  GLM_FUNC_DECL vec<4, T, Q> operator*(vec<4, T, Q> const& v, tdualquat<T, Q> const& q);
+
117 
+
118  template<typename T, qualifier Q>
+
119  GLM_FUNC_DECL tdualquat<T, Q> operator*(tdualquat<T, Q> const& q, T const& s);
+
120 
+
121  template<typename T, qualifier Q>
+
122  GLM_FUNC_DECL tdualquat<T, Q> operator*(T const& s, tdualquat<T, Q> const& q);
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL tdualquat<T, Q> operator/(tdualquat<T, Q> const& q, T const& s);
+
126 
+
127  // -- Boolean operators --
+
128 
+
129  template<typename T, qualifier Q>
+
130  GLM_FUNC_DECL bool operator==(tdualquat<T, Q> const& q1, tdualquat<T, Q> const& q2);
+
131 
+
132  template<typename T, qualifier Q>
+
133  GLM_FUNC_DECL bool operator!=(tdualquat<T, Q> const& q1, tdualquat<T, Q> const& q2);
+
134 
+
138  template <typename T, qualifier Q>
+
139  GLM_FUNC_DECL tdualquat<T, Q> dual_quat_identity();
+
140 
+
144  template<typename T, qualifier Q>
+
145  GLM_FUNC_DECL tdualquat<T, Q> normalize(tdualquat<T, Q> const& q);
+
146 
+
150  template<typename T, qualifier Q>
+
151  GLM_FUNC_DECL tdualquat<T, Q> lerp(tdualquat<T, Q> const& x, tdualquat<T, Q> const& y, T const& a);
+
152 
+
156  template<typename T, qualifier Q>
+
157  GLM_FUNC_DECL tdualquat<T, Q> inverse(tdualquat<T, Q> const& q);
+
158 
+
162  template<typename T, qualifier Q>
+
163  GLM_FUNC_DECL mat<2, 4, T, Q> mat2x4_cast(tdualquat<T, Q> const& x);
+
164 
+
168  template<typename T, qualifier Q>
+
169  GLM_FUNC_DECL mat<3, 4, T, Q> mat3x4_cast(tdualquat<T, Q> const& x);
+
170 
+
174  template<typename T, qualifier Q>
+
175  GLM_FUNC_DECL tdualquat<T, Q> dualquat_cast(mat<2, 4, T, Q> const& x);
+
176 
+
180  template<typename T, qualifier Q>
+
181  GLM_FUNC_DECL tdualquat<T, Q> dualquat_cast(mat<3, 4, T, Q> const& x);
+
182 
+
183 
+
187  typedef tdualquat<float, lowp> lowp_dualquat;
+
188 
+
192  typedef tdualquat<float, mediump> mediump_dualquat;
+
193 
+
197  typedef tdualquat<float, highp> highp_dualquat;
+
198 
+
199 
+
203  typedef tdualquat<float, lowp> lowp_fdualquat;
+
204 
+
208  typedef tdualquat<float, mediump> mediump_fdualquat;
+
209 
+
213  typedef tdualquat<float, highp> highp_fdualquat;
+
214 
+
215 
+
219  typedef tdualquat<double, lowp> lowp_ddualquat;
+
220 
+
224  typedef tdualquat<double, mediump> mediump_ddualquat;
+
225 
+
229  typedef tdualquat<double, highp> highp_ddualquat;
+
230 
+
231 
+
232 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
233  typedef highp_fdualquat dualquat;
+
237 
+
241  typedef highp_fdualquat fdualquat;
+
242 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
243  typedef highp_fdualquat dualquat;
+
244  typedef highp_fdualquat fdualquat;
+
245 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
+
246  typedef mediump_fdualquat dualquat;
+
247  typedef mediump_fdualquat fdualquat;
+
248 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
+
249  typedef lowp_fdualquat dualquat;
+
250  typedef lowp_fdualquat fdualquat;
+
251 #else
+
252 # error "GLM error: multiple default precision requested for single-precision floating-point types"
+
253 #endif
+
254 
+
255 
+
256 #if(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
257  typedef highp_ddualquat ddualquat;
+
261 #elif(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
262  typedef highp_ddualquat ddualquat;
+
263 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
+
264  typedef mediump_ddualquat ddualquat;
+
265 #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
+
266  typedef lowp_ddualquat ddualquat;
+
267 #else
+
268 # error "GLM error: Multiple default precision requested for double-precision floating-point types"
+
269 #endif
+
270 
+
272 } //namespace glm
+
273 
+
274 #include "dual_quaternion.inl"
+
highp_ddualquat ddualquat
Dual-quaternion of default double-qualifier floating-point numbers.
+
highp_fdualquat fdualquat
Dual-quaternion of single-qualifier floating-point numbers.
+
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast(tdualquat< T, Q > const &x)
Converts a quaternion to a 2 * 4 matrix.
+
tdualquat< double, highp > highp_ddualquat
Dual-quaternion of high double-qualifier floating-point numbers.
+
GLM_FUNC_DECL tdualquat< T, Q > normalize(tdualquat< T, Q > const &q)
Returns the normalized quaternion.
+
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity()
Creates an identity dual quaternion.
+
GLM_FUNC_DECL tdualquat< T, Q > inverse(tdualquat< T, Q > const &q)
Returns the q inverse.
+
GLM_FUNC_DECL tdualquat< T, Q > lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
Returns the linear interpolation of two dual quaternion.
+
tdualquat< float, lowp > lowp_dualquat
Dual-quaternion of low single-qualifier floating-point numbers.
+
tdualquat< float, lowp > lowp_fdualquat
Dual-quaternion of low single-qualifier floating-point numbers.
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
tdualquat< double, lowp > lowp_ddualquat
Dual-quaternion of low double-qualifier floating-point numbers.
+
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast(tdualquat< T, Q > const &x)
Converts a quaternion to a 3 * 4 matrix.
+
highp_fdualquat dualquat
Dual-quaternion of floating-point numbers.
+
tdualquat< float, highp > highp_fdualquat
Dual-quaternion of high single-qualifier floating-point numbers.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
+
tdualquat< float, mediump > mediump_dualquat
Dual-quaternion of medium single-qualifier floating-point numbers.
+
tdualquat< float, mediump > mediump_fdualquat
Dual-quaternion of medium single-qualifier floating-point numbers.
+
tdualquat< double, mediump > mediump_ddualquat
Dual-quaternion of medium double-qualifier floating-point numbers.
+
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast(mat< 3, 4, T, Q > const &x)
Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.
+
tdualquat< float, highp > highp_dualquat
Dual-quaternion of high single-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00023.html b/external/include/glm-0.9.9.8/doc/api/a00023.html index 6089667d2a..61002b829f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00023.html +++ b/external/include/glm-0.9.9.8/doc/api/a00023.html @@ -1,244 +1,244 @@ - - - - - - -0.9.9 API documentation: easing.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
easing.hpp File Reference
-
-
- -

GLM_GTX_easing -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseIn (genType const &a)
 Modelled after shifted quadrant IV of unit circle. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseInOut (genType const &a)
 Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseOut (genType const &a)
 Modelled after shifted quadrant II of unit circle. More...
 
-template<typename genType >
GLM_FUNC_DECL genType cubicEaseIn (genType const &a)
 Modelled after the cubic y = x^3.
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseInOut (genType const &a)
 Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseOut (genType const &a)
 Modelled after the cubic y = (x - 1)^3 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseIn (genType const &a)
 Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseInOut (genType const &a)
 Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseOut (genType const &a)
 Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseIn (genType const &a)
 Modelled after the exponential function y = 2^(10(x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseInOut (genType const &a)
 Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseOut (genType const &a)
 Modelled after the exponential function y = -2^(-10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearInterpolation (genType const &a)
 Modelled after the line y = x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseIn (genType const &a)
 Modelled after the parabola y = x^2. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseInOut (genType const &a)
 Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseOut (genType const &a)
 Modelled after the parabola y = -x^2 + 2x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseIn (genType const &a)
 Modelled after the quartic x^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseInOut (genType const &a)
 Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseOut (genType const &a)
 Modelled after the quartic y = 1 - (x - 1)^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseIn (genType const &a)
 Modelled after the quintic y = x^5. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseInOut (genType const &a)
 Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseOut (genType const &a)
 Modelled after the quintic y = (x - 1)^5 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseIn (genType const &a)
 Modelled after quarter-cycle of sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseInOut (genType const &a)
 Modelled after half sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseOut (genType const &a)
 Modelled after quarter-cycle of sine wave (different phase) More...
 
-

Detailed Description

-

GLM_GTX_easing

-
Author
Robert Chisholm
-
See also
Core features (dependence)
- -

Definition in file easing.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: easing.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
easing.hpp File Reference
+
+
+ +

GLM_GTX_easing +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseIn (genType const &a)
 Modelled after shifted quadrant IV of unit circle. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseInOut (genType const &a)
 Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseOut (genType const &a)
 Modelled after shifted quadrant II of unit circle. More...
 
+template<typename genType >
GLM_FUNC_DECL genType cubicEaseIn (genType const &a)
 Modelled after the cubic y = x^3.
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseInOut (genType const &a)
 Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseOut (genType const &a)
 Modelled after the cubic y = (x - 1)^3 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseIn (genType const &a)
 Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseInOut (genType const &a)
 Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseOut (genType const &a)
 Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseIn (genType const &a)
 Modelled after the exponential function y = 2^(10(x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseInOut (genType const &a)
 Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseOut (genType const &a)
 Modelled after the exponential function y = -2^(-10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearInterpolation (genType const &a)
 Modelled after the line y = x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseIn (genType const &a)
 Modelled after the parabola y = x^2. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseInOut (genType const &a)
 Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseOut (genType const &a)
 Modelled after the parabola y = -x^2 + 2x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseIn (genType const &a)
 Modelled after the quartic x^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseInOut (genType const &a)
 Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseOut (genType const &a)
 Modelled after the quartic y = 1 - (x - 1)^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseIn (genType const &a)
 Modelled after the quintic y = x^5. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseInOut (genType const &a)
 Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseOut (genType const &a)
 Modelled after the quintic y = (x - 1)^5 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseIn (genType const &a)
 Modelled after quarter-cycle of sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseInOut (genType const &a)
 Modelled after half sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseOut (genType const &a)
 Modelled after quarter-cycle of sine wave (different phase) More...
 
+

Detailed Description

+

GLM_GTX_easing

+
Author
Robert Chisholm
+
See also
Core features (dependence)
+ +

Definition in file easing.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00023_source.html b/external/include/glm-0.9.9.8/doc/api/a00023_source.html index e0c97f530b..92e1529b94 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00023_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00023_source.html @@ -1,254 +1,254 @@ - - - - - - -0.9.9 API documentation: easing.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
easing.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 // Dependency:
-
20 #include "../glm.hpp"
-
21 #include "../gtc/constants.hpp"
-
22 #include "../detail/qualifier.hpp"
-
23 
-
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
25 # ifndef GLM_ENABLE_EXPERIMENTAL
-
26 # pragma message("GLM: GLM_GTX_easing is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
27 # else
-
28 # pragma message("GLM: GLM_GTX_easing extension included")
-
29 # endif
-
30 #endif
-
31 
-
32 namespace glm{
-
35 
-
38  template <typename genType>
-
39  GLM_FUNC_DECL genType linearInterpolation(genType const & a);
-
40 
-
43  template <typename genType>
-
44  GLM_FUNC_DECL genType quadraticEaseIn(genType const & a);
-
45 
-
48  template <typename genType>
-
49  GLM_FUNC_DECL genType quadraticEaseOut(genType const & a);
-
50 
-
55  template <typename genType>
-
56  GLM_FUNC_DECL genType quadraticEaseInOut(genType const & a);
-
57 
-
59  template <typename genType>
-
60  GLM_FUNC_DECL genType cubicEaseIn(genType const & a);
-
61 
-
64  template <typename genType>
-
65  GLM_FUNC_DECL genType cubicEaseOut(genType const & a);
-
66 
-
71  template <typename genType>
-
72  GLM_FUNC_DECL genType cubicEaseInOut(genType const & a);
-
73 
-
76  template <typename genType>
-
77  GLM_FUNC_DECL genType quarticEaseIn(genType const & a);
-
78 
-
81  template <typename genType>
-
82  GLM_FUNC_DECL genType quarticEaseOut(genType const & a);
-
83 
-
88  template <typename genType>
-
89  GLM_FUNC_DECL genType quarticEaseInOut(genType const & a);
-
90 
-
93  template <typename genType>
-
94  GLM_FUNC_DECL genType quinticEaseIn(genType const & a);
-
95 
-
98  template <typename genType>
-
99  GLM_FUNC_DECL genType quinticEaseOut(genType const & a);
-
100 
-
105  template <typename genType>
-
106  GLM_FUNC_DECL genType quinticEaseInOut(genType const & a);
-
107 
-
110  template <typename genType>
-
111  GLM_FUNC_DECL genType sineEaseIn(genType const & a);
-
112 
-
115  template <typename genType>
-
116  GLM_FUNC_DECL genType sineEaseOut(genType const & a);
-
117 
-
120  template <typename genType>
-
121  GLM_FUNC_DECL genType sineEaseInOut(genType const & a);
-
122 
-
125  template <typename genType>
-
126  GLM_FUNC_DECL genType circularEaseIn(genType const & a);
-
127 
-
130  template <typename genType>
-
131  GLM_FUNC_DECL genType circularEaseOut(genType const & a);
-
132 
-
137  template <typename genType>
-
138  GLM_FUNC_DECL genType circularEaseInOut(genType const & a);
-
139 
-
142  template <typename genType>
-
143  GLM_FUNC_DECL genType exponentialEaseIn(genType const & a);
-
144 
-
147  template <typename genType>
-
148  GLM_FUNC_DECL genType exponentialEaseOut(genType const & a);
-
149 
-
154  template <typename genType>
-
155  GLM_FUNC_DECL genType exponentialEaseInOut(genType const & a);
-
156 
-
159  template <typename genType>
-
160  GLM_FUNC_DECL genType elasticEaseIn(genType const & a);
-
161 
-
164  template <typename genType>
-
165  GLM_FUNC_DECL genType elasticEaseOut(genType const & a);
-
166 
-
171  template <typename genType>
-
172  GLM_FUNC_DECL genType elasticEaseInOut(genType const & a);
-
173 
-
175  template <typename genType>
-
176  GLM_FUNC_DECL genType backEaseIn(genType const& a);
-
177 
-
179  template <typename genType>
-
180  GLM_FUNC_DECL genType backEaseOut(genType const& a);
-
181 
-
183  template <typename genType>
-
184  GLM_FUNC_DECL genType backEaseInOut(genType const& a);
-
185 
-
189  template <typename genType>
-
190  GLM_FUNC_DECL genType backEaseIn(genType const& a, genType const& o);
-
191 
-
195  template <typename genType>
-
196  GLM_FUNC_DECL genType backEaseOut(genType const& a, genType const& o);
-
197 
-
201  template <typename genType>
-
202  GLM_FUNC_DECL genType backEaseInOut(genType const& a, genType const& o);
-
203 
-
205  template <typename genType>
-
206  GLM_FUNC_DECL genType bounceEaseIn(genType const& a);
-
207 
-
209  template <typename genType>
-
210  GLM_FUNC_DECL genType bounceEaseOut(genType const& a);
-
211 
-
213  template <typename genType>
-
214  GLM_FUNC_DECL genType bounceEaseInOut(genType const& a);
-
215 
-
217 }//namespace glm
-
218 
-
219 #include "easing.inl"
-
GLM_FUNC_DECL genType bounceEaseIn(genType const &a)
-
GLM_FUNC_DECL genType circularEaseInOut(genType const &a)
Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1].
-
GLM_FUNC_DECL genType cubicEaseIn(genType const &a)
Modelled after the cubic y = x^3.
-
GLM_FUNC_DECL genType elasticEaseIn(genType const &a)
Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1))
-
GLM_FUNC_DECL genType quinticEaseIn(genType const &a)
Modelled after the quintic y = x^5.
-
GLM_FUNC_DECL genType sineEaseInOut(genType const &a)
Modelled after half sine wave.
-
GLM_FUNC_DECL genType circularEaseOut(genType const &a)
Modelled after shifted quadrant II of unit circle.
-
GLM_FUNC_DECL genType elasticEaseOut(genType const &a)
Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1.
-
GLM_FUNC_DECL genType elasticEaseInOut(genType const &a)
Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1].
-
GLM_FUNC_DECL genType sineEaseIn(genType const &a)
Modelled after quarter-cycle of sine wave.
-
GLM_FUNC_DECL genType linearInterpolation(genType const &a)
Modelled after the line y = x.
-
GLM_FUNC_DECL genType quarticEaseIn(genType const &a)
Modelled after the quartic x^4.
-
GLM_FUNC_DECL genType quarticEaseOut(genType const &a)
Modelled after the quartic y = 1 - (x - 1)^4.
-
GLM_FUNC_DECL genType sineEaseOut(genType const &a)
Modelled after quarter-cycle of sine wave (different phase)
-
GLM_FUNC_DECL genType quadraticEaseInOut(genType const &a)
Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [...
-
GLM_FUNC_DECL genType circularEaseIn(genType const &a)
Modelled after shifted quadrant IV of unit circle.
-
GLM_FUNC_DECL genType quadraticEaseOut(genType const &a)
Modelled after the parabola y = -x^2 + 2x.
-
GLM_FUNC_DECL genType exponentialEaseOut(genType const &a)
Modelled after the exponential function y = -2^(-10x) + 1.
-
GLM_FUNC_DECL genType quinticEaseOut(genType const &a)
Modelled after the quintic y = (x - 1)^5 + 1.
-
GLM_FUNC_DECL genType cubicEaseOut(genType const &a)
Modelled after the cubic y = (x - 1)^3 + 1.
-
GLM_FUNC_DECL genType exponentialEaseInOut(genType const &a)
Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))...
-
GLM_FUNC_DECL genType bounceEaseOut(genType const &a)
-
GLM_FUNC_DECL genType quinticEaseInOut(genType const &a)
Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0...
-
GLM_FUNC_DECL genType backEaseIn(genType const &a, genType const &o)
-
GLM_FUNC_DECL genType exponentialEaseIn(genType const &a)
Modelled after the exponential function y = 2^(10(x - 1))
-
GLM_FUNC_DECL genType quadraticEaseIn(genType const &a)
Modelled after the parabola y = x^2.
-
GLM_FUNC_DECL genType quarticEaseInOut(genType const &a)
Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0...
-
GLM_FUNC_DECL genType cubicEaseInOut(genType const &a)
Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0...
-
GLM_FUNC_DECL genType bounceEaseInOut(genType const &a)
-
GLM_FUNC_DECL genType backEaseInOut(genType const &a, genType const &o)
-
GLM_FUNC_DECL genType backEaseOut(genType const &a, genType const &o)
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: easing.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
easing.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 // Dependency:
+
20 #include "../glm.hpp"
+
21 #include "../gtc/constants.hpp"
+
22 #include "../detail/qualifier.hpp"
+
23 
+
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
25 # ifndef GLM_ENABLE_EXPERIMENTAL
+
26 # pragma message("GLM: GLM_GTX_easing is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
27 # else
+
28 # pragma message("GLM: GLM_GTX_easing extension included")
+
29 # endif
+
30 #endif
+
31 
+
32 namespace glm{
+
35 
+
38  template <typename genType>
+
39  GLM_FUNC_DECL genType linearInterpolation(genType const & a);
+
40 
+
43  template <typename genType>
+
44  GLM_FUNC_DECL genType quadraticEaseIn(genType const & a);
+
45 
+
48  template <typename genType>
+
49  GLM_FUNC_DECL genType quadraticEaseOut(genType const & a);
+
50 
+
55  template <typename genType>
+
56  GLM_FUNC_DECL genType quadraticEaseInOut(genType const & a);
+
57 
+
59  template <typename genType>
+
60  GLM_FUNC_DECL genType cubicEaseIn(genType const & a);
+
61 
+
64  template <typename genType>
+
65  GLM_FUNC_DECL genType cubicEaseOut(genType const & a);
+
66 
+
71  template <typename genType>
+
72  GLM_FUNC_DECL genType cubicEaseInOut(genType const & a);
+
73 
+
76  template <typename genType>
+
77  GLM_FUNC_DECL genType quarticEaseIn(genType const & a);
+
78 
+
81  template <typename genType>
+
82  GLM_FUNC_DECL genType quarticEaseOut(genType const & a);
+
83 
+
88  template <typename genType>
+
89  GLM_FUNC_DECL genType quarticEaseInOut(genType const & a);
+
90 
+
93  template <typename genType>
+
94  GLM_FUNC_DECL genType quinticEaseIn(genType const & a);
+
95 
+
98  template <typename genType>
+
99  GLM_FUNC_DECL genType quinticEaseOut(genType const & a);
+
100 
+
105  template <typename genType>
+
106  GLM_FUNC_DECL genType quinticEaseInOut(genType const & a);
+
107 
+
110  template <typename genType>
+
111  GLM_FUNC_DECL genType sineEaseIn(genType const & a);
+
112 
+
115  template <typename genType>
+
116  GLM_FUNC_DECL genType sineEaseOut(genType const & a);
+
117 
+
120  template <typename genType>
+
121  GLM_FUNC_DECL genType sineEaseInOut(genType const & a);
+
122 
+
125  template <typename genType>
+
126  GLM_FUNC_DECL genType circularEaseIn(genType const & a);
+
127 
+
130  template <typename genType>
+
131  GLM_FUNC_DECL genType circularEaseOut(genType const & a);
+
132 
+
137  template <typename genType>
+
138  GLM_FUNC_DECL genType circularEaseInOut(genType const & a);
+
139 
+
142  template <typename genType>
+
143  GLM_FUNC_DECL genType exponentialEaseIn(genType const & a);
+
144 
+
147  template <typename genType>
+
148  GLM_FUNC_DECL genType exponentialEaseOut(genType const & a);
+
149 
+
154  template <typename genType>
+
155  GLM_FUNC_DECL genType exponentialEaseInOut(genType const & a);
+
156 
+
159  template <typename genType>
+
160  GLM_FUNC_DECL genType elasticEaseIn(genType const & a);
+
161 
+
164  template <typename genType>
+
165  GLM_FUNC_DECL genType elasticEaseOut(genType const & a);
+
166 
+
171  template <typename genType>
+
172  GLM_FUNC_DECL genType elasticEaseInOut(genType const & a);
+
173 
+
175  template <typename genType>
+
176  GLM_FUNC_DECL genType backEaseIn(genType const& a);
+
177 
+
179  template <typename genType>
+
180  GLM_FUNC_DECL genType backEaseOut(genType const& a);
+
181 
+
183  template <typename genType>
+
184  GLM_FUNC_DECL genType backEaseInOut(genType const& a);
+
185 
+
189  template <typename genType>
+
190  GLM_FUNC_DECL genType backEaseIn(genType const& a, genType const& o);
+
191 
+
195  template <typename genType>
+
196  GLM_FUNC_DECL genType backEaseOut(genType const& a, genType const& o);
+
197 
+
201  template <typename genType>
+
202  GLM_FUNC_DECL genType backEaseInOut(genType const& a, genType const& o);
+
203 
+
205  template <typename genType>
+
206  GLM_FUNC_DECL genType bounceEaseIn(genType const& a);
+
207 
+
209  template <typename genType>
+
210  GLM_FUNC_DECL genType bounceEaseOut(genType const& a);
+
211 
+
213  template <typename genType>
+
214  GLM_FUNC_DECL genType bounceEaseInOut(genType const& a);
+
215 
+
217 }//namespace glm
+
218 
+
219 #include "easing.inl"
+
GLM_FUNC_DECL genType bounceEaseIn(genType const &a)
+
GLM_FUNC_DECL genType circularEaseInOut(genType const &a)
Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1].
+
GLM_FUNC_DECL genType cubicEaseIn(genType const &a)
Modelled after the cubic y = x^3.
+
GLM_FUNC_DECL genType elasticEaseIn(genType const &a)
Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1))
+
GLM_FUNC_DECL genType quinticEaseIn(genType const &a)
Modelled after the quintic y = x^5.
+
GLM_FUNC_DECL genType sineEaseInOut(genType const &a)
Modelled after half sine wave.
+
GLM_FUNC_DECL genType circularEaseOut(genType const &a)
Modelled after shifted quadrant II of unit circle.
+
GLM_FUNC_DECL genType elasticEaseOut(genType const &a)
Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1.
+
GLM_FUNC_DECL genType elasticEaseInOut(genType const &a)
Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1].
+
GLM_FUNC_DECL genType sineEaseIn(genType const &a)
Modelled after quarter-cycle of sine wave.
+
GLM_FUNC_DECL genType linearInterpolation(genType const &a)
Modelled after the line y = x.
+
GLM_FUNC_DECL genType quarticEaseIn(genType const &a)
Modelled after the quartic x^4.
+
GLM_FUNC_DECL genType quarticEaseOut(genType const &a)
Modelled after the quartic y = 1 - (x - 1)^4.
+
GLM_FUNC_DECL genType sineEaseOut(genType const &a)
Modelled after quarter-cycle of sine wave (different phase)
+
GLM_FUNC_DECL genType quadraticEaseInOut(genType const &a)
Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [...
+
GLM_FUNC_DECL genType circularEaseIn(genType const &a)
Modelled after shifted quadrant IV of unit circle.
+
GLM_FUNC_DECL genType quadraticEaseOut(genType const &a)
Modelled after the parabola y = -x^2 + 2x.
+
GLM_FUNC_DECL genType exponentialEaseOut(genType const &a)
Modelled after the exponential function y = -2^(-10x) + 1.
+
GLM_FUNC_DECL genType quinticEaseOut(genType const &a)
Modelled after the quintic y = (x - 1)^5 + 1.
+
GLM_FUNC_DECL genType cubicEaseOut(genType const &a)
Modelled after the cubic y = (x - 1)^3 + 1.
+
GLM_FUNC_DECL genType exponentialEaseInOut(genType const &a)
Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))...
+
GLM_FUNC_DECL genType bounceEaseOut(genType const &a)
+
GLM_FUNC_DECL genType quinticEaseInOut(genType const &a)
Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0...
+
GLM_FUNC_DECL genType backEaseIn(genType const &a, genType const &o)
+
GLM_FUNC_DECL genType exponentialEaseIn(genType const &a)
Modelled after the exponential function y = 2^(10(x - 1))
+
GLM_FUNC_DECL genType quadraticEaseIn(genType const &a)
Modelled after the parabola y = x^2.
+
GLM_FUNC_DECL genType quarticEaseInOut(genType const &a)
Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0...
+
GLM_FUNC_DECL genType cubicEaseInOut(genType const &a)
Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0...
+
GLM_FUNC_DECL genType bounceEaseInOut(genType const &a)
+
GLM_FUNC_DECL genType backEaseInOut(genType const &a, genType const &o)
+
GLM_FUNC_DECL genType backEaseOut(genType const &a, genType const &o)
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00024.html b/external/include/glm-0.9.9.8/doc/api/a00024.html index 2c756b539f..8a392d24a2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00024.html +++ b/external/include/glm-0.9.9.8/doc/api/a00024.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: epsilon.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
epsilon.hpp File Reference
-
-
- -

GLM_GTC_epsilon -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonNotEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
-

Detailed Description

-

GLM_GTC_epsilon

-
See also
Core features (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file epsilon.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: epsilon.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
epsilon.hpp File Reference
+
+
+ +

GLM_GTC_epsilon +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonNotEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
+

Detailed Description

+

GLM_GTC_epsilon

+
See also
Core features (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file epsilon.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00024_source.html b/external/include/glm-0.9.9.8/doc/api/a00024_source.html index 081371b78e..a1da38389e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00024_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00024_source.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: epsilon.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
epsilon.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # pragma message("GLM: GLM_GTC_epsilon extension included")
-
22 #endif
-
23 
-
24 namespace glm
-
25 {
-
28 
-
33  template<length_t L, typename T, qualifier Q>
-
34  GLM_FUNC_DECL vec<L, bool, Q> epsilonEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon);
-
35 
-
40  template<typename genType>
-
41  GLM_FUNC_DECL bool epsilonEqual(genType const& x, genType const& y, genType const& epsilon);
-
42 
-
47  template<length_t L, typename T, qualifier Q>
-
48  GLM_FUNC_DECL vec<L, bool, Q> epsilonNotEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon);
-
49 
-
54  template<typename genType>
-
55  GLM_FUNC_DECL bool epsilonNotEqual(genType const& x, genType const& y, genType const& epsilon);
-
56 
-
58 }//namespace glm
-
59 
-
60 #include "epsilon.inl"
-
GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| < epsilon.
-
GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| >= epsilon.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: epsilon.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
epsilon.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # pragma message("GLM: GLM_GTC_epsilon extension included")
+
22 #endif
+
23 
+
24 namespace glm
+
25 {
+
28 
+
33  template<length_t L, typename T, qualifier Q>
+
34  GLM_FUNC_DECL vec<L, bool, Q> epsilonEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon);
+
35 
+
40  template<typename genType>
+
41  GLM_FUNC_DECL bool epsilonEqual(genType const& x, genType const& y, genType const& epsilon);
+
42 
+
47  template<length_t L, typename T, qualifier Q>
+
48  GLM_FUNC_DECL vec<L, bool, Q> epsilonNotEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T const& epsilon);
+
49 
+
54  template<typename genType>
+
55  GLM_FUNC_DECL bool epsilonNotEqual(genType const& x, genType const& y, genType const& epsilon);
+
56 
+
58 }//namespace glm
+
59 
+
60 #include "epsilon.inl"
+
GLM_FUNC_DECL bool epsilonEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| < epsilon.
+
GLM_FUNC_DECL bool epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)
Returns the component-wise comparison of |x - y| >= epsilon.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00025.html b/external/include/glm-0.9.9.8/doc/api/a00025.html index ae15e189b8..2904e622e7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00025.html +++ b/external/include/glm-0.9.9.8/doc/api/a00025.html @@ -1,279 +1,279 @@ - - - - - - -0.9.9 API documentation: euler_angles.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
euler_angles.hpp File Reference
-
-
- -

GLM_GTX_euler_angles -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX (T const &angleX, T const &angularVelocityX)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY (T const &angleY, T const &angularVelocityY)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ (T const &angleZ, T const &angularVelocityZ)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX (T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY (T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ (T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2 (T const &angle)
 Creates a 2D 2 * 2 rotation matrix from an euler angle. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > orientate3 (T const &angle)
 Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3 (vec< 3, T, Q > const &angles)
 Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4 (vec< 3, T, Q > const &angles)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
-

Detailed Description

-

GLM_GTX_euler_angles

-
See also
Core features (dependence)
- -

Definition in file euler_angles.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: euler_angles.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
euler_angles.hpp File Reference
+
+
+ +

GLM_GTX_euler_angles +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX (T const &angleX, T const &angularVelocityX)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY (T const &angleY, T const &angularVelocityY)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ (T const &angleZ, T const &angularVelocityZ)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX (T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY (T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ (T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2 (T const &angle)
 Creates a 2D 2 * 2 rotation matrix from an euler angle. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > orientate3 (T const &angle)
 Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3 (vec< 3, T, Q > const &angles)
 Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4 (vec< 3, T, Q > const &angles)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
+

Detailed Description

+

GLM_GTX_euler_angles

+
See also
Core features (dependence)
+ +

Definition in file euler_angles.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00025_source.html b/external/include/glm-0.9.9.8/doc/api/a00025_source.html index 01296f94c3..5c6402e7e4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00025_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00025_source.html @@ -1,380 +1,380 @@ - - - - - - -0.9.9 API documentation: euler_angles.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
euler_angles.hpp
-
-
-Go to the documentation of this file.
1 
-
16 #pragma once
-
17 
-
18 // Dependency:
-
19 #include "../glm.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_euler_angles extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
36  template<typename T>
-
37  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleX(
-
38  T const& angleX);
-
39 
-
42  template<typename T>
-
43  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleY(
-
44  T const& angleY);
-
45 
-
48  template<typename T>
-
49  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZ(
-
50  T const& angleZ);
-
51 
-
54  template <typename T>
-
55  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleX(
-
56  T const & angleX, T const & angularVelocityX);
-
57 
-
60  template <typename T>
-
61  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleY(
-
62  T const & angleY, T const & angularVelocityY);
-
63 
-
66  template <typename T>
-
67  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleZ(
-
68  T const & angleZ, T const & angularVelocityZ);
-
69 
-
72  template<typename T>
-
73  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXY(
-
74  T const& angleX,
-
75  T const& angleY);
-
76 
-
79  template<typename T>
-
80  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYX(
-
81  T const& angleY,
-
82  T const& angleX);
-
83 
-
86  template<typename T>
-
87  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZ(
-
88  T const& angleX,
-
89  T const& angleZ);
-
90 
-
93  template<typename T>
-
94  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZX(
-
95  T const& angle,
-
96  T const& angleX);
-
97 
-
100  template<typename T>
-
101  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZ(
-
102  T const& angleY,
-
103  T const& angleZ);
-
104 
-
107  template<typename T>
-
108  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZY(
-
109  T const& angleZ,
-
110  T const& angleY);
-
111 
-
114  template<typename T>
-
115  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYZ(
-
116  T const& t1,
-
117  T const& t2,
-
118  T const& t3);
-
119 
-
122  template<typename T>
-
123  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXZ(
-
124  T const& yaw,
-
125  T const& pitch,
-
126  T const& roll);
-
127 
-
130  template <typename T>
-
131  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZX(
-
132  T const & t1,
-
133  T const & t2,
-
134  T const & t3);
-
135 
-
138  template <typename T>
-
139  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYX(
-
140  T const & t1,
-
141  T const & t2,
-
142  T const & t3);
-
143 
-
146  template <typename T>
-
147  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXY(
-
148  T const & t1,
-
149  T const & t2,
-
150  T const & t3);
-
151 
-
154  template <typename T>
-
155  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZY(
-
156  T const & t1,
-
157  T const & t2,
-
158  T const & t3);
-
159 
-
162  template <typename T>
-
163  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYZ(
-
164  T const & t1,
-
165  T const & t2,
-
166  T const & t3);
-
167 
-
170  template <typename T>
-
171  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXZ(
-
172  T const & t1,
-
173  T const & t2,
-
174  T const & t3);
-
175 
-
178  template <typename T>
-
179  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZY(
-
180  T const & t1,
-
181  T const & t2,
-
182  T const & t3);
-
183 
-
186  template <typename T>
-
187  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZX(
-
188  T const & t1,
-
189  T const & t2,
-
190  T const & t3);
-
191 
-
194  template <typename T>
-
195  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYX(
-
196  T const & t1,
-
197  T const & t2,
-
198  T const & t3);
-
199 
-
202  template <typename T>
-
203  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXY(
-
204  T const & t1,
-
205  T const & t2,
-
206  T const & t3);
-
207 
-
210  template<typename T>
-
211  GLM_FUNC_DECL mat<4, 4, T, defaultp> yawPitchRoll(
-
212  T const& yaw,
-
213  T const& pitch,
-
214  T const& roll);
-
215 
-
218  template<typename T>
-
219  GLM_FUNC_DECL mat<2, 2, T, defaultp> orientate2(T const& angle);
-
220 
-
223  template<typename T>
-
224  GLM_FUNC_DECL mat<3, 3, T, defaultp> orientate3(T const& angle);
-
225 
-
228  template<typename T, qualifier Q>
-
229  GLM_FUNC_DECL mat<3, 3, T, Q> orientate3(vec<3, T, Q> const& angles);
-
230 
-
233  template<typename T, qualifier Q>
-
234  GLM_FUNC_DECL mat<4, 4, T, Q> orientate4(vec<3, T, Q> const& angles);
-
235 
-
238  template<typename T>
-
239  GLM_FUNC_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const& M,
-
240  T & t1,
-
241  T & t2,
-
242  T & t3);
-
243 
-
246  template <typename T>
-
247  GLM_FUNC_DECL void extractEulerAngleYXZ(mat<4, 4, T, defaultp> const & M,
-
248  T & t1,
-
249  T & t2,
-
250  T & t3);
-
251 
-
254  template <typename T>
-
255  GLM_FUNC_DECL void extractEulerAngleXZX(mat<4, 4, T, defaultp> const & M,
-
256  T & t1,
-
257  T & t2,
-
258  T & t3);
-
259 
-
262  template <typename T>
-
263  GLM_FUNC_DECL void extractEulerAngleXYX(mat<4, 4, T, defaultp> const & M,
-
264  T & t1,
-
265  T & t2,
-
266  T & t3);
-
267 
-
270  template <typename T>
-
271  GLM_FUNC_DECL void extractEulerAngleYXY(mat<4, 4, T, defaultp> const & M,
-
272  T & t1,
-
273  T & t2,
-
274  T & t3);
-
275 
-
278  template <typename T>
-
279  GLM_FUNC_DECL void extractEulerAngleYZY(mat<4, 4, T, defaultp> const & M,
-
280  T & t1,
-
281  T & t2,
-
282  T & t3);
-
283 
-
286  template <typename T>
-
287  GLM_FUNC_DECL void extractEulerAngleZYZ(mat<4, 4, T, defaultp> const & M,
-
288  T & t1,
-
289  T & t2,
-
290  T & t3);
-
291 
-
294  template <typename T>
-
295  GLM_FUNC_DECL void extractEulerAngleZXZ(mat<4, 4, T, defaultp> const & M,
-
296  T & t1,
-
297  T & t2,
-
298  T & t3);
-
299 
-
302  template <typename T>
-
303  GLM_FUNC_DECL void extractEulerAngleXZY(mat<4, 4, T, defaultp> const & M,
-
304  T & t1,
-
305  T & t2,
-
306  T & t3);
-
307 
-
310  template <typename T>
-
311  GLM_FUNC_DECL void extractEulerAngleYZX(mat<4, 4, T, defaultp> const & M,
-
312  T & t1,
-
313  T & t2,
-
314  T & t3);
-
315 
-
318  template <typename T>
-
319  GLM_FUNC_DECL void extractEulerAngleZYX(mat<4, 4, T, defaultp> const & M,
-
320  T & t1,
-
321  T & t2,
-
322  T & t3);
-
323 
-
326  template <typename T>
-
327  GLM_FUNC_DECL void extractEulerAngleZXY(mat<4, 4, T, defaultp> const & M,
-
328  T & t1,
-
329  T & t2,
-
330  T & t3);
-
331 
-
333 }//namespace glm
-
334 
-
335 #include "euler_angles.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y).
-
GLM_FUNC_DECL void extractEulerAngleYXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Z) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ(T const &angleZ, T const &angularVelocityZ)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL void extractEulerAngleZYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * Z) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX(T const &angleX, T const &angularVelocityX)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis.
-
GLM_FUNC_DECL void extractEulerAngleXYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * X) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y).
-
GLM_FUNC_DECL T roll(qua< T, Q > const &x)
Returns roll value of euler angles expressed in radians.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
-
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL void extractEulerAngleXZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * X) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL T yaw(qua< T, Q > const &x)
Returns yaw value of euler angles expressed in radians.
-
GLM_FUNC_DECL void extractEulerAngleYXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Y) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL void extractEulerAngleZXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Y) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL void extractEulerAngleXZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * Y) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL void extractEulerAngleYZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * X) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X).
-
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4(vec< 3, T, Q > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL void extractEulerAngleZYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * X) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y).
-
GLM_FUNC_DECL void extractEulerAngleYZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * Y) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
-
GLM_FUNC_DECL void extractEulerAngleXYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * Z) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z).
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
-
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3(vec< 3, T, Q > const &angles)
Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
-
GLM_FUNC_DECL void extractEulerAngleZXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Z) Euler angles from the rotation matrix M.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY(T const &angleY, T const &angularVelocityY)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis.
-
GLM_FUNC_DECL T pitch(qua< T, Q > const &x)
Returns pitch value of euler angles expressed in radians.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: euler_angles.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
euler_angles.hpp
+
+
+Go to the documentation of this file.
1 
+
16 #pragma once
+
17 
+
18 // Dependency:
+
19 #include "../glm.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_euler_angles extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
36  template<typename T>
+
37  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleX(
+
38  T const& angleX);
+
39 
+
42  template<typename T>
+
43  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleY(
+
44  T const& angleY);
+
45 
+
48  template<typename T>
+
49  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZ(
+
50  T const& angleZ);
+
51 
+
54  template <typename T>
+
55  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleX(
+
56  T const & angleX, T const & angularVelocityX);
+
57 
+
60  template <typename T>
+
61  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleY(
+
62  T const & angleY, T const & angularVelocityY);
+
63 
+
66  template <typename T>
+
67  GLM_FUNC_DECL mat<4, 4, T, defaultp> derivedEulerAngleZ(
+
68  T const & angleZ, T const & angularVelocityZ);
+
69 
+
72  template<typename T>
+
73  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXY(
+
74  T const& angleX,
+
75  T const& angleY);
+
76 
+
79  template<typename T>
+
80  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYX(
+
81  T const& angleY,
+
82  T const& angleX);
+
83 
+
86  template<typename T>
+
87  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZ(
+
88  T const& angleX,
+
89  T const& angleZ);
+
90 
+
93  template<typename T>
+
94  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZX(
+
95  T const& angle,
+
96  T const& angleX);
+
97 
+
100  template<typename T>
+
101  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZ(
+
102  T const& angleY,
+
103  T const& angleZ);
+
104 
+
107  template<typename T>
+
108  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZY(
+
109  T const& angleZ,
+
110  T const& angleY);
+
111 
+
114  template<typename T>
+
115  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYZ(
+
116  T const& t1,
+
117  T const& t2,
+
118  T const& t3);
+
119 
+
122  template<typename T>
+
123  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXZ(
+
124  T const& yaw,
+
125  T const& pitch,
+
126  T const& roll);
+
127 
+
130  template <typename T>
+
131  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZX(
+
132  T const & t1,
+
133  T const & t2,
+
134  T const & t3);
+
135 
+
138  template <typename T>
+
139  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYX(
+
140  T const & t1,
+
141  T const & t2,
+
142  T const & t3);
+
143 
+
146  template <typename T>
+
147  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXY(
+
148  T const & t1,
+
149  T const & t2,
+
150  T const & t3);
+
151 
+
154  template <typename T>
+
155  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZY(
+
156  T const & t1,
+
157  T const & t2,
+
158  T const & t3);
+
159 
+
162  template <typename T>
+
163  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYZ(
+
164  T const & t1,
+
165  T const & t2,
+
166  T const & t3);
+
167 
+
170  template <typename T>
+
171  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXZ(
+
172  T const & t1,
+
173  T const & t2,
+
174  T const & t3);
+
175 
+
178  template <typename T>
+
179  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZY(
+
180  T const & t1,
+
181  T const & t2,
+
182  T const & t3);
+
183 
+
186  template <typename T>
+
187  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZX(
+
188  T const & t1,
+
189  T const & t2,
+
190  T const & t3);
+
191 
+
194  template <typename T>
+
195  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZYX(
+
196  T const & t1,
+
197  T const & t2,
+
198  T const & t3);
+
199 
+
202  template <typename T>
+
203  GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZXY(
+
204  T const & t1,
+
205  T const & t2,
+
206  T const & t3);
+
207 
+
210  template<typename T>
+
211  GLM_FUNC_DECL mat<4, 4, T, defaultp> yawPitchRoll(
+
212  T const& yaw,
+
213  T const& pitch,
+
214  T const& roll);
+
215 
+
218  template<typename T>
+
219  GLM_FUNC_DECL mat<2, 2, T, defaultp> orientate2(T const& angle);
+
220 
+
223  template<typename T>
+
224  GLM_FUNC_DECL mat<3, 3, T, defaultp> orientate3(T const& angle);
+
225 
+
228  template<typename T, qualifier Q>
+
229  GLM_FUNC_DECL mat<3, 3, T, Q> orientate3(vec<3, T, Q> const& angles);
+
230 
+
233  template<typename T, qualifier Q>
+
234  GLM_FUNC_DECL mat<4, 4, T, Q> orientate4(vec<3, T, Q> const& angles);
+
235 
+
238  template<typename T>
+
239  GLM_FUNC_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const& M,
+
240  T & t1,
+
241  T & t2,
+
242  T & t3);
+
243 
+
246  template <typename T>
+
247  GLM_FUNC_DECL void extractEulerAngleYXZ(mat<4, 4, T, defaultp> const & M,
+
248  T & t1,
+
249  T & t2,
+
250  T & t3);
+
251 
+
254  template <typename T>
+
255  GLM_FUNC_DECL void extractEulerAngleXZX(mat<4, 4, T, defaultp> const & M,
+
256  T & t1,
+
257  T & t2,
+
258  T & t3);
+
259 
+
262  template <typename T>
+
263  GLM_FUNC_DECL void extractEulerAngleXYX(mat<4, 4, T, defaultp> const & M,
+
264  T & t1,
+
265  T & t2,
+
266  T & t3);
+
267 
+
270  template <typename T>
+
271  GLM_FUNC_DECL void extractEulerAngleYXY(mat<4, 4, T, defaultp> const & M,
+
272  T & t1,
+
273  T & t2,
+
274  T & t3);
+
275 
+
278  template <typename T>
+
279  GLM_FUNC_DECL void extractEulerAngleYZY(mat<4, 4, T, defaultp> const & M,
+
280  T & t1,
+
281  T & t2,
+
282  T & t3);
+
283 
+
286  template <typename T>
+
287  GLM_FUNC_DECL void extractEulerAngleZYZ(mat<4, 4, T, defaultp> const & M,
+
288  T & t1,
+
289  T & t2,
+
290  T & t3);
+
291 
+
294  template <typename T>
+
295  GLM_FUNC_DECL void extractEulerAngleZXZ(mat<4, 4, T, defaultp> const & M,
+
296  T & t1,
+
297  T & t2,
+
298  T & t3);
+
299 
+
302  template <typename T>
+
303  GLM_FUNC_DECL void extractEulerAngleXZY(mat<4, 4, T, defaultp> const & M,
+
304  T & t1,
+
305  T & t2,
+
306  T & t3);
+
307 
+
310  template <typename T>
+
311  GLM_FUNC_DECL void extractEulerAngleYZX(mat<4, 4, T, defaultp> const & M,
+
312  T & t1,
+
313  T & t2,
+
314  T & t3);
+
315 
+
318  template <typename T>
+
319  GLM_FUNC_DECL void extractEulerAngleZYX(mat<4, 4, T, defaultp> const & M,
+
320  T & t1,
+
321  T & t2,
+
322  T & t3);
+
323 
+
326  template <typename T>
+
327  GLM_FUNC_DECL void extractEulerAngleZXY(mat<4, 4, T, defaultp> const & M,
+
328  T & t1,
+
329  T & t2,
+
330  T & t3);
+
331 
+
333 }//namespace glm
+
334 
+
335 #include "euler_angles.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY(T const &angleX, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y).
+
GLM_FUNC_DECL void extractEulerAngleYXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Z) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ(T const &angleZ, T const &angularVelocityZ)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX(T const &angleY, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY(T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL void extractEulerAngleZYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * Z) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX(T const &angleX, T const &angularVelocityX)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis.
+
GLM_FUNC_DECL void extractEulerAngleXYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * X) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y).
+
GLM_FUNC_DECL T roll(qua< T, Q > const &x)
Returns roll value of euler angles expressed in radians.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX(T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
+
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2(T const &angle)
Creates a 2D 2 * 2 rotation matrix from an euler angle.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL void extractEulerAngleXZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * X) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL T yaw(qua< T, Q > const &x)
Returns yaw value of euler angles expressed in radians.
+
GLM_FUNC_DECL void extractEulerAngleYXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * X * Y) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL void extractEulerAngleZXY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Y) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL void extractEulerAngleXZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Z * Y) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL void extractEulerAngleYZX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * X) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X).
+
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4(vec< 3, T, Q > const &angles)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL void extractEulerAngleZYX(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * Y * X) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ(T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y).
+
GLM_FUNC_DECL void extractEulerAngleYZY(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Y * Z * Y) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll(T const &yaw, T const &pitch, T const &roll)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ(T const &angleX, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
+
GLM_FUNC_DECL void extractEulerAngleXYZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (X * Y * Z) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY(T const &angleZ, T const &angleY)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ(T const &t1, T const &t2, T const &t3)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z).
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ(T const &angleY, T const &angleZ)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
+
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3(vec< 3, T, Q > const &angles)
Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
+
GLM_FUNC_DECL void extractEulerAngleZXZ(mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
Extracts the (Z * X * Z) Euler angles from the rotation matrix M.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY(T const &angleY, T const &angularVelocityY)
Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis.
+
GLM_FUNC_DECL T pitch(qua< T, Q > const &x)
Returns pitch value of euler angles expressed in radians.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX(T const &angle, T const &angleX)
Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00026.html b/external/include/glm-0.9.9.8/doc/api/a00026.html index e7827a9fff..552b6ed247 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00026.html +++ b/external/include/glm-0.9.9.8/doc/api/a00026.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: exponential.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
exponential.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp (vec< L, T, Q > const &v)
 Returns the natural exponentiation of x, i.e., e^x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp2 (vec< L, T, Q > const &v)
 Returns 2 raised to the v power. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > inversesqrt (vec< L, T, Q > const &v)
 Returns the reciprocal of the positive square root of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log (vec< L, T, Q > const &v)
 Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log2 (vec< L, T, Q > const &v)
 Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > pow (vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
 Returns 'base' raised to the power 'exponent'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sqrt (vec< L, T, Q > const &v)
 Returns the positive square root of v. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: exponential.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
exponential.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp (vec< L, T, Q > const &v)
 Returns the natural exponentiation of x, i.e., e^x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp2 (vec< L, T, Q > const &v)
 Returns 2 raised to the v power. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > inversesqrt (vec< L, T, Q > const &v)
 Returns the reciprocal of the positive square root of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log (vec< L, T, Q > const &v)
 Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log2 (vec< L, T, Q > const &v)
 Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > pow (vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
 Returns 'base' raised to the power 'exponent'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sqrt (vec< L, T, Q > const &v)
 Returns the positive square root of v. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00026_source.html b/external/include/glm-0.9.9.8/doc/api/a00026_source.html index 8c2dbf5a6d..56d929d8d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00026_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00026_source.html @@ -1,147 +1,147 @@ - - - - - - -0.9.9 API documentation: exponential.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
exponential.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 #include "detail/type_vec1.hpp"
-
18 #include "detail/type_vec2.hpp"
-
19 #include "detail/type_vec3.hpp"
-
20 #include "detail/type_vec4.hpp"
-
21 #include <cmath>
-
22 
-
23 namespace glm
-
24 {
-
27 
-
35  template<length_t L, typename T, qualifier Q>
-
36  GLM_FUNC_DECL vec<L, T, Q> pow(vec<L, T, Q> const& base, vec<L, T, Q> const& exponent);
-
37 
-
46  template<length_t L, typename T, qualifier Q>
-
47  GLM_FUNC_DECL vec<L, T, Q> exp(vec<L, T, Q> const& v);
-
48 
-
59  template<length_t L, typename T, qualifier Q>
-
60  GLM_FUNC_DECL vec<L, T, Q> log(vec<L, T, Q> const& v);
-
61 
-
70  template<length_t L, typename T, qualifier Q>
-
71  GLM_FUNC_DECL vec<L, T, Q> exp2(vec<L, T, Q> const& v);
-
72 
-
82  template<length_t L, typename T, qualifier Q>
-
83  GLM_FUNC_DECL vec<L, T, Q> log2(vec<L, T, Q> const& v);
-
84 
-
93  template<length_t L, typename T, qualifier Q>
-
94  GLM_FUNC_DECL vec<L, T, Q> sqrt(vec<L, T, Q> const& v);
-
95 
-
104  template<length_t L, typename T, qualifier Q>
-
105  GLM_FUNC_DECL vec<L, T, Q> inversesqrt(vec<L, T, Q> const& v);
-
106 
-
108 }//namespace glm
-
109 
-
110 #include "detail/func_exponential.inl"
-
Core features
-
GLM_FUNC_DECL vec< L, T, Q > sqrt(vec< L, T, Q > const &v)
Returns the positive square root of v.
-
GLM_FUNC_DECL vec< L, T, Q > exp2(vec< L, T, Q > const &v)
Returns 2 raised to the v power.
-
GLM_FUNC_DECL vec< L, T, Q > inversesqrt(vec< L, T, Q > const &v)
Returns the reciprocal of the positive square root of v.
-
Core features
-
Core features
-
GLM_FUNC_DECL vec< L, T, Q > pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
Returns 'base' raised to the power 'exponent'.
-
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x.
-
GLM_FUNC_DECL vec< L, T, Q > log(vec< L, T, Q > const &v)
Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...
-
Core features
-
GLM_FUNC_DECL vec< L, T, Q > log2(vec< L, T, Q > const &v)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: exponential.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
exponential.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 #include "detail/type_vec1.hpp"
+
18 #include "detail/type_vec2.hpp"
+
19 #include "detail/type_vec3.hpp"
+
20 #include "detail/type_vec4.hpp"
+
21 #include <cmath>
+
22 
+
23 namespace glm
+
24 {
+
27 
+
35  template<length_t L, typename T, qualifier Q>
+
36  GLM_FUNC_DECL vec<L, T, Q> pow(vec<L, T, Q> const& base, vec<L, T, Q> const& exponent);
+
37 
+
46  template<length_t L, typename T, qualifier Q>
+
47  GLM_FUNC_DECL vec<L, T, Q> exp(vec<L, T, Q> const& v);
+
48 
+
59  template<length_t L, typename T, qualifier Q>
+
60  GLM_FUNC_DECL vec<L, T, Q> log(vec<L, T, Q> const& v);
+
61 
+
70  template<length_t L, typename T, qualifier Q>
+
71  GLM_FUNC_DECL vec<L, T, Q> exp2(vec<L, T, Q> const& v);
+
72 
+
82  template<length_t L, typename T, qualifier Q>
+
83  GLM_FUNC_DECL vec<L, T, Q> log2(vec<L, T, Q> const& v);
+
84 
+
93  template<length_t L, typename T, qualifier Q>
+
94  GLM_FUNC_DECL vec<L, T, Q> sqrt(vec<L, T, Q> const& v);
+
95 
+
104  template<length_t L, typename T, qualifier Q>
+
105  GLM_FUNC_DECL vec<L, T, Q> inversesqrt(vec<L, T, Q> const& v);
+
106 
+
108 }//namespace glm
+
109 
+
110 #include "detail/func_exponential.inl"
+
Core features
+
GLM_FUNC_DECL vec< L, T, Q > sqrt(vec< L, T, Q > const &v)
Returns the positive square root of v.
+
GLM_FUNC_DECL vec< L, T, Q > exp2(vec< L, T, Q > const &v)
Returns 2 raised to the v power.
+
GLM_FUNC_DECL vec< L, T, Q > inversesqrt(vec< L, T, Q > const &v)
Returns the reciprocal of the positive square root of v.
+
Core features
+
Core features
+
GLM_FUNC_DECL vec< L, T, Q > pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
Returns 'base' raised to the power 'exponent'.
+
GLM_FUNC_DECL vec< L, T, Q > exp(vec< L, T, Q > const &v)
Returns the natural exponentiation of x, i.e., e^x.
+
GLM_FUNC_DECL vec< L, T, Q > log(vec< L, T, Q > const &v)
Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y...
+
Core features
+
GLM_FUNC_DECL vec< L, T, Q > log2(vec< L, T, Q > const &v)
Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00027.html b/external/include/glm-0.9.9.8/doc/api/a00027.html index cd642551de..d70d9442df 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00027.html +++ b/external/include/glm-0.9.9.8/doc/api/a00027.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: ext.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ext.hpp File Reference
-
-
- -

Core features (Dependence) -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features (Dependence)

- -

Definition in file ext.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: ext.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext.hpp File Reference
+
+
+ +

Core features (Dependence) +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features (Dependence)

+ +

Definition in file ext.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00027_source.html b/external/include/glm-0.9.9.8/doc/api/a00027_source.html index 50ff9fbe98..4142831aae 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00027_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00027_source.html @@ -1,449 +1,449 @@ - - - - - - -0.9.9 API documentation: ext.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ext.hpp
-
-
-Go to the documentation of this file.
1 
-
5 #include "detail/setup.hpp"
-
6 
-
7 #pragma once
-
8 
-
9 #include "glm.hpp"
-
10 
-
11 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)
-
12 # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
-
13 # pragma message("GLM: All extensions included (not recommended)")
-
14 #endif//GLM_MESSAGES
-
15 
- - - - - - - - - - - - - - - - - - -
34 
- - - - - - - - - - - - - -
48 #include "./ext/matrix_float4x2_precision.hpp"
- - - - -
53 
- -
55 
- - - - - - -
62 
- - - -
66 
-
67 #include "./ext/vector_bool1.hpp"
- -
69 #include "./ext/vector_bool2.hpp"
- -
71 #include "./ext/vector_bool3.hpp"
- -
73 #include "./ext/vector_bool4.hpp"
- -
75 
-
76 #include "./ext/vector_double1.hpp"
- -
78 #include "./ext/vector_double2.hpp"
- -
80 #include "./ext/vector_double3.hpp"
- -
82 #include "./ext/vector_double4.hpp"
- -
84 
-
85 #include "./ext/vector_float1.hpp"
- -
87 #include "./ext/vector_float2.hpp"
- -
89 #include "./ext/vector_float3.hpp"
- -
91 #include "./ext/vector_float4.hpp"
- -
93 
-
94 #include "./ext/vector_int1.hpp"
- -
96 #include "./ext/vector_int2.hpp"
- -
98 #include "./ext/vector_int3.hpp"
- -
100 #include "./ext/vector_int4.hpp"
- -
102 
- -
104 
-
105 #include "./ext/vector_uint1.hpp"
- -
107 #include "./ext/vector_uint2.hpp"
- -
109 #include "./ext/vector_uint3.hpp"
- -
111 #include "./ext/vector_uint4.hpp"
- -
113 
-
114 #include "./gtc/bitfield.hpp"
-
115 #include "./gtc/color_space.hpp"
-
116 #include "./gtc/constants.hpp"
-
117 #include "./gtc/epsilon.hpp"
-
118 #include "./gtc/integer.hpp"
-
119 #include "./gtc/matrix_access.hpp"
-
120 #include "./gtc/matrix_integer.hpp"
-
121 #include "./gtc/matrix_inverse.hpp"
- -
123 #include "./gtc/noise.hpp"
-
124 #include "./gtc/packing.hpp"
-
125 #include "./gtc/quaternion.hpp"
-
126 #include "./gtc/random.hpp"
-
127 #include "./gtc/reciprocal.hpp"
-
128 #include "./gtc/round.hpp"
-
129 #include "./gtc/type_precision.hpp"
-
130 #include "./gtc/type_ptr.hpp"
-
131 #include "./gtc/ulp.hpp"
-
132 #include "./gtc/vec1.hpp"
-
133 #if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
-
134 # include "./gtc/type_aligned.hpp"
-
135 #endif
-
136 
-
137 #ifdef GLM_ENABLE_EXPERIMENTAL
- -
139 #include "./gtx/bit.hpp"
-
140 #include "./gtx/closest_point.hpp"
-
141 #include "./gtx/color_encoding.hpp"
-
142 #include "./gtx/color_space.hpp"
- -
144 #include "./gtx/compatibility.hpp"
-
145 #include "./gtx/component_wise.hpp"
-
146 #include "./gtx/dual_quaternion.hpp"
-
147 #include "./gtx/euler_angles.hpp"
-
148 #include "./gtx/extend.hpp"
- - - - -
153 #include "./gtx/functions.hpp"
-
154 #include "./gtx/gradient_paint.hpp"
- -
156 #include "./gtx/integer.hpp"
-
157 #include "./gtx/intersect.hpp"
-
158 #include "./gtx/log_base.hpp"
- - - - -
163 #include "./gtx/matrix_query.hpp"
-
164 #include "./gtx/mixed_product.hpp"
-
165 #include "./gtx/norm.hpp"
-
166 #include "./gtx/normal.hpp"
-
167 #include "./gtx/normalize_dot.hpp"
- -
169 #include "./gtx/optimum_pow.hpp"
-
170 #include "./gtx/orthonormalize.hpp"
-
171 #include "./gtx/perpendicular.hpp"
- -
173 #include "./gtx/projection.hpp"
-
174 #include "./gtx/quaternion.hpp"
-
175 #include "./gtx/raw_data.hpp"
-
176 #include "./gtx/rotate_vector.hpp"
-
177 #include "./gtx/spline.hpp"
-
178 #include "./gtx/std_based_type.hpp"
-
179 #if !(GLM_COMPILER & GLM_COMPILER_CUDA)
-
180 # include "./gtx/string_cast.hpp"
-
181 #endif
-
182 #include "./gtx/transform.hpp"
-
183 #include "./gtx/transform2.hpp"
-
184 #include "./gtx/vec_swizzle.hpp"
-
185 #include "./gtx/vector_angle.hpp"
-
186 #include "./gtx/vector_query.hpp"
-
187 #include "./gtx/wrap.hpp"
-
188 
-
189 #if GLM_HAS_TEMPLATE_ALIASES
- -
191 #endif
-
192 
-
193 #if GLM_HAS_RANGE_FOR
-
194 # include "./gtx/range.hpp"
-
195 #endif
-
196 #endif//GLM_ENABLE_EXPERIMENTAL
-
GLM_GTC_epsilon
-
GLM_EXT_vector_relational
-
GLM_GTX_dual_quaternion
-
GLM_GTX_polar_coordinates
-
GLM_GTX_closest_point
-
Core features
- - -
GLM_GTX_handed_coordinate_space
-
Core features
-
GLM_GTX_raw_data
- -
Core features
-
GLM_GTX_string_cast
-
GLM_EXT_vector_uint1_precision
-
GLM_GTX_intersect
-
GLM_EXT_vector_int1_precision
-
GLM_GTX_normalize_dot
-
GLM_GTX_integer
-
GLM_GTX_rotate_vector
- -
GLM_GTX_matrix_major_storage
-
Core features
- -
Core features
-
GLM_GTX_matrix_interpolation
-
GLM_GTX_vector_angle
-
GLM_GTX_transform2
- - -
GLM_GTX_wrap
-
GLM_GTX_vector_query
-
GLM_GTX_projection
-
GLM_GTC_constants
- -
GLM_GTX_perpendicular
-
Core features
-
Core features
-
Core features
- -
Core features
-
GLM_GTX_std_based_type
-
Core features
-
GLM_GTX_component_wise
-
GLM_GTC_ulp
-
GLM_GTC_round
-
Core features
-
GLM_GTX_orthonormalize
- -
GLM_GTC_integer
-
GLM_EXT_vector_float1
- -
GLM_GTX_matrix_query
-
GLM_EXT_vector_double1_precision
- -
GLM_GTX_vec_swizzle
-
Core features
-
GLM_GTC_type_ptr
-
Core features
-
GLM_GTX_gradient_paint
-
GLM_GTC_bitfield
-
GLM_GTX_range
- -
Core features
-
GLM_GTC_matrix_transform
-
GLM_GTX_matrix_cross_product
-
GLM_EXT_vector_bool1_precision
-
GLM_GTC_type_aligned
-
GLM_EXT_vector_uint1
-
GLM_GTX_quaternion
-
GLM_GTX_color_space_YCoCg
-
GLM_EXT_vector_int1
-
GLM_GTX_normal
-
GLM_GTC_color_space
-
Core features
-
GLM_GTC_noise
-
Core features
-
Core features
- -
GLM_GTC_matrix_integer
-
GLM_GTC_matrix_access
-
GLM_GTX_extented_min_max
-
GLM_GTC_vec1
-
GLM_GTX_transform
- -
GLM_EXT_quaternion_double_precision
-
GLM_GTX_log_base
-
GLM_GTX_compatibility
-
GLM_EXT_scalar_int_sized
- -
GLM_GTX_optimum_pow
-
GLM_GTX_functions
-
GLM_EXT_quaternion_relational
- -
GLM_GTX_fast_square_root
-
Core features
-
GLM_EXT_quaternion_float_precision
-
Core features
- -
GLM_EXT_scalar_relational
- -
Core features
-
GLM_GTC_random
-
GLM_GTX_euler_angles
-
GLM_GTX_spline
-
GLM_GTC_quaternion
-
GLM_GTX_color_space
- -
GLM_GTX_norm
-
GLM_GTX_color_encoding
-
GLM_GTC_reciprocal
- -
Core features
-
GLM_GTX_mixed_producte
-
Core features
-
GLM_EXT_vector_double1
-
Core features
- -
GLM_GTC_type_precision
-
GLM_EXT_scalar_constants
- -
GLM_GTX_fast_trigonometry
-
GLM_GTX_bit
- -
GLM_EXT_quaternion_geometric
-
Core features
-
GLM_GTX_fast_exponential
- -
GLM_EXT_quaternion_float
- -
GLM_EXT_vector_bool1
-
Core features
-
Core features
-
Core features
- -
Core features
-
GLM_GTX_extend
- -
Core features
-
GLM_EXT_quaternion_double
- -
Core features
-
GLM_GTX_number_precision
-
Core features
- -
GLM_GTX_matrix_operation
-
Core features
- -
GLM_GTC_matrix_inverse
-
Core features
-
Experimental extensions
- -
GLM_GTC_packing
-
Core features
-
GLM_GTX_associated_min_max
-
GLM_EXT_vector_float1_precision
-
GLM_EXT_matrix_relational
-
- - - - + + + + + + +0.9.9 API documentation: ext.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext.hpp
+
+
+Go to the documentation of this file.
1 
+
5 #include "detail/setup.hpp"
+
6 
+
7 #pragma once
+
8 
+
9 #include "glm.hpp"
+
10 
+
11 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED)
+
12 # define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
+
13 # pragma message("GLM: All extensions included (not recommended)")
+
14 #endif//GLM_MESSAGES
+
15 
+ + + + + + + + + + + + + + + + + + +
34 
+ + + + + + + + + + + + + +
48 #include "./ext/matrix_float4x2_precision.hpp"
+ + + + +
53 
+ +
55 
+ + + + + + +
62 
+ + + +
66 
+
67 #include "./ext/vector_bool1.hpp"
+ +
69 #include "./ext/vector_bool2.hpp"
+ +
71 #include "./ext/vector_bool3.hpp"
+ +
73 #include "./ext/vector_bool4.hpp"
+ +
75 
+
76 #include "./ext/vector_double1.hpp"
+ +
78 #include "./ext/vector_double2.hpp"
+ +
80 #include "./ext/vector_double3.hpp"
+ +
82 #include "./ext/vector_double4.hpp"
+ +
84 
+
85 #include "./ext/vector_float1.hpp"
+ +
87 #include "./ext/vector_float2.hpp"
+ +
89 #include "./ext/vector_float3.hpp"
+ +
91 #include "./ext/vector_float4.hpp"
+ +
93 
+
94 #include "./ext/vector_int1.hpp"
+ +
96 #include "./ext/vector_int2.hpp"
+ +
98 #include "./ext/vector_int3.hpp"
+ +
100 #include "./ext/vector_int4.hpp"
+ +
102 
+ +
104 
+
105 #include "./ext/vector_uint1.hpp"
+ +
107 #include "./ext/vector_uint2.hpp"
+ +
109 #include "./ext/vector_uint3.hpp"
+ +
111 #include "./ext/vector_uint4.hpp"
+ +
113 
+
114 #include "./gtc/bitfield.hpp"
+
115 #include "./gtc/color_space.hpp"
+
116 #include "./gtc/constants.hpp"
+
117 #include "./gtc/epsilon.hpp"
+
118 #include "./gtc/integer.hpp"
+
119 #include "./gtc/matrix_access.hpp"
+
120 #include "./gtc/matrix_integer.hpp"
+
121 #include "./gtc/matrix_inverse.hpp"
+ +
123 #include "./gtc/noise.hpp"
+
124 #include "./gtc/packing.hpp"
+
125 #include "./gtc/quaternion.hpp"
+
126 #include "./gtc/random.hpp"
+
127 #include "./gtc/reciprocal.hpp"
+
128 #include "./gtc/round.hpp"
+
129 #include "./gtc/type_precision.hpp"
+
130 #include "./gtc/type_ptr.hpp"
+
131 #include "./gtc/ulp.hpp"
+
132 #include "./gtc/vec1.hpp"
+
133 #if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+
134 # include "./gtc/type_aligned.hpp"
+
135 #endif
+
136 
+
137 #ifdef GLM_ENABLE_EXPERIMENTAL
+ +
139 #include "./gtx/bit.hpp"
+
140 #include "./gtx/closest_point.hpp"
+
141 #include "./gtx/color_encoding.hpp"
+
142 #include "./gtx/color_space.hpp"
+ +
144 #include "./gtx/compatibility.hpp"
+
145 #include "./gtx/component_wise.hpp"
+
146 #include "./gtx/dual_quaternion.hpp"
+
147 #include "./gtx/euler_angles.hpp"
+
148 #include "./gtx/extend.hpp"
+ + + + +
153 #include "./gtx/functions.hpp"
+
154 #include "./gtx/gradient_paint.hpp"
+ +
156 #include "./gtx/integer.hpp"
+
157 #include "./gtx/intersect.hpp"
+
158 #include "./gtx/log_base.hpp"
+ + + + +
163 #include "./gtx/matrix_query.hpp"
+
164 #include "./gtx/mixed_product.hpp"
+
165 #include "./gtx/norm.hpp"
+
166 #include "./gtx/normal.hpp"
+
167 #include "./gtx/normalize_dot.hpp"
+ +
169 #include "./gtx/optimum_pow.hpp"
+
170 #include "./gtx/orthonormalize.hpp"
+
171 #include "./gtx/perpendicular.hpp"
+ +
173 #include "./gtx/projection.hpp"
+
174 #include "./gtx/quaternion.hpp"
+
175 #include "./gtx/raw_data.hpp"
+
176 #include "./gtx/rotate_vector.hpp"
+
177 #include "./gtx/spline.hpp"
+
178 #include "./gtx/std_based_type.hpp"
+
179 #if !(GLM_COMPILER & GLM_COMPILER_CUDA)
+
180 # include "./gtx/string_cast.hpp"
+
181 #endif
+
182 #include "./gtx/transform.hpp"
+
183 #include "./gtx/transform2.hpp"
+
184 #include "./gtx/vec_swizzle.hpp"
+
185 #include "./gtx/vector_angle.hpp"
+
186 #include "./gtx/vector_query.hpp"
+
187 #include "./gtx/wrap.hpp"
+
188 
+
189 #if GLM_HAS_TEMPLATE_ALIASES
+ +
191 #endif
+
192 
+
193 #if GLM_HAS_RANGE_FOR
+
194 # include "./gtx/range.hpp"
+
195 #endif
+
196 #endif//GLM_ENABLE_EXPERIMENTAL
+
GLM_GTC_epsilon
+
GLM_EXT_vector_relational
+
GLM_GTX_dual_quaternion
+
GLM_GTX_polar_coordinates
+
GLM_GTX_closest_point
+
Core features
+ + +
GLM_GTX_handed_coordinate_space
+
Core features
+
GLM_GTX_raw_data
+ +
Core features
+
GLM_GTX_string_cast
+
GLM_EXT_vector_uint1_precision
+
GLM_GTX_intersect
+
GLM_EXT_vector_int1_precision
+
GLM_GTX_normalize_dot
+
GLM_GTX_integer
+
GLM_GTX_rotate_vector
+ +
GLM_GTX_matrix_major_storage
+
Core features
+ +
Core features
+
GLM_GTX_matrix_interpolation
+
GLM_GTX_vector_angle
+
GLM_GTX_transform2
+ + +
GLM_GTX_wrap
+
GLM_GTX_vector_query
+
GLM_GTX_projection
+
GLM_GTC_constants
+ +
GLM_GTX_perpendicular
+
Core features
+
Core features
+
Core features
+ +
Core features
+
GLM_GTX_std_based_type
+
Core features
+
GLM_GTX_component_wise
+
GLM_GTC_ulp
+
GLM_GTC_round
+
Core features
+
GLM_GTX_orthonormalize
+ +
GLM_GTC_integer
+
GLM_EXT_vector_float1
+ +
GLM_GTX_matrix_query
+
GLM_EXT_vector_double1_precision
+ +
GLM_GTX_vec_swizzle
+
Core features
+
GLM_GTC_type_ptr
+
Core features
+
GLM_GTX_gradient_paint
+
GLM_GTC_bitfield
+
GLM_GTX_range
+ +
Core features
+
GLM_GTC_matrix_transform
+
GLM_GTX_matrix_cross_product
+
GLM_EXT_vector_bool1_precision
+
GLM_GTC_type_aligned
+
GLM_EXT_vector_uint1
+
GLM_GTX_quaternion
+
GLM_GTX_color_space_YCoCg
+
GLM_EXT_vector_int1
+
GLM_GTX_normal
+
GLM_GTC_color_space
+
Core features
+
GLM_GTC_noise
+
Core features
+
Core features
+ +
GLM_GTC_matrix_integer
+
GLM_GTC_matrix_access
+
GLM_GTX_extented_min_max
+
GLM_GTC_vec1
+
GLM_GTX_transform
+ +
GLM_EXT_quaternion_double_precision
+
GLM_GTX_log_base
+
GLM_GTX_compatibility
+
GLM_EXT_scalar_int_sized
+ +
GLM_GTX_optimum_pow
+
GLM_GTX_functions
+
GLM_EXT_quaternion_relational
+ +
GLM_GTX_fast_square_root
+
Core features
+
GLM_EXT_quaternion_float_precision
+
Core features
+ +
GLM_EXT_scalar_relational
+ +
Core features
+
GLM_GTC_random
+
GLM_GTX_euler_angles
+
GLM_GTX_spline
+
GLM_GTC_quaternion
+
GLM_GTX_color_space
+ +
GLM_GTX_norm
+
GLM_GTX_color_encoding
+
GLM_GTC_reciprocal
+ +
Core features
+
GLM_GTX_mixed_producte
+
Core features
+
GLM_EXT_vector_double1
+
Core features
+ +
GLM_GTC_type_precision
+
GLM_EXT_scalar_constants
+ +
GLM_GTX_fast_trigonometry
+
GLM_GTX_bit
+ +
GLM_EXT_quaternion_geometric
+
Core features
+
GLM_GTX_fast_exponential
+ +
GLM_EXT_quaternion_float
+ +
GLM_EXT_vector_bool1
+
Core features
+
Core features
+
Core features
+ +
Core features
+
GLM_GTX_extend
+ +
Core features
+
GLM_EXT_quaternion_double
+ +
Core features
+
GLM_GTX_number_precision
+
Core features
+ +
GLM_GTX_matrix_operation
+
Core features
+ +
GLM_GTC_matrix_inverse
+
Core features
+
Experimental extensions
+ +
GLM_GTC_packing
+
Core features
+
GLM_GTX_associated_min_max
+
GLM_EXT_vector_float1_precision
+
GLM_EXT_matrix_relational
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00028.html b/external/include/glm-0.9.9.8/doc/api/a00028.html index f6c75871ce..99d4646d54 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00028.html +++ b/external/include/glm-0.9.9.8/doc/api/a00028.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: extend.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
extend.hpp File Reference
-
-
- -

GLM_GTX_extend -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 Extends of Length the Origin position using the (Source - Origin) direction. More...
 
-

Detailed Description

-

GLM_GTX_extend

-
See also
Core features (dependence)
- -

Definition in file extend.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: extend.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
extend.hpp File Reference
+
+
+ +

GLM_GTX_extend +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 Extends of Length the Origin position using the (Source - Origin) direction. More...
 
+

Detailed Description

+

GLM_GTX_extend

+
See also
Core features (dependence)
+ +

Definition in file extend.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00028_source.html b/external/include/glm-0.9.9.8/doc/api/a00028_source.html index 3783148228..71f6bf9a55 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00028_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00028_source.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: extend.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
extend.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_extend extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename genType>
-
34  GLM_FUNC_DECL genType extend(
-
35  genType const& Origin,
-
36  genType const& Source,
-
37  typename genType::value_type const Length);
-
38 
-
40 }//namespace glm
-
41 
-
42 #include "extend.inl"
-
GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)
Extends of Length the Origin position using the (Source - Origin) direction.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: extend.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
extend.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_extend extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename genType>
+
34  GLM_FUNC_DECL genType extend(
+
35  genType const& Origin,
+
36  genType const& Source,
+
37  typename genType::value_type const Length);
+
38 
+
40 }//namespace glm
+
41 
+
42 #include "extend.inl"
+
GLM_FUNC_DECL genType extend(genType const &Origin, genType const &Source, typename genType::value_type const Length)
Extends of Length the Origin position using the (Source - Origin) direction.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00029.html b/external/include/glm-0.9.9.8/doc/api/a00029.html index 7033603941..892f596aa3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00029.html +++ b/external/include/glm-0.9.9.8/doc/api/a00029.html @@ -1,183 +1,183 @@ - - - - - - -0.9.9 API documentation: extended_min_max.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
extended_min_max.hpp File Reference
-
-
- -

GLM_GTX_extented_min_max -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType fclamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmax (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmin (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

GLM_GTX_extented_min_max

-
See also
Core features (dependence)
- -

Definition in file extended_min_max.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: extended_min_max.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
extended_min_max.hpp File Reference
+
+
+ +

GLM_GTX_extented_min_max +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType fclamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmax (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmin (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

GLM_GTX_extented_min_max

+
See also
Core features (dependence)
+ +

Definition in file extended_min_max.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00029_source.html b/external/include/glm-0.9.9.8/doc/api/a00029_source.html index 18c9d6fe06..2cb43baf33 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00029_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00029_source.html @@ -1,219 +1,219 @@ - - - - - - -0.9.9 API documentation: extended_min_max.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
extended_min_max.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T>
-
34  GLM_FUNC_DECL T min(
-
35  T const& x,
-
36  T const& y,
-
37  T const& z);
-
38 
-
41  template<typename T, template<typename> class C>
-
42  GLM_FUNC_DECL C<T> min(
-
43  C<T> const& x,
-
44  typename C<T>::T const& y,
-
45  typename C<T>::T const& z);
-
46 
-
49  template<typename T, template<typename> class C>
-
50  GLM_FUNC_DECL C<T> min(
-
51  C<T> const& x,
-
52  C<T> const& y,
-
53  C<T> const& z);
-
54 
-
57  template<typename T>
-
58  GLM_FUNC_DECL T min(
-
59  T const& x,
-
60  T const& y,
-
61  T const& z,
-
62  T const& w);
-
63 
-
66  template<typename T, template<typename> class C>
-
67  GLM_FUNC_DECL C<T> min(
-
68  C<T> const& x,
-
69  typename C<T>::T const& y,
-
70  typename C<T>::T const& z,
-
71  typename C<T>::T const& w);
-
72 
-
75  template<typename T, template<typename> class C>
-
76  GLM_FUNC_DECL C<T> min(
-
77  C<T> const& x,
-
78  C<T> const& y,
-
79  C<T> const& z,
-
80  C<T> const& w);
-
81 
-
84  template<typename T>
-
85  GLM_FUNC_DECL T max(
-
86  T const& x,
-
87  T const& y,
-
88  T const& z);
-
89 
-
92  template<typename T, template<typename> class C>
-
93  GLM_FUNC_DECL C<T> max(
-
94  C<T> const& x,
-
95  typename C<T>::T const& y,
-
96  typename C<T>::T const& z);
-
97 
-
100  template<typename T, template<typename> class C>
-
101  GLM_FUNC_DECL C<T> max(
-
102  C<T> const& x,
-
103  C<T> const& y,
-
104  C<T> const& z);
-
105 
-
108  template<typename T>
-
109  GLM_FUNC_DECL T max(
-
110  T const& x,
-
111  T const& y,
-
112  T const& z,
-
113  T const& w);
-
114 
-
117  template<typename T, template<typename> class C>
-
118  GLM_FUNC_DECL C<T> max(
-
119  C<T> const& x,
-
120  typename C<T>::T const& y,
-
121  typename C<T>::T const& z,
-
122  typename C<T>::T const& w);
-
123 
-
126  template<typename T, template<typename> class C>
-
127  GLM_FUNC_DECL C<T> max(
-
128  C<T> const& x,
-
129  C<T> const& y,
-
130  C<T> const& z,
-
131  C<T> const& w);
-
132 
-
138  template<typename genType>
-
139  GLM_FUNC_DECL genType fmin(genType x, genType y);
-
140 
-
147  template<typename genType>
-
148  GLM_FUNC_DECL genType fmax(genType x, genType y);
-
149 
-
155  template<typename genType>
-
156  GLM_FUNC_DECL genType fclamp(genType x, genType minVal, genType maxVal);
-
157 
-
165  template<length_t L, typename T, qualifier Q>
-
166  GLM_FUNC_DECL vec<L, T, Q> fclamp(vec<L, T, Q> const& x, T minVal, T maxVal);
-
167 
-
175  template<length_t L, typename T, qualifier Q>
-
176  GLM_FUNC_DECL vec<L, T, Q> fclamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
-
177 
-
178 
-
180 }//namespace glm
-
181 
-
182 #include "extended_min_max.inl"
-
GLM_FUNC_DECL vec< L, T, Q > fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x.
-
GLM_FUNC_DECL genType fmin(genType x, genType y)
Returns y if y < x; otherwise, it returns x.
-
GLM_FUNC_DECL genType fmax(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
-
GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the maximum component-wise values of 4 inputs.
-
GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the minimum component-wise values of 4 inputs.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: extended_min_max.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
extended_min_max.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_extented_min_max extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T>
+
34  GLM_FUNC_DECL T min(
+
35  T const& x,
+
36  T const& y,
+
37  T const& z);
+
38 
+
41  template<typename T, template<typename> class C>
+
42  GLM_FUNC_DECL C<T> min(
+
43  C<T> const& x,
+
44  typename C<T>::T const& y,
+
45  typename C<T>::T const& z);
+
46 
+
49  template<typename T, template<typename> class C>
+
50  GLM_FUNC_DECL C<T> min(
+
51  C<T> const& x,
+
52  C<T> const& y,
+
53  C<T> const& z);
+
54 
+
57  template<typename T>
+
58  GLM_FUNC_DECL T min(
+
59  T const& x,
+
60  T const& y,
+
61  T const& z,
+
62  T const& w);
+
63 
+
66  template<typename T, template<typename> class C>
+
67  GLM_FUNC_DECL C<T> min(
+
68  C<T> const& x,
+
69  typename C<T>::T const& y,
+
70  typename C<T>::T const& z,
+
71  typename C<T>::T const& w);
+
72 
+
75  template<typename T, template<typename> class C>
+
76  GLM_FUNC_DECL C<T> min(
+
77  C<T> const& x,
+
78  C<T> const& y,
+
79  C<T> const& z,
+
80  C<T> const& w);
+
81 
+
84  template<typename T>
+
85  GLM_FUNC_DECL T max(
+
86  T const& x,
+
87  T const& y,
+
88  T const& z);
+
89 
+
92  template<typename T, template<typename> class C>
+
93  GLM_FUNC_DECL C<T> max(
+
94  C<T> const& x,
+
95  typename C<T>::T const& y,
+
96  typename C<T>::T const& z);
+
97 
+
100  template<typename T, template<typename> class C>
+
101  GLM_FUNC_DECL C<T> max(
+
102  C<T> const& x,
+
103  C<T> const& y,
+
104  C<T> const& z);
+
105 
+
108  template<typename T>
+
109  GLM_FUNC_DECL T max(
+
110  T const& x,
+
111  T const& y,
+
112  T const& z,
+
113  T const& w);
+
114 
+
117  template<typename T, template<typename> class C>
+
118  GLM_FUNC_DECL C<T> max(
+
119  C<T> const& x,
+
120  typename C<T>::T const& y,
+
121  typename C<T>::T const& z,
+
122  typename C<T>::T const& w);
+
123 
+
126  template<typename T, template<typename> class C>
+
127  GLM_FUNC_DECL C<T> max(
+
128  C<T> const& x,
+
129  C<T> const& y,
+
130  C<T> const& z,
+
131  C<T> const& w);
+
132 
+
138  template<typename genType>
+
139  GLM_FUNC_DECL genType fmin(genType x, genType y);
+
140 
+
147  template<typename genType>
+
148  GLM_FUNC_DECL genType fmax(genType x, genType y);
+
149 
+
155  template<typename genType>
+
156  GLM_FUNC_DECL genType fclamp(genType x, genType minVal, genType maxVal);
+
157 
+
165  template<length_t L, typename T, qualifier Q>
+
166  GLM_FUNC_DECL vec<L, T, Q> fclamp(vec<L, T, Q> const& x, T minVal, T maxVal);
+
167 
+
175  template<length_t L, typename T, qualifier Q>
+
176  GLM_FUNC_DECL vec<L, T, Q> fclamp(vec<L, T, Q> const& x, vec<L, T, Q> const& minVal, vec<L, T, Q> const& maxVal);
+
177 
+
178 
+
180 }//namespace glm
+
181 
+
182 #include "extended_min_max.inl"
+
GLM_FUNC_DECL vec< L, T, Q > fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
Returns min(max(x, minVal), maxVal) for each component in x.
+
GLM_FUNC_DECL genType fmin(genType x, genType y)
Returns y if y < x; otherwise, it returns x.
+
GLM_FUNC_DECL genType fmax(genType x, genType y)
Returns y if x < y; otherwise, it returns x.
+
GLM_FUNC_DECL C< T > max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the maximum component-wise values of 4 inputs.
+
GLM_FUNC_DECL C< T > min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
Return the minimum component-wise values of 4 inputs.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00030.html b/external/include/glm-0.9.9.8/doc/api/a00030.html index b89551d9b4..5f1b5b83c9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00030.html +++ b/external/include/glm-0.9.9.8/doc/api/a00030.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: exterior_product.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
exterior_product.hpp File Reference
-
-
- -

GLM_GTX_exterior_product -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T cross (vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
 Returns the cross product of x and y. More...
 
-

Detailed Description

-

GLM_GTX_exterior_product

-
See also
Core features (dependence)
-
-GLM_GTX_exterior_product (dependence)
- -

Definition in file exterior_product.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: exterior_product.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
exterior_product.hpp File Reference
+
+
+ +

GLM_GTX_exterior_product +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T cross (vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
 Returns the cross product of x and y. More...
 
+

Detailed Description

+

GLM_GTX_exterior_product

+
See also
Core features (dependence)
+
+GLM_GTX_exterior_product (dependence)
+ +

Definition in file exterior_product.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00030_source.html b/external/include/glm-0.9.9.8/doc/api/a00030_source.html index 2322cd7897..9bdf622e7b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00030_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00030_source.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: exterior_product.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
exterior_product.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_exterior_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_exterior_product extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
39  template<typename T, qualifier Q>
-
40  GLM_FUNC_DECL T cross(vec<2, T, Q> const& v, vec<2, T, Q> const& u);
-
41 
-
43 } //namespace glm
-
44 
-
45 #include "exterior_product.inl"
-
GLM_FUNC_DECL T cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
Returns the cross product of x and y.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: exterior_product.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
exterior_product.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_exterior_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_exterior_product extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
39  template<typename T, qualifier Q>
+
40  GLM_FUNC_DECL T cross(vec<2, T, Q> const& v, vec<2, T, Q> const& u);
+
41 
+
43 } //namespace glm
+
44 
+
45 #include "exterior_product.inl"
+
GLM_FUNC_DECL T cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
Returns the cross product of x and y.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00031.html b/external/include/glm-0.9.9.8/doc/api/a00031.html index a5e07c374f..40ce828f46 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00031.html +++ b/external/include/glm-0.9.9.8/doc/api/a00031.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: fast_exponential.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
fast_exponential.hpp File Reference
-
-
- -

GLM_GTX_fast_exponential -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 Faster than the common exp function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp (vec< L, T, Q > const &x)
 Faster than the common exp function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 Faster than the common exp2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp2 (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 Faster than the common log function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 Faster than the common log2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog2 (vec< L, T, Q > const &x)
 Faster than the common log2 function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common pow function but less accurate. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x)
 Faster than the common pow function but less accurate. More...
 
-

Detailed Description

-

GLM_GTX_fast_exponential

-
See also
Core features (dependence)
-
-gtx_half_float (dependence)
- -

Definition in file fast_exponential.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: fast_exponential.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
fast_exponential.hpp File Reference
+
+
+ +

GLM_GTX_fast_exponential +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 Faster than the common exp function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp (vec< L, T, Q > const &x)
 Faster than the common exp function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 Faster than the common exp2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp2 (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 Faster than the common log function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 Faster than the common log2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog2 (vec< L, T, Q > const &x)
 Faster than the common log2 function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common pow function but less accurate. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x)
 Faster than the common pow function but less accurate. More...
 
+

Detailed Description

+

GLM_GTX_fast_exponential

+
See also
Core features (dependence)
+
+gtx_half_float (dependence)
+ +

Definition in file fast_exponential.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00031_source.html b/external/include/glm-0.9.9.8/doc/api/a00031_source.html index 3aa56492fc..40945b5be1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00031_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00031_source.html @@ -1,161 +1,161 @@ - - - - - - -0.9.9 API documentation: fast_exponential.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
fast_exponential.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename genType>
-
35  GLM_FUNC_DECL genType fastPow(genType x, genType y);
-
36 
-
39  template<length_t L, typename T, qualifier Q>
-
40  GLM_FUNC_DECL vec<L, T, Q> fastPow(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
41 
-
44  template<typename genTypeT, typename genTypeU>
-
45  GLM_FUNC_DECL genTypeT fastPow(genTypeT x, genTypeU y);
-
46 
-
49  template<length_t L, typename T, qualifier Q>
-
50  GLM_FUNC_DECL vec<L, T, Q> fastPow(vec<L, T, Q> const& x);
-
51 
-
54  template<typename T>
-
55  GLM_FUNC_DECL T fastExp(T x);
-
56 
-
59  template<length_t L, typename T, qualifier Q>
-
60  GLM_FUNC_DECL vec<L, T, Q> fastExp(vec<L, T, Q> const& x);
-
61 
-
64  template<typename T>
-
65  GLM_FUNC_DECL T fastLog(T x);
-
66 
-
69  template<length_t L, typename T, qualifier Q>
-
70  GLM_FUNC_DECL vec<L, T, Q> fastLog(vec<L, T, Q> const& x);
-
71 
-
74  template<typename T>
-
75  GLM_FUNC_DECL T fastExp2(T x);
-
76 
-
79  template<length_t L, typename T, qualifier Q>
-
80  GLM_FUNC_DECL vec<L, T, Q> fastExp2(vec<L, T, Q> const& x);
-
81 
-
84  template<typename T>
-
85  GLM_FUNC_DECL T fastLog2(T x);
-
86 
-
89  template<length_t L, typename T, qualifier Q>
-
90  GLM_FUNC_DECL vec<L, T, Q> fastLog2(vec<L, T, Q> const& x);
-
91 
-
93 }//namespace glm
-
94 
-
95 #include "fast_exponential.inl"
-
GLM_FUNC_DECL vec< L, T, Q > fastLog(vec< L, T, Q > const &x)
Faster than the common exp2 function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastPow(vec< L, T, Q > const &x)
Faster than the common pow function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastLog2(vec< L, T, Q > const &x)
Faster than the common log2 function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastExp2(vec< L, T, Q > const &x)
Faster than the common exp2 function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastExp(vec< L, T, Q > const &x)
Faster than the common exp function but less accurate.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: fast_exponential.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fast_exponential.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_fast_exponential extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename genType>
+
35  GLM_FUNC_DECL genType fastPow(genType x, genType y);
+
36 
+
39  template<length_t L, typename T, qualifier Q>
+
40  GLM_FUNC_DECL vec<L, T, Q> fastPow(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
41 
+
44  template<typename genTypeT, typename genTypeU>
+
45  GLM_FUNC_DECL genTypeT fastPow(genTypeT x, genTypeU y);
+
46 
+
49  template<length_t L, typename T, qualifier Q>
+
50  GLM_FUNC_DECL vec<L, T, Q> fastPow(vec<L, T, Q> const& x);
+
51 
+
54  template<typename T>
+
55  GLM_FUNC_DECL T fastExp(T x);
+
56 
+
59  template<length_t L, typename T, qualifier Q>
+
60  GLM_FUNC_DECL vec<L, T, Q> fastExp(vec<L, T, Q> const& x);
+
61 
+
64  template<typename T>
+
65  GLM_FUNC_DECL T fastLog(T x);
+
66 
+
69  template<length_t L, typename T, qualifier Q>
+
70  GLM_FUNC_DECL vec<L, T, Q> fastLog(vec<L, T, Q> const& x);
+
71 
+
74  template<typename T>
+
75  GLM_FUNC_DECL T fastExp2(T x);
+
76 
+
79  template<length_t L, typename T, qualifier Q>
+
80  GLM_FUNC_DECL vec<L, T, Q> fastExp2(vec<L, T, Q> const& x);
+
81 
+
84  template<typename T>
+
85  GLM_FUNC_DECL T fastLog2(T x);
+
86 
+
89  template<length_t L, typename T, qualifier Q>
+
90  GLM_FUNC_DECL vec<L, T, Q> fastLog2(vec<L, T, Q> const& x);
+
91 
+
93 }//namespace glm
+
94 
+
95 #include "fast_exponential.inl"
+
GLM_FUNC_DECL vec< L, T, Q > fastLog(vec< L, T, Q > const &x)
Faster than the common exp2 function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastPow(vec< L, T, Q > const &x)
Faster than the common pow function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastLog2(vec< L, T, Q > const &x)
Faster than the common log2 function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastExp2(vec< L, T, Q > const &x)
Faster than the common exp2 function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastExp(vec< L, T, Q > const &x)
Faster than the common exp function but less accurate.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00032.html b/external/include/glm-0.9.9.8/doc/api/a00032.html index e5a7259546..7ba4fe4fa1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00032.html +++ b/external/include/glm-0.9.9.8/doc/api/a00032.html @@ -1,151 +1,151 @@ - - - - - - -0.9.9 API documentation: fast_square_root.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
fast_square_root.hpp File Reference
-
-
- -

GLM_GTX_fast_square_root -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 Faster than the common distance function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastDistance (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common distance function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt (vec< L, T, Q > const &x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 Faster than the common length function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastLength (vec< L, T, Q > const &x)
 Faster than the common length function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 Faster than the common normalize function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 Faster than the common sqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastSqrt (vec< L, T, Q > const &x)
 Faster than the common sqrt function but less accurate. More...
 
-

Detailed Description

-

GLM_GTX_fast_square_root

-
See also
Core features (dependence)
- -

Definition in file fast_square_root.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: fast_square_root.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
fast_square_root.hpp File Reference
+
+
+ +

GLM_GTX_fast_square_root +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 Faster than the common distance function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastDistance (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common distance function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt (vec< L, T, Q > const &x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 Faster than the common length function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastLength (vec< L, T, Q > const &x)
 Faster than the common length function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 Faster than the common normalize function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 Faster than the common sqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastSqrt (vec< L, T, Q > const &x)
 Faster than the common sqrt function but less accurate. More...
 
+

Detailed Description

+

GLM_GTX_fast_square_root

+
See also
Core features (dependence)
+ +

Definition in file fast_square_root.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00032_source.html b/external/include/glm-0.9.9.8/doc/api/a00032_source.html index 0e56eca9a6..36328925d0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00032_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00032_source.html @@ -1,154 +1,154 @@ - - - - - - -0.9.9 API documentation: fast_square_root.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
fast_square_root.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../common.hpp"
-
19 #include "../exponential.hpp"
-
20 #include "../geometric.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
38  template<typename genType>
-
39  GLM_FUNC_DECL genType fastSqrt(genType x);
-
40 
-
44  template<length_t L, typename T, qualifier Q>
-
45  GLM_FUNC_DECL vec<L, T, Q> fastSqrt(vec<L, T, Q> const& x);
-
46 
-
50  template<typename genType>
-
51  GLM_FUNC_DECL genType fastInverseSqrt(genType x);
-
52 
-
56  template<length_t L, typename T, qualifier Q>
-
57  GLM_FUNC_DECL vec<L, T, Q> fastInverseSqrt(vec<L, T, Q> const& x);
-
58 
-
62  template<typename genType>
-
63  GLM_FUNC_DECL genType fastLength(genType x);
-
64 
-
68  template<length_t L, typename T, qualifier Q>
-
69  GLM_FUNC_DECL T fastLength(vec<L, T, Q> const& x);
-
70 
-
74  template<typename genType>
-
75  GLM_FUNC_DECL genType fastDistance(genType x, genType y);
-
76 
-
80  template<length_t L, typename T, qualifier Q>
-
81  GLM_FUNC_DECL T fastDistance(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
82 
-
86  template<typename genType>
-
87  GLM_FUNC_DECL genType fastNormalize(genType const& x);
-
88 
-
90 }// namespace glm
-
91 
-
92 #include "fast_square_root.inl"
-
GLM_FUNC_DECL T fastLength(vec< L, T, Q > const &x)
Faster than the common length function but less accurate.
-
GLM_FUNC_DECL T fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Faster than the common distance function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastSqrt(vec< L, T, Q > const &x)
Faster than the common sqrt function but less accurate.
-
GLM_FUNC_DECL genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
-
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt(vec< L, T, Q > const &x)
Faster than the common inversesqrt function but less accurate.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: fast_square_root.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fast_square_root.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../common.hpp"
+
19 #include "../exponential.hpp"
+
20 #include "../geometric.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTX_fast_square_root extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
38  template<typename genType>
+
39  GLM_FUNC_DECL genType fastSqrt(genType x);
+
40 
+
44  template<length_t L, typename T, qualifier Q>
+
45  GLM_FUNC_DECL vec<L, T, Q> fastSqrt(vec<L, T, Q> const& x);
+
46 
+
50  template<typename genType>
+
51  GLM_FUNC_DECL genType fastInverseSqrt(genType x);
+
52 
+
56  template<length_t L, typename T, qualifier Q>
+
57  GLM_FUNC_DECL vec<L, T, Q> fastInverseSqrt(vec<L, T, Q> const& x);
+
58 
+
62  template<typename genType>
+
63  GLM_FUNC_DECL genType fastLength(genType x);
+
64 
+
68  template<length_t L, typename T, qualifier Q>
+
69  GLM_FUNC_DECL T fastLength(vec<L, T, Q> const& x);
+
70 
+
74  template<typename genType>
+
75  GLM_FUNC_DECL genType fastDistance(genType x, genType y);
+
76 
+
80  template<length_t L, typename T, qualifier Q>
+
81  GLM_FUNC_DECL T fastDistance(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
82 
+
86  template<typename genType>
+
87  GLM_FUNC_DECL genType fastNormalize(genType const& x);
+
88 
+
90 }// namespace glm
+
91 
+
92 #include "fast_square_root.inl"
+
GLM_FUNC_DECL T fastLength(vec< L, T, Q > const &x)
Faster than the common length function but less accurate.
+
GLM_FUNC_DECL T fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Faster than the common distance function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastSqrt(vec< L, T, Q > const &x)
Faster than the common sqrt function but less accurate.
+
GLM_FUNC_DECL genType fastNormalize(genType const &x)
Faster than the common normalize function but less accurate.
+
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt(vec< L, T, Q > const &x)
Faster than the common inversesqrt function but less accurate.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00033.html b/external/include/glm-0.9.9.8/doc/api/a00033.html index 8c277a7be9..3b49687028 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00033.html +++ b/external/include/glm-0.9.9.8/doc/api/a00033.html @@ -1,147 +1,147 @@ - - - - - - -0.9.9 API documentation: fast_trigonometry.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
fast_trigonometry.hpp File Reference
-
-
- -

GLM_GTX_fast_trigonometry -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 Faster than the common acos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 Faster than the common asin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 Faster than the common cos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 Faster than the common sin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 Faster than the common tan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. More...
 
-

Detailed Description

-

GLM_GTX_fast_trigonometry

-
See also
Core features (dependence)
- -

Definition in file fast_trigonometry.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: fast_trigonometry.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
fast_trigonometry.hpp File Reference
+
+
+ +

GLM_GTX_fast_trigonometry +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 Faster than the common acos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 Faster than the common asin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 Faster than the common cos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 Faster than the common sin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 Faster than the common tan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. More...
 
+

Detailed Description

+

GLM_GTX_fast_trigonometry

+
See also
Core features (dependence)
+ +

Definition in file fast_trigonometry.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00033_source.html b/external/include/glm-0.9.9.8/doc/api/a00033_source.html index e99d05fa75..c02ae841f0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00033_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00033_source.html @@ -1,152 +1,152 @@ - - - - - - -0.9.9 API documentation: fast_trigonometry.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
fast_trigonometry.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../gtc/constants.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T>
-
34  GLM_FUNC_DECL T wrapAngle(T angle);
-
35 
-
38  template<typename T>
-
39  GLM_FUNC_DECL T fastSin(T angle);
-
40 
-
43  template<typename T>
-
44  GLM_FUNC_DECL T fastCos(T angle);
-
45 
-
49  template<typename T>
-
50  GLM_FUNC_DECL T fastTan(T angle);
-
51 
-
55  template<typename T>
-
56  GLM_FUNC_DECL T fastAsin(T angle);
-
57 
-
61  template<typename T>
-
62  GLM_FUNC_DECL T fastAcos(T angle);
-
63 
-
67  template<typename T>
-
68  GLM_FUNC_DECL T fastAtan(T y, T x);
-
69 
-
73  template<typename T>
-
74  GLM_FUNC_DECL T fastAtan(T angle);
-
75 
-
77 }//namespace glm
-
78 
-
79 #include "fast_trigonometry.inl"
-
GLM_FUNC_DECL T fastAsin(T angle)
Faster than the common asin function but less accurate.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL T fastAcos(T angle)
Faster than the common acos function but less accurate.
-
GLM_FUNC_DECL T fastTan(T angle)
Faster than the common tan function but less accurate.
-
GLM_FUNC_DECL T fastCos(T angle)
Faster than the common cos function but less accurate.
-
GLM_FUNC_DECL T fastAtan(T angle)
Faster than the common atan function but less accurate.
-
GLM_FUNC_DECL T fastSin(T angle)
Faster than the common sin function but less accurate.
-
GLM_FUNC_DECL T wrapAngle(T angle)
Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: fast_trigonometry.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fast_trigonometry.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../gtc/constants.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T>
+
34  GLM_FUNC_DECL T wrapAngle(T angle);
+
35 
+
38  template<typename T>
+
39  GLM_FUNC_DECL T fastSin(T angle);
+
40 
+
43  template<typename T>
+
44  GLM_FUNC_DECL T fastCos(T angle);
+
45 
+
49  template<typename T>
+
50  GLM_FUNC_DECL T fastTan(T angle);
+
51 
+
55  template<typename T>
+
56  GLM_FUNC_DECL T fastAsin(T angle);
+
57 
+
61  template<typename T>
+
62  GLM_FUNC_DECL T fastAcos(T angle);
+
63 
+
67  template<typename T>
+
68  GLM_FUNC_DECL T fastAtan(T y, T x);
+
69 
+
73  template<typename T>
+
74  GLM_FUNC_DECL T fastAtan(T angle);
+
75 
+
77 }//namespace glm
+
78 
+
79 #include "fast_trigonometry.inl"
+
GLM_FUNC_DECL T fastAsin(T angle)
Faster than the common asin function but less accurate.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL T fastAcos(T angle)
Faster than the common acos function but less accurate.
+
GLM_FUNC_DECL T fastTan(T angle)
Faster than the common tan function but less accurate.
+
GLM_FUNC_DECL T fastCos(T angle)
Faster than the common cos function but less accurate.
+
GLM_FUNC_DECL T fastAtan(T angle)
Faster than the common atan function but less accurate.
+
GLM_FUNC_DECL T fastSin(T angle)
Faster than the common sin function but less accurate.
+
GLM_FUNC_DECL T wrapAngle(T angle)
Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00034.html b/external/include/glm-0.9.9.8/doc/api/a00034.html index 674269afcb..00e437cdff 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00034.html +++ b/external/include/glm-0.9.9.8/doc/api/a00034.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: functions.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
functions.hpp File Reference
-
-
- -

GLM_GTX_functions -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T gauss (T x, T ExpectedValue, T StandardDeviation)
 1D gauss function More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T gauss (vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
 2D gauss function More...
 
-

Detailed Description

-

GLM_GTX_functions

-
See also
Core features (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file functions.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: functions.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
functions.hpp File Reference
+
+
+ +

GLM_GTX_functions +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T gauss (T x, T ExpectedValue, T StandardDeviation)
 1D gauss function More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T gauss (vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
 2D gauss function More...
 
+

Detailed Description

+

GLM_GTX_functions

+
See also
Core features (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file functions.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00034_source.html b/external/include/glm-0.9.9.8/doc/api/a00034_source.html index 8723755bab..2d206e04e1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00034_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00034_source.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: functions.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
functions.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 #include "../detail/type_vec2.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_functions is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_functions extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
37  template<typename T>
-
38  GLM_FUNC_DECL T gauss(
-
39  T x,
-
40  T ExpectedValue,
-
41  T StandardDeviation);
-
42 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL T gauss(
-
48  vec<2, T, Q> const& Coord,
-
49  vec<2, T, Q> const& ExpectedValue,
-
50  vec<2, T, Q> const& StandardDeviation);
-
51 
-
53 }//namespace glm
-
54 
-
55 #include "functions.inl"
-
56 
-
GLM_FUNC_DECL T gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
2D gauss function
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: functions.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
functions.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 #include "../detail/type_vec2.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_functions is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_functions extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
37  template<typename T>
+
38  GLM_FUNC_DECL T gauss(
+
39  T x,
+
40  T ExpectedValue,
+
41  T StandardDeviation);
+
42 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL T gauss(
+
48  vec<2, T, Q> const& Coord,
+
49  vec<2, T, Q> const& ExpectedValue,
+
50  vec<2, T, Q> const& StandardDeviation);
+
51 
+
53 }//namespace glm
+
54 
+
55 #include "functions.inl"
+
56 
+
GLM_FUNC_DECL T gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
2D gauss function
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00035_source.html b/external/include/glm-0.9.9.8/doc/api/a00035_source.html index 51e27877ce..454a17d496 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00035_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00035_source.html @@ -1,1544 +1,1544 @@ - - - - - - -0.9.9 API documentation: fwd.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
fwd.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "detail/qualifier.hpp"
-
4 
-
5 namespace glm
-
6 {
-
7 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
8  typedef std::int8_t int8;
-
9  typedef std::int16_t int16;
-
10  typedef std::int32_t int32;
-
11  typedef std::int64_t int64;
-
12 
-
13  typedef std::uint8_t uint8;
-
14  typedef std::uint16_t uint16;
-
15  typedef std::uint32_t uint32;
-
16  typedef std::uint64_t uint64;
-
17 #else
-
18  typedef signed char int8;
-
19  typedef signed short int16;
-
20  typedef signed int int32;
-
21  typedef detail::int64 int64;
-
22 
-
23  typedef unsigned char uint8;
-
24  typedef unsigned short uint16;
-
25  typedef unsigned int uint32;
-
26  typedef detail::uint64 uint64;
-
27 #endif
-
28 
-
29  // Scalar int
-
30 
-
31  typedef int8 lowp_i8;
-
32  typedef int8 mediump_i8;
-
33  typedef int8 highp_i8;
-
34  typedef int8 i8;
-
35 
-
36  typedef int8 lowp_int8;
-
37  typedef int8 mediump_int8;
-
38  typedef int8 highp_int8;
-
39 
-
40  typedef int8 lowp_int8_t;
-
41  typedef int8 mediump_int8_t;
-
42  typedef int8 highp_int8_t;
-
43  typedef int8 int8_t;
-
44 
-
45  typedef int16 lowp_i16;
-
46  typedef int16 mediump_i16;
-
47  typedef int16 highp_i16;
-
48  typedef int16 i16;
-
49 
-
50  typedef int16 lowp_int16;
-
51  typedef int16 mediump_int16;
-
52  typedef int16 highp_int16;
-
53 
-
54  typedef int16 lowp_int16_t;
-
55  typedef int16 mediump_int16_t;
-
56  typedef int16 highp_int16_t;
-
57  typedef int16 int16_t;
-
58 
-
59  typedef int32 lowp_i32;
-
60  typedef int32 mediump_i32;
-
61  typedef int32 highp_i32;
-
62  typedef int32 i32;
-
63 
-
64  typedef int32 lowp_int32;
-
65  typedef int32 mediump_int32;
-
66  typedef int32 highp_int32;
-
67 
-
68  typedef int32 lowp_int32_t;
-
69  typedef int32 mediump_int32_t;
-
70  typedef int32 highp_int32_t;
-
71  typedef int32 int32_t;
-
72 
-
73  typedef int64 lowp_i64;
-
74  typedef int64 mediump_i64;
-
75  typedef int64 highp_i64;
-
76  typedef int64 i64;
-
77 
-
78  typedef int64 lowp_int64;
-
79  typedef int64 mediump_int64;
-
80  typedef int64 highp_int64;
-
81 
-
82  typedef int64 lowp_int64_t;
-
83  typedef int64 mediump_int64_t;
-
84  typedef int64 highp_int64_t;
-
85  typedef int64 int64_t;
-
86 
-
87  // Scalar uint
-
88 
-
89  typedef uint8 lowp_u8;
-
90  typedef uint8 mediump_u8;
-
91  typedef uint8 highp_u8;
-
92  typedef uint8 u8;
-
93 
-
94  typedef uint8 lowp_uint8;
-
95  typedef uint8 mediump_uint8;
-
96  typedef uint8 highp_uint8;
-
97 
-
98  typedef uint8 lowp_uint8_t;
-
99  typedef uint8 mediump_uint8_t;
-
100  typedef uint8 highp_uint8_t;
-
101  typedef uint8 uint8_t;
-
102 
-
103  typedef uint16 lowp_u16;
-
104  typedef uint16 mediump_u16;
-
105  typedef uint16 highp_u16;
-
106  typedef uint16 u16;
-
107 
-
108  typedef uint16 lowp_uint16;
-
109  typedef uint16 mediump_uint16;
-
110  typedef uint16 highp_uint16;
-
111 
-
112  typedef uint16 lowp_uint16_t;
-
113  typedef uint16 mediump_uint16_t;
-
114  typedef uint16 highp_uint16_t;
-
115  typedef uint16 uint16_t;
-
116 
-
117  typedef uint32 lowp_u32;
-
118  typedef uint32 mediump_u32;
-
119  typedef uint32 highp_u32;
-
120  typedef uint32 u32;
-
121 
-
122  typedef uint32 lowp_uint32;
-
123  typedef uint32 mediump_uint32;
-
124  typedef uint32 highp_uint32;
-
125 
-
126  typedef uint32 lowp_uint32_t;
-
127  typedef uint32 mediump_uint32_t;
-
128  typedef uint32 highp_uint32_t;
-
129  typedef uint32 uint32_t;
-
130 
-
131  typedef uint64 lowp_u64;
-
132  typedef uint64 mediump_u64;
-
133  typedef uint64 highp_u64;
-
134  typedef uint64 u64;
-
135 
-
136  typedef uint64 lowp_uint64;
-
137  typedef uint64 mediump_uint64;
-
138  typedef uint64 highp_uint64;
-
139 
-
140  typedef uint64 lowp_uint64_t;
-
141  typedef uint64 mediump_uint64_t;
-
142  typedef uint64 highp_uint64_t;
-
143  typedef uint64 uint64_t;
-
144 
-
145  // Scalar float
-
146 
-
147  typedef float lowp_f32;
-
148  typedef float mediump_f32;
-
149  typedef float highp_f32;
-
150  typedef float f32;
-
151 
-
152  typedef float lowp_float32;
-
153  typedef float mediump_float32;
-
154  typedef float highp_float32;
-
155  typedef float float32;
-
156 
-
157  typedef float lowp_float32_t;
-
158  typedef float mediump_float32_t;
-
159  typedef float highp_float32_t;
-
160  typedef float float32_t;
-
161 
-
162 
-
163  typedef double lowp_f64;
-
164  typedef double mediump_f64;
-
165  typedef double highp_f64;
-
166  typedef double f64;
-
167 
-
168  typedef double lowp_float64;
-
169  typedef double mediump_float64;
-
170  typedef double highp_float64;
-
171  typedef double float64;
-
172 
-
173  typedef double lowp_float64_t;
-
174  typedef double mediump_float64_t;
-
175  typedef double highp_float64_t;
-
176  typedef double float64_t;
-
177 
-
178  // Vector bool
-
179 
-
180  typedef vec<1, bool, lowp> lowp_bvec1;
-
181  typedef vec<2, bool, lowp> lowp_bvec2;
-
182  typedef vec<3, bool, lowp> lowp_bvec3;
-
183  typedef vec<4, bool, lowp> lowp_bvec4;
-
184 
-
185  typedef vec<1, bool, mediump> mediump_bvec1;
-
186  typedef vec<2, bool, mediump> mediump_bvec2;
-
187  typedef vec<3, bool, mediump> mediump_bvec3;
-
188  typedef vec<4, bool, mediump> mediump_bvec4;
-
189 
-
190  typedef vec<1, bool, highp> highp_bvec1;
-
191  typedef vec<2, bool, highp> highp_bvec2;
-
192  typedef vec<3, bool, highp> highp_bvec3;
-
193  typedef vec<4, bool, highp> highp_bvec4;
-
194 
-
195  typedef vec<1, bool, defaultp> bvec1;
-
196  typedef vec<2, bool, defaultp> bvec2;
-
197  typedef vec<3, bool, defaultp> bvec3;
-
198  typedef vec<4, bool, defaultp> bvec4;
-
199 
-
200  // Vector int
-
201 
-
202  typedef vec<1, i32, lowp> lowp_ivec1;
-
203  typedef vec<2, i32, lowp> lowp_ivec2;
-
204  typedef vec<3, i32, lowp> lowp_ivec3;
-
205  typedef vec<4, i32, lowp> lowp_ivec4;
-
206 
-
207  typedef vec<1, i32, mediump> mediump_ivec1;
-
208  typedef vec<2, i32, mediump> mediump_ivec2;
-
209  typedef vec<3, i32, mediump> mediump_ivec3;
-
210  typedef vec<4, i32, mediump> mediump_ivec4;
-
211 
-
212  typedef vec<1, i32, highp> highp_ivec1;
-
213  typedef vec<2, i32, highp> highp_ivec2;
-
214  typedef vec<3, i32, highp> highp_ivec3;
-
215  typedef vec<4, i32, highp> highp_ivec4;
-
216 
-
217  typedef vec<1, i32, defaultp> ivec1;
-
218  typedef vec<2, i32, defaultp> ivec2;
-
219  typedef vec<3, i32, defaultp> ivec3;
-
220  typedef vec<4, i32, defaultp> ivec4;
-
221 
-
222  typedef vec<1, i8, lowp> lowp_i8vec1;
-
223  typedef vec<2, i8, lowp> lowp_i8vec2;
-
224  typedef vec<3, i8, lowp> lowp_i8vec3;
-
225  typedef vec<4, i8, lowp> lowp_i8vec4;
-
226 
-
227  typedef vec<1, i8, mediump> mediump_i8vec1;
-
228  typedef vec<2, i8, mediump> mediump_i8vec2;
-
229  typedef vec<3, i8, mediump> mediump_i8vec3;
-
230  typedef vec<4, i8, mediump> mediump_i8vec4;
-
231 
-
232  typedef vec<1, i8, highp> highp_i8vec1;
-
233  typedef vec<2, i8, highp> highp_i8vec2;
-
234  typedef vec<3, i8, highp> highp_i8vec3;
-
235  typedef vec<4, i8, highp> highp_i8vec4;
-
236 
-
237  typedef vec<1, i8, defaultp> i8vec1;
-
238  typedef vec<2, i8, defaultp> i8vec2;
-
239  typedef vec<3, i8, defaultp> i8vec3;
-
240  typedef vec<4, i8, defaultp> i8vec4;
-
241 
-
242  typedef vec<1, i16, lowp> lowp_i16vec1;
-
243  typedef vec<2, i16, lowp> lowp_i16vec2;
-
244  typedef vec<3, i16, lowp> lowp_i16vec3;
-
245  typedef vec<4, i16, lowp> lowp_i16vec4;
-
246 
-
247  typedef vec<1, i16, mediump> mediump_i16vec1;
-
248  typedef vec<2, i16, mediump> mediump_i16vec2;
-
249  typedef vec<3, i16, mediump> mediump_i16vec3;
-
250  typedef vec<4, i16, mediump> mediump_i16vec4;
-
251 
-
252  typedef vec<1, i16, highp> highp_i16vec1;
-
253  typedef vec<2, i16, highp> highp_i16vec2;
-
254  typedef vec<3, i16, highp> highp_i16vec3;
-
255  typedef vec<4, i16, highp> highp_i16vec4;
-
256 
-
257  typedef vec<1, i16, defaultp> i16vec1;
-
258  typedef vec<2, i16, defaultp> i16vec2;
-
259  typedef vec<3, i16, defaultp> i16vec3;
-
260  typedef vec<4, i16, defaultp> i16vec4;
-
261 
-
262  typedef vec<1, i32, lowp> lowp_i32vec1;
-
263  typedef vec<2, i32, lowp> lowp_i32vec2;
-
264  typedef vec<3, i32, lowp> lowp_i32vec3;
-
265  typedef vec<4, i32, lowp> lowp_i32vec4;
-
266 
-
267  typedef vec<1, i32, mediump> mediump_i32vec1;
-
268  typedef vec<2, i32, mediump> mediump_i32vec2;
-
269  typedef vec<3, i32, mediump> mediump_i32vec3;
-
270  typedef vec<4, i32, mediump> mediump_i32vec4;
-
271 
-
272  typedef vec<1, i32, highp> highp_i32vec1;
-
273  typedef vec<2, i32, highp> highp_i32vec2;
-
274  typedef vec<3, i32, highp> highp_i32vec3;
-
275  typedef vec<4, i32, highp> highp_i32vec4;
-
276 
-
277  typedef vec<1, i32, defaultp> i32vec1;
-
278  typedef vec<2, i32, defaultp> i32vec2;
-
279  typedef vec<3, i32, defaultp> i32vec3;
-
280  typedef vec<4, i32, defaultp> i32vec4;
-
281 
-
282  typedef vec<1, i64, lowp> lowp_i64vec1;
-
283  typedef vec<2, i64, lowp> lowp_i64vec2;
-
284  typedef vec<3, i64, lowp> lowp_i64vec3;
-
285  typedef vec<4, i64, lowp> lowp_i64vec4;
-
286 
-
287  typedef vec<1, i64, mediump> mediump_i64vec1;
-
288  typedef vec<2, i64, mediump> mediump_i64vec2;
-
289  typedef vec<3, i64, mediump> mediump_i64vec3;
-
290  typedef vec<4, i64, mediump> mediump_i64vec4;
-
291 
-
292  typedef vec<1, i64, highp> highp_i64vec1;
-
293  typedef vec<2, i64, highp> highp_i64vec2;
-
294  typedef vec<3, i64, highp> highp_i64vec3;
-
295  typedef vec<4, i64, highp> highp_i64vec4;
-
296 
-
297  typedef vec<1, i64, defaultp> i64vec1;
-
298  typedef vec<2, i64, defaultp> i64vec2;
-
299  typedef vec<3, i64, defaultp> i64vec3;
-
300  typedef vec<4, i64, defaultp> i64vec4;
-
301 
-
302  // Vector uint
-
303 
-
304  typedef vec<1, u32, lowp> lowp_uvec1;
-
305  typedef vec<2, u32, lowp> lowp_uvec2;
-
306  typedef vec<3, u32, lowp> lowp_uvec3;
-
307  typedef vec<4, u32, lowp> lowp_uvec4;
-
308 
-
309  typedef vec<1, u32, mediump> mediump_uvec1;
-
310  typedef vec<2, u32, mediump> mediump_uvec2;
-
311  typedef vec<3, u32, mediump> mediump_uvec3;
-
312  typedef vec<4, u32, mediump> mediump_uvec4;
-
313 
-
314  typedef vec<1, u32, highp> highp_uvec1;
-
315  typedef vec<2, u32, highp> highp_uvec2;
-
316  typedef vec<3, u32, highp> highp_uvec3;
-
317  typedef vec<4, u32, highp> highp_uvec4;
-
318 
-
319  typedef vec<1, u32, defaultp> uvec1;
-
320  typedef vec<2, u32, defaultp> uvec2;
-
321  typedef vec<3, u32, defaultp> uvec3;
-
322  typedef vec<4, u32, defaultp> uvec4;
-
323 
-
324  typedef vec<1, u8, lowp> lowp_u8vec1;
-
325  typedef vec<2, u8, lowp> lowp_u8vec2;
-
326  typedef vec<3, u8, lowp> lowp_u8vec3;
-
327  typedef vec<4, u8, lowp> lowp_u8vec4;
-
328 
-
329  typedef vec<1, u8, mediump> mediump_u8vec1;
-
330  typedef vec<2, u8, mediump> mediump_u8vec2;
-
331  typedef vec<3, u8, mediump> mediump_u8vec3;
-
332  typedef vec<4, u8, mediump> mediump_u8vec4;
-
333 
-
334  typedef vec<1, u8, highp> highp_u8vec1;
-
335  typedef vec<2, u8, highp> highp_u8vec2;
-
336  typedef vec<3, u8, highp> highp_u8vec3;
-
337  typedef vec<4, u8, highp> highp_u8vec4;
-
338 
-
339  typedef vec<1, u8, defaultp> u8vec1;
-
340  typedef vec<2, u8, defaultp> u8vec2;
-
341  typedef vec<3, u8, defaultp> u8vec3;
-
342  typedef vec<4, u8, defaultp> u8vec4;
-
343 
-
344  typedef vec<1, u16, lowp> lowp_u16vec1;
-
345  typedef vec<2, u16, lowp> lowp_u16vec2;
-
346  typedef vec<3, u16, lowp> lowp_u16vec3;
-
347  typedef vec<4, u16, lowp> lowp_u16vec4;
-
348 
-
349  typedef vec<1, u16, mediump> mediump_u16vec1;
-
350  typedef vec<2, u16, mediump> mediump_u16vec2;
-
351  typedef vec<3, u16, mediump> mediump_u16vec3;
-
352  typedef vec<4, u16, mediump> mediump_u16vec4;
-
353 
-
354  typedef vec<1, u16, highp> highp_u16vec1;
-
355  typedef vec<2, u16, highp> highp_u16vec2;
-
356  typedef vec<3, u16, highp> highp_u16vec3;
-
357  typedef vec<4, u16, highp> highp_u16vec4;
-
358 
-
359  typedef vec<1, u16, defaultp> u16vec1;
-
360  typedef vec<2, u16, defaultp> u16vec2;
-
361  typedef vec<3, u16, defaultp> u16vec3;
-
362  typedef vec<4, u16, defaultp> u16vec4;
-
363 
-
364  typedef vec<1, u32, lowp> lowp_u32vec1;
-
365  typedef vec<2, u32, lowp> lowp_u32vec2;
-
366  typedef vec<3, u32, lowp> lowp_u32vec3;
-
367  typedef vec<4, u32, lowp> lowp_u32vec4;
-
368 
-
369  typedef vec<1, u32, mediump> mediump_u32vec1;
-
370  typedef vec<2, u32, mediump> mediump_u32vec2;
-
371  typedef vec<3, u32, mediump> mediump_u32vec3;
-
372  typedef vec<4, u32, mediump> mediump_u32vec4;
-
373 
-
374  typedef vec<1, u32, highp> highp_u32vec1;
-
375  typedef vec<2, u32, highp> highp_u32vec2;
-
376  typedef vec<3, u32, highp> highp_u32vec3;
-
377  typedef vec<4, u32, highp> highp_u32vec4;
-
378 
-
379  typedef vec<1, u32, defaultp> u32vec1;
-
380  typedef vec<2, u32, defaultp> u32vec2;
-
381  typedef vec<3, u32, defaultp> u32vec3;
-
382  typedef vec<4, u32, defaultp> u32vec4;
-
383 
-
384  typedef vec<1, u64, lowp> lowp_u64vec1;
-
385  typedef vec<2, u64, lowp> lowp_u64vec2;
-
386  typedef vec<3, u64, lowp> lowp_u64vec3;
-
387  typedef vec<4, u64, lowp> lowp_u64vec4;
-
388 
-
389  typedef vec<1, u64, mediump> mediump_u64vec1;
-
390  typedef vec<2, u64, mediump> mediump_u64vec2;
-
391  typedef vec<3, u64, mediump> mediump_u64vec3;
-
392  typedef vec<4, u64, mediump> mediump_u64vec4;
-
393 
-
394  typedef vec<1, u64, highp> highp_u64vec1;
-
395  typedef vec<2, u64, highp> highp_u64vec2;
-
396  typedef vec<3, u64, highp> highp_u64vec3;
-
397  typedef vec<4, u64, highp> highp_u64vec4;
-
398 
-
399  typedef vec<1, u64, defaultp> u64vec1;
-
400  typedef vec<2, u64, defaultp> u64vec2;
-
401  typedef vec<3, u64, defaultp> u64vec3;
-
402  typedef vec<4, u64, defaultp> u64vec4;
-
403 
-
404  // Vector float
-
405 
-
406  typedef vec<1, float, lowp> lowp_vec1;
-
407  typedef vec<2, float, lowp> lowp_vec2;
-
408  typedef vec<3, float, lowp> lowp_vec3;
-
409  typedef vec<4, float, lowp> lowp_vec4;
-
410 
-
411  typedef vec<1, float, mediump> mediump_vec1;
-
412  typedef vec<2, float, mediump> mediump_vec2;
-
413  typedef vec<3, float, mediump> mediump_vec3;
-
414  typedef vec<4, float, mediump> mediump_vec4;
-
415 
-
416  typedef vec<1, float, highp> highp_vec1;
-
417  typedef vec<2, float, highp> highp_vec2;
-
418  typedef vec<3, float, highp> highp_vec3;
-
419  typedef vec<4, float, highp> highp_vec4;
-
420 
-
421  typedef vec<1, float, defaultp> vec1;
-
422  typedef vec<2, float, defaultp> vec2;
-
423  typedef vec<3, float, defaultp> vec3;
-
424  typedef vec<4, float, defaultp> vec4;
-
425 
-
426  typedef vec<1, float, lowp> lowp_fvec1;
-
427  typedef vec<2, float, lowp> lowp_fvec2;
-
428  typedef vec<3, float, lowp> lowp_fvec3;
-
429  typedef vec<4, float, lowp> lowp_fvec4;
-
430 
-
431  typedef vec<1, float, mediump> mediump_fvec1;
-
432  typedef vec<2, float, mediump> mediump_fvec2;
-
433  typedef vec<3, float, mediump> mediump_fvec3;
-
434  typedef vec<4, float, mediump> mediump_fvec4;
-
435 
-
436  typedef vec<1, float, highp> highp_fvec1;
-
437  typedef vec<2, float, highp> highp_fvec2;
-
438  typedef vec<3, float, highp> highp_fvec3;
-
439  typedef vec<4, float, highp> highp_fvec4;
-
440 
-
441  typedef vec<1, f32, defaultp> fvec1;
-
442  typedef vec<2, f32, defaultp> fvec2;
-
443  typedef vec<3, f32, defaultp> fvec3;
-
444  typedef vec<4, f32, defaultp> fvec4;
-
445 
-
446  typedef vec<1, f32, lowp> lowp_f32vec1;
-
447  typedef vec<2, f32, lowp> lowp_f32vec2;
-
448  typedef vec<3, f32, lowp> lowp_f32vec3;
-
449  typedef vec<4, f32, lowp> lowp_f32vec4;
-
450 
-
451  typedef vec<1, f32, mediump> mediump_f32vec1;
-
452  typedef vec<2, f32, mediump> mediump_f32vec2;
-
453  typedef vec<3, f32, mediump> mediump_f32vec3;
-
454  typedef vec<4, f32, mediump> mediump_f32vec4;
-
455 
-
456  typedef vec<1, f32, highp> highp_f32vec1;
-
457  typedef vec<2, f32, highp> highp_f32vec2;
-
458  typedef vec<3, f32, highp> highp_f32vec3;
-
459  typedef vec<4, f32, highp> highp_f32vec4;
-
460 
-
461  typedef vec<1, f32, defaultp> f32vec1;
-
462  typedef vec<2, f32, defaultp> f32vec2;
-
463  typedef vec<3, f32, defaultp> f32vec3;
-
464  typedef vec<4, f32, defaultp> f32vec4;
-
465 
-
466  typedef vec<1, f64, lowp> lowp_dvec1;
-
467  typedef vec<2, f64, lowp> lowp_dvec2;
-
468  typedef vec<3, f64, lowp> lowp_dvec3;
-
469  typedef vec<4, f64, lowp> lowp_dvec4;
-
470 
-
471  typedef vec<1, f64, mediump> mediump_dvec1;
-
472  typedef vec<2, f64, mediump> mediump_dvec2;
-
473  typedef vec<3, f64, mediump> mediump_dvec3;
-
474  typedef vec<4, f64, mediump> mediump_dvec4;
-
475 
-
476  typedef vec<1, f64, highp> highp_dvec1;
-
477  typedef vec<2, f64, highp> highp_dvec2;
-
478  typedef vec<3, f64, highp> highp_dvec3;
-
479  typedef vec<4, f64, highp> highp_dvec4;
-
480 
-
481  typedef vec<1, f64, defaultp> dvec1;
-
482  typedef vec<2, f64, defaultp> dvec2;
-
483  typedef vec<3, f64, defaultp> dvec3;
-
484  typedef vec<4, f64, defaultp> dvec4;
-
485 
-
486  typedef vec<1, f64, lowp> lowp_f64vec1;
-
487  typedef vec<2, f64, lowp> lowp_f64vec2;
-
488  typedef vec<3, f64, lowp> lowp_f64vec3;
-
489  typedef vec<4, f64, lowp> lowp_f64vec4;
-
490 
-
491  typedef vec<1, f64, mediump> mediump_f64vec1;
-
492  typedef vec<2, f64, mediump> mediump_f64vec2;
-
493  typedef vec<3, f64, mediump> mediump_f64vec3;
-
494  typedef vec<4, f64, mediump> mediump_f64vec4;
-
495 
-
496  typedef vec<1, f64, highp> highp_f64vec1;
-
497  typedef vec<2, f64, highp> highp_f64vec2;
-
498  typedef vec<3, f64, highp> highp_f64vec3;
-
499  typedef vec<4, f64, highp> highp_f64vec4;
-
500 
-
501  typedef vec<1, f64, defaultp> f64vec1;
-
502  typedef vec<2, f64, defaultp> f64vec2;
-
503  typedef vec<3, f64, defaultp> f64vec3;
-
504  typedef vec<4, f64, defaultp> f64vec4;
-
505 
-
506  // Matrix NxN
-
507 
-
508  typedef mat<2, 2, f32, lowp> lowp_mat2;
-
509  typedef mat<3, 3, f32, lowp> lowp_mat3;
-
510  typedef mat<4, 4, f32, lowp> lowp_mat4;
-
511 
-
512  typedef mat<2, 2, f32, mediump> mediump_mat2;
-
513  typedef mat<3, 3, f32, mediump> mediump_mat3;
-
514  typedef mat<4, 4, f32, mediump> mediump_mat4;
-
515 
-
516  typedef mat<2, 2, f32, highp> highp_mat2;
-
517  typedef mat<3, 3, f32, highp> highp_mat3;
-
518  typedef mat<4, 4, f32, highp> highp_mat4;
-
519 
-
520  typedef mat<2, 2, f32, defaultp> mat2;
-
521  typedef mat<3, 3, f32, defaultp> mat3;
-
522  typedef mat<4, 4, f32, defaultp> mat4;
-
523 
-
524  typedef mat<2, 2, f32, lowp> lowp_fmat2;
-
525  typedef mat<3, 3, f32, lowp> lowp_fmat3;
-
526  typedef mat<4, 4, f32, lowp> lowp_fmat4;
-
527 
-
528  typedef mat<2, 2, f32, mediump> mediump_fmat2;
-
529  typedef mat<3, 3, f32, mediump> mediump_fmat3;
-
530  typedef mat<4, 4, f32, mediump> mediump_fmat4;
-
531 
-
532  typedef mat<2, 2, f32, highp> highp_fmat2;
-
533  typedef mat<3, 3, f32, highp> highp_fmat3;
-
534  typedef mat<4, 4, f32, highp> highp_fmat4;
-
535 
-
536  typedef mat<2, 2, f32, defaultp> fmat2;
-
537  typedef mat<3, 3, f32, defaultp> fmat3;
-
538  typedef mat<4, 4, f32, defaultp> fmat4;
-
539 
-
540  typedef mat<2, 2, f32, lowp> lowp_f32mat2;
-
541  typedef mat<3, 3, f32, lowp> lowp_f32mat3;
-
542  typedef mat<4, 4, f32, lowp> lowp_f32mat4;
-
543 
-
544  typedef mat<2, 2, f32, mediump> mediump_f32mat2;
-
545  typedef mat<3, 3, f32, mediump> mediump_f32mat3;
-
546  typedef mat<4, 4, f32, mediump> mediump_f32mat4;
-
547 
-
548  typedef mat<2, 2, f32, highp> highp_f32mat2;
-
549  typedef mat<3, 3, f32, highp> highp_f32mat3;
-
550  typedef mat<4, 4, f32, highp> highp_f32mat4;
-
551 
-
552  typedef mat<2, 2, f32, defaultp> f32mat2;
-
553  typedef mat<3, 3, f32, defaultp> f32mat3;
-
554  typedef mat<4, 4, f32, defaultp> f32mat4;
-
555 
-
556  typedef mat<2, 2, f64, lowp> lowp_dmat2;
-
557  typedef mat<3, 3, f64, lowp> lowp_dmat3;
-
558  typedef mat<4, 4, f64, lowp> lowp_dmat4;
-
559 
-
560  typedef mat<2, 2, f64, mediump> mediump_dmat2;
-
561  typedef mat<3, 3, f64, mediump> mediump_dmat3;
-
562  typedef mat<4, 4, f64, mediump> mediump_dmat4;
-
563 
-
564  typedef mat<2, 2, f64, highp> highp_dmat2;
-
565  typedef mat<3, 3, f64, highp> highp_dmat3;
-
566  typedef mat<4, 4, f64, highp> highp_dmat4;
-
567 
-
568  typedef mat<2, 2, f64, defaultp> dmat2;
-
569  typedef mat<3, 3, f64, defaultp> dmat3;
-
570  typedef mat<4, 4, f64, defaultp> dmat4;
-
571 
-
572  typedef mat<2, 2, f64, lowp> lowp_f64mat2;
-
573  typedef mat<3, 3, f64, lowp> lowp_f64mat3;
-
574  typedef mat<4, 4, f64, lowp> lowp_f64mat4;
-
575 
-
576  typedef mat<2, 2, f64, mediump> mediump_f64mat2;
-
577  typedef mat<3, 3, f64, mediump> mediump_f64mat3;
-
578  typedef mat<4, 4, f64, mediump> mediump_f64mat4;
-
579 
-
580  typedef mat<2, 2, f64, highp> highp_f64mat2;
-
581  typedef mat<3, 3, f64, highp> highp_f64mat3;
-
582  typedef mat<4, 4, f64, highp> highp_f64mat4;
-
583 
-
584  typedef mat<2, 2, f64, defaultp> f64mat2;
-
585  typedef mat<3, 3, f64, defaultp> f64mat3;
-
586  typedef mat<4, 4, f64, defaultp> f64mat4;
-
587 
-
588  // Matrix MxN
-
589 
-
590  typedef mat<2, 2, f32, lowp> lowp_mat2x2;
-
591  typedef mat<2, 3, f32, lowp> lowp_mat2x3;
-
592  typedef mat<2, 4, f32, lowp> lowp_mat2x4;
-
593  typedef mat<3, 2, f32, lowp> lowp_mat3x2;
-
594  typedef mat<3, 3, f32, lowp> lowp_mat3x3;
-
595  typedef mat<3, 4, f32, lowp> lowp_mat3x4;
-
596  typedef mat<4, 2, f32, lowp> lowp_mat4x2;
-
597  typedef mat<4, 3, f32, lowp> lowp_mat4x3;
-
598  typedef mat<4, 4, f32, lowp> lowp_mat4x4;
-
599 
-
600  typedef mat<2, 2, f32, mediump> mediump_mat2x2;
-
601  typedef mat<2, 3, f32, mediump> mediump_mat2x3;
-
602  typedef mat<2, 4, f32, mediump> mediump_mat2x4;
-
603  typedef mat<3, 2, f32, mediump> mediump_mat3x2;
-
604  typedef mat<3, 3, f32, mediump> mediump_mat3x3;
-
605  typedef mat<3, 4, f32, mediump> mediump_mat3x4;
-
606  typedef mat<4, 2, f32, mediump> mediump_mat4x2;
-
607  typedef mat<4, 3, f32, mediump> mediump_mat4x3;
-
608  typedef mat<4, 4, f32, mediump> mediump_mat4x4;
-
609 
-
610  typedef mat<2, 2, f32, highp> highp_mat2x2;
-
611  typedef mat<2, 3, f32, highp> highp_mat2x3;
-
612  typedef mat<2, 4, f32, highp> highp_mat2x4;
-
613  typedef mat<3, 2, f32, highp> highp_mat3x2;
-
614  typedef mat<3, 3, f32, highp> highp_mat3x3;
-
615  typedef mat<3, 4, f32, highp> highp_mat3x4;
-
616  typedef mat<4, 2, f32, highp> highp_mat4x2;
-
617  typedef mat<4, 3, f32, highp> highp_mat4x3;
-
618  typedef mat<4, 4, f32, highp> highp_mat4x4;
-
619 
-
620  typedef mat<2, 2, f32, defaultp> mat2x2;
-
621  typedef mat<3, 2, f32, defaultp> mat3x2;
-
622  typedef mat<4, 2, f32, defaultp> mat4x2;
-
623  typedef mat<2, 3, f32, defaultp> mat2x3;
-
624  typedef mat<3, 3, f32, defaultp> mat3x3;
-
625  typedef mat<4, 3, f32, defaultp> mat4x3;
-
626  typedef mat<2, 4, f32, defaultp> mat2x4;
-
627  typedef mat<3, 4, f32, defaultp> mat3x4;
-
628  typedef mat<4, 4, f32, defaultp> mat4x4;
-
629 
-
630  typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
-
631  typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
-
632  typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
-
633  typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
-
634  typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
-
635  typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
-
636  typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
-
637  typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
-
638  typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
-
639 
-
640  typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
-
641  typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
-
642  typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
-
643  typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
-
644  typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
-
645  typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
-
646  typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
-
647  typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
-
648  typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
-
649 
-
650  typedef mat<2, 2, f32, highp> highp_fmat2x2;
-
651  typedef mat<2, 3, f32, highp> highp_fmat2x3;
-
652  typedef mat<2, 4, f32, highp> highp_fmat2x4;
-
653  typedef mat<3, 2, f32, highp> highp_fmat3x2;
-
654  typedef mat<3, 3, f32, highp> highp_fmat3x3;
-
655  typedef mat<3, 4, f32, highp> highp_fmat3x4;
-
656  typedef mat<4, 2, f32, highp> highp_fmat4x2;
-
657  typedef mat<4, 3, f32, highp> highp_fmat4x3;
-
658  typedef mat<4, 4, f32, highp> highp_fmat4x4;
-
659 
-
660  typedef mat<2, 2, f32, defaultp> fmat2x2;
-
661  typedef mat<3, 2, f32, defaultp> fmat3x2;
-
662  typedef mat<4, 2, f32, defaultp> fmat4x2;
-
663  typedef mat<2, 3, f32, defaultp> fmat2x3;
-
664  typedef mat<3, 3, f32, defaultp> fmat3x3;
-
665  typedef mat<4, 3, f32, defaultp> fmat4x3;
-
666  typedef mat<2, 4, f32, defaultp> fmat2x4;
-
667  typedef mat<3, 4, f32, defaultp> fmat3x4;
-
668  typedef mat<4, 4, f32, defaultp> fmat4x4;
-
669 
-
670  typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
-
671  typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
-
672  typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
-
673  typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
-
674  typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
-
675  typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
-
676  typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
-
677  typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
-
678  typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
-
679 
-
680  typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
-
681  typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
-
682  typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
-
683  typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
-
684  typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
-
685  typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
-
686  typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
-
687  typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
-
688  typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
-
689 
-
690  typedef mat<2, 2, f32, highp> highp_f32mat2x2;
-
691  typedef mat<2, 3, f32, highp> highp_f32mat2x3;
-
692  typedef mat<2, 4, f32, highp> highp_f32mat2x4;
-
693  typedef mat<3, 2, f32, highp> highp_f32mat3x2;
-
694  typedef mat<3, 3, f32, highp> highp_f32mat3x3;
-
695  typedef mat<3, 4, f32, highp> highp_f32mat3x4;
-
696  typedef mat<4, 2, f32, highp> highp_f32mat4x2;
-
697  typedef mat<4, 3, f32, highp> highp_f32mat4x3;
-
698  typedef mat<4, 4, f32, highp> highp_f32mat4x4;
-
699 
-
700  typedef mat<2, 2, f32, defaultp> f32mat2x2;
-
701  typedef mat<3, 2, f32, defaultp> f32mat3x2;
-
702  typedef mat<4, 2, f32, defaultp> f32mat4x2;
-
703  typedef mat<2, 3, f32, defaultp> f32mat2x3;
-
704  typedef mat<3, 3, f32, defaultp> f32mat3x3;
-
705  typedef mat<4, 3, f32, defaultp> f32mat4x3;
-
706  typedef mat<2, 4, f32, defaultp> f32mat2x4;
-
707  typedef mat<3, 4, f32, defaultp> f32mat3x4;
-
708  typedef mat<4, 4, f32, defaultp> f32mat4x4;
-
709 
-
710  typedef mat<2, 2, double, lowp> lowp_dmat2x2;
-
711  typedef mat<2, 3, double, lowp> lowp_dmat2x3;
-
712  typedef mat<2, 4, double, lowp> lowp_dmat2x4;
-
713  typedef mat<3, 2, double, lowp> lowp_dmat3x2;
-
714  typedef mat<3, 3, double, lowp> lowp_dmat3x3;
-
715  typedef mat<3, 4, double, lowp> lowp_dmat3x4;
-
716  typedef mat<4, 2, double, lowp> lowp_dmat4x2;
-
717  typedef mat<4, 3, double, lowp> lowp_dmat4x3;
-
718  typedef mat<4, 4, double, lowp> lowp_dmat4x4;
-
719 
-
720  typedef mat<2, 2, double, mediump> mediump_dmat2x2;
-
721  typedef mat<2, 3, double, mediump> mediump_dmat2x3;
-
722  typedef mat<2, 4, double, mediump> mediump_dmat2x4;
-
723  typedef mat<3, 2, double, mediump> mediump_dmat3x2;
-
724  typedef mat<3, 3, double, mediump> mediump_dmat3x3;
-
725  typedef mat<3, 4, double, mediump> mediump_dmat3x4;
-
726  typedef mat<4, 2, double, mediump> mediump_dmat4x2;
-
727  typedef mat<4, 3, double, mediump> mediump_dmat4x3;
-
728  typedef mat<4, 4, double, mediump> mediump_dmat4x4;
-
729 
-
730  typedef mat<2, 2, double, highp> highp_dmat2x2;
-
731  typedef mat<2, 3, double, highp> highp_dmat2x3;
-
732  typedef mat<2, 4, double, highp> highp_dmat2x4;
-
733  typedef mat<3, 2, double, highp> highp_dmat3x2;
-
734  typedef mat<3, 3, double, highp> highp_dmat3x3;
-
735  typedef mat<3, 4, double, highp> highp_dmat3x4;
-
736  typedef mat<4, 2, double, highp> highp_dmat4x2;
-
737  typedef mat<4, 3, double, highp> highp_dmat4x3;
-
738  typedef mat<4, 4, double, highp> highp_dmat4x4;
-
739 
-
740  typedef mat<2, 2, double, defaultp> dmat2x2;
-
741  typedef mat<3, 2, double, defaultp> dmat3x2;
-
742  typedef mat<4, 2, double, defaultp> dmat4x2;
-
743  typedef mat<2, 3, double, defaultp> dmat2x3;
-
744  typedef mat<3, 3, double, defaultp> dmat3x3;
-
745  typedef mat<4, 3, double, defaultp> dmat4x3;
-
746  typedef mat<2, 4, double, defaultp> dmat2x4;
-
747  typedef mat<3, 4, double, defaultp> dmat3x4;
-
748  typedef mat<4, 4, double, defaultp> dmat4x4;
-
749 
-
750  typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
-
751  typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
-
752  typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
-
753  typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
-
754  typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
-
755  typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
-
756  typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
-
757  typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
-
758  typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
-
759 
-
760  typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
-
761  typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
-
762  typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
-
763  typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
-
764  typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
-
765  typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
-
766  typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
-
767  typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
-
768  typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
-
769 
-
770  typedef mat<2, 2, f64, highp> highp_f64mat2x2;
-
771  typedef mat<2, 3, f64, highp> highp_f64mat2x3;
-
772  typedef mat<2, 4, f64, highp> highp_f64mat2x4;
-
773  typedef mat<3, 2, f64, highp> highp_f64mat3x2;
-
774  typedef mat<3, 3, f64, highp> highp_f64mat3x3;
-
775  typedef mat<3, 4, f64, highp> highp_f64mat3x4;
-
776  typedef mat<4, 2, f64, highp> highp_f64mat4x2;
-
777  typedef mat<4, 3, f64, highp> highp_f64mat4x3;
-
778  typedef mat<4, 4, f64, highp> highp_f64mat4x4;
-
779 
-
780  typedef mat<2, 2, f64, defaultp> f64mat2x2;
-
781  typedef mat<3, 2, f64, defaultp> f64mat3x2;
-
782  typedef mat<4, 2, f64, defaultp> f64mat4x2;
-
783  typedef mat<2, 3, f64, defaultp> f64mat2x3;
-
784  typedef mat<3, 3, f64, defaultp> f64mat3x3;
-
785  typedef mat<4, 3, f64, defaultp> f64mat4x3;
-
786  typedef mat<2, 4, f64, defaultp> f64mat2x4;
-
787  typedef mat<3, 4, f64, defaultp> f64mat3x4;
-
788  typedef mat<4, 4, f64, defaultp> f64mat4x4;
-
789 
-
790  // Quaternion
-
791 
-
792  typedef qua<float, lowp> lowp_quat;
-
793  typedef qua<float, mediump> mediump_quat;
-
794  typedef qua<float, highp> highp_quat;
-
795  typedef qua<float, defaultp> quat;
-
796 
-
797  typedef qua<float, lowp> lowp_fquat;
-
798  typedef qua<float, mediump> mediump_fquat;
-
799  typedef qua<float, highp> highp_fquat;
-
800  typedef qua<float, defaultp> fquat;
-
801 
-
802  typedef qua<f32, lowp> lowp_f32quat;
-
803  typedef qua<f32, mediump> mediump_f32quat;
-
804  typedef qua<f32, highp> highp_f32quat;
-
805  typedef qua<f32, defaultp> f32quat;
-
806 
-
807  typedef qua<double, lowp> lowp_dquat;
-
808  typedef qua<double, mediump> mediump_dquat;
-
809  typedef qua<double, highp> highp_dquat;
-
810  typedef qua<double, defaultp> dquat;
-
811 
-
812  typedef qua<f64, lowp> lowp_f64quat;
-
813  typedef qua<f64, mediump> mediump_f64quat;
-
814  typedef qua<f64, highp> highp_f64quat;
-
815  typedef qua<f64, defaultp> f64quat;
-
816 }//namespace glm
-
817 
-
818 
-
vec< 1, u16, highp > highp_u16vec1
High qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:354
-
mat< 4, 2, float, mediump > mediump_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 4, 2, f32, highp > highp_f32mat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:696
-
mat< 4, 3, float, highp > highp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
vec< 4, unsigned int, mediump > mediump_uvec4
4 components vector of medium qualifier unsigned integer numbers.
-
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
-
vec< 1, f64, mediump > mediump_f64vec1
Medium double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:491
-
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
-
mat< 2, 2, f32, mediump > mediump_fmat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:528
-
double highp_float64_t
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:175
-
mat< 4, 4, f64, defaultp > f64mat4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:586
-
vec< 1, int, mediump > mediump_ivec1
1 component vector of signed integer values.
-
vec< 4, double, mediump > mediump_dvec4
4 components vector of medium double-qualifier floating-point numbers.
-
vec< 3, float, highp > highp_vec3
3 components vector of high single-qualifier floating-point numbers.
-
mat< 4, 2, double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
mat< 2, 2, f64, defaultp > f64mat2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:584
-
mat< 4, 3, f32, mediump > mediump_fmat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:647
-
mat< 3, 3, f32, mediump > mediump_f32mat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:545
-
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
-
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
-
mat< 3, 3, float, mediump > mediump_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, f32, mediump > mediump_fmat2x2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:640
-
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
-
mat< 4, 4, f32, highp > highp_f32mat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:550
-
qua< float, highp > highp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
double highp_float64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:170
-
mat< 3, 2, double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
-
mat< 3, 2, double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
-
mat< 3, 3, f64, defaultp > f64mat3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:585
-
vec< 2, int, highp > highp_ivec2
2 components vector of high qualifier signed integer numbers.
-
mat< 4, 3, double, highp > highp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 3, float, mediump > mediump_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
double lowp_float64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:168
-
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
-
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
-
mat< 2, 4, f64, mediump > mediump_f64mat2x4
Medium double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:762
-
vec< 4, i64, highp > highp_i64vec4
High qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:295
-
mat< 4, 4, double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
-
vec< 4, double, highp > highp_dvec4
4 components vector of high double-qualifier floating-point numbers.
-
mat< 2, 2, f32, defaultp > fmat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:536
-
mat< 3, 4, double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
-
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
-
vec< 2, float, lowp > lowp_fvec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:427
-
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
-
mat< 4, 4, f32, mediump > mediump_fmat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:530
-
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
-
mat< 2, 2, f32, lowp > lowp_fmat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:524
-
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
-
vec< 3, float, lowp > lowp_fvec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:428
-
vec< 2, float, mediump > mediump_fvec2
Medium Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:432
-
mat< 2, 3, float, highp > highp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 3, 4, f32, lowp > lowp_fmat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:635
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
mat< 2, 2, f64, lowp > lowp_f64mat2x2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:750
-
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
-
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
-
vec< 1, u64, lowp > lowp_u64vec1
Low qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:384
-
mat< 2, 2, double, mediump > mediump_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 1, u16, mediump > mediump_u16vec1
Medium qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:349
-
vec< 2, float, highp > highp_vec2
2 components vector of high single-qualifier floating-point numbers.
-
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
-
mat< 2, 3, f64, mediump > mediump_f64mat2x3
Medium double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:761
-
vec< 4, u32, lowp > lowp_u32vec4
Low qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:367
-
vec< 4, f32, highp > highp_f32vec4
High single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:459
-
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
-
vec< 1, f32, lowp > lowp_f32vec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:446
-
mat< 2, 3, f32, highp > highp_f32mat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:691
-
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
-
vec< 2, i32, mediump > mediump_i32vec2
Medium qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:268
-
vec< 1, double, lowp > lowp_dvec1
1 component vector of double-precision floating-point numbers using low precision arithmetic in term ...
-
mat< 4, 4, f64, lowp > lowp_f64mat4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:574
-
mat< 4, 4, f32, defaultp > fmat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:538
-
mat< 3, 4, f32, mediump > mediump_fmat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:645
-
mat< 3, 3, double, lowp > lowp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
-
vec< 4, i32, highp > highp_i32vec4
High qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:275
-
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
-
mat< 3, 2, f32, highp > highp_fmat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:653
-
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
-
mat< 2, 3, f32, mediump > mediump_fmat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:641
-
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
-
mat< 3, 2, f32, lowp > lowp_fmat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:633
-
mat< 2, 3, float, lowp > lowp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 2, 2, float, lowp > lowp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 2, f64, mediump > mediump_f64mat4x2
Medium double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:766
-
vec< 4, bool, lowp > lowp_bvec4
4 components vector of low qualifier bool numbers.
-
vec< 2, u16, highp > highp_u16vec2
High qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:355
-
vec< 1, f64, highp > highp_f64vec1
High double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:496
-
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
-
vec< 2, i16, mediump > mediump_i16vec2
Medium qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:248
-
mat< 2, 4, f32, highp > highp_fmat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:652
-
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
-
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
-
mat< 3, 2, f32, lowp > lowp_f32mat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:673
-
vec< 4, bool, mediump > mediump_bvec4
4 components vector of medium qualifier bool numbers.
-
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
-
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
-
vec< 1, unsigned int, mediump > mediump_uvec1
1 component vector of unsigned integer values.
-
vec< 3, i64, highp > highp_i64vec3
High qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:294
-
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
-
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
-
vec< 1, float, lowp > lowp_vec1
1 component vector of single-precision floating-point numbers using low precision arithmetic in term ...
-
mat< 4, 2, f32, mediump > mediump_f32mat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:686
-
mat< 3, 3, float, highp > highp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
vec< 3, f64, lowp > lowp_f64vec3
Low double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:488
-
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
-
mat< 3, 3, float, lowp > lowp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
-
vec< 3, i64, lowp > lowp_i64vec3
Low qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:284
-
vec< 2, i8, mediump > mediump_i8vec2
Medium qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:228
-
vec< 4, float, lowp > lowp_vec4
4 components vector of low single-qualifier floating-point numbers.
-
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
-
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
-
mat< 4, 2, double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 2, float, lowp > lowp_vec2
2 components vector of low single-qualifier floating-point numbers.
-
vec< 3, i16, highp > highp_i16vec3
High qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:254
-
mat< 2, 3, double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 3, i16, mediump > mediump_i16vec3
Medium qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:249
-
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
-
vec< 2, int, mediump > mediump_ivec2
2 components vector of medium qualifier signed integer numbers.
-
mat< 3, 2, f32, mediump > mediump_fmat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:643
-
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
-
vec< 1, i64, mediump > mediump_i64vec1
Medium qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:287
-
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
-
mat< 2, 2, double, lowp > lowp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 2, 4, double, highp > highp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, f64, lowp > lowp_f64mat3x3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:754
-
vec< 2, f64, lowp > lowp_f64vec2
Low double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:487
-
mat< 2, 3, f32, highp > highp_fmat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:651
-
mat< 4, 3, f32, lowp > lowp_f32mat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:677
-
mat< 3, 3, f64, lowp > lowp_f64mat3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:573
-
vec< 3, u64, mediump > mediump_u64vec3
Medium qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:391
-
double mediump_float64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:169
-
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
-
vec< 2, bool, highp > highp_bvec2
2 components vector of high qualifier bool numbers.
-
vec< 2, i16, highp > highp_i16vec2
High qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:253
-
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
-
mat< 2, 3, f64, lowp > lowp_f64mat2x3
Low double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:751
-
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
-
mat< 3, 3, double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
vec< 3, u32, lowp > lowp_u32vec3
Low qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:366
-
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
-
vec< 4, float, lowp > lowp_fvec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:429
-
vec< 4, f32, mediump > mediump_f32vec4
Medium single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:454
-
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
-
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
-
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
-
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
-
mat< 3, 4, f64, mediump > mediump_f64mat3x4
Medium double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:765
-
mat< 2, 3, f32, lowp > lowp_fmat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:631
-
vec< 1, u32, lowp > lowp_u32vec1
Low qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:364
-
mat< 3, 2, float, lowp > lowp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
-
vec< 1, i32, mediump > mediump_i32vec1
Medium qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:267
-
vec< 4, u16, highp > highp_u16vec4
High qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:357
-
vec< 1, i32, lowp > lowp_i32vec1
Low qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:262
-
vec< 1, i64, lowp > lowp_i64vec1
Low qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:282
-
vec< 1, u32, highp > highp_u32vec1
High qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:374
-
vec< 1, bool, highp > highp_bvec1
1 component vector of bool values.
-
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
-
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
-
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
-
vec< 4, float, mediump > mediump_vec4
4 components vector of medium single-qualifier floating-point numbers.
-
vec< 3, f64, mediump > mediump_f64vec3
Medium double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:493
-
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
-
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
-
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
-
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
-
vec< 1, i8, highp > highp_i8vec1
High qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:232
-
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
-
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
-
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
-
vec< 1, u32, mediump > mediump_u32vec1
Medium qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:369
-
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
-
mat< 2, 2, f32, lowp > lowp_f32mat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:670
-
vec< 4, f32, lowp > lowp_f32vec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:449
-
vec< 3, float, highp > highp_fvec3
High Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:438
-
mat< 4, 2, f64, lowp > lowp_f64mat4x2
Low double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:756
-
mat< 3, 3, f32, mediump > mediump_fmat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:644
-
vec< 1, i64, highp > highp_i64vec1
High qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:292
-
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
-
vec< 1, int, highp > highp_ivec1
1 component vector of signed integer values.
-
vec< 3, bool, mediump > mediump_bvec3
3 components vector of medium qualifier bool numbers.
-
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
-
mat< 2, 3, f32, mediump > mediump_f32mat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:681
-
mat< 3, 4, double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 2, f64, lowp > lowp_f64mat3x2
Low double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:753
-
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
-
vec< 1, float, mediump > mediump_vec1
1 component vector of single-precision floating-point numbers using medium precision arithmetic in te...
-
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
-
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
-
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
-
mat< 4, 4, float, mediump > mediump_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
-
vec< 2, int, lowp > lowp_ivec2
2 components vector of low qualifier signed integer numbers.
-
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
-
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
-
mat< 4, 4, f64, mediump > mediump_f64mat4x4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:768
-
mat< 2, 2, double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 4, u16, lowp > lowp_u16vec4
Low qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:347
-
vec< 4, unsigned int, highp > highp_uvec4
4 components vector of high qualifier unsigned integer numbers.
-
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
-
mat< 4, 4, f32, lowp > lowp_f32mat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:542
-
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
-
float mediump_float32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:153
-
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
-
mat< 4, 2, float, lowp > lowp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 4, f64, mediump > mediump_f64vec4
Medium double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:494
-
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
-
float highp_float32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:154
-
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
-
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
-
mat< 2, 4, f64, lowp > lowp_f64mat2x4
Low double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:752
-
mat< 3, 4, f64, lowp > lowp_f64mat3x4
Low double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:755
-
vec< 3, float, lowp > lowp_vec3
3 components vector of low single-qualifier floating-point numbers.
-
mat< 3, 4, float, highp > highp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 4, float, lowp > lowp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
-
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
-
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
-
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
-
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
-
vec< 2, i64, lowp > lowp_i64vec2
Low qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:283
-
mat< 2, 4, f32, lowp > lowp_f32mat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:672
-
vec< 4, bool, highp > highp_bvec4
4 components vector of high qualifier bool numbers.
-
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
-
mat< 3, 3, f32, highp > highp_f32mat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:549
-
mat< 3, 3, f64, mediump > mediump_f64mat3x3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:764
-
vec< 2, bool, defaultp > bvec2
2 components vector of boolean.
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
-
vec< 3, i32, highp > highp_i32vec3
High qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:274
-
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
-
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
-
vec< 1, i32, highp > highp_i32vec1
High qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:272
-
mat< 3, 3, double, highp > highp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, f32, lowp > lowp_f32mat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:541
-
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
-
mat< 2, 4, float, lowp > lowp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
-
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
-
vec< 3, i32, mediump > mediump_i32vec3
Medium qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:269
-
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
-
vec< 2, bool, mediump > mediump_bvec2
2 components vector of medium qualifier bool numbers.
-
vec< 2, i16, lowp > lowp_i16vec2
Low qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:243
-
vec< 2, float, mediump > mediump_vec2
2 components vector of medium single-qualifier floating-point numbers.
-
vec< 2, u64, mediump > mediump_u64vec2
Medium qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:390
-
vec< 4, u8, lowp > lowp_u8vec4
Low qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:327
-
mat< 3, 3, f32, highp > highp_f32mat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:694
-
vec< 1, u8, highp > highp_u8vec1
High qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:334
-
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
-
vec< 4, u32, mediump > mediump_u32vec4
Medium qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:372
-
mat< 2, 2, f32, highp > highp_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:690
-
vec< 4, f64, highp > highp_f64vec4
High double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:499
-
mat< 3, 3, double, highp > highp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 3, u8, lowp > lowp_u8vec3
Low qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:326
-
float highp_f32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:149
-
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
-
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
-
mat< 2, 3, f32, lowp > lowp_f32mat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:671
-
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
-
vec< 3, u16, mediump > mediump_u16vec3
Medium qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:351
-
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
-
qua< double, mediump > mediump_dquat
Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term ...
-
mat< 3, 3, f32, defaultp > f32mat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:553
-
mat< 2, 2, f64, mediump > mediump_f64mat2x2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:760
-
vec< 1, double, highp > highp_dvec1
1 component vector of double-precision floating-point numbers using high precision arithmetic in term...
-
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
-
mat< 4, 4, float, mediump > mediump_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 4, i16, highp > highp_i16vec4
High qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:255
-
mat< 4, 4, f32, lowp > lowp_fmat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:526
-
vec< 2, u32, mediump > mediump_u32vec2
Medium qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:370
-
vec< 3, u64, highp > highp_u64vec3
High qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:396
-
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
-
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
-
vec< 3, i16, lowp > lowp_i16vec3
Low qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:244
-
vec< 3, u16, lowp > lowp_u16vec3
Low qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:346
-
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
-
vec< 3, f32, lowp > lowp_f32vec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:448
-
mat< 4, 4, f32, highp > highp_fmat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:534
-
mat< 3, 3, f32, lowp > lowp_fmat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:525
-
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
-
qua< f32, mediump > mediump_f32quat
Medium single-qualifier floating-point quaternion.
Definition: fwd.hpp:803
-
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
-
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
-
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
-
mat< 2, 4, f32, lowp > lowp_fmat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:632
-
mat< 3, 3, f64, highp > highp_f64mat3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:581
-
vec< 3, i8, mediump > mediump_i8vec3
Medium qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:229
-
vec< 1, f32, highp > highp_f32vec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:456
-
vec< 3, i8, lowp > lowp_i8vec3
Low qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:224
-
mat< 3, 3, double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 3, f64, lowp > lowp_f64mat4x3
Low double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:757
-
vec< 4, u64, highp > highp_u64vec4
High qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:397
-
mat< 3, 3, float, mediump > mediump_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
-
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
-
vec< 1, bool, mediump > mediump_bvec1
1 component vector of bool values.
-
mat< 4, 4, double, lowp > lowp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 4, double, highp > highp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
-
mat< 2, 2, f32, defaultp > f32mat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:552
-
mat< 2, 4, f32, mediump > mediump_fmat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:642
-
vec< 2, u16, mediump > mediump_u16vec2
Medium qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:350
-
mat< 4, 4, f32, lowp > lowp_f32mat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:678
-
vec< 2, unsigned int, lowp > lowp_uvec2
2 components vector of low qualifier unsigned integer numbers.
-
mat< 3, 3, float, lowp > lowp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 2, u8, lowp > lowp_u8vec2
Low qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:325
-
vec< 2, double, lowp > lowp_dvec2
2 components vector of low double-qualifier floating-point numbers.
-
mat< 3, 3, f64, mediump > mediump_f64mat3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:577
-
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
-
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
-
vec< 3, unsigned int, mediump > mediump_uvec3
3 components vector of medium qualifier unsigned integer numbers.
-
mat< 3, 4, f32, highp > highp_fmat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:655
-
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
-
mat< 4, 4, f64, highp > highp_f64mat4x4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:778
-
mat< 2, 2, float, highp > highp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 3, f32, mediump > mediump_f32mat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:687
-
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
-
vec< 3, int, lowp > lowp_ivec3
3 components vector of low qualifier signed integer numbers.
-
mat< 3, 3, f32, mediump > mediump_fmat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:529
-
mat< 4, 4, double, mediump > mediump_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, f32, highp > highp_f32mat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:698
-
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
-
vec< 4, int, lowp > lowp_ivec4
4 components vector of low qualifier signed integer numbers.
-
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
-
vec< 4, unsigned int, lowp > lowp_uvec4
4 components vector of low qualifier unsigned integer numbers.
-
vec< 2, f64, highp > highp_f64vec2
High double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:497
-
vec< 2, u64, lowp > lowp_u64vec2
Low qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:385
-
mat< 3, 3, f32, defaultp > fmat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:537
-
mat< 3, 2, f32, mediump > mediump_f32mat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:683
-
mat< 3, 3, double, defaultp > dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers.
-
mat< 3, 3, double, defaultp > dmat3
3 columns of 3 components matrix of double-precision floating-point numbers.
-
mat< 4, 2, f32, lowp > lowp_f32mat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:676
-
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
-
vec< 4, i64, mediump > mediump_i64vec4
Medium qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:290
-
vec< 4, bool, defaultp > bvec4
4 components vector of boolean.
-
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
-
vec< 1, i8, mediump > mediump_i8vec1
Medium qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:227
-
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
-
mat< 4, 3, double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
float highp_float32_t
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:159
-
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
-
mat< 4, 4, double, highp > highp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
-
mat< 2, 3, double, highp > highp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
-
mat< 4, 2, f32, highp > highp_fmat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:656
-
vec< 2, f32, highp > highp_f32vec2
High single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:457
-
mat< 2, 4, double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, double, defaultp > dmat2
2 columns of 2 components matrix of double-precision floating-point numbers.
-
vec< 4, float, highp > highp_vec4
4 components vector of high single-qualifier floating-point numbers.
-
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
-
vec< 3, u64, lowp > lowp_u64vec3
Low qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:386
-
mat< 4, 4, double, defaultp > dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers.
-
vec< 1, bool, lowp > lowp_bvec1
1 component vector of bool values.
-
mat< 2, 2, f64, highp > highp_f64mat2x2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:770
-
vec< 3, u32, highp > highp_u32vec3
High qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:376
-
vec< 3, bool, highp > highp_bvec3
3 components vector of high qualifier bool numbers.
-
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
-
qua< f32, lowp > lowp_f32quat
Low single-qualifier floating-point quaternion.
Definition: fwd.hpp:802
-
vec< 4, i32, lowp > lowp_i32vec4
Low qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:265
-
vec< 1, i16, highp > highp_i16vec1
High qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:252
-
mat< 4, 4, f32, lowp > lowp_fmat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:638
-
mat< 4, 3, double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
-
mat< 3, 3, f32, lowp > lowp_f32mat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:674
-
vec< 2, i8, lowp > lowp_i8vec2
Low qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:223
-
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
-
mat< 2, 2, f32, highp > highp_f32mat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:548
-
float lowp_f32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:147
-
vec< 1, unsigned int, highp > highp_uvec1
1 component vector of unsigned integer values.
-
vec< 4, u16, mediump > mediump_u16vec4
Medium qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:352
-
vec< 3, unsigned int, highp > highp_uvec3
3 components vector of high qualifier unsigned integer numbers.
-
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
-
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
-
vec< 3, double, mediump > mediump_dvec3
3 components vector of medium double-qualifier floating-point numbers.
-
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
-
vec< 2, u64, highp > highp_u64vec2
High qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:395
-
vec< 1, int, lowp > lowp_ivec1
1 component vector of signed integer values.
-
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
-
mat< 2, 2, f32, mediump > mediump_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:680
-
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
-
mat< 4, 3, f64, mediump > mediump_f64mat4x3
Medium double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:767
-
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
-
double highp_f64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:165
-
vec< 3, float, mediump > mediump_fvec3
Medium Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:433
-
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
-
vec< 4, u64, mediump > mediump_u64vec4
Medium qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:392
-
mat< 2, 2, double, highp > highp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
-
vec< 2, u32, highp > highp_u32vec2
High qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:375
-
vec< 1, double, mediump > mediump_dvec1
1 component vector of double-precision floating-point numbers using medium precision arithmetic in te...
-
vec< 1, float, highp > highp_fvec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:436
-
vec< 4, i64, lowp > lowp_i64vec4
Low qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:285
-
vec< 4, int, highp > highp_ivec4
4 components vector of high qualifier signed integer numbers.
-
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
-
mat< 2, 4, f32, highp > highp_f32mat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:692
-
vec< 1, i8, lowp > lowp_i8vec1
Low qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:222
-
mat< 2, 2, f64, highp > highp_f64mat2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:580
-
vec< 3, double, lowp > lowp_dvec3
3 components vector of low double-qualifier floating-point numbers.
-
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
-
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
-
mat< 3, 2, f64, highp > highp_f64mat3x2
High double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:773
-
vec< 3, u32, mediump > mediump_u32vec3
Medium qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:371
-
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
-
mat< 3, 3, float, highp > highp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
vec< 3, u8, highp > highp_u8vec3
High qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:336
-
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
-
vec< 2, i8, highp > highp_i8vec2
High qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:233
-
mat< 2, 2, double, highp > highp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 3, i32, lowp > lowp_i32vec3
Low qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:264
-
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
-
mat< 4, 4, f32, mediump > mediump_fmat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:648
-
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
-
mat< 4, 4, double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
-
mat< 4, 4, double, highp > highp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 4, i16, lowp > lowp_i16vec4
Low qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:245
-
vec< 1, bool, defaultp > bvec1
1 components vector of boolean.
-
mat< 4, 3, f64, highp > highp_f64mat4x3
High double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:777
-
vec< 2, u8, highp > highp_u8vec2
High qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:335
-
vec< 3, int, mediump > mediump_ivec3
3 components vector of medium qualifier signed integer numbers.
-
vec< 3, i8, highp > highp_i8vec3
High qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:234
-
vec< 3, f64, highp > highp_f64vec3
High double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:498
-
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
-
vec< 4, f64, lowp > lowp_f64vec4
Low double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:489
-
qua< double, highp > highp_dquat
Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of...
-
vec< 3, f32, mediump > mediump_f32vec3
Medium single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:453
-
double lowp_f64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:163
-
mat< 4, 2, f32, lowp > lowp_fmat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:636
-
vec< 3, int, highp > highp_ivec3
3 components vector of high qualifier signed integer numbers.
-
mat< 2, 4, f64, highp > highp_f64mat2x4
High double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:772
-
mat< 4, 4, f64, highp > highp_f64mat4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:582
-
vec< 4, i32, mediump > mediump_i32vec4
Medium qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:270
-
mat< 2, 2, f32, lowp > lowp_f32mat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:540
-
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
-
mat< 3, 4, double, defaultp > dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers.
-
mat< 2, 3, double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
-
mat< 2, 4, float, mediump > mediump_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 3, 4, f64, highp > highp_f64mat3x4
High double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:775
-
mat< 3, 3, f32, highp > highp_fmat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:533
-
mat< 3, 3, f32, mediump > mediump_f32mat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:684
-
qua< f64, mediump > mediump_f64quat
Medium double-qualifier floating-point quaternion.
Definition: fwd.hpp:813
-
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
-
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
-
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
-
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
-
detail::uint64 uint64
64 bit unsigned integer type.
-
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
-
mat< 2, 2, double, defaultp > dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers.
-
vec< 1, i16, mediump > mediump_i16vec1
Medium qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:247
-
mat< 2, 4, double, defaultp > dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers.
-
mat< 3, 2, double, highp > highp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
-
mat< 2, 2, f32, highp > highp_fmat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:650
-
vec< 4, float, highp > highp_fvec4
High Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:439
-
mat< 3, 3, f64, highp > highp_f64mat3x3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:774
-
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
-
vec< 3, float, mediump > mediump_vec3
3 components vector of medium single-qualifier floating-point numbers.
-
vec< 2, u16, lowp > lowp_u16vec2
Low qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:345
-
vec< 4, u32, highp > highp_u32vec4
High qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:377
-
mat< 4, 2, double, defaultp > dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers.
-
vec< 4, double, lowp > lowp_dvec4
4 components vector of low double-qualifier floating-point numbers.
-
float lowp_float32_t
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:157
-
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
-
vec< 2, f32, lowp > lowp_f32vec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:447
-
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
-
mat< 2, 2, f64, mediump > mediump_f64mat2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:576
-
qua< float, mediump > mediump_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
mat< 4, 3, f32, highp > highp_f32mat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:697
-
vec< 3, unsigned int, lowp > lowp_uvec3
3 components vector of low qualifier unsigned integer numbers.
-
mat< 2, 2, float, lowp > lowp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
-
detail::int64 int64
64 bit signed integer type.
-
qua< double, lowp > lowp_dquat
Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
vec< 1, u64, highp > highp_u64vec1
High qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:394
-
mat< 3, 4, float, mediump > mediump_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 2, 3, f64, highp > highp_f64mat2x3
High double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:771
-
vec< 4, i8, lowp > lowp_i8vec4
Low qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:225
-
mat< 4, 3, f32, lowp > lowp_fmat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:637
-
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
-
vec< 2, i32, highp > highp_i32vec2
High qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:273
-
vec< 1, u8, mediump > mediump_u8vec1
Medium qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:329
-
mat< 4, 3, f32, highp > highp_fmat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:657
-
mat< 3, 2, double, defaultp > dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers.
-
vec< 4, i16, mediump > mediump_i16vec4
Medium qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:250
-
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
-
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
-
mat< 4, 4, f64, mediump > mediump_f64mat4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:578
-
vec< 4, u8, mediump > mediump_u8vec4
Medium qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:332
-
vec< 3, double, highp > highp_dvec3
3 components vector of high double-qualifier floating-point numbers.
-
mat< 3, 4, f32, lowp > lowp_f32mat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:675
-
double mediump_float64_t
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:174
-
mat< 2, 2, float, highp > highp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 3, float, lowp > lowp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 2, float, highp > highp_fvec2
High Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:437
-
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
-
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
-
vec< 1, unsigned int, lowp > lowp_uvec1
1 component vector of unsigned integer values.
-
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
-
mat< 4, 4, f32, defaultp > f32mat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:554
-
mat< 4, 2, f32, mediump > mediump_fmat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:646
-
mat< 2, 2, f64, lowp > lowp_f64mat2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:572
-
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
-
mat< 3, 3, f32, lowp > lowp_fmat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:634
-
double lowp_float64_t
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:173
-
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
-
mat< 3, 3, f32, highp > highp_fmat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:654
-
mat< 4, 4, double, defaultp > dmat4
4 columns of 4 components matrix of double-precision floating-point numbers.
-
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
-
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
-
mat< 4, 3, float, mediump > mediump_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 1, u8, lowp > lowp_u8vec1
Low qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:324
-
vec< 3, i64, mediump > mediump_i64vec3
Medium qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:289
-
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
-
qua< f32, highp > highp_f32quat
High single-qualifier floating-point quaternion.
Definition: fwd.hpp:804
-
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
-
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
-
mat< 3, 2, float, mediump > mediump_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 2, bool, lowp > lowp_bvec2
2 components vector of low qualifier bool numbers.
-
vec< 2, u8, mediump > mediump_u8vec2
Medium qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:330
-
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
-
vec< 1, u16, lowp > lowp_u16vec1
Low qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:344
-
mat< 4, 4, f32, highp > highp_fmat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:658
-
mat< 3, 4, f32, highp > highp_f32mat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:695
-
vec< 3, bool, defaultp > bvec3
3 components vector of boolean.
-
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
-
vec< 3, u16, highp > highp_u16vec3
High qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:356
-
float mediump_float32_t
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:158
-
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
-
float mediump_f32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:148
-
mat< 4, 4, f32, mediump > mediump_f32mat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:688
-
qua< float, lowp > lowp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
vec< 2, f32, mediump > mediump_f32vec2
Medium single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:452
-
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
-
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
-
vec< 1, f64, lowp > lowp_f64vec1
Low double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:486
-
mat< 3, 2, f32, highp > highp_f32mat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:693
-
mat< 3, 2, f64, mediump > mediump_f64mat3x2
Medium double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:763
-
mat< 3, 3, double, mediump > mediump_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 3, u8, mediump > mediump_u8vec3
Medium qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:331
-
mat< 2, 3, double, defaultp > dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers.
-
mat< 4, 4, f64, lowp > lowp_f64mat4x4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:758
-
vec< 1, i16, lowp > lowp_i16vec1
Low qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:242
-
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
-
mat< 2, 4, double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
-
vec< 2, u32, lowp > lowp_u32vec2
Low qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:365
-
mat< 2, 4, f32, mediump > mediump_f32mat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:682
-
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
-
vec< 2, i64, highp > highp_i64vec2
High qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:293
-
mat< 4, 4, f32, mediump > mediump_f32mat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:546
-
mat< 3, 2, float, highp > highp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 4, float, highp > highp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
vec< 2, double, mediump > mediump_dvec2
2 components vector of medium double-qualifier floating-point numbers.
-
mat< 2, 2, double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
-
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
-
vec< 3, bool, lowp > lowp_bvec3
3 components vector of low qualifier bool numbers.
-
mat< 3, 4, float, lowp > lowp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 4, float, lowp > lowp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
vec< 1, float, highp > highp_vec1
1 component vector of single-precision floating-point numbers using high precision arithmetic in term...
-
vec< 1, f32, mediump > mediump_f32vec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:451
-
mat< 3, 4, f32, mediump > mediump_f32mat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:685
-
mat< 2, 2, f32, highp > highp_fmat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:532
-
vec< 2, unsigned int, highp > highp_uvec2
2 components vector of high qualifier unsigned integer numbers.
-
vec< 3, f32, highp > highp_f32vec3
High single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:458
-
mat< 2, 2, float, mediump > mediump_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
vec< 4, i8, mediump > mediump_i8vec4
Medium qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:230
-
float lowp_float32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:152
-
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
-
vec< 2, unsigned int, mediump > mediump_uvec2
2 components vector of medium qualifier unsigned integer numbers.
-
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
-
vec< 2, double, highp > highp_dvec2
2 components vector of high double-qualifier floating-point numbers.
-
vec< 4, float, mediump > mediump_fvec4
Medium Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:434
-
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
-
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
-
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
-
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
-
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
-
mat< 2, 2, float, mediump > mediump_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
qua< f64, lowp > lowp_f64quat
Low double-qualifier floating-point quaternion.
Definition: fwd.hpp:812
-
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
-
mat< 4, 3, double, defaultp > dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers.
-
mat< 4, 2, double, highp > highp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
-
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
-
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
-
mat< 2, 2, f32, lowp > lowp_fmat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:630
-
vec< 4, i8, highp > highp_i8vec4
High qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:235
-
vec< 4, u64, lowp > lowp_u64vec4
Low qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:387
-
vec< 2, i64, mediump > mediump_i64vec2
Medium qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:288
-
mat< 4, 2, f64, highp > highp_f64mat4x2
High double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:776
-
mat< 4, 4, float, highp > highp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
-
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
-
mat< 4, 2, float, highp > highp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
-
vec< 2, i32, lowp > lowp_i32vec2
Low qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:263
-
qua< f64, highp > highp_f64quat
High double-qualifier floating-point quaternion.
Definition: fwd.hpp:814
-
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
vec< 2, f64, mediump > mediump_f64vec2
Medium double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:492
-
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
-
vec< 1, float, lowp > lowp_fvec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:426
-
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
-
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
-
vec< 1, u64, mediump > mediump_u64vec1
Medium qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:389
-
mat< 2, 2, f32, mediump > mediump_f32mat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:544
-
vec< 4, int, mediump > mediump_ivec4
4 components vector of medium qualifier signed integer numbers.
-
mat< 2, 4, float, highp > highp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
-
Definition: common.hpp:20
-
double mediump_f64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:164
-
vec< 1, float, mediump > mediump_fvec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:431
-
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
-
vec< 4, u8, highp > highp_u8vec4
High qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:337
-
- - - - + + + + + + +0.9.9 API documentation: fwd.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
fwd.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "detail/qualifier.hpp"
+
4 
+
5 namespace glm
+
6 {
+
7 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
8  typedef std::int8_t int8;
+
9  typedef std::int16_t int16;
+
10  typedef std::int32_t int32;
+
11  typedef std::int64_t int64;
+
12 
+
13  typedef std::uint8_t uint8;
+
14  typedef std::uint16_t uint16;
+
15  typedef std::uint32_t uint32;
+
16  typedef std::uint64_t uint64;
+
17 #else
+
18  typedef signed char int8;
+
19  typedef signed short int16;
+
20  typedef signed int int32;
+
21  typedef detail::int64 int64;
+
22 
+
23  typedef unsigned char uint8;
+
24  typedef unsigned short uint16;
+
25  typedef unsigned int uint32;
+
26  typedef detail::uint64 uint64;
+
27 #endif
+
28 
+
29  // Scalar int
+
30 
+
31  typedef int8 lowp_i8;
+
32  typedef int8 mediump_i8;
+
33  typedef int8 highp_i8;
+
34  typedef int8 i8;
+
35 
+
36  typedef int8 lowp_int8;
+
37  typedef int8 mediump_int8;
+
38  typedef int8 highp_int8;
+
39 
+
40  typedef int8 lowp_int8_t;
+
41  typedef int8 mediump_int8_t;
+
42  typedef int8 highp_int8_t;
+
43  typedef int8 int8_t;
+
44 
+
45  typedef int16 lowp_i16;
+
46  typedef int16 mediump_i16;
+
47  typedef int16 highp_i16;
+
48  typedef int16 i16;
+
49 
+
50  typedef int16 lowp_int16;
+
51  typedef int16 mediump_int16;
+
52  typedef int16 highp_int16;
+
53 
+
54  typedef int16 lowp_int16_t;
+
55  typedef int16 mediump_int16_t;
+
56  typedef int16 highp_int16_t;
+
57  typedef int16 int16_t;
+
58 
+
59  typedef int32 lowp_i32;
+
60  typedef int32 mediump_i32;
+
61  typedef int32 highp_i32;
+
62  typedef int32 i32;
+
63 
+
64  typedef int32 lowp_int32;
+
65  typedef int32 mediump_int32;
+
66  typedef int32 highp_int32;
+
67 
+
68  typedef int32 lowp_int32_t;
+
69  typedef int32 mediump_int32_t;
+
70  typedef int32 highp_int32_t;
+
71  typedef int32 int32_t;
+
72 
+
73  typedef int64 lowp_i64;
+
74  typedef int64 mediump_i64;
+
75  typedef int64 highp_i64;
+
76  typedef int64 i64;
+
77 
+
78  typedef int64 lowp_int64;
+
79  typedef int64 mediump_int64;
+
80  typedef int64 highp_int64;
+
81 
+
82  typedef int64 lowp_int64_t;
+
83  typedef int64 mediump_int64_t;
+
84  typedef int64 highp_int64_t;
+
85  typedef int64 int64_t;
+
86 
+
87  // Scalar uint
+
88 
+
89  typedef uint8 lowp_u8;
+
90  typedef uint8 mediump_u8;
+
91  typedef uint8 highp_u8;
+
92  typedef uint8 u8;
+
93 
+
94  typedef uint8 lowp_uint8;
+
95  typedef uint8 mediump_uint8;
+
96  typedef uint8 highp_uint8;
+
97 
+
98  typedef uint8 lowp_uint8_t;
+
99  typedef uint8 mediump_uint8_t;
+
100  typedef uint8 highp_uint8_t;
+
101  typedef uint8 uint8_t;
+
102 
+
103  typedef uint16 lowp_u16;
+
104  typedef uint16 mediump_u16;
+
105  typedef uint16 highp_u16;
+
106  typedef uint16 u16;
+
107 
+
108  typedef uint16 lowp_uint16;
+
109  typedef uint16 mediump_uint16;
+
110  typedef uint16 highp_uint16;
+
111 
+
112  typedef uint16 lowp_uint16_t;
+
113  typedef uint16 mediump_uint16_t;
+
114  typedef uint16 highp_uint16_t;
+
115  typedef uint16 uint16_t;
+
116 
+
117  typedef uint32 lowp_u32;
+
118  typedef uint32 mediump_u32;
+
119  typedef uint32 highp_u32;
+
120  typedef uint32 u32;
+
121 
+
122  typedef uint32 lowp_uint32;
+
123  typedef uint32 mediump_uint32;
+
124  typedef uint32 highp_uint32;
+
125 
+
126  typedef uint32 lowp_uint32_t;
+
127  typedef uint32 mediump_uint32_t;
+
128  typedef uint32 highp_uint32_t;
+
129  typedef uint32 uint32_t;
+
130 
+
131  typedef uint64 lowp_u64;
+
132  typedef uint64 mediump_u64;
+
133  typedef uint64 highp_u64;
+
134  typedef uint64 u64;
+
135 
+
136  typedef uint64 lowp_uint64;
+
137  typedef uint64 mediump_uint64;
+
138  typedef uint64 highp_uint64;
+
139 
+
140  typedef uint64 lowp_uint64_t;
+
141  typedef uint64 mediump_uint64_t;
+
142  typedef uint64 highp_uint64_t;
+
143  typedef uint64 uint64_t;
+
144 
+
145  // Scalar float
+
146 
+
147  typedef float lowp_f32;
+
148  typedef float mediump_f32;
+
149  typedef float highp_f32;
+
150  typedef float f32;
+
151 
+
152  typedef float lowp_float32;
+
153  typedef float mediump_float32;
+
154  typedef float highp_float32;
+
155  typedef float float32;
+
156 
+
157  typedef float lowp_float32_t;
+
158  typedef float mediump_float32_t;
+
159  typedef float highp_float32_t;
+
160  typedef float float32_t;
+
161 
+
162 
+
163  typedef double lowp_f64;
+
164  typedef double mediump_f64;
+
165  typedef double highp_f64;
+
166  typedef double f64;
+
167 
+
168  typedef double lowp_float64;
+
169  typedef double mediump_float64;
+
170  typedef double highp_float64;
+
171  typedef double float64;
+
172 
+
173  typedef double lowp_float64_t;
+
174  typedef double mediump_float64_t;
+
175  typedef double highp_float64_t;
+
176  typedef double float64_t;
+
177 
+
178  // Vector bool
+
179 
+
180  typedef vec<1, bool, lowp> lowp_bvec1;
+
181  typedef vec<2, bool, lowp> lowp_bvec2;
+
182  typedef vec<3, bool, lowp> lowp_bvec3;
+
183  typedef vec<4, bool, lowp> lowp_bvec4;
+
184 
+
185  typedef vec<1, bool, mediump> mediump_bvec1;
+
186  typedef vec<2, bool, mediump> mediump_bvec2;
+
187  typedef vec<3, bool, mediump> mediump_bvec3;
+
188  typedef vec<4, bool, mediump> mediump_bvec4;
+
189 
+
190  typedef vec<1, bool, highp> highp_bvec1;
+
191  typedef vec<2, bool, highp> highp_bvec2;
+
192  typedef vec<3, bool, highp> highp_bvec3;
+
193  typedef vec<4, bool, highp> highp_bvec4;
+
194 
+
195  typedef vec<1, bool, defaultp> bvec1;
+
196  typedef vec<2, bool, defaultp> bvec2;
+
197  typedef vec<3, bool, defaultp> bvec3;
+
198  typedef vec<4, bool, defaultp> bvec4;
+
199 
+
200  // Vector int
+
201 
+
202  typedef vec<1, i32, lowp> lowp_ivec1;
+
203  typedef vec<2, i32, lowp> lowp_ivec2;
+
204  typedef vec<3, i32, lowp> lowp_ivec3;
+
205  typedef vec<4, i32, lowp> lowp_ivec4;
+
206 
+
207  typedef vec<1, i32, mediump> mediump_ivec1;
+
208  typedef vec<2, i32, mediump> mediump_ivec2;
+
209  typedef vec<3, i32, mediump> mediump_ivec3;
+
210  typedef vec<4, i32, mediump> mediump_ivec4;
+
211 
+
212  typedef vec<1, i32, highp> highp_ivec1;
+
213  typedef vec<2, i32, highp> highp_ivec2;
+
214  typedef vec<3, i32, highp> highp_ivec3;
+
215  typedef vec<4, i32, highp> highp_ivec4;
+
216 
+
217  typedef vec<1, i32, defaultp> ivec1;
+
218  typedef vec<2, i32, defaultp> ivec2;
+
219  typedef vec<3, i32, defaultp> ivec3;
+
220  typedef vec<4, i32, defaultp> ivec4;
+
221 
+
222  typedef vec<1, i8, lowp> lowp_i8vec1;
+
223  typedef vec<2, i8, lowp> lowp_i8vec2;
+
224  typedef vec<3, i8, lowp> lowp_i8vec3;
+
225  typedef vec<4, i8, lowp> lowp_i8vec4;
+
226 
+
227  typedef vec<1, i8, mediump> mediump_i8vec1;
+
228  typedef vec<2, i8, mediump> mediump_i8vec2;
+
229  typedef vec<3, i8, mediump> mediump_i8vec3;
+
230  typedef vec<4, i8, mediump> mediump_i8vec4;
+
231 
+
232  typedef vec<1, i8, highp> highp_i8vec1;
+
233  typedef vec<2, i8, highp> highp_i8vec2;
+
234  typedef vec<3, i8, highp> highp_i8vec3;
+
235  typedef vec<4, i8, highp> highp_i8vec4;
+
236 
+
237  typedef vec<1, i8, defaultp> i8vec1;
+
238  typedef vec<2, i8, defaultp> i8vec2;
+
239  typedef vec<3, i8, defaultp> i8vec3;
+
240  typedef vec<4, i8, defaultp> i8vec4;
+
241 
+
242  typedef vec<1, i16, lowp> lowp_i16vec1;
+
243  typedef vec<2, i16, lowp> lowp_i16vec2;
+
244  typedef vec<3, i16, lowp> lowp_i16vec3;
+
245  typedef vec<4, i16, lowp> lowp_i16vec4;
+
246 
+
247  typedef vec<1, i16, mediump> mediump_i16vec1;
+
248  typedef vec<2, i16, mediump> mediump_i16vec2;
+
249  typedef vec<3, i16, mediump> mediump_i16vec3;
+
250  typedef vec<4, i16, mediump> mediump_i16vec4;
+
251 
+
252  typedef vec<1, i16, highp> highp_i16vec1;
+
253  typedef vec<2, i16, highp> highp_i16vec2;
+
254  typedef vec<3, i16, highp> highp_i16vec3;
+
255  typedef vec<4, i16, highp> highp_i16vec4;
+
256 
+
257  typedef vec<1, i16, defaultp> i16vec1;
+
258  typedef vec<2, i16, defaultp> i16vec2;
+
259  typedef vec<3, i16, defaultp> i16vec3;
+
260  typedef vec<4, i16, defaultp> i16vec4;
+
261 
+
262  typedef vec<1, i32, lowp> lowp_i32vec1;
+
263  typedef vec<2, i32, lowp> lowp_i32vec2;
+
264  typedef vec<3, i32, lowp> lowp_i32vec3;
+
265  typedef vec<4, i32, lowp> lowp_i32vec4;
+
266 
+
267  typedef vec<1, i32, mediump> mediump_i32vec1;
+
268  typedef vec<2, i32, mediump> mediump_i32vec2;
+
269  typedef vec<3, i32, mediump> mediump_i32vec3;
+
270  typedef vec<4, i32, mediump> mediump_i32vec4;
+
271 
+
272  typedef vec<1, i32, highp> highp_i32vec1;
+
273  typedef vec<2, i32, highp> highp_i32vec2;
+
274  typedef vec<3, i32, highp> highp_i32vec3;
+
275  typedef vec<4, i32, highp> highp_i32vec4;
+
276 
+
277  typedef vec<1, i32, defaultp> i32vec1;
+
278  typedef vec<2, i32, defaultp> i32vec2;
+
279  typedef vec<3, i32, defaultp> i32vec3;
+
280  typedef vec<4, i32, defaultp> i32vec4;
+
281 
+
282  typedef vec<1, i64, lowp> lowp_i64vec1;
+
283  typedef vec<2, i64, lowp> lowp_i64vec2;
+
284  typedef vec<3, i64, lowp> lowp_i64vec3;
+
285  typedef vec<4, i64, lowp> lowp_i64vec4;
+
286 
+
287  typedef vec<1, i64, mediump> mediump_i64vec1;
+
288  typedef vec<2, i64, mediump> mediump_i64vec2;
+
289  typedef vec<3, i64, mediump> mediump_i64vec3;
+
290  typedef vec<4, i64, mediump> mediump_i64vec4;
+
291 
+
292  typedef vec<1, i64, highp> highp_i64vec1;
+
293  typedef vec<2, i64, highp> highp_i64vec2;
+
294  typedef vec<3, i64, highp> highp_i64vec3;
+
295  typedef vec<4, i64, highp> highp_i64vec4;
+
296 
+
297  typedef vec<1, i64, defaultp> i64vec1;
+
298  typedef vec<2, i64, defaultp> i64vec2;
+
299  typedef vec<3, i64, defaultp> i64vec3;
+
300  typedef vec<4, i64, defaultp> i64vec4;
+
301 
+
302  // Vector uint
+
303 
+
304  typedef vec<1, u32, lowp> lowp_uvec1;
+
305  typedef vec<2, u32, lowp> lowp_uvec2;
+
306  typedef vec<3, u32, lowp> lowp_uvec3;
+
307  typedef vec<4, u32, lowp> lowp_uvec4;
+
308 
+
309  typedef vec<1, u32, mediump> mediump_uvec1;
+
310  typedef vec<2, u32, mediump> mediump_uvec2;
+
311  typedef vec<3, u32, mediump> mediump_uvec3;
+
312  typedef vec<4, u32, mediump> mediump_uvec4;
+
313 
+
314  typedef vec<1, u32, highp> highp_uvec1;
+
315  typedef vec<2, u32, highp> highp_uvec2;
+
316  typedef vec<3, u32, highp> highp_uvec3;
+
317  typedef vec<4, u32, highp> highp_uvec4;
+
318 
+
319  typedef vec<1, u32, defaultp> uvec1;
+
320  typedef vec<2, u32, defaultp> uvec2;
+
321  typedef vec<3, u32, defaultp> uvec3;
+
322  typedef vec<4, u32, defaultp> uvec4;
+
323 
+
324  typedef vec<1, u8, lowp> lowp_u8vec1;
+
325  typedef vec<2, u8, lowp> lowp_u8vec2;
+
326  typedef vec<3, u8, lowp> lowp_u8vec3;
+
327  typedef vec<4, u8, lowp> lowp_u8vec4;
+
328 
+
329  typedef vec<1, u8, mediump> mediump_u8vec1;
+
330  typedef vec<2, u8, mediump> mediump_u8vec2;
+
331  typedef vec<3, u8, mediump> mediump_u8vec3;
+
332  typedef vec<4, u8, mediump> mediump_u8vec4;
+
333 
+
334  typedef vec<1, u8, highp> highp_u8vec1;
+
335  typedef vec<2, u8, highp> highp_u8vec2;
+
336  typedef vec<3, u8, highp> highp_u8vec3;
+
337  typedef vec<4, u8, highp> highp_u8vec4;
+
338 
+
339  typedef vec<1, u8, defaultp> u8vec1;
+
340  typedef vec<2, u8, defaultp> u8vec2;
+
341  typedef vec<3, u8, defaultp> u8vec3;
+
342  typedef vec<4, u8, defaultp> u8vec4;
+
343 
+
344  typedef vec<1, u16, lowp> lowp_u16vec1;
+
345  typedef vec<2, u16, lowp> lowp_u16vec2;
+
346  typedef vec<3, u16, lowp> lowp_u16vec3;
+
347  typedef vec<4, u16, lowp> lowp_u16vec4;
+
348 
+
349  typedef vec<1, u16, mediump> mediump_u16vec1;
+
350  typedef vec<2, u16, mediump> mediump_u16vec2;
+
351  typedef vec<3, u16, mediump> mediump_u16vec3;
+
352  typedef vec<4, u16, mediump> mediump_u16vec4;
+
353 
+
354  typedef vec<1, u16, highp> highp_u16vec1;
+
355  typedef vec<2, u16, highp> highp_u16vec2;
+
356  typedef vec<3, u16, highp> highp_u16vec3;
+
357  typedef vec<4, u16, highp> highp_u16vec4;
+
358 
+
359  typedef vec<1, u16, defaultp> u16vec1;
+
360  typedef vec<2, u16, defaultp> u16vec2;
+
361  typedef vec<3, u16, defaultp> u16vec3;
+
362  typedef vec<4, u16, defaultp> u16vec4;
+
363 
+
364  typedef vec<1, u32, lowp> lowp_u32vec1;
+
365  typedef vec<2, u32, lowp> lowp_u32vec2;
+
366  typedef vec<3, u32, lowp> lowp_u32vec3;
+
367  typedef vec<4, u32, lowp> lowp_u32vec4;
+
368 
+
369  typedef vec<1, u32, mediump> mediump_u32vec1;
+
370  typedef vec<2, u32, mediump> mediump_u32vec2;
+
371  typedef vec<3, u32, mediump> mediump_u32vec3;
+
372  typedef vec<4, u32, mediump> mediump_u32vec4;
+
373 
+
374  typedef vec<1, u32, highp> highp_u32vec1;
+
375  typedef vec<2, u32, highp> highp_u32vec2;
+
376  typedef vec<3, u32, highp> highp_u32vec3;
+
377  typedef vec<4, u32, highp> highp_u32vec4;
+
378 
+
379  typedef vec<1, u32, defaultp> u32vec1;
+
380  typedef vec<2, u32, defaultp> u32vec2;
+
381  typedef vec<3, u32, defaultp> u32vec3;
+
382  typedef vec<4, u32, defaultp> u32vec4;
+
383 
+
384  typedef vec<1, u64, lowp> lowp_u64vec1;
+
385  typedef vec<2, u64, lowp> lowp_u64vec2;
+
386  typedef vec<3, u64, lowp> lowp_u64vec3;
+
387  typedef vec<4, u64, lowp> lowp_u64vec4;
+
388 
+
389  typedef vec<1, u64, mediump> mediump_u64vec1;
+
390  typedef vec<2, u64, mediump> mediump_u64vec2;
+
391  typedef vec<3, u64, mediump> mediump_u64vec3;
+
392  typedef vec<4, u64, mediump> mediump_u64vec4;
+
393 
+
394  typedef vec<1, u64, highp> highp_u64vec1;
+
395  typedef vec<2, u64, highp> highp_u64vec2;
+
396  typedef vec<3, u64, highp> highp_u64vec3;
+
397  typedef vec<4, u64, highp> highp_u64vec4;
+
398 
+
399  typedef vec<1, u64, defaultp> u64vec1;
+
400  typedef vec<2, u64, defaultp> u64vec2;
+
401  typedef vec<3, u64, defaultp> u64vec3;
+
402  typedef vec<4, u64, defaultp> u64vec4;
+
403 
+
404  // Vector float
+
405 
+
406  typedef vec<1, float, lowp> lowp_vec1;
+
407  typedef vec<2, float, lowp> lowp_vec2;
+
408  typedef vec<3, float, lowp> lowp_vec3;
+
409  typedef vec<4, float, lowp> lowp_vec4;
+
410 
+
411  typedef vec<1, float, mediump> mediump_vec1;
+
412  typedef vec<2, float, mediump> mediump_vec2;
+
413  typedef vec<3, float, mediump> mediump_vec3;
+
414  typedef vec<4, float, mediump> mediump_vec4;
+
415 
+
416  typedef vec<1, float, highp> highp_vec1;
+
417  typedef vec<2, float, highp> highp_vec2;
+
418  typedef vec<3, float, highp> highp_vec3;
+
419  typedef vec<4, float, highp> highp_vec4;
+
420 
+
421  typedef vec<1, float, defaultp> vec1;
+
422  typedef vec<2, float, defaultp> vec2;
+
423  typedef vec<3, float, defaultp> vec3;
+
424  typedef vec<4, float, defaultp> vec4;
+
425 
+
426  typedef vec<1, float, lowp> lowp_fvec1;
+
427  typedef vec<2, float, lowp> lowp_fvec2;
+
428  typedef vec<3, float, lowp> lowp_fvec3;
+
429  typedef vec<4, float, lowp> lowp_fvec4;
+
430 
+
431  typedef vec<1, float, mediump> mediump_fvec1;
+
432  typedef vec<2, float, mediump> mediump_fvec2;
+
433  typedef vec<3, float, mediump> mediump_fvec3;
+
434  typedef vec<4, float, mediump> mediump_fvec4;
+
435 
+
436  typedef vec<1, float, highp> highp_fvec1;
+
437  typedef vec<2, float, highp> highp_fvec2;
+
438  typedef vec<3, float, highp> highp_fvec3;
+
439  typedef vec<4, float, highp> highp_fvec4;
+
440 
+
441  typedef vec<1, f32, defaultp> fvec1;
+
442  typedef vec<2, f32, defaultp> fvec2;
+
443  typedef vec<3, f32, defaultp> fvec3;
+
444  typedef vec<4, f32, defaultp> fvec4;
+
445 
+
446  typedef vec<1, f32, lowp> lowp_f32vec1;
+
447  typedef vec<2, f32, lowp> lowp_f32vec2;
+
448  typedef vec<3, f32, lowp> lowp_f32vec3;
+
449  typedef vec<4, f32, lowp> lowp_f32vec4;
+
450 
+
451  typedef vec<1, f32, mediump> mediump_f32vec1;
+
452  typedef vec<2, f32, mediump> mediump_f32vec2;
+
453  typedef vec<3, f32, mediump> mediump_f32vec3;
+
454  typedef vec<4, f32, mediump> mediump_f32vec4;
+
455 
+
456  typedef vec<1, f32, highp> highp_f32vec1;
+
457  typedef vec<2, f32, highp> highp_f32vec2;
+
458  typedef vec<3, f32, highp> highp_f32vec3;
+
459  typedef vec<4, f32, highp> highp_f32vec4;
+
460 
+
461  typedef vec<1, f32, defaultp> f32vec1;
+
462  typedef vec<2, f32, defaultp> f32vec2;
+
463  typedef vec<3, f32, defaultp> f32vec3;
+
464  typedef vec<4, f32, defaultp> f32vec4;
+
465 
+
466  typedef vec<1, f64, lowp> lowp_dvec1;
+
467  typedef vec<2, f64, lowp> lowp_dvec2;
+
468  typedef vec<3, f64, lowp> lowp_dvec3;
+
469  typedef vec<4, f64, lowp> lowp_dvec4;
+
470 
+
471  typedef vec<1, f64, mediump> mediump_dvec1;
+
472  typedef vec<2, f64, mediump> mediump_dvec2;
+
473  typedef vec<3, f64, mediump> mediump_dvec3;
+
474  typedef vec<4, f64, mediump> mediump_dvec4;
+
475 
+
476  typedef vec<1, f64, highp> highp_dvec1;
+
477  typedef vec<2, f64, highp> highp_dvec2;
+
478  typedef vec<3, f64, highp> highp_dvec3;
+
479  typedef vec<4, f64, highp> highp_dvec4;
+
480 
+
481  typedef vec<1, f64, defaultp> dvec1;
+
482  typedef vec<2, f64, defaultp> dvec2;
+
483  typedef vec<3, f64, defaultp> dvec3;
+
484  typedef vec<4, f64, defaultp> dvec4;
+
485 
+
486  typedef vec<1, f64, lowp> lowp_f64vec1;
+
487  typedef vec<2, f64, lowp> lowp_f64vec2;
+
488  typedef vec<3, f64, lowp> lowp_f64vec3;
+
489  typedef vec<4, f64, lowp> lowp_f64vec4;
+
490 
+
491  typedef vec<1, f64, mediump> mediump_f64vec1;
+
492  typedef vec<2, f64, mediump> mediump_f64vec2;
+
493  typedef vec<3, f64, mediump> mediump_f64vec3;
+
494  typedef vec<4, f64, mediump> mediump_f64vec4;
+
495 
+
496  typedef vec<1, f64, highp> highp_f64vec1;
+
497  typedef vec<2, f64, highp> highp_f64vec2;
+
498  typedef vec<3, f64, highp> highp_f64vec3;
+
499  typedef vec<4, f64, highp> highp_f64vec4;
+
500 
+
501  typedef vec<1, f64, defaultp> f64vec1;
+
502  typedef vec<2, f64, defaultp> f64vec2;
+
503  typedef vec<3, f64, defaultp> f64vec3;
+
504  typedef vec<4, f64, defaultp> f64vec4;
+
505 
+
506  // Matrix NxN
+
507 
+
508  typedef mat<2, 2, f32, lowp> lowp_mat2;
+
509  typedef mat<3, 3, f32, lowp> lowp_mat3;
+
510  typedef mat<4, 4, f32, lowp> lowp_mat4;
+
511 
+
512  typedef mat<2, 2, f32, mediump> mediump_mat2;
+
513  typedef mat<3, 3, f32, mediump> mediump_mat3;
+
514  typedef mat<4, 4, f32, mediump> mediump_mat4;
+
515 
+
516  typedef mat<2, 2, f32, highp> highp_mat2;
+
517  typedef mat<3, 3, f32, highp> highp_mat3;
+
518  typedef mat<4, 4, f32, highp> highp_mat4;
+
519 
+
520  typedef mat<2, 2, f32, defaultp> mat2;
+
521  typedef mat<3, 3, f32, defaultp> mat3;
+
522  typedef mat<4, 4, f32, defaultp> mat4;
+
523 
+
524  typedef mat<2, 2, f32, lowp> lowp_fmat2;
+
525  typedef mat<3, 3, f32, lowp> lowp_fmat3;
+
526  typedef mat<4, 4, f32, lowp> lowp_fmat4;
+
527 
+
528  typedef mat<2, 2, f32, mediump> mediump_fmat2;
+
529  typedef mat<3, 3, f32, mediump> mediump_fmat3;
+
530  typedef mat<4, 4, f32, mediump> mediump_fmat4;
+
531 
+
532  typedef mat<2, 2, f32, highp> highp_fmat2;
+
533  typedef mat<3, 3, f32, highp> highp_fmat3;
+
534  typedef mat<4, 4, f32, highp> highp_fmat4;
+
535 
+
536  typedef mat<2, 2, f32, defaultp> fmat2;
+
537  typedef mat<3, 3, f32, defaultp> fmat3;
+
538  typedef mat<4, 4, f32, defaultp> fmat4;
+
539 
+
540  typedef mat<2, 2, f32, lowp> lowp_f32mat2;
+
541  typedef mat<3, 3, f32, lowp> lowp_f32mat3;
+
542  typedef mat<4, 4, f32, lowp> lowp_f32mat4;
+
543 
+
544  typedef mat<2, 2, f32, mediump> mediump_f32mat2;
+
545  typedef mat<3, 3, f32, mediump> mediump_f32mat3;
+
546  typedef mat<4, 4, f32, mediump> mediump_f32mat4;
+
547 
+
548  typedef mat<2, 2, f32, highp> highp_f32mat2;
+
549  typedef mat<3, 3, f32, highp> highp_f32mat3;
+
550  typedef mat<4, 4, f32, highp> highp_f32mat4;
+
551 
+
552  typedef mat<2, 2, f32, defaultp> f32mat2;
+
553  typedef mat<3, 3, f32, defaultp> f32mat3;
+
554  typedef mat<4, 4, f32, defaultp> f32mat4;
+
555 
+
556  typedef mat<2, 2, f64, lowp> lowp_dmat2;
+
557  typedef mat<3, 3, f64, lowp> lowp_dmat3;
+
558  typedef mat<4, 4, f64, lowp> lowp_dmat4;
+
559 
+
560  typedef mat<2, 2, f64, mediump> mediump_dmat2;
+
561  typedef mat<3, 3, f64, mediump> mediump_dmat3;
+
562  typedef mat<4, 4, f64, mediump> mediump_dmat4;
+
563 
+
564  typedef mat<2, 2, f64, highp> highp_dmat2;
+
565  typedef mat<3, 3, f64, highp> highp_dmat3;
+
566  typedef mat<4, 4, f64, highp> highp_dmat4;
+
567 
+
568  typedef mat<2, 2, f64, defaultp> dmat2;
+
569  typedef mat<3, 3, f64, defaultp> dmat3;
+
570  typedef mat<4, 4, f64, defaultp> dmat4;
+
571 
+
572  typedef mat<2, 2, f64, lowp> lowp_f64mat2;
+
573  typedef mat<3, 3, f64, lowp> lowp_f64mat3;
+
574  typedef mat<4, 4, f64, lowp> lowp_f64mat4;
+
575 
+
576  typedef mat<2, 2, f64, mediump> mediump_f64mat2;
+
577  typedef mat<3, 3, f64, mediump> mediump_f64mat3;
+
578  typedef mat<4, 4, f64, mediump> mediump_f64mat4;
+
579 
+
580  typedef mat<2, 2, f64, highp> highp_f64mat2;
+
581  typedef mat<3, 3, f64, highp> highp_f64mat3;
+
582  typedef mat<4, 4, f64, highp> highp_f64mat4;
+
583 
+
584  typedef mat<2, 2, f64, defaultp> f64mat2;
+
585  typedef mat<3, 3, f64, defaultp> f64mat3;
+
586  typedef mat<4, 4, f64, defaultp> f64mat4;
+
587 
+
588  // Matrix MxN
+
589 
+
590  typedef mat<2, 2, f32, lowp> lowp_mat2x2;
+
591  typedef mat<2, 3, f32, lowp> lowp_mat2x3;
+
592  typedef mat<2, 4, f32, lowp> lowp_mat2x4;
+
593  typedef mat<3, 2, f32, lowp> lowp_mat3x2;
+
594  typedef mat<3, 3, f32, lowp> lowp_mat3x3;
+
595  typedef mat<3, 4, f32, lowp> lowp_mat3x4;
+
596  typedef mat<4, 2, f32, lowp> lowp_mat4x2;
+
597  typedef mat<4, 3, f32, lowp> lowp_mat4x3;
+
598  typedef mat<4, 4, f32, lowp> lowp_mat4x4;
+
599 
+
600  typedef mat<2, 2, f32, mediump> mediump_mat2x2;
+
601  typedef mat<2, 3, f32, mediump> mediump_mat2x3;
+
602  typedef mat<2, 4, f32, mediump> mediump_mat2x4;
+
603  typedef mat<3, 2, f32, mediump> mediump_mat3x2;
+
604  typedef mat<3, 3, f32, mediump> mediump_mat3x3;
+
605  typedef mat<3, 4, f32, mediump> mediump_mat3x4;
+
606  typedef mat<4, 2, f32, mediump> mediump_mat4x2;
+
607  typedef mat<4, 3, f32, mediump> mediump_mat4x3;
+
608  typedef mat<4, 4, f32, mediump> mediump_mat4x4;
+
609 
+
610  typedef mat<2, 2, f32, highp> highp_mat2x2;
+
611  typedef mat<2, 3, f32, highp> highp_mat2x3;
+
612  typedef mat<2, 4, f32, highp> highp_mat2x4;
+
613  typedef mat<3, 2, f32, highp> highp_mat3x2;
+
614  typedef mat<3, 3, f32, highp> highp_mat3x3;
+
615  typedef mat<3, 4, f32, highp> highp_mat3x4;
+
616  typedef mat<4, 2, f32, highp> highp_mat4x2;
+
617  typedef mat<4, 3, f32, highp> highp_mat4x3;
+
618  typedef mat<4, 4, f32, highp> highp_mat4x4;
+
619 
+
620  typedef mat<2, 2, f32, defaultp> mat2x2;
+
621  typedef mat<3, 2, f32, defaultp> mat3x2;
+
622  typedef mat<4, 2, f32, defaultp> mat4x2;
+
623  typedef mat<2, 3, f32, defaultp> mat2x3;
+
624  typedef mat<3, 3, f32, defaultp> mat3x3;
+
625  typedef mat<4, 3, f32, defaultp> mat4x3;
+
626  typedef mat<2, 4, f32, defaultp> mat2x4;
+
627  typedef mat<3, 4, f32, defaultp> mat3x4;
+
628  typedef mat<4, 4, f32, defaultp> mat4x4;
+
629 
+
630  typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
+
631  typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
+
632  typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
+
633  typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
+
634  typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
+
635  typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
+
636  typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
+
637  typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
+
638  typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
+
639 
+
640  typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
+
641  typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
+
642  typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
+
643  typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
+
644  typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
+
645  typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
+
646  typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
+
647  typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
+
648  typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
+
649 
+
650  typedef mat<2, 2, f32, highp> highp_fmat2x2;
+
651  typedef mat<2, 3, f32, highp> highp_fmat2x3;
+
652  typedef mat<2, 4, f32, highp> highp_fmat2x4;
+
653  typedef mat<3, 2, f32, highp> highp_fmat3x2;
+
654  typedef mat<3, 3, f32, highp> highp_fmat3x3;
+
655  typedef mat<3, 4, f32, highp> highp_fmat3x4;
+
656  typedef mat<4, 2, f32, highp> highp_fmat4x2;
+
657  typedef mat<4, 3, f32, highp> highp_fmat4x3;
+
658  typedef mat<4, 4, f32, highp> highp_fmat4x4;
+
659 
+
660  typedef mat<2, 2, f32, defaultp> fmat2x2;
+
661  typedef mat<3, 2, f32, defaultp> fmat3x2;
+
662  typedef mat<4, 2, f32, defaultp> fmat4x2;
+
663  typedef mat<2, 3, f32, defaultp> fmat2x3;
+
664  typedef mat<3, 3, f32, defaultp> fmat3x3;
+
665  typedef mat<4, 3, f32, defaultp> fmat4x3;
+
666  typedef mat<2, 4, f32, defaultp> fmat2x4;
+
667  typedef mat<3, 4, f32, defaultp> fmat3x4;
+
668  typedef mat<4, 4, f32, defaultp> fmat4x4;
+
669 
+
670  typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
+
671  typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
+
672  typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
+
673  typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
+
674  typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
+
675  typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
+
676  typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
+
677  typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
+
678  typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
+
679 
+
680  typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
+
681  typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
+
682  typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
+
683  typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
+
684  typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
+
685  typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
+
686  typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
+
687  typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
+
688  typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
+
689 
+
690  typedef mat<2, 2, f32, highp> highp_f32mat2x2;
+
691  typedef mat<2, 3, f32, highp> highp_f32mat2x3;
+
692  typedef mat<2, 4, f32, highp> highp_f32mat2x4;
+
693  typedef mat<3, 2, f32, highp> highp_f32mat3x2;
+
694  typedef mat<3, 3, f32, highp> highp_f32mat3x3;
+
695  typedef mat<3, 4, f32, highp> highp_f32mat3x4;
+
696  typedef mat<4, 2, f32, highp> highp_f32mat4x2;
+
697  typedef mat<4, 3, f32, highp> highp_f32mat4x3;
+
698  typedef mat<4, 4, f32, highp> highp_f32mat4x4;
+
699 
+
700  typedef mat<2, 2, f32, defaultp> f32mat2x2;
+
701  typedef mat<3, 2, f32, defaultp> f32mat3x2;
+
702  typedef mat<4, 2, f32, defaultp> f32mat4x2;
+
703  typedef mat<2, 3, f32, defaultp> f32mat2x3;
+
704  typedef mat<3, 3, f32, defaultp> f32mat3x3;
+
705  typedef mat<4, 3, f32, defaultp> f32mat4x3;
+
706  typedef mat<2, 4, f32, defaultp> f32mat2x4;
+
707  typedef mat<3, 4, f32, defaultp> f32mat3x4;
+
708  typedef mat<4, 4, f32, defaultp> f32mat4x4;
+
709 
+
710  typedef mat<2, 2, double, lowp> lowp_dmat2x2;
+
711  typedef mat<2, 3, double, lowp> lowp_dmat2x3;
+
712  typedef mat<2, 4, double, lowp> lowp_dmat2x4;
+
713  typedef mat<3, 2, double, lowp> lowp_dmat3x2;
+
714  typedef mat<3, 3, double, lowp> lowp_dmat3x3;
+
715  typedef mat<3, 4, double, lowp> lowp_dmat3x4;
+
716  typedef mat<4, 2, double, lowp> lowp_dmat4x2;
+
717  typedef mat<4, 3, double, lowp> lowp_dmat4x3;
+
718  typedef mat<4, 4, double, lowp> lowp_dmat4x4;
+
719 
+
720  typedef mat<2, 2, double, mediump> mediump_dmat2x2;
+
721  typedef mat<2, 3, double, mediump> mediump_dmat2x3;
+
722  typedef mat<2, 4, double, mediump> mediump_dmat2x4;
+
723  typedef mat<3, 2, double, mediump> mediump_dmat3x2;
+
724  typedef mat<3, 3, double, mediump> mediump_dmat3x3;
+
725  typedef mat<3, 4, double, mediump> mediump_dmat3x4;
+
726  typedef mat<4, 2, double, mediump> mediump_dmat4x2;
+
727  typedef mat<4, 3, double, mediump> mediump_dmat4x3;
+
728  typedef mat<4, 4, double, mediump> mediump_dmat4x4;
+
729 
+
730  typedef mat<2, 2, double, highp> highp_dmat2x2;
+
731  typedef mat<2, 3, double, highp> highp_dmat2x3;
+
732  typedef mat<2, 4, double, highp> highp_dmat2x4;
+
733  typedef mat<3, 2, double, highp> highp_dmat3x2;
+
734  typedef mat<3, 3, double, highp> highp_dmat3x3;
+
735  typedef mat<3, 4, double, highp> highp_dmat3x4;
+
736  typedef mat<4, 2, double, highp> highp_dmat4x2;
+
737  typedef mat<4, 3, double, highp> highp_dmat4x3;
+
738  typedef mat<4, 4, double, highp> highp_dmat4x4;
+
739 
+
740  typedef mat<2, 2, double, defaultp> dmat2x2;
+
741  typedef mat<3, 2, double, defaultp> dmat3x2;
+
742  typedef mat<4, 2, double, defaultp> dmat4x2;
+
743  typedef mat<2, 3, double, defaultp> dmat2x3;
+
744  typedef mat<3, 3, double, defaultp> dmat3x3;
+
745  typedef mat<4, 3, double, defaultp> dmat4x3;
+
746  typedef mat<2, 4, double, defaultp> dmat2x4;
+
747  typedef mat<3, 4, double, defaultp> dmat3x4;
+
748  typedef mat<4, 4, double, defaultp> dmat4x4;
+
749 
+
750  typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
+
751  typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
+
752  typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
+
753  typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
+
754  typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
+
755  typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
+
756  typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
+
757  typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
+
758  typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
+
759 
+
760  typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
+
761  typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
+
762  typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
+
763  typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
+
764  typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
+
765  typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
+
766  typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
+
767  typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
+
768  typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
+
769 
+
770  typedef mat<2, 2, f64, highp> highp_f64mat2x2;
+
771  typedef mat<2, 3, f64, highp> highp_f64mat2x3;
+
772  typedef mat<2, 4, f64, highp> highp_f64mat2x4;
+
773  typedef mat<3, 2, f64, highp> highp_f64mat3x2;
+
774  typedef mat<3, 3, f64, highp> highp_f64mat3x3;
+
775  typedef mat<3, 4, f64, highp> highp_f64mat3x4;
+
776  typedef mat<4, 2, f64, highp> highp_f64mat4x2;
+
777  typedef mat<4, 3, f64, highp> highp_f64mat4x3;
+
778  typedef mat<4, 4, f64, highp> highp_f64mat4x4;
+
779 
+
780  typedef mat<2, 2, f64, defaultp> f64mat2x2;
+
781  typedef mat<3, 2, f64, defaultp> f64mat3x2;
+
782  typedef mat<4, 2, f64, defaultp> f64mat4x2;
+
783  typedef mat<2, 3, f64, defaultp> f64mat2x3;
+
784  typedef mat<3, 3, f64, defaultp> f64mat3x3;
+
785  typedef mat<4, 3, f64, defaultp> f64mat4x3;
+
786  typedef mat<2, 4, f64, defaultp> f64mat2x4;
+
787  typedef mat<3, 4, f64, defaultp> f64mat3x4;
+
788  typedef mat<4, 4, f64, defaultp> f64mat4x4;
+
789 
+
790  // Quaternion
+
791 
+
792  typedef qua<float, lowp> lowp_quat;
+
793  typedef qua<float, mediump> mediump_quat;
+
794  typedef qua<float, highp> highp_quat;
+
795  typedef qua<float, defaultp> quat;
+
796 
+
797  typedef qua<float, lowp> lowp_fquat;
+
798  typedef qua<float, mediump> mediump_fquat;
+
799  typedef qua<float, highp> highp_fquat;
+
800  typedef qua<float, defaultp> fquat;
+
801 
+
802  typedef qua<f32, lowp> lowp_f32quat;
+
803  typedef qua<f32, mediump> mediump_f32quat;
+
804  typedef qua<f32, highp> highp_f32quat;
+
805  typedef qua<f32, defaultp> f32quat;
+
806 
+
807  typedef qua<double, lowp> lowp_dquat;
+
808  typedef qua<double, mediump> mediump_dquat;
+
809  typedef qua<double, highp> highp_dquat;
+
810  typedef qua<double, defaultp> dquat;
+
811 
+
812  typedef qua<f64, lowp> lowp_f64quat;
+
813  typedef qua<f64, mediump> mediump_f64quat;
+
814  typedef qua<f64, highp> highp_f64quat;
+
815  typedef qua<f64, defaultp> f64quat;
+
816 }//namespace glm
+
817 
+
818 
+
vec< 1, u16, highp > highp_u16vec1
High qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:354
+
mat< 4, 2, float, mediump > mediump_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 4, 2, f32, highp > highp_f32mat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:696
+
mat< 4, 3, float, highp > highp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
vec< 4, unsigned int, mediump > mediump_uvec4
4 components vector of medium qualifier unsigned integer numbers.
+
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
+
vec< 1, f64, mediump > mediump_f64vec1
Medium double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:491
+
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
+
mat< 2, 2, f32, mediump > mediump_fmat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:528
+
double highp_float64_t
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:175
+
mat< 4, 4, f64, defaultp > f64mat4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:586
+
vec< 1, int, mediump > mediump_ivec1
1 component vector of signed integer values.
+
vec< 4, double, mediump > mediump_dvec4
4 components vector of medium double-qualifier floating-point numbers.
+
vec< 3, float, highp > highp_vec3
3 components vector of high single-qualifier floating-point numbers.
+
mat< 4, 2, double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
mat< 2, 2, f64, defaultp > f64mat2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:584
+
mat< 4, 3, f32, mediump > mediump_fmat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:647
+
mat< 3, 3, f32, mediump > mediump_f32mat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:545
+
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
+
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
+
mat< 3, 3, float, mediump > mediump_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, f32, mediump > mediump_fmat2x2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:640
+
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
+
mat< 4, 4, f32, highp > highp_f32mat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:550
+
qua< float, highp > highp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
double highp_float64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:170
+
mat< 3, 2, double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
+
mat< 3, 2, double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
+
mat< 3, 3, f64, defaultp > f64mat3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:585
+
vec< 2, int, highp > highp_ivec2
2 components vector of high qualifier signed integer numbers.
+
mat< 4, 3, double, highp > highp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 3, float, mediump > mediump_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
double lowp_float64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:168
+
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
+
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
+
mat< 2, 4, f64, mediump > mediump_f64mat2x4
Medium double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:762
+
vec< 4, i64, highp > highp_i64vec4
High qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:295
+
mat< 4, 4, double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
+
vec< 4, double, highp > highp_dvec4
4 components vector of high double-qualifier floating-point numbers.
+
mat< 2, 2, f32, defaultp > fmat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:536
+
mat< 3, 4, double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
+
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
+
vec< 2, float, lowp > lowp_fvec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:427
+
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
+
mat< 4, 4, f32, mediump > mediump_fmat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:530
+
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
+
mat< 2, 2, f32, lowp > lowp_fmat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:524
+
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
+
vec< 3, float, lowp > lowp_fvec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:428
+
vec< 2, float, mediump > mediump_fvec2
Medium Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:432
+
mat< 2, 3, float, highp > highp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 3, 4, f32, lowp > lowp_fmat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:635
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
mat< 2, 2, f64, lowp > lowp_f64mat2x2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:750
+
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
+
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
+
vec< 1, u64, lowp > lowp_u64vec1
Low qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:384
+
mat< 2, 2, double, mediump > mediump_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 1, u16, mediump > mediump_u16vec1
Medium qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:349
+
vec< 2, float, highp > highp_vec2
2 components vector of high single-qualifier floating-point numbers.
+
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
+
mat< 2, 3, f64, mediump > mediump_f64mat2x3
Medium double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:761
+
vec< 4, u32, lowp > lowp_u32vec4
Low qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:367
+
vec< 4, f32, highp > highp_f32vec4
High single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:459
+
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
+
vec< 1, f32, lowp > lowp_f32vec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:446
+
mat< 2, 3, f32, highp > highp_f32mat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:691
+
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
+
vec< 2, i32, mediump > mediump_i32vec2
Medium qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:268
+
vec< 1, double, lowp > lowp_dvec1
1 component vector of double-precision floating-point numbers using low precision arithmetic in term ...
+
mat< 4, 4, f64, lowp > lowp_f64mat4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:574
+
mat< 4, 4, f32, defaultp > fmat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:538
+
mat< 3, 4, f32, mediump > mediump_fmat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:645
+
mat< 3, 3, double, lowp > lowp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
+
vec< 4, i32, highp > highp_i32vec4
High qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:275
+
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
+
mat< 3, 2, f32, highp > highp_fmat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:653
+
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
+
mat< 2, 3, f32, mediump > mediump_fmat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:641
+
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
+
mat< 3, 2, f32, lowp > lowp_fmat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:633
+
mat< 2, 3, float, lowp > lowp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 2, 2, float, lowp > lowp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 2, f64, mediump > mediump_f64mat4x2
Medium double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:766
+
vec< 4, bool, lowp > lowp_bvec4
4 components vector of low qualifier bool numbers.
+
vec< 2, u16, highp > highp_u16vec2
High qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:355
+
vec< 1, f64, highp > highp_f64vec1
High double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:496
+
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
+
vec< 2, i16, mediump > mediump_i16vec2
Medium qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:248
+
mat< 2, 4, f32, highp > highp_fmat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:652
+
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
+
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
+
mat< 3, 2, f32, lowp > lowp_f32mat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:673
+
vec< 4, bool, mediump > mediump_bvec4
4 components vector of medium qualifier bool numbers.
+
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
+
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
+
vec< 1, unsigned int, mediump > mediump_uvec1
1 component vector of unsigned integer values.
+
vec< 3, i64, highp > highp_i64vec3
High qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:294
+
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
+
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
+
vec< 1, float, lowp > lowp_vec1
1 component vector of single-precision floating-point numbers using low precision arithmetic in term ...
+
mat< 4, 2, f32, mediump > mediump_f32mat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:686
+
mat< 3, 3, float, highp > highp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
vec< 3, f64, lowp > lowp_f64vec3
Low double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:488
+
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
+
mat< 3, 3, float, lowp > lowp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
+
vec< 3, i64, lowp > lowp_i64vec3
Low qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:284
+
vec< 2, i8, mediump > mediump_i8vec2
Medium qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:228
+
vec< 4, float, lowp > lowp_vec4
4 components vector of low single-qualifier floating-point numbers.
+
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
+
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
+
mat< 4, 2, double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 2, float, lowp > lowp_vec2
2 components vector of low single-qualifier floating-point numbers.
+
vec< 3, i16, highp > highp_i16vec3
High qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:254
+
mat< 2, 3, double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 3, i16, mediump > mediump_i16vec3
Medium qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:249
+
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
+
vec< 2, int, mediump > mediump_ivec2
2 components vector of medium qualifier signed integer numbers.
+
mat< 3, 2, f32, mediump > mediump_fmat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:643
+
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
+
vec< 1, i64, mediump > mediump_i64vec1
Medium qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:287
+
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
+
mat< 2, 2, double, lowp > lowp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 2, 4, double, highp > highp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, f64, lowp > lowp_f64mat3x3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:754
+
vec< 2, f64, lowp > lowp_f64vec2
Low double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:487
+
mat< 2, 3, f32, highp > highp_fmat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:651
+
mat< 4, 3, f32, lowp > lowp_f32mat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:677
+
mat< 3, 3, f64, lowp > lowp_f64mat3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:573
+
vec< 3, u64, mediump > mediump_u64vec3
Medium qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:391
+
double mediump_float64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:169
+
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
+
vec< 2, bool, highp > highp_bvec2
2 components vector of high qualifier bool numbers.
+
vec< 2, i16, highp > highp_i16vec2
High qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:253
+
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
+
mat< 2, 3, f64, lowp > lowp_f64mat2x3
Low double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:751
+
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
+
mat< 3, 3, double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
vec< 3, u32, lowp > lowp_u32vec3
Low qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:366
+
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
+
vec< 4, float, lowp > lowp_fvec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:429
+
vec< 4, f32, mediump > mediump_f32vec4
Medium single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:454
+
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
+
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
+
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
+
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
+
mat< 3, 4, f64, mediump > mediump_f64mat3x4
Medium double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:765
+
mat< 2, 3, f32, lowp > lowp_fmat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:631
+
vec< 1, u32, lowp > lowp_u32vec1
Low qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:364
+
mat< 3, 2, float, lowp > lowp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
+
vec< 1, i32, mediump > mediump_i32vec1
Medium qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:267
+
vec< 4, u16, highp > highp_u16vec4
High qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:357
+
vec< 1, i32, lowp > lowp_i32vec1
Low qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:262
+
vec< 1, i64, lowp > lowp_i64vec1
Low qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:282
+
vec< 1, u32, highp > highp_u32vec1
High qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:374
+
vec< 1, bool, highp > highp_bvec1
1 component vector of bool values.
+
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
+
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
+
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
+
vec< 4, float, mediump > mediump_vec4
4 components vector of medium single-qualifier floating-point numbers.
+
vec< 3, f64, mediump > mediump_f64vec3
Medium double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:493
+
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
+
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
+
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
+
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
+
vec< 1, i8, highp > highp_i8vec1
High qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:232
+
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
+
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
+
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
+
vec< 1, u32, mediump > mediump_u32vec1
Medium qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:369
+
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
+
mat< 2, 2, f32, lowp > lowp_f32mat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:670
+
vec< 4, f32, lowp > lowp_f32vec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:449
+
vec< 3, float, highp > highp_fvec3
High Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:438
+
mat< 4, 2, f64, lowp > lowp_f64mat4x2
Low double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:756
+
mat< 3, 3, f32, mediump > mediump_fmat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:644
+
vec< 1, i64, highp > highp_i64vec1
High qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:292
+
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
+
vec< 1, int, highp > highp_ivec1
1 component vector of signed integer values.
+
vec< 3, bool, mediump > mediump_bvec3
3 components vector of medium qualifier bool numbers.
+
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
+
mat< 2, 3, f32, mediump > mediump_f32mat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:681
+
mat< 3, 4, double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 2, f64, lowp > lowp_f64mat3x2
Low double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:753
+
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
+
vec< 1, float, mediump > mediump_vec1
1 component vector of single-precision floating-point numbers using medium precision arithmetic in te...
+
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
+
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
+
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
+
mat< 4, 4, float, mediump > mediump_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
+
vec< 2, int, lowp > lowp_ivec2
2 components vector of low qualifier signed integer numbers.
+
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
+
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
+
mat< 4, 4, f64, mediump > mediump_f64mat4x4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:768
+
mat< 2, 2, double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 4, u16, lowp > lowp_u16vec4
Low qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:347
+
vec< 4, unsigned int, highp > highp_uvec4
4 components vector of high qualifier unsigned integer numbers.
+
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
+
mat< 4, 4, f32, lowp > lowp_f32mat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:542
+
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
+
float mediump_float32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:153
+
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
+
mat< 4, 2, float, lowp > lowp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 4, f64, mediump > mediump_f64vec4
Medium double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:494
+
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
+
float highp_float32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:154
+
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
+
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
+
mat< 2, 4, f64, lowp > lowp_f64mat2x4
Low double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:752
+
mat< 3, 4, f64, lowp > lowp_f64mat3x4
Low double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:755
+
vec< 3, float, lowp > lowp_vec3
3 components vector of low single-qualifier floating-point numbers.
+
mat< 3, 4, float, highp > highp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 4, float, lowp > lowp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
+
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
+
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
+
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
+
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
+
vec< 2, i64, lowp > lowp_i64vec2
Low qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:283
+
mat< 2, 4, f32, lowp > lowp_f32mat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:672
+
vec< 4, bool, highp > highp_bvec4
4 components vector of high qualifier bool numbers.
+
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
+
mat< 3, 3, f32, highp > highp_f32mat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:549
+
mat< 3, 3, f64, mediump > mediump_f64mat3x3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:764
+
vec< 2, bool, defaultp > bvec2
2 components vector of boolean.
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
+
vec< 3, i32, highp > highp_i32vec3
High qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:274
+
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
+
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
+
vec< 1, i32, highp > highp_i32vec1
High qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:272
+
mat< 3, 3, double, highp > highp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, f32, lowp > lowp_f32mat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:541
+
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
+
mat< 2, 4, float, lowp > lowp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
+
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
+
vec< 3, i32, mediump > mediump_i32vec3
Medium qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:269
+
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
+
vec< 2, bool, mediump > mediump_bvec2
2 components vector of medium qualifier bool numbers.
+
vec< 2, i16, lowp > lowp_i16vec2
Low qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:243
+
vec< 2, float, mediump > mediump_vec2
2 components vector of medium single-qualifier floating-point numbers.
+
vec< 2, u64, mediump > mediump_u64vec2
Medium qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:390
+
vec< 4, u8, lowp > lowp_u8vec4
Low qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:327
+
mat< 3, 3, f32, highp > highp_f32mat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:694
+
vec< 1, u8, highp > highp_u8vec1
High qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:334
+
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
+
vec< 4, u32, mediump > mediump_u32vec4
Medium qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:372
+
mat< 2, 2, f32, highp > highp_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:690
+
vec< 4, f64, highp > highp_f64vec4
High double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:499
+
mat< 3, 3, double, highp > highp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 3, u8, lowp > lowp_u8vec3
Low qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:326
+
float highp_f32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:149
+
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
+
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
+
mat< 2, 3, f32, lowp > lowp_f32mat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:671
+
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
+
vec< 3, u16, mediump > mediump_u16vec3
Medium qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:351
+
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
+
qua< double, mediump > mediump_dquat
Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term ...
+
mat< 3, 3, f32, defaultp > f32mat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:553
+
mat< 2, 2, f64, mediump > mediump_f64mat2x2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:760
+
vec< 1, double, highp > highp_dvec1
1 component vector of double-precision floating-point numbers using high precision arithmetic in term...
+
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
+
mat< 4, 4, float, mediump > mediump_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 4, i16, highp > highp_i16vec4
High qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:255
+
mat< 4, 4, f32, lowp > lowp_fmat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:526
+
vec< 2, u32, mediump > mediump_u32vec2
Medium qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:370
+
vec< 3, u64, highp > highp_u64vec3
High qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:396
+
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
+
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
+
vec< 3, i16, lowp > lowp_i16vec3
Low qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:244
+
vec< 3, u16, lowp > lowp_u16vec3
Low qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:346
+
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
+
vec< 3, f32, lowp > lowp_f32vec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:448
+
mat< 4, 4, f32, highp > highp_fmat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:534
+
mat< 3, 3, f32, lowp > lowp_fmat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:525
+
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
+
qua< f32, mediump > mediump_f32quat
Medium single-qualifier floating-point quaternion.
Definition: fwd.hpp:803
+
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
+
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
+
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
+
mat< 2, 4, f32, lowp > lowp_fmat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:632
+
mat< 3, 3, f64, highp > highp_f64mat3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:581
+
vec< 3, i8, mediump > mediump_i8vec3
Medium qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:229
+
vec< 1, f32, highp > highp_f32vec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:456
+
vec< 3, i8, lowp > lowp_i8vec3
Low qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:224
+
mat< 3, 3, double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 3, f64, lowp > lowp_f64mat4x3
Low double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:757
+
vec< 4, u64, highp > highp_u64vec4
High qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:397
+
mat< 3, 3, float, mediump > mediump_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
+
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
+
vec< 1, bool, mediump > mediump_bvec1
1 component vector of bool values.
+
mat< 4, 4, double, lowp > lowp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 4, double, highp > highp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
+
mat< 2, 2, f32, defaultp > f32mat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:552
+
mat< 2, 4, f32, mediump > mediump_fmat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:642
+
vec< 2, u16, mediump > mediump_u16vec2
Medium qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:350
+
mat< 4, 4, f32, lowp > lowp_f32mat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:678
+
vec< 2, unsigned int, lowp > lowp_uvec2
2 components vector of low qualifier unsigned integer numbers.
+
mat< 3, 3, float, lowp > lowp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 2, u8, lowp > lowp_u8vec2
Low qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:325
+
vec< 2, double, lowp > lowp_dvec2
2 components vector of low double-qualifier floating-point numbers.
+
mat< 3, 3, f64, mediump > mediump_f64mat3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:577
+
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
+
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
+
vec< 3, unsigned int, mediump > mediump_uvec3
3 components vector of medium qualifier unsigned integer numbers.
+
mat< 3, 4, f32, highp > highp_fmat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:655
+
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
+
mat< 4, 4, f64, highp > highp_f64mat4x4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:778
+
mat< 2, 2, float, highp > highp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 3, f32, mediump > mediump_f32mat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:687
+
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
+
vec< 3, int, lowp > lowp_ivec3
3 components vector of low qualifier signed integer numbers.
+
mat< 3, 3, f32, mediump > mediump_fmat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:529
+
mat< 4, 4, double, mediump > mediump_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, f32, highp > highp_f32mat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:698
+
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
+
vec< 4, int, lowp > lowp_ivec4
4 components vector of low qualifier signed integer numbers.
+
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
+
vec< 4, unsigned int, lowp > lowp_uvec4
4 components vector of low qualifier unsigned integer numbers.
+
vec< 2, f64, highp > highp_f64vec2
High double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:497
+
vec< 2, u64, lowp > lowp_u64vec2
Low qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:385
+
mat< 3, 3, f32, defaultp > fmat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:537
+
mat< 3, 2, f32, mediump > mediump_f32mat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:683
+
mat< 3, 3, double, defaultp > dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers.
+
mat< 3, 3, double, defaultp > dmat3
3 columns of 3 components matrix of double-precision floating-point numbers.
+
mat< 4, 2, f32, lowp > lowp_f32mat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:676
+
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
+
vec< 4, i64, mediump > mediump_i64vec4
Medium qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:290
+
vec< 4, bool, defaultp > bvec4
4 components vector of boolean.
+
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
+
vec< 1, i8, mediump > mediump_i8vec1
Medium qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:227
+
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
+
mat< 4, 3, double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
float highp_float32_t
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:159
+
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
+
mat< 4, 4, double, highp > highp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
+
mat< 2, 3, double, highp > highp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
+
mat< 4, 2, f32, highp > highp_fmat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:656
+
vec< 2, f32, highp > highp_f32vec2
High single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:457
+
mat< 2, 4, double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, double, defaultp > dmat2
2 columns of 2 components matrix of double-precision floating-point numbers.
+
vec< 4, float, highp > highp_vec4
4 components vector of high single-qualifier floating-point numbers.
+
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
+
vec< 3, u64, lowp > lowp_u64vec3
Low qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:386
+
mat< 4, 4, double, defaultp > dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers.
+
vec< 1, bool, lowp > lowp_bvec1
1 component vector of bool values.
+
mat< 2, 2, f64, highp > highp_f64mat2x2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:770
+
vec< 3, u32, highp > highp_u32vec3
High qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:376
+
vec< 3, bool, highp > highp_bvec3
3 components vector of high qualifier bool numbers.
+
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
+
qua< f32, lowp > lowp_f32quat
Low single-qualifier floating-point quaternion.
Definition: fwd.hpp:802
+
vec< 4, i32, lowp > lowp_i32vec4
Low qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:265
+
vec< 1, i16, highp > highp_i16vec1
High qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:252
+
mat< 4, 4, f32, lowp > lowp_fmat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:638
+
mat< 4, 3, double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
+
mat< 3, 3, f32, lowp > lowp_f32mat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:674
+
vec< 2, i8, lowp > lowp_i8vec2
Low qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:223
+
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
+
mat< 2, 2, f32, highp > highp_f32mat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:548
+
float lowp_f32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:147
+
vec< 1, unsigned int, highp > highp_uvec1
1 component vector of unsigned integer values.
+
vec< 4, u16, mediump > mediump_u16vec4
Medium qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:352
+
vec< 3, unsigned int, highp > highp_uvec3
3 components vector of high qualifier unsigned integer numbers.
+
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
+
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
+
vec< 3, double, mediump > mediump_dvec3
3 components vector of medium double-qualifier floating-point numbers.
+
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
+
vec< 2, u64, highp > highp_u64vec2
High qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:395
+
vec< 1, int, lowp > lowp_ivec1
1 component vector of signed integer values.
+
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
+
mat< 2, 2, f32, mediump > mediump_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:680
+
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
+
mat< 4, 3, f64, mediump > mediump_f64mat4x3
Medium double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:767
+
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
+
double highp_f64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:165
+
vec< 3, float, mediump > mediump_fvec3
Medium Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:433
+
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
+
vec< 4, u64, mediump > mediump_u64vec4
Medium qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:392
+
mat< 2, 2, double, highp > highp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
+
vec< 2, u32, highp > highp_u32vec2
High qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:375
+
vec< 1, double, mediump > mediump_dvec1
1 component vector of double-precision floating-point numbers using medium precision arithmetic in te...
+
vec< 1, float, highp > highp_fvec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:436
+
vec< 4, i64, lowp > lowp_i64vec4
Low qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:285
+
vec< 4, int, highp > highp_ivec4
4 components vector of high qualifier signed integer numbers.
+
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
+
mat< 2, 4, f32, highp > highp_f32mat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:692
+
vec< 1, i8, lowp > lowp_i8vec1
Low qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:222
+
mat< 2, 2, f64, highp > highp_f64mat2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:580
+
vec< 3, double, lowp > lowp_dvec3
3 components vector of low double-qualifier floating-point numbers.
+
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
+
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
+
mat< 3, 2, f64, highp > highp_f64mat3x2
High double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:773
+
vec< 3, u32, mediump > mediump_u32vec3
Medium qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:371
+
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
+
mat< 3, 3, float, highp > highp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
vec< 3, u8, highp > highp_u8vec3
High qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:336
+
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
+
vec< 2, i8, highp > highp_i8vec2
High qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:233
+
mat< 2, 2, double, highp > highp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 3, i32, lowp > lowp_i32vec3
Low qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:264
+
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
+
mat< 4, 4, f32, mediump > mediump_fmat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:648
+
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
+
mat< 4, 4, double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
+
mat< 4, 4, double, highp > highp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 4, i16, lowp > lowp_i16vec4
Low qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:245
+
vec< 1, bool, defaultp > bvec1
1 components vector of boolean.
+
mat< 4, 3, f64, highp > highp_f64mat4x3
High double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:777
+
vec< 2, u8, highp > highp_u8vec2
High qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:335
+
vec< 3, int, mediump > mediump_ivec3
3 components vector of medium qualifier signed integer numbers.
+
vec< 3, i8, highp > highp_i8vec3
High qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:234
+
vec< 3, f64, highp > highp_f64vec3
High double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:498
+
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
+
vec< 4, f64, lowp > lowp_f64vec4
Low double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:489
+
qua< double, highp > highp_dquat
Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of...
+
vec< 3, f32, mediump > mediump_f32vec3
Medium single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:453
+
double lowp_f64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:163
+
mat< 4, 2, f32, lowp > lowp_fmat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:636
+
vec< 3, int, highp > highp_ivec3
3 components vector of high qualifier signed integer numbers.
+
mat< 2, 4, f64, highp > highp_f64mat2x4
High double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:772
+
mat< 4, 4, f64, highp > highp_f64mat4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:582
+
vec< 4, i32, mediump > mediump_i32vec4
Medium qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:270
+
mat< 2, 2, f32, lowp > lowp_f32mat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:540
+
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
+
mat< 3, 4, double, defaultp > dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers.
+
mat< 2, 3, double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
+
mat< 2, 4, float, mediump > mediump_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 3, 4, f64, highp > highp_f64mat3x4
High double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:775
+
mat< 3, 3, f32, highp > highp_fmat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:533
+
mat< 3, 3, f32, mediump > mediump_f32mat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:684
+
qua< f64, mediump > mediump_f64quat
Medium double-qualifier floating-point quaternion.
Definition: fwd.hpp:813
+
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
+
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
+
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
+
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
+
detail::uint64 uint64
64 bit unsigned integer type.
+
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
+
mat< 2, 2, double, defaultp > dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers.
+
vec< 1, i16, mediump > mediump_i16vec1
Medium qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:247
+
mat< 2, 4, double, defaultp > dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers.
+
mat< 3, 2, double, highp > highp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
+
mat< 2, 2, f32, highp > highp_fmat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:650
+
vec< 4, float, highp > highp_fvec4
High Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:439
+
mat< 3, 3, f64, highp > highp_f64mat3x3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:774
+
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
+
vec< 3, float, mediump > mediump_vec3
3 components vector of medium single-qualifier floating-point numbers.
+
vec< 2, u16, lowp > lowp_u16vec2
Low qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:345
+
vec< 4, u32, highp > highp_u32vec4
High qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:377
+
mat< 4, 2, double, defaultp > dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers.
+
vec< 4, double, lowp > lowp_dvec4
4 components vector of low double-qualifier floating-point numbers.
+
float lowp_float32_t
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:157
+
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
+
vec< 2, f32, lowp > lowp_f32vec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:447
+
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
+
mat< 2, 2, f64, mediump > mediump_f64mat2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:576
+
qua< float, mediump > mediump_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
mat< 4, 3, f32, highp > highp_f32mat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:697
+
vec< 3, unsigned int, lowp > lowp_uvec3
3 components vector of low qualifier unsigned integer numbers.
+
mat< 2, 2, float, lowp > lowp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
+
detail::int64 int64
64 bit signed integer type.
+
qua< double, lowp > lowp_dquat
Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
vec< 1, u64, highp > highp_u64vec1
High qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:394
+
mat< 3, 4, float, mediump > mediump_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 2, 3, f64, highp > highp_f64mat2x3
High double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:771
+
vec< 4, i8, lowp > lowp_i8vec4
Low qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:225
+
mat< 4, 3, f32, lowp > lowp_fmat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:637
+
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
+
vec< 2, i32, highp > highp_i32vec2
High qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:273
+
vec< 1, u8, mediump > mediump_u8vec1
Medium qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:329
+
mat< 4, 3, f32, highp > highp_fmat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:657
+
mat< 3, 2, double, defaultp > dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers.
+
vec< 4, i16, mediump > mediump_i16vec4
Medium qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:250
+
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
+
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
+
mat< 4, 4, f64, mediump > mediump_f64mat4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:578
+
vec< 4, u8, mediump > mediump_u8vec4
Medium qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:332
+
vec< 3, double, highp > highp_dvec3
3 components vector of high double-qualifier floating-point numbers.
+
mat< 3, 4, f32, lowp > lowp_f32mat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:675
+
double mediump_float64_t
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:174
+
mat< 2, 2, float, highp > highp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 3, float, lowp > lowp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 2, float, highp > highp_fvec2
High Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:437
+
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
+
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
+
vec< 1, unsigned int, lowp > lowp_uvec1
1 component vector of unsigned integer values.
+
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
+
mat< 4, 4, f32, defaultp > f32mat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:554
+
mat< 4, 2, f32, mediump > mediump_fmat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:646
+
mat< 2, 2, f64, lowp > lowp_f64mat2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:572
+
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
+
mat< 3, 3, f32, lowp > lowp_fmat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:634
+
double lowp_float64_t
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:173
+
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
+
mat< 3, 3, f32, highp > highp_fmat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:654
+
mat< 4, 4, double, defaultp > dmat4
4 columns of 4 components matrix of double-precision floating-point numbers.
+
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
+
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
+
mat< 4, 3, float, mediump > mediump_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 1, u8, lowp > lowp_u8vec1
Low qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:324
+
vec< 3, i64, mediump > mediump_i64vec3
Medium qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:289
+
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
+
qua< f32, highp > highp_f32quat
High single-qualifier floating-point quaternion.
Definition: fwd.hpp:804
+
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
+
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
+
mat< 3, 2, float, mediump > mediump_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 2, bool, lowp > lowp_bvec2
2 components vector of low qualifier bool numbers.
+
vec< 2, u8, mediump > mediump_u8vec2
Medium qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:330
+
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
+
vec< 1, u16, lowp > lowp_u16vec1
Low qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:344
+
mat< 4, 4, f32, highp > highp_fmat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:658
+
mat< 3, 4, f32, highp > highp_f32mat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:695
+
vec< 3, bool, defaultp > bvec3
3 components vector of boolean.
+
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
+
vec< 3, u16, highp > highp_u16vec3
High qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:356
+
float mediump_float32_t
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:158
+
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
+
float mediump_f32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:148
+
mat< 4, 4, f32, mediump > mediump_f32mat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:688
+
qua< float, lowp > lowp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
vec< 2, f32, mediump > mediump_f32vec2
Medium single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:452
+
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
+
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
+
vec< 1, f64, lowp > lowp_f64vec1
Low double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:486
+
mat< 3, 2, f32, highp > highp_f32mat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:693
+
mat< 3, 2, f64, mediump > mediump_f64mat3x2
Medium double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:763
+
mat< 3, 3, double, mediump > mediump_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 3, u8, mediump > mediump_u8vec3
Medium qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:331
+
mat< 2, 3, double, defaultp > dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers.
+
mat< 4, 4, f64, lowp > lowp_f64mat4x4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:758
+
vec< 1, i16, lowp > lowp_i16vec1
Low qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:242
+
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
+
mat< 2, 4, double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
+
vec< 2, u32, lowp > lowp_u32vec2
Low qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:365
+
mat< 2, 4, f32, mediump > mediump_f32mat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:682
+
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
+
vec< 2, i64, highp > highp_i64vec2
High qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:293
+
mat< 4, 4, f32, mediump > mediump_f32mat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:546
+
mat< 3, 2, float, highp > highp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 4, float, highp > highp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
vec< 2, double, mediump > mediump_dvec2
2 components vector of medium double-qualifier floating-point numbers.
+
mat< 2, 2, double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
+
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
+
vec< 3, bool, lowp > lowp_bvec3
3 components vector of low qualifier bool numbers.
+
mat< 3, 4, float, lowp > lowp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 4, float, lowp > lowp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
vec< 1, float, highp > highp_vec1
1 component vector of single-precision floating-point numbers using high precision arithmetic in term...
+
vec< 1, f32, mediump > mediump_f32vec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:451
+
mat< 3, 4, f32, mediump > mediump_f32mat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:685
+
mat< 2, 2, f32, highp > highp_fmat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:532
+
vec< 2, unsigned int, highp > highp_uvec2
2 components vector of high qualifier unsigned integer numbers.
+
vec< 3, f32, highp > highp_f32vec3
High single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:458
+
mat< 2, 2, float, mediump > mediump_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
vec< 4, i8, mediump > mediump_i8vec4
Medium qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:230
+
float lowp_float32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:152
+
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
+
vec< 2, unsigned int, mediump > mediump_uvec2
2 components vector of medium qualifier unsigned integer numbers.
+
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
+
vec< 2, double, highp > highp_dvec2
2 components vector of high double-qualifier floating-point numbers.
+
vec< 4, float, mediump > mediump_fvec4
Medium Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:434
+
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
+
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
+
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
+
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
+
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
+
mat< 2, 2, float, mediump > mediump_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
qua< f64, lowp > lowp_f64quat
Low double-qualifier floating-point quaternion.
Definition: fwd.hpp:812
+
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
+
mat< 4, 3, double, defaultp > dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers.
+
mat< 4, 2, double, highp > highp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
+
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
+
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
+
mat< 2, 2, f32, lowp > lowp_fmat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:630
+
vec< 4, i8, highp > highp_i8vec4
High qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:235
+
vec< 4, u64, lowp > lowp_u64vec4
Low qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:387
+
vec< 2, i64, mediump > mediump_i64vec2
Medium qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:288
+
mat< 4, 2, f64, highp > highp_f64mat4x2
High double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:776
+
mat< 4, 4, float, highp > highp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
+
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
+
mat< 4, 2, float, highp > highp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
+
vec< 2, i32, lowp > lowp_i32vec2
Low qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:263
+
qua< f64, highp > highp_f64quat
High double-qualifier floating-point quaternion.
Definition: fwd.hpp:814
+
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
vec< 2, f64, mediump > mediump_f64vec2
Medium double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:492
+
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
+
vec< 1, float, lowp > lowp_fvec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:426
+
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
+
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
+
vec< 1, u64, mediump > mediump_u64vec1
Medium qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:389
+
mat< 2, 2, f32, mediump > mediump_f32mat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:544
+
vec< 4, int, mediump > mediump_ivec4
4 components vector of medium qualifier signed integer numbers.
+
mat< 2, 4, float, highp > highp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
+
Definition: common.hpp:20
+
double mediump_f64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:164
+
vec< 1, float, mediump > mediump_fvec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:431
+
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
+
vec< 4, u8, highp > highp_u8vec4
High qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:337
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00036.html b/external/include/glm-0.9.9.8/doc/api/a00036.html index e1ea0eb613..e9fca8f807 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00036.html +++ b/external/include/glm-0.9.9.8/doc/api/a00036.html @@ -1,147 +1,147 @@ - - - - - - -0.9.9 API documentation: geometric.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
geometric.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the cross product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T dot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the dot product of x and y, i.e., result = x * y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > faceforward (vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
 If dot(Nref, I) < 0.0, return N, otherwise, return -N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length (vec< L, T, Q > const &x)
 Returns the length of x, i.e., sqrt(x * x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > normalize (vec< L, T, Q > const &x)
 Returns a vector in the same direction as x but with length of 1. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > reflect (vec< L, T, Q > const &I, vec< L, T, Q > const &N)
 For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > refract (vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: geometric.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
geometric.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the cross product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T dot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the dot product of x and y, i.e., result = x * y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > faceforward (vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
 If dot(Nref, I) < 0.0, return N, otherwise, return -N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length (vec< L, T, Q > const &x)
 Returns the length of x, i.e., sqrt(x * x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > normalize (vec< L, T, Q > const &x)
 Returns a vector in the same direction as x but with length of 1. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > reflect (vec< L, T, Q > const &I, vec< L, T, Q > const &N)
 For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > refract (vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00036_source.html b/external/include/glm-0.9.9.8/doc/api/a00036_source.html index 05ac17313d..2115bb4cb7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00036_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00036_source.html @@ -1,152 +1,152 @@ - - - - - - -0.9.9 API documentation: geometric.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
geometric.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "detail/type_vec3.hpp"
-
16 
-
17 namespace glm
-
18 {
-
21 
-
29  template<length_t L, typename T, qualifier Q>
-
30  GLM_FUNC_DECL T length(vec<L, T, Q> const& x);
-
31 
-
39  template<length_t L, typename T, qualifier Q>
-
40  GLM_FUNC_DECL T distance(vec<L, T, Q> const& p0, vec<L, T, Q> const& p1);
-
41 
-
49  template<length_t L, typename T, qualifier Q>
-
50  GLM_FUNC_DECL T dot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
51 
-
58  template<typename T, qualifier Q>
-
59  GLM_FUNC_DECL vec<3, T, Q> cross(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
-
60 
-
69  template<length_t L, typename T, qualifier Q>
-
70  GLM_FUNC_DECL vec<L, T, Q> normalize(vec<L, T, Q> const& x);
-
71 
-
79  template<length_t L, typename T, qualifier Q>
-
80  GLM_FUNC_DECL vec<L, T, Q> faceforward(
-
81  vec<L, T, Q> const& N,
-
82  vec<L, T, Q> const& I,
-
83  vec<L, T, Q> const& Nref);
-
84 
-
93  template<length_t L, typename T, qualifier Q>
-
94  GLM_FUNC_DECL vec<L, T, Q> reflect(
-
95  vec<L, T, Q> const& I,
-
96  vec<L, T, Q> const& N);
-
97 
-
107  template<length_t L, typename T, qualifier Q>
-
108  GLM_FUNC_DECL vec<L, T, Q> refract(
-
109  vec<L, T, Q> const& I,
-
110  vec<L, T, Q> const& N,
-
111  T eta);
-
112 
-
114 }//namespace glm
-
115 
-
116 #include "detail/func_geometric.inl"
-
GLM_FUNC_DECL vec< L, T, Q > reflect(vec< L, T, Q > const &I, vec< L, T, Q > const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
-
GLM_FUNC_DECL vec< L, T, Q > faceforward(vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
If dot(Nref, I) < 0.0, return N, otherwise, return -N.
-
GLM_FUNC_DECL T length(vec< L, T, Q > const &x)
Returns the length of x, i.e., sqrt(x * x).
-
GLM_FUNC_DECL vec< 3, T, Q > cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
Returns the cross product of x and y.
-
GLM_FUNC_DECL vec< L, T, Q > refract(vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
-
GLM_FUNC_DECL vec< L, T, Q > normalize(vec< L, T, Q > const &x)
Returns a vector in the same direction as x but with length of 1.
-
Core features
-
GLM_FUNC_DECL T distance(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
-
GLM_FUNC_DECL T dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the dot product of x and y, i.e., result = x * y.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: geometric.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
geometric.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "detail/type_vec3.hpp"
+
16 
+
17 namespace glm
+
18 {
+
21 
+
29  template<length_t L, typename T, qualifier Q>
+
30  GLM_FUNC_DECL T length(vec<L, T, Q> const& x);
+
31 
+
39  template<length_t L, typename T, qualifier Q>
+
40  GLM_FUNC_DECL T distance(vec<L, T, Q> const& p0, vec<L, T, Q> const& p1);
+
41 
+
49  template<length_t L, typename T, qualifier Q>
+
50  GLM_FUNC_DECL T dot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
51 
+
58  template<typename T, qualifier Q>
+
59  GLM_FUNC_DECL vec<3, T, Q> cross(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
+
60 
+
69  template<length_t L, typename T, qualifier Q>
+
70  GLM_FUNC_DECL vec<L, T, Q> normalize(vec<L, T, Q> const& x);
+
71 
+
79  template<length_t L, typename T, qualifier Q>
+
80  GLM_FUNC_DECL vec<L, T, Q> faceforward(
+
81  vec<L, T, Q> const& N,
+
82  vec<L, T, Q> const& I,
+
83  vec<L, T, Q> const& Nref);
+
84 
+
93  template<length_t L, typename T, qualifier Q>
+
94  GLM_FUNC_DECL vec<L, T, Q> reflect(
+
95  vec<L, T, Q> const& I,
+
96  vec<L, T, Q> const& N);
+
97 
+
107  template<length_t L, typename T, qualifier Q>
+
108  GLM_FUNC_DECL vec<L, T, Q> refract(
+
109  vec<L, T, Q> const& I,
+
110  vec<L, T, Q> const& N,
+
111  T eta);
+
112 
+
114 }//namespace glm
+
115 
+
116 #include "detail/func_geometric.inl"
+
GLM_FUNC_DECL vec< L, T, Q > reflect(vec< L, T, Q > const &I, vec< L, T, Q > const &N)
For the incident vector I and surface orientation N, returns the reflection direction : result = I - ...
+
GLM_FUNC_DECL vec< L, T, Q > faceforward(vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
If dot(Nref, I) < 0.0, return N, otherwise, return -N.
+
GLM_FUNC_DECL T length(vec< L, T, Q > const &x)
Returns the length of x, i.e., sqrt(x * x).
+
GLM_FUNC_DECL vec< 3, T, Q > cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
Returns the cross product of x and y.
+
GLM_FUNC_DECL vec< L, T, Q > refract(vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
For the incident vector I and surface normal N, and the ratio of indices of refraction eta...
+
GLM_FUNC_DECL vec< L, T, Q > normalize(vec< L, T, Q > const &x)
Returns a vector in the same direction as x but with length of 1.
+
Core features
+
GLM_FUNC_DECL T distance(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
+
GLM_FUNC_DECL T dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the dot product of x and y, i.e., result = x * y.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00037.html b/external/include/glm-0.9.9.8/doc/api/a00037.html index dae8e8fca8..b1a7039b3d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00037.html +++ b/external/include/glm-0.9.9.8/doc/api/a00037.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: glm.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
glm.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file glm.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: glm.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glm.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file glm.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00037_source.html b/external/include/glm-0.9.9.8/doc/api/a00037_source.html index fc0aec0bb7..775648f23b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00037_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00037_source.html @@ -1,154 +1,154 @@ - - - - - - -0.9.9 API documentation: glm.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
glm.hpp
-
-
-Go to the documentation of this file.
1 
-
103 #include "detail/_fixes.hpp"
-
104 
-
105 #include "detail/setup.hpp"
-
106 
-
107 #pragma once
-
108 
-
109 #include <cmath>
-
110 #include <climits>
-
111 #include <cfloat>
-
112 #include <limits>
-
113 #include <cassert>
-
114 #include "fwd.hpp"
-
115 
-
116 #include "vec2.hpp"
-
117 #include "vec3.hpp"
-
118 #include "vec4.hpp"
-
119 #include "mat2x2.hpp"
-
120 #include "mat2x3.hpp"
-
121 #include "mat2x4.hpp"
-
122 #include "mat3x2.hpp"
-
123 #include "mat3x3.hpp"
-
124 #include "mat3x4.hpp"
-
125 #include "mat4x2.hpp"
-
126 #include "mat4x3.hpp"
-
127 #include "mat4x4.hpp"
-
128 
-
129 #include "trigonometric.hpp"
-
130 #include "exponential.hpp"
-
131 #include "common.hpp"
-
132 #include "packing.hpp"
-
133 #include "geometric.hpp"
-
134 #include "matrix.hpp"
-
135 #include "vector_relational.hpp"
-
136 #include "integer.hpp"
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
Core features
-
- - - - + + + + + + +0.9.9 API documentation: glm.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
glm.hpp
+
+
+Go to the documentation of this file.
1 
+
103 #include "detail/_fixes.hpp"
+
104 
+
105 #include "detail/setup.hpp"
+
106 
+
107 #pragma once
+
108 
+
109 #include <cmath>
+
110 #include <climits>
+
111 #include <cfloat>
+
112 #include <limits>
+
113 #include <cassert>
+
114 #include "fwd.hpp"
+
115 
+
116 #include "vec2.hpp"
+
117 #include "vec3.hpp"
+
118 #include "vec4.hpp"
+
119 #include "mat2x2.hpp"
+
120 #include "mat2x3.hpp"
+
121 #include "mat2x4.hpp"
+
122 #include "mat3x2.hpp"
+
123 #include "mat3x3.hpp"
+
124 #include "mat3x4.hpp"
+
125 #include "mat4x2.hpp"
+
126 #include "mat4x3.hpp"
+
127 #include "mat4x4.hpp"
+
128 
+
129 #include "trigonometric.hpp"
+
130 #include "exponential.hpp"
+
131 #include "common.hpp"
+
132 #include "packing.hpp"
+
133 #include "geometric.hpp"
+
134 #include "matrix.hpp"
+
135 #include "vector_relational.hpp"
+
136 #include "integer.hpp"
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
Core features
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00038.html b/external/include/glm-0.9.9.8/doc/api/a00038.html index 102d6babdc..9854848ca9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00038.html +++ b/external/include/glm-0.9.9.8/doc/api/a00038.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: gradient_paint.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gradient_paint.hpp File Reference
-
-
- -

GLM_GTX_gradient_paint -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T linearGradient (vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
 Return a color from a linear gradient. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T radialGradient (vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
 Return a color from a radial gradient. More...
 
-

Detailed Description

-

GLM_GTX_gradient_paint

-
See also
Core features (dependence)
-
-GLM_GTX_optimum_pow (dependence)
- -

Definition in file gradient_paint.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: gradient_paint.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gradient_paint.hpp File Reference
+
+
+ +

GLM_GTX_gradient_paint +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T linearGradient (vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
 Return a color from a linear gradient. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T radialGradient (vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
 Return a color from a radial gradient. More...
 
+

Detailed Description

+

GLM_GTX_gradient_paint

+
See also
Core features (dependence)
+
+GLM_GTX_optimum_pow (dependence)
+ +

Definition in file gradient_paint.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00038_source.html b/external/include/glm-0.9.9.8/doc/api/a00038_source.html index b9cd951d64..0e82da1461 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00038_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00038_source.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: gradient_paint.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gradient_paint.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include "../gtx/optimum_pow.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<typename T, qualifier Q>
-
36  GLM_FUNC_DECL T radialGradient(
-
37  vec<2, T, Q> const& Center,
-
38  T const& Radius,
-
39  vec<2, T, Q> const& Focal,
-
40  vec<2, T, Q> const& Position);
-
41 
-
44  template<typename T, qualifier Q>
-
45  GLM_FUNC_DECL T linearGradient(
-
46  vec<2, T, Q> const& Point0,
-
47  vec<2, T, Q> const& Point1,
-
48  vec<2, T, Q> const& Position);
-
49 
-
51 }// namespace glm
-
52 
-
53 #include "gradient_paint.inl"
-
GLM_FUNC_DECL T radialGradient(vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
Return a color from a radial gradient.
-
GLM_FUNC_DECL T linearGradient(vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
Return a color from a linear gradient.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: gradient_paint.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gradient_paint.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include "../gtx/optimum_pow.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_gradient_paint extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<typename T, qualifier Q>
+
36  GLM_FUNC_DECL T radialGradient(
+
37  vec<2, T, Q> const& Center,
+
38  T const& Radius,
+
39  vec<2, T, Q> const& Focal,
+
40  vec<2, T, Q> const& Position);
+
41 
+
44  template<typename T, qualifier Q>
+
45  GLM_FUNC_DECL T linearGradient(
+
46  vec<2, T, Q> const& Point0,
+
47  vec<2, T, Q> const& Point1,
+
48  vec<2, T, Q> const& Position);
+
49 
+
51 }// namespace glm
+
52 
+
53 #include "gradient_paint.inl"
+
GLM_FUNC_DECL T radialGradient(vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
Return a color from a radial gradient.
+
GLM_FUNC_DECL T linearGradient(vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
Return a color from a linear gradient.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00039.html b/external/include/glm-0.9.9.8/doc/api/a00039.html index 20125a75d4..9959600bcb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00039.html +++ b/external/include/glm-0.9.9.8/doc/api/a00039.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: handed_coordinate_space.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
handed_coordinate_space.hpp File Reference
-
-
- -

GLM_GTX_handed_coordinate_space -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool leftHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron left handed or not. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool rightHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron right handed or not. More...
 
-

Detailed Description

-

GLM_GTX_handed_coordinate_space

-
See also
Core features (dependence)
- -

Definition in file handed_coordinate_space.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: handed_coordinate_space.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
handed_coordinate_space.hpp File Reference
+
+
+ +

GLM_GTX_handed_coordinate_space +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool leftHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron left handed or not. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool rightHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron right handed or not. More...
 
+

Detailed Description

+

GLM_GTX_handed_coordinate_space

+
See also
Core features (dependence)
+ +

Definition in file handed_coordinate_space.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00039_source.html b/external/include/glm-0.9.9.8/doc/api/a00039_source.html index db8a63ae86..aaf7013fa4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00039_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00039_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: handed_coordinate_space.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
handed_coordinate_space.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T, qualifier Q>
-
34  GLM_FUNC_DECL bool rightHanded(
-
35  vec<3, T, Q> const& tangent,
-
36  vec<3, T, Q> const& binormal,
-
37  vec<3, T, Q> const& normal);
-
38 
-
41  template<typename T, qualifier Q>
-
42  GLM_FUNC_DECL bool leftHanded(
-
43  vec<3, T, Q> const& tangent,
-
44  vec<3, T, Q> const& binormal,
-
45  vec<3, T, Q> const& normal);
-
46 
-
48 }// namespace glm
-
49 
-
50 #include "handed_coordinate_space.inl"
-
GLM_FUNC_DECL bool leftHanded(vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
Return if a trihedron left handed or not.
-
GLM_FUNC_DECL bool rightHanded(vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
Return if a trihedron right handed or not.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: handed_coordinate_space.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
handed_coordinate_space.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T, qualifier Q>
+
34  GLM_FUNC_DECL bool rightHanded(
+
35  vec<3, T, Q> const& tangent,
+
36  vec<3, T, Q> const& binormal,
+
37  vec<3, T, Q> const& normal);
+
38 
+
41  template<typename T, qualifier Q>
+
42  GLM_FUNC_DECL bool leftHanded(
+
43  vec<3, T, Q> const& tangent,
+
44  vec<3, T, Q> const& binormal,
+
45  vec<3, T, Q> const& normal);
+
46 
+
48 }// namespace glm
+
49 
+
50 #include "handed_coordinate_space.inl"
+
GLM_FUNC_DECL bool leftHanded(vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
Return if a trihedron left handed or not.
+
GLM_FUNC_DECL bool rightHanded(vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
Return if a trihedron right handed or not.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00040.html b/external/include/glm-0.9.9.8/doc/api/a00040.html index bf8a3027cc..ba2c95e1cf 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00040.html +++ b/external/include/glm-0.9.9.8/doc/api/a00040.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: hash.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
hash.hpp File Reference
-
-
- -

GLM_GTX_hash -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTX_hash

-
See also
Core features (dependence)
- -

Definition in file hash.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: hash.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
hash.hpp File Reference
+
+
+ +

GLM_GTX_hash +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTX_hash

+
See also
Core features (dependence)
+ +

Definition in file hash.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00040_source.html b/external/include/glm-0.9.9.8/doc/api/a00040_source.html index 23f049b985..14bcfe6ad0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00040_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00040_source.html @@ -1,232 +1,232 @@ - - - - - - -0.9.9 API documentation: hash.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
hash.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
16 # ifndef GLM_ENABLE_EXPERIMENTAL
-
17 # pragma message("GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
18 # else
-
19 # pragma message("GLM: GLM_GTX_hash extension included")
-
20 # endif
-
21 #endif
-
22 
-
23 #include <functional>
-
24 
-
25 #include "../vec2.hpp"
-
26 #include "../vec3.hpp"
-
27 #include "../vec4.hpp"
-
28 #include "../gtc/vec1.hpp"
-
29 
-
30 #include "../gtc/quaternion.hpp"
-
31 #include "../gtx/dual_quaternion.hpp"
-
32 
-
33 #include "../mat2x2.hpp"
-
34 #include "../mat2x3.hpp"
-
35 #include "../mat2x4.hpp"
-
36 
-
37 #include "../mat3x2.hpp"
-
38 #include "../mat3x3.hpp"
-
39 #include "../mat3x4.hpp"
-
40 
-
41 #include "../mat4x2.hpp"
-
42 #include "../mat4x3.hpp"
-
43 #include "../mat4x4.hpp"
-
44 
-
45 #if !GLM_HAS_CXX11_STL
-
46 # error "GLM_GTX_hash requires C++11 standard library support"
-
47 #endif
-
48 
-
49 namespace std
-
50 {
-
51  template<typename T, glm::qualifier Q>
-
52  struct hash<glm::vec<1, T,Q> >
-
53  {
-
54  GLM_FUNC_DECL size_t operator()(glm::vec<1, T, Q> const& v) const;
-
55  };
-
56 
-
57  template<typename T, glm::qualifier Q>
-
58  struct hash<glm::vec<2, T,Q> >
-
59  {
-
60  GLM_FUNC_DECL size_t operator()(glm::vec<2, T, Q> const& v) const;
-
61  };
-
62 
-
63  template<typename T, glm::qualifier Q>
-
64  struct hash<glm::vec<3, T,Q> >
-
65  {
-
66  GLM_FUNC_DECL size_t operator()(glm::vec<3, T, Q> const& v) const;
-
67  };
-
68 
-
69  template<typename T, glm::qualifier Q>
-
70  struct hash<glm::vec<4, T,Q> >
-
71  {
-
72  GLM_FUNC_DECL size_t operator()(glm::vec<4, T, Q> const& v) const;
-
73  };
-
74 
-
75  template<typename T, glm::qualifier Q>
-
76  struct hash<glm::qua<T,Q>>
-
77  {
-
78  GLM_FUNC_DECL size_t operator()(glm::qua<T, Q> const& q) const;
-
79  };
-
80 
-
81  template<typename T, glm::qualifier Q>
-
82  struct hash<glm::tdualquat<T,Q> >
-
83  {
-
84  GLM_FUNC_DECL size_t operator()(glm::tdualquat<T,Q> const& q) const;
-
85  };
-
86 
-
87  template<typename T, glm::qualifier Q>
-
88  struct hash<glm::mat<2, 2, T,Q> >
-
89  {
-
90  GLM_FUNC_DECL size_t operator()(glm::mat<2, 2, T,Q> const& m) const;
-
91  };
-
92 
-
93  template<typename T, glm::qualifier Q>
-
94  struct hash<glm::mat<2, 3, T,Q> >
-
95  {
-
96  GLM_FUNC_DECL size_t operator()(glm::mat<2, 3, T,Q> const& m) const;
-
97  };
-
98 
-
99  template<typename T, glm::qualifier Q>
-
100  struct hash<glm::mat<2, 4, T,Q> >
-
101  {
-
102  GLM_FUNC_DECL size_t operator()(glm::mat<2, 4, T,Q> const& m) const;
-
103  };
-
104 
-
105  template<typename T, glm::qualifier Q>
-
106  struct hash<glm::mat<3, 2, T,Q> >
-
107  {
-
108  GLM_FUNC_DECL size_t operator()(glm::mat<3, 2, T,Q> const& m) const;
-
109  };
-
110 
-
111  template<typename T, glm::qualifier Q>
-
112  struct hash<glm::mat<3, 3, T,Q> >
-
113  {
-
114  GLM_FUNC_DECL size_t operator()(glm::mat<3, 3, T,Q> const& m) const;
-
115  };
-
116 
-
117  template<typename T, glm::qualifier Q>
-
118  struct hash<glm::mat<3, 4, T,Q> >
-
119  {
-
120  GLM_FUNC_DECL size_t operator()(glm::mat<3, 4, T,Q> const& m) const;
-
121  };
-
122 
-
123  template<typename T, glm::qualifier Q>
-
124  struct hash<glm::mat<4, 2, T,Q> >
-
125  {
-
126  GLM_FUNC_DECL size_t operator()(glm::mat<4, 2, T,Q> const& m) const;
-
127  };
-
128 
-
129  template<typename T, glm::qualifier Q>
-
130  struct hash<glm::mat<4, 3, T,Q> >
-
131  {
-
132  GLM_FUNC_DECL size_t operator()(glm::mat<4, 3, T,Q> const& m) const;
-
133  };
-
134 
-
135  template<typename T, glm::qualifier Q>
-
136  struct hash<glm::mat<4, 4, T,Q> >
-
137  {
-
138  GLM_FUNC_DECL size_t operator()(glm::mat<4, 4, T,Q> const& m) const;
-
139  };
-
140 } // namespace std
-
141 
-
142 #include "hash.inl"
-
Definition: hash.hpp:49
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: hash.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
hash.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
16 # ifndef GLM_ENABLE_EXPERIMENTAL
+
17 # pragma message("GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
18 # else
+
19 # pragma message("GLM: GLM_GTX_hash extension included")
+
20 # endif
+
21 #endif
+
22 
+
23 #include <functional>
+
24 
+
25 #include "../vec2.hpp"
+
26 #include "../vec3.hpp"
+
27 #include "../vec4.hpp"
+
28 #include "../gtc/vec1.hpp"
+
29 
+
30 #include "../gtc/quaternion.hpp"
+
31 #include "../gtx/dual_quaternion.hpp"
+
32 
+
33 #include "../mat2x2.hpp"
+
34 #include "../mat2x3.hpp"
+
35 #include "../mat2x4.hpp"
+
36 
+
37 #include "../mat3x2.hpp"
+
38 #include "../mat3x3.hpp"
+
39 #include "../mat3x4.hpp"
+
40 
+
41 #include "../mat4x2.hpp"
+
42 #include "../mat4x3.hpp"
+
43 #include "../mat4x4.hpp"
+
44 
+
45 #if !GLM_HAS_CXX11_STL
+
46 # error "GLM_GTX_hash requires C++11 standard library support"
+
47 #endif
+
48 
+
49 namespace std
+
50 {
+
51  template<typename T, glm::qualifier Q>
+
52  struct hash<glm::vec<1, T,Q> >
+
53  {
+
54  GLM_FUNC_DECL size_t operator()(glm::vec<1, T, Q> const& v) const;
+
55  };
+
56 
+
57  template<typename T, glm::qualifier Q>
+
58  struct hash<glm::vec<2, T,Q> >
+
59  {
+
60  GLM_FUNC_DECL size_t operator()(glm::vec<2, T, Q> const& v) const;
+
61  };
+
62 
+
63  template<typename T, glm::qualifier Q>
+
64  struct hash<glm::vec<3, T,Q> >
+
65  {
+
66  GLM_FUNC_DECL size_t operator()(glm::vec<3, T, Q> const& v) const;
+
67  };
+
68 
+
69  template<typename T, glm::qualifier Q>
+
70  struct hash<glm::vec<4, T,Q> >
+
71  {
+
72  GLM_FUNC_DECL size_t operator()(glm::vec<4, T, Q> const& v) const;
+
73  };
+
74 
+
75  template<typename T, glm::qualifier Q>
+
76  struct hash<glm::qua<T,Q>>
+
77  {
+
78  GLM_FUNC_DECL size_t operator()(glm::qua<T, Q> const& q) const;
+
79  };
+
80 
+
81  template<typename T, glm::qualifier Q>
+
82  struct hash<glm::tdualquat<T,Q> >
+
83  {
+
84  GLM_FUNC_DECL size_t operator()(glm::tdualquat<T,Q> const& q) const;
+
85  };
+
86 
+
87  template<typename T, glm::qualifier Q>
+
88  struct hash<glm::mat<2, 2, T,Q> >
+
89  {
+
90  GLM_FUNC_DECL size_t operator()(glm::mat<2, 2, T,Q> const& m) const;
+
91  };
+
92 
+
93  template<typename T, glm::qualifier Q>
+
94  struct hash<glm::mat<2, 3, T,Q> >
+
95  {
+
96  GLM_FUNC_DECL size_t operator()(glm::mat<2, 3, T,Q> const& m) const;
+
97  };
+
98 
+
99  template<typename T, glm::qualifier Q>
+
100  struct hash<glm::mat<2, 4, T,Q> >
+
101  {
+
102  GLM_FUNC_DECL size_t operator()(glm::mat<2, 4, T,Q> const& m) const;
+
103  };
+
104 
+
105  template<typename T, glm::qualifier Q>
+
106  struct hash<glm::mat<3, 2, T,Q> >
+
107  {
+
108  GLM_FUNC_DECL size_t operator()(glm::mat<3, 2, T,Q> const& m) const;
+
109  };
+
110 
+
111  template<typename T, glm::qualifier Q>
+
112  struct hash<glm::mat<3, 3, T,Q> >
+
113  {
+
114  GLM_FUNC_DECL size_t operator()(glm::mat<3, 3, T,Q> const& m) const;
+
115  };
+
116 
+
117  template<typename T, glm::qualifier Q>
+
118  struct hash<glm::mat<3, 4, T,Q> >
+
119  {
+
120  GLM_FUNC_DECL size_t operator()(glm::mat<3, 4, T,Q> const& m) const;
+
121  };
+
122 
+
123  template<typename T, glm::qualifier Q>
+
124  struct hash<glm::mat<4, 2, T,Q> >
+
125  {
+
126  GLM_FUNC_DECL size_t operator()(glm::mat<4, 2, T,Q> const& m) const;
+
127  };
+
128 
+
129  template<typename T, glm::qualifier Q>
+
130  struct hash<glm::mat<4, 3, T,Q> >
+
131  {
+
132  GLM_FUNC_DECL size_t operator()(glm::mat<4, 3, T,Q> const& m) const;
+
133  };
+
134 
+
135  template<typename T, glm::qualifier Q>
+
136  struct hash<glm::mat<4, 4, T,Q> >
+
137  {
+
138  GLM_FUNC_DECL size_t operator()(glm::mat<4, 4, T,Q> const& m) const;
+
139  };
+
140 } // namespace std
+
141 
+
142 #include "hash.inl"
+
Definition: hash.hpp:49
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00041.html b/external/include/glm-0.9.9.8/doc/api/a00041.html index 8c68a76d51..2996ba259a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00041.html +++ b/external/include/glm-0.9.9.8/doc/api/a00041.html @@ -1,129 +1,129 @@ - - - - - - -0.9.9 API documentation: integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtc/integer.hpp File Reference
-
-
- -

GLM_GTC_integer -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > iround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 Returns the log2 of x for integer values. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
-

Detailed Description

-

GLM_GTC_integer

-
See also
Core features (dependence)
-
-GLM_GTC_integer (dependence)
- -

Definition in file gtc/integer.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtc/integer.hpp File Reference
+
+
+ +

GLM_GTC_integer +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > iround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 Returns the log2 of x for integer values. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
+

Detailed Description

+

GLM_GTC_integer

+
See also
Core features (dependence)
+
+GLM_GTC_integer (dependence)
+ +

Definition in file gtc/integer.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00041_source.html b/external/include/glm-0.9.9.8/doc/api/a00041_source.html index 0c5af7c40b..ac897205de 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00041_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00041_source.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/integer.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 #include "../common.hpp"
-
20 #include "../integer.hpp"
-
21 #include "../exponential.hpp"
-
22 #include <limits>
-
23 
-
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
25 # pragma message("GLM: GLM_GTC_integer extension included")
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<typename genIUType>
-
36  GLM_FUNC_DECL genIUType log2(genIUType x);
-
37 
-
47  template<length_t L, typename T, qualifier Q>
-
48  GLM_FUNC_DECL vec<L, int, Q> iround(vec<L, T, Q> const& x);
-
49 
-
59  template<length_t L, typename T, qualifier Q>
-
60  GLM_FUNC_DECL vec<L, uint, Q> uround(vec<L, T, Q> const& x);
-
61 
-
63 } //namespace glm
-
64 
-
65 #include "integer.inl"
-
GLM_FUNC_DECL vec< L, uint, Q > uround(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
-
GLM_FUNC_DECL genIUType log2(genIUType x)
Returns the log2 of x for integer values.
-
GLM_FUNC_DECL vec< L, int, Q > iround(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/integer.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 #include "../common.hpp"
+
20 #include "../integer.hpp"
+
21 #include "../exponential.hpp"
+
22 #include <limits>
+
23 
+
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
25 # pragma message("GLM: GLM_GTC_integer extension included")
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<typename genIUType>
+
36  GLM_FUNC_DECL genIUType log2(genIUType x);
+
37 
+
47  template<length_t L, typename T, qualifier Q>
+
48  GLM_FUNC_DECL vec<L, int, Q> iround(vec<L, T, Q> const& x);
+
49 
+
59  template<length_t L, typename T, qualifier Q>
+
60  GLM_FUNC_DECL vec<L, uint, Q> uround(vec<L, T, Q> const& x);
+
61 
+
63 } //namespace glm
+
64 
+
65 #include "integer.inl"
+
GLM_FUNC_DECL vec< L, uint, Q > uround(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
+
GLM_FUNC_DECL genIUType log2(genIUType x)
Returns the log2 of x for integer values.
+
GLM_FUNC_DECL vec< L, int, Q > iround(vec< L, T, Q > const &x)
Returns a value equal to the nearest integer to x.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00042.html b/external/include/glm-0.9.9.8/doc/api/a00042.html index 773d76d541..8779f988b9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00042.html +++ b/external/include/glm-0.9.9.8/doc/api/a00042.html @@ -1,150 +1,150 @@ - - - - - - -0.9.9 API documentation: integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtx/integer.hpp File Reference
-
-
- -

GLM_GTX_integer -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef signed int sint
 32bit signed integer. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. More...
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 Returns the floor log2 of x. More...
 
GLM_FUNC_DECL int mod (int x, int y)
 Modulus. More...
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 Modulus. More...
 
GLM_FUNC_DECL uint nlz (uint x)
 Returns the number of leading zeros. More...
 
GLM_FUNC_DECL int pow (int x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL int sqrt (int x)
 Returns the positive square root of x. More...
 
GLM_FUNC_DECL uint sqrt (uint x)
 Returns the positive square root of x. More...
 
-

Detailed Description

-

GLM_GTX_integer

-
See also
Core features (dependence)
- -

Definition in file gtx/integer.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtx/integer.hpp File Reference
+
+
+ +

GLM_GTX_integer +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef signed int sint
 32bit signed integer. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. More...
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 Returns the floor log2 of x. More...
 
GLM_FUNC_DECL int mod (int x, int y)
 Modulus. More...
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 Modulus. More...
 
GLM_FUNC_DECL uint nlz (uint x)
 Returns the number of leading zeros. More...
 
GLM_FUNC_DECL int pow (int x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL int sqrt (int x)
 Returns the positive square root of x. More...
 
GLM_FUNC_DECL uint sqrt (uint x)
 Returns the positive square root of x. More...
 
+

Detailed Description

+

GLM_GTX_integer

+
See also
Core features (dependence)
+ +

Definition in file gtx/integer.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00042_source.html b/external/include/glm-0.9.9.8/doc/api/a00042_source.html index 28f5995367..9093e881b5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00042_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00042_source.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/integer.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include "../gtc/integer.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_integer extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  GLM_FUNC_DECL int pow(int x, uint y);
-
35 
-
38  GLM_FUNC_DECL int sqrt(int x);
-
39 
-
42  GLM_FUNC_DECL unsigned int floor_log2(unsigned int x);
-
43 
-
46  GLM_FUNC_DECL int mod(int x, int y);
-
47 
-
50  template<typename genType>
-
51  GLM_FUNC_DECL genType factorial(genType const& x);
-
52 
-
55  typedef signed int sint;
-
56 
-
59  GLM_FUNC_DECL uint pow(uint x, uint y);
-
60 
-
63  GLM_FUNC_DECL uint sqrt(uint x);
-
64 
-
67  GLM_FUNC_DECL uint mod(uint x, uint y);
-
68 
-
71  GLM_FUNC_DECL uint nlz(uint x);
-
72 
-
74 }//namespace glm
-
75 
-
76 #include "integer.inl"
-
GLM_FUNC_DECL uint nlz(uint x)
Returns the number of leading zeros.
-
GLM_FUNC_DECL uint mod(uint x, uint y)
Modulus.
-
GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)
Returns the floor log2 of x.
-
signed int sint
32bit signed integer.
Definition: gtx/integer.hpp:55
-
GLM_FUNC_DECL genType factorial(genType const &x)
Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...
-
GLM_FUNC_DECL uint pow(uint x, uint y)
Returns x raised to the y power.
-
GLM_FUNC_DECL uint sqrt(uint x)
Returns the positive square root of x.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/integer.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include "../gtc/integer.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_integer extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  GLM_FUNC_DECL int pow(int x, uint y);
+
35 
+
38  GLM_FUNC_DECL int sqrt(int x);
+
39 
+
42  GLM_FUNC_DECL unsigned int floor_log2(unsigned int x);
+
43 
+
46  GLM_FUNC_DECL int mod(int x, int y);
+
47 
+
50  template<typename genType>
+
51  GLM_FUNC_DECL genType factorial(genType const& x);
+
52 
+
55  typedef signed int sint;
+
56 
+
59  GLM_FUNC_DECL uint pow(uint x, uint y);
+
60 
+
63  GLM_FUNC_DECL uint sqrt(uint x);
+
64 
+
67  GLM_FUNC_DECL uint mod(uint x, uint y);
+
68 
+
71  GLM_FUNC_DECL uint nlz(uint x);
+
72 
+
74 }//namespace glm
+
75 
+
76 #include "integer.inl"
+
GLM_FUNC_DECL uint nlz(uint x)
Returns the number of leading zeros.
+
GLM_FUNC_DECL uint mod(uint x, uint y)
Modulus.
+
GLM_FUNC_DECL unsigned int floor_log2(unsigned int x)
Returns the floor log2 of x.
+
signed int sint
32bit signed integer.
Definition: gtx/integer.hpp:55
+
GLM_FUNC_DECL genType factorial(genType const &x)
Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension...
+
GLM_FUNC_DECL uint pow(uint x, uint y)
Returns x raised to the y power.
+
GLM_FUNC_DECL uint sqrt(uint x)
Returns the positive square root of x.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00043.html b/external/include/glm-0.9.9.8/doc/api/a00043.html index 58e2ddbc1c..02da2db62f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00043.html +++ b/external/include/glm-0.9.9.8/doc/api/a00043.html @@ -1,167 +1,167 @@ - - - - - - -0.9.9 API documentation: integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
integer.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > bitCount (vec< L, T, Q > const &v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract (vec< L, T, Q > const &Value, int Offset, int Bits)
 Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert (vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
 Returns the insertion the bits least-significant bits of insert into base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse (vec< L, T, Q > const &v)
 Returns the reversal of the bits of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findLSB (vec< L, T, Q > const &v)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findMSB (vec< L, T, Q > const &v)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void imulExtended (vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
 Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void umulExtended (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
 Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
integer.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > bitCount (vec< L, T, Q > const &v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract (vec< L, T, Q > const &Value, int Offset, int Bits)
 Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert (vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
 Returns the insertion the bits least-significant bits of insert into base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse (vec< L, T, Q > const &v)
 Returns the reversal of the bits of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findLSB (vec< L, T, Q > const &v)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findMSB (vec< L, T, Q > const &v)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void imulExtended (vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
 Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void umulExtended (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
 Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00043_source.html b/external/include/glm-0.9.9.8/doc/api/a00043_source.html index 7f01223028..675e0f0c82 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00043_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00043_source.html @@ -1,185 +1,185 @@ - - - - - - -0.9.9 API documentation: integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
integer.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 #include "detail/qualifier.hpp"
-
20 #include "common.hpp"
-
21 #include "vector_relational.hpp"
-
22 
-
23 namespace glm
-
24 {
-
27 
-
36  template<length_t L, qualifier Q>
-
37  GLM_FUNC_DECL vec<L, uint, Q> uaddCarry(
-
38  vec<L, uint, Q> const& x,
-
39  vec<L, uint, Q> const& y,
-
40  vec<L, uint, Q> & carry);
-
41 
-
50  template<length_t L, qualifier Q>
-
51  GLM_FUNC_DECL vec<L, uint, Q> usubBorrow(
-
52  vec<L, uint, Q> const& x,
-
53  vec<L, uint, Q> const& y,
-
54  vec<L, uint, Q> & borrow);
-
55 
-
64  template<length_t L, qualifier Q>
-
65  GLM_FUNC_DECL void umulExtended(
-
66  vec<L, uint, Q> const& x,
-
67  vec<L, uint, Q> const& y,
-
68  vec<L, uint, Q> & msb,
-
69  vec<L, uint, Q> & lsb);
-
70 
-
79  template<length_t L, qualifier Q>
-
80  GLM_FUNC_DECL void imulExtended(
-
81  vec<L, int, Q> const& x,
-
82  vec<L, int, Q> const& y,
-
83  vec<L, int, Q> & msb,
-
84  vec<L, int, Q> & lsb);
-
85 
-
102  template<length_t L, typename T, qualifier Q>
-
103  GLM_FUNC_DECL vec<L, T, Q> bitfieldExtract(
-
104  vec<L, T, Q> const& Value,
-
105  int Offset,
-
106  int Bits);
-
107 
-
123  template<length_t L, typename T, qualifier Q>
-
124  GLM_FUNC_DECL vec<L, T, Q> bitfieldInsert(
-
125  vec<L, T, Q> const& Base,
-
126  vec<L, T, Q> const& Insert,
-
127  int Offset,
-
128  int Bits);
-
129 
-
139  template<length_t L, typename T, qualifier Q>
-
140  GLM_FUNC_DECL vec<L, T, Q> bitfieldReverse(vec<L, T, Q> const& v);
-
141 
-
148  template<typename genType>
-
149  GLM_FUNC_DECL int bitCount(genType v);
-
150 
-
158  template<length_t L, typename T, qualifier Q>
-
159  GLM_FUNC_DECL vec<L, int, Q> bitCount(vec<L, T, Q> const& v);
-
160 
-
169  template<typename genIUType>
-
170  GLM_FUNC_DECL int findLSB(genIUType x);
-
171 
-
181  template<length_t L, typename T, qualifier Q>
-
182  GLM_FUNC_DECL vec<L, int, Q> findLSB(vec<L, T, Q> const& v);
-
183 
-
193  template<typename genIUType>
-
194  GLM_FUNC_DECL int findMSB(genIUType x);
-
195 
-
206  template<length_t L, typename T, qualifier Q>
-
207  GLM_FUNC_DECL vec<L, int, Q> findMSB(vec<L, T, Q> const& v);
-
208 
-
210 }//namespace glm
-
211 
-
212 #include "detail/func_integer.inl"
-
Core features
-
GLM_FUNC_DECL vec< L, int, Q > findMSB(vec< L, T, Q > const &v)
Returns the bit number of the most significant bit in the binary representation of value...
-
GLM_FUNC_DECL void umulExtended(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL void imulExtended(vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
-
GLM_FUNC_DECL vec< L, int, Q > bitCount(vec< L, T, Q > const &v)
Returns the number of bits set to 1 in the binary representation of value.
-
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract(vec< L, T, Q > const &Value, int Offset, int Bits)
Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert(vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
Returns the insertion the bits least-significant bits of insert into base.
-
Core features
-
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse(vec< L, T, Q > const &v)
Returns the reversal of the bits of value.
-
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.
-
GLM_FUNC_DECL vec< L, int, Q > findLSB(vec< L, T, Q > const &v)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
integer.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 #include "detail/qualifier.hpp"
+
20 #include "common.hpp"
+
21 #include "vector_relational.hpp"
+
22 
+
23 namespace glm
+
24 {
+
27 
+
36  template<length_t L, qualifier Q>
+
37  GLM_FUNC_DECL vec<L, uint, Q> uaddCarry(
+
38  vec<L, uint, Q> const& x,
+
39  vec<L, uint, Q> const& y,
+
40  vec<L, uint, Q> & carry);
+
41 
+
50  template<length_t L, qualifier Q>
+
51  GLM_FUNC_DECL vec<L, uint, Q> usubBorrow(
+
52  vec<L, uint, Q> const& x,
+
53  vec<L, uint, Q> const& y,
+
54  vec<L, uint, Q> & borrow);
+
55 
+
64  template<length_t L, qualifier Q>
+
65  GLM_FUNC_DECL void umulExtended(
+
66  vec<L, uint, Q> const& x,
+
67  vec<L, uint, Q> const& y,
+
68  vec<L, uint, Q> & msb,
+
69  vec<L, uint, Q> & lsb);
+
70 
+
79  template<length_t L, qualifier Q>
+
80  GLM_FUNC_DECL void imulExtended(
+
81  vec<L, int, Q> const& x,
+
82  vec<L, int, Q> const& y,
+
83  vec<L, int, Q> & msb,
+
84  vec<L, int, Q> & lsb);
+
85 
+
102  template<length_t L, typename T, qualifier Q>
+
103  GLM_FUNC_DECL vec<L, T, Q> bitfieldExtract(
+
104  vec<L, T, Q> const& Value,
+
105  int Offset,
+
106  int Bits);
+
107 
+
123  template<length_t L, typename T, qualifier Q>
+
124  GLM_FUNC_DECL vec<L, T, Q> bitfieldInsert(
+
125  vec<L, T, Q> const& Base,
+
126  vec<L, T, Q> const& Insert,
+
127  int Offset,
+
128  int Bits);
+
129 
+
139  template<length_t L, typename T, qualifier Q>
+
140  GLM_FUNC_DECL vec<L, T, Q> bitfieldReverse(vec<L, T, Q> const& v);
+
141 
+
148  template<typename genType>
+
149  GLM_FUNC_DECL int bitCount(genType v);
+
150 
+
158  template<length_t L, typename T, qualifier Q>
+
159  GLM_FUNC_DECL vec<L, int, Q> bitCount(vec<L, T, Q> const& v);
+
160 
+
169  template<typename genIUType>
+
170  GLM_FUNC_DECL int findLSB(genIUType x);
+
171 
+
181  template<length_t L, typename T, qualifier Q>
+
182  GLM_FUNC_DECL vec<L, int, Q> findLSB(vec<L, T, Q> const& v);
+
183 
+
193  template<typename genIUType>
+
194  GLM_FUNC_DECL int findMSB(genIUType x);
+
195 
+
206  template<length_t L, typename T, qualifier Q>
+
207  GLM_FUNC_DECL vec<L, int, Q> findMSB(vec<L, T, Q> const& v);
+
208 
+
210 }//namespace glm
+
211 
+
212 #include "detail/func_integer.inl"
+
Core features
+
GLM_FUNC_DECL vec< L, int, Q > findMSB(vec< L, T, Q > const &v)
Returns the bit number of the most significant bit in the binary representation of value...
+
GLM_FUNC_DECL void umulExtended(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
+
GLM_FUNC_DECL void imulExtended(vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
Multiplies 32-bit integers x and y, producing a 64-bit result.
+
GLM_FUNC_DECL vec< L, int, Q > bitCount(vec< L, T, Q > const &v)
Returns the number of bits set to 1 in the binary representation of value.
+
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract(vec< L, T, Q > const &Value, int Offset, int Bits)
Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of...
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert(vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
Returns the insertion the bits least-significant bits of insert into base.
+
Core features
+
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse(vec< L, T, Q > const &v)
Returns the reversal of the bits of value.
+
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow(vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.
+
GLM_FUNC_DECL vec< L, int, Q > findLSB(vec< L, T, Q > const &v)
Returns the bit number of the least significant bit set to 1 in the binary representation of value...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00044.html b/external/include/glm-0.9.9.8/doc/api/a00044.html index 10c7b18cd5..393a1c8775 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00044.html +++ b/external/include/glm-0.9.9.8/doc/api/a00044.html @@ -1,141 +1,141 @@ - - - - - - -0.9.9 API documentation: intersect.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
intersect.hpp File Reference
-
-
- -

GLM_GTX_intersect -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 Compute the intersection of a line and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 Compute the intersection of a line and a triangle. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 Compute the intersection of a ray and a plane. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 Compute the intersection distance of a ray and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 Compute the intersection of a ray and a sphere. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool intersectRayTriangle (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
 Compute the intersection of a ray and a triangle. More...
 
-

Detailed Description

-

GLM_GTX_intersect

-
See also
Core features (dependence)
-
-GLM_GTX_closest_point (dependence)
- -

Definition in file intersect.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: intersect.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
intersect.hpp File Reference
+
+
+ +

GLM_GTX_intersect +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 Compute the intersection of a line and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 Compute the intersection of a line and a triangle. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 Compute the intersection of a ray and a plane. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 Compute the intersection distance of a ray and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 Compute the intersection of a ray and a sphere. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool intersectRayTriangle (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
 Compute the intersection of a ray and a triangle. More...
 
+

Detailed Description

+

GLM_GTX_intersect

+
See also
Core features (dependence)
+
+GLM_GTX_closest_point (dependence)
+ +

Definition in file intersect.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00044_source.html b/external/include/glm-0.9.9.8/doc/api/a00044_source.html index 492ad35abe..dd4a4fdc09 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00044_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00044_source.html @@ -1,168 +1,168 @@ - - - - - - -0.9.9 API documentation: intersect.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
intersect.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include <cfloat>
-
18 #include <limits>
-
19 #include "../glm.hpp"
-
20 #include "../geometric.hpp"
-
21 #include "../gtx/closest_point.hpp"
-
22 #include "../gtx/vector_query.hpp"
-
23 
-
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
25 # ifndef GLM_ENABLE_EXPERIMENTAL
-
26 # pragma message("GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
27 # else
-
28 # pragma message("GLM: GLM_GTX_closest_point extension included")
-
29 # endif
-
30 #endif
-
31 
-
32 namespace glm
-
33 {
-
36 
-
40  template<typename genType>
-
41  GLM_FUNC_DECL bool intersectRayPlane(
-
42  genType const& orig, genType const& dir,
-
43  genType const& planeOrig, genType const& planeNormal,
-
44  typename genType::value_type & intersectionDistance);
-
45 
-
49  template<typename T, qualifier Q>
-
50  GLM_FUNC_DECL bool intersectRayTriangle(
-
51  vec<3, T, Q> const& orig, vec<3, T, Q> const& dir,
-
52  vec<3, T, Q> const& v0, vec<3, T, Q> const& v1, vec<3, T, Q> const& v2,
-
53  vec<2, T, Q>& baryPosition, T& distance);
-
54 
-
57  template<typename genType>
-
58  GLM_FUNC_DECL bool intersectLineTriangle(
-
59  genType const& orig, genType const& dir,
-
60  genType const& vert0, genType const& vert1, genType const& vert2,
-
61  genType & position);
-
62 
-
66  template<typename genType>
-
67  GLM_FUNC_DECL bool intersectRaySphere(
-
68  genType const& rayStarting, genType const& rayNormalizedDirection,
-
69  genType const& sphereCenter, typename genType::value_type const sphereRadiusSquered,
-
70  typename genType::value_type & intersectionDistance);
-
71 
-
74  template<typename genType>
-
75  GLM_FUNC_DECL bool intersectRaySphere(
-
76  genType const& rayStarting, genType const& rayNormalizedDirection,
-
77  genType const& sphereCenter, const typename genType::value_type sphereRadius,
-
78  genType & intersectionPosition, genType & intersectionNormal);
-
79 
-
82  template<typename genType>
-
83  GLM_FUNC_DECL bool intersectLineSphere(
-
84  genType const& point0, genType const& point1,
-
85  genType const& sphereCenter, typename genType::value_type sphereRadius,
-
86  genType & intersectionPosition1, genType & intersectionNormal1,
-
87  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());
-
88 
-
90 }//namespace glm
-
91 
-
92 #include "intersect.inl"
-
GLM_FUNC_DECL bool intersectRayTriangle(vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
Compute the intersection of a ray and a triangle.
-
GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
Compute the intersection of a ray and a sphere.
-
GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
Compute the intersection of a ray and a plane.
-
GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
Compute the intersection of a line and a triangle.
-
GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
Compute the intersection of a line and a sphere.
-
GLM_FUNC_DECL T distance(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: intersect.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
intersect.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include <cfloat>
+
18 #include <limits>
+
19 #include "../glm.hpp"
+
20 #include "../geometric.hpp"
+
21 #include "../gtx/closest_point.hpp"
+
22 #include "../gtx/vector_query.hpp"
+
23 
+
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
25 # ifndef GLM_ENABLE_EXPERIMENTAL
+
26 # pragma message("GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
27 # else
+
28 # pragma message("GLM: GLM_GTX_closest_point extension included")
+
29 # endif
+
30 #endif
+
31 
+
32 namespace glm
+
33 {
+
36 
+
40  template<typename genType>
+
41  GLM_FUNC_DECL bool intersectRayPlane(
+
42  genType const& orig, genType const& dir,
+
43  genType const& planeOrig, genType const& planeNormal,
+
44  typename genType::value_type & intersectionDistance);
+
45 
+
49  template<typename T, qualifier Q>
+
50  GLM_FUNC_DECL bool intersectRayTriangle(
+
51  vec<3, T, Q> const& orig, vec<3, T, Q> const& dir,
+
52  vec<3, T, Q> const& v0, vec<3, T, Q> const& v1, vec<3, T, Q> const& v2,
+
53  vec<2, T, Q>& baryPosition, T& distance);
+
54 
+
57  template<typename genType>
+
58  GLM_FUNC_DECL bool intersectLineTriangle(
+
59  genType const& orig, genType const& dir,
+
60  genType const& vert0, genType const& vert1, genType const& vert2,
+
61  genType & position);
+
62 
+
66  template<typename genType>
+
67  GLM_FUNC_DECL bool intersectRaySphere(
+
68  genType const& rayStarting, genType const& rayNormalizedDirection,
+
69  genType const& sphereCenter, typename genType::value_type const sphereRadiusSquered,
+
70  typename genType::value_type & intersectionDistance);
+
71 
+
74  template<typename genType>
+
75  GLM_FUNC_DECL bool intersectRaySphere(
+
76  genType const& rayStarting, genType const& rayNormalizedDirection,
+
77  genType const& sphereCenter, const typename genType::value_type sphereRadius,
+
78  genType & intersectionPosition, genType & intersectionNormal);
+
79 
+
82  template<typename genType>
+
83  GLM_FUNC_DECL bool intersectLineSphere(
+
84  genType const& point0, genType const& point1,
+
85  genType const& sphereCenter, typename genType::value_type sphereRadius,
+
86  genType & intersectionPosition1, genType & intersectionNormal1,
+
87  genType & intersectionPosition2 = genType(), genType & intersectionNormal2 = genType());
+
88 
+
90 }//namespace glm
+
91 
+
92 #include "intersect.inl"
+
GLM_FUNC_DECL bool intersectRayTriangle(vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
Compute the intersection of a ray and a triangle.
+
GLM_FUNC_DECL bool intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
Compute the intersection of a ray and a sphere.
+
GLM_FUNC_DECL bool intersectRayPlane(genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
Compute the intersection of a ray and a plane.
+
GLM_FUNC_DECL bool intersectLineTriangle(genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
Compute the intersection of a line and a triangle.
+
GLM_FUNC_DECL bool intersectLineSphere(genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
Compute the intersection of a line and a sphere.
+
GLM_FUNC_DECL T distance(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00045.html b/external/include/glm-0.9.9.8/doc/api/a00045.html index d0a736acf3..a0bd7057f5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00045.html +++ b/external/include/glm-0.9.9.8/doc/api/a00045.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: io.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
io.hpp File Reference
-
-
- -

GLM_GTX_io -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTX_io

-
Author
Jan P Springer (regni.nosp@m.rpsj.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
-
See also
Core features (dependence)
-
-GLM_GTC_matrix_access (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file io.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: io.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
io.hpp File Reference
+
+
+ +

GLM_GTX_io +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTX_io

+
Author
Jan P Springer (regni.nosp@m.rpsj.nosp@m.@gmai.nosp@m.l.co.nosp@m.m)
+
See also
Core features (dependence)
+
+GLM_GTC_matrix_access (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file io.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00045_source.html b/external/include/glm-0.9.9.8/doc/api/a00045_source.html index bebe106d26..93b422871f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00045_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00045_source.html @@ -1,280 +1,280 @@ - - - - - - -0.9.9 API documentation: io.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
io.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependency:
-
23 #include "../glm.hpp"
-
24 #include "../gtx/quaternion.hpp"
-
25 
-
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
27 # ifndef GLM_ENABLE_EXPERIMENTAL
-
28 # pragma message("GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
29 # else
-
30 # pragma message("GLM: GLM_GTX_io extension included")
-
31 # endif
-
32 #endif
-
33 
-
34 #include <iosfwd> // std::basic_ostream<> (fwd)
-
35 #include <locale> // std::locale, std::locale::facet, std::locale::id
-
36 #include <utility> // std::pair<>
-
37 
-
38 namespace glm
-
39 {
-
42 
-
43  namespace io
-
44  {
-
45  enum order_type { column_major, row_major};
-
46 
-
47  template<typename CTy>
-
48  class format_punct : public std::locale::facet
-
49  {
-
50  typedef CTy char_type;
-
51 
-
52  public:
-
53 
-
54  static std::locale::id id;
-
55 
-
56  bool formatted;
-
57  unsigned precision;
-
58  unsigned width;
-
59  char_type separator;
-
60  char_type delim_left;
-
61  char_type delim_right;
-
62  char_type space;
-
63  char_type newline;
-
64  order_type order;
-
65 
-
66  GLM_FUNC_DECL explicit format_punct(size_t a = 0);
-
67  GLM_FUNC_DECL explicit format_punct(format_punct const&);
-
68  };
-
69 
-
70  template<typename CTy, typename CTr = std::char_traits<CTy> >
-
71  class basic_state_saver {
-
72 
-
73  public:
-
74 
-
75  GLM_FUNC_DECL explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
-
76  GLM_FUNC_DECL ~basic_state_saver();
-
77 
-
78  private:
-
79 
-
80  typedef ::std::basic_ios<CTy,CTr> state_type;
-
81  typedef typename state_type::char_type char_type;
-
82  typedef ::std::ios_base::fmtflags flags_type;
-
83  typedef ::std::streamsize streamsize_type;
-
84  typedef ::std::locale const locale_type;
-
85 
-
86  state_type& state_;
-
87  flags_type flags_;
-
88  streamsize_type precision_;
-
89  streamsize_type width_;
-
90  char_type fill_;
-
91  locale_type locale_;
-
92 
-
93  GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver const&);
-
94  };
-
95 
-
96  typedef basic_state_saver<char> state_saver;
-
97  typedef basic_state_saver<wchar_t> wstate_saver;
-
98 
-
99  template<typename CTy, typename CTr = std::char_traits<CTy> >
-
100  class basic_format_saver
-
101  {
-
102  public:
-
103 
-
104  GLM_FUNC_DECL explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
-
105  GLM_FUNC_DECL ~basic_format_saver();
-
106 
-
107  private:
-
108 
-
109  basic_state_saver<CTy> const bss_;
-
110 
-
111  GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver const&);
-
112  };
-
113 
-
114  typedef basic_format_saver<char> format_saver;
-
115  typedef basic_format_saver<wchar_t> wformat_saver;
-
116 
-
117  struct precision
-
118  {
-
119  unsigned value;
-
120 
-
121  GLM_FUNC_DECL explicit precision(unsigned);
-
122  };
-
123 
-
124  struct width
-
125  {
-
126  unsigned value;
-
127 
-
128  GLM_FUNC_DECL explicit width(unsigned);
-
129  };
-
130 
-
131  template<typename CTy>
-
132  struct delimeter
-
133  {
-
134  CTy value[3];
-
135 
-
136  GLM_FUNC_DECL explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
-
137  };
-
138 
-
139  struct order
-
140  {
-
141  order_type value;
-
142 
-
143  GLM_FUNC_DECL explicit order(order_type);
-
144  };
-
145 
-
146  // functions, inlined (inline)
-
147 
-
148  template<typename FTy, typename CTy, typename CTr>
-
149  FTy const& get_facet(std::basic_ios<CTy,CTr>&);
-
150  template<typename FTy, typename CTy, typename CTr>
-
151  std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
-
152  template<typename FTy, typename CTy, typename CTr>
-
153  std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
-
154 
-
155  template<typename CTy, typename CTr>
-
156  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&);
-
157  template<typename CTy, typename CTr>
-
158  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&);
-
159  template<typename CTy, typename CTr>
-
160  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&);
-
161  template<typename CTy, typename CTr>
-
162  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&);
-
163  }//namespace io
-
164 
-
165  template<typename CTy, typename CTr, typename T, qualifier Q>
-
166  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, qua<T, Q> const&);
-
167  template<typename CTy, typename CTr, typename T, qualifier Q>
-
168  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<1, T, Q> const&);
-
169  template<typename CTy, typename CTr, typename T, qualifier Q>
-
170  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<2, T, Q> const&);
-
171  template<typename CTy, typename CTr, typename T, qualifier Q>
-
172  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<3, T, Q> const&);
-
173  template<typename CTy, typename CTr, typename T, qualifier Q>
-
174  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<4, T, Q> const&);
-
175  template<typename CTy, typename CTr, typename T, qualifier Q>
-
176  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 2, T, Q> const&);
-
177  template<typename CTy, typename CTr, typename T, qualifier Q>
-
178  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 3, T, Q> const&);
-
179  template<typename CTy, typename CTr, typename T, qualifier Q>
-
180  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 4, T, Q> const&);
-
181  template<typename CTy, typename CTr, typename T, qualifier Q>
-
182  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 2, T, Q> const&);
-
183  template<typename CTy, typename CTr, typename T, qualifier Q>
-
184  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 3, T, Q> const&);
-
185  template<typename CTy, typename CTr, typename T, qualifier Q>
-
186  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 4, T, Q> const&);
-
187  template<typename CTy, typename CTr, typename T, qualifier Q>
-
188  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 2, T, Q> const&);
-
189  template<typename CTy, typename CTr, typename T, qualifier Q>
-
190  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 3, T, Q> const&);
-
191  template<typename CTy, typename CTr, typename T, qualifier Q>
-
192  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 4, T, Q> const&);
-
193 
-
194  template<typename CTy, typename CTr, typename T, qualifier Q>
-
195  GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,
-
196  std::pair<mat<4, 4, T, Q> const, mat<4, 4, T, Q> const> const&);
-
197 
-
199 }//namespace glm
-
200 
-
201 #include "io.inl"
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: io.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
io.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependency:
+
23 #include "../glm.hpp"
+
24 #include "../gtx/quaternion.hpp"
+
25 
+
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
27 # ifndef GLM_ENABLE_EXPERIMENTAL
+
28 # pragma message("GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
29 # else
+
30 # pragma message("GLM: GLM_GTX_io extension included")
+
31 # endif
+
32 #endif
+
33 
+
34 #include <iosfwd> // std::basic_ostream<> (fwd)
+
35 #include <locale> // std::locale, std::locale::facet, std::locale::id
+
36 #include <utility> // std::pair<>
+
37 
+
38 namespace glm
+
39 {
+
42 
+
43  namespace io
+
44  {
+
45  enum order_type { column_major, row_major};
+
46 
+
47  template<typename CTy>
+
48  class format_punct : public std::locale::facet
+
49  {
+
50  typedef CTy char_type;
+
51 
+
52  public:
+
53 
+
54  static std::locale::id id;
+
55 
+
56  bool formatted;
+
57  unsigned precision;
+
58  unsigned width;
+
59  char_type separator;
+
60  char_type delim_left;
+
61  char_type delim_right;
+
62  char_type space;
+
63  char_type newline;
+
64  order_type order;
+
65 
+
66  GLM_FUNC_DECL explicit format_punct(size_t a = 0);
+
67  GLM_FUNC_DECL explicit format_punct(format_punct const&);
+
68  };
+
69 
+
70  template<typename CTy, typename CTr = std::char_traits<CTy> >
+
71  class basic_state_saver {
+
72 
+
73  public:
+
74 
+
75  GLM_FUNC_DECL explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
+
76  GLM_FUNC_DECL ~basic_state_saver();
+
77 
+
78  private:
+
79 
+
80  typedef ::std::basic_ios<CTy,CTr> state_type;
+
81  typedef typename state_type::char_type char_type;
+
82  typedef ::std::ios_base::fmtflags flags_type;
+
83  typedef ::std::streamsize streamsize_type;
+
84  typedef ::std::locale const locale_type;
+
85 
+
86  state_type& state_;
+
87  flags_type flags_;
+
88  streamsize_type precision_;
+
89  streamsize_type width_;
+
90  char_type fill_;
+
91  locale_type locale_;
+
92 
+
93  GLM_FUNC_DECL basic_state_saver& operator=(basic_state_saver const&);
+
94  };
+
95 
+
96  typedef basic_state_saver<char> state_saver;
+
97  typedef basic_state_saver<wchar_t> wstate_saver;
+
98 
+
99  template<typename CTy, typename CTr = std::char_traits<CTy> >
+
100  class basic_format_saver
+
101  {
+
102  public:
+
103 
+
104  GLM_FUNC_DECL explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
+
105  GLM_FUNC_DECL ~basic_format_saver();
+
106 
+
107  private:
+
108 
+
109  basic_state_saver<CTy> const bss_;
+
110 
+
111  GLM_FUNC_DECL basic_format_saver& operator=(basic_format_saver const&);
+
112  };
+
113 
+
114  typedef basic_format_saver<char> format_saver;
+
115  typedef basic_format_saver<wchar_t> wformat_saver;
+
116 
+
117  struct precision
+
118  {
+
119  unsigned value;
+
120 
+
121  GLM_FUNC_DECL explicit precision(unsigned);
+
122  };
+
123 
+
124  struct width
+
125  {
+
126  unsigned value;
+
127 
+
128  GLM_FUNC_DECL explicit width(unsigned);
+
129  };
+
130 
+
131  template<typename CTy>
+
132  struct delimeter
+
133  {
+
134  CTy value[3];
+
135 
+
136  GLM_FUNC_DECL explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ',');
+
137  };
+
138 
+
139  struct order
+
140  {
+
141  order_type value;
+
142 
+
143  GLM_FUNC_DECL explicit order(order_type);
+
144  };
+
145 
+
146  // functions, inlined (inline)
+
147 
+
148  template<typename FTy, typename CTy, typename CTr>
+
149  FTy const& get_facet(std::basic_ios<CTy,CTr>&);
+
150  template<typename FTy, typename CTy, typename CTr>
+
151  std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
+
152  template<typename FTy, typename CTy, typename CTr>
+
153  std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
+
154 
+
155  template<typename CTy, typename CTr>
+
156  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&);
+
157  template<typename CTy, typename CTr>
+
158  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&);
+
159  template<typename CTy, typename CTr>
+
160  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&);
+
161  template<typename CTy, typename CTr>
+
162  std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&);
+
163  }//namespace io
+
164 
+
165  template<typename CTy, typename CTr, typename T, qualifier Q>
+
166  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, qua<T, Q> const&);
+
167  template<typename CTy, typename CTr, typename T, qualifier Q>
+
168  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<1, T, Q> const&);
+
169  template<typename CTy, typename CTr, typename T, qualifier Q>
+
170  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<2, T, Q> const&);
+
171  template<typename CTy, typename CTr, typename T, qualifier Q>
+
172  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<3, T, Q> const&);
+
173  template<typename CTy, typename CTr, typename T, qualifier Q>
+
174  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, vec<4, T, Q> const&);
+
175  template<typename CTy, typename CTr, typename T, qualifier Q>
+
176  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 2, T, Q> const&);
+
177  template<typename CTy, typename CTr, typename T, qualifier Q>
+
178  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 3, T, Q> const&);
+
179  template<typename CTy, typename CTr, typename T, qualifier Q>
+
180  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<2, 4, T, Q> const&);
+
181  template<typename CTy, typename CTr, typename T, qualifier Q>
+
182  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 2, T, Q> const&);
+
183  template<typename CTy, typename CTr, typename T, qualifier Q>
+
184  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 3, T, Q> const&);
+
185  template<typename CTy, typename CTr, typename T, qualifier Q>
+
186  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<3, 4, T, Q> const&);
+
187  template<typename CTy, typename CTr, typename T, qualifier Q>
+
188  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 2, T, Q> const&);
+
189  template<typename CTy, typename CTr, typename T, qualifier Q>
+
190  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 3, T, Q> const&);
+
191  template<typename CTy, typename CTr, typename T, qualifier Q>
+
192  GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, mat<4, 4, T, Q> const&);
+
193 
+
194  template<typename CTy, typename CTr, typename T, qualifier Q>
+
195  GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(std::basic_ostream<CTy,CTr> &,
+
196  std::pair<mat<4, 4, T, Q> const, mat<4, 4, T, Q> const> const&);
+
197 
+
199 }//namespace glm
+
200 
+
201 #include "io.inl"
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00046.html b/external/include/glm-0.9.9.8/doc/api/a00046.html index b88a2ad147..1f92ed357d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00046.html +++ b/external/include/glm-0.9.9.8/doc/api/a00046.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: log_base.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
log_base.hpp File Reference
-
-
- -

GLM_GTX_log_base -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType log (genType const &x, genType const &base)
 Logarithm for any base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x, vec< L, T, Q > const &base)
 Logarithm for any base. More...
 
-

Detailed Description

-

GLM_GTX_log_base

-
See also
Core features (dependence)
- -

Definition in file log_base.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: log_base.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
log_base.hpp File Reference
+
+
+ +

GLM_GTX_log_base +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType log (genType const &x, genType const &base)
 Logarithm for any base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x, vec< L, T, Q > const &base)
 Logarithm for any base. More...
 
+

Detailed Description

+

GLM_GTX_log_base

+
See also
Core features (dependence)
+ +

Definition in file log_base.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00046_source.html b/external/include/glm-0.9.9.8/doc/api/a00046_source.html index fb1a631a65..4e8dc6dbe6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00046_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00046_source.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: log_base.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
log_base.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_log_base extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename genType>
-
34  GLM_FUNC_DECL genType log(
-
35  genType const& x,
-
36  genType const& base);
-
37 
-
40  template<length_t L, typename T, qualifier Q>
-
41  GLM_FUNC_DECL vec<L, T, Q> sign(
-
42  vec<L, T, Q> const& x,
-
43  vec<L, T, Q> const& base);
-
44 
-
46 }//namespace glm
-
47 
-
48 #include "log_base.inl"
-
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)
Logarithm for any base.
-
GLM_FUNC_DECL genType log(genType const &x, genType const &base)
Logarithm for any base.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: log_base.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
log_base.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_log_base extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename genType>
+
34  GLM_FUNC_DECL genType log(
+
35  genType const& x,
+
36  genType const& base);
+
37 
+
40  template<length_t L, typename T, qualifier Q>
+
41  GLM_FUNC_DECL vec<L, T, Q> sign(
+
42  vec<L, T, Q> const& x,
+
43  vec<L, T, Q> const& base);
+
44 
+
46 }//namespace glm
+
47 
+
48 #include "log_base.inl"
+
GLM_FUNC_DECL vec< L, T, Q > sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)
Logarithm for any base.
+
GLM_FUNC_DECL genType log(genType const &x, genType const &base)
Logarithm for any base.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00047_source.html b/external/include/glm-0.9.9.8/doc/api/a00047_source.html index f1312671ca..0b8b70ccd6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00047_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00047_source.html @@ -1,2515 +1,2515 @@ - - - - - - -0.9.9 API documentation: man.doxy Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
man.doxy
-
-
-
1 # Doxyfile 1.8.10
-
2 
-
3 # This file describes the settings to be used by the documentation system
-
4 # doxygen (www.doxygen.org) for a project.
-
5 #
-
6 # All text after a double hash (##) is considered a comment and is placed in
-
7 # front of the TAG it is preceding.
-
8 #
-
9 # All text after a single hash (#) is considered a comment and will be ignored.
-
10 # The format is:
-
11 # TAG = value [value, ...]
-
12 # For lists, items can also be appended using:
-
13 # TAG += value [value, ...]
-
14 # Values that contain spaces should be placed between quotes (\" \").
-
15 
-
16 #---------------------------------------------------------------------------
-
17 # Project related configuration options
-
18 #---------------------------------------------------------------------------
-
19 
-
20 # This tag specifies the encoding used for all characters in the config file
-
21 # that follow. The default is UTF-8 which is also the encoding used for all text
-
22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-
23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-
24 # for the list of possible encodings.
-
25 # The default value is: UTF-8.
-
26 
-
27 DOXYFILE_ENCODING = UTF-8
-
28 
-
29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-
30 # double-quotes, unless you are using Doxywizard) that should identify the
-
31 # project for which the documentation is generated. This name is used in the
-
32 # title of most generated pages and in a few other places.
-
33 # The default value is: My Project.
-
34 
-
35 PROJECT_NAME = "0.9.9 API documentation"
-
36 
-
37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-
38 # could be handy for archiving the generated documentation or if some version
-
39 # control system is used.
-
40 
-
41 PROJECT_NUMBER =
-
42 
-
43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
-
44 # for a project that appears at the top of each page and should give viewer a
-
45 # quick idea about the purpose of the project. Keep the description short.
-
46 
-
47 PROJECT_BRIEF =
-
48 
-
49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-
50 # in the documentation. The maximum height of the logo should not exceed 55
-
51 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-
52 # the logo to the output directory.
-
53 
-
54 PROJECT_LOGO = theme/logo-mini.png
-
55 
-
56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-
57 # into which the generated documentation will be written. If a relative path is
-
58 # entered, it will be relative to the location where doxygen was started. If
-
59 # left blank the current directory will be used.
-
60 
-
61 OUTPUT_DIRECTORY = .
-
62 
-
63 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-
64 # directories (in 2 levels) under the output directory of each output format and
-
65 # will distribute the generated files over these directories. Enabling this
-
66 # option can be useful when feeding doxygen a huge amount of source files, where
-
67 # putting all generated files in the same directory would otherwise causes
-
68 # performance problems for the file system.
-
69 # The default value is: NO.
-
70 
-
71 CREATE_SUBDIRS = NO
-
72 
-
73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-
74 # characters to appear in the names of generated files. If set to NO, non-ASCII
-
75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-
76 # U+3044.
-
77 # The default value is: NO.
-
78 
-
79 ALLOW_UNICODE_NAMES = NO
-
80 
-
81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
-
82 # documentation generated by doxygen is written. Doxygen will use this
-
83 # information to generate all constant output in the proper language.
-
84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-
85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-
86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-
87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-
88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-
89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-
90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-
91 # Ukrainian and Vietnamese.
-
92 # The default value is: English.
-
93 
-
94 OUTPUT_LANGUAGE = English
-
95 
-
96 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-
97 # descriptions after the members that are listed in the file and class
-
98 # documentation (similar to Javadoc). Set to NO to disable this.
-
99 # The default value is: YES.
-
100 
-
101 BRIEF_MEMBER_DESC = YES
-
102 
-
103 # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-
104 # description of a member or function before the detailed description
-
105 #
-
106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-
107 # brief descriptions will be completely suppressed.
-
108 # The default value is: YES.
-
109 
-
110 REPEAT_BRIEF = YES
-
111 
-
112 # This tag implements a quasi-intelligent brief description abbreviator that is
-
113 # used to form the text in various listings. Each string in this list, if found
-
114 # as the leading text of the brief description, will be stripped from the text
-
115 # and the result, after processing the whole list, is used as the annotated
-
116 # text. Otherwise, the brief description is used as-is. If left blank, the
-
117 # following values are used ($name is automatically replaced with the name of
-
118 # the entity):The $name class, The $name widget, The $name file, is, provides,
-
119 # specifies, contains, represents, a, an and the.
-
120 
-
121 ABBREVIATE_BRIEF = "The $name class " \
-
122  "The $name widget " \
-
123  "The $name file " \
-
124  is \
-
125  provides \
-
126  specifies \
-
127  contains \
-
128  represents \
-
129  a \
-
130  an \
-
131  the
-
132 
-
133 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-
134 # doxygen will generate a detailed section even if there is only a brief
-
135 # description.
-
136 # The default value is: NO.
-
137 
-
138 ALWAYS_DETAILED_SEC = NO
-
139 
-
140 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-
141 # inherited members of a class in the documentation of that class as if those
-
142 # members were ordinary class members. Constructors, destructors and assignment
-
143 # operators of the base classes will not be shown.
-
144 # The default value is: NO.
-
145 
-
146 INLINE_INHERITED_MEMB = NO
-
147 
-
148 # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-
149 # before files name in the file list and in the header files. If set to NO the
-
150 # shortest path that makes the file name unique will be used
-
151 # The default value is: YES.
-
152 
-
153 FULL_PATH_NAMES = NO
-
154 
-
155 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-
156 # Stripping is only done if one of the specified strings matches the left-hand
-
157 # part of the path. The tag can be used to show relative paths in the file list.
-
158 # If left blank the directory from which doxygen is run is used as the path to
-
159 # strip.
-
160 #
-
161 # Note that you can specify absolute paths here, but also relative paths, which
-
162 # will be relative from the directory where doxygen is started.
-
163 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
164 
-
165 STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
-
166 
-
167 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-
168 # path mentioned in the documentation of a class, which tells the reader which
-
169 # header file to include in order to use a class. If left blank only the name of
-
170 # the header file containing the class definition is used. Otherwise one should
-
171 # specify the list of include paths that are normally passed to the compiler
-
172 # using the -I flag.
-
173 
-
174 STRIP_FROM_INC_PATH =
-
175 
-
176 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-
177 # less readable) file names. This can be useful is your file systems doesn't
-
178 # support long names like on DOS, Mac, or CD-ROM.
-
179 # The default value is: NO.
-
180 
-
181 SHORT_NAMES = YES
-
182 
-
183 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-
184 # first line (until the first dot) of a Javadoc-style comment as the brief
-
185 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
-
186 # style comments (thus requiring an explicit @brief command for a brief
-
187 # description.)
-
188 # The default value is: NO.
-
189 
-
190 JAVADOC_AUTOBRIEF = YES
-
191 
-
192 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-
193 # line (until the first dot) of a Qt-style comment as the brief description. If
-
194 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-
195 # requiring an explicit \brief command for a brief description.)
-
196 # The default value is: NO.
-
197 
-
198 QT_AUTOBRIEF = NO
-
199 
-
200 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-
201 # multi-line C++ special comment block (i.e. a block of
-
202 # a brief description. This used to be the default behavior. The new default is
-
203 # to treat a multi-line C++ comment block as a detailed description. Set this
-
204 # tag to YES if you prefer the old behavior instead.
-
205 #
-
206 # Note that setting this tag to YES also means that rational rose comments are
-
207 # not recognized any more.
-
208 # The default value is: NO.
-
209 
-
210 MULTILINE_CPP_IS_BRIEF = NO
-
211 
-
212 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-
213 # documentation from any documented member that it re-implements.
-
214 # The default value is: YES.
-
215 
-
216 INHERIT_DOCS = YES
-
217 
-
218 # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-
219 # page for each member. If set to NO, the documentation of a member will be part
-
220 # of the file/class/namespace that contains it.
-
221 # The default value is: NO.
-
222 
-
223 SEPARATE_MEMBER_PAGES = NO
-
224 
-
225 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-
226 # uses this value to replace tabs by spaces in code fragments.
-
227 # Minimum value: 1, maximum value: 16, default value: 4.
-
228 
-
229 TAB_SIZE = 8
-
230 
-
231 # This tag can be used to specify a number of aliases that act as commands in
-
232 # the documentation. An alias has the form:
-
233 # name=value
-
234 # For example adding
-
235 # "sideeffect=@par Side Effects:\n"
-
236 # will allow you to put the command \sideeffect (or @sideeffect) in the
-
237 # documentation, which will result in a user-defined paragraph with heading
-
238 # "Side Effects:". You can put \n's in the value part of an alias to insert
-
239 # newlines.
-
240 
-
241 ALIASES =
-
242 
-
243 # This tag can be used to specify a number of word-keyword mappings (TCL only).
-
244 # A mapping has the form "name=value". For example adding "class=itcl::class"
-
245 # will allow you to use the command class in the itcl::class meaning.
-
246 
-
247 TCL_SUBST =
-
248 
-
249 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-
250 # only. Doxygen will then generate output that is more tailored for C. For
-
251 # instance, some of the names that are used will be different. The list of all
-
252 # members will be omitted, etc.
-
253 # The default value is: NO.
-
254 
-
255 OPTIMIZE_OUTPUT_FOR_C = NO
-
256 
-
257 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-
258 # Python sources only. Doxygen will then generate output that is more tailored
-
259 # for that language. For instance, namespaces will be presented as packages,
-
260 # qualified scopes will look different, etc.
-
261 # The default value is: NO.
-
262 
-
263 OPTIMIZE_OUTPUT_JAVA = NO
-
264 
-
265 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-
266 # sources. Doxygen will then generate output that is tailored for Fortran.
-
267 # The default value is: NO.
-
268 
-
269 OPTIMIZE_FOR_FORTRAN = NO
-
270 
-
271 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-
272 # sources. Doxygen will then generate output that is tailored for VHDL.
-
273 # The default value is: NO.
-
274 
-
275 OPTIMIZE_OUTPUT_VHDL = NO
-
276 
-
277 # Doxygen selects the parser to use depending on the extension of the files it
-
278 # parses. With this tag you can assign which parser to use for a given
-
279 # extension. Doxygen has a built-in mapping, but you can override or extend it
-
280 # using this tag. The format is ext=language, where ext is a file extension, and
-
281 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-
282 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-
283 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-
284 # Fortran. In the later case the parser tries to guess whether the code is fixed
-
285 # or free formatted code, this is the default for Fortran type files), VHDL. For
-
286 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
-
287 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
-
288 #
-
289 # Note: For files without extension you can use no_extension as a placeholder.
-
290 #
-
291 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-
292 # the files are not read by doxygen.
-
293 
-
294 EXTENSION_MAPPING =
-
295 
-
296 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-
297 # according to the Markdown format, which allows for more readable
-
298 # documentation. See http://daringfireball.net/projects/markdown/ for details.
-
299 # The output of markdown processing is further processed by doxygen, so you can
-
300 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-
301 # case of backward compatibilities issues.
-
302 # The default value is: YES.
-
303 
-
304 MARKDOWN_SUPPORT = YES
-
305 
-
306 # When enabled doxygen tries to link words that correspond to documented
-
307 # classes, or namespaces to their corresponding documentation. Such a link can
-
308 # be prevented in individual cases by putting a % sign in front of the word or
-
309 # globally by setting AUTOLINK_SUPPORT to NO.
-
310 # The default value is: YES.
-
311 
-
312 AUTOLINK_SUPPORT = YES
-
313 
-
314 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-
315 # to include (a tag file for) the STL sources as input, then you should set this
-
316 # tag to YES in order to let doxygen match functions declarations and
-
317 # definitions whose arguments contain STL classes (e.g. func(std::string);
-
318 # versus func(std::string) {}). This also make the inheritance and collaboration
-
319 # diagrams that involve STL classes more complete and accurate.
-
320 # The default value is: NO.
-
321 
-
322 BUILTIN_STL_SUPPORT = NO
-
323 
-
324 # If you use Microsoft's C++/CLI language, you should set this option to YES to
-
325 # enable parsing support.
-
326 # The default value is: NO.
-
327 
-
328 CPP_CLI_SUPPORT = NO
-
329 
-
330 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-
331 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-
332 # will parse them like normal C++ but will assume all classes use public instead
-
333 # of private inheritance when no explicit protection keyword is present.
-
334 # The default value is: NO.
-
335 
-
336 SIP_SUPPORT = NO
-
337 
-
338 # For Microsoft's IDL there are propget and propput attributes to indicate
-
339 # getter and setter methods for a property. Setting this option to YES will make
-
340 # doxygen to replace the get and set methods by a property in the documentation.
-
341 # This will only work if the methods are indeed getting or setting a simple
-
342 # type. If this is not the case, or you want to show the methods anyway, you
-
343 # should set this option to NO.
-
344 # The default value is: YES.
-
345 
-
346 IDL_PROPERTY_SUPPORT = YES
-
347 
-
348 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-
349 # tag is set to YES then doxygen will reuse the documentation of the first
-
350 # member in the group (if any) for the other members of the group. By default
-
351 # all members of a group must be documented explicitly.
-
352 # The default value is: NO.
-
353 
-
354 DISTRIBUTE_GROUP_DOC = NO
-
355 
-
356 # If one adds a struct or class to a group and this option is enabled, then also
-
357 # any nested class or struct is added to the same group. By default this option
-
358 # is disabled and one has to add nested compounds explicitly via \ingroup.
-
359 # The default value is: NO.
-
360 
-
361 GROUP_NESTED_COMPOUNDS = NO
-
362 
-
363 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
-
364 # (for instance a group of public functions) to be put as a subgroup of that
-
365 # type (e.g. under the Public Functions section). Set it to NO to prevent
-
366 # subgrouping. Alternatively, this can be done per class using the
-
367 # \nosubgrouping command.
-
368 # The default value is: YES.
-
369 
-
370 SUBGROUPING = NO
-
371 
-
372 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-
373 # are shown inside the group in which they are included (e.g. using \ingroup)
-
374 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-
375 # and RTF).
-
376 #
-
377 # Note that this feature does not work in combination with
-
378 # SEPARATE_MEMBER_PAGES.
-
379 # The default value is: NO.
-
380 
-
381 INLINE_GROUPED_CLASSES = NO
-
382 
-
383 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-
384 # with only public data fields or simple typedef fields will be shown inline in
-
385 # the documentation of the scope in which they are defined (i.e. file,
-
386 # namespace, or group documentation), provided this scope is documented. If set
-
387 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
-
388 # Man pages) or section (for LaTeX and RTF).
-
389 # The default value is: NO.
-
390 
-
391 INLINE_SIMPLE_STRUCTS = NO
-
392 
-
393 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-
394 # enum is documented as struct, union, or enum with the name of the typedef. So
-
395 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-
396 # with name TypeT. When disabled the typedef will appear as a member of a file,
-
397 # namespace, or class. And the struct will be named TypeS. This can typically be
-
398 # useful for C code in case the coding convention dictates that all compound
-
399 # types are typedef'ed and only the typedef is referenced, never the tag name.
-
400 # The default value is: NO.
-
401 
-
402 TYPEDEF_HIDES_STRUCT = NO
-
403 
-
404 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-
405 # cache is used to resolve symbols given their name and scope. Since this can be
-
406 # an expensive process and often the same symbol appears multiple times in the
-
407 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-
408 # doxygen will become slower. If the cache is too large, memory is wasted. The
-
409 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-
410 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-
411 # symbols. At the end of a run doxygen will report the cache usage and suggest
-
412 # the optimal cache size from a speed point of view.
-
413 # Minimum value: 0, maximum value: 9, default value: 0.
-
414 
-
415 LOOKUP_CACHE_SIZE = 0
-
416 
-
417 #---------------------------------------------------------------------------
-
418 # Build related configuration options
-
419 #---------------------------------------------------------------------------
-
420 
-
421 # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-
422 # documentation are documented, even if no documentation was available. Private
-
423 # class members and static file members will be hidden unless the
-
424 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-
425 # Note: This will also disable the warnings about undocumented members that are
-
426 # normally produced when WARNINGS is set to YES.
-
427 # The default value is: NO.
-
428 
-
429 EXTRACT_ALL = NO
-
430 
-
431 # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-
432 # be included in the documentation.
-
433 # The default value is: NO.
-
434 
-
435 EXTRACT_PRIVATE = NO
-
436 
-
437 # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-
438 # scope will be included in the documentation.
-
439 # The default value is: NO.
-
440 
-
441 EXTRACT_PACKAGE = NO
-
442 
-
443 # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-
444 # included in the documentation.
-
445 # The default value is: NO.
-
446 
-
447 EXTRACT_STATIC = YES
-
448 
-
449 # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-
450 # locally in source files will be included in the documentation. If set to NO,
-
451 # only classes defined in header files are included. Does not have any effect
-
452 # for Java sources.
-
453 # The default value is: YES.
-
454 
-
455 EXTRACT_LOCAL_CLASSES = NO
-
456 
-
457 # This flag is only useful for Objective-C code. If set to YES, local methods,
-
458 # which are defined in the implementation section but not in the interface are
-
459 # included in the documentation. If set to NO, only methods in the interface are
-
460 # included.
-
461 # The default value is: NO.
-
462 
-
463 EXTRACT_LOCAL_METHODS = NO
-
464 
-
465 # If this flag is set to YES, the members of anonymous namespaces will be
-
466 # extracted and appear in the documentation as a namespace called
-
467 # 'anonymous_namespace{file}', where file will be replaced with the base name of
-
468 # the file that contains the anonymous namespace. By default anonymous namespace
-
469 # are hidden.
-
470 # The default value is: NO.
-
471 
-
472 EXTRACT_ANON_NSPACES = NO
-
473 
-
474 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-
475 # undocumented members inside documented classes or files. If set to NO these
-
476 # members will be included in the various overviews, but no documentation
-
477 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
-
478 # The default value is: NO.
-
479 
-
480 HIDE_UNDOC_MEMBERS = YES
-
481 
-
482 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-
483 # undocumented classes that are normally visible in the class hierarchy. If set
-
484 # to NO, these classes will be included in the various overviews. This option
-
485 # has no effect if EXTRACT_ALL is enabled.
-
486 # The default value is: NO.
-
487 
-
488 HIDE_UNDOC_CLASSES = YES
-
489 
-
490 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-
491 # (class|struct|union) declarations. If set to NO, these declarations will be
-
492 # included in the documentation.
-
493 # The default value is: NO.
-
494 
-
495 HIDE_FRIEND_COMPOUNDS = YES
-
496 
-
497 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-
498 # documentation blocks found inside the body of a function. If set to NO, these
-
499 # blocks will be appended to the function's detailed documentation block.
-
500 # The default value is: NO.
-
501 
-
502 HIDE_IN_BODY_DOCS = YES
-
503 
-
504 # The INTERNAL_DOCS tag determines if documentation that is typed after a
-
505 # \internal command is included. If the tag is set to NO then the documentation
-
506 # will be excluded. Set it to YES to include the internal documentation.
-
507 # The default value is: NO.
-
508 
-
509 INTERNAL_DOCS = NO
-
510 
-
511 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-
512 # names in lower-case letters. If set to YES, upper-case letters are also
-
513 # allowed. This is useful if you have classes or files whose names only differ
-
514 # in case and if your file system supports case sensitive file names. Windows
-
515 # and Mac users are advised to set this option to NO.
-
516 # The default value is: system dependent.
-
517 
-
518 CASE_SENSE_NAMES = YES
-
519 
-
520 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-
521 # their full class and namespace scopes in the documentation. If set to YES, the
-
522 # scope will be hidden.
-
523 # The default value is: NO.
-
524 
-
525 HIDE_SCOPE_NAMES = YES
-
526 
-
527 # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
-
528 # append additional text to a page's title, such as Class Reference. If set to
-
529 # YES the compound reference will be hidden.
-
530 # The default value is: NO.
-
531 
-
532 HIDE_COMPOUND_REFERENCE= NO
-
533 
-
534 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-
535 # the files that are included by a file in the documentation of that file.
-
536 # The default value is: YES.
-
537 
-
538 SHOW_INCLUDE_FILES = NO
-
539 
-
540 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-
541 # grouped member an include statement to the documentation, telling the reader
-
542 # which file to include in order to use the member.
-
543 # The default value is: NO.
-
544 
-
545 SHOW_GROUPED_MEMB_INC = NO
-
546 
-
547 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-
548 # files with double quotes in the documentation rather than with sharp brackets.
-
549 # The default value is: NO.
-
550 
-
551 FORCE_LOCAL_INCLUDES = NO
-
552 
-
553 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-
554 # documentation for inline members.
-
555 # The default value is: YES.
-
556 
-
557 INLINE_INFO = NO
-
558 
-
559 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-
560 # (detailed) documentation of file and class members alphabetically by member
-
561 # name. If set to NO, the members will appear in declaration order.
-
562 # The default value is: YES.
-
563 
-
564 SORT_MEMBER_DOCS = YES
-
565 
-
566 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-
567 # descriptions of file, namespace and class members alphabetically by member
-
568 # name. If set to NO, the members will appear in declaration order. Note that
-
569 # this will also influence the order of the classes in the class list.
-
570 # The default value is: NO.
-
571 
-
572 SORT_BRIEF_DOCS = YES
-
573 
-
574 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-
575 # (brief and detailed) documentation of class members so that constructors and
-
576 # destructors are listed first. If set to NO the constructors will appear in the
-
577 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-
578 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-
579 # member documentation.
-
580 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-
581 # detailed member documentation.
-
582 # The default value is: NO.
-
583 
-
584 SORT_MEMBERS_CTORS_1ST = NO
-
585 
-
586 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-
587 # of group names into alphabetical order. If set to NO the group names will
-
588 # appear in their defined order.
-
589 # The default value is: NO.
-
590 
-
591 SORT_GROUP_NAMES = NO
-
592 
-
593 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-
594 # fully-qualified names, including namespaces. If set to NO, the class list will
-
595 # be sorted only by class name, not including the namespace part.
-
596 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-
597 # Note: This option applies only to the class list, not to the alphabetical
-
598 # list.
-
599 # The default value is: NO.
-
600 
-
601 SORT_BY_SCOPE_NAME = YES
-
602 
-
603 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-
604 # type resolution of all parameters of a function it will reject a match between
-
605 # the prototype and the implementation of a member function even if there is
-
606 # only one candidate or it is obvious which candidate to choose by doing a
-
607 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-
608 # accept a match between prototype and implementation in such cases.
-
609 # The default value is: NO.
-
610 
-
611 STRICT_PROTO_MATCHING = NO
-
612 
-
613 # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-
614 # list. This list is created by putting \todo commands in the documentation.
-
615 # The default value is: YES.
-
616 
-
617 GENERATE_TODOLIST = YES
-
618 
-
619 # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-
620 # list. This list is created by putting \test commands in the documentation.
-
621 # The default value is: YES.
-
622 
-
623 GENERATE_TESTLIST = YES
-
624 
-
625 # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-
626 # list. This list is created by putting \bug commands in the documentation.
-
627 # The default value is: YES.
-
628 
-
629 GENERATE_BUGLIST = YES
-
630 
-
631 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-
632 # the deprecated list. This list is created by putting \deprecated commands in
-
633 # the documentation.
-
634 # The default value is: YES.
-
635 
-
636 GENERATE_DEPRECATEDLIST= YES
-
637 
-
638 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
-
639 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
-
640 # ... \endcond blocks.
-
641 
-
642 ENABLED_SECTIONS =
-
643 
-
644 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-
645 # initial value of a variable or macro / define can have for it to appear in the
-
646 # documentation. If the initializer consists of more lines than specified here
-
647 # it will be hidden. Use a value of 0 to hide initializers completely. The
-
648 # appearance of the value of individual variables and macros / defines can be
-
649 # controlled using \showinitializer or \hideinitializer command in the
-
650 # documentation regardless of this setting.
-
651 # Minimum value: 0, maximum value: 10000, default value: 30.
-
652 
-
653 MAX_INITIALIZER_LINES = 30
-
654 
-
655 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-
656 # the bottom of the documentation of classes and structs. If set to YES, the
-
657 # list will mention the files that were used to generate the documentation.
-
658 # The default value is: YES.
-
659 
-
660 SHOW_USED_FILES = NO
-
661 
-
662 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-
663 # will remove the Files entry from the Quick Index and from the Folder Tree View
-
664 # (if specified).
-
665 # The default value is: YES.
-
666 
-
667 SHOW_FILES = YES
-
668 
-
669 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-
670 # page. This will remove the Namespaces entry from the Quick Index and from the
-
671 # Folder Tree View (if specified).
-
672 # The default value is: YES.
-
673 
-
674 SHOW_NAMESPACES = YES
-
675 
-
676 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
-
677 # doxygen should invoke to get the current version for each file (typically from
-
678 # the version control system). Doxygen will invoke the program by executing (via
-
679 # popen()) the command command input-file, where command is the value of the
-
680 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-
681 # by doxygen. Whatever the program writes to standard output is used as the file
-
682 # version. For an example see the documentation.
-
683 
-
684 FILE_VERSION_FILTER =
-
685 
-
686 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-
687 # by doxygen. The layout file controls the global structure of the generated
-
688 # output files in an output format independent way. To create the layout file
-
689 # that represents doxygen's defaults, run doxygen with the -l option. You can
-
690 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
-
691 # will be used as the name of the layout file.
-
692 #
-
693 # Note that if you run doxygen from a directory containing a file called
-
694 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-
695 # tag is left empty.
-
696 
-
697 LAYOUT_FILE =
-
698 
-
699 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-
700 # the reference definitions. This must be a list of .bib files. The .bib
-
701 # extension is automatically appended if omitted. This requires the bibtex tool
-
702 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-
703 # For LaTeX the style of the bibliography can be controlled using
-
704 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-
705 # search path. See also \cite for info how to create references.
-
706 
-
707 CITE_BIB_FILES =
-
708 
-
709 #---------------------------------------------------------------------------
-
710 # Configuration options related to warning and progress messages
-
711 #---------------------------------------------------------------------------
-
712 
-
713 # The QUIET tag can be used to turn on/off the messages that are generated to
-
714 # standard output by doxygen. If QUIET is set to YES this implies that the
-
715 # messages are off.
-
716 # The default value is: NO.
-
717 
-
718 QUIET = NO
-
719 
-
720 # The WARNINGS tag can be used to turn on/off the warning messages that are
-
721 # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-
722 # this implies that the warnings are on.
-
723 #
-
724 # Tip: Turn warnings on while writing the documentation.
-
725 # The default value is: YES.
-
726 
-
727 WARNINGS = YES
-
728 
-
729 # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-
730 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-
731 # will automatically be disabled.
-
732 # The default value is: YES.
-
733 
-
734 WARN_IF_UNDOCUMENTED = YES
-
735 
-
736 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-
737 # potential errors in the documentation, such as not documenting some parameters
-
738 # in a documented function, or documenting parameters that don't exist or using
-
739 # markup commands wrongly.
-
740 # The default value is: YES.
-
741 
-
742 WARN_IF_DOC_ERROR = YES
-
743 
-
744 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-
745 # are documented, but have no documentation for their parameters or return
-
746 # value. If set to NO, doxygen will only warn about wrong or incomplete
-
747 # parameter documentation, but not about the absence of documentation.
-
748 # The default value is: NO.
-
749 
-
750 WARN_NO_PARAMDOC = NO
-
751 
-
752 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
-
753 # can produce. The string should contain the $file, $line, and $text tags, which
-
754 # will be replaced by the file and line number from which the warning originated
-
755 # and the warning text. Optionally the format may contain $version, which will
-
756 # be replaced by the version of the file (if it could be obtained via
-
757 # FILE_VERSION_FILTER)
-
758 # The default value is: $file:$line: $text.
-
759 
-
760 WARN_FORMAT = "$file:$line: $text"
-
761 
-
762 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
-
763 # messages should be written. If left blank the output is written to standard
-
764 # error (stderr).
-
765 
-
766 WARN_LOGFILE =
-
767 
-
768 #---------------------------------------------------------------------------
-
769 # Configuration options related to the input files
-
770 #---------------------------------------------------------------------------
-
771 
-
772 # The INPUT tag is used to specify the files and/or directories that contain
-
773 # documented source files. You may enter file names like myfile.cpp or
-
774 # directories like /usr/src/myproject. Separate the files or directories with
-
775 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
-
776 # Note: If this tag is empty the current directory is searched.
-
777 
-
778 INPUT = ../glm \
-
779  .
-
780 
-
781 # This tag can be used to specify the character encoding of the source files
-
782 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-
783 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-
784 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
-
785 # possible encodings.
-
786 # The default value is: UTF-8.
-
787 
-
788 INPUT_ENCODING = UTF-8
-
789 
-
790 # If the value of the INPUT tag contains directories, you can use the
-
791 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-
792 # *.h) to filter out the source-files in the directories.
-
793 #
-
794 # Note that for custom extensions or not directly supported extensions you also
-
795 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
-
796 # read by doxygen.
-
797 #
-
798 # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
-
799 # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-
800 # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-
801 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
-
802 # *.vhdl, *.ucf, *.qsf, *.as and *.js.
-
803 
-
804 FILE_PATTERNS = *.hpp \
-
805  *.doxy
-
806 
-
807 # The RECURSIVE tag can be used to specify whether or not subdirectories should
-
808 # be searched for input files as well.
-
809 # The default value is: NO.
-
810 
-
811 RECURSIVE = YES
-
812 
-
813 # The EXCLUDE tag can be used to specify files and/or directories that should be
-
814 # excluded from the INPUT source files. This way you can easily exclude a
-
815 # subdirectory from a directory tree whose root is specified with the INPUT tag.
-
816 #
-
817 # Note that relative paths are relative to the directory from which doxygen is
-
818 # run.
-
819 
-
820 EXCLUDE =
-
821 
-
822 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-
823 # directories that are symbolic links (a Unix file system feature) are excluded
-
824 # from the input.
-
825 # The default value is: NO.
-
826 
-
827 EXCLUDE_SYMLINKS = NO
-
828 
-
829 # If the value of the INPUT tag contains directories, you can use the
-
830 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-
831 # certain files from those directories.
-
832 #
-
833 # Note that the wildcards are matched against the file with absolute path, so to
-
834 # exclude all test directories for example use the pattern */test/*
-
835 
-
836 EXCLUDE_PATTERNS =
-
837 
-
838 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-
839 # (namespaces, classes, functions, etc.) that should be excluded from the
-
840 # output. The symbol name can be a fully qualified name, a word, or if the
-
841 # wildcard * is used, a substring. Examples: ANamespace, AClass,
-
842 # AClass::ANamespace, ANamespace::*Test
-
843 #
-
844 # Note that the wildcards are matched against the file with absolute path, so to
-
845 # exclude all test directories use the pattern */test/*
-
846 
-
847 EXCLUDE_SYMBOLS =
-
848 
-
849 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
-
850 # that contain example code fragments that are included (see the \include
-
851 # command).
-
852 
-
853 EXAMPLE_PATH =
-
854 
-
855 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
-
856 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-
857 # *.h) to filter out the source-files in the directories. If left blank all
-
858 # files are included.
-
859 
-
860 EXAMPLE_PATTERNS = *
-
861 
-
862 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-
863 # searched for input files to be used with the \include or \dontinclude commands
-
864 # irrespective of the value of the RECURSIVE tag.
-
865 # The default value is: NO.
-
866 
-
867 EXAMPLE_RECURSIVE = NO
-
868 
-
869 # The IMAGE_PATH tag can be used to specify one or more files or directories
-
870 # that contain images that are to be included in the documentation (see the
-
871 # \image command).
-
872 
-
873 IMAGE_PATH =
-
874 
-
875 # The INPUT_FILTER tag can be used to specify a program that doxygen should
-
876 # invoke to filter for each input file. Doxygen will invoke the filter program
-
877 # by executing (via popen()) the command:
-
878 #
-
879 # <filter> <input-file>
-
880 #
-
881 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-
882 # name of an input file. Doxygen will then use the output that the filter
-
883 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
-
884 # will be ignored.
-
885 #
-
886 # Note that the filter must not add or remove lines; it is applied before the
-
887 # code is scanned, but not when the output code is generated. If lines are added
-
888 # or removed, the anchors will not be placed correctly.
-
889 
-
890 INPUT_FILTER =
-
891 
-
892 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-
893 # basis. Doxygen will compare the file name with each pattern and apply the
-
894 # filter if there is a match. The filters are a list of the form: pattern=filter
-
895 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-
896 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-
897 # patterns match the file name, INPUT_FILTER is applied.
-
898 
-
899 FILTER_PATTERNS =
-
900 
-
901 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-
902 # INPUT_FILTER) will also be used to filter the input files that are used for
-
903 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
904 # The default value is: NO.
-
905 
-
906 FILTER_SOURCE_FILES = NO
-
907 
-
908 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-
909 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-
910 # it is also possible to disable source filtering for a specific pattern using
-
911 # *.ext= (so without naming a filter).
-
912 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
913 
-
914 FILTER_SOURCE_PATTERNS =
-
915 
-
916 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-
917 # is part of the input, its contents will be placed on the main page
-
918 # (index.html). This can be useful if you have a project on for instance GitHub
-
919 # and want to reuse the introduction page also for the doxygen output.
-
920 
-
921 USE_MDFILE_AS_MAINPAGE =
-
922 
-
923 #---------------------------------------------------------------------------
-
924 # Configuration options related to source browsing
-
925 #---------------------------------------------------------------------------
-
926 
-
927 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-
928 # generated. Documented entities will be cross-referenced with these sources.
-
929 #
-
930 # Note: To get rid of all source code in the generated output, make sure that
-
931 # also VERBATIM_HEADERS is set to NO.
-
932 # The default value is: NO.
-
933 
-
934 SOURCE_BROWSER = YES
-
935 
-
936 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
-
937 # classes and enums directly into the documentation.
-
938 # The default value is: NO.
-
939 
-
940 INLINE_SOURCES = NO
-
941 
-
942 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-
943 # special comment blocks from generated source code fragments. Normal C, C++ and
-
944 # Fortran comments will always remain visible.
-
945 # The default value is: YES.
-
946 
-
947 STRIP_CODE_COMMENTS = YES
-
948 
-
949 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-
950 # function all documented functions referencing it will be listed.
-
951 # The default value is: NO.
-
952 
-
953 REFERENCED_BY_RELATION = YES
-
954 
-
955 # If the REFERENCES_RELATION tag is set to YES then for each documented function
-
956 # all documented entities called/used by that function will be listed.
-
957 # The default value is: NO.
-
958 
-
959 REFERENCES_RELATION = YES
-
960 
-
961 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-
962 # to YES then the hyperlinks from functions in REFERENCES_RELATION and
-
963 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-
964 # link to the documentation.
-
965 # The default value is: YES.
-
966 
-
967 REFERENCES_LINK_SOURCE = YES
-
968 
-
969 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-
970 # source code will show a tooltip with additional information such as prototype,
-
971 # brief description and links to the definition and documentation. Since this
-
972 # will make the HTML file larger and loading of large files a bit slower, you
-
973 # can opt to disable this feature.
-
974 # The default value is: YES.
-
975 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
976 
-
977 SOURCE_TOOLTIPS = YES
-
978 
-
979 # If the USE_HTAGS tag is set to YES then the references to source code will
-
980 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
-
981 # source browser. The htags tool is part of GNU's global source tagging system
-
982 # (see http://www.gnu.org/software/global/global.html). You will need version
-
983 # 4.8.6 or higher.
-
984 #
-
985 # To use it do the following:
-
986 # - Install the latest version of global
-
987 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-
988 # - Make sure the INPUT points to the root of the source tree
-
989 # - Run doxygen as normal
-
990 #
-
991 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
-
992 # tools must be available from the command line (i.e. in the search path).
-
993 #
-
994 # The result: instead of the source browser generated by doxygen, the links to
-
995 # source code will now point to the output of htags.
-
996 # The default value is: NO.
-
997 # This tag requires that the tag SOURCE_BROWSER is set to YES.
-
998 
-
999 USE_HTAGS = NO
-
1000 
-
1001 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-
1002 # verbatim copy of the header file for each class for which an include is
-
1003 # specified. Set to NO to disable this.
-
1004 # See also: Section \class.
-
1005 # The default value is: YES.
-
1006 
-
1007 VERBATIM_HEADERS = YES
-
1008 
-
1009 # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
-
1010 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
-
1011 # cost of reduced performance. This can be particularly helpful with template
-
1012 # rich C++ code for which doxygen's built-in parser lacks the necessary type
-
1013 # information.
-
1014 # Note: The availability of this option depends on whether or not doxygen was
-
1015 # compiled with the --with-libclang option.
-
1016 # The default value is: NO.
-
1017 
-
1018 CLANG_ASSISTED_PARSING = NO
-
1019 
-
1020 # If clang assisted parsing is enabled you can provide the compiler with command
-
1021 # line options that you would normally use when invoking the compiler. Note that
-
1022 # the include paths will already be set by doxygen for the files and directories
-
1023 # specified with INPUT and INCLUDE_PATH.
-
1024 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
-
1025 
-
1026 CLANG_OPTIONS =
-
1027 
-
1028 #---------------------------------------------------------------------------
-
1029 # Configuration options related to the alphabetical class index
-
1030 #---------------------------------------------------------------------------
-
1031 
-
1032 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-
1033 # compounds will be generated. Enable this if the project contains a lot of
-
1034 # classes, structs, unions or interfaces.
-
1035 # The default value is: YES.
-
1036 
-
1037 ALPHABETICAL_INDEX = NO
-
1038 
-
1039 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-
1040 # which the alphabetical index list will be split.
-
1041 # Minimum value: 1, maximum value: 20, default value: 5.
-
1042 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1043 
-
1044 COLS_IN_ALPHA_INDEX = 5
-
1045 
-
1046 # In case all classes in a project start with a common prefix, all classes will
-
1047 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-
1048 # can be used to specify a prefix (or a list of prefixes) that should be ignored
-
1049 # while generating the index headers.
-
1050 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
1051 
-
1052 IGNORE_PREFIX =
-
1053 
-
1054 #---------------------------------------------------------------------------
-
1055 # Configuration options related to the HTML output
-
1056 #---------------------------------------------------------------------------
-
1057 
-
1058 # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-
1059 # The default value is: YES.
-
1060 
-
1061 GENERATE_HTML = YES
-
1062 
-
1063 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-
1064 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1065 # it.
-
1066 # The default directory is: html.
-
1067 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1068 
-
1069 HTML_OUTPUT = html
-
1070 
-
1071 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-
1072 # generated HTML page (for example: .htm, .php, .asp).
-
1073 # The default value is: .html.
-
1074 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1075 
-
1076 HTML_FILE_EXTENSION = .html
-
1077 
-
1078 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-
1079 # each generated HTML page. If the tag is left blank doxygen will generate a
-
1080 # standard header.
-
1081 #
-
1082 # To get valid HTML the header file that includes any scripts and style sheets
-
1083 # that doxygen needs, which is dependent on the configuration options used (e.g.
-
1084 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-
1085 # default header using
-
1086 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
-
1087 # YourConfigFile
-
1088 # and then modify the file new_header.html. See also section "Doxygen usage"
-
1089 # for information on how to generate the default header that doxygen normally
-
1090 # uses.
-
1091 # Note: The header is subject to change so you typically have to regenerate the
-
1092 # default header when upgrading to a newer version of doxygen. For a description
-
1093 # of the possible markers and block names see the documentation.
-
1094 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1095 
-
1096 HTML_HEADER =
-
1097 
-
1098 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-
1099 # generated HTML page. If the tag is left blank doxygen will generate a standard
-
1100 # footer. See HTML_HEADER for more information on how to generate a default
-
1101 # footer and what special commands can be used inside the footer. See also
-
1102 # section "Doxygen usage" for information on how to generate the default footer
-
1103 # that doxygen normally uses.
-
1104 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1105 
-
1106 HTML_FOOTER =
-
1107 
-
1108 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-
1109 # sheet that is used by each HTML page. It can be used to fine-tune the look of
-
1110 # the HTML output. If left blank doxygen will generate a default style sheet.
-
1111 # See also section "Doxygen usage" for information on how to generate the style
-
1112 # sheet that doxygen normally uses.
-
1113 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-
1114 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
-
1115 # obsolete.
-
1116 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1117 
-
1118 HTML_STYLESHEET =
-
1119 
-
1120 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-
1121 # cascading style sheets that are included after the standard style sheets
-
1122 # created by doxygen. Using this option one can overrule certain style aspects.
-
1123 # This is preferred over using HTML_STYLESHEET since it does not replace the
-
1124 # standard style sheet and is therefore more robust against future updates.
-
1125 # Doxygen will copy the style sheet files to the output directory.
-
1126 # Note: The order of the extra style sheet files is of importance (e.g. the last
-
1127 # style sheet in the list overrules the setting of the previous ones in the
-
1128 # list). For an example see the documentation.
-
1129 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1130 
-
1131 HTML_EXTRA_STYLESHEET =
-
1132 
-
1133 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-
1134 # other source files which should be copied to the HTML output directory. Note
-
1135 # that these files will be copied to the base HTML output directory. Use the
-
1136 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-
1137 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-
1138 # files will be copied as-is; there are no commands or markers available.
-
1139 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1140 
-
1141 HTML_EXTRA_FILES =
-
1142 
-
1143 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-
1144 # will adjust the colors in the style sheet and background images according to
-
1145 # this color. Hue is specified as an angle on a colorwheel, see
-
1146 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-
1147 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-
1148 # purple, and 360 is red again.
-
1149 # Minimum value: 0, maximum value: 359, default value: 220.
-
1150 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1151 
-
1152 HTML_COLORSTYLE_HUE = 220
-
1153 
-
1154 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-
1155 # in the HTML output. For a value of 0 the output will use grayscales only. A
-
1156 # value of 255 will produce the most vivid colors.
-
1157 # Minimum value: 0, maximum value: 255, default value: 100.
-
1158 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1159 
-
1160 HTML_COLORSTYLE_SAT = 100
-
1161 
-
1162 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-
1163 # luminance component of the colors in the HTML output. Values below 100
-
1164 # gradually make the output lighter, whereas values above 100 make the output
-
1165 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
-
1166 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-
1167 # change the gamma.
-
1168 # Minimum value: 40, maximum value: 240, default value: 80.
-
1169 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1170 
-
1171 HTML_COLORSTYLE_GAMMA = 80
-
1172 
-
1173 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-
1174 # page will contain the date and time when the page was generated. Setting this
-
1175 # to YES can help to show when doxygen was last run and thus if the
-
1176 # documentation is up to date.
-
1177 # The default value is: NO.
-
1178 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1179 
-
1180 HTML_TIMESTAMP = NO
-
1181 
-
1182 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-
1183 # documentation will contain sections that can be hidden and shown after the
-
1184 # page has loaded.
-
1185 # The default value is: NO.
-
1186 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1187 
-
1188 HTML_DYNAMIC_SECTIONS = NO
-
1189 
-
1190 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-
1191 # shown in the various tree structured indices initially; the user can expand
-
1192 # and collapse entries dynamically later on. Doxygen will expand the tree to
-
1193 # such a level that at most the specified number of entries are visible (unless
-
1194 # a fully collapsed tree already exceeds this amount). So setting the number of
-
1195 # entries 1 will produce a full collapsed tree by default. 0 is a special value
-
1196 # representing an infinite number of entries and will result in a full expanded
-
1197 # tree by default.
-
1198 # Minimum value: 0, maximum value: 9999, default value: 100.
-
1199 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1200 
-
1201 HTML_INDEX_NUM_ENTRIES = 100
-
1202 
-
1203 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
-
1204 # generated that can be used as input for Apple's Xcode 3 integrated development
-
1205 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
-
1206 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-
1207 # Makefile in the HTML output directory. Running make will produce the docset in
-
1208 # that directory and running make install will install the docset in
-
1209 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-
1210 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-
1211 # for more information.
-
1212 # The default value is: NO.
-
1213 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1214 
-
1215 GENERATE_DOCSET = NO
-
1216 
-
1217 # This tag determines the name of the docset feed. A documentation feed provides
-
1218 # an umbrella under which multiple documentation sets from a single provider
-
1219 # (such as a company or product suite) can be grouped.
-
1220 # The default value is: Doxygen generated docs.
-
1221 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1222 
-
1223 DOCSET_FEEDNAME = "Doxygen generated docs"
-
1224 
-
1225 # This tag specifies a string that should uniquely identify the documentation
-
1226 # set bundle. This should be a reverse domain-name style string, e.g.
-
1227 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-
1228 # The default value is: org.doxygen.Project.
-
1229 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1230 
-
1231 DOCSET_BUNDLE_ID = org.doxygen.Project
-
1232 
-
1233 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-
1234 # the documentation publisher. This should be a reverse domain-name style
-
1235 # string, e.g. com.mycompany.MyDocSet.documentation.
-
1236 # The default value is: org.doxygen.Publisher.
-
1237 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1238 
-
1239 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
1240 
-
1241 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
1242 # The default value is: Publisher.
-
1243 # This tag requires that the tag GENERATE_DOCSET is set to YES.
-
1244 
-
1245 DOCSET_PUBLISHER_NAME = Publisher
-
1246 
-
1247 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-
1248 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-
1249 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-
1250 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-
1251 # Windows.
-
1252 #
-
1253 # The HTML Help Workshop contains a compiler that can convert all HTML output
-
1254 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-
1255 # files are now used as the Windows 98 help format, and will replace the old
-
1256 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
-
1257 # HTML files also contain an index, a table of contents, and you can search for
-
1258 # words in the documentation. The HTML workshop also contains a viewer for
-
1259 # compressed HTML files.
-
1260 # The default value is: NO.
-
1261 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1262 
-
1263 GENERATE_HTMLHELP = NO
-
1264 
-
1265 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
-
1266 # file. You can add a path in front of the file if the result should not be
-
1267 # written to the html output directory.
-
1268 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1269 
-
1270 CHM_FILE =
-
1271 
-
1272 # The HHC_LOCATION tag can be used to specify the location (absolute path
-
1273 # including file name) of the HTML help compiler (hhc.exe). If non-empty,
-
1274 # doxygen will try to run the HTML help compiler on the generated index.hhp.
-
1275 # The file has to be specified with full path.
-
1276 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1277 
-
1278 HHC_LOCATION =
-
1279 
-
1280 # The GENERATE_CHI flag controls if a separate .chi index file is generated
-
1281 # (YES) or that it should be included in the master .chm file (NO).
-
1282 # The default value is: NO.
-
1283 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1284 
-
1285 GENERATE_CHI = NO
-
1286 
-
1287 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-
1288 # and project file content.
-
1289 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1290 
-
1291 CHM_INDEX_ENCODING =
-
1292 
-
1293 # The BINARY_TOC flag controls whether a binary table of contents is generated
-
1294 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-
1295 # enables the Previous and Next buttons.
-
1296 # The default value is: NO.
-
1297 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1298 
-
1299 BINARY_TOC = NO
-
1300 
-
1301 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
-
1302 # the table of contents of the HTML help documentation and to the tree view.
-
1303 # The default value is: NO.
-
1304 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
1305 
-
1306 TOC_EXPAND = NO
-
1307 
-
1308 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-
1309 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-
1310 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-
1311 # (.qch) of the generated HTML documentation.
-
1312 # The default value is: NO.
-
1313 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1314 
-
1315 GENERATE_QHP = NO
-
1316 
-
1317 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-
1318 # the file name of the resulting .qch file. The path specified is relative to
-
1319 # the HTML output folder.
-
1320 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1321 
-
1322 QCH_FILE =
-
1323 
-
1324 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-
1325 # Project output. For more information please see Qt Help Project / Namespace
-
1326 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-
1327 # The default value is: org.doxygen.Project.
-
1328 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1329 
-
1330 QHP_NAMESPACE = org.doxygen.Project
-
1331 
-
1332 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-
1333 # Help Project output. For more information please see Qt Help Project / Virtual
-
1334 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-
1335 # folders).
-
1336 # The default value is: doc.
-
1337 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1338 
-
1339 QHP_VIRTUAL_FOLDER = doc
-
1340 
-
1341 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-
1342 # filter to add. For more information please see Qt Help Project / Custom
-
1343 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1344 # filters).
-
1345 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1346 
-
1347 QHP_CUST_FILTER_NAME =
-
1348 
-
1349 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-
1350 # custom filter to add. For more information please see Qt Help Project / Custom
-
1351 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-
1352 # filters).
-
1353 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1354 
-
1355 QHP_CUST_FILTER_ATTRS =
-
1356 
-
1357 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-
1358 # project's filter section matches. Qt Help Project / Filter Attributes (see:
-
1359 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-
1360 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1361 
-
1362 QHP_SECT_FILTER_ATTRS =
-
1363 
-
1364 # The QHG_LOCATION tag can be used to specify the location of Qt's
-
1365 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-
1366 # generated .qhp file.
-
1367 # This tag requires that the tag GENERATE_QHP is set to YES.
-
1368 
-
1369 QHG_LOCATION =
-
1370 
-
1371 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-
1372 # generated, together with the HTML files, they form an Eclipse help plugin. To
-
1373 # install this plugin and make it available under the help contents menu in
-
1374 # Eclipse, the contents of the directory containing the HTML and XML files needs
-
1375 # to be copied into the plugins directory of eclipse. The name of the directory
-
1376 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-
1377 # After copying Eclipse needs to be restarted before the help appears.
-
1378 # The default value is: NO.
-
1379 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1380 
-
1381 GENERATE_ECLIPSEHELP = NO
-
1382 
-
1383 # A unique identifier for the Eclipse help plugin. When installing the plugin
-
1384 # the directory name containing the HTML and XML files should also have this
-
1385 # name. Each documentation set should have its own identifier.
-
1386 # The default value is: org.doxygen.Project.
-
1387 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
1388 
-
1389 ECLIPSE_DOC_ID = org.doxygen.Project
-
1390 
-
1391 # If you want full control over the layout of the generated HTML pages it might
-
1392 # be necessary to disable the index and replace it with your own. The
-
1393 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-
1394 # of each HTML page. A value of NO enables the index and the value YES disables
-
1395 # it. Since the tabs in the index contain the same information as the navigation
-
1396 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-
1397 # The default value is: NO.
-
1398 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1399 
-
1400 DISABLE_INDEX = NO
-
1401 
-
1402 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-
1403 # structure should be generated to display hierarchical information. If the tag
-
1404 # value is set to YES, a side panel will be generated containing a tree-like
-
1405 # index structure (just like the one that is generated for HTML Help). For this
-
1406 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
-
1407 # (i.e. any modern browser). Windows users are probably better off using the
-
1408 # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-
1409 # further fine-tune the look of the index. As an example, the default style
-
1410 # sheet generated by doxygen has an example that shows how to put an image at
-
1411 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-
1412 # the same information as the tab index, you could consider setting
-
1413 # DISABLE_INDEX to YES when enabling this option.
-
1414 # The default value is: NO.
-
1415 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1416 
-
1417 GENERATE_TREEVIEW = NO
-
1418 
-
1419 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-
1420 # doxygen will group on one line in the generated HTML documentation.
-
1421 #
-
1422 # Note that a value of 0 will completely suppress the enum values from appearing
-
1423 # in the overview section.
-
1424 # Minimum value: 0, maximum value: 20, default value: 4.
-
1425 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1426 
-
1427 ENUM_VALUES_PER_LINE = 4
-
1428 
-
1429 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-
1430 # to set the initial width (in pixels) of the frame in which the tree is shown.
-
1431 # Minimum value: 0, maximum value: 1500, default value: 250.
-
1432 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1433 
-
1434 TREEVIEW_WIDTH = 250
-
1435 
-
1436 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-
1437 # external symbols imported via tag files in a separate window.
-
1438 # The default value is: NO.
-
1439 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1440 
-
1441 EXT_LINKS_IN_WINDOW = NO
-
1442 
-
1443 # Use this tag to change the font size of LaTeX formulas included as images in
-
1444 # the HTML documentation. When you change the font size after a successful
-
1445 # doxygen run you need to manually remove any form_*.png images from the HTML
-
1446 # output directory to force them to be regenerated.
-
1447 # Minimum value: 8, maximum value: 50, default value: 10.
-
1448 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1449 
-
1450 FORMULA_FONTSIZE = 10
-
1451 
-
1452 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
-
1453 # generated for formulas are transparent PNGs. Transparent PNGs are not
-
1454 # supported properly for IE 6.0, but are supported on all modern browsers.
-
1455 #
-
1456 # Note that when changing this option you need to delete any form_*.png files in
-
1457 # the HTML output directory before the changes have effect.
-
1458 # The default value is: YES.
-
1459 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1460 
-
1461 FORMULA_TRANSPARENT = YES
-
1462 
-
1463 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-
1464 # http://www.mathjax.org) which uses client side Javascript for the rendering
-
1465 # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-
1466 # installed or if you want to formulas look prettier in the HTML output. When
-
1467 # enabled you may also need to install MathJax separately and configure the path
-
1468 # to it using the MATHJAX_RELPATH option.
-
1469 # The default value is: NO.
-
1470 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1471 
-
1472 USE_MATHJAX = NO
-
1473 
-
1474 # When MathJax is enabled you can set the default output format to be used for
-
1475 # the MathJax output. See the MathJax site (see:
-
1476 # http://docs.mathjax.org/en/latest/output.html) for more details.
-
1477 # Possible values are: HTML-CSS (which is slower, but has the best
-
1478 # compatibility), NativeMML (i.e. MathML) and SVG.
-
1479 # The default value is: HTML-CSS.
-
1480 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1481 
-
1482 MATHJAX_FORMAT = HTML-CSS
-
1483 
-
1484 # When MathJax is enabled you need to specify the location relative to the HTML
-
1485 # output directory using the MATHJAX_RELPATH option. The destination directory
-
1486 # should contain the MathJax.js script. For instance, if the mathjax directory
-
1487 # is located at the same level as the HTML output directory, then
-
1488 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-
1489 # Content Delivery Network so you can quickly see the result without installing
-
1490 # MathJax. However, it is strongly recommended to install a local copy of
-
1491 # MathJax from http://www.mathjax.org before deployment.
-
1492 # The default value is: http://cdn.mathjax.org/mathjax/latest.
-
1493 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1494 
-
1495 MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
1496 
-
1497 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-
1498 # extension names that should be enabled during MathJax rendering. For example
-
1499 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-
1500 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1501 
-
1502 MATHJAX_EXTENSIONS =
-
1503 
-
1504 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-
1505 # of code that will be used on startup of the MathJax code. See the MathJax site
-
1506 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-
1507 # example see the documentation.
-
1508 # This tag requires that the tag USE_MATHJAX is set to YES.
-
1509 
-
1510 MATHJAX_CODEFILE =
-
1511 
-
1512 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-
1513 # the HTML output. The underlying search engine uses javascript and DHTML and
-
1514 # should work on any modern browser. Note that when using HTML help
-
1515 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-
1516 # there is already a search function so this one should typically be disabled.
-
1517 # For large projects the javascript based search engine can be slow, then
-
1518 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-
1519 # search using the keyboard; to jump to the search box use <access key> + S
-
1520 # (what the <access key> is depends on the OS and browser, but it is typically
-
1521 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-
1522 # key> to jump into the search results window, the results can be navigated
-
1523 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-
1524 # the search. The filter options can be selected when the cursor is inside the
-
1525 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-
1526 # to select a filter and <Enter> or <escape> to activate or cancel the filter
-
1527 # option.
-
1528 # The default value is: YES.
-
1529 # This tag requires that the tag GENERATE_HTML is set to YES.
-
1530 
-
1531 SEARCHENGINE = YES
-
1532 
-
1533 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-
1534 # implemented using a web server instead of a web client using Javascript. There
-
1535 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
-
1536 # setting. When disabled, doxygen will generate a PHP script for searching and
-
1537 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
-
1538 # and searching needs to be provided by external tools. See the section
-
1539 # "External Indexing and Searching" for details.
-
1540 # The default value is: NO.
-
1541 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1542 
-
1543 SERVER_BASED_SEARCH = NO
-
1544 
-
1545 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-
1546 # script for searching. Instead the search results are written to an XML file
-
1547 # which needs to be processed by an external indexer. Doxygen will invoke an
-
1548 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-
1549 # search results.
-
1550 #
-
1551 # Doxygen ships with an example indexer (doxyindexer) and search engine
-
1552 # (doxysearch.cgi) which are based on the open source search engine library
-
1553 # Xapian (see: http://xapian.org/).
-
1554 #
-
1555 # See the section "External Indexing and Searching" for details.
-
1556 # The default value is: NO.
-
1557 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1558 
-
1559 EXTERNAL_SEARCH = NO
-
1560 
-
1561 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
-
1562 # which will return the search results when EXTERNAL_SEARCH is enabled.
-
1563 #
-
1564 # Doxygen ships with an example indexer (doxyindexer) and search engine
-
1565 # (doxysearch.cgi) which are based on the open source search engine library
-
1566 # Xapian (see: http://xapian.org/). See the section "External Indexing and
-
1567 # Searching" for details.
-
1568 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1569 
-
1570 SEARCHENGINE_URL =
-
1571 
-
1572 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-
1573 # search data is written to a file for indexing by an external tool. With the
-
1574 # SEARCHDATA_FILE tag the name of this file can be specified.
-
1575 # The default file is: searchdata.xml.
-
1576 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1577 
-
1578 SEARCHDATA_FILE = searchdata.xml
-
1579 
-
1580 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-
1581 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-
1582 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-
1583 # projects and redirect the results back to the right project.
-
1584 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1585 
-
1586 EXTERNAL_SEARCH_ID =
-
1587 
-
1588 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-
1589 # projects other than the one defined by this configuration file, but that are
-
1590 # all added to the same external search index. Each project needs to have a
-
1591 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-
1592 # to a relative location where the documentation can be found. The format is:
-
1593 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-
1594 # This tag requires that the tag SEARCHENGINE is set to YES.
-
1595 
-
1596 EXTRA_SEARCH_MAPPINGS =
-
1597 
-
1598 #---------------------------------------------------------------------------
-
1599 # Configuration options related to the LaTeX output
-
1600 #---------------------------------------------------------------------------
-
1601 
-
1602 # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
-
1603 # The default value is: YES.
-
1604 
-
1605 GENERATE_LATEX = NO
-
1606 
-
1607 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-
1608 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1609 # it.
-
1610 # The default directory is: latex.
-
1611 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1612 
-
1613 LATEX_OUTPUT = latex
-
1614 
-
1615 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-
1616 # invoked.
-
1617 #
-
1618 # Note that when enabling USE_PDFLATEX this option is only used for generating
-
1619 # bitmaps for formulas in the HTML output, but not in the Makefile that is
-
1620 # written to the output directory.
-
1621 # The default file is: latex.
-
1622 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1623 
-
1624 LATEX_CMD_NAME = latex
-
1625 
-
1626 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-
1627 # index for LaTeX.
-
1628 # The default file is: makeindex.
-
1629 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1630 
-
1631 MAKEINDEX_CMD_NAME = makeindex
-
1632 
-
1633 # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
-
1634 # documents. This may be useful for small projects and may help to save some
-
1635 # trees in general.
-
1636 # The default value is: NO.
-
1637 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1638 
-
1639 COMPACT_LATEX = NO
-
1640 
-
1641 # The PAPER_TYPE tag can be used to set the paper type that is used by the
-
1642 # printer.
-
1643 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-
1644 # 14 inches) and executive (7.25 x 10.5 inches).
-
1645 # The default value is: a4.
-
1646 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1647 
-
1648 PAPER_TYPE = a4wide
-
1649 
-
1650 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-
1651 # that should be included in the LaTeX output. The package can be specified just
-
1652 # by its name or with the correct syntax as to be used with the LaTeX
-
1653 # \usepackage command. To get the times font for instance you can specify :
-
1654 # EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
-
1655 # To use the option intlimits with the amsmath package you can specify:
-
1656 # EXTRA_PACKAGES=[intlimits]{amsmath}
-
1657 # If left blank no extra packages will be included.
-
1658 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1659 
-
1660 EXTRA_PACKAGES =
-
1661 
-
1662 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-
1663 # generated LaTeX document. The header should contain everything until the first
-
1664 # chapter. If it is left blank doxygen will generate a standard header. See
-
1665 # section "Doxygen usage" for information on how to let doxygen write the
-
1666 # default header to a separate file.
-
1667 #
-
1668 # Note: Only use a user-defined header if you know what you are doing! The
-
1669 # following commands have a special meaning inside the header: $title,
-
1670 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-
1671 # $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-
1672 # string, for the replacement values of the other commands the user is referred
-
1673 # to HTML_HEADER.
-
1674 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1675 
-
1676 LATEX_HEADER =
-
1677 
-
1678 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-
1679 # generated LaTeX document. The footer should contain everything after the last
-
1680 # chapter. If it is left blank doxygen will generate a standard footer. See
-
1681 # LATEX_HEADER for more information on how to generate a default footer and what
-
1682 # special commands can be used inside the footer.
-
1683 #
-
1684 # Note: Only use a user-defined footer if you know what you are doing!
-
1685 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1686 
-
1687 LATEX_FOOTER =
-
1688 
-
1689 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-
1690 # LaTeX style sheets that are included after the standard style sheets created
-
1691 # by doxygen. Using this option one can overrule certain style aspects. Doxygen
-
1692 # will copy the style sheet files to the output directory.
-
1693 # Note: The order of the extra style sheet files is of importance (e.g. the last
-
1694 # style sheet in the list overrules the setting of the previous ones in the
-
1695 # list).
-
1696 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1697 
-
1698 LATEX_EXTRA_STYLESHEET =
-
1699 
-
1700 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-
1701 # other source files which should be copied to the LATEX_OUTPUT output
-
1702 # directory. Note that the files will be copied as-is; there are no commands or
-
1703 # markers available.
-
1704 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1705 
-
1706 LATEX_EXTRA_FILES =
-
1707 
-
1708 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-
1709 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-
1710 # contain links (just like the HTML output) instead of page references. This
-
1711 # makes the output suitable for online browsing using a PDF viewer.
-
1712 # The default value is: YES.
-
1713 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1714 
-
1715 PDF_HYPERLINKS = NO
-
1716 
-
1717 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-
1718 # the PDF file directly from the LaTeX files. Set this option to YES, to get a
-
1719 # higher quality PDF documentation.
-
1720 # The default value is: YES.
-
1721 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1722 
-
1723 USE_PDFLATEX = YES
-
1724 
-
1725 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-
1726 # command to the generated LaTeX files. This will instruct LaTeX to keep running
-
1727 # if errors occur, instead of asking the user for help. This option is also used
-
1728 # when generating formulas in HTML.
-
1729 # The default value is: NO.
-
1730 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1731 
-
1732 LATEX_BATCHMODE = NO
-
1733 
-
1734 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-
1735 # index chapters (such as File Index, Compound Index, etc.) in the output.
-
1736 # The default value is: NO.
-
1737 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1738 
-
1739 LATEX_HIDE_INDICES = NO
-
1740 
-
1741 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-
1742 # code with syntax highlighting in the LaTeX output.
-
1743 #
-
1744 # Note that which sources are shown also depends on other settings such as
-
1745 # SOURCE_BROWSER.
-
1746 # The default value is: NO.
-
1747 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1748 
-
1749 LATEX_SOURCE_CODE = NO
-
1750 
-
1751 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-
1752 # bibliography, e.g. plainnat, or ieeetr. See
-
1753 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-
1754 # The default value is: plain.
-
1755 # This tag requires that the tag GENERATE_LATEX is set to YES.
-
1756 
-
1757 LATEX_BIB_STYLE = plain
-
1758 
-
1759 #---------------------------------------------------------------------------
-
1760 # Configuration options related to the RTF output
-
1761 #---------------------------------------------------------------------------
-
1762 
-
1763 # If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
-
1764 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
-
1765 # readers/editors.
-
1766 # The default value is: NO.
-
1767 
-
1768 GENERATE_RTF = NO
-
1769 
-
1770 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-
1771 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1772 # it.
-
1773 # The default directory is: rtf.
-
1774 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1775 
-
1776 RTF_OUTPUT = glm.rtf
-
1777 
-
1778 # If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
-
1779 # documents. This may be useful for small projects and may help to save some
-
1780 # trees in general.
-
1781 # The default value is: NO.
-
1782 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1783 
-
1784 COMPACT_RTF = NO
-
1785 
-
1786 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-
1787 # contain hyperlink fields. The RTF file will contain links (just like the HTML
-
1788 # output) instead of page references. This makes the output suitable for online
-
1789 # browsing using Word or some other Word compatible readers that support those
-
1790 # fields.
-
1791 #
-
1792 # Note: WordPad (write) and others do not support links.
-
1793 # The default value is: NO.
-
1794 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1795 
-
1796 RTF_HYPERLINKS = YES
-
1797 
-
1798 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
-
1799 # file, i.e. a series of assignments. You only have to provide replacements,
-
1800 # missing definitions are set to their default value.
-
1801 #
-
1802 # See also section "Doxygen usage" for information on how to generate the
-
1803 # default style sheet that doxygen normally uses.
-
1804 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1805 
-
1806 RTF_STYLESHEET_FILE =
-
1807 
-
1808 # Set optional variables used in the generation of an RTF document. Syntax is
-
1809 # similar to doxygen's config file. A template extensions file can be generated
-
1810 # using doxygen -e rtf extensionFile.
-
1811 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1812 
-
1813 RTF_EXTENSIONS_FILE =
-
1814 
-
1815 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-
1816 # with syntax highlighting in the RTF output.
-
1817 #
-
1818 # Note that which sources are shown also depends on other settings such as
-
1819 # SOURCE_BROWSER.
-
1820 # The default value is: NO.
-
1821 # This tag requires that the tag GENERATE_RTF is set to YES.
-
1822 
-
1823 RTF_SOURCE_CODE = NO
-
1824 
-
1825 #---------------------------------------------------------------------------
-
1826 # Configuration options related to the man page output
-
1827 #---------------------------------------------------------------------------
-
1828 
-
1829 # If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
-
1830 # classes and files.
-
1831 # The default value is: NO.
-
1832 
-
1833 GENERATE_MAN = NO
-
1834 
-
1835 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-
1836 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1837 # it. A directory man3 will be created inside the directory specified by
-
1838 # MAN_OUTPUT.
-
1839 # The default directory is: man.
-
1840 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1841 
-
1842 MAN_OUTPUT = man
-
1843 
-
1844 # The MAN_EXTENSION tag determines the extension that is added to the generated
-
1845 # man pages. In case the manual section does not start with a number, the number
-
1846 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-
1847 # optional.
-
1848 # The default value is: .3.
-
1849 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1850 
-
1851 MAN_EXTENSION = .3
-
1852 
-
1853 # The MAN_SUBDIR tag determines the name of the directory created within
-
1854 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
-
1855 # MAN_EXTENSION with the initial . removed.
-
1856 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1857 
-
1858 MAN_SUBDIR =
-
1859 
-
1860 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-
1861 # will generate one additional man file for each entity documented in the real
-
1862 # man page(s). These additional files only source the real man page, but without
-
1863 # them the man command would be unable to find the correct page.
-
1864 # The default value is: NO.
-
1865 # This tag requires that the tag GENERATE_MAN is set to YES.
-
1866 
-
1867 MAN_LINKS = NO
-
1868 
-
1869 #---------------------------------------------------------------------------
-
1870 # Configuration options related to the XML output
-
1871 #---------------------------------------------------------------------------
-
1872 
-
1873 # If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
-
1874 # captures the structure of the code including all documentation.
-
1875 # The default value is: NO.
-
1876 
-
1877 GENERATE_XML = NO
-
1878 
-
1879 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-
1880 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-
1881 # it.
-
1882 # The default directory is: xml.
-
1883 # This tag requires that the tag GENERATE_XML is set to YES.
-
1884 
-
1885 XML_OUTPUT = xml
-
1886 
-
1887 # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
-
1888 # listings (including syntax highlighting and cross-referencing information) to
-
1889 # the XML output. Note that enabling this will significantly increase the size
-
1890 # of the XML output.
-
1891 # The default value is: YES.
-
1892 # This tag requires that the tag GENERATE_XML is set to YES.
-
1893 
-
1894 XML_PROGRAMLISTING = YES
-
1895 
-
1896 #---------------------------------------------------------------------------
-
1897 # Configuration options related to the DOCBOOK output
-
1898 #---------------------------------------------------------------------------
-
1899 
-
1900 # If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
-
1901 # that can be used to generate PDF.
-
1902 # The default value is: NO.
-
1903 
-
1904 GENERATE_DOCBOOK = NO
-
1905 
-
1906 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-
1907 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-
1908 # front of it.
-
1909 # The default directory is: docbook.
-
1910 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
1911 
-
1912 DOCBOOK_OUTPUT = docbook
-
1913 
-
1914 # If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-
1915 # program listings (including syntax highlighting and cross-referencing
-
1916 # information) to the DOCBOOK output. Note that enabling this will significantly
-
1917 # increase the size of the DOCBOOK output.
-
1918 # The default value is: NO.
-
1919 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
1920 
-
1921 DOCBOOK_PROGRAMLISTING = NO
-
1922 
-
1923 #---------------------------------------------------------------------------
-
1924 # Configuration options for the AutoGen Definitions output
-
1925 #---------------------------------------------------------------------------
-
1926 
-
1927 # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-
1928 # AutoGen Definitions (see http://autogen.sf.net) file that captures the
-
1929 # structure of the code including all documentation. Note that this feature is
-
1930 # still experimental and incomplete at the moment.
-
1931 # The default value is: NO.
-
1932 
-
1933 GENERATE_AUTOGEN_DEF = NO
-
1934 
-
1935 #---------------------------------------------------------------------------
-
1936 # Configuration options related to the Perl module output
-
1937 #---------------------------------------------------------------------------
-
1938 
-
1939 # If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
-
1940 # file that captures the structure of the code including all documentation.
-
1941 #
-
1942 # Note that this feature is still experimental and incomplete at the moment.
-
1943 # The default value is: NO.
-
1944 
-
1945 GENERATE_PERLMOD = NO
-
1946 
-
1947 # If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
-
1948 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-
1949 # output from the Perl module output.
-
1950 # The default value is: NO.
-
1951 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1952 
-
1953 PERLMOD_LATEX = NO
-
1954 
-
1955 # If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
-
1956 # formatted so it can be parsed by a human reader. This is useful if you want to
-
1957 # understand what is going on. On the other hand, if this tag is set to NO, the
-
1958 # size of the Perl module output will be much smaller and Perl will parse it
-
1959 # just the same.
-
1960 # The default value is: YES.
-
1961 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1962 
-
1963 PERLMOD_PRETTY = YES
-
1964 
-
1965 # The names of the make variables in the generated doxyrules.make file are
-
1966 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-
1967 # so different doxyrules.make files included by the same Makefile don't
-
1968 # overwrite each other's variables.
-
1969 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
1970 
-
1971 PERLMOD_MAKEVAR_PREFIX =
-
1972 
-
1973 #---------------------------------------------------------------------------
-
1974 # Configuration options related to the preprocessor
-
1975 #---------------------------------------------------------------------------
-
1976 
-
1977 # If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
-
1978 # C-preprocessor directives found in the sources and include files.
-
1979 # The default value is: YES.
-
1980 
-
1981 ENABLE_PREPROCESSING = YES
-
1982 
-
1983 # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
-
1984 # in the source code. If set to NO, only conditional compilation will be
-
1985 # performed. Macro expansion can be done in a controlled way by setting
-
1986 # EXPAND_ONLY_PREDEF to YES.
-
1987 # The default value is: NO.
-
1988 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1989 
-
1990 MACRO_EXPANSION = NO
-
1991 
-
1992 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-
1993 # the macro expansion is limited to the macros specified with the PREDEFINED and
-
1994 # EXPAND_AS_DEFINED tags.
-
1995 # The default value is: NO.
-
1996 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
1997 
-
1998 EXPAND_ONLY_PREDEF = NO
-
1999 
-
2000 # If the SEARCH_INCLUDES tag is set to YES, the include files in the
-
2001 # INCLUDE_PATH will be searched if a #include is found.
-
2002 # The default value is: YES.
-
2003 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
2004 
-
2005 SEARCH_INCLUDES = YES
-
2006 
-
2007 # The INCLUDE_PATH tag can be used to specify one or more directories that
-
2008 # contain include files that are not input files but should be processed by the
-
2009 # preprocessor.
-
2010 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
2011 
-
2012 INCLUDE_PATH =
-
2013 
-
2014 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-
2015 # patterns (like *.h and *.hpp) to filter out the header-files in the
-
2016 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
-
2017 # used.
-
2018 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
2019 
-
2020 INCLUDE_FILE_PATTERNS =
-
2021 
-
2022 # The PREDEFINED tag can be used to specify one or more macro names that are
-
2023 # defined before the preprocessor is started (similar to the -D option of e.g.
-
2024 # gcc). The argument of the tag is a list of macros of the form: name or
-
2025 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-
2026 # is assumed. To prevent a macro definition from being undefined via #undef or
-
2027 # recursively expanded use the := operator instead of the = operator.
-
2028 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
2029 
-
2030 PREDEFINED =
-
2031 
-
2032 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-
2033 # tag can be used to specify a list of macro names that should be expanded. The
-
2034 # macro definition that is found in the sources will be used. Use the PREDEFINED
-
2035 # tag if you want to use a different macro definition that overrules the
-
2036 # definition found in the source code.
-
2037 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
2038 
-
2039 EXPAND_AS_DEFINED =
-
2040 
-
2041 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-
2042 # remove all references to function-like macros that are alone on a line, have
-
2043 # an all uppercase name, and do not end with a semicolon. Such function macros
-
2044 # are typically used for boiler-plate code, and will confuse the parser if not
-
2045 # removed.
-
2046 # The default value is: YES.
-
2047 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
2048 
-
2049 SKIP_FUNCTION_MACROS = YES
-
2050 
-
2051 #---------------------------------------------------------------------------
-
2052 # Configuration options related to external references
-
2053 #---------------------------------------------------------------------------
-
2054 
-
2055 # The TAGFILES tag can be used to specify one or more tag files. For each tag
-
2056 # file the location of the external documentation should be added. The format of
-
2057 # a tag file without this location is as follows:
-
2058 # TAGFILES = file1 file2 ...
-
2059 # Adding location for the tag files is done as follows:
-
2060 # TAGFILES = file1=loc1 "file2 = loc2" ...
-
2061 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
-
2062 # section "Linking to external documentation" for more information about the use
-
2063 # of tag files.
-
2064 # Note: Each tag file must have a unique name (where the name does NOT include
-
2065 # the path). If a tag file is not located in the directory in which doxygen is
-
2066 # run, you must also specify the path to the tagfile here.
-
2067 
-
2068 TAGFILES =
-
2069 
-
2070 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-
2071 # tag file that is based on the input files it reads. See section "Linking to
-
2072 # external documentation" for more information about the usage of tag files.
-
2073 
-
2074 GENERATE_TAGFILE =
-
2075 
-
2076 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-
2077 # the class index. If set to NO, only the inherited external classes will be
-
2078 # listed.
-
2079 # The default value is: NO.
-
2080 
-
2081 ALLEXTERNALS = NO
-
2082 
-
2083 # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-
2084 # in the modules index. If set to NO, only the current project's groups will be
-
2085 # listed.
-
2086 # The default value is: YES.
-
2087 
-
2088 EXTERNAL_GROUPS = YES
-
2089 
-
2090 # If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
-
2091 # the related pages index. If set to NO, only the current project's pages will
-
2092 # be listed.
-
2093 # The default value is: YES.
-
2094 
-
2095 EXTERNAL_PAGES = YES
-
2096 
-
2097 # The PERL_PATH should be the absolute path and name of the perl script
-
2098 # interpreter (i.e. the result of 'which perl').
-
2099 # The default file (with absolute path) is: /usr/bin/perl.
-
2100 
-
2101 PERL_PATH = /usr/bin/perl
-
2102 
-
2103 #---------------------------------------------------------------------------
-
2104 # Configuration options related to the dot tool
-
2105 #---------------------------------------------------------------------------
-
2106 
-
2107 # If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-
2108 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-
2109 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
-
2110 # disabled, but it is recommended to install and use dot, since it yields more
-
2111 # powerful graphs.
-
2112 # The default value is: YES.
-
2113 
-
2114 CLASS_DIAGRAMS = YES
-
2115 
-
2116 # You can define message sequence charts within doxygen comments using the \msc
-
2117 # command. Doxygen will then run the mscgen tool (see:
-
2118 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-
2119 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
-
2120 # the mscgen tool resides. If left empty the tool is assumed to be found in the
-
2121 # default search path.
-
2122 
-
2123 MSCGEN_PATH =
-
2124 
-
2125 # You can include diagrams made with dia in doxygen documentation. Doxygen will
-
2126 # then run dia to produce the diagram and insert it in the documentation. The
-
2127 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
-
2128 # If left empty dia is assumed to be found in the default search path.
-
2129 
-
2130 DIA_PATH =
-
2131 
-
2132 # If set to YES the inheritance and collaboration graphs will hide inheritance
-
2133 # and usage relations if the target is undocumented or is not a class.
-
2134 # The default value is: YES.
-
2135 
-
2136 HIDE_UNDOC_RELATIONS = YES
-
2137 
-
2138 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-
2139 # available from the path. This tool is part of Graphviz (see:
-
2140 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-
2141 # Bell Labs. The other options in this section have no effect if this option is
-
2142 # set to NO
-
2143 # The default value is: NO.
-
2144 
-
2145 HAVE_DOT = NO
-
2146 
-
2147 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-
2148 # to run in parallel. When set to 0 doxygen will base this on the number of
-
2149 # processors available in the system. You can set it explicitly to a value
-
2150 # larger than 0 to get control over the balance between CPU load and processing
-
2151 # speed.
-
2152 # Minimum value: 0, maximum value: 32, default value: 0.
-
2153 # This tag requires that the tag HAVE_DOT is set to YES.
-
2154 
-
2155 DOT_NUM_THREADS = 0
-
2156 
-
2157 # When you want a differently looking font in the dot files that doxygen
-
2158 # generates you can specify the font name using DOT_FONTNAME. You need to make
-
2159 # sure dot is able to find the font, which can be done by putting it in a
-
2160 # standard location or by setting the DOTFONTPATH environment variable or by
-
2161 # setting DOT_FONTPATH to the directory containing the font.
-
2162 # The default value is: Helvetica.
-
2163 # This tag requires that the tag HAVE_DOT is set to YES.
-
2164 
-
2165 DOT_FONTNAME = Helvetica
-
2166 
-
2167 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-
2168 # dot graphs.
-
2169 # Minimum value: 4, maximum value: 24, default value: 10.
-
2170 # This tag requires that the tag HAVE_DOT is set to YES.
-
2171 
-
2172 DOT_FONTSIZE = 10
-
2173 
-
2174 # By default doxygen will tell dot to use the default font as specified with
-
2175 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-
2176 # the path where dot can find it using this tag.
-
2177 # This tag requires that the tag HAVE_DOT is set to YES.
-
2178 
-
2179 DOT_FONTPATH =
-
2180 
-
2181 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-
2182 # each documented class showing the direct and indirect inheritance relations.
-
2183 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-
2184 # The default value is: YES.
-
2185 # This tag requires that the tag HAVE_DOT is set to YES.
-
2186 
-
2187 CLASS_GRAPH = YES
-
2188 
-
2189 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-
2190 # graph for each documented class showing the direct and indirect implementation
-
2191 # dependencies (inheritance, containment, and class references variables) of the
-
2192 # class with other documented classes.
-
2193 # The default value is: YES.
-
2194 # This tag requires that the tag HAVE_DOT is set to YES.
-
2195 
-
2196 COLLABORATION_GRAPH = YES
-
2197 
-
2198 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-
2199 # groups, showing the direct groups dependencies.
-
2200 # The default value is: YES.
-
2201 # This tag requires that the tag HAVE_DOT is set to YES.
-
2202 
-
2203 GROUP_GRAPHS = YES
-
2204 
-
2205 # If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
-
2206 # collaboration diagrams in a style similar to the OMG's Unified Modeling
-
2207 # Language.
-
2208 # The default value is: NO.
-
2209 # This tag requires that the tag HAVE_DOT is set to YES.
-
2210 
-
2211 UML_LOOK = NO
-
2212 
-
2213 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-
2214 # class node. If there are many fields or methods and many nodes the graph may
-
2215 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-
2216 # number of items for each type to make the size more manageable. Set this to 0
-
2217 # for no limit. Note that the threshold may be exceeded by 50% before the limit
-
2218 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-
2219 # but if the number exceeds 15, the total amount of fields shown is limited to
-
2220 # 10.
-
2221 # Minimum value: 0, maximum value: 100, default value: 10.
-
2222 # This tag requires that the tag HAVE_DOT is set to YES.
-
2223 
-
2224 UML_LIMIT_NUM_FIELDS = 10
-
2225 
-
2226 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-
2227 # collaboration graphs will show the relations between templates and their
-
2228 # instances.
-
2229 # The default value is: NO.
-
2230 # This tag requires that the tag HAVE_DOT is set to YES.
-
2231 
-
2232 TEMPLATE_RELATIONS = NO
-
2233 
-
2234 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-
2235 # YES then doxygen will generate a graph for each documented file showing the
-
2236 # direct and indirect include dependencies of the file with other documented
-
2237 # files.
-
2238 # The default value is: YES.
-
2239 # This tag requires that the tag HAVE_DOT is set to YES.
-
2240 
-
2241 INCLUDE_GRAPH = YES
-
2242 
-
2243 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-
2244 # set to YES then doxygen will generate a graph for each documented file showing
-
2245 # the direct and indirect include dependencies of the file with other documented
-
2246 # files.
-
2247 # The default value is: YES.
-
2248 # This tag requires that the tag HAVE_DOT is set to YES.
-
2249 
-
2250 INCLUDED_BY_GRAPH = YES
-
2251 
-
2252 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-
2253 # dependency graph for every global function or class method.
-
2254 #
-
2255 # Note that enabling this option will significantly increase the time of a run.
-
2256 # So in most cases it will be better to enable call graphs for selected
-
2257 # functions only using the \callgraph command. Disabling a call graph can be
-
2258 # accomplished by means of the command \hidecallgraph.
-
2259 # The default value is: NO.
-
2260 # This tag requires that the tag HAVE_DOT is set to YES.
-
2261 
-
2262 CALL_GRAPH = YES
-
2263 
-
2264 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-
2265 # dependency graph for every global function or class method.
-
2266 #
-
2267 # Note that enabling this option will significantly increase the time of a run.
-
2268 # So in most cases it will be better to enable caller graphs for selected
-
2269 # functions only using the \callergraph command. Disabling a caller graph can be
-
2270 # accomplished by means of the command \hidecallergraph.
-
2271 # The default value is: NO.
-
2272 # This tag requires that the tag HAVE_DOT is set to YES.
-
2273 
-
2274 CALLER_GRAPH = YES
-
2275 
-
2276 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-
2277 # hierarchy of all classes instead of a textual one.
-
2278 # The default value is: YES.
-
2279 # This tag requires that the tag HAVE_DOT is set to YES.
-
2280 
-
2281 GRAPHICAL_HIERARCHY = YES
-
2282 
-
2283 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-
2284 # dependencies a directory has on other directories in a graphical way. The
-
2285 # dependency relations are determined by the #include relations between the
-
2286 # files in the directories.
-
2287 # The default value is: YES.
-
2288 # This tag requires that the tag HAVE_DOT is set to YES.
-
2289 
-
2290 DIRECTORY_GRAPH = YES
-
2291 
-
2292 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-
2293 # generated by dot. For an explanation of the image formats see the section
-
2294 # output formats in the documentation of the dot tool (Graphviz (see:
-
2295 # http://www.graphviz.org/)).
-
2296 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-
2297 # to make the SVG files visible in IE 9+ (other browsers do not have this
-
2298 # requirement).
-
2299 # Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
-
2300 # png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
-
2301 # png:gdiplus:gdiplus.
-
2302 # The default value is: png.
-
2303 # This tag requires that the tag HAVE_DOT is set to YES.
-
2304 
-
2305 DOT_IMAGE_FORMAT = png
-
2306 
-
2307 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-
2308 # enable generation of interactive SVG images that allow zooming and panning.
-
2309 #
-
2310 # Note that this requires a modern browser other than Internet Explorer. Tested
-
2311 # and working are Firefox, Chrome, Safari, and Opera.
-
2312 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-
2313 # the SVG files visible. Older versions of IE do not have SVG support.
-
2314 # The default value is: NO.
-
2315 # This tag requires that the tag HAVE_DOT is set to YES.
-
2316 
-
2317 INTERACTIVE_SVG = NO
-
2318 
-
2319 # The DOT_PATH tag can be used to specify the path where the dot tool can be
-
2320 # found. If left blank, it is assumed the dot tool can be found in the path.
-
2321 # This tag requires that the tag HAVE_DOT is set to YES.
-
2322 
-
2323 DOT_PATH =
-
2324 
-
2325 # The DOTFILE_DIRS tag can be used to specify one or more directories that
-
2326 # contain dot files that are included in the documentation (see the \dotfile
-
2327 # command).
-
2328 # This tag requires that the tag HAVE_DOT is set to YES.
-
2329 
-
2330 DOTFILE_DIRS =
-
2331 
-
2332 # The MSCFILE_DIRS tag can be used to specify one or more directories that
-
2333 # contain msc files that are included in the documentation (see the \mscfile
-
2334 # command).
-
2335 
-
2336 MSCFILE_DIRS =
-
2337 
-
2338 # The DIAFILE_DIRS tag can be used to specify one or more directories that
-
2339 # contain dia files that are included in the documentation (see the \diafile
-
2340 # command).
-
2341 
-
2342 DIAFILE_DIRS =
-
2343 
-
2344 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-
2345 # path where java can find the plantuml.jar file. If left blank, it is assumed
-
2346 # PlantUML is not used or called during a preprocessing step. Doxygen will
-
2347 # generate a warning when it encounters a \startuml command in this case and
-
2348 # will not generate output for the diagram.
-
2349 
-
2350 PLANTUML_JAR_PATH =
-
2351 
-
2352 # When using plantuml, the specified paths are searched for files specified by
-
2353 # the !include statement in a plantuml block.
-
2354 
-
2355 PLANTUML_INCLUDE_PATH =
-
2356 
-
2357 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-
2358 # that will be shown in the graph. If the number of nodes in a graph becomes
-
2359 # larger than this value, doxygen will truncate the graph, which is visualized
-
2360 # by representing a node as a red box. Note that doxygen if the number of direct
-
2361 # children of the root node in a graph is already larger than
-
2362 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-
2363 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
2364 # Minimum value: 0, maximum value: 10000, default value: 50.
-
2365 # This tag requires that the tag HAVE_DOT is set to YES.
-
2366 
-
2367 DOT_GRAPH_MAX_NODES = 50
-
2368 
-
2369 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-
2370 # generated by dot. A depth value of 3 means that only nodes reachable from the
-
2371 # root by following a path via at most 3 edges will be shown. Nodes that lay
-
2372 # further from the root node will be omitted. Note that setting this option to 1
-
2373 # or 2 may greatly reduce the computation time needed for large code bases. Also
-
2374 # note that the size of a graph can be further restricted by
-
2375 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
2376 # Minimum value: 0, maximum value: 1000, default value: 0.
-
2377 # This tag requires that the tag HAVE_DOT is set to YES.
-
2378 
-
2379 MAX_DOT_GRAPH_DEPTH = 1000
-
2380 
-
2381 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-
2382 # background. This is disabled by default, because dot on Windows does not seem
-
2383 # to support this out of the box.
-
2384 #
-
2385 # Warning: Depending on the platform used, enabling this option may lead to
-
2386 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-
2387 # read).
-
2388 # The default value is: NO.
-
2389 # This tag requires that the tag HAVE_DOT is set to YES.
-
2390 
-
2391 DOT_TRANSPARENT = NO
-
2392 
-
2393 # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
-
2394 # files in one run (i.e. multiple -o and -T options on the command line). This
-
2395 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
-
2396 # this, this feature is disabled by default.
-
2397 # The default value is: NO.
-
2398 # This tag requires that the tag HAVE_DOT is set to YES.
-
2399 
-
2400 DOT_MULTI_TARGETS = NO
-
2401 
-
2402 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-
2403 # explaining the meaning of the various boxes and arrows in the dot generated
-
2404 # graphs.
-
2405 # The default value is: YES.
-
2406 # This tag requires that the tag HAVE_DOT is set to YES.
-
2407 
-
2408 GENERATE_LEGEND = YES
-
2409 
-
2410 # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
-
2411 # files that are used to generate the various graphs.
-
2412 # The default value is: YES.
-
2413 # This tag requires that the tag HAVE_DOT is set to YES.
-
2414 
-
2415 DOT_CLEANUP = YES
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: man.doxy Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
man.doxy
+
+
+
1 # Doxyfile 1.8.10
+
2 
+
3 # This file describes the settings to be used by the documentation system
+
4 # doxygen (www.doxygen.org) for a project.
+
5 #
+
6 # All text after a double hash (##) is considered a comment and is placed in
+
7 # front of the TAG it is preceding.
+
8 #
+
9 # All text after a single hash (#) is considered a comment and will be ignored.
+
10 # The format is:
+
11 # TAG = value [value, ...]
+
12 # For lists, items can also be appended using:
+
13 # TAG += value [value, ...]
+
14 # Values that contain spaces should be placed between quotes (\" \").
+
15 
+
16 #---------------------------------------------------------------------------
+
17 # Project related configuration options
+
18 #---------------------------------------------------------------------------
+
19 
+
20 # This tag specifies the encoding used for all characters in the config file
+
21 # that follow. The default is UTF-8 which is also the encoding used for all text
+
22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+
23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+
24 # for the list of possible encodings.
+
25 # The default value is: UTF-8.
+
26 
+
27 DOXYFILE_ENCODING = UTF-8
+
28 
+
29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+
30 # double-quotes, unless you are using Doxywizard) that should identify the
+
31 # project for which the documentation is generated. This name is used in the
+
32 # title of most generated pages and in a few other places.
+
33 # The default value is: My Project.
+
34 
+
35 PROJECT_NAME = "0.9.9 API documentation"
+
36 
+
37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+
38 # could be handy for archiving the generated documentation or if some version
+
39 # control system is used.
+
40 
+
41 PROJECT_NUMBER =
+
42 
+
43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
+
44 # for a project that appears at the top of each page and should give viewer a
+
45 # quick idea about the purpose of the project. Keep the description short.
+
46 
+
47 PROJECT_BRIEF =
+
48 
+
49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+
50 # in the documentation. The maximum height of the logo should not exceed 55
+
51 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+
52 # the logo to the output directory.
+
53 
+
54 PROJECT_LOGO = theme/logo-mini.png
+
55 
+
56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+
57 # into which the generated documentation will be written. If a relative path is
+
58 # entered, it will be relative to the location where doxygen was started. If
+
59 # left blank the current directory will be used.
+
60 
+
61 OUTPUT_DIRECTORY = .
+
62 
+
63 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+
64 # directories (in 2 levels) under the output directory of each output format and
+
65 # will distribute the generated files over these directories. Enabling this
+
66 # option can be useful when feeding doxygen a huge amount of source files, where
+
67 # putting all generated files in the same directory would otherwise causes
+
68 # performance problems for the file system.
+
69 # The default value is: NO.
+
70 
+
71 CREATE_SUBDIRS = NO
+
72 
+
73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+
74 # characters to appear in the names of generated files. If set to NO, non-ASCII
+
75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+
76 # U+3044.
+
77 # The default value is: NO.
+
78 
+
79 ALLOW_UNICODE_NAMES = NO
+
80 
+
81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
+
82 # documentation generated by doxygen is written. Doxygen will use this
+
83 # information to generate all constant output in the proper language.
+
84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+
85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+
86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+
87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+
88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+
89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+
90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+
91 # Ukrainian and Vietnamese.
+
92 # The default value is: English.
+
93 
+
94 OUTPUT_LANGUAGE = English
+
95 
+
96 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+
97 # descriptions after the members that are listed in the file and class
+
98 # documentation (similar to Javadoc). Set to NO to disable this.
+
99 # The default value is: YES.
+
100 
+
101 BRIEF_MEMBER_DESC = YES
+
102 
+
103 # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+
104 # description of a member or function before the detailed description
+
105 #
+
106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+
107 # brief descriptions will be completely suppressed.
+
108 # The default value is: YES.
+
109 
+
110 REPEAT_BRIEF = YES
+
111 
+
112 # This tag implements a quasi-intelligent brief description abbreviator that is
+
113 # used to form the text in various listings. Each string in this list, if found
+
114 # as the leading text of the brief description, will be stripped from the text
+
115 # and the result, after processing the whole list, is used as the annotated
+
116 # text. Otherwise, the brief description is used as-is. If left blank, the
+
117 # following values are used ($name is automatically replaced with the name of
+
118 # the entity):The $name class, The $name widget, The $name file, is, provides,
+
119 # specifies, contains, represents, a, an and the.
+
120 
+
121 ABBREVIATE_BRIEF = "The $name class " \
+
122  "The $name widget " \
+
123  "The $name file " \
+
124  is \
+
125  provides \
+
126  specifies \
+
127  contains \
+
128  represents \
+
129  a \
+
130  an \
+
131  the
+
132 
+
133 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+
134 # doxygen will generate a detailed section even if there is only a brief
+
135 # description.
+
136 # The default value is: NO.
+
137 
+
138 ALWAYS_DETAILED_SEC = NO
+
139 
+
140 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+
141 # inherited members of a class in the documentation of that class as if those
+
142 # members were ordinary class members. Constructors, destructors and assignment
+
143 # operators of the base classes will not be shown.
+
144 # The default value is: NO.
+
145 
+
146 INLINE_INHERITED_MEMB = NO
+
147 
+
148 # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+
149 # before files name in the file list and in the header files. If set to NO the
+
150 # shortest path that makes the file name unique will be used
+
151 # The default value is: YES.
+
152 
+
153 FULL_PATH_NAMES = NO
+
154 
+
155 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+
156 # Stripping is only done if one of the specified strings matches the left-hand
+
157 # part of the path. The tag can be used to show relative paths in the file list.
+
158 # If left blank the directory from which doxygen is run is used as the path to
+
159 # strip.
+
160 #
+
161 # Note that you can specify absolute paths here, but also relative paths, which
+
162 # will be relative from the directory where doxygen is started.
+
163 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
164 
+
165 STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ "
+
166 
+
167 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+
168 # path mentioned in the documentation of a class, which tells the reader which
+
169 # header file to include in order to use a class. If left blank only the name of
+
170 # the header file containing the class definition is used. Otherwise one should
+
171 # specify the list of include paths that are normally passed to the compiler
+
172 # using the -I flag.
+
173 
+
174 STRIP_FROM_INC_PATH =
+
175 
+
176 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+
177 # less readable) file names. This can be useful is your file systems doesn't
+
178 # support long names like on DOS, Mac, or CD-ROM.
+
179 # The default value is: NO.
+
180 
+
181 SHORT_NAMES = YES
+
182 
+
183 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+
184 # first line (until the first dot) of a Javadoc-style comment as the brief
+
185 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
+
186 # style comments (thus requiring an explicit @brief command for a brief
+
187 # description.)
+
188 # The default value is: NO.
+
189 
+
190 JAVADOC_AUTOBRIEF = YES
+
191 
+
192 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+
193 # line (until the first dot) of a Qt-style comment as the brief description. If
+
194 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+
195 # requiring an explicit \brief command for a brief description.)
+
196 # The default value is: NO.
+
197 
+
198 QT_AUTOBRIEF = NO
+
199 
+
200 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+
201 # multi-line C++ special comment block (i.e. a block of
+
202 # a brief description. This used to be the default behavior. The new default is
+
203 # to treat a multi-line C++ comment block as a detailed description. Set this
+
204 # tag to YES if you prefer the old behavior instead.
+
205 #
+
206 # Note that setting this tag to YES also means that rational rose comments are
+
207 # not recognized any more.
+
208 # The default value is: NO.
+
209 
+
210 MULTILINE_CPP_IS_BRIEF = NO
+
211 
+
212 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+
213 # documentation from any documented member that it re-implements.
+
214 # The default value is: YES.
+
215 
+
216 INHERIT_DOCS = YES
+
217 
+
218 # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+
219 # page for each member. If set to NO, the documentation of a member will be part
+
220 # of the file/class/namespace that contains it.
+
221 # The default value is: NO.
+
222 
+
223 SEPARATE_MEMBER_PAGES = NO
+
224 
+
225 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+
226 # uses this value to replace tabs by spaces in code fragments.
+
227 # Minimum value: 1, maximum value: 16, default value: 4.
+
228 
+
229 TAB_SIZE = 8
+
230 
+
231 # This tag can be used to specify a number of aliases that act as commands in
+
232 # the documentation. An alias has the form:
+
233 # name=value
+
234 # For example adding
+
235 # "sideeffect=@par Side Effects:\n"
+
236 # will allow you to put the command \sideeffect (or @sideeffect) in the
+
237 # documentation, which will result in a user-defined paragraph with heading
+
238 # "Side Effects:". You can put \n's in the value part of an alias to insert
+
239 # newlines.
+
240 
+
241 ALIASES =
+
242 
+
243 # This tag can be used to specify a number of word-keyword mappings (TCL only).
+
244 # A mapping has the form "name=value". For example adding "class=itcl::class"
+
245 # will allow you to use the command class in the itcl::class meaning.
+
246 
+
247 TCL_SUBST =
+
248 
+
249 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+
250 # only. Doxygen will then generate output that is more tailored for C. For
+
251 # instance, some of the names that are used will be different. The list of all
+
252 # members will be omitted, etc.
+
253 # The default value is: NO.
+
254 
+
255 OPTIMIZE_OUTPUT_FOR_C = NO
+
256 
+
257 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+
258 # Python sources only. Doxygen will then generate output that is more tailored
+
259 # for that language. For instance, namespaces will be presented as packages,
+
260 # qualified scopes will look different, etc.
+
261 # The default value is: NO.
+
262 
+
263 OPTIMIZE_OUTPUT_JAVA = NO
+
264 
+
265 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+
266 # sources. Doxygen will then generate output that is tailored for Fortran.
+
267 # The default value is: NO.
+
268 
+
269 OPTIMIZE_FOR_FORTRAN = NO
+
270 
+
271 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+
272 # sources. Doxygen will then generate output that is tailored for VHDL.
+
273 # The default value is: NO.
+
274 
+
275 OPTIMIZE_OUTPUT_VHDL = NO
+
276 
+
277 # Doxygen selects the parser to use depending on the extension of the files it
+
278 # parses. With this tag you can assign which parser to use for a given
+
279 # extension. Doxygen has a built-in mapping, but you can override or extend it
+
280 # using this tag. The format is ext=language, where ext is a file extension, and
+
281 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+
282 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+
283 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+
284 # Fortran. In the later case the parser tries to guess whether the code is fixed
+
285 # or free formatted code, this is the default for Fortran type files), VHDL. For
+
286 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
+
287 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
+
288 #
+
289 # Note: For files without extension you can use no_extension as a placeholder.
+
290 #
+
291 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+
292 # the files are not read by doxygen.
+
293 
+
294 EXTENSION_MAPPING =
+
295 
+
296 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+
297 # according to the Markdown format, which allows for more readable
+
298 # documentation. See http://daringfireball.net/projects/markdown/ for details.
+
299 # The output of markdown processing is further processed by doxygen, so you can
+
300 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+
301 # case of backward compatibilities issues.
+
302 # The default value is: YES.
+
303 
+
304 MARKDOWN_SUPPORT = YES
+
305 
+
306 # When enabled doxygen tries to link words that correspond to documented
+
307 # classes, or namespaces to their corresponding documentation. Such a link can
+
308 # be prevented in individual cases by putting a % sign in front of the word or
+
309 # globally by setting AUTOLINK_SUPPORT to NO.
+
310 # The default value is: YES.
+
311 
+
312 AUTOLINK_SUPPORT = YES
+
313 
+
314 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+
315 # to include (a tag file for) the STL sources as input, then you should set this
+
316 # tag to YES in order to let doxygen match functions declarations and
+
317 # definitions whose arguments contain STL classes (e.g. func(std::string);
+
318 # versus func(std::string) {}). This also make the inheritance and collaboration
+
319 # diagrams that involve STL classes more complete and accurate.
+
320 # The default value is: NO.
+
321 
+
322 BUILTIN_STL_SUPPORT = NO
+
323 
+
324 # If you use Microsoft's C++/CLI language, you should set this option to YES to
+
325 # enable parsing support.
+
326 # The default value is: NO.
+
327 
+
328 CPP_CLI_SUPPORT = NO
+
329 
+
330 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+
331 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+
332 # will parse them like normal C++ but will assume all classes use public instead
+
333 # of private inheritance when no explicit protection keyword is present.
+
334 # The default value is: NO.
+
335 
+
336 SIP_SUPPORT = NO
+
337 
+
338 # For Microsoft's IDL there are propget and propput attributes to indicate
+
339 # getter and setter methods for a property. Setting this option to YES will make
+
340 # doxygen to replace the get and set methods by a property in the documentation.
+
341 # This will only work if the methods are indeed getting or setting a simple
+
342 # type. If this is not the case, or you want to show the methods anyway, you
+
343 # should set this option to NO.
+
344 # The default value is: YES.
+
345 
+
346 IDL_PROPERTY_SUPPORT = YES
+
347 
+
348 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+
349 # tag is set to YES then doxygen will reuse the documentation of the first
+
350 # member in the group (if any) for the other members of the group. By default
+
351 # all members of a group must be documented explicitly.
+
352 # The default value is: NO.
+
353 
+
354 DISTRIBUTE_GROUP_DOC = NO
+
355 
+
356 # If one adds a struct or class to a group and this option is enabled, then also
+
357 # any nested class or struct is added to the same group. By default this option
+
358 # is disabled and one has to add nested compounds explicitly via \ingroup.
+
359 # The default value is: NO.
+
360 
+
361 GROUP_NESTED_COMPOUNDS = NO
+
362 
+
363 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
+
364 # (for instance a group of public functions) to be put as a subgroup of that
+
365 # type (e.g. under the Public Functions section). Set it to NO to prevent
+
366 # subgrouping. Alternatively, this can be done per class using the
+
367 # \nosubgrouping command.
+
368 # The default value is: YES.
+
369 
+
370 SUBGROUPING = NO
+
371 
+
372 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+
373 # are shown inside the group in which they are included (e.g. using \ingroup)
+
374 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+
375 # and RTF).
+
376 #
+
377 # Note that this feature does not work in combination with
+
378 # SEPARATE_MEMBER_PAGES.
+
379 # The default value is: NO.
+
380 
+
381 INLINE_GROUPED_CLASSES = NO
+
382 
+
383 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+
384 # with only public data fields or simple typedef fields will be shown inline in
+
385 # the documentation of the scope in which they are defined (i.e. file,
+
386 # namespace, or group documentation), provided this scope is documented. If set
+
387 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
+
388 # Man pages) or section (for LaTeX and RTF).
+
389 # The default value is: NO.
+
390 
+
391 INLINE_SIMPLE_STRUCTS = NO
+
392 
+
393 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+
394 # enum is documented as struct, union, or enum with the name of the typedef. So
+
395 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+
396 # with name TypeT. When disabled the typedef will appear as a member of a file,
+
397 # namespace, or class. And the struct will be named TypeS. This can typically be
+
398 # useful for C code in case the coding convention dictates that all compound
+
399 # types are typedef'ed and only the typedef is referenced, never the tag name.
+
400 # The default value is: NO.
+
401 
+
402 TYPEDEF_HIDES_STRUCT = NO
+
403 
+
404 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+
405 # cache is used to resolve symbols given their name and scope. Since this can be
+
406 # an expensive process and often the same symbol appears multiple times in the
+
407 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+
408 # doxygen will become slower. If the cache is too large, memory is wasted. The
+
409 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+
410 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+
411 # symbols. At the end of a run doxygen will report the cache usage and suggest
+
412 # the optimal cache size from a speed point of view.
+
413 # Minimum value: 0, maximum value: 9, default value: 0.
+
414 
+
415 LOOKUP_CACHE_SIZE = 0
+
416 
+
417 #---------------------------------------------------------------------------
+
418 # Build related configuration options
+
419 #---------------------------------------------------------------------------
+
420 
+
421 # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+
422 # documentation are documented, even if no documentation was available. Private
+
423 # class members and static file members will be hidden unless the
+
424 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+
425 # Note: This will also disable the warnings about undocumented members that are
+
426 # normally produced when WARNINGS is set to YES.
+
427 # The default value is: NO.
+
428 
+
429 EXTRACT_ALL = NO
+
430 
+
431 # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+
432 # be included in the documentation.
+
433 # The default value is: NO.
+
434 
+
435 EXTRACT_PRIVATE = NO
+
436 
+
437 # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+
438 # scope will be included in the documentation.
+
439 # The default value is: NO.
+
440 
+
441 EXTRACT_PACKAGE = NO
+
442 
+
443 # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+
444 # included in the documentation.
+
445 # The default value is: NO.
+
446 
+
447 EXTRACT_STATIC = YES
+
448 
+
449 # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+
450 # locally in source files will be included in the documentation. If set to NO,
+
451 # only classes defined in header files are included. Does not have any effect
+
452 # for Java sources.
+
453 # The default value is: YES.
+
454 
+
455 EXTRACT_LOCAL_CLASSES = NO
+
456 
+
457 # This flag is only useful for Objective-C code. If set to YES, local methods,
+
458 # which are defined in the implementation section but not in the interface are
+
459 # included in the documentation. If set to NO, only methods in the interface are
+
460 # included.
+
461 # The default value is: NO.
+
462 
+
463 EXTRACT_LOCAL_METHODS = NO
+
464 
+
465 # If this flag is set to YES, the members of anonymous namespaces will be
+
466 # extracted and appear in the documentation as a namespace called
+
467 # 'anonymous_namespace{file}', where file will be replaced with the base name of
+
468 # the file that contains the anonymous namespace. By default anonymous namespace
+
469 # are hidden.
+
470 # The default value is: NO.
+
471 
+
472 EXTRACT_ANON_NSPACES = NO
+
473 
+
474 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+
475 # undocumented members inside documented classes or files. If set to NO these
+
476 # members will be included in the various overviews, but no documentation
+
477 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
+
478 # The default value is: NO.
+
479 
+
480 HIDE_UNDOC_MEMBERS = YES
+
481 
+
482 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+
483 # undocumented classes that are normally visible in the class hierarchy. If set
+
484 # to NO, these classes will be included in the various overviews. This option
+
485 # has no effect if EXTRACT_ALL is enabled.
+
486 # The default value is: NO.
+
487 
+
488 HIDE_UNDOC_CLASSES = YES
+
489 
+
490 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+
491 # (class|struct|union) declarations. If set to NO, these declarations will be
+
492 # included in the documentation.
+
493 # The default value is: NO.
+
494 
+
495 HIDE_FRIEND_COMPOUNDS = YES
+
496 
+
497 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+
498 # documentation blocks found inside the body of a function. If set to NO, these
+
499 # blocks will be appended to the function's detailed documentation block.
+
500 # The default value is: NO.
+
501 
+
502 HIDE_IN_BODY_DOCS = YES
+
503 
+
504 # The INTERNAL_DOCS tag determines if documentation that is typed after a
+
505 # \internal command is included. If the tag is set to NO then the documentation
+
506 # will be excluded. Set it to YES to include the internal documentation.
+
507 # The default value is: NO.
+
508 
+
509 INTERNAL_DOCS = NO
+
510 
+
511 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+
512 # names in lower-case letters. If set to YES, upper-case letters are also
+
513 # allowed. This is useful if you have classes or files whose names only differ
+
514 # in case and if your file system supports case sensitive file names. Windows
+
515 # and Mac users are advised to set this option to NO.
+
516 # The default value is: system dependent.
+
517 
+
518 CASE_SENSE_NAMES = YES
+
519 
+
520 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+
521 # their full class and namespace scopes in the documentation. If set to YES, the
+
522 # scope will be hidden.
+
523 # The default value is: NO.
+
524 
+
525 HIDE_SCOPE_NAMES = YES
+
526 
+
527 # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+
528 # append additional text to a page's title, such as Class Reference. If set to
+
529 # YES the compound reference will be hidden.
+
530 # The default value is: NO.
+
531 
+
532 HIDE_COMPOUND_REFERENCE= NO
+
533 
+
534 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+
535 # the files that are included by a file in the documentation of that file.
+
536 # The default value is: YES.
+
537 
+
538 SHOW_INCLUDE_FILES = NO
+
539 
+
540 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+
541 # grouped member an include statement to the documentation, telling the reader
+
542 # which file to include in order to use the member.
+
543 # The default value is: NO.
+
544 
+
545 SHOW_GROUPED_MEMB_INC = NO
+
546 
+
547 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+
548 # files with double quotes in the documentation rather than with sharp brackets.
+
549 # The default value is: NO.
+
550 
+
551 FORCE_LOCAL_INCLUDES = NO
+
552 
+
553 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+
554 # documentation for inline members.
+
555 # The default value is: YES.
+
556 
+
557 INLINE_INFO = NO
+
558 
+
559 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+
560 # (detailed) documentation of file and class members alphabetically by member
+
561 # name. If set to NO, the members will appear in declaration order.
+
562 # The default value is: YES.
+
563 
+
564 SORT_MEMBER_DOCS = YES
+
565 
+
566 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+
567 # descriptions of file, namespace and class members alphabetically by member
+
568 # name. If set to NO, the members will appear in declaration order. Note that
+
569 # this will also influence the order of the classes in the class list.
+
570 # The default value is: NO.
+
571 
+
572 SORT_BRIEF_DOCS = YES
+
573 
+
574 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+
575 # (brief and detailed) documentation of class members so that constructors and
+
576 # destructors are listed first. If set to NO the constructors will appear in the
+
577 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+
578 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+
579 # member documentation.
+
580 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+
581 # detailed member documentation.
+
582 # The default value is: NO.
+
583 
+
584 SORT_MEMBERS_CTORS_1ST = NO
+
585 
+
586 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+
587 # of group names into alphabetical order. If set to NO the group names will
+
588 # appear in their defined order.
+
589 # The default value is: NO.
+
590 
+
591 SORT_GROUP_NAMES = NO
+
592 
+
593 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+
594 # fully-qualified names, including namespaces. If set to NO, the class list will
+
595 # be sorted only by class name, not including the namespace part.
+
596 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+
597 # Note: This option applies only to the class list, not to the alphabetical
+
598 # list.
+
599 # The default value is: NO.
+
600 
+
601 SORT_BY_SCOPE_NAME = YES
+
602 
+
603 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+
604 # type resolution of all parameters of a function it will reject a match between
+
605 # the prototype and the implementation of a member function even if there is
+
606 # only one candidate or it is obvious which candidate to choose by doing a
+
607 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+
608 # accept a match between prototype and implementation in such cases.
+
609 # The default value is: NO.
+
610 
+
611 STRICT_PROTO_MATCHING = NO
+
612 
+
613 # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+
614 # list. This list is created by putting \todo commands in the documentation.
+
615 # The default value is: YES.
+
616 
+
617 GENERATE_TODOLIST = YES
+
618 
+
619 # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+
620 # list. This list is created by putting \test commands in the documentation.
+
621 # The default value is: YES.
+
622 
+
623 GENERATE_TESTLIST = YES
+
624 
+
625 # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+
626 # list. This list is created by putting \bug commands in the documentation.
+
627 # The default value is: YES.
+
628 
+
629 GENERATE_BUGLIST = YES
+
630 
+
631 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+
632 # the deprecated list. This list is created by putting \deprecated commands in
+
633 # the documentation.
+
634 # The default value is: YES.
+
635 
+
636 GENERATE_DEPRECATEDLIST= YES
+
637 
+
638 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
+
639 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
+
640 # ... \endcond blocks.
+
641 
+
642 ENABLED_SECTIONS =
+
643 
+
644 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+
645 # initial value of a variable or macro / define can have for it to appear in the
+
646 # documentation. If the initializer consists of more lines than specified here
+
647 # it will be hidden. Use a value of 0 to hide initializers completely. The
+
648 # appearance of the value of individual variables and macros / defines can be
+
649 # controlled using \showinitializer or \hideinitializer command in the
+
650 # documentation regardless of this setting.
+
651 # Minimum value: 0, maximum value: 10000, default value: 30.
+
652 
+
653 MAX_INITIALIZER_LINES = 30
+
654 
+
655 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+
656 # the bottom of the documentation of classes and structs. If set to YES, the
+
657 # list will mention the files that were used to generate the documentation.
+
658 # The default value is: YES.
+
659 
+
660 SHOW_USED_FILES = NO
+
661 
+
662 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+
663 # will remove the Files entry from the Quick Index and from the Folder Tree View
+
664 # (if specified).
+
665 # The default value is: YES.
+
666 
+
667 SHOW_FILES = YES
+
668 
+
669 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+
670 # page. This will remove the Namespaces entry from the Quick Index and from the
+
671 # Folder Tree View (if specified).
+
672 # The default value is: YES.
+
673 
+
674 SHOW_NAMESPACES = YES
+
675 
+
676 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
+
677 # doxygen should invoke to get the current version for each file (typically from
+
678 # the version control system). Doxygen will invoke the program by executing (via
+
679 # popen()) the command command input-file, where command is the value of the
+
680 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+
681 # by doxygen. Whatever the program writes to standard output is used as the file
+
682 # version. For an example see the documentation.
+
683 
+
684 FILE_VERSION_FILTER =
+
685 
+
686 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+
687 # by doxygen. The layout file controls the global structure of the generated
+
688 # output files in an output format independent way. To create the layout file
+
689 # that represents doxygen's defaults, run doxygen with the -l option. You can
+
690 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
+
691 # will be used as the name of the layout file.
+
692 #
+
693 # Note that if you run doxygen from a directory containing a file called
+
694 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+
695 # tag is left empty.
+
696 
+
697 LAYOUT_FILE =
+
698 
+
699 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+
700 # the reference definitions. This must be a list of .bib files. The .bib
+
701 # extension is automatically appended if omitted. This requires the bibtex tool
+
702 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+
703 # For LaTeX the style of the bibliography can be controlled using
+
704 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+
705 # search path. See also \cite for info how to create references.
+
706 
+
707 CITE_BIB_FILES =
+
708 
+
709 #---------------------------------------------------------------------------
+
710 # Configuration options related to warning and progress messages
+
711 #---------------------------------------------------------------------------
+
712 
+
713 # The QUIET tag can be used to turn on/off the messages that are generated to
+
714 # standard output by doxygen. If QUIET is set to YES this implies that the
+
715 # messages are off.
+
716 # The default value is: NO.
+
717 
+
718 QUIET = NO
+
719 
+
720 # The WARNINGS tag can be used to turn on/off the warning messages that are
+
721 # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+
722 # this implies that the warnings are on.
+
723 #
+
724 # Tip: Turn warnings on while writing the documentation.
+
725 # The default value is: YES.
+
726 
+
727 WARNINGS = YES
+
728 
+
729 # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+
730 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+
731 # will automatically be disabled.
+
732 # The default value is: YES.
+
733 
+
734 WARN_IF_UNDOCUMENTED = YES
+
735 
+
736 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+
737 # potential errors in the documentation, such as not documenting some parameters
+
738 # in a documented function, or documenting parameters that don't exist or using
+
739 # markup commands wrongly.
+
740 # The default value is: YES.
+
741 
+
742 WARN_IF_DOC_ERROR = YES
+
743 
+
744 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+
745 # are documented, but have no documentation for their parameters or return
+
746 # value. If set to NO, doxygen will only warn about wrong or incomplete
+
747 # parameter documentation, but not about the absence of documentation.
+
748 # The default value is: NO.
+
749 
+
750 WARN_NO_PARAMDOC = NO
+
751 
+
752 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
+
753 # can produce. The string should contain the $file, $line, and $text tags, which
+
754 # will be replaced by the file and line number from which the warning originated
+
755 # and the warning text. Optionally the format may contain $version, which will
+
756 # be replaced by the version of the file (if it could be obtained via
+
757 # FILE_VERSION_FILTER)
+
758 # The default value is: $file:$line: $text.
+
759 
+
760 WARN_FORMAT = "$file:$line: $text"
+
761 
+
762 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
+
763 # messages should be written. If left blank the output is written to standard
+
764 # error (stderr).
+
765 
+
766 WARN_LOGFILE =
+
767 
+
768 #---------------------------------------------------------------------------
+
769 # Configuration options related to the input files
+
770 #---------------------------------------------------------------------------
+
771 
+
772 # The INPUT tag is used to specify the files and/or directories that contain
+
773 # documented source files. You may enter file names like myfile.cpp or
+
774 # directories like /usr/src/myproject. Separate the files or directories with
+
775 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+
776 # Note: If this tag is empty the current directory is searched.
+
777 
+
778 INPUT = ../glm \
+
779  .
+
780 
+
781 # This tag can be used to specify the character encoding of the source files
+
782 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+
783 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+
784 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
+
785 # possible encodings.
+
786 # The default value is: UTF-8.
+
787 
+
788 INPUT_ENCODING = UTF-8
+
789 
+
790 # If the value of the INPUT tag contains directories, you can use the
+
791 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+
792 # *.h) to filter out the source-files in the directories.
+
793 #
+
794 # Note that for custom extensions or not directly supported extensions you also
+
795 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
+
796 # read by doxygen.
+
797 #
+
798 # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+
799 # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+
800 # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+
801 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
+
802 # *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
803 
+
804 FILE_PATTERNS = *.hpp \
+
805  *.doxy
+
806 
+
807 # The RECURSIVE tag can be used to specify whether or not subdirectories should
+
808 # be searched for input files as well.
+
809 # The default value is: NO.
+
810 
+
811 RECURSIVE = YES
+
812 
+
813 # The EXCLUDE tag can be used to specify files and/or directories that should be
+
814 # excluded from the INPUT source files. This way you can easily exclude a
+
815 # subdirectory from a directory tree whose root is specified with the INPUT tag.
+
816 #
+
817 # Note that relative paths are relative to the directory from which doxygen is
+
818 # run.
+
819 
+
820 EXCLUDE =
+
821 
+
822 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+
823 # directories that are symbolic links (a Unix file system feature) are excluded
+
824 # from the input.
+
825 # The default value is: NO.
+
826 
+
827 EXCLUDE_SYMLINKS = NO
+
828 
+
829 # If the value of the INPUT tag contains directories, you can use the
+
830 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+
831 # certain files from those directories.
+
832 #
+
833 # Note that the wildcards are matched against the file with absolute path, so to
+
834 # exclude all test directories for example use the pattern */test/*
+
835 
+
836 EXCLUDE_PATTERNS =
+
837 
+
838 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+
839 # (namespaces, classes, functions, etc.) that should be excluded from the
+
840 # output. The symbol name can be a fully qualified name, a word, or if the
+
841 # wildcard * is used, a substring. Examples: ANamespace, AClass,
+
842 # AClass::ANamespace, ANamespace::*Test
+
843 #
+
844 # Note that the wildcards are matched against the file with absolute path, so to
+
845 # exclude all test directories use the pattern */test/*
+
846 
+
847 EXCLUDE_SYMBOLS =
+
848 
+
849 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
+
850 # that contain example code fragments that are included (see the \include
+
851 # command).
+
852 
+
853 EXAMPLE_PATH =
+
854 
+
855 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
+
856 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+
857 # *.h) to filter out the source-files in the directories. If left blank all
+
858 # files are included.
+
859 
+
860 EXAMPLE_PATTERNS = *
+
861 
+
862 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+
863 # searched for input files to be used with the \include or \dontinclude commands
+
864 # irrespective of the value of the RECURSIVE tag.
+
865 # The default value is: NO.
+
866 
+
867 EXAMPLE_RECURSIVE = NO
+
868 
+
869 # The IMAGE_PATH tag can be used to specify one or more files or directories
+
870 # that contain images that are to be included in the documentation (see the
+
871 # \image command).
+
872 
+
873 IMAGE_PATH =
+
874 
+
875 # The INPUT_FILTER tag can be used to specify a program that doxygen should
+
876 # invoke to filter for each input file. Doxygen will invoke the filter program
+
877 # by executing (via popen()) the command:
+
878 #
+
879 # <filter> <input-file>
+
880 #
+
881 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+
882 # name of an input file. Doxygen will then use the output that the filter
+
883 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
+
884 # will be ignored.
+
885 #
+
886 # Note that the filter must not add or remove lines; it is applied before the
+
887 # code is scanned, but not when the output code is generated. If lines are added
+
888 # or removed, the anchors will not be placed correctly.
+
889 
+
890 INPUT_FILTER =
+
891 
+
892 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+
893 # basis. Doxygen will compare the file name with each pattern and apply the
+
894 # filter if there is a match. The filters are a list of the form: pattern=filter
+
895 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+
896 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+
897 # patterns match the file name, INPUT_FILTER is applied.
+
898 
+
899 FILTER_PATTERNS =
+
900 
+
901 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+
902 # INPUT_FILTER) will also be used to filter the input files that are used for
+
903 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
904 # The default value is: NO.
+
905 
+
906 FILTER_SOURCE_FILES = NO
+
907 
+
908 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+
909 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+
910 # it is also possible to disable source filtering for a specific pattern using
+
911 # *.ext= (so without naming a filter).
+
912 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
913 
+
914 FILTER_SOURCE_PATTERNS =
+
915 
+
916 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+
917 # is part of the input, its contents will be placed on the main page
+
918 # (index.html). This can be useful if you have a project on for instance GitHub
+
919 # and want to reuse the introduction page also for the doxygen output.
+
920 
+
921 USE_MDFILE_AS_MAINPAGE =
+
922 
+
923 #---------------------------------------------------------------------------
+
924 # Configuration options related to source browsing
+
925 #---------------------------------------------------------------------------
+
926 
+
927 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+
928 # generated. Documented entities will be cross-referenced with these sources.
+
929 #
+
930 # Note: To get rid of all source code in the generated output, make sure that
+
931 # also VERBATIM_HEADERS is set to NO.
+
932 # The default value is: NO.
+
933 
+
934 SOURCE_BROWSER = YES
+
935 
+
936 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
+
937 # classes and enums directly into the documentation.
+
938 # The default value is: NO.
+
939 
+
940 INLINE_SOURCES = NO
+
941 
+
942 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+
943 # special comment blocks from generated source code fragments. Normal C, C++ and
+
944 # Fortran comments will always remain visible.
+
945 # The default value is: YES.
+
946 
+
947 STRIP_CODE_COMMENTS = YES
+
948 
+
949 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+
950 # function all documented functions referencing it will be listed.
+
951 # The default value is: NO.
+
952 
+
953 REFERENCED_BY_RELATION = YES
+
954 
+
955 # If the REFERENCES_RELATION tag is set to YES then for each documented function
+
956 # all documented entities called/used by that function will be listed.
+
957 # The default value is: NO.
+
958 
+
959 REFERENCES_RELATION = YES
+
960 
+
961 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+
962 # to YES then the hyperlinks from functions in REFERENCES_RELATION and
+
963 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+
964 # link to the documentation.
+
965 # The default value is: YES.
+
966 
+
967 REFERENCES_LINK_SOURCE = YES
+
968 
+
969 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+
970 # source code will show a tooltip with additional information such as prototype,
+
971 # brief description and links to the definition and documentation. Since this
+
972 # will make the HTML file larger and loading of large files a bit slower, you
+
973 # can opt to disable this feature.
+
974 # The default value is: YES.
+
975 # This tag requires that the tag SOURCE_BROWSER is set to YES.
+
976 
+
977 SOURCE_TOOLTIPS = YES
+
978 
+
979 # If the USE_HTAGS tag is set to YES then the references to source code will
+
980 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
+
981 # source browser. The htags tool is part of GNU's global source tagging system
+
982 # (see http://www.gnu.org/software/global/global.html). You will need version
+
983 # 4.8.6 or higher.
+
984 #
+
985 # To use it do the following:
+
986 # - Install the latest version of global
+
987 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+
988 # - Make sure the INPUT points to the root of the source tree
+
989 # - Run doxygen as normal
+
990 #
+
991 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
+
992 # tools must be available from the command line (i.e. in the search path).
+
993 #
+
994 # The result: instead of the source browser generated by doxygen, the links to
+
995 # source code will now point to the output of htags.
+
996 # The default value is: NO.
+
997 # This tag requires that the tag SOURCE_BROWSER is set to YES.
+
998 
+
999 USE_HTAGS = NO
+
1000 
+
1001 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+
1002 # verbatim copy of the header file for each class for which an include is
+
1003 # specified. Set to NO to disable this.
+
1004 # See also: Section \class.
+
1005 # The default value is: YES.
+
1006 
+
1007 VERBATIM_HEADERS = YES
+
1008 
+
1009 # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+
1010 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+
1011 # cost of reduced performance. This can be particularly helpful with template
+
1012 # rich C++ code for which doxygen's built-in parser lacks the necessary type
+
1013 # information.
+
1014 # Note: The availability of this option depends on whether or not doxygen was
+
1015 # compiled with the --with-libclang option.
+
1016 # The default value is: NO.
+
1017 
+
1018 CLANG_ASSISTED_PARSING = NO
+
1019 
+
1020 # If clang assisted parsing is enabled you can provide the compiler with command
+
1021 # line options that you would normally use when invoking the compiler. Note that
+
1022 # the include paths will already be set by doxygen for the files and directories
+
1023 # specified with INPUT and INCLUDE_PATH.
+
1024 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
1025 
+
1026 CLANG_OPTIONS =
+
1027 
+
1028 #---------------------------------------------------------------------------
+
1029 # Configuration options related to the alphabetical class index
+
1030 #---------------------------------------------------------------------------
+
1031 
+
1032 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+
1033 # compounds will be generated. Enable this if the project contains a lot of
+
1034 # classes, structs, unions or interfaces.
+
1035 # The default value is: YES.
+
1036 
+
1037 ALPHABETICAL_INDEX = NO
+
1038 
+
1039 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+
1040 # which the alphabetical index list will be split.
+
1041 # Minimum value: 1, maximum value: 20, default value: 5.
+
1042 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
1043 
+
1044 COLS_IN_ALPHA_INDEX = 5
+
1045 
+
1046 # In case all classes in a project start with a common prefix, all classes will
+
1047 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+
1048 # can be used to specify a prefix (or a list of prefixes) that should be ignored
+
1049 # while generating the index headers.
+
1050 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
1051 
+
1052 IGNORE_PREFIX =
+
1053 
+
1054 #---------------------------------------------------------------------------
+
1055 # Configuration options related to the HTML output
+
1056 #---------------------------------------------------------------------------
+
1057 
+
1058 # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+
1059 # The default value is: YES.
+
1060 
+
1061 GENERATE_HTML = YES
+
1062 
+
1063 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+
1064 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1065 # it.
+
1066 # The default directory is: html.
+
1067 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1068 
+
1069 HTML_OUTPUT = html
+
1070 
+
1071 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+
1072 # generated HTML page (for example: .htm, .php, .asp).
+
1073 # The default value is: .html.
+
1074 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1075 
+
1076 HTML_FILE_EXTENSION = .html
+
1077 
+
1078 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+
1079 # each generated HTML page. If the tag is left blank doxygen will generate a
+
1080 # standard header.
+
1081 #
+
1082 # To get valid HTML the header file that includes any scripts and style sheets
+
1083 # that doxygen needs, which is dependent on the configuration options used (e.g.
+
1084 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+
1085 # default header using
+
1086 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
+
1087 # YourConfigFile
+
1088 # and then modify the file new_header.html. See also section "Doxygen usage"
+
1089 # for information on how to generate the default header that doxygen normally
+
1090 # uses.
+
1091 # Note: The header is subject to change so you typically have to regenerate the
+
1092 # default header when upgrading to a newer version of doxygen. For a description
+
1093 # of the possible markers and block names see the documentation.
+
1094 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1095 
+
1096 HTML_HEADER =
+
1097 
+
1098 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+
1099 # generated HTML page. If the tag is left blank doxygen will generate a standard
+
1100 # footer. See HTML_HEADER for more information on how to generate a default
+
1101 # footer and what special commands can be used inside the footer. See also
+
1102 # section "Doxygen usage" for information on how to generate the default footer
+
1103 # that doxygen normally uses.
+
1104 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1105 
+
1106 HTML_FOOTER =
+
1107 
+
1108 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+
1109 # sheet that is used by each HTML page. It can be used to fine-tune the look of
+
1110 # the HTML output. If left blank doxygen will generate a default style sheet.
+
1111 # See also section "Doxygen usage" for information on how to generate the style
+
1112 # sheet that doxygen normally uses.
+
1113 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+
1114 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
+
1115 # obsolete.
+
1116 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1117 
+
1118 HTML_STYLESHEET =
+
1119 
+
1120 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+
1121 # cascading style sheets that are included after the standard style sheets
+
1122 # created by doxygen. Using this option one can overrule certain style aspects.
+
1123 # This is preferred over using HTML_STYLESHEET since it does not replace the
+
1124 # standard style sheet and is therefore more robust against future updates.
+
1125 # Doxygen will copy the style sheet files to the output directory.
+
1126 # Note: The order of the extra style sheet files is of importance (e.g. the last
+
1127 # style sheet in the list overrules the setting of the previous ones in the
+
1128 # list). For an example see the documentation.
+
1129 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1130 
+
1131 HTML_EXTRA_STYLESHEET =
+
1132 
+
1133 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+
1134 # other source files which should be copied to the HTML output directory. Note
+
1135 # that these files will be copied to the base HTML output directory. Use the
+
1136 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+
1137 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+
1138 # files will be copied as-is; there are no commands or markers available.
+
1139 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1140 
+
1141 HTML_EXTRA_FILES =
+
1142 
+
1143 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+
1144 # will adjust the colors in the style sheet and background images according to
+
1145 # this color. Hue is specified as an angle on a colorwheel, see
+
1146 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+
1147 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+
1148 # purple, and 360 is red again.
+
1149 # Minimum value: 0, maximum value: 359, default value: 220.
+
1150 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1151 
+
1152 HTML_COLORSTYLE_HUE = 220
+
1153 
+
1154 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+
1155 # in the HTML output. For a value of 0 the output will use grayscales only. A
+
1156 # value of 255 will produce the most vivid colors.
+
1157 # Minimum value: 0, maximum value: 255, default value: 100.
+
1158 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1159 
+
1160 HTML_COLORSTYLE_SAT = 100
+
1161 
+
1162 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+
1163 # luminance component of the colors in the HTML output. Values below 100
+
1164 # gradually make the output lighter, whereas values above 100 make the output
+
1165 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
+
1166 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+
1167 # change the gamma.
+
1168 # Minimum value: 40, maximum value: 240, default value: 80.
+
1169 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1170 
+
1171 HTML_COLORSTYLE_GAMMA = 80
+
1172 
+
1173 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+
1174 # page will contain the date and time when the page was generated. Setting this
+
1175 # to YES can help to show when doxygen was last run and thus if the
+
1176 # documentation is up to date.
+
1177 # The default value is: NO.
+
1178 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1179 
+
1180 HTML_TIMESTAMP = NO
+
1181 
+
1182 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+
1183 # documentation will contain sections that can be hidden and shown after the
+
1184 # page has loaded.
+
1185 # The default value is: NO.
+
1186 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1187 
+
1188 HTML_DYNAMIC_SECTIONS = NO
+
1189 
+
1190 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+
1191 # shown in the various tree structured indices initially; the user can expand
+
1192 # and collapse entries dynamically later on. Doxygen will expand the tree to
+
1193 # such a level that at most the specified number of entries are visible (unless
+
1194 # a fully collapsed tree already exceeds this amount). So setting the number of
+
1195 # entries 1 will produce a full collapsed tree by default. 0 is a special value
+
1196 # representing an infinite number of entries and will result in a full expanded
+
1197 # tree by default.
+
1198 # Minimum value: 0, maximum value: 9999, default value: 100.
+
1199 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1200 
+
1201 HTML_INDEX_NUM_ENTRIES = 100
+
1202 
+
1203 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
+
1204 # generated that can be used as input for Apple's Xcode 3 integrated development
+
1205 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
+
1206 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+
1207 # Makefile in the HTML output directory. Running make will produce the docset in
+
1208 # that directory and running make install will install the docset in
+
1209 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+
1210 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+
1211 # for more information.
+
1212 # The default value is: NO.
+
1213 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1214 
+
1215 GENERATE_DOCSET = NO
+
1216 
+
1217 # This tag determines the name of the docset feed. A documentation feed provides
+
1218 # an umbrella under which multiple documentation sets from a single provider
+
1219 # (such as a company or product suite) can be grouped.
+
1220 # The default value is: Doxygen generated docs.
+
1221 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1222 
+
1223 DOCSET_FEEDNAME = "Doxygen generated docs"
+
1224 
+
1225 # This tag specifies a string that should uniquely identify the documentation
+
1226 # set bundle. This should be a reverse domain-name style string, e.g.
+
1227 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+
1228 # The default value is: org.doxygen.Project.
+
1229 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1230 
+
1231 DOCSET_BUNDLE_ID = org.doxygen.Project
+
1232 
+
1233 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+
1234 # the documentation publisher. This should be a reverse domain-name style
+
1235 # string, e.g. com.mycompany.MyDocSet.documentation.
+
1236 # The default value is: org.doxygen.Publisher.
+
1237 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1238 
+
1239 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
1240 
+
1241 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+
1242 # The default value is: Publisher.
+
1243 # This tag requires that the tag GENERATE_DOCSET is set to YES.
+
1244 
+
1245 DOCSET_PUBLISHER_NAME = Publisher
+
1246 
+
1247 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+
1248 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+
1249 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+
1250 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+
1251 # Windows.
+
1252 #
+
1253 # The HTML Help Workshop contains a compiler that can convert all HTML output
+
1254 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+
1255 # files are now used as the Windows 98 help format, and will replace the old
+
1256 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
+
1257 # HTML files also contain an index, a table of contents, and you can search for
+
1258 # words in the documentation. The HTML workshop also contains a viewer for
+
1259 # compressed HTML files.
+
1260 # The default value is: NO.
+
1261 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1262 
+
1263 GENERATE_HTMLHELP = NO
+
1264 
+
1265 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
+
1266 # file. You can add a path in front of the file if the result should not be
+
1267 # written to the html output directory.
+
1268 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1269 
+
1270 CHM_FILE =
+
1271 
+
1272 # The HHC_LOCATION tag can be used to specify the location (absolute path
+
1273 # including file name) of the HTML help compiler (hhc.exe). If non-empty,
+
1274 # doxygen will try to run the HTML help compiler on the generated index.hhp.
+
1275 # The file has to be specified with full path.
+
1276 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1277 
+
1278 HHC_LOCATION =
+
1279 
+
1280 # The GENERATE_CHI flag controls if a separate .chi index file is generated
+
1281 # (YES) or that it should be included in the master .chm file (NO).
+
1282 # The default value is: NO.
+
1283 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1284 
+
1285 GENERATE_CHI = NO
+
1286 
+
1287 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+
1288 # and project file content.
+
1289 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1290 
+
1291 CHM_INDEX_ENCODING =
+
1292 
+
1293 # The BINARY_TOC flag controls whether a binary table of contents is generated
+
1294 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+
1295 # enables the Previous and Next buttons.
+
1296 # The default value is: NO.
+
1297 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1298 
+
1299 BINARY_TOC = NO
+
1300 
+
1301 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
+
1302 # the table of contents of the HTML help documentation and to the tree view.
+
1303 # The default value is: NO.
+
1304 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
1305 
+
1306 TOC_EXPAND = NO
+
1307 
+
1308 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+
1309 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+
1310 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+
1311 # (.qch) of the generated HTML documentation.
+
1312 # The default value is: NO.
+
1313 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1314 
+
1315 GENERATE_QHP = NO
+
1316 
+
1317 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+
1318 # the file name of the resulting .qch file. The path specified is relative to
+
1319 # the HTML output folder.
+
1320 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1321 
+
1322 QCH_FILE =
+
1323 
+
1324 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+
1325 # Project output. For more information please see Qt Help Project / Namespace
+
1326 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+
1327 # The default value is: org.doxygen.Project.
+
1328 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1329 
+
1330 QHP_NAMESPACE = org.doxygen.Project
+
1331 
+
1332 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+
1333 # Help Project output. For more information please see Qt Help Project / Virtual
+
1334 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+
1335 # folders).
+
1336 # The default value is: doc.
+
1337 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1338 
+
1339 QHP_VIRTUAL_FOLDER = doc
+
1340 
+
1341 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+
1342 # filter to add. For more information please see Qt Help Project / Custom
+
1343 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+
1344 # filters).
+
1345 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1346 
+
1347 QHP_CUST_FILTER_NAME =
+
1348 
+
1349 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+
1350 # custom filter to add. For more information please see Qt Help Project / Custom
+
1351 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+
1352 # filters).
+
1353 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1354 
+
1355 QHP_CUST_FILTER_ATTRS =
+
1356 
+
1357 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+
1358 # project's filter section matches. Qt Help Project / Filter Attributes (see:
+
1359 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+
1360 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1361 
+
1362 QHP_SECT_FILTER_ATTRS =
+
1363 
+
1364 # The QHG_LOCATION tag can be used to specify the location of Qt's
+
1365 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+
1366 # generated .qhp file.
+
1367 # This tag requires that the tag GENERATE_QHP is set to YES.
+
1368 
+
1369 QHG_LOCATION =
+
1370 
+
1371 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+
1372 # generated, together with the HTML files, they form an Eclipse help plugin. To
+
1373 # install this plugin and make it available under the help contents menu in
+
1374 # Eclipse, the contents of the directory containing the HTML and XML files needs
+
1375 # to be copied into the plugins directory of eclipse. The name of the directory
+
1376 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+
1377 # After copying Eclipse needs to be restarted before the help appears.
+
1378 # The default value is: NO.
+
1379 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1380 
+
1381 GENERATE_ECLIPSEHELP = NO
+
1382 
+
1383 # A unique identifier for the Eclipse help plugin. When installing the plugin
+
1384 # the directory name containing the HTML and XML files should also have this
+
1385 # name. Each documentation set should have its own identifier.
+
1386 # The default value is: org.doxygen.Project.
+
1387 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
1388 
+
1389 ECLIPSE_DOC_ID = org.doxygen.Project
+
1390 
+
1391 # If you want full control over the layout of the generated HTML pages it might
+
1392 # be necessary to disable the index and replace it with your own. The
+
1393 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+
1394 # of each HTML page. A value of NO enables the index and the value YES disables
+
1395 # it. Since the tabs in the index contain the same information as the navigation
+
1396 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+
1397 # The default value is: NO.
+
1398 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1399 
+
1400 DISABLE_INDEX = NO
+
1401 
+
1402 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+
1403 # structure should be generated to display hierarchical information. If the tag
+
1404 # value is set to YES, a side panel will be generated containing a tree-like
+
1405 # index structure (just like the one that is generated for HTML Help). For this
+
1406 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
+
1407 # (i.e. any modern browser). Windows users are probably better off using the
+
1408 # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+
1409 # further fine-tune the look of the index. As an example, the default style
+
1410 # sheet generated by doxygen has an example that shows how to put an image at
+
1411 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+
1412 # the same information as the tab index, you could consider setting
+
1413 # DISABLE_INDEX to YES when enabling this option.
+
1414 # The default value is: NO.
+
1415 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1416 
+
1417 GENERATE_TREEVIEW = NO
+
1418 
+
1419 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+
1420 # doxygen will group on one line in the generated HTML documentation.
+
1421 #
+
1422 # Note that a value of 0 will completely suppress the enum values from appearing
+
1423 # in the overview section.
+
1424 # Minimum value: 0, maximum value: 20, default value: 4.
+
1425 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1426 
+
1427 ENUM_VALUES_PER_LINE = 4
+
1428 
+
1429 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+
1430 # to set the initial width (in pixels) of the frame in which the tree is shown.
+
1431 # Minimum value: 0, maximum value: 1500, default value: 250.
+
1432 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1433 
+
1434 TREEVIEW_WIDTH = 250
+
1435 
+
1436 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+
1437 # external symbols imported via tag files in a separate window.
+
1438 # The default value is: NO.
+
1439 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1440 
+
1441 EXT_LINKS_IN_WINDOW = NO
+
1442 
+
1443 # Use this tag to change the font size of LaTeX formulas included as images in
+
1444 # the HTML documentation. When you change the font size after a successful
+
1445 # doxygen run you need to manually remove any form_*.png images from the HTML
+
1446 # output directory to force them to be regenerated.
+
1447 # Minimum value: 8, maximum value: 50, default value: 10.
+
1448 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1449 
+
1450 FORMULA_FONTSIZE = 10
+
1451 
+
1452 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
+
1453 # generated for formulas are transparent PNGs. Transparent PNGs are not
+
1454 # supported properly for IE 6.0, but are supported on all modern browsers.
+
1455 #
+
1456 # Note that when changing this option you need to delete any form_*.png files in
+
1457 # the HTML output directory before the changes have effect.
+
1458 # The default value is: YES.
+
1459 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1460 
+
1461 FORMULA_TRANSPARENT = YES
+
1462 
+
1463 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+
1464 # http://www.mathjax.org) which uses client side Javascript for the rendering
+
1465 # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+
1466 # installed or if you want to formulas look prettier in the HTML output. When
+
1467 # enabled you may also need to install MathJax separately and configure the path
+
1468 # to it using the MATHJAX_RELPATH option.
+
1469 # The default value is: NO.
+
1470 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1471 
+
1472 USE_MATHJAX = NO
+
1473 
+
1474 # When MathJax is enabled you can set the default output format to be used for
+
1475 # the MathJax output. See the MathJax site (see:
+
1476 # http://docs.mathjax.org/en/latest/output.html) for more details.
+
1477 # Possible values are: HTML-CSS (which is slower, but has the best
+
1478 # compatibility), NativeMML (i.e. MathML) and SVG.
+
1479 # The default value is: HTML-CSS.
+
1480 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1481 
+
1482 MATHJAX_FORMAT = HTML-CSS
+
1483 
+
1484 # When MathJax is enabled you need to specify the location relative to the HTML
+
1485 # output directory using the MATHJAX_RELPATH option. The destination directory
+
1486 # should contain the MathJax.js script. For instance, if the mathjax directory
+
1487 # is located at the same level as the HTML output directory, then
+
1488 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+
1489 # Content Delivery Network so you can quickly see the result without installing
+
1490 # MathJax. However, it is strongly recommended to install a local copy of
+
1491 # MathJax from http://www.mathjax.org before deployment.
+
1492 # The default value is: http://cdn.mathjax.org/mathjax/latest.
+
1493 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1494 
+
1495 MATHJAX_RELPATH = http://www.mathjax.org/mathjax
+
1496 
+
1497 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+
1498 # extension names that should be enabled during MathJax rendering. For example
+
1499 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+
1500 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1501 
+
1502 MATHJAX_EXTENSIONS =
+
1503 
+
1504 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+
1505 # of code that will be used on startup of the MathJax code. See the MathJax site
+
1506 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+
1507 # example see the documentation.
+
1508 # This tag requires that the tag USE_MATHJAX is set to YES.
+
1509 
+
1510 MATHJAX_CODEFILE =
+
1511 
+
1512 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+
1513 # the HTML output. The underlying search engine uses javascript and DHTML and
+
1514 # should work on any modern browser. Note that when using HTML help
+
1515 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+
1516 # there is already a search function so this one should typically be disabled.
+
1517 # For large projects the javascript based search engine can be slow, then
+
1518 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+
1519 # search using the keyboard; to jump to the search box use <access key> + S
+
1520 # (what the <access key> is depends on the OS and browser, but it is typically
+
1521 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+
1522 # key> to jump into the search results window, the results can be navigated
+
1523 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+
1524 # the search. The filter options can be selected when the cursor is inside the
+
1525 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+
1526 # to select a filter and <Enter> or <escape> to activate or cancel the filter
+
1527 # option.
+
1528 # The default value is: YES.
+
1529 # This tag requires that the tag GENERATE_HTML is set to YES.
+
1530 
+
1531 SEARCHENGINE = YES
+
1532 
+
1533 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+
1534 # implemented using a web server instead of a web client using Javascript. There
+
1535 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+
1536 # setting. When disabled, doxygen will generate a PHP script for searching and
+
1537 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+
1538 # and searching needs to be provided by external tools. See the section
+
1539 # "External Indexing and Searching" for details.
+
1540 # The default value is: NO.
+
1541 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1542 
+
1543 SERVER_BASED_SEARCH = NO
+
1544 
+
1545 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+
1546 # script for searching. Instead the search results are written to an XML file
+
1547 # which needs to be processed by an external indexer. Doxygen will invoke an
+
1548 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+
1549 # search results.
+
1550 #
+
1551 # Doxygen ships with an example indexer (doxyindexer) and search engine
+
1552 # (doxysearch.cgi) which are based on the open source search engine library
+
1553 # Xapian (see: http://xapian.org/).
+
1554 #
+
1555 # See the section "External Indexing and Searching" for details.
+
1556 # The default value is: NO.
+
1557 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1558 
+
1559 EXTERNAL_SEARCH = NO
+
1560 
+
1561 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
+
1562 # which will return the search results when EXTERNAL_SEARCH is enabled.
+
1563 #
+
1564 # Doxygen ships with an example indexer (doxyindexer) and search engine
+
1565 # (doxysearch.cgi) which are based on the open source search engine library
+
1566 # Xapian (see: http://xapian.org/). See the section "External Indexing and
+
1567 # Searching" for details.
+
1568 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1569 
+
1570 SEARCHENGINE_URL =
+
1571 
+
1572 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+
1573 # search data is written to a file for indexing by an external tool. With the
+
1574 # SEARCHDATA_FILE tag the name of this file can be specified.
+
1575 # The default file is: searchdata.xml.
+
1576 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1577 
+
1578 SEARCHDATA_FILE = searchdata.xml
+
1579 
+
1580 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+
1581 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+
1582 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+
1583 # projects and redirect the results back to the right project.
+
1584 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1585 
+
1586 EXTERNAL_SEARCH_ID =
+
1587 
+
1588 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+
1589 # projects other than the one defined by this configuration file, but that are
+
1590 # all added to the same external search index. Each project needs to have a
+
1591 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+
1592 # to a relative location where the documentation can be found. The format is:
+
1593 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+
1594 # This tag requires that the tag SEARCHENGINE is set to YES.
+
1595 
+
1596 EXTRA_SEARCH_MAPPINGS =
+
1597 
+
1598 #---------------------------------------------------------------------------
+
1599 # Configuration options related to the LaTeX output
+
1600 #---------------------------------------------------------------------------
+
1601 
+
1602 # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+
1603 # The default value is: YES.
+
1604 
+
1605 GENERATE_LATEX = NO
+
1606 
+
1607 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+
1608 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1609 # it.
+
1610 # The default directory is: latex.
+
1611 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1612 
+
1613 LATEX_OUTPUT = latex
+
1614 
+
1615 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+
1616 # invoked.
+
1617 #
+
1618 # Note that when enabling USE_PDFLATEX this option is only used for generating
+
1619 # bitmaps for formulas in the HTML output, but not in the Makefile that is
+
1620 # written to the output directory.
+
1621 # The default file is: latex.
+
1622 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1623 
+
1624 LATEX_CMD_NAME = latex
+
1625 
+
1626 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+
1627 # index for LaTeX.
+
1628 # The default file is: makeindex.
+
1629 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1630 
+
1631 MAKEINDEX_CMD_NAME = makeindex
+
1632 
+
1633 # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+
1634 # documents. This may be useful for small projects and may help to save some
+
1635 # trees in general.
+
1636 # The default value is: NO.
+
1637 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1638 
+
1639 COMPACT_LATEX = NO
+
1640 
+
1641 # The PAPER_TYPE tag can be used to set the paper type that is used by the
+
1642 # printer.
+
1643 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+
1644 # 14 inches) and executive (7.25 x 10.5 inches).
+
1645 # The default value is: a4.
+
1646 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1647 
+
1648 PAPER_TYPE = a4wide
+
1649 
+
1650 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+
1651 # that should be included in the LaTeX output. The package can be specified just
+
1652 # by its name or with the correct syntax as to be used with the LaTeX
+
1653 # \usepackage command. To get the times font for instance you can specify :
+
1654 # EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+
1655 # To use the option intlimits with the amsmath package you can specify:
+
1656 # EXTRA_PACKAGES=[intlimits]{amsmath}
+
1657 # If left blank no extra packages will be included.
+
1658 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1659 
+
1660 EXTRA_PACKAGES =
+
1661 
+
1662 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+
1663 # generated LaTeX document. The header should contain everything until the first
+
1664 # chapter. If it is left blank doxygen will generate a standard header. See
+
1665 # section "Doxygen usage" for information on how to let doxygen write the
+
1666 # default header to a separate file.
+
1667 #
+
1668 # Note: Only use a user-defined header if you know what you are doing! The
+
1669 # following commands have a special meaning inside the header: $title,
+
1670 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+
1671 # $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+
1672 # string, for the replacement values of the other commands the user is referred
+
1673 # to HTML_HEADER.
+
1674 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1675 
+
1676 LATEX_HEADER =
+
1677 
+
1678 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+
1679 # generated LaTeX document. The footer should contain everything after the last
+
1680 # chapter. If it is left blank doxygen will generate a standard footer. See
+
1681 # LATEX_HEADER for more information on how to generate a default footer and what
+
1682 # special commands can be used inside the footer.
+
1683 #
+
1684 # Note: Only use a user-defined footer if you know what you are doing!
+
1685 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1686 
+
1687 LATEX_FOOTER =
+
1688 
+
1689 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+
1690 # LaTeX style sheets that are included after the standard style sheets created
+
1691 # by doxygen. Using this option one can overrule certain style aspects. Doxygen
+
1692 # will copy the style sheet files to the output directory.
+
1693 # Note: The order of the extra style sheet files is of importance (e.g. the last
+
1694 # style sheet in the list overrules the setting of the previous ones in the
+
1695 # list).
+
1696 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1697 
+
1698 LATEX_EXTRA_STYLESHEET =
+
1699 
+
1700 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+
1701 # other source files which should be copied to the LATEX_OUTPUT output
+
1702 # directory. Note that the files will be copied as-is; there are no commands or
+
1703 # markers available.
+
1704 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1705 
+
1706 LATEX_EXTRA_FILES =
+
1707 
+
1708 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+
1709 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+
1710 # contain links (just like the HTML output) instead of page references. This
+
1711 # makes the output suitable for online browsing using a PDF viewer.
+
1712 # The default value is: YES.
+
1713 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1714 
+
1715 PDF_HYPERLINKS = NO
+
1716 
+
1717 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+
1718 # the PDF file directly from the LaTeX files. Set this option to YES, to get a
+
1719 # higher quality PDF documentation.
+
1720 # The default value is: YES.
+
1721 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1722 
+
1723 USE_PDFLATEX = YES
+
1724 
+
1725 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+
1726 # command to the generated LaTeX files. This will instruct LaTeX to keep running
+
1727 # if errors occur, instead of asking the user for help. This option is also used
+
1728 # when generating formulas in HTML.
+
1729 # The default value is: NO.
+
1730 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1731 
+
1732 LATEX_BATCHMODE = NO
+
1733 
+
1734 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+
1735 # index chapters (such as File Index, Compound Index, etc.) in the output.
+
1736 # The default value is: NO.
+
1737 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1738 
+
1739 LATEX_HIDE_INDICES = NO
+
1740 
+
1741 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+
1742 # code with syntax highlighting in the LaTeX output.
+
1743 #
+
1744 # Note that which sources are shown also depends on other settings such as
+
1745 # SOURCE_BROWSER.
+
1746 # The default value is: NO.
+
1747 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1748 
+
1749 LATEX_SOURCE_CODE = NO
+
1750 
+
1751 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+
1752 # bibliography, e.g. plainnat, or ieeetr. See
+
1753 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+
1754 # The default value is: plain.
+
1755 # This tag requires that the tag GENERATE_LATEX is set to YES.
+
1756 
+
1757 LATEX_BIB_STYLE = plain
+
1758 
+
1759 #---------------------------------------------------------------------------
+
1760 # Configuration options related to the RTF output
+
1761 #---------------------------------------------------------------------------
+
1762 
+
1763 # If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+
1764 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
+
1765 # readers/editors.
+
1766 # The default value is: NO.
+
1767 
+
1768 GENERATE_RTF = NO
+
1769 
+
1770 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+
1771 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1772 # it.
+
1773 # The default directory is: rtf.
+
1774 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1775 
+
1776 RTF_OUTPUT = glm.rtf
+
1777 
+
1778 # If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+
1779 # documents. This may be useful for small projects and may help to save some
+
1780 # trees in general.
+
1781 # The default value is: NO.
+
1782 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1783 
+
1784 COMPACT_RTF = NO
+
1785 
+
1786 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+
1787 # contain hyperlink fields. The RTF file will contain links (just like the HTML
+
1788 # output) instead of page references. This makes the output suitable for online
+
1789 # browsing using Word or some other Word compatible readers that support those
+
1790 # fields.
+
1791 #
+
1792 # Note: WordPad (write) and others do not support links.
+
1793 # The default value is: NO.
+
1794 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1795 
+
1796 RTF_HYPERLINKS = YES
+
1797 
+
1798 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
+
1799 # file, i.e. a series of assignments. You only have to provide replacements,
+
1800 # missing definitions are set to their default value.
+
1801 #
+
1802 # See also section "Doxygen usage" for information on how to generate the
+
1803 # default style sheet that doxygen normally uses.
+
1804 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1805 
+
1806 RTF_STYLESHEET_FILE =
+
1807 
+
1808 # Set optional variables used in the generation of an RTF document. Syntax is
+
1809 # similar to doxygen's config file. A template extensions file can be generated
+
1810 # using doxygen -e rtf extensionFile.
+
1811 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1812 
+
1813 RTF_EXTENSIONS_FILE =
+
1814 
+
1815 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+
1816 # with syntax highlighting in the RTF output.
+
1817 #
+
1818 # Note that which sources are shown also depends on other settings such as
+
1819 # SOURCE_BROWSER.
+
1820 # The default value is: NO.
+
1821 # This tag requires that the tag GENERATE_RTF is set to YES.
+
1822 
+
1823 RTF_SOURCE_CODE = NO
+
1824 
+
1825 #---------------------------------------------------------------------------
+
1826 # Configuration options related to the man page output
+
1827 #---------------------------------------------------------------------------
+
1828 
+
1829 # If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+
1830 # classes and files.
+
1831 # The default value is: NO.
+
1832 
+
1833 GENERATE_MAN = NO
+
1834 
+
1835 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+
1836 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1837 # it. A directory man3 will be created inside the directory specified by
+
1838 # MAN_OUTPUT.
+
1839 # The default directory is: man.
+
1840 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1841 
+
1842 MAN_OUTPUT = man
+
1843 
+
1844 # The MAN_EXTENSION tag determines the extension that is added to the generated
+
1845 # man pages. In case the manual section does not start with a number, the number
+
1846 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+
1847 # optional.
+
1848 # The default value is: .3.
+
1849 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1850 
+
1851 MAN_EXTENSION = .3
+
1852 
+
1853 # The MAN_SUBDIR tag determines the name of the directory created within
+
1854 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+
1855 # MAN_EXTENSION with the initial . removed.
+
1856 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1857 
+
1858 MAN_SUBDIR =
+
1859 
+
1860 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+
1861 # will generate one additional man file for each entity documented in the real
+
1862 # man page(s). These additional files only source the real man page, but without
+
1863 # them the man command would be unable to find the correct page.
+
1864 # The default value is: NO.
+
1865 # This tag requires that the tag GENERATE_MAN is set to YES.
+
1866 
+
1867 MAN_LINKS = NO
+
1868 
+
1869 #---------------------------------------------------------------------------
+
1870 # Configuration options related to the XML output
+
1871 #---------------------------------------------------------------------------
+
1872 
+
1873 # If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+
1874 # captures the structure of the code including all documentation.
+
1875 # The default value is: NO.
+
1876 
+
1877 GENERATE_XML = NO
+
1878 
+
1879 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+
1880 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+
1881 # it.
+
1882 # The default directory is: xml.
+
1883 # This tag requires that the tag GENERATE_XML is set to YES.
+
1884 
+
1885 XML_OUTPUT = xml
+
1886 
+
1887 # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+
1888 # listings (including syntax highlighting and cross-referencing information) to
+
1889 # the XML output. Note that enabling this will significantly increase the size
+
1890 # of the XML output.
+
1891 # The default value is: YES.
+
1892 # This tag requires that the tag GENERATE_XML is set to YES.
+
1893 
+
1894 XML_PROGRAMLISTING = YES
+
1895 
+
1896 #---------------------------------------------------------------------------
+
1897 # Configuration options related to the DOCBOOK output
+
1898 #---------------------------------------------------------------------------
+
1899 
+
1900 # If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+
1901 # that can be used to generate PDF.
+
1902 # The default value is: NO.
+
1903 
+
1904 GENERATE_DOCBOOK = NO
+
1905 
+
1906 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+
1907 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+
1908 # front of it.
+
1909 # The default directory is: docbook.
+
1910 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
1911 
+
1912 DOCBOOK_OUTPUT = docbook
+
1913 
+
1914 # If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+
1915 # program listings (including syntax highlighting and cross-referencing
+
1916 # information) to the DOCBOOK output. Note that enabling this will significantly
+
1917 # increase the size of the DOCBOOK output.
+
1918 # The default value is: NO.
+
1919 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
1920 
+
1921 DOCBOOK_PROGRAMLISTING = NO
+
1922 
+
1923 #---------------------------------------------------------------------------
+
1924 # Configuration options for the AutoGen Definitions output
+
1925 #---------------------------------------------------------------------------
+
1926 
+
1927 # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+
1928 # AutoGen Definitions (see http://autogen.sf.net) file that captures the
+
1929 # structure of the code including all documentation. Note that this feature is
+
1930 # still experimental and incomplete at the moment.
+
1931 # The default value is: NO.
+
1932 
+
1933 GENERATE_AUTOGEN_DEF = NO
+
1934 
+
1935 #---------------------------------------------------------------------------
+
1936 # Configuration options related to the Perl module output
+
1937 #---------------------------------------------------------------------------
+
1938 
+
1939 # If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+
1940 # file that captures the structure of the code including all documentation.
+
1941 #
+
1942 # Note that this feature is still experimental and incomplete at the moment.
+
1943 # The default value is: NO.
+
1944 
+
1945 GENERATE_PERLMOD = NO
+
1946 
+
1947 # If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+
1948 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+
1949 # output from the Perl module output.
+
1950 # The default value is: NO.
+
1951 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1952 
+
1953 PERLMOD_LATEX = NO
+
1954 
+
1955 # If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+
1956 # formatted so it can be parsed by a human reader. This is useful if you want to
+
1957 # understand what is going on. On the other hand, if this tag is set to NO, the
+
1958 # size of the Perl module output will be much smaller and Perl will parse it
+
1959 # just the same.
+
1960 # The default value is: YES.
+
1961 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1962 
+
1963 PERLMOD_PRETTY = YES
+
1964 
+
1965 # The names of the make variables in the generated doxyrules.make file are
+
1966 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+
1967 # so different doxyrules.make files included by the same Makefile don't
+
1968 # overwrite each other's variables.
+
1969 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
1970 
+
1971 PERLMOD_MAKEVAR_PREFIX =
+
1972 
+
1973 #---------------------------------------------------------------------------
+
1974 # Configuration options related to the preprocessor
+
1975 #---------------------------------------------------------------------------
+
1976 
+
1977 # If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+
1978 # C-preprocessor directives found in the sources and include files.
+
1979 # The default value is: YES.
+
1980 
+
1981 ENABLE_PREPROCESSING = YES
+
1982 
+
1983 # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+
1984 # in the source code. If set to NO, only conditional compilation will be
+
1985 # performed. Macro expansion can be done in a controlled way by setting
+
1986 # EXPAND_ONLY_PREDEF to YES.
+
1987 # The default value is: NO.
+
1988 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1989 
+
1990 MACRO_EXPANSION = NO
+
1991 
+
1992 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+
1993 # the macro expansion is limited to the macros specified with the PREDEFINED and
+
1994 # EXPAND_AS_DEFINED tags.
+
1995 # The default value is: NO.
+
1996 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
1997 
+
1998 EXPAND_ONLY_PREDEF = NO
+
1999 
+
2000 # If the SEARCH_INCLUDES tag is set to YES, the include files in the
+
2001 # INCLUDE_PATH will be searched if a #include is found.
+
2002 # The default value is: YES.
+
2003 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2004 
+
2005 SEARCH_INCLUDES = YES
+
2006 
+
2007 # The INCLUDE_PATH tag can be used to specify one or more directories that
+
2008 # contain include files that are not input files but should be processed by the
+
2009 # preprocessor.
+
2010 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
2011 
+
2012 INCLUDE_PATH =
+
2013 
+
2014 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+
2015 # patterns (like *.h and *.hpp) to filter out the header-files in the
+
2016 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
+
2017 # used.
+
2018 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2019 
+
2020 INCLUDE_FILE_PATTERNS =
+
2021 
+
2022 # The PREDEFINED tag can be used to specify one or more macro names that are
+
2023 # defined before the preprocessor is started (similar to the -D option of e.g.
+
2024 # gcc). The argument of the tag is a list of macros of the form: name or
+
2025 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+
2026 # is assumed. To prevent a macro definition from being undefined via #undef or
+
2027 # recursively expanded use the := operator instead of the = operator.
+
2028 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2029 
+
2030 PREDEFINED =
+
2031 
+
2032 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+
2033 # tag can be used to specify a list of macro names that should be expanded. The
+
2034 # macro definition that is found in the sources will be used. Use the PREDEFINED
+
2035 # tag if you want to use a different macro definition that overrules the
+
2036 # definition found in the source code.
+
2037 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2038 
+
2039 EXPAND_AS_DEFINED =
+
2040 
+
2041 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+
2042 # remove all references to function-like macros that are alone on a line, have
+
2043 # an all uppercase name, and do not end with a semicolon. Such function macros
+
2044 # are typically used for boiler-plate code, and will confuse the parser if not
+
2045 # removed.
+
2046 # The default value is: YES.
+
2047 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
2048 
+
2049 SKIP_FUNCTION_MACROS = YES
+
2050 
+
2051 #---------------------------------------------------------------------------
+
2052 # Configuration options related to external references
+
2053 #---------------------------------------------------------------------------
+
2054 
+
2055 # The TAGFILES tag can be used to specify one or more tag files. For each tag
+
2056 # file the location of the external documentation should be added. The format of
+
2057 # a tag file without this location is as follows:
+
2058 # TAGFILES = file1 file2 ...
+
2059 # Adding location for the tag files is done as follows:
+
2060 # TAGFILES = file1=loc1 "file2 = loc2" ...
+
2061 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
+
2062 # section "Linking to external documentation" for more information about the use
+
2063 # of tag files.
+
2064 # Note: Each tag file must have a unique name (where the name does NOT include
+
2065 # the path). If a tag file is not located in the directory in which doxygen is
+
2066 # run, you must also specify the path to the tagfile here.
+
2067 
+
2068 TAGFILES =
+
2069 
+
2070 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+
2071 # tag file that is based on the input files it reads. See section "Linking to
+
2072 # external documentation" for more information about the usage of tag files.
+
2073 
+
2074 GENERATE_TAGFILE =
+
2075 
+
2076 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+
2077 # the class index. If set to NO, only the inherited external classes will be
+
2078 # listed.
+
2079 # The default value is: NO.
+
2080 
+
2081 ALLEXTERNALS = NO
+
2082 
+
2083 # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+
2084 # in the modules index. If set to NO, only the current project's groups will be
+
2085 # listed.
+
2086 # The default value is: YES.
+
2087 
+
2088 EXTERNAL_GROUPS = YES
+
2089 
+
2090 # If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+
2091 # the related pages index. If set to NO, only the current project's pages will
+
2092 # be listed.
+
2093 # The default value is: YES.
+
2094 
+
2095 EXTERNAL_PAGES = YES
+
2096 
+
2097 # The PERL_PATH should be the absolute path and name of the perl script
+
2098 # interpreter (i.e. the result of 'which perl').
+
2099 # The default file (with absolute path) is: /usr/bin/perl.
+
2100 
+
2101 PERL_PATH = /usr/bin/perl
+
2102 
+
2103 #---------------------------------------------------------------------------
+
2104 # Configuration options related to the dot tool
+
2105 #---------------------------------------------------------------------------
+
2106 
+
2107 # If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+
2108 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+
2109 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
+
2110 # disabled, but it is recommended to install and use dot, since it yields more
+
2111 # powerful graphs.
+
2112 # The default value is: YES.
+
2113 
+
2114 CLASS_DIAGRAMS = YES
+
2115 
+
2116 # You can define message sequence charts within doxygen comments using the \msc
+
2117 # command. Doxygen will then run the mscgen tool (see:
+
2118 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+
2119 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
+
2120 # the mscgen tool resides. If left empty the tool is assumed to be found in the
+
2121 # default search path.
+
2122 
+
2123 MSCGEN_PATH =
+
2124 
+
2125 # You can include diagrams made with dia in doxygen documentation. Doxygen will
+
2126 # then run dia to produce the diagram and insert it in the documentation. The
+
2127 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
+
2128 # If left empty dia is assumed to be found in the default search path.
+
2129 
+
2130 DIA_PATH =
+
2131 
+
2132 # If set to YES the inheritance and collaboration graphs will hide inheritance
+
2133 # and usage relations if the target is undocumented or is not a class.
+
2134 # The default value is: YES.
+
2135 
+
2136 HIDE_UNDOC_RELATIONS = YES
+
2137 
+
2138 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+
2139 # available from the path. This tool is part of Graphviz (see:
+
2140 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+
2141 # Bell Labs. The other options in this section have no effect if this option is
+
2142 # set to NO
+
2143 # The default value is: NO.
+
2144 
+
2145 HAVE_DOT = NO
+
2146 
+
2147 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+
2148 # to run in parallel. When set to 0 doxygen will base this on the number of
+
2149 # processors available in the system. You can set it explicitly to a value
+
2150 # larger than 0 to get control over the balance between CPU load and processing
+
2151 # speed.
+
2152 # Minimum value: 0, maximum value: 32, default value: 0.
+
2153 # This tag requires that the tag HAVE_DOT is set to YES.
+
2154 
+
2155 DOT_NUM_THREADS = 0
+
2156 
+
2157 # When you want a differently looking font in the dot files that doxygen
+
2158 # generates you can specify the font name using DOT_FONTNAME. You need to make
+
2159 # sure dot is able to find the font, which can be done by putting it in a
+
2160 # standard location or by setting the DOTFONTPATH environment variable or by
+
2161 # setting DOT_FONTPATH to the directory containing the font.
+
2162 # The default value is: Helvetica.
+
2163 # This tag requires that the tag HAVE_DOT is set to YES.
+
2164 
+
2165 DOT_FONTNAME = Helvetica
+
2166 
+
2167 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+
2168 # dot graphs.
+
2169 # Minimum value: 4, maximum value: 24, default value: 10.
+
2170 # This tag requires that the tag HAVE_DOT is set to YES.
+
2171 
+
2172 DOT_FONTSIZE = 10
+
2173 
+
2174 # By default doxygen will tell dot to use the default font as specified with
+
2175 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+
2176 # the path where dot can find it using this tag.
+
2177 # This tag requires that the tag HAVE_DOT is set to YES.
+
2178 
+
2179 DOT_FONTPATH =
+
2180 
+
2181 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+
2182 # each documented class showing the direct and indirect inheritance relations.
+
2183 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+
2184 # The default value is: YES.
+
2185 # This tag requires that the tag HAVE_DOT is set to YES.
+
2186 
+
2187 CLASS_GRAPH = YES
+
2188 
+
2189 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+
2190 # graph for each documented class showing the direct and indirect implementation
+
2191 # dependencies (inheritance, containment, and class references variables) of the
+
2192 # class with other documented classes.
+
2193 # The default value is: YES.
+
2194 # This tag requires that the tag HAVE_DOT is set to YES.
+
2195 
+
2196 COLLABORATION_GRAPH = YES
+
2197 
+
2198 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+
2199 # groups, showing the direct groups dependencies.
+
2200 # The default value is: YES.
+
2201 # This tag requires that the tag HAVE_DOT is set to YES.
+
2202 
+
2203 GROUP_GRAPHS = YES
+
2204 
+
2205 # If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+
2206 # collaboration diagrams in a style similar to the OMG's Unified Modeling
+
2207 # Language.
+
2208 # The default value is: NO.
+
2209 # This tag requires that the tag HAVE_DOT is set to YES.
+
2210 
+
2211 UML_LOOK = NO
+
2212 
+
2213 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+
2214 # class node. If there are many fields or methods and many nodes the graph may
+
2215 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+
2216 # number of items for each type to make the size more manageable. Set this to 0
+
2217 # for no limit. Note that the threshold may be exceeded by 50% before the limit
+
2218 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+
2219 # but if the number exceeds 15, the total amount of fields shown is limited to
+
2220 # 10.
+
2221 # Minimum value: 0, maximum value: 100, default value: 10.
+
2222 # This tag requires that the tag HAVE_DOT is set to YES.
+
2223 
+
2224 UML_LIMIT_NUM_FIELDS = 10
+
2225 
+
2226 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+
2227 # collaboration graphs will show the relations between templates and their
+
2228 # instances.
+
2229 # The default value is: NO.
+
2230 # This tag requires that the tag HAVE_DOT is set to YES.
+
2231 
+
2232 TEMPLATE_RELATIONS = NO
+
2233 
+
2234 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+
2235 # YES then doxygen will generate a graph for each documented file showing the
+
2236 # direct and indirect include dependencies of the file with other documented
+
2237 # files.
+
2238 # The default value is: YES.
+
2239 # This tag requires that the tag HAVE_DOT is set to YES.
+
2240 
+
2241 INCLUDE_GRAPH = YES
+
2242 
+
2243 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+
2244 # set to YES then doxygen will generate a graph for each documented file showing
+
2245 # the direct and indirect include dependencies of the file with other documented
+
2246 # files.
+
2247 # The default value is: YES.
+
2248 # This tag requires that the tag HAVE_DOT is set to YES.
+
2249 
+
2250 INCLUDED_BY_GRAPH = YES
+
2251 
+
2252 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+
2253 # dependency graph for every global function or class method.
+
2254 #
+
2255 # Note that enabling this option will significantly increase the time of a run.
+
2256 # So in most cases it will be better to enable call graphs for selected
+
2257 # functions only using the \callgraph command. Disabling a call graph can be
+
2258 # accomplished by means of the command \hidecallgraph.
+
2259 # The default value is: NO.
+
2260 # This tag requires that the tag HAVE_DOT is set to YES.
+
2261 
+
2262 CALL_GRAPH = YES
+
2263 
+
2264 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+
2265 # dependency graph for every global function or class method.
+
2266 #
+
2267 # Note that enabling this option will significantly increase the time of a run.
+
2268 # So in most cases it will be better to enable caller graphs for selected
+
2269 # functions only using the \callergraph command. Disabling a caller graph can be
+
2270 # accomplished by means of the command \hidecallergraph.
+
2271 # The default value is: NO.
+
2272 # This tag requires that the tag HAVE_DOT is set to YES.
+
2273 
+
2274 CALLER_GRAPH = YES
+
2275 
+
2276 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+
2277 # hierarchy of all classes instead of a textual one.
+
2278 # The default value is: YES.
+
2279 # This tag requires that the tag HAVE_DOT is set to YES.
+
2280 
+
2281 GRAPHICAL_HIERARCHY = YES
+
2282 
+
2283 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+
2284 # dependencies a directory has on other directories in a graphical way. The
+
2285 # dependency relations are determined by the #include relations between the
+
2286 # files in the directories.
+
2287 # The default value is: YES.
+
2288 # This tag requires that the tag HAVE_DOT is set to YES.
+
2289 
+
2290 DIRECTORY_GRAPH = YES
+
2291 
+
2292 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+
2293 # generated by dot. For an explanation of the image formats see the section
+
2294 # output formats in the documentation of the dot tool (Graphviz (see:
+
2295 # http://www.graphviz.org/)).
+
2296 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+
2297 # to make the SVG files visible in IE 9+ (other browsers do not have this
+
2298 # requirement).
+
2299 # Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+
2300 # png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+
2301 # png:gdiplus:gdiplus.
+
2302 # The default value is: png.
+
2303 # This tag requires that the tag HAVE_DOT is set to YES.
+
2304 
+
2305 DOT_IMAGE_FORMAT = png
+
2306 
+
2307 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+
2308 # enable generation of interactive SVG images that allow zooming and panning.
+
2309 #
+
2310 # Note that this requires a modern browser other than Internet Explorer. Tested
+
2311 # and working are Firefox, Chrome, Safari, and Opera.
+
2312 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+
2313 # the SVG files visible. Older versions of IE do not have SVG support.
+
2314 # The default value is: NO.
+
2315 # This tag requires that the tag HAVE_DOT is set to YES.
+
2316 
+
2317 INTERACTIVE_SVG = NO
+
2318 
+
2319 # The DOT_PATH tag can be used to specify the path where the dot tool can be
+
2320 # found. If left blank, it is assumed the dot tool can be found in the path.
+
2321 # This tag requires that the tag HAVE_DOT is set to YES.
+
2322 
+
2323 DOT_PATH =
+
2324 
+
2325 # The DOTFILE_DIRS tag can be used to specify one or more directories that
+
2326 # contain dot files that are included in the documentation (see the \dotfile
+
2327 # command).
+
2328 # This tag requires that the tag HAVE_DOT is set to YES.
+
2329 
+
2330 DOTFILE_DIRS =
+
2331 
+
2332 # The MSCFILE_DIRS tag can be used to specify one or more directories that
+
2333 # contain msc files that are included in the documentation (see the \mscfile
+
2334 # command).
+
2335 
+
2336 MSCFILE_DIRS =
+
2337 
+
2338 # The DIAFILE_DIRS tag can be used to specify one or more directories that
+
2339 # contain dia files that are included in the documentation (see the \diafile
+
2340 # command).
+
2341 
+
2342 DIAFILE_DIRS =
+
2343 
+
2344 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+
2345 # path where java can find the plantuml.jar file. If left blank, it is assumed
+
2346 # PlantUML is not used or called during a preprocessing step. Doxygen will
+
2347 # generate a warning when it encounters a \startuml command in this case and
+
2348 # will not generate output for the diagram.
+
2349 
+
2350 PLANTUML_JAR_PATH =
+
2351 
+
2352 # When using plantuml, the specified paths are searched for files specified by
+
2353 # the !include statement in a plantuml block.
+
2354 
+
2355 PLANTUML_INCLUDE_PATH =
+
2356 
+
2357 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+
2358 # that will be shown in the graph. If the number of nodes in a graph becomes
+
2359 # larger than this value, doxygen will truncate the graph, which is visualized
+
2360 # by representing a node as a red box. Note that doxygen if the number of direct
+
2361 # children of the root node in a graph is already larger than
+
2362 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+
2363 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
2364 # Minimum value: 0, maximum value: 10000, default value: 50.
+
2365 # This tag requires that the tag HAVE_DOT is set to YES.
+
2366 
+
2367 DOT_GRAPH_MAX_NODES = 50
+
2368 
+
2369 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+
2370 # generated by dot. A depth value of 3 means that only nodes reachable from the
+
2371 # root by following a path via at most 3 edges will be shown. Nodes that lay
+
2372 # further from the root node will be omitted. Note that setting this option to 1
+
2373 # or 2 may greatly reduce the computation time needed for large code bases. Also
+
2374 # note that the size of a graph can be further restricted by
+
2375 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
2376 # Minimum value: 0, maximum value: 1000, default value: 0.
+
2377 # This tag requires that the tag HAVE_DOT is set to YES.
+
2378 
+
2379 MAX_DOT_GRAPH_DEPTH = 1000
+
2380 
+
2381 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+
2382 # background. This is disabled by default, because dot on Windows does not seem
+
2383 # to support this out of the box.
+
2384 #
+
2385 # Warning: Depending on the platform used, enabling this option may lead to
+
2386 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+
2387 # read).
+
2388 # The default value is: NO.
+
2389 # This tag requires that the tag HAVE_DOT is set to YES.
+
2390 
+
2391 DOT_TRANSPARENT = NO
+
2392 
+
2393 # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+
2394 # files in one run (i.e. multiple -o and -T options on the command line). This
+
2395 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
+
2396 # this, this feature is disabled by default.
+
2397 # The default value is: NO.
+
2398 # This tag requires that the tag HAVE_DOT is set to YES.
+
2399 
+
2400 DOT_MULTI_TARGETS = NO
+
2401 
+
2402 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+
2403 # explaining the meaning of the various boxes and arrows in the dot generated
+
2404 # graphs.
+
2405 # The default value is: YES.
+
2406 # This tag requires that the tag HAVE_DOT is set to YES.
+
2407 
+
2408 GENERATE_LEGEND = YES
+
2409 
+
2410 # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+
2411 # files that are used to generate the various graphs.
+
2412 # The default value is: YES.
+
2413 # This tag requires that the tag HAVE_DOT is set to YES.
+
2414 
+
2415 DOT_CLEANUP = YES
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00048.html b/external/include/glm-0.9.9.8/doc/api/a00048.html index 7b7f27bee2..f1e6b70873 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00048.html +++ b/external/include/glm-0.9.9.8/doc/api/a00048.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat2x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat2x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat2x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat2x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00048_source.html b/external/include/glm-0.9.9.8/doc/api/a00048_source.html index 619ceb0821..29c2a5219f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00048_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00048_source.html @@ -1,110 +1,110 @@ - - - - - - -0.9.9 API documentation: mat2x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x2.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat2x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x2.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00049.html b/external/include/glm-0.9.9.8/doc/api/a00049.html index 28f0b0a3aa..02371af4af 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00049.html +++ b/external/include/glm-0.9.9.8/doc/api/a00049.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat2x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat2x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat2x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat2x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00049_source.html b/external/include/glm-0.9.9.8/doc/api/a00049_source.html index da8bfe6316..9b32dcebba 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00049_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00049_source.html @@ -1,110 +1,110 @@ - - - - - - -0.9.9 API documentation: mat2x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x3.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat2x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x3.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00050.html b/external/include/glm-0.9.9.8/doc/api/a00050.html index 8750381ede..edc8e0d3a6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00050.html +++ b/external/include/glm-0.9.9.8/doc/api/a00050.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat2x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat2x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat2x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat2x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00050_source.html b/external/include/glm-0.9.9.8/doc/api/a00050_source.html index 2b02edbf8f..ef9de3a5d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00050_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00050_source.html @@ -1,110 +1,110 @@ - - - - - - -0.9.9 API documentation: mat2x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat2x4.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat2x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat2x4.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00051.html b/external/include/glm-0.9.9.8/doc/api/a00051.html index 082e706011..fe42f0de1f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00051.html +++ b/external/include/glm-0.9.9.8/doc/api/a00051.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat3x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat3x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat3x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat3x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00051_source.html b/external/include/glm-0.9.9.8/doc/api/a00051_source.html index ba2e3969e6..7ff21cc9eb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00051_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00051_source.html @@ -1,110 +1,110 @@ - - - - - - -0.9.9 API documentation: mat3x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x2.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat3x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x2.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00052.html b/external/include/glm-0.9.9.8/doc/api/a00052.html index 8eb68efe44..e54365b581 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00052.html +++ b/external/include/glm-0.9.9.8/doc/api/a00052.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat3x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat3x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat3x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat3x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00052_source.html b/external/include/glm-0.9.9.8/doc/api/a00052_source.html index e5f0a05749..d05398ccfe 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00052_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00052_source.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: mat3x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x3.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat3x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x3.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00053.html b/external/include/glm-0.9.9.8/doc/api/a00053.html index 0121278bf6..595a4ebdba 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00053.html +++ b/external/include/glm-0.9.9.8/doc/api/a00053.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat3x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat3x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat3x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat3x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00053_source.html b/external/include/glm-0.9.9.8/doc/api/a00053_source.html index ee4eea45b4..ceaa6234bf 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00053_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00053_source.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: mat3x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat3x4.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat3x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat3x4.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00054.html b/external/include/glm-0.9.9.8/doc/api/a00054.html index 4a6224fb82..8a0645635c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00054.html +++ b/external/include/glm-0.9.9.8/doc/api/a00054.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat4x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat4x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat4x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat4x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00054_source.html b/external/include/glm-0.9.9.8/doc/api/a00054_source.html index 17d39704b2..5e8fe2dc4d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00054_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00054_source.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: mat4x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
- - - -
8 #include "./ext/matrix_float4x2_precision.hpp"
-
9 
- -
Core features
-
Core features
-
- - - - + + + + + + +0.9.9 API documentation: mat4x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+ + + +
8 #include "./ext/matrix_float4x2_precision.hpp"
+
9 
+ +
Core features
+
Core features
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00055.html b/external/include/glm-0.9.9.8/doc/api/a00055.html index 046270b4ee..3905618f13 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00055.html +++ b/external/include/glm-0.9.9.8/doc/api/a00055.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat4x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat4x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat4x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat4x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00055_source.html b/external/include/glm-0.9.9.8/doc/api/a00055_source.html index 2141901ae7..85f4e8fea5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00055_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00055_source.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: mat4x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x3.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat4x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x3.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00056.html b/external/include/glm-0.9.9.8/doc/api/a00056.html index 96f22735d0..b4a3383429 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00056.html +++ b/external/include/glm-0.9.9.8/doc/api/a00056.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: mat4x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file mat4x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mat4x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file mat4x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00056_source.html b/external/include/glm-0.9.9.8/doc/api/a00056_source.html index b19090641d..b6f327dc49 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00056_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00056_source.html @@ -1,110 +1,110 @@ - - - - - - -0.9.9 API documentation: mat4x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mat4x4.hpp
-
- - - - - + + + + + + +0.9.9 API documentation: mat4x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mat4x4.hpp
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00057.html b/external/include/glm-0.9.9.8/doc/api/a00057.html index f21a7e7e82..2513496c36 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00057.html +++ b/external/include/glm-0.9.9.8/doc/api/a00057.html @@ -1,135 +1,135 @@ - - - - - - -0.9.9 API documentation: matrix.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL T determinant (mat< C, R, T, Q > const &m)
 Return the determinant of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > inverse (mat< C, R, T, Q > const &m)
 Return the inverse of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct (vec< C, T, Q > const &c, vec< R, T, Q > const &r)
 Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose (mat< C, R, T, Q > const &x)
 Returns the transposed matrix of x. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL T determinant (mat< C, R, T, Q > const &m)
 Return the determinant of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > inverse (mat< C, R, T, Q > const &m)
 Return the inverse of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct (vec< C, T, Q > const &c, vec< R, T, Q > const &r)
 Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose (mat< C, R, T, Q > const &x)
 Returns the transposed matrix of x. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00057_source.html b/external/include/glm-0.9.9.8/doc/api/a00057_source.html index 103e461df7..f6793317df 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00057_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00057_source.html @@ -1,216 +1,216 @@ - - - - - - -0.9.9 API documentation: matrix.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "detail/qualifier.hpp"
-
17 #include "detail/setup.hpp"
-
18 #include "vec2.hpp"
-
19 #include "vec3.hpp"
-
20 #include "vec4.hpp"
-
21 #include "mat2x2.hpp"
-
22 #include "mat2x3.hpp"
-
23 #include "mat2x4.hpp"
-
24 #include "mat3x2.hpp"
-
25 #include "mat3x3.hpp"
-
26 #include "mat3x4.hpp"
-
27 #include "mat4x2.hpp"
-
28 #include "mat4x3.hpp"
-
29 #include "mat4x4.hpp"
-
30 
-
31 namespace glm {
-
32 namespace detail
-
33 {
-
34  template<length_t C, length_t R, typename T, qualifier Q>
-
35  struct outerProduct_trait{};
-
36 
-
37  template<typename T, qualifier Q>
-
38  struct outerProduct_trait<2, 2, T, Q>
-
39  {
-
40  typedef mat<2, 2, T, Q> type;
-
41  };
-
42 
-
43  template<typename T, qualifier Q>
-
44  struct outerProduct_trait<2, 3, T, Q>
-
45  {
-
46  typedef mat<3, 2, T, Q> type;
-
47  };
-
48 
-
49  template<typename T, qualifier Q>
-
50  struct outerProduct_trait<2, 4, T, Q>
-
51  {
-
52  typedef mat<4, 2, T, Q> type;
-
53  };
-
54 
-
55  template<typename T, qualifier Q>
-
56  struct outerProduct_trait<3, 2, T, Q>
-
57  {
-
58  typedef mat<2, 3, T, Q> type;
-
59  };
-
60 
-
61  template<typename T, qualifier Q>
-
62  struct outerProduct_trait<3, 3, T, Q>
-
63  {
-
64  typedef mat<3, 3, T, Q> type;
-
65  };
-
66 
-
67  template<typename T, qualifier Q>
-
68  struct outerProduct_trait<3, 4, T, Q>
-
69  {
-
70  typedef mat<4, 3, T, Q> type;
-
71  };
-
72 
-
73  template<typename T, qualifier Q>
-
74  struct outerProduct_trait<4, 2, T, Q>
-
75  {
-
76  typedef mat<2, 4, T, Q> type;
-
77  };
-
78 
-
79  template<typename T, qualifier Q>
-
80  struct outerProduct_trait<4, 3, T, Q>
-
81  {
-
82  typedef mat<3, 4, T, Q> type;
-
83  };
-
84 
-
85  template<typename T, qualifier Q>
-
86  struct outerProduct_trait<4, 4, T, Q>
-
87  {
-
88  typedef mat<4, 4, T, Q> type;
-
89  };
-
90 }//namespace detail
-
91 
-
94 
-
105  template<length_t C, length_t R, typename T, qualifier Q>
-
106  GLM_FUNC_DECL mat<C, R, T, Q> matrixCompMult(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
-
107 
-
119  template<length_t C, length_t R, typename T, qualifier Q>
-
120  GLM_FUNC_DECL typename detail::outerProduct_trait<C, R, T, Q>::type outerProduct(vec<C, T, Q> const& c, vec<R, T, Q> const& r);
-
121 
-
131  template<length_t C, length_t R, typename T, qualifier Q>
-
132  GLM_FUNC_DECL typename mat<C, R, T, Q>::transpose_type transpose(mat<C, R, T, Q> const& x);
-
133 
-
143  template<length_t C, length_t R, typename T, qualifier Q>
-
144  GLM_FUNC_DECL T determinant(mat<C, R, T, Q> const& m);
-
145 
-
155  template<length_t C, length_t R, typename T, qualifier Q>
-
156  GLM_FUNC_DECL mat<C, R, T, Q> inverse(mat<C, R, T, Q> const& m);
-
157 
-
159 }//namespace glm
-
160 
-
161 #include "detail/func_matrix.inl"
-
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...
-
Core features
-
GLM_FUNC_DECL T determinant(mat< C, R, T, Q > const &m)
Return the determinant of a squared matrix.
-
Core features
-
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct(vec< C, T, Q > const &c, vec< R, T, Q > const &r)
Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...
-
Core features
-
Core features
-
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose(mat< C, R, T, Q > const &x)
Returns the transposed matrix of x.
-
Core features
-
Core features
-
Core features
-
Core features
-
GLM_FUNC_DECL mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Return the inverse of a squared matrix.
-
Core features
-
Core features
-
Core features
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "detail/qualifier.hpp"
+
17 #include "detail/setup.hpp"
+
18 #include "vec2.hpp"
+
19 #include "vec3.hpp"
+
20 #include "vec4.hpp"
+
21 #include "mat2x2.hpp"
+
22 #include "mat2x3.hpp"
+
23 #include "mat2x4.hpp"
+
24 #include "mat3x2.hpp"
+
25 #include "mat3x3.hpp"
+
26 #include "mat3x4.hpp"
+
27 #include "mat4x2.hpp"
+
28 #include "mat4x3.hpp"
+
29 #include "mat4x4.hpp"
+
30 
+
31 namespace glm {
+
32 namespace detail
+
33 {
+
34  template<length_t C, length_t R, typename T, qualifier Q>
+
35  struct outerProduct_trait{};
+
36 
+
37  template<typename T, qualifier Q>
+
38  struct outerProduct_trait<2, 2, T, Q>
+
39  {
+
40  typedef mat<2, 2, T, Q> type;
+
41  };
+
42 
+
43  template<typename T, qualifier Q>
+
44  struct outerProduct_trait<2, 3, T, Q>
+
45  {
+
46  typedef mat<3, 2, T, Q> type;
+
47  };
+
48 
+
49  template<typename T, qualifier Q>
+
50  struct outerProduct_trait<2, 4, T, Q>
+
51  {
+
52  typedef mat<4, 2, T, Q> type;
+
53  };
+
54 
+
55  template<typename T, qualifier Q>
+
56  struct outerProduct_trait<3, 2, T, Q>
+
57  {
+
58  typedef mat<2, 3, T, Q> type;
+
59  };
+
60 
+
61  template<typename T, qualifier Q>
+
62  struct outerProduct_trait<3, 3, T, Q>
+
63  {
+
64  typedef mat<3, 3, T, Q> type;
+
65  };
+
66 
+
67  template<typename T, qualifier Q>
+
68  struct outerProduct_trait<3, 4, T, Q>
+
69  {
+
70  typedef mat<4, 3, T, Q> type;
+
71  };
+
72 
+
73  template<typename T, qualifier Q>
+
74  struct outerProduct_trait<4, 2, T, Q>
+
75  {
+
76  typedef mat<2, 4, T, Q> type;
+
77  };
+
78 
+
79  template<typename T, qualifier Q>
+
80  struct outerProduct_trait<4, 3, T, Q>
+
81  {
+
82  typedef mat<3, 4, T, Q> type;
+
83  };
+
84 
+
85  template<typename T, qualifier Q>
+
86  struct outerProduct_trait<4, 4, T, Q>
+
87  {
+
88  typedef mat<4, 4, T, Q> type;
+
89  };
+
90 }//namespace detail
+
91 
+
94 
+
105  template<length_t C, length_t R, typename T, qualifier Q>
+
106  GLM_FUNC_DECL mat<C, R, T, Q> matrixCompMult(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
+
107 
+
119  template<length_t C, length_t R, typename T, qualifier Q>
+
120  GLM_FUNC_DECL typename detail::outerProduct_trait<C, R, T, Q>::type outerProduct(vec<C, T, Q> const& c, vec<R, T, Q> const& r);
+
121 
+
131  template<length_t C, length_t R, typename T, qualifier Q>
+
132  GLM_FUNC_DECL typename mat<C, R, T, Q>::transpose_type transpose(mat<C, R, T, Q> const& x);
+
133 
+
143  template<length_t C, length_t R, typename T, qualifier Q>
+
144  GLM_FUNC_DECL T determinant(mat<C, R, T, Q> const& m);
+
145 
+
155  template<length_t C, length_t R, typename T, qualifier Q>
+
156  GLM_FUNC_DECL mat<C, R, T, Q> inverse(mat<C, R, T, Q> const& m);
+
157 
+
159 }//namespace glm
+
160 
+
161 #include "detail/func_matrix.inl"
+
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and...
+
Core features
+
GLM_FUNC_DECL T determinant(mat< C, R, T, Q > const &m)
Return the determinant of a squared matrix.
+
Core features
+
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct(vec< C, T, Q > const &c, vec< R, T, Q > const &r)
Treats the first parameter c as a column vector and the second parameter r as a row vector and does a...
+
Core features
+
Core features
+
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose(mat< C, R, T, Q > const &x)
Returns the transposed matrix of x.
+
Core features
+
Core features
+
Core features
+
Core features
+
GLM_FUNC_DECL mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Return the inverse of a squared matrix.
+
Core features
+
Core features
+
Core features
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00058.html b/external/include/glm-0.9.9.8/doc/api/a00058.html index 8ea059032e..8f2c5beb12 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00058.html +++ b/external/include/glm-0.9.9.8/doc/api/a00058.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: matrix_access.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_access.hpp File Reference
-
-
- -

GLM_GTC_matrix_access -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 Get a specific column of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 Set a specific column to a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 Get a specific row of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 Set a specific row to a matrix. More...
 
-

Detailed Description

-

GLM_GTC_matrix_access

-
See also
Core features (dependence)
- -

Definition in file matrix_access.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_access.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_access.hpp File Reference
+
+
+ +

GLM_GTC_matrix_access +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 Get a specific column of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 Set a specific column to a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 Get a specific row of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 Set a specific row to a matrix. More...
 
+

Detailed Description

+

GLM_GTC_matrix_access

+
See also
Core features (dependence)
+ +

Definition in file matrix_access.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00058_source.html b/external/include/glm-0.9.9.8/doc/api/a00058_source.html index a509181aa9..35b62127e2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00058_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00058_source.html @@ -1,140 +1,140 @@ - - - - - - -0.9.9 API documentation: matrix_access.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_access.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../detail/setup.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_GTC_matrix_access extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
29  template<typename genType>
-
30  GLM_FUNC_DECL typename genType::row_type row(
-
31  genType const& m,
-
32  length_t index);
-
33 
-
36  template<typename genType>
-
37  GLM_FUNC_DECL genType row(
-
38  genType const& m,
-
39  length_t index,
-
40  typename genType::row_type const& x);
-
41 
-
44  template<typename genType>
-
45  GLM_FUNC_DECL typename genType::col_type column(
-
46  genType const& m,
-
47  length_t index);
-
48 
-
51  template<typename genType>
-
52  GLM_FUNC_DECL genType column(
-
53  genType const& m,
-
54  length_t index,
-
55  typename genType::col_type const& x);
-
56 
-
58 }//namespace glm
-
59 
-
60 #include "matrix_access.inl"
-
GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)
Set a specific row to a matrix.
-
GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)
Set a specific column to a matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_access.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_access.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../detail/setup.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_GTC_matrix_access extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
29  template<typename genType>
+
30  GLM_FUNC_DECL typename genType::row_type row(
+
31  genType const& m,
+
32  length_t index);
+
33 
+
36  template<typename genType>
+
37  GLM_FUNC_DECL genType row(
+
38  genType const& m,
+
39  length_t index,
+
40  typename genType::row_type const& x);
+
41 
+
44  template<typename genType>
+
45  GLM_FUNC_DECL typename genType::col_type column(
+
46  genType const& m,
+
47  length_t index);
+
48 
+
51  template<typename genType>
+
52  GLM_FUNC_DECL genType column(
+
53  genType const& m,
+
54  length_t index,
+
55  typename genType::col_type const& x);
+
56 
+
58 }//namespace glm
+
59 
+
60 #include "matrix_access.inl"
+
GLM_FUNC_DECL genType row(genType const &m, length_t index, typename genType::row_type const &x)
Set a specific row to a matrix.
+
GLM_FUNC_DECL genType column(genType const &m, length_t index, typename genType::col_type const &x)
Set a specific column to a matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00059.html b/external/include/glm-0.9.9.8/doc/api/a00059.html index 02145b24c2..464cf2e191 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00059.html +++ b/external/include/glm-0.9.9.8/doc/api/a00059.html @@ -1,282 +1,282 @@ - - - - - - -0.9.9 API documentation: matrix_clip_space.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_clip_space.hpp File Reference
-
-
- -

GLM_EXT_matrix_clip_space -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH (T fovy, T aspect, T near)
 Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH (T fovy, T aspect, T near)
 Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top)
 Creates a matrix for projecting two-dimensional coordinates onto the screen. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH (T fov, T width, T height, T near, T far)
 Builds a left handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH (T fov, T width, T height, T near, T far)
 Builds a right handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_clip_space.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_clip_space.hpp File Reference
+
+
+ +

GLM_EXT_matrix_clip_space +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH (T fovy, T aspect, T near)
 Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH (T fovy, T aspect, T near)
 Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top)
 Creates a matrix for projecting two-dimensional coordinates onto the screen. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH (T fov, T width, T height, T near, T far)
 Builds a left handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH (T fov, T width, T height, T near, T far)
 Builds a right handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00059_source.html b/external/include/glm-0.9.9.8/doc/api/a00059_source.html index b99391b7e6..758d48940a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00059_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00059_source.html @@ -1,327 +1,327 @@ - - - - - - -0.9.9 API documentation: matrix_clip_space.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_clip_space.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependencies
-
23 #include "../ext/scalar_constants.hpp"
-
24 #include "../geometric.hpp"
-
25 #include "../trigonometric.hpp"
-
26 
-
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
28 # pragma message("GLM: GLM_EXT_matrix_clip_space extension included")
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
42  template<typename T>
-
43  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
-
44  T left, T right, T bottom, T top);
-
45 
-
52  template<typename T>
-
53  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_ZO(
-
54  T left, T right, T bottom, T top, T zNear, T zFar);
-
55 
-
62  template<typename T>
-
63  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_NO(
-
64  T left, T right, T bottom, T top, T zNear, T zFar);
-
65 
-
72  template<typename T>
-
73  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_ZO(
-
74  T left, T right, T bottom, T top, T zNear, T zFar);
-
75 
-
82  template<typename T>
-
83  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_NO(
-
84  T left, T right, T bottom, T top, T zNear, T zFar);
-
85 
-
92  template<typename T>
-
93  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoZO(
-
94  T left, T right, T bottom, T top, T zNear, T zFar);
-
95 
-
102  template<typename T>
-
103  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoNO(
-
104  T left, T right, T bottom, T top, T zNear, T zFar);
-
105 
-
113  template<typename T>
-
114  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH(
-
115  T left, T right, T bottom, T top, T zNear, T zFar);
-
116 
-
124  template<typename T>
-
125  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH(
-
126  T left, T right, T bottom, T top, T zNear, T zFar);
-
127 
-
135  template<typename T>
-
136  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
-
137  T left, T right, T bottom, T top, T zNear, T zFar);
-
138 
-
143  template<typename T>
-
144  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_ZO(
-
145  T left, T right, T bottom, T top, T near, T far);
-
146 
-
151  template<typename T>
-
152  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_NO(
-
153  T left, T right, T bottom, T top, T near, T far);
-
154 
-
159  template<typename T>
-
160  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_ZO(
-
161  T left, T right, T bottom, T top, T near, T far);
-
162 
-
167  template<typename T>
-
168  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_NO(
-
169  T left, T right, T bottom, T top, T near, T far);
-
170 
-
175  template<typename T>
-
176  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumZO(
-
177  T left, T right, T bottom, T top, T near, T far);
-
178 
-
183  template<typename T>
-
184  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumNO(
-
185  T left, T right, T bottom, T top, T near, T far);
-
186 
-
192  template<typename T>
-
193  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH(
-
194  T left, T right, T bottom, T top, T near, T far);
-
195 
-
201  template<typename T>
-
202  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH(
-
203  T left, T right, T bottom, T top, T near, T far);
-
204 
-
210  template<typename T>
-
211  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustum(
-
212  T left, T right, T bottom, T top, T near, T far);
-
213 
-
214 
-
224  template<typename T>
-
225  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_ZO(
-
226  T fovy, T aspect, T near, T far);
-
227 
-
237  template<typename T>
-
238  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_NO(
-
239  T fovy, T aspect, T near, T far);
-
240 
-
250  template<typename T>
-
251  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_ZO(
-
252  T fovy, T aspect, T near, T far);
-
253 
-
263  template<typename T>
-
264  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_NO(
-
265  T fovy, T aspect, T near, T far);
-
266 
-
276  template<typename T>
-
277  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveZO(
-
278  T fovy, T aspect, T near, T far);
-
279 
-
289  template<typename T>
-
290  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveNO(
-
291  T fovy, T aspect, T near, T far);
-
292 
-
303  template<typename T>
-
304  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH(
-
305  T fovy, T aspect, T near, T far);
-
306 
-
317  template<typename T>
-
318  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH(
-
319  T fovy, T aspect, T near, T far);
-
320 
-
331  template<typename T>
-
332  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective(
-
333  T fovy, T aspect, T near, T far);
-
334 
-
345  template<typename T>
-
346  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_ZO(
-
347  T fov, T width, T height, T near, T far);
-
348 
-
359  template<typename T>
-
360  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_NO(
-
361  T fov, T width, T height, T near, T far);
-
362 
-
373  template<typename T>
-
374  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_ZO(
-
375  T fov, T width, T height, T near, T far);
-
376 
-
387  template<typename T>
-
388  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_NO(
-
389  T fov, T width, T height, T near, T far);
-
390 
-
401  template<typename T>
-
402  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovZO(
-
403  T fov, T width, T height, T near, T far);
-
404 
-
415  template<typename T>
-
416  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovNO(
-
417  T fov, T width, T height, T near, T far);
-
418 
-
430  template<typename T>
-
431  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH(
-
432  T fov, T width, T height, T near, T far);
-
433 
-
445  template<typename T>
-
446  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH(
-
447  T fov, T width, T height, T near, T far);
-
448 
-
459  template<typename T>
-
460  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFov(
-
461  T fov, T width, T height, T near, T far);
-
462 
-
470  template<typename T>
-
471  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveLH(
-
472  T fovy, T aspect, T near);
-
473 
-
481  template<typename T>
-
482  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveRH(
-
483  T fovy, T aspect, T near);
-
484 
-
492  template<typename T>
-
493  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspective(
-
494  T fovy, T aspect, T near);
-
495 
-
503  template<typename T>
-
504  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
-
505  T fovy, T aspect, T near);
-
506 
-
515  template<typename T>
-
516  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
-
517  T fovy, T aspect, T near, T ep);
-
518 
-
520 }//namespace glm
-
521 
-
522 #include "matrix_clip_space.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH(T fov, T width, T height, T near, T far)
Builds a left handed perspective projection matrix based on a field of view.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view and the default handedness and defaul...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH(T fov, T width, T height, T near, T far)
Builds a right handed perspective projection matrix based on a field of view.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using the default handedness and defaul...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FO...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum based on the default handedness and default ...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH(T fovy, T aspect, T near)
Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH(T fovy, T aspect, T near)
Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix with default handedness, using the default handedness and default near and f...
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_clip_space.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_clip_space.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependencies
+
23 #include "../ext/scalar_constants.hpp"
+
24 #include "../geometric.hpp"
+
25 #include "../trigonometric.hpp"
+
26 
+
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
28 # pragma message("GLM: GLM_EXT_matrix_clip_space extension included")
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
42  template<typename T>
+
43  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
+
44  T left, T right, T bottom, T top);
+
45 
+
52  template<typename T>
+
53  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_ZO(
+
54  T left, T right, T bottom, T top, T zNear, T zFar);
+
55 
+
62  template<typename T>
+
63  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH_NO(
+
64  T left, T right, T bottom, T top, T zNear, T zFar);
+
65 
+
72  template<typename T>
+
73  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_ZO(
+
74  T left, T right, T bottom, T top, T zNear, T zFar);
+
75 
+
82  template<typename T>
+
83  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH_NO(
+
84  T left, T right, T bottom, T top, T zNear, T zFar);
+
85 
+
92  template<typename T>
+
93  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoZO(
+
94  T left, T right, T bottom, T top, T zNear, T zFar);
+
95 
+
102  template<typename T>
+
103  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoNO(
+
104  T left, T right, T bottom, T top, T zNear, T zFar);
+
105 
+
113  template<typename T>
+
114  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoLH(
+
115  T left, T right, T bottom, T top, T zNear, T zFar);
+
116 
+
124  template<typename T>
+
125  GLM_FUNC_DECL mat<4, 4, T, defaultp> orthoRH(
+
126  T left, T right, T bottom, T top, T zNear, T zFar);
+
127 
+
135  template<typename T>
+
136  GLM_FUNC_DECL mat<4, 4, T, defaultp> ortho(
+
137  T left, T right, T bottom, T top, T zNear, T zFar);
+
138 
+
143  template<typename T>
+
144  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_ZO(
+
145  T left, T right, T bottom, T top, T near, T far);
+
146 
+
151  template<typename T>
+
152  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH_NO(
+
153  T left, T right, T bottom, T top, T near, T far);
+
154 
+
159  template<typename T>
+
160  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_ZO(
+
161  T left, T right, T bottom, T top, T near, T far);
+
162 
+
167  template<typename T>
+
168  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH_NO(
+
169  T left, T right, T bottom, T top, T near, T far);
+
170 
+
175  template<typename T>
+
176  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumZO(
+
177  T left, T right, T bottom, T top, T near, T far);
+
178 
+
183  template<typename T>
+
184  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumNO(
+
185  T left, T right, T bottom, T top, T near, T far);
+
186 
+
192  template<typename T>
+
193  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumLH(
+
194  T left, T right, T bottom, T top, T near, T far);
+
195 
+
201  template<typename T>
+
202  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustumRH(
+
203  T left, T right, T bottom, T top, T near, T far);
+
204 
+
210  template<typename T>
+
211  GLM_FUNC_DECL mat<4, 4, T, defaultp> frustum(
+
212  T left, T right, T bottom, T top, T near, T far);
+
213 
+
214 
+
224  template<typename T>
+
225  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_ZO(
+
226  T fovy, T aspect, T near, T far);
+
227 
+
237  template<typename T>
+
238  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH_NO(
+
239  T fovy, T aspect, T near, T far);
+
240 
+
250  template<typename T>
+
251  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_ZO(
+
252  T fovy, T aspect, T near, T far);
+
253 
+
263  template<typename T>
+
264  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH_NO(
+
265  T fovy, T aspect, T near, T far);
+
266 
+
276  template<typename T>
+
277  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveZO(
+
278  T fovy, T aspect, T near, T far);
+
279 
+
289  template<typename T>
+
290  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveNO(
+
291  T fovy, T aspect, T near, T far);
+
292 
+
303  template<typename T>
+
304  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveRH(
+
305  T fovy, T aspect, T near, T far);
+
306 
+
317  template<typename T>
+
318  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveLH(
+
319  T fovy, T aspect, T near, T far);
+
320 
+
331  template<typename T>
+
332  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective(
+
333  T fovy, T aspect, T near, T far);
+
334 
+
345  template<typename T>
+
346  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_ZO(
+
347  T fov, T width, T height, T near, T far);
+
348 
+
359  template<typename T>
+
360  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH_NO(
+
361  T fov, T width, T height, T near, T far);
+
362 
+
373  template<typename T>
+
374  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_ZO(
+
375  T fov, T width, T height, T near, T far);
+
376 
+
387  template<typename T>
+
388  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH_NO(
+
389  T fov, T width, T height, T near, T far);
+
390 
+
401  template<typename T>
+
402  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovZO(
+
403  T fov, T width, T height, T near, T far);
+
404 
+
415  template<typename T>
+
416  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovNO(
+
417  T fov, T width, T height, T near, T far);
+
418 
+
430  template<typename T>
+
431  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovRH(
+
432  T fov, T width, T height, T near, T far);
+
433 
+
445  template<typename T>
+
446  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFovLH(
+
447  T fov, T width, T height, T near, T far);
+
448 
+
459  template<typename T>
+
460  GLM_FUNC_DECL mat<4, 4, T, defaultp> perspectiveFov(
+
461  T fov, T width, T height, T near, T far);
+
462 
+
470  template<typename T>
+
471  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveLH(
+
472  T fovy, T aspect, T near);
+
473 
+
481  template<typename T>
+
482  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspectiveRH(
+
483  T fovy, T aspect, T near);
+
484 
+
492  template<typename T>
+
493  GLM_FUNC_DECL mat<4, 4, T, defaultp> infinitePerspective(
+
494  T fovy, T aspect, T near);
+
495 
+
503  template<typename T>
+
504  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
+
505  T fovy, T aspect, T near);
+
506 
+
515  template<typename T>
+
516  GLM_FUNC_DECL mat<4, 4, T, defaultp> tweakedInfinitePerspective(
+
517  T fovy, T aspect, T near, T ep);
+
518 
+
520 }//namespace glm
+
521 
+
522 #include "matrix_clip_space.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default han...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH(T fov, T width, T height, T near, T far)
Builds a left handed perspective projection matrix based on a field of view.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH(T left, T right, T bottom, T top, T near, T far)
Creates a left handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view and the default handedness and defaul...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH(T fov, T width, T height, T near, T far)
Builds a right handed perspective projection matrix based on a field of view.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO(T left, T right, T bottom, T top, T near, T far)
Creates a right handed frustum matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using the default handedness and defaul...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-h...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FO...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum based on the default handedness and default ...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO(T left, T right, T bottom, T top, T zNear, T zFar)
Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH(T fovy, T aspect, T near)
Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using left-handed coordinates...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_L...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH(T fovy, T aspect, T near)
Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH(T fovy, T aspect, T near, T far)
Creates a matrix for a left handed, symetric perspective-view frustum.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO(T fov, T width, T height, T near, T far)
Builds a perspective projection matrix based on a field of view using right-handed coordinates...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum(T left, T right, T bottom, T top, T near, T far)
Creates a frustum matrix with default handedness, using the default handedness and default near and f...
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH(T fovy, T aspect, T near, T far)
Creates a matrix for a right handed, symetric perspective-view frustum.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00060.html b/external/include/glm-0.9.9.8/doc/api/a00060.html index f902956179..878c55dbfd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00060.html +++ b/external/include/glm-0.9.9.8/doc/api/a00060.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: matrix_common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_common.hpp File Reference
-
- - - - - + + + + + + +0.9.9 API documentation: matrix_common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_common.hpp File Reference
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00060_source.html b/external/include/glm-0.9.9.8/doc/api/a00060_source.html index 7f947e7f38..0232d91094 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00060_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00060_source.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_common.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/qualifier.hpp"
-
16 #include "../detail/_fixes.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_EXT_matrix_transform extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
27  template<length_t C, length_t R, typename T, typename U, qualifier Q>
-
28  GLM_FUNC_DECL mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, mat<C, R, U, Q> const& a);
-
29 
-
30  template<length_t C, length_t R, typename T, typename U, qualifier Q>
-
31  GLM_FUNC_DECL mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, U a);
-
32 
-
34 }//namespace glm
-
35 
-
36 #include "matrix_common.inl"
-
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_common.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/qualifier.hpp"
+
16 #include "../detail/_fixes.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_EXT_matrix_transform extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
27  template<length_t C, length_t R, typename T, typename U, qualifier Q>
+
28  GLM_FUNC_DECL mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, mat<C, R, U, Q> const& a);
+
29 
+
30  template<length_t C, length_t R, typename T, typename U, qualifier Q>
+
31  GLM_FUNC_DECL mat<C, R, T, Q> mix(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, U a);
+
32 
+
34 }//namespace glm
+
35 
+
36 #include "matrix_common.inl"
+
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00061.html b/external/include/glm-0.9.9.8/doc/api/a00061.html index 150ee793e3..c0ef4551db 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00061.html +++ b/external/include/glm-0.9.9.8/doc/api/a00061.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: matrix_cross_product.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_cross_product.hpp File Reference
-
-
- -

GLM_GTX_matrix_cross_product -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
-

Detailed Description

-

GLM_GTX_matrix_cross_product

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file matrix_cross_product.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_cross_product.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_cross_product.hpp File Reference
+
+
+ +

GLM_GTX_matrix_cross_product +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
+

Detailed Description

+

GLM_GTX_matrix_cross_product

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file matrix_cross_product.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00061_source.html b/external/include/glm-0.9.9.8/doc/api/a00061_source.html index 7eafc7a9ea..3eb5a4f2f2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00061_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00061_source.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: matrix_cross_product.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_cross_product.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename T, qualifier Q>
-
35  GLM_FUNC_DECL mat<3, 3, T, Q> matrixCross3(
-
36  vec<3, T, Q> const& x);
-
37 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL mat<4, 4, T, Q> matrixCross4(
-
42  vec<3, T, Q> const& x);
-
43 
-
45 }//namespace glm
-
46 
-
47 #include "matrix_cross_product.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4(vec< 3, T, Q > const &x)
Build a cross product matrix.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3(vec< 3, T, Q > const &x)
Build a cross product matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_cross_product.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_cross_product.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename T, qualifier Q>
+
35  GLM_FUNC_DECL mat<3, 3, T, Q> matrixCross3(
+
36  vec<3, T, Q> const& x);
+
37 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL mat<4, 4, T, Q> matrixCross4(
+
42  vec<3, T, Q> const& x);
+
43 
+
45 }//namespace glm
+
46 
+
47 #include "matrix_cross_product.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4(vec< 3, T, Q > const &x)
Build a cross product matrix.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3(vec< 3, T, Q > const &x)
Build a cross product matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00062.html b/external/include/glm-0.9.9.8/doc/api/a00062.html index 9ec0888319..1156dc94d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00062.html +++ b/external/include/glm-0.9.9.8/doc/api/a00062.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: matrix_decompose.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_decompose.hpp File Reference
-
-
- -

GLM_GTX_matrix_decompose -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool decompose (mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
 Decomposes a model matrix to translations, rotation and scale components. More...
 
-

Detailed Description

-

GLM_GTX_matrix_decompose

-
See also
Core features (dependence)
- -

Definition in file matrix_decompose.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_decompose.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_decompose.hpp File Reference
+
+
+ +

GLM_GTX_matrix_decompose +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool decompose (mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
 Decomposes a model matrix to translations, rotation and scale components. More...
 
+

Detailed Description

+

GLM_GTX_matrix_decompose

+
See also
Core features (dependence)
+ +

Definition in file matrix_decompose.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00062_source.html b/external/include/glm-0.9.9.8/doc/api/a00062_source.html index d48f1b8c26..a5e9c690c3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00062_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00062_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: matrix_decompose.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_decompose.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../mat4x4.hpp"
-
17 #include "../vec3.hpp"
-
18 #include "../vec4.hpp"
-
19 #include "../geometric.hpp"
-
20 #include "../gtc/quaternion.hpp"
-
21 #include "../gtc/matrix_transform.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # ifndef GLM_ENABLE_EXPERIMENTAL
-
25 # pragma message("GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
26 # else
-
27 # pragma message("GLM: GLM_GTX_matrix_decompose extension included")
-
28 # endif
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
38  template<typename T, qualifier Q>
-
39  GLM_FUNC_DECL bool decompose(
-
40  mat<4, 4, T, Q> const& modelMatrix,
-
41  vec<3, T, Q> & scale, qua<T, Q> & orientation, vec<3, T, Q> & translation, vec<3, T, Q> & skew, vec<4, T, Q> & perspective);
-
42 
-
44 }//namespace glm
-
45 
-
46 #include "matrix_decompose.inl"
-
GLM_FUNC_DECL bool decompose(mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
Decomposes a model matrix to translations, rotation and scale components.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum based on the default handedness and default ...
-
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_decompose.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_decompose.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../mat4x4.hpp"
+
17 #include "../vec3.hpp"
+
18 #include "../vec4.hpp"
+
19 #include "../geometric.hpp"
+
20 #include "../gtc/quaternion.hpp"
+
21 #include "../gtc/matrix_transform.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # ifndef GLM_ENABLE_EXPERIMENTAL
+
25 # pragma message("GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
26 # else
+
27 # pragma message("GLM: GLM_GTX_matrix_decompose extension included")
+
28 # endif
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
38  template<typename T, qualifier Q>
+
39  GLM_FUNC_DECL bool decompose(
+
40  mat<4, 4, T, Q> const& modelMatrix,
+
41  vec<3, T, Q> & scale, qua<T, Q> & orientation, vec<3, T, Q> & translation, vec<3, T, Q> & skew, vec<4, T, Q> & perspective);
+
42 
+
44 }//namespace glm
+
45 
+
46 #include "matrix_decompose.inl"
+
GLM_FUNC_DECL bool decompose(mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
Decomposes a model matrix to translations, rotation and scale components.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective(T fovy, T aspect, T near, T far)
Creates a matrix for a symetric perspective-view frustum based on the default handedness and default ...
+
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00063.html b/external/include/glm-0.9.9.8/doc/api/a00063.html index 0d5958a6e0..3732425f2b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00063.html +++ b/external/include/glm-0.9.9.8/doc/api/a00063.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: matrix_double2x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - -

-Typedefs

typedef mat< 2, 2, double, defaultp > dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, double, defaultp > dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double2x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef mat< 2, 2, double, defaultp > dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, double, defaultp > dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double2x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00063_source.html b/external/include/glm-0.9.9.8/doc/api/a00063_source.html index 3370f96464..f684672e88 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00063_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00063_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_double2x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 2, double, defaultp> dmat2x2;
-
16 
-
20  typedef mat<2, 2, double, defaultp> dmat2;
-
21 
-
23 }//namespace glm
-
mat< 2, 2, double, defaultp > dmat2
2 columns of 2 components matrix of double-precision floating-point numbers.
-
mat< 2, 2, double, defaultp > dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 2, double, defaultp> dmat2x2;
+
16 
+
20  typedef mat<2, 2, double, defaultp> dmat2;
+
21 
+
23 }//namespace glm
+
mat< 2, 2, double, defaultp > dmat2
2 columns of 2 components matrix of double-precision floating-point numbers.
+
mat< 2, 2, double, defaultp > dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00064.html b/external/include/glm-0.9.9.8/doc/api/a00064.html index c1b68e0dc3..dffcad5cbf 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00064.html +++ b/external/include/glm-0.9.9.8/doc/api/a00064.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_double2x2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, double, highp > highp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, highp > highp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, double, highp > highp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, highp > highp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00064_source.html b/external/include/glm-0.9.9.8/doc/api/a00064_source.html index 24e0d9c667..40b129dc3b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00064_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00064_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_double2x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 2, double, lowp> lowp_dmat2;
-
17 
-
22  typedef mat<2, 2, double, mediump> mediump_dmat2;
-
23 
-
28  typedef mat<2, 2, double, highp> highp_dmat2;
-
29 
-
34  typedef mat<2, 2, double, lowp> lowp_dmat2x2;
-
35 
-
40  typedef mat<2, 2, double, mediump> mediump_dmat2x2;
-
41 
-
46  typedef mat<2, 2, double, highp> highp_dmat2x2;
-
47 
-
49 }//namespace glm
-
mat< 2, 2, double, mediump > mediump_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, double, lowp > lowp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 2, 2, double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, double, highp > highp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, double, highp > highp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 2, double, lowp> lowp_dmat2;
+
17 
+
22  typedef mat<2, 2, double, mediump> mediump_dmat2;
+
23 
+
28  typedef mat<2, 2, double, highp> highp_dmat2;
+
29 
+
34  typedef mat<2, 2, double, lowp> lowp_dmat2x2;
+
35 
+
40  typedef mat<2, 2, double, mediump> mediump_dmat2x2;
+
41 
+
46  typedef mat<2, 2, double, highp> highp_dmat2x2;
+
47 
+
49 }//namespace glm
+
mat< 2, 2, double, mediump > mediump_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, double, lowp > lowp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 2, 2, double, mediump > mediump_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, double, highp > highp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, double, highp > highp_dmat2
2 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, double, lowp > lowp_dmat2x2
2 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00065.html b/external/include/glm-0.9.9.8/doc/api/a00065.html index 78c97f627c..3367bd25eb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00065.html +++ b/external/include/glm-0.9.9.8/doc/api/a00065.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double2x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 2, 3, double, defaultp > dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double2x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 2, 3, double, defaultp > dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double2x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00065_source.html b/external/include/glm-0.9.9.8/doc/api/a00065_source.html index 48b8809fa8..3e4202bf43 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00065_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00065_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double2x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 3, double, defaultp> dmat2x3;
-
16 
-
18 }//namespace glm
-
mat< 2, 3, double, defaultp > dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 3, double, defaultp> dmat2x3;
+
16 
+
18 }//namespace glm
+
mat< 2, 3, double, defaultp > dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00066.html b/external/include/glm-0.9.9.8/doc/api/a00066.html index 12abb3a5f8..5bc921b13a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00066.html +++ b/external/include/glm-0.9.9.8/doc/api/a00066.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double2x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 2, 3, double, highp > highp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 2, 3, double, highp > highp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00066_source.html b/external/include/glm-0.9.9.8/doc/api/a00066_source.html index 1bfeadf79a..cb1ec15ffe 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00066_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00066_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double2x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 3, double, lowp> lowp_dmat2x3;
-
17 
-
22  typedef mat<2, 3, double, mediump> mediump_dmat2x3;
-
23 
-
28  typedef mat<2, 3, double, highp> highp_dmat2x3;
-
29 
-
31 }//namespace glm
-
mat< 2, 3, double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 3, double, highp > highp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 3, double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 3, double, lowp> lowp_dmat2x3;
+
17 
+
22  typedef mat<2, 3, double, mediump> mediump_dmat2x3;
+
23 
+
28  typedef mat<2, 3, double, highp> highp_dmat2x3;
+
29 
+
31 }//namespace glm
+
mat< 2, 3, double, mediump > mediump_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 3, double, highp > highp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 3, double, lowp > lowp_dmat2x3
2 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00067.html b/external/include/glm-0.9.9.8/doc/api/a00067.html index ef07ea7f28..9649eb030f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00067.html +++ b/external/include/glm-0.9.9.8/doc/api/a00067.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double2x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 2, 4, double, defaultp > dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double2x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 2, 4, double, defaultp > dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double2x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00067_source.html b/external/include/glm-0.9.9.8/doc/api/a00067_source.html index bc9cfba6c8..94d4c97b74 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00067_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00067_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double2x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 4, double, defaultp> dmat2x4;
-
16 
-
18 }//namespace glm
-
mat< 2, 4, double, defaultp > dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 4, double, defaultp> dmat2x4;
+
16 
+
18 }//namespace glm
+
mat< 2, 4, double, defaultp > dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00068.html b/external/include/glm-0.9.9.8/doc/api/a00068.html index d65221e590..d02af5d015 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00068.html +++ b/external/include/glm-0.9.9.8/doc/api/a00068.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double2x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double2x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 2, 4, double, highp > highp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double2x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 2, 4, double, highp > highp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00068_source.html b/external/include/glm-0.9.9.8/doc/api/a00068_source.html index a34088857b..cee8dd3c25 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00068_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00068_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double2x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double2x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 4, double, lowp> lowp_dmat2x4;
-
17 
-
22  typedef mat<2, 4, double, mediump> mediump_dmat2x4;
-
23 
-
28  typedef mat<2, 4, double, highp> highp_dmat2x4;
-
29 
-
31 }//namespace glm
-
mat< 2, 4, double, highp > highp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 4, double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 2, 4, double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double2x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double2x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 4, double, lowp> lowp_dmat2x4;
+
17 
+
22  typedef mat<2, 4, double, mediump> mediump_dmat2x4;
+
23 
+
28  typedef mat<2, 4, double, highp> highp_dmat2x4;
+
29 
+
31 }//namespace glm
+
mat< 2, 4, double, highp > highp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 4, double, mediump > mediump_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 2, 4, double, lowp > lowp_dmat2x4
2 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00069.html b/external/include/glm-0.9.9.8/doc/api/a00069.html index 44db1f9be7..77e86d3a1a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00069.html +++ b/external/include/glm-0.9.9.8/doc/api/a00069.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double3x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 3, 2, double, defaultp > dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double3x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 3, 2, double, defaultp > dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double3x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00069_source.html b/external/include/glm-0.9.9.8/doc/api/a00069_source.html index bee6c7ec89..893db25312 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00069_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00069_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double3x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 2, double, defaultp> dmat3x2;
-
16 
-
18 }//namespace glm
-
mat< 3, 2, double, defaultp > dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 2, double, defaultp> dmat3x2;
+
16 
+
18 }//namespace glm
+
mat< 3, 2, double, defaultp > dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00070.html b/external/include/glm-0.9.9.8/doc/api/a00070.html index 201c30323f..f6e3e39348 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00070.html +++ b/external/include/glm-0.9.9.8/doc/api/a00070.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double3x2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 3, 2, double, highp > highp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 3, 2, double, highp > highp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00070_source.html b/external/include/glm-0.9.9.8/doc/api/a00070_source.html index c0cd719414..0e228c6119 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00070_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00070_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double3x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 2, double, lowp> lowp_dmat3x2;
-
17 
-
22  typedef mat<3, 2, double, mediump> mediump_dmat3x2;
-
23 
-
28  typedef mat<3, 2, double, highp> highp_dmat3x2;
-
29 
-
31 }//namespace glm
-
mat< 3, 2, double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 2, double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 2, double, highp > highp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 2, double, lowp> lowp_dmat3x2;
+
17 
+
22  typedef mat<3, 2, double, mediump> mediump_dmat3x2;
+
23 
+
28  typedef mat<3, 2, double, highp> highp_dmat3x2;
+
29 
+
31 }//namespace glm
+
mat< 3, 2, double, mediump > mediump_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 2, double, lowp > lowp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 2, double, highp > highp_dmat3x2
3 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00071.html b/external/include/glm-0.9.9.8/doc/api/a00071.html index 818dada02c..69a7029e67 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00071.html +++ b/external/include/glm-0.9.9.8/doc/api/a00071.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: matrix_double3x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - -

-Typedefs

typedef mat< 3, 3, double, defaultp > dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double3x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef mat< 3, 3, double, defaultp > dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double3x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00071_source.html b/external/include/glm-0.9.9.8/doc/api/a00071_source.html index 37dbbce6e4..5d9c0b7bf3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00071_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00071_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_double3x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 3, double, defaultp> dmat3x3;
-
16 
-
20  typedef mat<3, 3, double, defaultp> dmat3;
-
21 
-
23 }//namespace glm
-
mat< 3, 3, double, defaultp > dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers.
-
mat< 3, 3, double, defaultp > dmat3
3 columns of 3 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 3, double, defaultp> dmat3x3;
+
16 
+
20  typedef mat<3, 3, double, defaultp> dmat3;
+
21 
+
23 }//namespace glm
+
mat< 3, 3, double, defaultp > dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers.
+
mat< 3, 3, double, defaultp > dmat3
3 columns of 3 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00072.html b/external/include/glm-0.9.9.8/doc/api/a00072.html index 1dcb39bcb3..102098a6ec 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00072.html +++ b/external/include/glm-0.9.9.8/doc/api/a00072.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_double3x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 3, 3, double, highp > highp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 3, 3, double, highp > highp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00072_source.html b/external/include/glm-0.9.9.8/doc/api/a00072_source.html index 421371a6ed..7726d4a2f4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00072_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00072_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_double3x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 3, double, lowp> lowp_dmat3;
-
17 
-
22  typedef mat<3, 3, double, mediump> mediump_dmat3;
-
23 
-
28  typedef mat<3, 3, double, highp> highp_dmat3;
-
29 
-
34  typedef mat<3, 3, double, lowp> lowp_dmat3x3;
-
35 
-
40  typedef mat<3, 3, double, mediump> mediump_dmat3x3;
-
41 
-
46  typedef mat<3, 3, double, highp> highp_dmat3x3;
-
47 
-
49 }//namespace glm
-
mat< 3, 3, double, lowp > lowp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 3, double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 3, double, highp > highp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, double, highp > highp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, double, mediump > mediump_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 3, double, lowp> lowp_dmat3;
+
17 
+
22  typedef mat<3, 3, double, mediump> mediump_dmat3;
+
23 
+
28  typedef mat<3, 3, double, highp> highp_dmat3;
+
29 
+
34  typedef mat<3, 3, double, lowp> lowp_dmat3x3;
+
35 
+
40  typedef mat<3, 3, double, mediump> mediump_dmat3x3;
+
41 
+
46  typedef mat<3, 3, double, highp> highp_dmat3x3;
+
47 
+
49 }//namespace glm
+
mat< 3, 3, double, lowp > lowp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 3, double, lowp > lowp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 3, double, highp > highp_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, double, highp > highp_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, double, mediump > mediump_dmat3x3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, double, mediump > mediump_dmat3
3 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00073.html b/external/include/glm-0.9.9.8/doc/api/a00073.html index 2026bd4208..8b94028d37 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00073.html +++ b/external/include/glm-0.9.9.8/doc/api/a00073.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double3x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 3, 4, double, defaultp > dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double3x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 3, 4, double, defaultp > dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double3x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00073_source.html b/external/include/glm-0.9.9.8/doc/api/a00073_source.html index 9298fb26d7..65681a0e6b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00073_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00073_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double3x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 4, double, defaultp> dmat3x4;
-
16 
-
18 }//namespace glm
-
mat< 3, 4, double, defaultp > dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 4, double, defaultp> dmat3x4;
+
16 
+
18 }//namespace glm
+
mat< 3, 4, double, defaultp > dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00074.html b/external/include/glm-0.9.9.8/doc/api/a00074.html index 9c16c9f02f..dc2586d747 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00074.html +++ b/external/include/glm-0.9.9.8/doc/api/a00074.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double3x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double3x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 3, 4, double, highp > highp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double3x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 3, 4, double, highp > highp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00074_source.html b/external/include/glm-0.9.9.8/doc/api/a00074_source.html index 92690b4c01..e805fc7867 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00074_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00074_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double3x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double3x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 4, double, lowp> lowp_dmat3x4;
-
17 
-
22  typedef mat<3, 4, double, mediump> mediump_dmat3x4;
-
23 
-
28  typedef mat<3, 4, double, highp> highp_dmat3x4;
-
29 
-
31 }//namespace glm
-
mat< 3, 4, double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 3, 4, double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 3, 4, double, highp > highp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double3x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double3x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 4, double, lowp> lowp_dmat3x4;
+
17 
+
22  typedef mat<3, 4, double, mediump> mediump_dmat3x4;
+
23 
+
28  typedef mat<3, 4, double, highp> highp_dmat3x4;
+
29 
+
31 }//namespace glm
+
mat< 3, 4, double, lowp > lowp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 3, 4, double, mediump > mediump_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 3, 4, double, highp > highp_dmat3x4
3 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00075.html b/external/include/glm-0.9.9.8/doc/api/a00075.html index 8346ff9a4e..2b3c221950 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00075.html +++ b/external/include/glm-0.9.9.8/doc/api/a00075.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double4x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 4, 2, double, defaultp > dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double4x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 4, 2, double, defaultp > dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double4x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00075_source.html b/external/include/glm-0.9.9.8/doc/api/a00075_source.html index dbecc9c730..f688cedf31 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00075_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00075_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double4x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 2, double, defaultp> dmat4x2;
-
16 
-
18 }//namespace glm
-
mat< 4, 2, double, defaultp > dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 2, double, defaultp> dmat4x2;
+
16 
+
18 }//namespace glm
+
mat< 4, 2, double, defaultp > dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00076.html b/external/include/glm-0.9.9.8/doc/api/a00076.html index afa207da66..1f1000fe99 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00076.html +++ b/external/include/glm-0.9.9.8/doc/api/a00076.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double4x2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 4, 2, double, highp > highp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 4, 2, double, highp > highp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00076_source.html b/external/include/glm-0.9.9.8/doc/api/a00076_source.html index dd69ec9c33..da64db9742 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00076_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00076_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double4x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 2, double, lowp> lowp_dmat4x2;
-
17 
-
22  typedef mat<4, 2, double, mediump> mediump_dmat4x2;
-
23 
-
28  typedef mat<4, 2, double, highp> highp_dmat4x2;
-
29 
-
31 }//namespace glm
-
mat< 4, 2, double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 4, 2, double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 2, double, highp > highp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 2, double, lowp> lowp_dmat4x2;
+
17 
+
22  typedef mat<4, 2, double, mediump> mediump_dmat4x2;
+
23 
+
28  typedef mat<4, 2, double, highp> highp_dmat4x2;
+
29 
+
31 }//namespace glm
+
mat< 4, 2, double, lowp > lowp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 4, 2, double, mediump > mediump_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 2, double, highp > highp_dmat4x2
4 columns of 2 components matrix of double-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00077.html b/external/include/glm-0.9.9.8/doc/api/a00077.html index 73c3f20b0c..686affa9b5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00077.html +++ b/external/include/glm-0.9.9.8/doc/api/a00077.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double4x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 4, 3, double, defaultp > dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double4x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 4, 3, double, defaultp > dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double4x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00077_source.html b/external/include/glm-0.9.9.8/doc/api/a00077_source.html index 10bdf20cfd..c8913cd122 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00077_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00077_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_double4x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 3, double, defaultp> dmat4x3;
-
16 
-
18 }//namespace glm
-
mat< 4, 3, double, defaultp > dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 3, double, defaultp> dmat4x3;
+
16 
+
18 }//namespace glm
+
mat< 4, 3, double, defaultp > dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00078.html b/external/include/glm-0.9.9.8/doc/api/a00078.html index f62d7fecee..7cdee1c779 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00078.html +++ b/external/include/glm-0.9.9.8/doc/api/a00078.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_double4x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 4, 3, double, highp > highp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 4, 3, double, highp > highp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00078_source.html b/external/include/glm-0.9.9.8/doc/api/a00078_source.html index 8f8f2d0239..923fc1d55d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00078_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00078_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_double4x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 3, double, lowp> lowp_dmat4x3;
-
17 
-
22  typedef mat<4, 3, double, mediump> mediump_dmat4x3;
-
23 
-
28  typedef mat<4, 3, double, highp> highp_dmat4x3;
-
29 
-
31 }//namespace glm
-
mat< 4, 3, double, highp > highp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 3, double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 3, double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 3, double, lowp> lowp_dmat4x3;
+
17 
+
22  typedef mat<4, 3, double, mediump> mediump_dmat4x3;
+
23 
+
28  typedef mat<4, 3, double, highp> highp_dmat4x3;
+
29 
+
31 }//namespace glm
+
mat< 4, 3, double, highp > highp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 3, double, mediump > mediump_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 3, double, lowp > lowp_dmat4x3
4 columns of 3 components matrix of double-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00079.html b/external/include/glm-0.9.9.8/doc/api/a00079.html index 7b50fd0a40..338ac51805 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00079.html +++ b/external/include/glm-0.9.9.8/doc/api/a00079.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: matrix_double4x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - -

-Typedefs

typedef mat< 4, 4, double, defaultp > dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_double4x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef mat< 4, 4, double, defaultp > dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_double4x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00079_source.html b/external/include/glm-0.9.9.8/doc/api/a00079_source.html index 6525483f91..bd45445bc9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00079_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00079_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_double4x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 4, double, defaultp> dmat4x4;
-
16 
-
20  typedef mat<4, 4, double, defaultp> dmat4;
-
21 
-
23 }//namespace glm
-
mat< 4, 4, double, defaultp > dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers.
-
mat< 4, 4, double, defaultp > dmat4
4 columns of 4 components matrix of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 4, double, defaultp> dmat4x4;
+
16 
+
20  typedef mat<4, 4, double, defaultp> dmat4;
+
21 
+
23 }//namespace glm
+
mat< 4, 4, double, defaultp > dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers.
+
mat< 4, 4, double, defaultp > dmat4
4 columns of 4 components matrix of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00080.html b/external/include/glm-0.9.9.8/doc/api/a00080.html index 3ee0d3a55b..c9421fe4c2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00080.html +++ b/external/include/glm-0.9.9.8/doc/api/a00080.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_double4x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_double4x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 4, 4, double, highp > highp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_double4x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 4, 4, double, highp > highp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00080_source.html b/external/include/glm-0.9.9.8/doc/api/a00080_source.html index f092d0ef1c..7ba0a33148 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00080_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00080_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_double4x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_double4x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 4, double, lowp> lowp_dmat4;
-
17 
-
22  typedef mat<4, 4, double, mediump> mediump_dmat4;
-
23 
-
28  typedef mat<4, 4, double, highp> highp_dmat4;
-
29 
-
34  typedef mat<4, 4, double, lowp> lowp_dmat4x4;
-
35 
-
40  typedef mat<4, 4, double, mediump> mediump_dmat4x4;
-
41 
-
46  typedef mat<4, 4, double, highp> highp_dmat4x4;
-
47 
-
49 }//namespace glm
-
mat< 4, 4, double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, double, lowp > lowp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 4, 4, double, mediump > mediump_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, double, highp > highp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
-
mat< 4, 4, double, highp > highp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_double4x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_double4x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 4, double, lowp> lowp_dmat4;
+
17 
+
22  typedef mat<4, 4, double, mediump> mediump_dmat4;
+
23 
+
28  typedef mat<4, 4, double, highp> highp_dmat4;
+
29 
+
34  typedef mat<4, 4, double, lowp> lowp_dmat4x4;
+
35 
+
40  typedef mat<4, 4, double, mediump> mediump_dmat4x4;
+
41 
+
46  typedef mat<4, 4, double, highp> highp_dmat4x4;
+
47 
+
49 }//namespace glm
+
mat< 4, 4, double, mediump > mediump_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, double, lowp > lowp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 4, 4, double, mediump > mediump_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, double, highp > highp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, double, lowp > lowp_dmat4x4
4 columns of 4 components matrix of double-precision floating-point numbers using low precision arith...
+
mat< 4, 4, double, highp > highp_dmat4
4 columns of 4 components matrix of double-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00081.html b/external/include/glm-0.9.9.8/doc/api/a00081.html index f3b362f2d7..d1e90c091b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00081.html +++ b/external/include/glm-0.9.9.8/doc/api/a00081.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: matrix_factorisation.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_factorisation.hpp File Reference
-
-
- -

GLM_GTX_matrix_factorisation -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > fliplr (mat< C, R, T, Q > const &in)
 Flips the matrix columns right and left. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > flipud (mat< C, R, T, Q > const &in)
 Flips the matrix rows up and down. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void qr_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
 Performs QR factorisation of a matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void rq_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
 Performs RQ factorisation of a matrix. More...
 
-

Detailed Description

-

GLM_GTX_matrix_factorisation

-
See also
Core features (dependence)
- -

Definition in file matrix_factorisation.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_factorisation.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_factorisation.hpp File Reference
+
+
+ +

GLM_GTX_matrix_factorisation +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > fliplr (mat< C, R, T, Q > const &in)
 Flips the matrix columns right and left. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > flipud (mat< C, R, T, Q > const &in)
 Flips the matrix rows up and down. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void qr_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
 Performs QR factorisation of a matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void rq_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
 Performs RQ factorisation of a matrix. More...
 
+

Detailed Description

+

GLM_GTX_matrix_factorisation

+
See also
Core features (dependence)
+ +

Definition in file matrix_factorisation.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00081_source.html b/external/include/glm-0.9.9.8/doc/api/a00081_source.html index cffa1f4500..2bee6a86ec 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00081_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00081_source.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: matrix_factorisation.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_factorisation.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_matrix_factorisation extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 /*
-
27 Suggestions:
-
28  - Move helper functions flipud and fliplr to another file: They may be helpful in more general circumstances.
-
29  - Implement other types of matrix factorisation, such as: QL and LQ, L(D)U, eigendecompositions, etc...
-
30 */
-
31 
-
32 namespace glm
-
33 {
-
36 
-
40  template <length_t C, length_t R, typename T, qualifier Q>
-
41  GLM_FUNC_DECL mat<C, R, T, Q> flipud(mat<C, R, T, Q> const& in);
-
42 
-
46  template <length_t C, length_t R, typename T, qualifier Q>
-
47  GLM_FUNC_DECL mat<C, R, T, Q> fliplr(mat<C, R, T, Q> const& in);
-
48 
-
54  template <length_t C, length_t R, typename T, qualifier Q>
-
55  GLM_FUNC_DECL void qr_decompose(mat<C, R, T, Q> const& in, mat<(C < R ? C : R), R, T, Q>& q, mat<C, (C < R ? C : R), T, Q>& r);
-
56 
-
63  template <length_t C, length_t R, typename T, qualifier Q>
-
64  GLM_FUNC_DECL void rq_decompose(mat<C, R, T, Q> const& in, mat<(C < R ? C : R), R, T, Q>& r, mat<C, (C < R ? C : R), T, Q>& q);
-
65 
-
67 }
-
68 
-
69 #include "matrix_factorisation.inl"
-
GLM_FUNC_DECL void rq_decompose(mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
Performs RQ factorisation of a matrix.
-
GLM_FUNC_DECL void qr_decompose(mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
Performs QR factorisation of a matrix.
-
GLM_FUNC_DECL mat< C, R, T, Q > flipud(mat< C, R, T, Q > const &in)
Flips the matrix rows up and down.
-
GLM_FUNC_DECL mat< C, R, T, Q > fliplr(mat< C, R, T, Q > const &in)
Flips the matrix columns right and left.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_factorisation.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_factorisation.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_matrix_factorisation extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 /*
+
27 Suggestions:
+
28  - Move helper functions flipud and fliplr to another file: They may be helpful in more general circumstances.
+
29  - Implement other types of matrix factorisation, such as: QL and LQ, L(D)U, eigendecompositions, etc...
+
30 */
+
31 
+
32 namespace glm
+
33 {
+
36 
+
40  template <length_t C, length_t R, typename T, qualifier Q>
+
41  GLM_FUNC_DECL mat<C, R, T, Q> flipud(mat<C, R, T, Q> const& in);
+
42 
+
46  template <length_t C, length_t R, typename T, qualifier Q>
+
47  GLM_FUNC_DECL mat<C, R, T, Q> fliplr(mat<C, R, T, Q> const& in);
+
48 
+
54  template <length_t C, length_t R, typename T, qualifier Q>
+
55  GLM_FUNC_DECL void qr_decompose(mat<C, R, T, Q> const& in, mat<(C < R ? C : R), R, T, Q>& q, mat<C, (C < R ? C : R), T, Q>& r);
+
56 
+
63  template <length_t C, length_t R, typename T, qualifier Q>
+
64  GLM_FUNC_DECL void rq_decompose(mat<C, R, T, Q> const& in, mat<(C < R ? C : R), R, T, Q>& r, mat<C, (C < R ? C : R), T, Q>& q);
+
65 
+
67 }
+
68 
+
69 #include "matrix_factorisation.inl"
+
GLM_FUNC_DECL void rq_decompose(mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
Performs RQ factorisation of a matrix.
+
GLM_FUNC_DECL void qr_decompose(mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
Performs QR factorisation of a matrix.
+
GLM_FUNC_DECL mat< C, R, T, Q > flipud(mat< C, R, T, Q > const &in)
Flips the matrix rows up and down.
+
GLM_FUNC_DECL mat< C, R, T, Q > fliplr(mat< C, R, T, Q > const &in)
Flips the matrix columns right and left.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00082.html b/external/include/glm-0.9.9.8/doc/api/a00082.html index 4609c85dba..9ac278eb1b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00082.html +++ b/external/include/glm-0.9.9.8/doc/api/a00082.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: matrix_float2x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - -

-Typedefs

typedef mat< 2, 2, float, defaultp > mat2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float2x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef mat< 2, 2, float, defaultp > mat2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float2x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00082_source.html b/external/include/glm-0.9.9.8/doc/api/a00082_source.html index 98f4f750a6..68f096c25d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00082_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00082_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_float2x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 2, float, defaultp> mat2x2;
-
16 
-
20  typedef mat<2, 2, float, defaultp> mat2;
-
21 
-
23 }//namespace glm
-
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 2, float, defaultp> mat2x2;
+
16 
+
20  typedef mat<2, 2, float, defaultp> mat2;
+
21 
+
23 }//namespace glm
+
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00083.html b/external/include/glm-0.9.9.8/doc/api/a00083.html index 8c96df0ba1..9145fdcc73 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00083.html +++ b/external/include/glm-0.9.9.8/doc/api/a00083.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_float2x2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, float, highp > highp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, float, highp > highp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00083_source.html b/external/include/glm-0.9.9.8/doc/api/a00083_source.html index a99a2e8e8e..d327c95ce1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00083_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00083_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_float2x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 2, float, lowp> lowp_mat2;
-
17 
-
22  typedef mat<2, 2, float, mediump> mediump_mat2;
-
23 
-
28  typedef mat<2, 2, float, highp> highp_mat2;
-
29 
-
34  typedef mat<2, 2, float, lowp> lowp_mat2x2;
-
35 
-
40  typedef mat<2, 2, float, mediump> mediump_mat2x2;
-
41 
-
46  typedef mat<2, 2, float, highp> highp_mat2x2;
-
47 
-
49 }//namespace glm
-
mat< 2, 2, float, lowp > lowp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 2, 2, float, highp > highp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 2, 2, float, lowp > lowp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 2, 2, float, highp > highp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 2, 2, float, mediump > mediump_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 2, 2, float, mediump > mediump_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 2, float, lowp> lowp_mat2;
+
17 
+
22  typedef mat<2, 2, float, mediump> mediump_mat2;
+
23 
+
28  typedef mat<2, 2, float, highp> highp_mat2;
+
29 
+
34  typedef mat<2, 2, float, lowp> lowp_mat2x2;
+
35 
+
40  typedef mat<2, 2, float, mediump> mediump_mat2x2;
+
41 
+
46  typedef mat<2, 2, float, highp> highp_mat2x2;
+
47 
+
49 }//namespace glm
+
mat< 2, 2, float, lowp > lowp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 2, 2, float, highp > highp_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 2, 2, float, lowp > lowp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 2, 2, float, highp > highp_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 2, 2, float, mediump > mediump_mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 2, 2, float, mediump > mediump_mat2
2 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00084.html b/external/include/glm-0.9.9.8/doc/api/a00084.html index cffdd33462..3911e0796b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00084.html +++ b/external/include/glm-0.9.9.8/doc/api/a00084.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float2x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 2, 3, float, defaultp > mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float2x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 2, 3, float, defaultp > mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float2x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00084_source.html b/external/include/glm-0.9.9.8/doc/api/a00084_source.html index 67cfa88dc1..ba54fa2ae9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00084_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00084_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float2x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 3, float, defaultp> mat2x3;
-
16 
-
18 }//namespace glm
-
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 3, float, defaultp> mat2x3;
+
16 
+
18 }//namespace glm
+
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00085.html b/external/include/glm-0.9.9.8/doc/api/a00085.html index b33e8c9ffa..58bdd792a0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00085.html +++ b/external/include/glm-0.9.9.8/doc/api/a00085.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_float2x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 2, 3, float, highp > highp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, lowp > lowp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, mediump > mediump_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 2, 3, float, highp > highp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, lowp > lowp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, mediump > mediump_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00085_source.html b/external/include/glm-0.9.9.8/doc/api/a00085_source.html index bfee5c65ec..c58d2ae67f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00085_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00085_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float2x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 3, float, lowp> lowp_mat2x3;
-
17 
-
22  typedef mat<2, 3, float, mediump> mediump_mat2x3;
-
23 
-
28  typedef mat<2, 3, float, highp> highp_mat2x3;
-
29 
-
31 }//namespace glm
-
mat< 2, 3, float, mediump > mediump_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 2, 3, float, highp > highp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 2, 3, float, lowp > lowp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 3, float, lowp> lowp_mat2x3;
+
17 
+
22  typedef mat<2, 3, float, mediump> mediump_mat2x3;
+
23 
+
28  typedef mat<2, 3, float, highp> highp_mat2x3;
+
29 
+
31 }//namespace glm
+
mat< 2, 3, float, mediump > mediump_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 2, 3, float, highp > highp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 2, 3, float, lowp > lowp_mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00086.html b/external/include/glm-0.9.9.8/doc/api/a00086.html index bd952efde5..de06d1a73f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00086.html +++ b/external/include/glm-0.9.9.8/doc/api/a00086.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float2x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 2, 4, float, defaultp > mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float2x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 2, 4, float, defaultp > mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float2x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00086_source.html b/external/include/glm-0.9.9.8/doc/api/a00086_source.html index d2f7ec8e46..8e472d15b2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00086_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00086_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float2x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<2, 4, float, defaultp> mat2x4;
-
16 
-
18 }//namespace glm
-
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<2, 4, float, defaultp> mat2x4;
+
16 
+
18 }//namespace glm
+
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00087.html b/external/include/glm-0.9.9.8/doc/api/a00087.html index e61d2ea2fa..b0f38e9884 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00087.html +++ b/external/include/glm-0.9.9.8/doc/api/a00087.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_float2x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float2x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 2, 4, float, highp > highp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, lowp > lowp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, mediump > mediump_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float2x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 2, 4, float, highp > highp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, lowp > lowp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, mediump > mediump_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00087_source.html b/external/include/glm-0.9.9.8/doc/api/a00087_source.html index 9c7b0545b8..24885f4a87 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00087_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00087_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float2x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float2x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<2, 4, float, lowp> lowp_mat2x4;
-
17 
-
22  typedef mat<2, 4, float, mediump> mediump_mat2x4;
-
23 
-
28  typedef mat<2, 4, float, highp> highp_mat2x4;
-
29 
-
31 }//namespace glm
-
mat< 2, 4, float, lowp > lowp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 2, 4, float, mediump > mediump_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 2, 4, float, highp > highp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float2x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float2x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<2, 4, float, lowp> lowp_mat2x4;
+
17 
+
22  typedef mat<2, 4, float, mediump> mediump_mat2x4;
+
23 
+
28  typedef mat<2, 4, float, highp> highp_mat2x4;
+
29 
+
31 }//namespace glm
+
mat< 2, 4, float, lowp > lowp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 2, 4, float, mediump > mediump_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 2, 4, float, highp > highp_mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00088.html b/external/include/glm-0.9.9.8/doc/api/a00088.html index c86b46a203..32953ba746 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00088.html +++ b/external/include/glm-0.9.9.8/doc/api/a00088.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float3x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 3, 2, float, defaultp > mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float3x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 3, 2, float, defaultp > mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float3x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00088_source.html b/external/include/glm-0.9.9.8/doc/api/a00088_source.html index 9caa02651b..798fc78803 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00088_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00088_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float3x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 2, float, defaultp> mat3x2;
-
16 
-
18 }//namespace glm
-
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 2, float, defaultp> mat3x2;
+
16 
+
18 }//namespace glm
+
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00089.html b/external/include/glm-0.9.9.8/doc/api/a00089.html index b90ee2d454..dbd3b9fa3d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00089.html +++ b/external/include/glm-0.9.9.8/doc/api/a00089.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_float3x2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 3, 2, float, highp > highp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, lowp > lowp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, mediump > mediump_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 3, 2, float, highp > highp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, lowp > lowp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, mediump > mediump_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00089_source.html b/external/include/glm-0.9.9.8/doc/api/a00089_source.html index 110538d851..3083cedae2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00089_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00089_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float3x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 2, float, lowp> lowp_mat3x2;
-
17 
-
22  typedef mat<3, 2, float, mediump> mediump_mat3x2;
-
23 
-
28  typedef mat<3, 2, float, highp> highp_mat3x2;
-
29 
-
31 }//namespace glm
-
mat< 3, 2, float, lowp > lowp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 3, 2, float, mediump > mediump_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 3, 2, float, highp > highp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 2, float, lowp> lowp_mat3x2;
+
17 
+
22  typedef mat<3, 2, float, mediump> mediump_mat3x2;
+
23 
+
28  typedef mat<3, 2, float, highp> highp_mat3x2;
+
29 
+
31 }//namespace glm
+
mat< 3, 2, float, lowp > lowp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 3, 2, float, mediump > mediump_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 3, 2, float, highp > highp_mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00090.html b/external/include/glm-0.9.9.8/doc/api/a00090.html index c4725c6f1e..5da3f3967b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00090.html +++ b/external/include/glm-0.9.9.8/doc/api/a00090.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: matrix_float3x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - -

-Typedefs

typedef mat< 3, 3, float, defaultp > mat3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float3x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + +

+Typedefs

typedef mat< 3, 3, float, defaultp > mat3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float3x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00090_source.html b/external/include/glm-0.9.9.8/doc/api/a00090_source.html index 79ecd3daa1..fc8e9a6e95 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00090_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00090_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_float3x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 3, float, defaultp> mat3x3;
-
16 
-
20  typedef mat<3, 3, float, defaultp> mat3;
-
21 
-
23 }//namespace glm
-
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 3, float, defaultp> mat3x3;
+
16 
+
20  typedef mat<3, 3, float, defaultp> mat3;
+
21 
+
23 }//namespace glm
+
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00091.html b/external/include/glm-0.9.9.8/doc/api/a00091.html index 8d4f40aea5..d80cd1920c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00091.html +++ b/external/include/glm-0.9.9.8/doc/api/a00091.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_float3x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 3, 3, float, highp > highp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 3, 3, float, highp > highp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00091_source.html b/external/include/glm-0.9.9.8/doc/api/a00091_source.html index f1e16ca69f..1f8ce621a0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00091_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00091_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_float3x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 3, float, lowp> lowp_mat3;
-
17 
-
22  typedef mat<3, 3, float, mediump> mediump_mat3;
-
23 
-
28  typedef mat<3, 3, float, highp> highp_mat3;
-
29 
-
34  typedef mat<3, 3, float, lowp> lowp_mat3x3;
-
35 
-
40  typedef mat<3, 3, float, mediump> mediump_mat3x3;
-
41 
-
46  typedef mat<3, 3, float, highp> highp_mat3x3;
-
47 
-
49 }//namespace glm
-
mat< 3, 3, float, mediump > mediump_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, float, highp > highp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 3, 3, float, lowp > lowp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 3, 3, float, mediump > mediump_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 3, 3, float, lowp > lowp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 3, 3, float, highp > highp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 3, float, lowp> lowp_mat3;
+
17 
+
22  typedef mat<3, 3, float, mediump> mediump_mat3;
+
23 
+
28  typedef mat<3, 3, float, highp> highp_mat3;
+
29 
+
34  typedef mat<3, 3, float, lowp> lowp_mat3x3;
+
35 
+
40  typedef mat<3, 3, float, mediump> mediump_mat3x3;
+
41 
+
46  typedef mat<3, 3, float, highp> highp_mat3x3;
+
47 
+
49 }//namespace glm
+
mat< 3, 3, float, mediump > mediump_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, float, highp > highp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 3, 3, float, lowp > lowp_mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 3, 3, float, mediump > mediump_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 3, 3, float, lowp > lowp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 3, 3, float, highp > highp_mat3
3 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00092.html b/external/include/glm-0.9.9.8/doc/api/a00092.html index aab77dbab2..a32abb204b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00092.html +++ b/external/include/glm-0.9.9.8/doc/api/a00092.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float3x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 3, 4, float, defaultp > mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float3x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 3, 4, float, defaultp > mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float3x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00092_source.html b/external/include/glm-0.9.9.8/doc/api/a00092_source.html index f3699ac692..67b9f40642 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00092_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00092_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float3x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<3, 4, float, defaultp> mat3x4;
-
16 
-
18 }//namespace glm
-
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<3, 4, float, defaultp> mat3x4;
+
16 
+
18 }//namespace glm
+
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00093.html b/external/include/glm-0.9.9.8/doc/api/a00093.html index cc1ec20577..862a061a91 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00093.html +++ b/external/include/glm-0.9.9.8/doc/api/a00093.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_float3x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float3x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 3, 4, float, highp > highp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, lowp > lowp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, mediump > mediump_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float3x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 3, 4, float, highp > highp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, lowp > lowp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, mediump > mediump_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00093_source.html b/external/include/glm-0.9.9.8/doc/api/a00093_source.html index 0792a393bf..424db41fdc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00093_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00093_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float3x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float3x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat3x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<3, 4, float, lowp> lowp_mat3x4;
-
17 
-
22  typedef mat<3, 4, float, mediump> mediump_mat3x4;
-
23 
-
28  typedef mat<3, 4, float, highp> highp_mat3x4;
-
29 
-
31 }//namespace glm
-
mat< 3, 4, float, highp > highp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 3, 4, float, mediump > mediump_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 3, 4, float, lowp > lowp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float3x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float3x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat3x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<3, 4, float, lowp> lowp_mat3x4;
+
17 
+
22  typedef mat<3, 4, float, mediump> mediump_mat3x4;
+
23 
+
28  typedef mat<3, 4, float, highp> highp_mat3x4;
+
29 
+
31 }//namespace glm
+
mat< 3, 4, float, highp > highp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 3, 4, float, mediump > mediump_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 3, 4, float, lowp > lowp_mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00094.html b/external/include/glm-0.9.9.8/doc/api/a00094.html index b5b5c20cd9..b9d4ef7a46 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00094.html +++ b/external/include/glm-0.9.9.8/doc/api/a00094.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float4x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float4x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 4, 2, float, defaultp > mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float4x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float4x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 4, 2, float, defaultp > mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float4x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00094_source.html b/external/include/glm-0.9.9.8/doc/api/a00094_source.html index 2d07d3d0e7..aacca64238 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00094_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00094_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float4x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 2, float, defaultp> mat4x2;
-
16 
-
18 }//namespace glm
-
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 2, float, defaultp> mat4x2;
+
16 
+
18 }//namespace glm
+
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00095_source.html b/external/include/glm-0.9.9.8/doc/api/a00095_source.html index 6a5d89f61a..b9d2199949 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00095_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00095_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float4x2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x2_precision.hpp
-
-
-
1 
-
4 #pragma once
-
5 #include "../detail/type_mat2x2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 2, float, lowp> lowp_mat4x2;
-
17 
-
22  typedef mat<4, 2, float, mediump> mediump_mat4x2;
-
23 
-
28  typedef mat<4, 2, float, highp> highp_mat4x2;
-
29 
-
31 }//namespace glm
-
mat< 4, 2, float, mediump > mediump_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 4, 2, float, lowp > lowp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 2, float, highp > highp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x2_precision.hpp
+
+
+
1 
+
4 #pragma once
+
5 #include "../detail/type_mat2x2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 2, float, lowp> lowp_mat4x2;
+
17 
+
22  typedef mat<4, 2, float, mediump> mediump_mat4x2;
+
23 
+
28  typedef mat<4, 2, float, highp> highp_mat4x2;
+
29 
+
31 }//namespace glm
+
mat< 4, 2, float, mediump > mediump_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 4, 2, float, lowp > lowp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 2, float, highp > highp_mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers using high precision arit...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00096.html b/external/include/glm-0.9.9.8/doc/api/a00096.html index 889b3796e2..ae8352d14c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00096.html +++ b/external/include/glm-0.9.9.8/doc/api/a00096.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float4x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float4x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef mat< 4, 3, float, defaultp > mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float4x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float4x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef mat< 4, 3, float, defaultp > mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float4x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00096_source.html b/external/include/glm-0.9.9.8/doc/api/a00096_source.html index a067d53787..c7e6ce9ae9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00096_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00096_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: matrix_float4x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 3, float, defaultp> mat4x3;
-
16 
-
18 }//namespace glm
-
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 3, float, defaultp> mat4x3;
+
16 
+
18 }//namespace glm
+
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00097.html b/external/include/glm-0.9.9.8/doc/api/a00097.html index 3639ee95ce..c3167d477b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00097.html +++ b/external/include/glm-0.9.9.8/doc/api/a00097.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_float4x3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float4x3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef mat< 4, 3, float, highp > highp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, lowp > lowp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, mediump > mediump_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float4x3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef mat< 4, 3, float, highp > highp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, lowp > lowp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, mediump > mediump_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00097_source.html b/external/include/glm-0.9.9.8/doc/api/a00097_source.html index 188cea65bb..d2faec6026 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00097_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00097_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: matrix_float4x3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 3, float, lowp> lowp_mat4x3;
-
17 
-
22  typedef mat<4, 3, float, mediump> mediump_mat4x3;
-
23 
-
28  typedef mat<4, 3, float, highp> highp_mat4x3;
-
29 
-
31 }//namespace glm
-
mat< 4, 3, float, highp > highp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 3, float, lowp > lowp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 3, float, mediump > mediump_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 3, float, lowp> lowp_mat4x3;
+
17 
+
22  typedef mat<4, 3, float, mediump> mediump_mat4x3;
+
23 
+
28  typedef mat<4, 3, float, highp> highp_mat4x3;
+
29 
+
31 }//namespace glm
+
mat< 4, 3, float, highp > highp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 3, float, lowp > lowp_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 3, float, mediump > mediump_mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers using medium precision ar...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00098.html b/external/include/glm-0.9.9.8/doc/api/a00098.html index 82c738b60a..2359c88197 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00098.html +++ b/external/include/glm-0.9.9.8/doc/api/a00098.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: matrix_float4x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - -
typedef mat< 4, 4, float, defaultp > mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file matrix_float4x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + +
typedef mat< 4, 4, float, defaultp > mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file matrix_float4x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00098_source.html b/external/include/glm-0.9.9.8/doc/api/a00098_source.html index b972f6a65a..99a231ff3f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00098_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00098_source.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: matrix_float4x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef mat<4, 4, float, defaultp> mat4x4;
-
16 
-
20  typedef mat<4, 4, float, defaultp> mat4;
-
21 
-
23 }//namespace glm
-
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef mat<4, 4, float, defaultp> mat4x4;
+
16 
+
20  typedef mat<4, 4, float, defaultp> mat4;
+
21 
+
23 }//namespace glm
+
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00099.html b/external/include/glm-0.9.9.8/doc/api/a00099.html index 91b553f0fc..567117f800 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00099.html +++ b/external/include/glm-0.9.9.8/doc/api/a00099.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_float4x4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_float4x4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 4, 4, float, highp > highp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_float4x4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 4, 4, float, highp > highp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00099_source.html b/external/include/glm-0.9.9.8/doc/api/a00099_source.html index 6ef18e53a0..224d9729c4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00099_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00099_source.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: matrix_float4x4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_float4x4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_mat4x4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef mat<4, 4, float, lowp> lowp_mat4;
-
17 
-
22  typedef mat<4, 4, float, mediump> mediump_mat4;
-
23 
-
28  typedef mat<4, 4, float, highp> highp_mat4;
-
29 
-
34  typedef mat<4, 4, float, lowp> lowp_mat4x4;
-
35 
-
40  typedef mat<4, 4, float, mediump> mediump_mat4x4;
-
41 
-
46  typedef mat<4, 4, float, highp> highp_mat4x4;
-
47 
-
49 }//namespace glm
-
mat< 4, 4, float, mediump > mediump_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, float, lowp > lowp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 4, float, mediump > mediump_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
-
mat< 4, 4, float, highp > highp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
mat< 4, 4, float, lowp > lowp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
-
mat< 4, 4, float, highp > highp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_float4x4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_float4x4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_mat4x4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef mat<4, 4, float, lowp> lowp_mat4;
+
17 
+
22  typedef mat<4, 4, float, mediump> mediump_mat4;
+
23 
+
28  typedef mat<4, 4, float, highp> highp_mat4;
+
29 
+
34  typedef mat<4, 4, float, lowp> lowp_mat4x4;
+
35 
+
40  typedef mat<4, 4, float, mediump> mediump_mat4x4;
+
41 
+
46  typedef mat<4, 4, float, highp> highp_mat4x4;
+
47 
+
49 }//namespace glm
+
mat< 4, 4, float, mediump > mediump_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, float, lowp > lowp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 4, float, mediump > mediump_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using medium precision ar...
+
mat< 4, 4, float, highp > highp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
mat< 4, 4, float, lowp > lowp_mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers using low precision arith...
+
mat< 4, 4, float, highp > highp_mat4
4 columns of 4 components matrix of single-precision floating-point numbers using high precision arit...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00100.html b/external/include/glm-0.9.9.8/doc/api/a00100.html index 24d1763b44..9d3e54737a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00100.html +++ b/external/include/glm-0.9.9.8/doc/api/a00100.html @@ -1,403 +1,403 @@ - - - - - - -0.9.9 API documentation: matrix_integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_integer.hpp File Reference
-
-
- -

GLM_GTC_matrix_integer -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, int, highp > highp_imat2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, highp > highp_imat2x2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, highp > highp_imat2x3
 High-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, highp > highp_imat2x4
 High-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, highp > highp_imat3x2
 High-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3x3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, highp > highp_imat3x4
 High-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, highp > highp_imat4x2
 High-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, highp > highp_imat4x3
 High-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4x4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2x2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, highp > highp_umat2x3
 High-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, highp > highp_umat2x4
 High-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, highp > highp_umat3x2
 High-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3x3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, highp > highp_umat3x4
 High-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, highp > highp_umat4x2
 High-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, highp > highp_umat4x3
 High-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4x4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_imat2 imat2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x2 imat2x2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x3 imat2x3
 Signed integer 2x3 matrix. More...
 
typedef mediump_imat2x4 imat2x4
 Signed integer 2x4 matrix. More...
 
typedef mediump_imat3 imat3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x2 imat3x2
 Signed integer 3x2 matrix. More...
 
typedef mediump_imat3x3 imat3x3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x4 imat3x4
 Signed integer 3x4 matrix. More...
 
typedef mediump_imat4 imat4
 Signed integer 4x4 matrix. More...
 
typedef mediump_imat4x2 imat4x2
 Signed integer 4x2 matrix. More...
 
typedef mediump_imat4x3 imat4x3
 Signed integer 4x3 matrix. More...
 
typedef mediump_imat4x4 imat4x4
 Signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2x2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, lowp > lowp_imat2x3
 Low-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, lowp > lowp_imat2x4
 Low-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, lowp > lowp_imat3x2
 Low-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3x3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, lowp > lowp_imat3x4
 Low-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, lowp > lowp_imat4x2
 Low-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, lowp > lowp_imat4x3
 Low-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4x4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2x2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, lowp > lowp_umat2x3
 Low-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, lowp > lowp_umat2x4
 Low-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, lowp > lowp_umat3x2
 Low-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3x3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, lowp > lowp_umat3x4
 Low-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, lowp > lowp_umat4x2
 Low-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, lowp > lowp_umat4x3
 Low-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4x4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2x2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, mediump > mediump_imat2x3
 Medium-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, mediump > mediump_imat2x4
 Medium-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, mediump > mediump_imat3x2
 Medium-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3x3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, mediump > mediump_imat3x4
 Medium-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, mediump > mediump_imat4x2
 Medium-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, mediump > mediump_imat4x3
 Medium-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4x4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2x2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, mediump > mediump_umat2x3
 Medium-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, mediump > mediump_umat2x4
 Medium-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, mediump > mediump_umat3x2
 Medium-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3x3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, mediump > mediump_umat3x4
 Medium-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, mediump > mediump_umat4x2
 Medium-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, mediump > mediump_umat4x3
 Medium-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4x4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_umat2 umat2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x2 umat2x2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x3 umat2x3
 Unsigned integer 2x3 matrix. More...
 
typedef mediump_umat2x4 umat2x4
 Unsigned integer 2x4 matrix. More...
 
typedef mediump_umat3 umat3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x2 umat3x2
 Unsigned integer 3x2 matrix. More...
 
typedef mediump_umat3x3 umat3x3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x4 umat3x4
 Unsigned integer 3x4 matrix. More...
 
typedef mediump_umat4 umat4
 Unsigned integer 4x4 matrix. More...
 
typedef mediump_umat4x2 umat4x2
 Unsigned integer 4x2 matrix. More...
 
typedef mediump_umat4x3 umat4x3
 Unsigned integer 4x3 matrix. More...
 
typedef mediump_umat4x4 umat4x4
 Unsigned integer 4x4 matrix. More...
 
-

Detailed Description

-

GLM_GTC_matrix_integer

-
See also
Core features (dependence)
- -

Definition in file matrix_integer.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_integer.hpp File Reference
+
+
+ +

GLM_GTC_matrix_integer +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, int, highp > highp_imat2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, highp > highp_imat2x2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, highp > highp_imat2x3
 High-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, highp > highp_imat2x4
 High-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, highp > highp_imat3x2
 High-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3x3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, highp > highp_imat3x4
 High-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, highp > highp_imat4x2
 High-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, highp > highp_imat4x3
 High-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4x4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2x2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, highp > highp_umat2x3
 High-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, highp > highp_umat2x4
 High-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, highp > highp_umat3x2
 High-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3x3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, highp > highp_umat3x4
 High-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, highp > highp_umat4x2
 High-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, highp > highp_umat4x3
 High-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4x4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_imat2 imat2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x2 imat2x2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x3 imat2x3
 Signed integer 2x3 matrix. More...
 
typedef mediump_imat2x4 imat2x4
 Signed integer 2x4 matrix. More...
 
typedef mediump_imat3 imat3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x2 imat3x2
 Signed integer 3x2 matrix. More...
 
typedef mediump_imat3x3 imat3x3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x4 imat3x4
 Signed integer 3x4 matrix. More...
 
typedef mediump_imat4 imat4
 Signed integer 4x4 matrix. More...
 
typedef mediump_imat4x2 imat4x2
 Signed integer 4x2 matrix. More...
 
typedef mediump_imat4x3 imat4x3
 Signed integer 4x3 matrix. More...
 
typedef mediump_imat4x4 imat4x4
 Signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2x2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, lowp > lowp_imat2x3
 Low-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, lowp > lowp_imat2x4
 Low-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, lowp > lowp_imat3x2
 Low-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3x3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, lowp > lowp_imat3x4
 Low-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, lowp > lowp_imat4x2
 Low-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, lowp > lowp_imat4x3
 Low-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4x4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2x2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, lowp > lowp_umat2x3
 Low-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, lowp > lowp_umat2x4
 Low-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, lowp > lowp_umat3x2
 Low-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3x3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, lowp > lowp_umat3x4
 Low-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, lowp > lowp_umat4x2
 Low-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, lowp > lowp_umat4x3
 Low-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4x4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2x2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, mediump > mediump_imat2x3
 Medium-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, mediump > mediump_imat2x4
 Medium-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, mediump > mediump_imat3x2
 Medium-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3x3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, mediump > mediump_imat3x4
 Medium-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, mediump > mediump_imat4x2
 Medium-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, mediump > mediump_imat4x3
 Medium-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4x4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2x2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, mediump > mediump_umat2x3
 Medium-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, mediump > mediump_umat2x4
 Medium-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, mediump > mediump_umat3x2
 Medium-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3x3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, mediump > mediump_umat3x4
 Medium-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, mediump > mediump_umat4x2
 Medium-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, mediump > mediump_umat4x3
 Medium-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4x4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_umat2 umat2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x2 umat2x2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x3 umat2x3
 Unsigned integer 2x3 matrix. More...
 
typedef mediump_umat2x4 umat2x4
 Unsigned integer 2x4 matrix. More...
 
typedef mediump_umat3 umat3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x2 umat3x2
 Unsigned integer 3x2 matrix. More...
 
typedef mediump_umat3x3 umat3x3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x4 umat3x4
 Unsigned integer 3x4 matrix. More...
 
typedef mediump_umat4 umat4
 Unsigned integer 4x4 matrix. More...
 
typedef mediump_umat4x2 umat4x2
 Unsigned integer 4x2 matrix. More...
 
typedef mediump_umat4x3 umat4x3
 Unsigned integer 4x3 matrix. More...
 
typedef mediump_umat4x4 umat4x4
 Unsigned integer 4x4 matrix. More...
 
+

Detailed Description

+

GLM_GTC_matrix_integer

+
See also
Core features (dependence)
+ +

Definition in file matrix_integer.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00100_source.html b/external/include/glm-0.9.9.8/doc/api/a00100_source.html index 443db31f34..367a5f46ff 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00100_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00100_source.html @@ -1,477 +1,477 @@ - - - - - - -0.9.9 API documentation: matrix_integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_integer.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../mat2x2.hpp"
-
17 #include "../mat2x3.hpp"
-
18 #include "../mat2x4.hpp"
-
19 #include "../mat3x2.hpp"
-
20 #include "../mat3x3.hpp"
-
21 #include "../mat3x4.hpp"
-
22 #include "../mat4x2.hpp"
-
23 #include "../mat4x3.hpp"
-
24 #include "../mat4x4.hpp"
-
25 
-
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
27 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
37  typedef mat<2, 2, int, highp> highp_imat2;
-
38 
-
41  typedef mat<3, 3, int, highp> highp_imat3;
-
42 
-
45  typedef mat<4, 4, int, highp> highp_imat4;
-
46 
-
49  typedef mat<2, 2, int, highp> highp_imat2x2;
-
50 
-
53  typedef mat<2, 3, int, highp> highp_imat2x3;
-
54 
-
57  typedef mat<2, 4, int, highp> highp_imat2x4;
-
58 
-
61  typedef mat<3, 2, int, highp> highp_imat3x2;
-
62 
-
65  typedef mat<3, 3, int, highp> highp_imat3x3;
-
66 
-
69  typedef mat<3, 4, int, highp> highp_imat3x4;
-
70 
-
73  typedef mat<4, 2, int, highp> highp_imat4x2;
-
74 
-
77  typedef mat<4, 3, int, highp> highp_imat4x3;
-
78 
-
81  typedef mat<4, 4, int, highp> highp_imat4x4;
-
82 
-
83 
-
86  typedef mat<2, 2, int, mediump> mediump_imat2;
-
87 
-
90  typedef mat<3, 3, int, mediump> mediump_imat3;
-
91 
-
94  typedef mat<4, 4, int, mediump> mediump_imat4;
-
95 
-
96 
-
99  typedef mat<2, 2, int, mediump> mediump_imat2x2;
-
100 
-
103  typedef mat<2, 3, int, mediump> mediump_imat2x3;
-
104 
-
107  typedef mat<2, 4, int, mediump> mediump_imat2x4;
-
108 
-
111  typedef mat<3, 2, int, mediump> mediump_imat3x2;
-
112 
-
115  typedef mat<3, 3, int, mediump> mediump_imat3x3;
-
116 
-
119  typedef mat<3, 4, int, mediump> mediump_imat3x4;
-
120 
-
123  typedef mat<4, 2, int, mediump> mediump_imat4x2;
-
124 
-
127  typedef mat<4, 3, int, mediump> mediump_imat4x3;
-
128 
-
131  typedef mat<4, 4, int, mediump> mediump_imat4x4;
-
132 
-
133 
-
136  typedef mat<2, 2, int, lowp> lowp_imat2;
-
137 
-
140  typedef mat<3, 3, int, lowp> lowp_imat3;
-
141 
-
144  typedef mat<4, 4, int, lowp> lowp_imat4;
-
145 
-
146 
-
149  typedef mat<2, 2, int, lowp> lowp_imat2x2;
-
150 
-
153  typedef mat<2, 3, int, lowp> lowp_imat2x3;
-
154 
-
157  typedef mat<2, 4, int, lowp> lowp_imat2x4;
-
158 
-
161  typedef mat<3, 2, int, lowp> lowp_imat3x2;
-
162 
-
165  typedef mat<3, 3, int, lowp> lowp_imat3x3;
-
166 
-
169  typedef mat<3, 4, int, lowp> lowp_imat3x4;
-
170 
-
173  typedef mat<4, 2, int, lowp> lowp_imat4x2;
-
174 
-
177  typedef mat<4, 3, int, lowp> lowp_imat4x3;
-
178 
-
181  typedef mat<4, 4, int, lowp> lowp_imat4x4;
-
182 
-
183 
-
186  typedef mat<2, 2, uint, highp> highp_umat2;
-
187 
-
190  typedef mat<3, 3, uint, highp> highp_umat3;
-
191 
-
194  typedef mat<4, 4, uint, highp> highp_umat4;
-
195 
-
198  typedef mat<2, 2, uint, highp> highp_umat2x2;
-
199 
-
202  typedef mat<2, 3, uint, highp> highp_umat2x3;
-
203 
-
206  typedef mat<2, 4, uint, highp> highp_umat2x4;
-
207 
-
210  typedef mat<3, 2, uint, highp> highp_umat3x2;
-
211 
-
214  typedef mat<3, 3, uint, highp> highp_umat3x3;
-
215 
-
218  typedef mat<3, 4, uint, highp> highp_umat3x4;
-
219 
-
222  typedef mat<4, 2, uint, highp> highp_umat4x2;
-
223 
-
226  typedef mat<4, 3, uint, highp> highp_umat4x3;
-
227 
-
230  typedef mat<4, 4, uint, highp> highp_umat4x4;
-
231 
-
232 
-
235  typedef mat<2, 2, uint, mediump> mediump_umat2;
-
236 
-
239  typedef mat<3, 3, uint, mediump> mediump_umat3;
-
240 
-
243  typedef mat<4, 4, uint, mediump> mediump_umat4;
-
244 
-
245 
-
248  typedef mat<2, 2, uint, mediump> mediump_umat2x2;
-
249 
-
252  typedef mat<2, 3, uint, mediump> mediump_umat2x3;
-
253 
-
256  typedef mat<2, 4, uint, mediump> mediump_umat2x4;
-
257 
-
260  typedef mat<3, 2, uint, mediump> mediump_umat3x2;
-
261 
-
264  typedef mat<3, 3, uint, mediump> mediump_umat3x3;
-
265 
-
268  typedef mat<3, 4, uint, mediump> mediump_umat3x4;
-
269 
-
272  typedef mat<4, 2, uint, mediump> mediump_umat4x2;
-
273 
-
276  typedef mat<4, 3, uint, mediump> mediump_umat4x3;
-
277 
-
280  typedef mat<4, 4, uint, mediump> mediump_umat4x4;
-
281 
-
282 
-
285  typedef mat<2, 2, uint, lowp> lowp_umat2;
-
286 
-
289  typedef mat<3, 3, uint, lowp> lowp_umat3;
-
290 
-
293  typedef mat<4, 4, uint, lowp> lowp_umat4;
-
294 
-
295 
-
298  typedef mat<2, 2, uint, lowp> lowp_umat2x2;
-
299 
-
302  typedef mat<2, 3, uint, lowp> lowp_umat2x3;
-
303 
-
306  typedef mat<2, 4, uint, lowp> lowp_umat2x4;
-
307 
-
310  typedef mat<3, 2, uint, lowp> lowp_umat3x2;
-
311 
-
314  typedef mat<3, 3, uint, lowp> lowp_umat3x3;
-
315 
-
318  typedef mat<3, 4, uint, lowp> lowp_umat3x4;
-
319 
-
322  typedef mat<4, 2, uint, lowp> lowp_umat4x2;
-
323 
-
326  typedef mat<4, 3, uint, lowp> lowp_umat4x3;
-
327 
-
330  typedef mat<4, 4, uint, lowp> lowp_umat4x4;
-
331 
-
332 #if(defined(GLM_PRECISION_HIGHP_INT))
-
333  typedef highp_imat2 imat2;
-
334  typedef highp_imat3 imat3;
-
335  typedef highp_imat4 imat4;
-
336  typedef highp_imat2x2 imat2x2;
-
337  typedef highp_imat2x3 imat2x3;
-
338  typedef highp_imat2x4 imat2x4;
-
339  typedef highp_imat3x2 imat3x2;
-
340  typedef highp_imat3x3 imat3x3;
-
341  typedef highp_imat3x4 imat3x4;
-
342  typedef highp_imat4x2 imat4x2;
-
343  typedef highp_imat4x3 imat4x3;
-
344  typedef highp_imat4x4 imat4x4;
-
345 #elif(defined(GLM_PRECISION_LOWP_INT))
-
346  typedef lowp_imat2 imat2;
-
347  typedef lowp_imat3 imat3;
-
348  typedef lowp_imat4 imat4;
-
349  typedef lowp_imat2x2 imat2x2;
-
350  typedef lowp_imat2x3 imat2x3;
-
351  typedef lowp_imat2x4 imat2x4;
-
352  typedef lowp_imat3x2 imat3x2;
-
353  typedef lowp_imat3x3 imat3x3;
-
354  typedef lowp_imat3x4 imat3x4;
-
355  typedef lowp_imat4x2 imat4x2;
-
356  typedef lowp_imat4x3 imat4x3;
-
357  typedef lowp_imat4x4 imat4x4;
-
358 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
-
359 
-
362  typedef mediump_imat2 imat2;
-
363 
-
366  typedef mediump_imat3 imat3;
-
367 
-
370  typedef mediump_imat4 imat4;
-
371 
-
374  typedef mediump_imat2x2 imat2x2;
-
375 
-
378  typedef mediump_imat2x3 imat2x3;
-
379 
-
382  typedef mediump_imat2x4 imat2x4;
-
383 
-
386  typedef mediump_imat3x2 imat3x2;
-
387 
-
390  typedef mediump_imat3x3 imat3x3;
-
391 
-
394  typedef mediump_imat3x4 imat3x4;
-
395 
-
398  typedef mediump_imat4x2 imat4x2;
-
399 
-
402  typedef mediump_imat4x3 imat4x3;
-
403 
-
406  typedef mediump_imat4x4 imat4x4;
-
407 #endif//GLM_PRECISION
-
408 
-
409 #if(defined(GLM_PRECISION_HIGHP_UINT))
-
410  typedef highp_umat2 umat2;
-
411  typedef highp_umat3 umat3;
-
412  typedef highp_umat4 umat4;
-
413  typedef highp_umat2x2 umat2x2;
-
414  typedef highp_umat2x3 umat2x3;
-
415  typedef highp_umat2x4 umat2x4;
-
416  typedef highp_umat3x2 umat3x2;
-
417  typedef highp_umat3x3 umat3x3;
-
418  typedef highp_umat3x4 umat3x4;
-
419  typedef highp_umat4x2 umat4x2;
-
420  typedef highp_umat4x3 umat4x3;
-
421  typedef highp_umat4x4 umat4x4;
-
422 #elif(defined(GLM_PRECISION_LOWP_UINT))
-
423  typedef lowp_umat2 umat2;
-
424  typedef lowp_umat3 umat3;
-
425  typedef lowp_umat4 umat4;
-
426  typedef lowp_umat2x2 umat2x2;
-
427  typedef lowp_umat2x3 umat2x3;
-
428  typedef lowp_umat2x4 umat2x4;
-
429  typedef lowp_umat3x2 umat3x2;
-
430  typedef lowp_umat3x3 umat3x3;
-
431  typedef lowp_umat3x4 umat3x4;
-
432  typedef lowp_umat4x2 umat4x2;
-
433  typedef lowp_umat4x3 umat4x3;
-
434  typedef lowp_umat4x4 umat4x4;
-
435 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
-
436 
-
439  typedef mediump_umat2 umat2;
-
440 
-
443  typedef mediump_umat3 umat3;
-
444 
-
447  typedef mediump_umat4 umat4;
-
448 
-
451  typedef mediump_umat2x2 umat2x2;
-
452 
-
455  typedef mediump_umat2x3 umat2x3;
-
456 
-
459  typedef mediump_umat2x4 umat2x4;
-
460 
-
463  typedef mediump_umat3x2 umat3x2;
-
464 
-
467  typedef mediump_umat3x3 umat3x3;
-
468 
-
471  typedef mediump_umat3x4 umat3x4;
-
472 
-
475  typedef mediump_umat4x2 umat4x2;
-
476 
-
479  typedef mediump_umat4x3 umat4x3;
-
480 
-
483  typedef mediump_umat4x4 umat4x4;
-
484 #endif//GLM_PRECISION
-
485 
-
487 }//namespace glm
-
mediump_imat4x4 imat4x4
Signed integer 4x4 matrix.
-
mediump_imat2x2 imat2x2
Signed integer 2x2 matrix.
-
mediump_umat4 umat4
Unsigned integer 4x4 matrix.
-
mediump_umat4x2 umat4x2
Unsigned integer 4x2 matrix.
-
mat< 4, 4, uint, lowp > lowp_umat4x4
Low-qualifier unsigned integer 4x4 matrix.
-
mat< 4, 2, int, mediump > mediump_imat4x2
Medium-qualifier signed integer 4x2 matrix.
-
mat< 4, 4, uint, lowp > lowp_umat4
Low-qualifier unsigned integer 4x4 matrix.
-
mat< 3, 2, int, highp > highp_imat3x2
High-qualifier signed integer 3x2 matrix.
-
mat< 3, 3, uint, highp > highp_umat3x3
High-qualifier unsigned integer 3x3 matrix.
-
mat< 2, 2, uint, lowp > lowp_umat2x2
Low-qualifier unsigned integer 2x2 matrix.
-
mediump_umat3x3 umat3x3
Unsigned integer 3x3 matrix.
-
mat< 2, 4, uint, highp > highp_umat2x4
High-qualifier unsigned integer 2x4 matrix.
-
mediump_umat3x2 umat3x2
Unsigned integer 3x2 matrix.
-
mat< 3, 2, int, lowp > lowp_imat3x2
Low-qualifier signed integer 3x2 matrix.
-
mat< 3, 3, uint, highp > highp_umat3
High-qualifier unsigned integer 3x3 matrix.
-
mat< 4, 3, int, mediump > mediump_imat4x3
Medium-qualifier signed integer 4x3 matrix.
-
mediump_imat3 imat3
Signed integer 3x3 matrix.
-
mat< 2, 2, int, mediump > mediump_imat2
Medium-qualifier signed integer 2x2 matrix.
-
mat< 3, 4, uint, mediump > mediump_umat3x4
Medium-qualifier unsigned integer 3x4 matrix.
-
mat< 4, 4, int, lowp > lowp_imat4x4
Low-qualifier signed integer 4x4 matrix.
-
mat< 2, 4, int, highp > highp_imat2x4
High-qualifier signed integer 2x4 matrix.
-
mediump_umat2x3 umat2x3
Unsigned integer 2x3 matrix.
-
mat< 4, 3, int, lowp > lowp_imat4x3
Low-qualifier signed integer 4x3 matrix.
-
mat< 3, 3, uint, lowp > lowp_umat3
Low-qualifier unsigned integer 3x3 matrix.
-
mat< 4, 4, uint, mediump > mediump_umat4x4
Medium-qualifier unsigned integer 4x4 matrix.
-
mat< 3, 2, uint, mediump > mediump_umat3x2
Medium-qualifier unsigned integer 3x2 matrix.
-
mat< 2, 4, uint, mediump > mediump_umat2x4
Medium-qualifier unsigned integer 2x4 matrix.
-
mat< 4, 4, int, highp > highp_imat4x4
High-qualifier signed integer 4x4 matrix.
-
mat< 2, 4, uint, lowp > lowp_umat2x4
Low-qualifier unsigned integer 2x4 matrix.
-
mediump_imat4x3 imat4x3
Signed integer 4x3 matrix.
-
mat< 3, 3, uint, mediump > mediump_umat3x3
Medium-qualifier unsigned integer 3x3 matrix.
-
mat< 2, 2, int, highp > highp_imat2
High-qualifier signed integer 2x2 matrix.
-
mediump_umat2 umat2
Unsigned integer 2x2 matrix.
-
mat< 3, 4, uint, lowp > lowp_umat3x4
Low-qualifier unsigned integer 3x4 matrix.
-
mat< 4, 2, uint, mediump > mediump_umat4x2
Medium-qualifier unsigned integer 4x2 matrix.
-
mediump_imat4x2 imat4x2
Signed integer 4x2 matrix.
-
mat< 2, 3, int, mediump > mediump_imat2x3
Medium-qualifier signed integer 2x3 matrix.
-
mat< 2, 2, uint, mediump > mediump_umat2
Medium-qualifier unsigned integer 2x2 matrix.
-
mediump_imat2 imat2
Signed integer 2x2 matrix.
-
mat< 4, 3, uint, mediump > mediump_umat4x3
Medium-qualifier unsigned integer 4x3 matrix.
-
mat< 3, 3, int, mediump > mediump_imat3
Medium-qualifier signed integer 3x3 matrix.
-
mat< 2, 2, uint, highp > highp_umat2
High-qualifier unsigned integer 2x2 matrix.
-
mediump_imat3x4 imat3x4
Signed integer 3x4 matrix.
-
mat< 3, 2, uint, highp > highp_umat3x2
High-qualifier unsigned integer 3x2 matrix.
-
mat< 2, 2, int, highp > highp_imat2x2
High-qualifier signed integer 2x2 matrix.
-
mat< 3, 4, uint, highp > highp_umat3x4
High-qualifier unsigned integer 3x4 matrix.
-
mat< 3, 3, int, mediump > mediump_imat3x3
Medium-qualifier signed integer 3x3 matrix.
-
mat< 4, 4, uint, highp > highp_umat4x4
High-qualifier unsigned integer 4x4 matrix.
-
mediump_imat2x4 imat2x4
Signed integer 2x4 matrix.
-
mediump_umat2x4 umat2x4
Unsigned integer 2x4 matrix.
-
mat< 2, 4, int, mediump > mediump_imat2x4
Medium-qualifier signed integer 2x4 matrix.
-
mat< 2, 2, int, lowp > lowp_imat2
Low-qualifier signed integer 2x2 matrix.
-
mat< 4, 2, int, lowp > lowp_imat4x2
Low-qualifier signed integer 4x2 matrix.
-
mat< 4, 3, uint, lowp > lowp_umat4x3
Low-qualifier unsigned integer 4x3 matrix.
-
mediump_imat4 imat4
Signed integer 4x4 matrix.
-
mediump_imat3x2 imat3x2
Signed integer 3x2 matrix.
-
mat< 2, 3, uint, lowp > lowp_umat2x3
Low-qualifier unsigned integer 2x3 matrix.
-
mat< 3, 2, int, mediump > mediump_imat3x2
Medium-qualifier signed integer 3x2 matrix.
-
mediump_umat4x4 umat4x4
Unsigned integer 4x4 matrix.
-
mat< 4, 3, int, highp > highp_imat4x3
High-qualifier signed integer 4x3 matrix.
-
mediump_umat4x3 umat4x3
Unsigned integer 4x3 matrix.
-
mat< 4, 2, uint, lowp > lowp_umat4x2
Low-qualifier unsigned integer 4x2 matrix.
-
mat< 3, 2, uint, lowp > lowp_umat3x2
Low-qualifier unsigned integer 3x2 matrix.
-
mat< 2, 2, uint, highp > highp_umat2x2
High-qualifier unsigned integer 2x2 matrix.
-
mat< 3, 3, int, lowp > lowp_imat3x3
Low-qualifier signed integer 3x3 matrix.
-
mat< 3, 3, int, highp > highp_imat3x3
High-qualifier signed integer 3x3 matrix.
-
mat< 2, 3, uint, mediump > mediump_umat2x3
Medium-qualifier unsigned integer 2x3 matrix.
-
mat< 4, 2, uint, highp > highp_umat4x2
High-qualifier unsigned integer 4x2 matrix.
-
mat< 3, 3, uint, lowp > lowp_umat3x3
Low-qualifier unsigned integer 3x3 matrix.
-
mediump_imat2x3 imat2x3
Signed integer 2x3 matrix.
-
mat< 2, 3, int, lowp > lowp_imat2x3
Low-qualifier signed integer 2x3 matrix.
-
mat< 4, 4, uint, highp > highp_umat4
High-qualifier unsigned integer 4x4 matrix.
-
mat< 3, 3, int, highp > highp_imat3
High-qualifier signed integer 3x3 matrix.
-
mat< 3, 3, uint, mediump > mediump_umat3
Medium-qualifier unsigned integer 3x3 matrix.
-
mat< 2, 2, int, mediump > mediump_imat2x2
Medium-qualifier signed integer 2x2 matrix.
-
mat< 2, 3, int, highp > highp_imat2x3
High-qualifier signed integer 2x3 matrix.
-
mat< 4, 2, int, highp > highp_imat4x2
High-qualifier signed integer 4x2 matrix.
-
mat< 3, 4, int, lowp > lowp_imat3x4
Low-qualifier signed integer 3x4 matrix.
-
mediump_umat3 umat3
Unsigned integer 3x3 matrix.
-
mat< 2, 2, int, lowp > lowp_imat2x2
Low-qualifier signed integer 2x2 matrix.
-
mat< 2, 3, uint, highp > highp_umat2x3
High-qualifier unsigned integer 2x3 matrix.
-
mat< 4, 4, int, highp > highp_imat4
High-qualifier signed integer 4x4 matrix.
-
mat< 2, 4, int, lowp > lowp_imat2x4
Low-qualifier signed integer 2x4 matrix.
-
mat< 3, 4, int, mediump > mediump_imat3x4
Medium-qualifier signed integer 3x4 matrix.
-
mat< 4, 4, int, mediump > mediump_imat4x4
Medium-qualifier signed integer 4x4 matrix.
-
mat< 4, 4, int, mediump > mediump_imat4
Medium-qualifier signed integer 4x4 matrix.
-
mediump_imat3x3 imat3x3
Signed integer 3x3 matrix.
-
mat< 3, 3, int, lowp > lowp_imat3
Low-qualifier signed integer 3x3 matrix.
-
mat< 2, 2, uint, lowp > lowp_umat2
Low-qualifier unsigned integer 2x2 matrix.
-
mat< 4, 3, uint, highp > highp_umat4x3
High-qualifier unsigned integer 4x3 matrix.
-
mediump_umat2x2 umat2x2
Unsigned integer 2x2 matrix.
-
mat< 4, 4, uint, mediump > mediump_umat4
Medium-qualifier unsigned integer 4x4 matrix.
-
mat< 4, 4, int, lowp > lowp_imat4
Low-qualifier signed integer 4x4 matrix.
-
mediump_umat3x4 umat3x4
Unsigned integer 3x4 matrix.
-
mat< 3, 4, int, highp > highp_imat3x4
High-qualifier signed integer 3x4 matrix.
-
mat< 2, 2, uint, mediump > mediump_umat2x2
Medium-qualifier unsigned integer 2x2 matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_integer.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../mat2x2.hpp"
+
17 #include "../mat2x3.hpp"
+
18 #include "../mat2x4.hpp"
+
19 #include "../mat3x2.hpp"
+
20 #include "../mat3x3.hpp"
+
21 #include "../mat3x4.hpp"
+
22 #include "../mat4x2.hpp"
+
23 #include "../mat4x3.hpp"
+
24 #include "../mat4x4.hpp"
+
25 
+
26 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
27 # pragma message("GLM: GLM_GTC_matrix_integer extension included")
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
37  typedef mat<2, 2, int, highp> highp_imat2;
+
38 
+
41  typedef mat<3, 3, int, highp> highp_imat3;
+
42 
+
45  typedef mat<4, 4, int, highp> highp_imat4;
+
46 
+
49  typedef mat<2, 2, int, highp> highp_imat2x2;
+
50 
+
53  typedef mat<2, 3, int, highp> highp_imat2x3;
+
54 
+
57  typedef mat<2, 4, int, highp> highp_imat2x4;
+
58 
+
61  typedef mat<3, 2, int, highp> highp_imat3x2;
+
62 
+
65  typedef mat<3, 3, int, highp> highp_imat3x3;
+
66 
+
69  typedef mat<3, 4, int, highp> highp_imat3x4;
+
70 
+
73  typedef mat<4, 2, int, highp> highp_imat4x2;
+
74 
+
77  typedef mat<4, 3, int, highp> highp_imat4x3;
+
78 
+
81  typedef mat<4, 4, int, highp> highp_imat4x4;
+
82 
+
83 
+
86  typedef mat<2, 2, int, mediump> mediump_imat2;
+
87 
+
90  typedef mat<3, 3, int, mediump> mediump_imat3;
+
91 
+
94  typedef mat<4, 4, int, mediump> mediump_imat4;
+
95 
+
96 
+
99  typedef mat<2, 2, int, mediump> mediump_imat2x2;
+
100 
+
103  typedef mat<2, 3, int, mediump> mediump_imat2x3;
+
104 
+
107  typedef mat<2, 4, int, mediump> mediump_imat2x4;
+
108 
+
111  typedef mat<3, 2, int, mediump> mediump_imat3x2;
+
112 
+
115  typedef mat<3, 3, int, mediump> mediump_imat3x3;
+
116 
+
119  typedef mat<3, 4, int, mediump> mediump_imat3x4;
+
120 
+
123  typedef mat<4, 2, int, mediump> mediump_imat4x2;
+
124 
+
127  typedef mat<4, 3, int, mediump> mediump_imat4x3;
+
128 
+
131  typedef mat<4, 4, int, mediump> mediump_imat4x4;
+
132 
+
133 
+
136  typedef mat<2, 2, int, lowp> lowp_imat2;
+
137 
+
140  typedef mat<3, 3, int, lowp> lowp_imat3;
+
141 
+
144  typedef mat<4, 4, int, lowp> lowp_imat4;
+
145 
+
146 
+
149  typedef mat<2, 2, int, lowp> lowp_imat2x2;
+
150 
+
153  typedef mat<2, 3, int, lowp> lowp_imat2x3;
+
154 
+
157  typedef mat<2, 4, int, lowp> lowp_imat2x4;
+
158 
+
161  typedef mat<3, 2, int, lowp> lowp_imat3x2;
+
162 
+
165  typedef mat<3, 3, int, lowp> lowp_imat3x3;
+
166 
+
169  typedef mat<3, 4, int, lowp> lowp_imat3x4;
+
170 
+
173  typedef mat<4, 2, int, lowp> lowp_imat4x2;
+
174 
+
177  typedef mat<4, 3, int, lowp> lowp_imat4x3;
+
178 
+
181  typedef mat<4, 4, int, lowp> lowp_imat4x4;
+
182 
+
183 
+
186  typedef mat<2, 2, uint, highp> highp_umat2;
+
187 
+
190  typedef mat<3, 3, uint, highp> highp_umat3;
+
191 
+
194  typedef mat<4, 4, uint, highp> highp_umat4;
+
195 
+
198  typedef mat<2, 2, uint, highp> highp_umat2x2;
+
199 
+
202  typedef mat<2, 3, uint, highp> highp_umat2x3;
+
203 
+
206  typedef mat<2, 4, uint, highp> highp_umat2x4;
+
207 
+
210  typedef mat<3, 2, uint, highp> highp_umat3x2;
+
211 
+
214  typedef mat<3, 3, uint, highp> highp_umat3x3;
+
215 
+
218  typedef mat<3, 4, uint, highp> highp_umat3x4;
+
219 
+
222  typedef mat<4, 2, uint, highp> highp_umat4x2;
+
223 
+
226  typedef mat<4, 3, uint, highp> highp_umat4x3;
+
227 
+
230  typedef mat<4, 4, uint, highp> highp_umat4x4;
+
231 
+
232 
+
235  typedef mat<2, 2, uint, mediump> mediump_umat2;
+
236 
+
239  typedef mat<3, 3, uint, mediump> mediump_umat3;
+
240 
+
243  typedef mat<4, 4, uint, mediump> mediump_umat4;
+
244 
+
245 
+
248  typedef mat<2, 2, uint, mediump> mediump_umat2x2;
+
249 
+
252  typedef mat<2, 3, uint, mediump> mediump_umat2x3;
+
253 
+
256  typedef mat<2, 4, uint, mediump> mediump_umat2x4;
+
257 
+
260  typedef mat<3, 2, uint, mediump> mediump_umat3x2;
+
261 
+
264  typedef mat<3, 3, uint, mediump> mediump_umat3x3;
+
265 
+
268  typedef mat<3, 4, uint, mediump> mediump_umat3x4;
+
269 
+
272  typedef mat<4, 2, uint, mediump> mediump_umat4x2;
+
273 
+
276  typedef mat<4, 3, uint, mediump> mediump_umat4x3;
+
277 
+
280  typedef mat<4, 4, uint, mediump> mediump_umat4x4;
+
281 
+
282 
+
285  typedef mat<2, 2, uint, lowp> lowp_umat2;
+
286 
+
289  typedef mat<3, 3, uint, lowp> lowp_umat3;
+
290 
+
293  typedef mat<4, 4, uint, lowp> lowp_umat4;
+
294 
+
295 
+
298  typedef mat<2, 2, uint, lowp> lowp_umat2x2;
+
299 
+
302  typedef mat<2, 3, uint, lowp> lowp_umat2x3;
+
303 
+
306  typedef mat<2, 4, uint, lowp> lowp_umat2x4;
+
307 
+
310  typedef mat<3, 2, uint, lowp> lowp_umat3x2;
+
311 
+
314  typedef mat<3, 3, uint, lowp> lowp_umat3x3;
+
315 
+
318  typedef mat<3, 4, uint, lowp> lowp_umat3x4;
+
319 
+
322  typedef mat<4, 2, uint, lowp> lowp_umat4x2;
+
323 
+
326  typedef mat<4, 3, uint, lowp> lowp_umat4x3;
+
327 
+
330  typedef mat<4, 4, uint, lowp> lowp_umat4x4;
+
331 
+
332 #if(defined(GLM_PRECISION_HIGHP_INT))
+
333  typedef highp_imat2 imat2;
+
334  typedef highp_imat3 imat3;
+
335  typedef highp_imat4 imat4;
+
336  typedef highp_imat2x2 imat2x2;
+
337  typedef highp_imat2x3 imat2x3;
+
338  typedef highp_imat2x4 imat2x4;
+
339  typedef highp_imat3x2 imat3x2;
+
340  typedef highp_imat3x3 imat3x3;
+
341  typedef highp_imat3x4 imat3x4;
+
342  typedef highp_imat4x2 imat4x2;
+
343  typedef highp_imat4x3 imat4x3;
+
344  typedef highp_imat4x4 imat4x4;
+
345 #elif(defined(GLM_PRECISION_LOWP_INT))
+
346  typedef lowp_imat2 imat2;
+
347  typedef lowp_imat3 imat3;
+
348  typedef lowp_imat4 imat4;
+
349  typedef lowp_imat2x2 imat2x2;
+
350  typedef lowp_imat2x3 imat2x3;
+
351  typedef lowp_imat2x4 imat2x4;
+
352  typedef lowp_imat3x2 imat3x2;
+
353  typedef lowp_imat3x3 imat3x3;
+
354  typedef lowp_imat3x4 imat3x4;
+
355  typedef lowp_imat4x2 imat4x2;
+
356  typedef lowp_imat4x3 imat4x3;
+
357  typedef lowp_imat4x4 imat4x4;
+
358 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
+
359 
+
362  typedef mediump_imat2 imat2;
+
363 
+
366  typedef mediump_imat3 imat3;
+
367 
+
370  typedef mediump_imat4 imat4;
+
371 
+
374  typedef mediump_imat2x2 imat2x2;
+
375 
+
378  typedef mediump_imat2x3 imat2x3;
+
379 
+
382  typedef mediump_imat2x4 imat2x4;
+
383 
+
386  typedef mediump_imat3x2 imat3x2;
+
387 
+
390  typedef mediump_imat3x3 imat3x3;
+
391 
+
394  typedef mediump_imat3x4 imat3x4;
+
395 
+
398  typedef mediump_imat4x2 imat4x2;
+
399 
+
402  typedef mediump_imat4x3 imat4x3;
+
403 
+
406  typedef mediump_imat4x4 imat4x4;
+
407 #endif//GLM_PRECISION
+
408 
+
409 #if(defined(GLM_PRECISION_HIGHP_UINT))
+
410  typedef highp_umat2 umat2;
+
411  typedef highp_umat3 umat3;
+
412  typedef highp_umat4 umat4;
+
413  typedef highp_umat2x2 umat2x2;
+
414  typedef highp_umat2x3 umat2x3;
+
415  typedef highp_umat2x4 umat2x4;
+
416  typedef highp_umat3x2 umat3x2;
+
417  typedef highp_umat3x3 umat3x3;
+
418  typedef highp_umat3x4 umat3x4;
+
419  typedef highp_umat4x2 umat4x2;
+
420  typedef highp_umat4x3 umat4x3;
+
421  typedef highp_umat4x4 umat4x4;
+
422 #elif(defined(GLM_PRECISION_LOWP_UINT))
+
423  typedef lowp_umat2 umat2;
+
424  typedef lowp_umat3 umat3;
+
425  typedef lowp_umat4 umat4;
+
426  typedef lowp_umat2x2 umat2x2;
+
427  typedef lowp_umat2x3 umat2x3;
+
428  typedef lowp_umat2x4 umat2x4;
+
429  typedef lowp_umat3x2 umat3x2;
+
430  typedef lowp_umat3x3 umat3x3;
+
431  typedef lowp_umat3x4 umat3x4;
+
432  typedef lowp_umat4x2 umat4x2;
+
433  typedef lowp_umat4x3 umat4x3;
+
434  typedef lowp_umat4x4 umat4x4;
+
435 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
+
436 
+
439  typedef mediump_umat2 umat2;
+
440 
+
443  typedef mediump_umat3 umat3;
+
444 
+
447  typedef mediump_umat4 umat4;
+
448 
+
451  typedef mediump_umat2x2 umat2x2;
+
452 
+
455  typedef mediump_umat2x3 umat2x3;
+
456 
+
459  typedef mediump_umat2x4 umat2x4;
+
460 
+
463  typedef mediump_umat3x2 umat3x2;
+
464 
+
467  typedef mediump_umat3x3 umat3x3;
+
468 
+
471  typedef mediump_umat3x4 umat3x4;
+
472 
+
475  typedef mediump_umat4x2 umat4x2;
+
476 
+
479  typedef mediump_umat4x3 umat4x3;
+
480 
+
483  typedef mediump_umat4x4 umat4x4;
+
484 #endif//GLM_PRECISION
+
485 
+
487 }//namespace glm
+
mediump_imat4x4 imat4x4
Signed integer 4x4 matrix.
+
mediump_imat2x2 imat2x2
Signed integer 2x2 matrix.
+
mediump_umat4 umat4
Unsigned integer 4x4 matrix.
+
mediump_umat4x2 umat4x2
Unsigned integer 4x2 matrix.
+
mat< 4, 4, uint, lowp > lowp_umat4x4
Low-qualifier unsigned integer 4x4 matrix.
+
mat< 4, 2, int, mediump > mediump_imat4x2
Medium-qualifier signed integer 4x2 matrix.
+
mat< 4, 4, uint, lowp > lowp_umat4
Low-qualifier unsigned integer 4x4 matrix.
+
mat< 3, 2, int, highp > highp_imat3x2
High-qualifier signed integer 3x2 matrix.
+
mat< 3, 3, uint, highp > highp_umat3x3
High-qualifier unsigned integer 3x3 matrix.
+
mat< 2, 2, uint, lowp > lowp_umat2x2
Low-qualifier unsigned integer 2x2 matrix.
+
mediump_umat3x3 umat3x3
Unsigned integer 3x3 matrix.
+
mat< 2, 4, uint, highp > highp_umat2x4
High-qualifier unsigned integer 2x4 matrix.
+
mediump_umat3x2 umat3x2
Unsigned integer 3x2 matrix.
+
mat< 3, 2, int, lowp > lowp_imat3x2
Low-qualifier signed integer 3x2 matrix.
+
mat< 3, 3, uint, highp > highp_umat3
High-qualifier unsigned integer 3x3 matrix.
+
mat< 4, 3, int, mediump > mediump_imat4x3
Medium-qualifier signed integer 4x3 matrix.
+
mediump_imat3 imat3
Signed integer 3x3 matrix.
+
mat< 2, 2, int, mediump > mediump_imat2
Medium-qualifier signed integer 2x2 matrix.
+
mat< 3, 4, uint, mediump > mediump_umat3x4
Medium-qualifier unsigned integer 3x4 matrix.
+
mat< 4, 4, int, lowp > lowp_imat4x4
Low-qualifier signed integer 4x4 matrix.
+
mat< 2, 4, int, highp > highp_imat2x4
High-qualifier signed integer 2x4 matrix.
+
mediump_umat2x3 umat2x3
Unsigned integer 2x3 matrix.
+
mat< 4, 3, int, lowp > lowp_imat4x3
Low-qualifier signed integer 4x3 matrix.
+
mat< 3, 3, uint, lowp > lowp_umat3
Low-qualifier unsigned integer 3x3 matrix.
+
mat< 4, 4, uint, mediump > mediump_umat4x4
Medium-qualifier unsigned integer 4x4 matrix.
+
mat< 3, 2, uint, mediump > mediump_umat3x2
Medium-qualifier unsigned integer 3x2 matrix.
+
mat< 2, 4, uint, mediump > mediump_umat2x4
Medium-qualifier unsigned integer 2x4 matrix.
+
mat< 4, 4, int, highp > highp_imat4x4
High-qualifier signed integer 4x4 matrix.
+
mat< 2, 4, uint, lowp > lowp_umat2x4
Low-qualifier unsigned integer 2x4 matrix.
+
mediump_imat4x3 imat4x3
Signed integer 4x3 matrix.
+
mat< 3, 3, uint, mediump > mediump_umat3x3
Medium-qualifier unsigned integer 3x3 matrix.
+
mat< 2, 2, int, highp > highp_imat2
High-qualifier signed integer 2x2 matrix.
+
mediump_umat2 umat2
Unsigned integer 2x2 matrix.
+
mat< 3, 4, uint, lowp > lowp_umat3x4
Low-qualifier unsigned integer 3x4 matrix.
+
mat< 4, 2, uint, mediump > mediump_umat4x2
Medium-qualifier unsigned integer 4x2 matrix.
+
mediump_imat4x2 imat4x2
Signed integer 4x2 matrix.
+
mat< 2, 3, int, mediump > mediump_imat2x3
Medium-qualifier signed integer 2x3 matrix.
+
mat< 2, 2, uint, mediump > mediump_umat2
Medium-qualifier unsigned integer 2x2 matrix.
+
mediump_imat2 imat2
Signed integer 2x2 matrix.
+
mat< 4, 3, uint, mediump > mediump_umat4x3
Medium-qualifier unsigned integer 4x3 matrix.
+
mat< 3, 3, int, mediump > mediump_imat3
Medium-qualifier signed integer 3x3 matrix.
+
mat< 2, 2, uint, highp > highp_umat2
High-qualifier unsigned integer 2x2 matrix.
+
mediump_imat3x4 imat3x4
Signed integer 3x4 matrix.
+
mat< 3, 2, uint, highp > highp_umat3x2
High-qualifier unsigned integer 3x2 matrix.
+
mat< 2, 2, int, highp > highp_imat2x2
High-qualifier signed integer 2x2 matrix.
+
mat< 3, 4, uint, highp > highp_umat3x4
High-qualifier unsigned integer 3x4 matrix.
+
mat< 3, 3, int, mediump > mediump_imat3x3
Medium-qualifier signed integer 3x3 matrix.
+
mat< 4, 4, uint, highp > highp_umat4x4
High-qualifier unsigned integer 4x4 matrix.
+
mediump_imat2x4 imat2x4
Signed integer 2x4 matrix.
+
mediump_umat2x4 umat2x4
Unsigned integer 2x4 matrix.
+
mat< 2, 4, int, mediump > mediump_imat2x4
Medium-qualifier signed integer 2x4 matrix.
+
mat< 2, 2, int, lowp > lowp_imat2
Low-qualifier signed integer 2x2 matrix.
+
mat< 4, 2, int, lowp > lowp_imat4x2
Low-qualifier signed integer 4x2 matrix.
+
mat< 4, 3, uint, lowp > lowp_umat4x3
Low-qualifier unsigned integer 4x3 matrix.
+
mediump_imat4 imat4
Signed integer 4x4 matrix.
+
mediump_imat3x2 imat3x2
Signed integer 3x2 matrix.
+
mat< 2, 3, uint, lowp > lowp_umat2x3
Low-qualifier unsigned integer 2x3 matrix.
+
mat< 3, 2, int, mediump > mediump_imat3x2
Medium-qualifier signed integer 3x2 matrix.
+
mediump_umat4x4 umat4x4
Unsigned integer 4x4 matrix.
+
mat< 4, 3, int, highp > highp_imat4x3
High-qualifier signed integer 4x3 matrix.
+
mediump_umat4x3 umat4x3
Unsigned integer 4x3 matrix.
+
mat< 4, 2, uint, lowp > lowp_umat4x2
Low-qualifier unsigned integer 4x2 matrix.
+
mat< 3, 2, uint, lowp > lowp_umat3x2
Low-qualifier unsigned integer 3x2 matrix.
+
mat< 2, 2, uint, highp > highp_umat2x2
High-qualifier unsigned integer 2x2 matrix.
+
mat< 3, 3, int, lowp > lowp_imat3x3
Low-qualifier signed integer 3x3 matrix.
+
mat< 3, 3, int, highp > highp_imat3x3
High-qualifier signed integer 3x3 matrix.
+
mat< 2, 3, uint, mediump > mediump_umat2x3
Medium-qualifier unsigned integer 2x3 matrix.
+
mat< 4, 2, uint, highp > highp_umat4x2
High-qualifier unsigned integer 4x2 matrix.
+
mat< 3, 3, uint, lowp > lowp_umat3x3
Low-qualifier unsigned integer 3x3 matrix.
+
mediump_imat2x3 imat2x3
Signed integer 2x3 matrix.
+
mat< 2, 3, int, lowp > lowp_imat2x3
Low-qualifier signed integer 2x3 matrix.
+
mat< 4, 4, uint, highp > highp_umat4
High-qualifier unsigned integer 4x4 matrix.
+
mat< 3, 3, int, highp > highp_imat3
High-qualifier signed integer 3x3 matrix.
+
mat< 3, 3, uint, mediump > mediump_umat3
Medium-qualifier unsigned integer 3x3 matrix.
+
mat< 2, 2, int, mediump > mediump_imat2x2
Medium-qualifier signed integer 2x2 matrix.
+
mat< 2, 3, int, highp > highp_imat2x3
High-qualifier signed integer 2x3 matrix.
+
mat< 4, 2, int, highp > highp_imat4x2
High-qualifier signed integer 4x2 matrix.
+
mat< 3, 4, int, lowp > lowp_imat3x4
Low-qualifier signed integer 3x4 matrix.
+
mediump_umat3 umat3
Unsigned integer 3x3 matrix.
+
mat< 2, 2, int, lowp > lowp_imat2x2
Low-qualifier signed integer 2x2 matrix.
+
mat< 2, 3, uint, highp > highp_umat2x3
High-qualifier unsigned integer 2x3 matrix.
+
mat< 4, 4, int, highp > highp_imat4
High-qualifier signed integer 4x4 matrix.
+
mat< 2, 4, int, lowp > lowp_imat2x4
Low-qualifier signed integer 2x4 matrix.
+
mat< 3, 4, int, mediump > mediump_imat3x4
Medium-qualifier signed integer 3x4 matrix.
+
mat< 4, 4, int, mediump > mediump_imat4x4
Medium-qualifier signed integer 4x4 matrix.
+
mat< 4, 4, int, mediump > mediump_imat4
Medium-qualifier signed integer 4x4 matrix.
+
mediump_imat3x3 imat3x3
Signed integer 3x3 matrix.
+
mat< 3, 3, int, lowp > lowp_imat3
Low-qualifier signed integer 3x3 matrix.
+
mat< 2, 2, uint, lowp > lowp_umat2
Low-qualifier unsigned integer 2x2 matrix.
+
mat< 4, 3, uint, highp > highp_umat4x3
High-qualifier unsigned integer 4x3 matrix.
+
mediump_umat2x2 umat2x2
Unsigned integer 2x2 matrix.
+
mat< 4, 4, uint, mediump > mediump_umat4
Medium-qualifier unsigned integer 4x4 matrix.
+
mat< 4, 4, int, lowp > lowp_imat4
Low-qualifier signed integer 4x4 matrix.
+
mediump_umat3x4 umat3x4
Unsigned integer 3x4 matrix.
+
mat< 3, 4, int, highp > highp_imat3x4
High-qualifier signed integer 3x4 matrix.
+
mat< 2, 2, uint, mediump > mediump_umat2x2
Medium-qualifier unsigned integer 2x2 matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00101.html b/external/include/glm-0.9.9.8/doc/api/a00101.html index 59352ab639..b19e56e14f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00101.html +++ b/external/include/glm-0.9.9.8/doc/api/a00101.html @@ -1,132 +1,132 @@ - - - - - - -0.9.9 API documentation: matrix_interpolation.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_interpolation.hpp File Reference
-
-
- -

GLM_GTX_matrix_interpolation -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL void axisAngle (mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
 Get the axis and angle of the rotation from a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix (vec< 3, T, Q > const &Axis, T const Angle)
 Build a matrix from axis and angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation (mat< 4, 4, T, Q > const &Mat)
 Extracts the rotation part of a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate (mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
 Build a interpolation of 4 * 4 matrixes. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_interpolation.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_interpolation.hpp File Reference
+
+
+ +

GLM_GTX_matrix_interpolation +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL void axisAngle (mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
 Get the axis and angle of the rotation from a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix (vec< 3, T, Q > const &Axis, T const Angle)
 Build a matrix from axis and angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation (mat< 4, 4, T, Q > const &Mat)
 Extracts the rotation part of a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate (mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
 Build a interpolation of 4 * 4 matrixes. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00101_source.html b/external/include/glm-0.9.9.8/doc/api/a00101_source.html index cb798594fe..a7d92b04d7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00101_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00101_source.html @@ -1,140 +1,140 @@ - - - - - - -0.9.9 API documentation: matrix_interpolation.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_interpolation.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename T, qualifier Q>
-
35  GLM_FUNC_DECL void axisAngle(
-
36  mat<4, 4, T, Q> const& Mat, vec<3, T, Q> & Axis, T & Angle);
-
37 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL mat<4, 4, T, Q> axisAngleMatrix(
-
42  vec<3, T, Q> const& Axis, T const Angle);
-
43 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL mat<4, 4, T, Q> extractMatrixRotation(
-
48  mat<4, 4, T, Q> const& Mat);
-
49 
-
53  template<typename T, qualifier Q>
-
54  GLM_FUNC_DECL mat<4, 4, T, Q> interpolate(
-
55  mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2, T const Delta);
-
56 
-
58 }//namespace glm
-
59 
-
60 #include "matrix_interpolation.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation(mat< 4, 4, T, Q > const &Mat)
Extracts the rotation part of a matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate(mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
Build a interpolation of 4 * 4 matrixes.
-
GLM_FUNC_DECL void axisAngle(mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
Get the axis and angle of the rotation from a matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix(vec< 3, T, Q > const &Axis, T const Angle)
Build a matrix from axis and angle.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_interpolation.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_interpolation.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename T, qualifier Q>
+
35  GLM_FUNC_DECL void axisAngle(
+
36  mat<4, 4, T, Q> const& Mat, vec<3, T, Q> & Axis, T & Angle);
+
37 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL mat<4, 4, T, Q> axisAngleMatrix(
+
42  vec<3, T, Q> const& Axis, T const Angle);
+
43 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL mat<4, 4, T, Q> extractMatrixRotation(
+
48  mat<4, 4, T, Q> const& Mat);
+
49 
+
53  template<typename T, qualifier Q>
+
54  GLM_FUNC_DECL mat<4, 4, T, Q> interpolate(
+
55  mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2, T const Delta);
+
56 
+
58 }//namespace glm
+
59 
+
60 #include "matrix_interpolation.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation(mat< 4, 4, T, Q > const &Mat)
Extracts the rotation part of a matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate(mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
Build a interpolation of 4 * 4 matrixes.
+
GLM_FUNC_DECL void axisAngle(mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
Get the axis and angle of the rotation from a matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix(vec< 3, T, Q > const &Axis, T const Angle)
Build a matrix from axis and angle.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00102.html b/external/include/glm-0.9.9.8/doc/api/a00102.html index ddd4ae0b88..598e69b170 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00102.html +++ b/external/include/glm-0.9.9.8/doc/api/a00102.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: matrix_inverse.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_inverse.hpp File Reference
-
-
- -

GLM_GTC_matrix_inverse -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 Fast matrix inverse for affine matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 Compute the inverse transpose of a matrix. More...
 
-

Detailed Description

-

GLM_GTC_matrix_inverse

-
See also
Core features (dependence)
- -

Definition in file matrix_inverse.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_inverse.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_inverse.hpp File Reference
+
+
+ +

GLM_GTC_matrix_inverse +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 Fast matrix inverse for affine matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 Compute the inverse transpose of a matrix. More...
 
+

Detailed Description

+

GLM_GTC_matrix_inverse

+
See also
Core features (dependence)
+ +

Definition in file matrix_inverse.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00102_source.html b/external/include/glm-0.9.9.8/doc/api/a00102_source.html index dca059ec7d..544d88ea8b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00102_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00102_source.html @@ -1,128 +1,128 @@ - - - - - - -0.9.9 API documentation: matrix_inverse.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_inverse.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../detail/setup.hpp"
-
17 #include "../matrix.hpp"
-
18 #include "../mat2x2.hpp"
-
19 #include "../mat3x3.hpp"
-
20 #include "../mat4x4.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
36  template<typename genType>
-
37  GLM_FUNC_DECL genType affineInverse(genType const& m);
-
38 
-
44  template<typename genType>
-
45  GLM_FUNC_DECL genType inverseTranspose(genType const& m);
-
46 
-
48 }//namespace glm
-
49 
-
50 #include "matrix_inverse.inl"
-
GLM_FUNC_DECL genType inverseTranspose(genType const &m)
Compute the inverse transpose of a matrix.
-
GLM_FUNC_DECL genType affineInverse(genType const &m)
Fast matrix inverse for affine matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_inverse.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_inverse.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../detail/setup.hpp"
+
17 #include "../matrix.hpp"
+
18 #include "../mat2x2.hpp"
+
19 #include "../mat3x3.hpp"
+
20 #include "../mat4x4.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
36  template<typename genType>
+
37  GLM_FUNC_DECL genType affineInverse(genType const& m);
+
38 
+
44  template<typename genType>
+
45  GLM_FUNC_DECL genType inverseTranspose(genType const& m);
+
46 
+
48 }//namespace glm
+
49 
+
50 #include "matrix_inverse.inl"
+
GLM_FUNC_DECL genType inverseTranspose(genType const &m)
Compute the inverse transpose of a matrix.
+
GLM_FUNC_DECL genType affineInverse(genType const &m)
Fast matrix inverse for affine matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00103.html b/external/include/glm-0.9.9.8/doc/api/a00103.html index df4e8a2a62..b200c30c62 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00103.html +++ b/external/include/glm-0.9.9.8/doc/api/a00103.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: matrix_major_storage.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_major_storage.hpp File Reference
-
-
- -

GLM_GTX_matrix_major_storage -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (mat< 2, 2, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (mat< 3, 3, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (mat< 4, 4, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (mat< 2, 2, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (mat< 3, 3, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (mat< 4, 4, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
-

Detailed Description

-

GLM_GTX_matrix_major_storage

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file matrix_major_storage.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_major_storage.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_major_storage.hpp File Reference
+
+
+ +

GLM_GTX_matrix_major_storage +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (mat< 2, 2, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (mat< 3, 3, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (mat< 4, 4, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (mat< 2, 2, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (mat< 3, 3, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (mat< 4, 4, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
+

Detailed Description

+

GLM_GTX_matrix_major_storage

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file matrix_major_storage.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00103_source.html b/external/include/glm-0.9.9.8/doc/api/a00103_source.html index df95a072a6..9ec9278efb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00103_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00103_source.html @@ -1,186 +1,186 @@ - - - - - - -0.9.9 API documentation: matrix_major_storage.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_major_storage.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename T, qualifier Q>
-
35  GLM_FUNC_DECL mat<2, 2, T, Q> rowMajor2(
-
36  vec<2, T, Q> const& v1,
-
37  vec<2, T, Q> const& v2);
-
38 
-
41  template<typename T, qualifier Q>
-
42  GLM_FUNC_DECL mat<2, 2, T, Q> rowMajor2(
-
43  mat<2, 2, T, Q> const& m);
-
44 
-
47  template<typename T, qualifier Q>
-
48  GLM_FUNC_DECL mat<3, 3, T, Q> rowMajor3(
-
49  vec<3, T, Q> const& v1,
-
50  vec<3, T, Q> const& v2,
-
51  vec<3, T, Q> const& v3);
-
52 
-
55  template<typename T, qualifier Q>
-
56  GLM_FUNC_DECL mat<3, 3, T, Q> rowMajor3(
-
57  mat<3, 3, T, Q> const& m);
-
58 
-
61  template<typename T, qualifier Q>
-
62  GLM_FUNC_DECL mat<4, 4, T, Q> rowMajor4(
-
63  vec<4, T, Q> const& v1,
-
64  vec<4, T, Q> const& v2,
-
65  vec<4, T, Q> const& v3,
-
66  vec<4, T, Q> const& v4);
-
67 
-
70  template<typename T, qualifier Q>
-
71  GLM_FUNC_DECL mat<4, 4, T, Q> rowMajor4(
-
72  mat<4, 4, T, Q> const& m);
-
73 
-
76  template<typename T, qualifier Q>
-
77  GLM_FUNC_DECL mat<2, 2, T, Q> colMajor2(
-
78  vec<2, T, Q> const& v1,
-
79  vec<2, T, Q> const& v2);
-
80 
-
83  template<typename T, qualifier Q>
-
84  GLM_FUNC_DECL mat<2, 2, T, Q> colMajor2(
-
85  mat<2, 2, T, Q> const& m);
-
86 
-
89  template<typename T, qualifier Q>
-
90  GLM_FUNC_DECL mat<3, 3, T, Q> colMajor3(
-
91  vec<3, T, Q> const& v1,
-
92  vec<3, T, Q> const& v2,
-
93  vec<3, T, Q> const& v3);
-
94 
-
97  template<typename T, qualifier Q>
-
98  GLM_FUNC_DECL mat<3, 3, T, Q> colMajor3(
-
99  mat<3, 3, T, Q> const& m);
-
100 
-
103  template<typename T, qualifier Q>
-
104  GLM_FUNC_DECL mat<4, 4, T, Q> colMajor4(
-
105  vec<4, T, Q> const& v1,
-
106  vec<4, T, Q> const& v2,
-
107  vec<4, T, Q> const& v3,
-
108  vec<4, T, Q> const& v4);
-
109 
-
112  template<typename T, qualifier Q>
-
113  GLM_FUNC_DECL mat<4, 4, T, Q> colMajor4(
-
114  mat<4, 4, T, Q> const& m);
-
115 
-
117 }//namespace glm
-
118 
-
119 #include "matrix_major_storage.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4(mat< 4, 4, T, Q > const &m)
Build a row major matrix from other matrix.
-
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2(mat< 2, 2, T, Q > const &m)
Build a row major matrix from other matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4(mat< 4, 4, T, Q > const &m)
Build a column major matrix from other matrix.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3(mat< 3, 3, T, Q > const &m)
Build a column major matrix from other matrix.
-
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2(mat< 2, 2, T, Q > const &m)
Build a column major matrix from other matrix.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3(mat< 3, 3, T, Q > const &m)
Build a row major matrix from other matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_major_storage.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_major_storage.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename T, qualifier Q>
+
35  GLM_FUNC_DECL mat<2, 2, T, Q> rowMajor2(
+
36  vec<2, T, Q> const& v1,
+
37  vec<2, T, Q> const& v2);
+
38 
+
41  template<typename T, qualifier Q>
+
42  GLM_FUNC_DECL mat<2, 2, T, Q> rowMajor2(
+
43  mat<2, 2, T, Q> const& m);
+
44 
+
47  template<typename T, qualifier Q>
+
48  GLM_FUNC_DECL mat<3, 3, T, Q> rowMajor3(
+
49  vec<3, T, Q> const& v1,
+
50  vec<3, T, Q> const& v2,
+
51  vec<3, T, Q> const& v3);
+
52 
+
55  template<typename T, qualifier Q>
+
56  GLM_FUNC_DECL mat<3, 3, T, Q> rowMajor3(
+
57  mat<3, 3, T, Q> const& m);
+
58 
+
61  template<typename T, qualifier Q>
+
62  GLM_FUNC_DECL mat<4, 4, T, Q> rowMajor4(
+
63  vec<4, T, Q> const& v1,
+
64  vec<4, T, Q> const& v2,
+
65  vec<4, T, Q> const& v3,
+
66  vec<4, T, Q> const& v4);
+
67 
+
70  template<typename T, qualifier Q>
+
71  GLM_FUNC_DECL mat<4, 4, T, Q> rowMajor4(
+
72  mat<4, 4, T, Q> const& m);
+
73 
+
76  template<typename T, qualifier Q>
+
77  GLM_FUNC_DECL mat<2, 2, T, Q> colMajor2(
+
78  vec<2, T, Q> const& v1,
+
79  vec<2, T, Q> const& v2);
+
80 
+
83  template<typename T, qualifier Q>
+
84  GLM_FUNC_DECL mat<2, 2, T, Q> colMajor2(
+
85  mat<2, 2, T, Q> const& m);
+
86 
+
89  template<typename T, qualifier Q>
+
90  GLM_FUNC_DECL mat<3, 3, T, Q> colMajor3(
+
91  vec<3, T, Q> const& v1,
+
92  vec<3, T, Q> const& v2,
+
93  vec<3, T, Q> const& v3);
+
94 
+
97  template<typename T, qualifier Q>
+
98  GLM_FUNC_DECL mat<3, 3, T, Q> colMajor3(
+
99  mat<3, 3, T, Q> const& m);
+
100 
+
103  template<typename T, qualifier Q>
+
104  GLM_FUNC_DECL mat<4, 4, T, Q> colMajor4(
+
105  vec<4, T, Q> const& v1,
+
106  vec<4, T, Q> const& v2,
+
107  vec<4, T, Q> const& v3,
+
108  vec<4, T, Q> const& v4);
+
109 
+
112  template<typename T, qualifier Q>
+
113  GLM_FUNC_DECL mat<4, 4, T, Q> colMajor4(
+
114  mat<4, 4, T, Q> const& m);
+
115 
+
117 }//namespace glm
+
118 
+
119 #include "matrix_major_storage.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4(mat< 4, 4, T, Q > const &m)
Build a row major matrix from other matrix.
+
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2(mat< 2, 2, T, Q > const &m)
Build a row major matrix from other matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4(mat< 4, 4, T, Q > const &m)
Build a column major matrix from other matrix.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3(mat< 3, 3, T, Q > const &m)
Build a column major matrix from other matrix.
+
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2(mat< 2, 2, T, Q > const &m)
Build a column major matrix from other matrix.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3(mat< 3, 3, T, Q > const &m)
Build a row major matrix from other matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00104.html b/external/include/glm-0.9.9.8/doc/api/a00104.html index 4dca33cba7..63ceeba02a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00104.html +++ b/external/include/glm-0.9.9.8/doc/api/a00104.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: matrix_operation.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_operation.hpp File Reference
-
-
- -

GLM_GTX_matrix_operation -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > adjugate (mat< 2, 2, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > adjugate (mat< 3, 3, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate (mat< 4, 4, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4 (vec< 4, T, Q > const &v)
 Build a diagonal matrix. More...
 
-

Detailed Description

-

GLM_GTX_matrix_operation

-
See also
Core features (dependence)
- -

Definition in file matrix_operation.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_operation.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_operation.hpp File Reference
+
+
+ +

GLM_GTX_matrix_operation +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > adjugate (mat< 2, 2, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > adjugate (mat< 3, 3, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate (mat< 4, 4, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4 (vec< 4, T, Q > const &v)
 Build a diagonal matrix. More...
 
+

Detailed Description

+

GLM_GTX_matrix_operation

+
See also
Core features (dependence)
+ +

Definition in file matrix_operation.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00104_source.html b/external/include/glm-0.9.9.8/doc/api/a00104_source.html index 1b67a0a66f..9f987b5d3b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00104_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00104_source.html @@ -1,175 +1,175 @@ - - - - - - -0.9.9 API documentation: matrix_operation.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_operation.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
33  template<typename T, qualifier Q>
-
34  GLM_FUNC_DECL mat<2, 2, T, Q> diagonal2x2(
-
35  vec<2, T, Q> const& v);
-
36 
-
39  template<typename T, qualifier Q>
-
40  GLM_FUNC_DECL mat<2, 3, T, Q> diagonal2x3(
-
41  vec<2, T, Q> const& v);
-
42 
-
45  template<typename T, qualifier Q>
-
46  GLM_FUNC_DECL mat<2, 4, T, Q> diagonal2x4(
-
47  vec<2, T, Q> const& v);
-
48 
-
51  template<typename T, qualifier Q>
-
52  GLM_FUNC_DECL mat<3, 2, T, Q> diagonal3x2(
-
53  vec<2, T, Q> const& v);
-
54 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL mat<3, 3, T, Q> diagonal3x3(
-
59  vec<3, T, Q> const& v);
-
60 
-
63  template<typename T, qualifier Q>
-
64  GLM_FUNC_DECL mat<3, 4, T, Q> diagonal3x4(
-
65  vec<3, T, Q> const& v);
-
66 
-
69  template<typename T, qualifier Q>
-
70  GLM_FUNC_DECL mat<4, 2, T, Q> diagonal4x2(
-
71  vec<2, T, Q> const& v);
-
72 
-
75  template<typename T, qualifier Q>
-
76  GLM_FUNC_DECL mat<4, 3, T, Q> diagonal4x3(
-
77  vec<3, T, Q> const& v);
-
78 
-
81  template<typename T, qualifier Q>
-
82  GLM_FUNC_DECL mat<4, 4, T, Q> diagonal4x4(
-
83  vec<4, T, Q> const& v);
-
84 
-
87  template<typename T, qualifier Q>
-
88  GLM_FUNC_DECL mat<2, 2, T, Q> adjugate(mat<2, 2, T, Q> const& m);
-
89 
-
92  template<typename T, qualifier Q>
-
93  GLM_FUNC_DECL mat<3, 3, T, Q> adjugate(mat<3, 3, T, Q> const& m);
-
94 
-
97  template<typename T, qualifier Q>
-
98  GLM_FUNC_DECL mat<4, 4, T, Q> adjugate(mat<4, 4, T, Q> const& m);
-
99 
-
101 }//namespace glm
-
102 
-
103 #include "matrix_operation.inl"
-
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3(vec< 3, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4(vec< 3, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3(vec< 2, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3(vec< 3, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate(mat< 4, 4, T, Q > const &m)
Build an adjugate matrix.
-
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4(vec< 2, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4(vec< 4, T, Q > const &v)
Build a diagonal matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_operation.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_operation.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_matrix_operation extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
33  template<typename T, qualifier Q>
+
34  GLM_FUNC_DECL mat<2, 2, T, Q> diagonal2x2(
+
35  vec<2, T, Q> const& v);
+
36 
+
39  template<typename T, qualifier Q>
+
40  GLM_FUNC_DECL mat<2, 3, T, Q> diagonal2x3(
+
41  vec<2, T, Q> const& v);
+
42 
+
45  template<typename T, qualifier Q>
+
46  GLM_FUNC_DECL mat<2, 4, T, Q> diagonal2x4(
+
47  vec<2, T, Q> const& v);
+
48 
+
51  template<typename T, qualifier Q>
+
52  GLM_FUNC_DECL mat<3, 2, T, Q> diagonal3x2(
+
53  vec<2, T, Q> const& v);
+
54 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL mat<3, 3, T, Q> diagonal3x3(
+
59  vec<3, T, Q> const& v);
+
60 
+
63  template<typename T, qualifier Q>
+
64  GLM_FUNC_DECL mat<3, 4, T, Q> diagonal3x4(
+
65  vec<3, T, Q> const& v);
+
66 
+
69  template<typename T, qualifier Q>
+
70  GLM_FUNC_DECL mat<4, 2, T, Q> diagonal4x2(
+
71  vec<2, T, Q> const& v);
+
72 
+
75  template<typename T, qualifier Q>
+
76  GLM_FUNC_DECL mat<4, 3, T, Q> diagonal4x3(
+
77  vec<3, T, Q> const& v);
+
78 
+
81  template<typename T, qualifier Q>
+
82  GLM_FUNC_DECL mat<4, 4, T, Q> diagonal4x4(
+
83  vec<4, T, Q> const& v);
+
84 
+
87  template<typename T, qualifier Q>
+
88  GLM_FUNC_DECL mat<2, 2, T, Q> adjugate(mat<2, 2, T, Q> const& m);
+
89 
+
92  template<typename T, qualifier Q>
+
93  GLM_FUNC_DECL mat<3, 3, T, Q> adjugate(mat<3, 3, T, Q> const& m);
+
94 
+
97  template<typename T, qualifier Q>
+
98  GLM_FUNC_DECL mat<4, 4, T, Q> adjugate(mat<4, 4, T, Q> const& m);
+
99 
+
101 }//namespace glm
+
102 
+
103 #include "matrix_operation.inl"
+
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3(vec< 3, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4(vec< 3, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3(vec< 2, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3(vec< 3, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate(mat< 4, 4, T, Q > const &m)
Build an adjugate matrix.
+
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4(vec< 2, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4(vec< 4, T, Q > const &v)
Build a diagonal matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00105.html b/external/include/glm-0.9.9.8/doc/api/a00105.html index 66c6e59ec8..0c941e148a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00105.html +++ b/external/include/glm-0.9.9.8/doc/api/a00105.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: matrix_projection.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_projection.hpp File Reference
-
-
- -

GLM_EXT_matrix_projection -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q, typename U >
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix (vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
 Define a picking region. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > project (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectNO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectZO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProject (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_projection.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_projection.hpp File Reference
+
+
+ +

GLM_EXT_matrix_projection +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q, typename U >
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix (vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
 Define a picking region. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > project (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectNO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectZO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProject (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00105_source.html b/external/include/glm-0.9.9.8/doc/api/a00105_source.html index 7c597258ea..d4dd197a4f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00105_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00105_source.html @@ -1,155 +1,155 @@ - - - - - - -0.9.9 API documentation: matrix_projection.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_projection.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependencies
-
23 #include "../gtc/constants.hpp"
-
24 #include "../geometric.hpp"
-
25 #include "../trigonometric.hpp"
-
26 #include "../matrix.hpp"
-
27 
-
28 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
29 # pragma message("GLM: GLM_EXT_matrix_projection extension included")
-
30 #endif
-
31 
-
32 namespace glm
-
33 {
-
36 
-
49  template<typename T, typename U, qualifier Q>
-
50  GLM_FUNC_DECL vec<3, T, Q> projectZO(
-
51  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
52 
-
65  template<typename T, typename U, qualifier Q>
-
66  GLM_FUNC_DECL vec<3, T, Q> projectNO(
-
67  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
68 
-
81  template<typename T, typename U, qualifier Q>
-
82  GLM_FUNC_DECL vec<3, T, Q> project(
-
83  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
84 
-
97  template<typename T, typename U, qualifier Q>
-
98  GLM_FUNC_DECL vec<3, T, Q> unProjectZO(
-
99  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
100 
-
113  template<typename T, typename U, qualifier Q>
-
114  GLM_FUNC_DECL vec<3, T, Q> unProjectNO(
-
115  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
116 
-
129  template<typename T, typename U, qualifier Q>
-
130  GLM_FUNC_DECL vec<3, T, Q> unProject(
-
131  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
-
132 
-
142  template<typename T, qualifier Q, typename U>
-
143  GLM_FUNC_DECL mat<4, 4, T, Q> pickMatrix(
-
144  vec<2, T, Q> const& center, vec<2, T, Q> const& delta, vec<4, U, Q> const& viewport);
-
145 
-
147 }//namespace glm
-
148 
-
149 #include "matrix_projection.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
-
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Projects x on Normal.
-
GLM_FUNC_DECL vec< 3, T, Q > projectZO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
-
GLM_FUNC_DECL vec< 3, T, Q > projectNO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
-
GLM_FUNC_DECL vec< 3, T, Q > project(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near...
-
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
-
GLM_FUNC_DECL vec< 3, T, Q > unProject(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near...
-
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix(vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
Define a picking region.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_projection.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_projection.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependencies
+
23 #include "../gtc/constants.hpp"
+
24 #include "../geometric.hpp"
+
25 #include "../trigonometric.hpp"
+
26 #include "../matrix.hpp"
+
27 
+
28 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
29 # pragma message("GLM: GLM_EXT_matrix_projection extension included")
+
30 #endif
+
31 
+
32 namespace glm
+
33 {
+
36 
+
49  template<typename T, typename U, qualifier Q>
+
50  GLM_FUNC_DECL vec<3, T, Q> projectZO(
+
51  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
52 
+
65  template<typename T, typename U, qualifier Q>
+
66  GLM_FUNC_DECL vec<3, T, Q> projectNO(
+
67  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
68 
+
81  template<typename T, typename U, qualifier Q>
+
82  GLM_FUNC_DECL vec<3, T, Q> project(
+
83  vec<3, T, Q> const& obj, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
84 
+
97  template<typename T, typename U, qualifier Q>
+
98  GLM_FUNC_DECL vec<3, T, Q> unProjectZO(
+
99  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
100 
+
113  template<typename T, typename U, qualifier Q>
+
114  GLM_FUNC_DECL vec<3, T, Q> unProjectNO(
+
115  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
116 
+
129  template<typename T, typename U, qualifier Q>
+
130  GLM_FUNC_DECL vec<3, T, Q> unProject(
+
131  vec<3, T, Q> const& win, mat<4, 4, T, Q> const& model, mat<4, 4, T, Q> const& proj, vec<4, U, Q> const& viewport);
+
132 
+
142  template<typename T, qualifier Q, typename U>
+
143  GLM_FUNC_DECL mat<4, 4, T, Q> pickMatrix(
+
144  vec<2, T, Q> const& center, vec<2, T, Q> const& delta, vec<4, U, Q> const& viewport);
+
145 
+
147 }//namespace glm
+
148 
+
149 #include "matrix_projection.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
+
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Projects x on Normal.
+
GLM_FUNC_DECL vec< 3, T, Q > projectZO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
+
GLM_FUNC_DECL vec< 3, T, Q > projectNO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
+
GLM_FUNC_DECL vec< 3, T, Q > project(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near...
+
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
+
GLM_FUNC_DECL vec< 3, T, Q > unProject(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near...
+
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix(vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
Define a picking region.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00106.html b/external/include/glm-0.9.9.8/doc/api/a00106.html index ffc5c9bdce..7abe607910 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00106.html +++ b/external/include/glm-0.9.9.8/doc/api/a00106.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: matrix_query.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_query.hpp File Reference
-
-
- -

GLM_GTX_matrix_query -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isIdentity (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an identity matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a null matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an orthonormalized matrix. More...
 
-

Detailed Description

-

GLM_GTX_matrix_query

-
See also
Core features (dependence)
-
-GLM_GTX_vector_query (dependence)
- -

Definition in file matrix_query.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_query.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_query.hpp File Reference
+
+
+ +

GLM_GTX_matrix_query +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isIdentity (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an identity matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a null matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an orthonormalized matrix. More...
 
+

Detailed Description

+

GLM_GTX_matrix_query

+
See also
Core features (dependence)
+
+GLM_GTX_vector_query (dependence)
+ +

Definition in file matrix_query.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00106_source.html b/external/include/glm-0.9.9.8/doc/api/a00106_source.html index 25778d916b..06d2d277ec 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00106_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00106_source.html @@ -1,151 +1,151 @@ - - - - - - -0.9.9 API documentation: matrix_query.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_query.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include "../gtx/vector_query.hpp"
-
19 #include <limits>
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_matrix_query extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
36  template<typename T, qualifier Q>
-
37  GLM_FUNC_DECL bool isNull(mat<2, 2, T, Q> const& m, T const& epsilon);
-
38 
-
41  template<typename T, qualifier Q>
-
42  GLM_FUNC_DECL bool isNull(mat<3, 3, T, Q> const& m, T const& epsilon);
-
43 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL bool isNull(mat<4, 4, T, Q> const& m, T const& epsilon);
-
48 
-
51  template<length_t C, length_t R, typename T, qualifier Q, template<length_t, length_t, typename, qualifier> class matType>
-
52  GLM_FUNC_DECL bool isIdentity(matType<C, R, T, Q> const& m, T const& epsilon);
-
53 
-
56  template<typename T, qualifier Q>
-
57  GLM_FUNC_DECL bool isNormalized(mat<2, 2, T, Q> const& m, T const& epsilon);
-
58 
-
61  template<typename T, qualifier Q>
-
62  GLM_FUNC_DECL bool isNormalized(mat<3, 3, T, Q> const& m, T const& epsilon);
-
63 
-
66  template<typename T, qualifier Q>
-
67  GLM_FUNC_DECL bool isNormalized(mat<4, 4, T, Q> const& m, T const& epsilon);
-
68 
-
71  template<length_t C, length_t R, typename T, qualifier Q, template<length_t, length_t, typename, qualifier> class matType>
-
72  GLM_FUNC_DECL bool isOrthogonal(matType<C, R, T, Q> const& m, T const& epsilon);
-
73 
-
75 }//namespace glm
-
76 
-
77 #include "matrix_query.inl"
-
GLM_FUNC_DECL bool isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
-
GLM_FUNC_DECL bool isIdentity(matType< C, R, T, Q > const &m, T const &epsilon)
Return whether a matrix is an identity matrix.
-
GLM_FUNC_DECL bool isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)
Return whether a matrix is a null matrix.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL bool isOrthogonal(matType< C, R, T, Q > const &m, T const &epsilon)
Return whether a matrix is an orthonormalized matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_query.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_query.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include "../gtx/vector_query.hpp"
+
19 #include <limits>
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_matrix_query extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
36  template<typename T, qualifier Q>
+
37  GLM_FUNC_DECL bool isNull(mat<2, 2, T, Q> const& m, T const& epsilon);
+
38 
+
41  template<typename T, qualifier Q>
+
42  GLM_FUNC_DECL bool isNull(mat<3, 3, T, Q> const& m, T const& epsilon);
+
43 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL bool isNull(mat<4, 4, T, Q> const& m, T const& epsilon);
+
48 
+
51  template<length_t C, length_t R, typename T, qualifier Q, template<length_t, length_t, typename, qualifier> class matType>
+
52  GLM_FUNC_DECL bool isIdentity(matType<C, R, T, Q> const& m, T const& epsilon);
+
53 
+
56  template<typename T, qualifier Q>
+
57  GLM_FUNC_DECL bool isNormalized(mat<2, 2, T, Q> const& m, T const& epsilon);
+
58 
+
61  template<typename T, qualifier Q>
+
62  GLM_FUNC_DECL bool isNormalized(mat<3, 3, T, Q> const& m, T const& epsilon);
+
63 
+
66  template<typename T, qualifier Q>
+
67  GLM_FUNC_DECL bool isNormalized(mat<4, 4, T, Q> const& m, T const& epsilon);
+
68 
+
71  template<length_t C, length_t R, typename T, qualifier Q, template<length_t, length_t, typename, qualifier> class matType>
+
72  GLM_FUNC_DECL bool isOrthogonal(matType<C, R, T, Q> const& m, T const& epsilon);
+
73 
+
75 }//namespace glm
+
76 
+
77 #include "matrix_query.inl"
+
GLM_FUNC_DECL bool isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)
Return whether a matrix is a normalized matrix.
+
GLM_FUNC_DECL bool isIdentity(matType< C, R, T, Q > const &m, T const &epsilon)
Return whether a matrix is an identity matrix.
+
GLM_FUNC_DECL bool isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)
Return whether a matrix is a null matrix.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
GLM_FUNC_DECL bool isOrthogonal(matType< C, R, T, Q > const &m, T const &epsilon)
Return whether a matrix is an orthonormalized matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00107.html b/external/include/glm-0.9.9.8/doc/api/a00107.html index 2f011f9b17..8138f88966 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00107.html +++ b/external/include/glm-0.9.9.8/doc/api/a00107.html @@ -1,154 +1,154 @@ - - - - - - -0.9.9 API documentation: matrix_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_relational.hpp File Reference
-
-
- -

GLM_EXT_matrix_relational -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise not-equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_relational.hpp File Reference
+
+
+ +

GLM_EXT_matrix_relational +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise not-equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00107_source.html b/external/include/glm-0.9.9.8/doc/api/a00107_source.html index 884b22ddc4..cf926f33ba 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00107_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00107_source.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: matrix_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependencies
-
18 #include "../detail/qualifier.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # pragma message("GLM: GLM_EXT_matrix_relational extension included")
-
22 #endif
-
23 
-
24 namespace glm
-
25 {
-
28 
-
36  template<length_t C, length_t R, typename T, qualifier Q>
-
37  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
-
38 
-
46  template<length_t C, length_t R, typename T, qualifier Q>
-
47  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
-
48 
-
56  template<length_t C, length_t R, typename T, qualifier Q>
-
57  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, T epsilon);
-
58 
-
66  template<length_t C, length_t R, typename T, qualifier Q>
-
67  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, T, Q> const& epsilon);
-
68 
-
76  template<length_t C, length_t R, typename T, qualifier Q>
-
77  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, T epsilon);
-
78 
-
86  template<length_t C, length_t R, typename T, qualifier Q>
-
87  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, T, Q> const& epsilon);
-
88 
-
96  template<length_t C, length_t R, typename T, qualifier Q>
-
97  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, int ULPs);
-
98 
-
106  template<length_t C, length_t R, typename T, qualifier Q>
-
107  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, int, Q> const& ULPs);
-
108 
-
116  template<length_t C, length_t R, typename T, qualifier Q>
-
117  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, int ULPs);
-
118 
-
126  template<length_t C, length_t R, typename T, qualifier Q>
-
127  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, int, Q> const& ULPs);
-
128 
-
130 }//namespace glm
-
131 
-
132 #include "matrix_relational.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependencies
+
18 #include "../detail/qualifier.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # pragma message("GLM: GLM_EXT_matrix_relational extension included")
+
22 #endif
+
23 
+
24 namespace glm
+
25 {
+
28 
+
36  template<length_t C, length_t R, typename T, qualifier Q>
+
37  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
+
38 
+
46  template<length_t C, length_t R, typename T, qualifier Q>
+
47  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
+
48 
+
56  template<length_t C, length_t R, typename T, qualifier Q>
+
57  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, T epsilon);
+
58 
+
66  template<length_t C, length_t R, typename T, qualifier Q>
+
67  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, T, Q> const& epsilon);
+
68 
+
76  template<length_t C, length_t R, typename T, qualifier Q>
+
77  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, T epsilon);
+
78 
+
86  template<length_t C, length_t R, typename T, qualifier Q>
+
87  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, T, Q> const& epsilon);
+
88 
+
96  template<length_t C, length_t R, typename T, qualifier Q>
+
97  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, int ULPs);
+
98 
+
106  template<length_t C, length_t R, typename T, qualifier Q>
+
107  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> equal(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, int, Q> const& ULPs);
+
108 
+
116  template<length_t C, length_t R, typename T, qualifier Q>
+
117  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, int ULPs);
+
118 
+
126  template<length_t C, length_t R, typename T, qualifier Q>
+
127  GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> notEqual(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y, vec<C, int, Q> const& ULPs);
+
128 
+
130 }//namespace glm
+
131 
+
132 #include "matrix_relational.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00108.html b/external/include/glm-0.9.9.8/doc/api/a00108.html index b91ec520c5..1f1f83dade 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00108.html +++ b/external/include/glm-0.9.9.8/doc/api/a00108.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: matrix_transform.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ext/matrix_transform.hpp File Reference
-
-
- -

GLM_EXT_matrix_transform -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType identity ()
 Builds an identity matrix.
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a look at view matrix based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a left handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a right handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from an axis vector and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a scale 4 * 4 matrix created from 3 scalars. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a translation 4 * 4 matrix created from a vector of 3 components. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: matrix_transform.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ext/matrix_transform.hpp File Reference
+
+
+ +

GLM_EXT_matrix_transform +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType identity ()
 Builds an identity matrix.
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a look at view matrix based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a left handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a right handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from an axis vector and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a scale 4 * 4 matrix created from 3 scalars. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a translation 4 * 4 matrix created from a vector of 3 components. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00108_source.html b/external/include/glm-0.9.9.8/doc/api/a00108_source.html index 9381d5fbb9..2098420afe 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00108_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00108_source.html @@ -1,155 +1,155 @@ - - - - - - -0.9.9 API documentation: matrix_transform.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ext/matrix_transform.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependencies
-
23 #include "../gtc/constants.hpp"
-
24 #include "../geometric.hpp"
-
25 #include "../trigonometric.hpp"
-
26 #include "../matrix.hpp"
-
27 
-
28 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
29 # pragma message("GLM: GLM_EXT_matrix_transform extension included")
-
30 #endif
-
31 
-
32 namespace glm
-
33 {
-
36 
-
38  template<typename genType>
-
39  GLM_FUNC_DECL GLM_CONSTEXPR genType identity();
-
40 
-
63  template<typename T, qualifier Q>
-
64  GLM_FUNC_DECL mat<4, 4, T, Q> translate(
-
65  mat<4, 4, T, Q> const& m, vec<3, T, Q> const& v);
-
66 
-
79  template<typename T, qualifier Q>
-
80  GLM_FUNC_DECL mat<4, 4, T, Q> rotate(
-
81  mat<4, 4, T, Q> const& m, T angle, vec<3, T, Q> const& axis);
-
82 
-
94  template<typename T, qualifier Q>
-
95  GLM_FUNC_DECL mat<4, 4, T, Q> scale(
-
96  mat<4, 4, T, Q> const& m, vec<3, T, Q> const& v);
-
97 
-
108  template<typename T, qualifier Q>
-
109  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtRH(
-
110  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
-
111 
-
122  template<typename T, qualifier Q>
-
123  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtLH(
-
124  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
-
125 
-
137  template<typename T, qualifier Q>
-
138  GLM_FUNC_DECL mat<4, 4, T, Q> lookAt(
-
139  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
-
140 
-
142 }//namespace glm
-
143 
-
144 #include "matrix_transform.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a left handed look at view matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a right handed look at view matrix.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType identity()
Builds an identity matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a look at view matrix based on the default handedness.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_transform.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext/matrix_transform.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependencies
+
23 #include "../gtc/constants.hpp"
+
24 #include "../geometric.hpp"
+
25 #include "../trigonometric.hpp"
+
26 #include "../matrix.hpp"
+
27 
+
28 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
29 # pragma message("GLM: GLM_EXT_matrix_transform extension included")
+
30 #endif
+
31 
+
32 namespace glm
+
33 {
+
36 
+
38  template<typename genType>
+
39  GLM_FUNC_DECL GLM_CONSTEXPR genType identity();
+
40 
+
63  template<typename T, qualifier Q>
+
64  GLM_FUNC_DECL mat<4, 4, T, Q> translate(
+
65  mat<4, 4, T, Q> const& m, vec<3, T, Q> const& v);
+
66 
+
79  template<typename T, qualifier Q>
+
80  GLM_FUNC_DECL mat<4, 4, T, Q> rotate(
+
81  mat<4, 4, T, Q> const& m, T angle, vec<3, T, Q> const& axis);
+
82 
+
94  template<typename T, qualifier Q>
+
95  GLM_FUNC_DECL mat<4, 4, T, Q> scale(
+
96  mat<4, 4, T, Q> const& m, vec<3, T, Q> const& v);
+
97 
+
108  template<typename T, qualifier Q>
+
109  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtRH(
+
110  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
+
111 
+
122  template<typename T, qualifier Q>
+
123  GLM_FUNC_DECL mat<4, 4, T, Q> lookAtLH(
+
124  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
+
125 
+
137  template<typename T, qualifier Q>
+
138  GLM_FUNC_DECL mat<4, 4, T, Q> lookAt(
+
139  vec<3, T, Q> const& eye, vec<3, T, Q> const& center, vec<3, T, Q> const& up);
+
140 
+
142 }//namespace glm
+
143 
+
144 #include "matrix_transform.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a left handed look at view matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a right handed look at view matrix.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType identity()
Builds an identity matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt(vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
Build a look at view matrix based on the default handedness.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00109.html b/external/include/glm-0.9.9.8/doc/api/a00109.html index 521bb53c05..e6b7775fb3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00109.html +++ b/external/include/glm-0.9.9.8/doc/api/a00109.html @@ -1,113 +1,113 @@ - - - - - - -0.9.9 API documentation: matrix_transform.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/matrix_transform.hpp File Reference
-
- - - - - + + + + + + +0.9.9 API documentation: matrix_transform.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/matrix_transform.hpp File Reference
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00109_source.html b/external/include/glm-0.9.9.8/doc/api/a00109_source.html index 07e642e719..8922002464 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00109_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00109_source.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: matrix_transform.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/matrix_transform.hpp
-
-
-Go to the documentation of this file.
1 
-
21 #pragma once
-
22 
-
23 // Dependencies
-
24 #include "../mat4x4.hpp"
-
25 #include "../vec2.hpp"
-
26 #include "../vec3.hpp"
-
27 #include "../vec4.hpp"
-
28 #include "../ext/matrix_projection.hpp"
-
29 #include "../ext/matrix_clip_space.hpp"
-
30 #include "../ext/matrix_transform.hpp"
-
31 
-
32 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
33 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
-
34 #endif
-
35 
-
36 #include "matrix_transform.inl"
-
- - - - + + + + + + +0.9.9 API documentation: matrix_transform.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/matrix_transform.hpp
+
+
+Go to the documentation of this file.
1 
+
21 #pragma once
+
22 
+
23 // Dependencies
+
24 #include "../mat4x4.hpp"
+
25 #include "../vec2.hpp"
+
26 #include "../vec3.hpp"
+
27 #include "../vec4.hpp"
+
28 #include "../ext/matrix_projection.hpp"
+
29 #include "../ext/matrix_clip_space.hpp"
+
30 #include "../ext/matrix_transform.hpp"
+
31 
+
32 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
33 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
+
34 #endif
+
35 
+
36 #include "matrix_transform.inl"
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00110.html b/external/include/glm-0.9.9.8/doc/api/a00110.html index f319ef2049..8b3525cdb2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00110.html +++ b/external/include/glm-0.9.9.8/doc/api/a00110.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: matrix_transform_2d.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
matrix_transform_2d.hpp File Reference
-
-
- -

GLM_GTX_matrix_transform_2d -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate (mat< 3, 3, T, Q > const &m, T angle)
 Builds a rotation 3 * 3 matrix created from an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a scale 3 * 3 matrix created from a vector of 2 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX (mat< 3, 3, T, Q > const &m, T y)
 Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY (mat< 3, 3, T, Q > const &m, T x)
 Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a translation 3 * 3 matrix created from a vector of 2 components. More...
 
-

Detailed Description

-

GLM_GTX_matrix_transform_2d

-
Author
Miguel Ángel Pérez Martínez
-
See also
Core features (dependence)
- -

Definition in file matrix_transform_2d.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: matrix_transform_2d.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
matrix_transform_2d.hpp File Reference
+
+
+ +

GLM_GTX_matrix_transform_2d +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate (mat< 3, 3, T, Q > const &m, T angle)
 Builds a rotation 3 * 3 matrix created from an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a scale 3 * 3 matrix created from a vector of 2 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX (mat< 3, 3, T, Q > const &m, T y)
 Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY (mat< 3, 3, T, Q > const &m, T x)
 Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a translation 3 * 3 matrix created from a vector of 2 components. More...
 
+

Detailed Description

+

GLM_GTX_matrix_transform_2d

+
Author
Miguel Ángel Pérez Martínez
+
See also
Core features (dependence)
+ +

Definition in file matrix_transform_2d.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00110_source.html b/external/include/glm-0.9.9.8/doc/api/a00110_source.html index 9e189b01b3..29815147f7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00110_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00110_source.html @@ -1,152 +1,152 @@ - - - - - - -0.9.9 API documentation: matrix_transform_2d.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
matrix_transform_2d.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../mat3x3.hpp"
-
18 #include "../vec2.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
37  template<typename T, qualifier Q>
-
38  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> translate(
-
39  mat<3, 3, T, Q> const& m,
-
40  vec<2, T, Q> const& v);
-
41 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> rotate(
-
48  mat<3, 3, T, Q> const& m,
-
49  T angle);
-
50 
-
55  template<typename T, qualifier Q>
-
56  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> scale(
-
57  mat<3, 3, T, Q> const& m,
-
58  vec<2, T, Q> const& v);
-
59 
-
64  template<typename T, qualifier Q>
-
65  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearX(
-
66  mat<3, 3, T, Q> const& m,
-
67  T y);
-
68 
-
73  template<typename T, qualifier Q>
-
74  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearY(
-
75  mat<3, 3, T, Q> const& m,
-
76  T x);
-
77 
-
79 }//namespace glm
-
80 
-
81 #include "matrix_transform_2d.inl"
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
Builds a translation 3 * 3 matrix created from a vector of 2 components.
-
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate(mat< 3, 3, T, Q > const &m, T angle)
Builds a rotation 3 * 3 matrix created from an angle.
-
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY(mat< 3, 3, T, Q > const &m, T x)
Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.
-
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
Builds a scale 3 * 3 matrix created from a vector of 2 components.
-
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX(mat< 3, 3, T, Q > const &m, T y)
Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: matrix_transform_2d.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
matrix_transform_2d.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../mat3x3.hpp"
+
18 #include "../vec2.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_matrix_transform_2d extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
37  template<typename T, qualifier Q>
+
38  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> translate(
+
39  mat<3, 3, T, Q> const& m,
+
40  vec<2, T, Q> const& v);
+
41 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> rotate(
+
48  mat<3, 3, T, Q> const& m,
+
49  T angle);
+
50 
+
55  template<typename T, qualifier Q>
+
56  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> scale(
+
57  mat<3, 3, T, Q> const& m,
+
58  vec<2, T, Q> const& v);
+
59 
+
64  template<typename T, qualifier Q>
+
65  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearX(
+
66  mat<3, 3, T, Q> const& m,
+
67  T y);
+
68 
+
73  template<typename T, qualifier Q>
+
74  GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearY(
+
75  mat<3, 3, T, Q> const& m,
+
76  T x);
+
77 
+
79 }//namespace glm
+
80 
+
81 #include "matrix_transform_2d.inl"
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
Builds a translation 3 * 3 matrix created from a vector of 2 components.
+
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate(mat< 3, 3, T, Q > const &m, T angle)
Builds a rotation 3 * 3 matrix created from an angle.
+
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY(mat< 3, 3, T, Q > const &m, T x)
Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.
+
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
Builds a scale 3 * 3 matrix created from a vector of 2 components.
+
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX(mat< 3, 3, T, Q > const &m, T y)
Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00111.html b/external/include/glm-0.9.9.8/doc/api/a00111.html index 46c10fa81c..2c8ae4d767 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00111.html +++ b/external/include/glm-0.9.9.8/doc/api/a00111.html @@ -1,120 +1,120 @@ - - - - - - -0.9.9 API documentation: mixed_product.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
mixed_product.hpp File Reference
-
-
- -

GLM_GTX_mixed_producte -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_DECL T mixedProduct (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
 
-

Detailed Description

-

GLM_GTX_mixed_producte

-
See also
Core features (dependence)
- -

Definition in file mixed_product.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: mixed_product.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
mixed_product.hpp File Reference
+
+
+ +

GLM_GTX_mixed_producte +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_DECL T mixedProduct (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
 
+

Detailed Description

+

GLM_GTX_mixed_producte

+
See also
Core features (dependence)
+ +

Definition in file mixed_product.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00111_source.html b/external/include/glm-0.9.9.8/doc/api/a00111_source.html index d1c7ed5d66..e16cba2ea6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00111_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00111_source.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: mixed_product.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
mixed_product.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_mixed_product extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
32  template<typename T, qualifier Q>
-
33  GLM_FUNC_DECL T mixedProduct(
-
34  vec<3, T, Q> const& v1,
-
35  vec<3, T, Q> const& v2,
-
36  vec<3, T, Q> const& v3);
-
37 
-
39 }// namespace glm
-
40 
-
41 #include "mixed_product.inl"
-
GLM_FUNC_DECL T mixedProduct(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: mixed_product.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
mixed_product.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_mixed_product extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
32  template<typename T, qualifier Q>
+
33  GLM_FUNC_DECL T mixedProduct(
+
34  vec<3, T, Q> const& v1,
+
35  vec<3, T, Q> const& v2,
+
36  vec<3, T, Q> const& v3);
+
37 
+
39 }// namespace glm
+
40 
+
41 #include "mixed_product.inl"
+
GLM_FUNC_DECL T mixedProduct(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00112.html b/external/include/glm-0.9.9.8/doc/api/a00112.html index c90ced2073..3aecbc5387 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00112.html +++ b/external/include/glm-0.9.9.8/doc/api/a00112.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: noise.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
noise.hpp File Reference
-
-
- -

GLM_GTC_noise -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p)
 Classic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
 Periodic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T simplex (vec< L, T, Q > const &p)
 Simplex noise. More...
 
-

Detailed Description

-

GLM_GTC_noise

-
See also
Core features (dependence)
- -

Definition in file noise.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: noise.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
noise.hpp File Reference
+
+
+ +

GLM_GTC_noise +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p)
 Classic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
 Periodic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T simplex (vec< L, T, Q > const &p)
 Simplex noise. More...
 
+

Detailed Description

+

GLM_GTC_noise

+
See also
Core features (dependence)
+ +

Definition in file noise.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00112_source.html b/external/include/glm-0.9.9.8/doc/api/a00112_source.html index 053831de9d..fa90c6c3aa 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00112_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00112_source.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: noise.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
noise.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 // Dependencies
-
20 #include "../detail/setup.hpp"
-
21 #include "../detail/qualifier.hpp"
-
22 #include "../detail/_noise.hpp"
-
23 #include "../geometric.hpp"
-
24 #include "../common.hpp"
-
25 #include "../vector_relational.hpp"
-
26 #include "../vec2.hpp"
-
27 #include "../vec3.hpp"
-
28 #include "../vec4.hpp"
-
29 
-
30 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
31 # pragma message("GLM: GLM_GTC_noise extension included")
-
32 #endif
-
33 
-
34 namespace glm
-
35 {
-
38 
-
41  template<length_t L, typename T, qualifier Q>
-
42  GLM_FUNC_DECL T perlin(
-
43  vec<L, T, Q> const& p);
-
44 
-
47  template<length_t L, typename T, qualifier Q>
-
48  GLM_FUNC_DECL T perlin(
-
49  vec<L, T, Q> const& p,
-
50  vec<L, T, Q> const& rep);
-
51 
-
54  template<length_t L, typename T, qualifier Q>
-
55  GLM_FUNC_DECL T simplex(
-
56  vec<L, T, Q> const& p);
-
57 
-
59 }//namespace glm
-
60 
-
61 #include "noise.inl"
-
GLM_FUNC_DECL T simplex(vec< L, T, Q > const &p)
Simplex noise.
-
GLM_FUNC_DECL T perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
Periodic perlin noise.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: noise.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
noise.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 // Dependencies
+
20 #include "../detail/setup.hpp"
+
21 #include "../detail/qualifier.hpp"
+
22 #include "../detail/_noise.hpp"
+
23 #include "../geometric.hpp"
+
24 #include "../common.hpp"
+
25 #include "../vector_relational.hpp"
+
26 #include "../vec2.hpp"
+
27 #include "../vec3.hpp"
+
28 #include "../vec4.hpp"
+
29 
+
30 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
31 # pragma message("GLM: GLM_GTC_noise extension included")
+
32 #endif
+
33 
+
34 namespace glm
+
35 {
+
38 
+
41  template<length_t L, typename T, qualifier Q>
+
42  GLM_FUNC_DECL T perlin(
+
43  vec<L, T, Q> const& p);
+
44 
+
47  template<length_t L, typename T, qualifier Q>
+
48  GLM_FUNC_DECL T perlin(
+
49  vec<L, T, Q> const& p,
+
50  vec<L, T, Q> const& rep);
+
51 
+
54  template<length_t L, typename T, qualifier Q>
+
55  GLM_FUNC_DECL T simplex(
+
56  vec<L, T, Q> const& p);
+
57 
+
59 }//namespace glm
+
60 
+
61 #include "noise.inl"
+
GLM_FUNC_DECL T simplex(vec< L, T, Q > const &p)
Simplex noise.
+
GLM_FUNC_DECL T perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
Periodic perlin noise.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00113.html b/external/include/glm-0.9.9.8/doc/api/a00113.html index ff90f1ea04..764a5bb09d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00113.html +++ b/external/include/glm-0.9.9.8/doc/api/a00113.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: norm.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
norm.hpp File Reference
-
-
- -

GLM_GTX_norm -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance2 (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L1 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &v)
 Returns the L1 norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L2 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x)
 Returns the L2 norm of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length2 (vec< L, T, Q > const &x)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the LMax norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x)
 Returns the LMax norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)
 Returns the L norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, unsigned int Depth)
 Returns the L norm of v. More...
 
-

Detailed Description

-

GLM_GTX_norm

-
See also
Core features (dependence)
-
-GLM_GTX_quaternion (dependence)
-
-GLM_GTX_component_wise (dependence)
- -

Definition in file norm.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: norm.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
norm.hpp File Reference
+
+
+ +

GLM_GTX_norm +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance2 (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L1 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &v)
 Returns the L1 norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L2 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x)
 Returns the L2 norm of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length2 (vec< L, T, Q > const &x)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the LMax norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x)
 Returns the LMax norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)
 Returns the L norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, unsigned int Depth)
 Returns the L norm of v. More...
 
+

Detailed Description

+

GLM_GTX_norm

+
See also
Core features (dependence)
+
+GLM_GTX_quaternion (dependence)
+
+GLM_GTX_component_wise (dependence)
+ +

Definition in file norm.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00113_source.html b/external/include/glm-0.9.9.8/doc/api/a00113_source.html index 3e09cb63ce..190a485701 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00113_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00113_source.html @@ -1,158 +1,158 @@ - - - - - - -0.9.9 API documentation: norm.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
norm.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../geometric.hpp"
-
19 #include "../gtx/quaternion.hpp"
-
20 #include "../gtx/component_wise.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTX_norm extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
37  template<length_t L, typename T, qualifier Q>
-
38  GLM_FUNC_DECL T length2(vec<L, T, Q> const& x);
-
39 
-
42  template<length_t L, typename T, qualifier Q>
-
43  GLM_FUNC_DECL T distance2(vec<L, T, Q> const& p0, vec<L, T, Q> const& p1);
-
44 
-
47  template<typename T, qualifier Q>
-
48  GLM_FUNC_DECL T l1Norm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
-
49 
-
52  template<typename T, qualifier Q>
-
53  GLM_FUNC_DECL T l1Norm(vec<3, T, Q> const& v);
-
54 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL T l2Norm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
-
59 
-
62  template<typename T, qualifier Q>
-
63  GLM_FUNC_DECL T l2Norm(vec<3, T, Q> const& x);
-
64 
-
67  template<typename T, qualifier Q>
-
68  GLM_FUNC_DECL T lxNorm(vec<3, T, Q> const& x, vec<3, T, Q> const& y, unsigned int Depth);
-
69 
-
72  template<typename T, qualifier Q>
-
73  GLM_FUNC_DECL T lxNorm(vec<3, T, Q> const& x, unsigned int Depth);
-
74 
-
77  template<typename T, qualifier Q>
-
78  GLM_FUNC_DECL T lMaxNorm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
-
79 
-
82  template<typename T, qualifier Q>
-
83  GLM_FUNC_DECL T lMaxNorm(vec<3, T, Q> const& x);
-
84 
-
86 }//namespace glm
-
87 
-
88 #include "norm.inl"
-
GLM_FUNC_DECL T length2(vec< L, T, Q > const &x)
Returns the squared length of x.
-
GLM_FUNC_DECL T l1Norm(vec< 3, T, Q > const &v)
Returns the L1 norm of v.
-
GLM_FUNC_DECL T distance2(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the squared distance between p0 and p1, i.e., length2(p0 - p1).
-
GLM_FUNC_DECL T lMaxNorm(vec< 3, T, Q > const &x)
Returns the LMax norm of v.
-
GLM_FUNC_DECL T lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)
Returns the L norm of v.
-
GLM_FUNC_DECL T l2Norm(vec< 3, T, Q > const &x)
Returns the L2 norm of v.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: norm.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
norm.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../geometric.hpp"
+
19 #include "../gtx/quaternion.hpp"
+
20 #include "../gtx/component_wise.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTX_norm extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
37  template<length_t L, typename T, qualifier Q>
+
38  GLM_FUNC_DECL T length2(vec<L, T, Q> const& x);
+
39 
+
42  template<length_t L, typename T, qualifier Q>
+
43  GLM_FUNC_DECL T distance2(vec<L, T, Q> const& p0, vec<L, T, Q> const& p1);
+
44 
+
47  template<typename T, qualifier Q>
+
48  GLM_FUNC_DECL T l1Norm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
+
49 
+
52  template<typename T, qualifier Q>
+
53  GLM_FUNC_DECL T l1Norm(vec<3, T, Q> const& v);
+
54 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL T l2Norm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
+
59 
+
62  template<typename T, qualifier Q>
+
63  GLM_FUNC_DECL T l2Norm(vec<3, T, Q> const& x);
+
64 
+
67  template<typename T, qualifier Q>
+
68  GLM_FUNC_DECL T lxNorm(vec<3, T, Q> const& x, vec<3, T, Q> const& y, unsigned int Depth);
+
69 
+
72  template<typename T, qualifier Q>
+
73  GLM_FUNC_DECL T lxNorm(vec<3, T, Q> const& x, unsigned int Depth);
+
74 
+
77  template<typename T, qualifier Q>
+
78  GLM_FUNC_DECL T lMaxNorm(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
+
79 
+
82  template<typename T, qualifier Q>
+
83  GLM_FUNC_DECL T lMaxNorm(vec<3, T, Q> const& x);
+
84 
+
86 }//namespace glm
+
87 
+
88 #include "norm.inl"
+
GLM_FUNC_DECL T length2(vec< L, T, Q > const &x)
Returns the squared length of x.
+
GLM_FUNC_DECL T l1Norm(vec< 3, T, Q > const &v)
Returns the L1 norm of v.
+
GLM_FUNC_DECL T distance2(vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
Returns the squared distance between p0 and p1, i.e., length2(p0 - p1).
+
GLM_FUNC_DECL T lMaxNorm(vec< 3, T, Q > const &x)
Returns the LMax norm of v.
+
GLM_FUNC_DECL T lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)
Returns the L norm of v.
+
GLM_FUNC_DECL T l2Norm(vec< 3, T, Q > const &x)
Returns the L2 norm of v.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00114.html b/external/include/glm-0.9.9.8/doc/api/a00114.html index f472205d15..fccfbc6bc5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00114.html +++ b/external/include/glm-0.9.9.8/doc/api/a00114.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: normal.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
normal.hpp File Reference
-
-
- -

GLM_GTX_normal -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal (vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
 Computes triangle normal from triangle points. More...
 
-

Detailed Description

-

GLM_GTX_normal

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file normal.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: normal.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
normal.hpp File Reference
+
+
+ +

GLM_GTX_normal +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal (vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
 Computes triangle normal from triangle points. More...
 
+

Detailed Description

+

GLM_GTX_normal

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file normal.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00114_source.html b/external/include/glm-0.9.9.8/doc/api/a00114_source.html index 16dd224280..322b327837 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00114_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00114_source.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: normal.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
normal.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_normal extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
35  template<typename T, qualifier Q>
-
36  GLM_FUNC_DECL vec<3, T, Q> triangleNormal(vec<3, T, Q> const& p1, vec<3, T, Q> const& p2, vec<3, T, Q> const& p3);
-
37 
-
39 }//namespace glm
-
40 
-
41 #include "normal.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal(vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
Computes triangle normal from triangle points.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: normal.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
normal.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_normal extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
35  template<typename T, qualifier Q>
+
36  GLM_FUNC_DECL vec<3, T, Q> triangleNormal(vec<3, T, Q> const& p1, vec<3, T, Q> const& p2, vec<3, T, Q> const& p3);
+
37 
+
39 }//namespace glm
+
40 
+
41 #include "normal.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal(vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
Computes triangle normal from triangle points.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00115.html b/external/include/glm-0.9.9.8/doc/api/a00115.html index df48642c81..82e82a9a93 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00115.html +++ b/external/include/glm-0.9.9.8/doc/api/a00115.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: normalize_dot.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
normalize_dot.hpp File Reference
-
-
- -

GLM_GTX_normalize_dot -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastNormalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T normalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
-

Detailed Description

-

GLM_GTX_normalize_dot

-
See also
Core features (dependence)
-
-GLM_GTX_fast_square_root (dependence)
- -

Definition in file normalize_dot.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: normalize_dot.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
normalize_dot.hpp File Reference
+
+
+ +

GLM_GTX_normalize_dot +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastNormalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T normalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
+

Detailed Description

+

GLM_GTX_normalize_dot

+
See also
Core features (dependence)
+
+GLM_GTX_fast_square_root (dependence)
+ +

Definition in file normalize_dot.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00115_source.html b/external/include/glm-0.9.9.8/doc/api/a00115_source.html index 78e37e2aef..9ad6977ece 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00115_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00115_source.html @@ -1,128 +1,128 @@ - - - - - - -0.9.9 API documentation: normalize_dot.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
normalize_dot.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../gtx/fast_square_root.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
36  template<length_t L, typename T, qualifier Q>
-
37  GLM_FUNC_DECL T normalizeDot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
38 
-
43  template<length_t L, typename T, qualifier Q>
-
44  GLM_FUNC_DECL T fastNormalizeDot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
45 
-
47 }//namespace glm
-
48 
-
49 #include "normalize_dot.inl"
-
GLM_FUNC_DECL T normalizeDot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Normalize parameters and returns the dot product of x and y.
-
GLM_FUNC_DECL T fastNormalizeDot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Normalize parameters and returns the dot product of x and y.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: normalize_dot.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
normalize_dot.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../gtx/fast_square_root.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_normalize_dot extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
36  template<length_t L, typename T, qualifier Q>
+
37  GLM_FUNC_DECL T normalizeDot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
38 
+
43  template<length_t L, typename T, qualifier Q>
+
44  GLM_FUNC_DECL T fastNormalizeDot(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
45 
+
47 }//namespace glm
+
48 
+
49 #include "normalize_dot.inl"
+
GLM_FUNC_DECL T normalizeDot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Normalize parameters and returns the dot product of x and y.
+
GLM_FUNC_DECL T fastNormalizeDot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Normalize parameters and returns the dot product of x and y.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00116.html b/external/include/glm-0.9.9.8/doc/api/a00116.html index aafcad1466..b0713fe219 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00116.html +++ b/external/include/glm-0.9.9.8/doc/api/a00116.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: number_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
number_precision.hpp File Reference
-
-
- -

GLM_GTX_number_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef f32 f32mat1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f32 f32mat1x1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f32 f32vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64mat1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64mat1x1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef u16 u16vec1
 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u32 u32vec1
 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u64 u64vec1
 64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u8 u8vec1
 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-

Detailed Description

-

GLM_GTX_number_precision

-
See also
Core features (dependence)
-
-GLM_GTC_type_precision (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file number_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: number_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
number_precision.hpp File Reference
+
+
+ +

GLM_GTX_number_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef f32 f32mat1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f32 f32mat1x1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f32 f32vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64mat1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64mat1x1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef u16 u16vec1
 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u32 u32vec1
 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u64 u64vec1
 64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u8 u8vec1
 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+

Detailed Description

+

GLM_GTX_number_precision

+
See also
Core features (dependence)
+
+GLM_GTC_type_precision (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file number_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00116_source.html b/external/include/glm-0.9.9.8/doc/api/a00116_source.html index bce7c5f633..d9a852e708 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00116_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00116_source.html @@ -1,158 +1,158 @@ - - - - - - -0.9.9 API documentation: number_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
number_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../glm.hpp"
-
19 #include "../gtc/type_precision.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_number_precision extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm{
-
30 namespace gtx
-
31 {
-
33  // Unsigned int vector types
-
34 
-
37 
-
38  typedef u8 u8vec1;
-
39  typedef u16 u16vec1;
-
40  typedef u32 u32vec1;
-
41  typedef u64 u64vec1;
-
42 
-
44  // Float vector types
-
45 
-
46  typedef f32 f32vec1;
-
47  typedef f64 f64vec1;
-
48 
-
50  // Float matrix types
-
51 
-
52  typedef f32 f32mat1;
-
53  typedef f32 f32mat1x1;
-
54  typedef f64 f64mat1;
-
55  typedef f64 f64mat1x1;
-
56 
-
58 }//namespace gtx
-
59 }//namespace glm
-
60 
-
61 #include "number_precision.inl"
-
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
-
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
-
f32 f32mat1x1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f64 f64mat1
Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
u16 u16vec1
16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
-
f32 f32mat1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f32 f32vec1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f64 f64vec1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
f64 f64mat1x1
Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
-
u64 u64vec1
64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-
u32 u32vec1
32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
-
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
-
u8 u8vec1
8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: number_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
number_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../glm.hpp"
+
19 #include "../gtc/type_precision.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_number_precision extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm{
+
30 namespace gtx
+
31 {
+
33  // Unsigned int vector types
+
34 
+
37 
+
38  typedef u8 u8vec1;
+
39  typedef u16 u16vec1;
+
40  typedef u32 u32vec1;
+
41  typedef u64 u64vec1;
+
42 
+
44  // Float vector types
+
45 
+
46  typedef f32 f32vec1;
+
47  typedef f64 f64vec1;
+
48 
+
50  // Float matrix types
+
51 
+
52  typedef f32 f32mat1;
+
53  typedef f32 f32mat1x1;
+
54  typedef f64 f64mat1;
+
55  typedef f64 f64mat1x1;
+
56 
+
58 }//namespace gtx
+
59 }//namespace glm
+
60 
+
61 #include "number_precision.inl"
+
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
+
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
+
f32 f32mat1x1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f64 f64mat1
Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
u16 u16vec1
16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
+
f32 f32mat1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f32 f32vec1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f64 f64vec1
Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
f64 f64mat1x1
Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension) ...
+
u64 u64vec1
64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
u32 u32vec1
32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
+
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
+
u8 u8vec1
8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
+
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00117.html b/external/include/glm-0.9.9.8/doc/api/a00117.html index 7b47bbaed4..d6198dfc13 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00117.html +++ b/external/include/glm-0.9.9.8/doc/api/a00117.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: optimum_pow.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
optimum_pow.hpp File Reference
-
-
- -

GLM_GTX_optimum_pow -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 Returns x raised to the power of 2. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 Returns x raised to the power of 3. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 Returns x raised to the power of 4. More...
 
-

Detailed Description

-

GLM_GTX_optimum_pow

-
See also
Core features (dependence)
- -

Definition in file optimum_pow.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: optimum_pow.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
optimum_pow.hpp File Reference
+
+
+ +

GLM_GTX_optimum_pow +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 Returns x raised to the power of 2. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 Returns x raised to the power of 3. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 Returns x raised to the power of 4. More...
 
+

Detailed Description

+

GLM_GTX_optimum_pow

+
See also
Core features (dependence)
+ +

Definition in file optimum_pow.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00117_source.html b/external/include/glm-0.9.9.8/doc/api/a00117_source.html index c0c9911c5b..4031c3f168 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00117_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00117_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: optimum_pow.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
optimum_pow.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm{
-
27 namespace gtx
-
28 {
-
31 
-
35  template<typename genType>
-
36  GLM_FUNC_DECL genType pow2(genType const& x);
-
37 
-
41  template<typename genType>
-
42  GLM_FUNC_DECL genType pow3(genType const& x);
-
43 
-
47  template<typename genType>
-
48  GLM_FUNC_DECL genType pow4(genType const& x);
-
49 
-
51 }//namespace gtx
-
52 }//namespace glm
-
53 
-
54 #include "optimum_pow.inl"
-
GLM_FUNC_DECL genType pow3(genType const &x)
Returns x raised to the power of 3.
-
GLM_FUNC_DECL genType pow4(genType const &x)
Returns x raised to the power of 4.
-
GLM_FUNC_DECL genType pow2(genType const &x)
Returns x raised to the power of 2.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: optimum_pow.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
optimum_pow.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_optimum_pow extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm{
+
27 namespace gtx
+
28 {
+
31 
+
35  template<typename genType>
+
36  GLM_FUNC_DECL genType pow2(genType const& x);
+
37 
+
41  template<typename genType>
+
42  GLM_FUNC_DECL genType pow3(genType const& x);
+
43 
+
47  template<typename genType>
+
48  GLM_FUNC_DECL genType pow4(genType const& x);
+
49 
+
51 }//namespace gtx
+
52 }//namespace glm
+
53 
+
54 #include "optimum_pow.inl"
+
GLM_FUNC_DECL genType pow3(genType const &x)
Returns x raised to the power of 3.
+
GLM_FUNC_DECL genType pow4(genType const &x)
Returns x raised to the power of 4.
+
GLM_FUNC_DECL genType pow2(genType const &x)
Returns x raised to the power of 2.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00118.html b/external/include/glm-0.9.9.8/doc/api/a00118.html index 7c1a215cc2..7ea9817cb5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00118.html +++ b/external/include/glm-0.9.9.8/doc/api/a00118.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: orthonormalize.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
orthonormalize.hpp File Reference
-
-
- -

GLM_GTX_orthonormalize -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orthonormalize (mat< 3, 3, T, Q > const &m)
 Returns the orthonormalized matrix of m. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Orthonormalizes x according y. More...
 
-

Detailed Description

-

GLM_GTX_orthonormalize

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file orthonormalize.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: orthonormalize.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
orthonormalize.hpp File Reference
+
+
+ +

GLM_GTX_orthonormalize +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orthonormalize (mat< 3, 3, T, Q > const &m)
 Returns the orthonormalized matrix of m. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Orthonormalizes x according y. More...
 
+

Detailed Description

+

GLM_GTX_orthonormalize

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file orthonormalize.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00118_source.html b/external/include/glm-0.9.9.8/doc/api/a00118_source.html index 264c740f6e..4ee3ce6400 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00118_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00118_source.html @@ -1,129 +1,129 @@ - - - - - - -0.9.9 API documentation: orthonormalize.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
orthonormalize.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../vec3.hpp"
-
18 #include "../mat3x3.hpp"
-
19 #include "../geometric.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # ifndef GLM_ENABLE_EXPERIMENTAL
-
23 # pragma message("GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
24 # else
-
25 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
-
26 # endif
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
37  template<typename T, qualifier Q>
-
38  GLM_FUNC_DECL mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m);
-
39 
-
43  template<typename T, qualifier Q>
-
44  GLM_FUNC_DECL vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
-
45 
-
47 }//namespace glm
-
48 
-
49 #include "orthonormalize.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
Orthonormalizes x according y.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: orthonormalize.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
orthonormalize.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../vec3.hpp"
+
18 #include "../mat3x3.hpp"
+
19 #include "../geometric.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # ifndef GLM_ENABLE_EXPERIMENTAL
+
23 # pragma message("GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
24 # else
+
25 # pragma message("GLM: GLM_GTX_orthonormalize extension included")
+
26 # endif
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
37  template<typename T, qualifier Q>
+
38  GLM_FUNC_DECL mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m);
+
39 
+
43  template<typename T, qualifier Q>
+
44  GLM_FUNC_DECL vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y);
+
45 
+
47 }//namespace glm
+
48 
+
49 #include "orthonormalize.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
Orthonormalizes x according y.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00119.html b/external/include/glm-0.9.9.8/doc/api/a00119.html index 2a8f6e2bfd..e8c7feb26f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00119.html +++ b/external/include/glm-0.9.9.8/doc/api/a00119.html @@ -1,333 +1,333 @@ - - - - - - -0.9.9 API documentation: packing.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtc/packing.hpp File Reference
-
-
- -

GLM_GTC_packing -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
GLM_FUNC_DECL uint32 packF3x9_E1x5 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint16, Q > packHalf (vec< L, float, Q > const &v)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. More...
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. More...
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL int packInt2x16 (i16vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt2x32 (i32vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int16 packInt2x8 (i8vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt4x16 (i16vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int32 packInt4x8 (i8vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > packRGBM (vec< 3, T, Q > const &rgb)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
template<typename intType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, intType, Q > packSnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into signed integer values. More...
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 First, converts the normalized floating-point value v into 16-bit integer value. More...
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 First, converts the normalized floating-point value v into 8-bit integer value. More...
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. More...
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packUint2x16 (u16vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint2x32 (u32vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint16 packUint2x8 (u8vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint4x16 (u16vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint32 packUint4x8 (u8vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
template<typename uintType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 First, converts the normalized floating-point value v into a 16-bit integer value. More...
 
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 First, converts the normalized floating-point value v into a 8-bit integer value. More...
 
GLM_FUNC_DECL uint8 packUnorm2x3_1x2 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm2x4 (vec2 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm3x5_1x1 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm4x4 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
GLM_FUNC_DECL vec3 unpackF3x9_E1x5 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > unpackHalf (vec< L, uint16, Q > const &p)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. More...
 
GLM_FUNC_DECL i16vec2 unpackInt2x16 (int p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i32vec2 unpackInt2x32 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec2 unpackInt2x8 (int16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i16vec4 unpackInt4x16 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec4 unpackInt4x8 (int32 p)
 Convert a packed integer into an integer vector. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM (vec< 4, T, Q > const &rgbm)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
template<typename floatType , length_t L, typename intType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm (vec< L, intType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. More...
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. More...
 
GLM_FUNC_DECL u16vec2 unpackUint2x16 (uint p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u32vec2 unpackUint2x32 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec2 unpackUint2x8 (uint16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u16vec4 unpackUint4x16 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec4 unpackUint4x8 (uint32 p)
 Convert a packed integer into an integer vector. More...
 
template<typename floatType , length_t L, typename uintType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm (vec< L, uintType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 Convert a single 8-bit integer to a normalized floating-point value. More...
 
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x4 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x4 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
-

Detailed Description

-

GLM_GTC_packing

-
See also
Core features (dependence)
- -

Definition in file gtc/packing.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: packing.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtc/packing.hpp File Reference
+
+
+ +

GLM_GTC_packing +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
GLM_FUNC_DECL uint32 packF3x9_E1x5 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint16, Q > packHalf (vec< L, float, Q > const &v)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. More...
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. More...
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL int packInt2x16 (i16vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt2x32 (i32vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int16 packInt2x8 (i8vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt4x16 (i16vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int32 packInt4x8 (i8vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > packRGBM (vec< 3, T, Q > const &rgb)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
template<typename intType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, intType, Q > packSnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into signed integer values. More...
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 First, converts the normalized floating-point value v into 16-bit integer value. More...
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 First, converts the normalized floating-point value v into 8-bit integer value. More...
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. More...
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packUint2x16 (u16vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint2x32 (u32vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint16 packUint2x8 (u8vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint4x16 (u16vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint32 packUint4x8 (u8vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
template<typename uintType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 First, converts the normalized floating-point value v into a 16-bit integer value. More...
 
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 First, converts the normalized floating-point value v into a 8-bit integer value. More...
 
GLM_FUNC_DECL uint8 packUnorm2x3_1x2 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm2x4 (vec2 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm3x5_1x1 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm4x4 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
GLM_FUNC_DECL vec3 unpackF3x9_E1x5 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > unpackHalf (vec< L, uint16, Q > const &p)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. More...
 
GLM_FUNC_DECL i16vec2 unpackInt2x16 (int p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i32vec2 unpackInt2x32 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec2 unpackInt2x8 (int16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i16vec4 unpackInt4x16 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec4 unpackInt4x8 (int32 p)
 Convert a packed integer into an integer vector. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM (vec< 4, T, Q > const &rgbm)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
template<typename floatType , length_t L, typename intType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm (vec< L, intType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. More...
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. More...
 
GLM_FUNC_DECL u16vec2 unpackUint2x16 (uint p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u32vec2 unpackUint2x32 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec2 unpackUint2x8 (uint16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u16vec4 unpackUint4x16 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec4 unpackUint4x8 (uint32 p)
 Convert a packed integer into an integer vector. More...
 
template<typename floatType , length_t L, typename uintType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm (vec< L, uintType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 Convert a single 8-bit integer to a normalized floating-point value. More...
 
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x4 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x4 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
+

Detailed Description

+

GLM_GTC_packing

+
See also
Core features (dependence)
+ +

Definition in file gtc/packing.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00119_source.html b/external/include/glm-0.9.9.8/doc/api/a00119_source.html index 412e8fc61b..9388937538 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00119_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00119_source.html @@ -1,356 +1,356 @@ - - - - - - -0.9.9 API documentation: packing.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/packing.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "type_precision.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # pragma message("GLM: GLM_GTC_packing extension included")
-
21 #endif
-
22 
-
23 namespace glm
-
24 {
-
27 
-
39  GLM_FUNC_DECL uint8 packUnorm1x8(float v);
-
40 
-
51  GLM_FUNC_DECL float unpackUnorm1x8(uint8 p);
-
52 
-
67  GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const& v);
-
68 
-
83  GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p);
-
84 
-
96  GLM_FUNC_DECL uint8 packSnorm1x8(float s);
-
97 
-
109  GLM_FUNC_DECL float unpackSnorm1x8(uint8 p);
-
110 
-
125  GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const& v);
-
126 
-
141  GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p);
-
142 
-
154  GLM_FUNC_DECL uint16 packUnorm1x16(float v);
-
155 
-
167  GLM_FUNC_DECL float unpackUnorm1x16(uint16 p);
-
168 
-
183  GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const& v);
-
184 
-
199  GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p);
-
200 
-
212  GLM_FUNC_DECL uint16 packSnorm1x16(float v);
-
213 
-
225  GLM_FUNC_DECL float unpackSnorm1x16(uint16 p);
-
226 
-
241  GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const& v);
-
242 
-
257  GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p);
-
258 
-
268  GLM_FUNC_DECL uint16 packHalf1x16(float v);
-
269 
-
279  GLM_FUNC_DECL float unpackHalf1x16(uint16 v);
-
280 
-
292  GLM_FUNC_DECL uint64 packHalf4x16(vec4 const& v);
-
293 
-
305  GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p);
-
306 
-
318  GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const& v);
-
319 
-
329  GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p);
-
330 
-
342  GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const& v);
-
343 
-
353  GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p);
-
354 
-
371  GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const& v);
-
372 
-
388  GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p);
-
389 
-
406  GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const& v);
-
407 
-
423  GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p);
-
424 
-
434  GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const& v);
-
435 
-
444  GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p);
-
445 
-
446 
-
458  GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const& v);
-
459 
-
470  GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p);
-
471 
-
480  template<length_t L, typename T, qualifier Q>
-
481  GLM_FUNC_DECL vec<4, T, Q> packRGBM(vec<3, T, Q> const& rgb);
-
482 
-
490  template<length_t L, typename T, qualifier Q>
-
491  GLM_FUNC_DECL vec<3, T, Q> unpackRGBM(vec<4, T, Q> const& rgbm);
-
492 
-
501  template<length_t L, qualifier Q>
-
502  GLM_FUNC_DECL vec<L, uint16, Q> packHalf(vec<L, float, Q> const& v);
-
503 
-
511  template<length_t L, qualifier Q>
-
512  GLM_FUNC_DECL vec<L, float, Q> unpackHalf(vec<L, uint16, Q> const& p);
-
513 
-
518  template<typename uintType, length_t L, typename floatType, qualifier Q>
-
519  GLM_FUNC_DECL vec<L, uintType, Q> packUnorm(vec<L, floatType, Q> const& v);
-
520 
-
525  template<typename floatType, length_t L, typename uintType, qualifier Q>
-
526  GLM_FUNC_DECL vec<L, floatType, Q> unpackUnorm(vec<L, uintType, Q> const& v);
-
527 
-
532  template<typename intType, length_t L, typename floatType, qualifier Q>
-
533  GLM_FUNC_DECL vec<L, intType, Q> packSnorm(vec<L, floatType, Q> const& v);
-
534 
-
539  template<typename floatType, length_t L, typename intType, qualifier Q>
-
540  GLM_FUNC_DECL vec<L, floatType, Q> unpackSnorm(vec<L, intType, Q> const& v);
-
541 
-
546  GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const& v);
-
547 
-
552  GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p);
-
553 
-
558  GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const& v);
-
559 
-
564  GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p);
-
565 
-
570  GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const& v);
-
571 
-
576  GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p);
-
577 
-
582  GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const& v);
-
583 
-
588  GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p);
-
589 
-
594  GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const& v);
-
595 
-
600  GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p);
-
601 
-
602 
-
603 
-
608  GLM_FUNC_DECL int16 packInt2x8(i8vec2 const& v);
-
609 
-
614  GLM_FUNC_DECL i8vec2 unpackInt2x8(int16 p);
-
615 
-
620  GLM_FUNC_DECL uint16 packUint2x8(u8vec2 const& v);
-
621 
-
626  GLM_FUNC_DECL u8vec2 unpackUint2x8(uint16 p);
-
627 
-
632  GLM_FUNC_DECL int32 packInt4x8(i8vec4 const& v);
-
633 
-
638  GLM_FUNC_DECL i8vec4 unpackInt4x8(int32 p);
-
639 
-
644  GLM_FUNC_DECL uint32 packUint4x8(u8vec4 const& v);
-
645 
-
650  GLM_FUNC_DECL u8vec4 unpackUint4x8(uint32 p);
-
651 
-
656  GLM_FUNC_DECL int packInt2x16(i16vec2 const& v);
-
657 
-
662  GLM_FUNC_DECL i16vec2 unpackInt2x16(int p);
-
663 
-
668  GLM_FUNC_DECL int64 packInt4x16(i16vec4 const& v);
-
669 
-
674  GLM_FUNC_DECL i16vec4 unpackInt4x16(int64 p);
-
675 
-
680  GLM_FUNC_DECL uint packUint2x16(u16vec2 const& v);
-
681 
-
686  GLM_FUNC_DECL u16vec2 unpackUint2x16(uint p);
-
687 
-
692  GLM_FUNC_DECL uint64 packUint4x16(u16vec4 const& v);
-
693 
-
698  GLM_FUNC_DECL u16vec4 unpackUint4x16(uint64 p);
-
699 
-
704  GLM_FUNC_DECL int64 packInt2x32(i32vec2 const& v);
-
705 
-
710  GLM_FUNC_DECL i32vec2 unpackInt2x32(int64 p);
-
711 
-
716  GLM_FUNC_DECL uint64 packUint2x32(u32vec2 const& v);
-
717 
-
722  GLM_FUNC_DECL u32vec2 unpackUint2x32(uint64 p);
-
723 
-
724 
-
726 }// namespace glm
-
727 
-
728 #include "packing.inl"
-
GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL uint16 packUint2x8(u8vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
-
GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.
-
GLM_FUNC_DECL i16vec2 unpackInt2x16(int p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL i8vec4 unpackInt4x8(int32 p)
Convert a packed integer into an integer vector.
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
GLM_FUNC_DECL u16vec4 unpackUint4x16(uint64 p)
Convert a packed integer into an integer vector.
-
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
-
GLM_FUNC_DECL u32vec2 unpackUint2x32(uint64 p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL vec< L, float, Q > unpackHalf(vec< L, uint16, Q > const &p)
Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...
-
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm(vec< L, floatType, Q > const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
-
GLM_FUNC_DECL uint8 packUnorm1x8(float v)
First, converts the normalized floating-point value v into a 8-bit integer value. ...
-
GLM_FUNC_DECL u8vec2 unpackUint2x8(uint16 p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL vec< 4, T, Q > packRGBM(vec< 3, T, Q > const &rgb)
Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...
-
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
-
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit unsig...
-
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
-
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
-
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
-
GLM_FUNC_DECL i32vec2 unpackInt2x32(int64 p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL uint16 packUnorm1x16(float v)
First, converts the normalized floating-point value v into a 16-bit integer value.
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
-
GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)
Convert a single 8-bit integer to a normalized floating-point value.
-
GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)
First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.
-
GLM_FUNC_DECL float unpackHalf1x16(uint16 v)
Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...
-
GLM_FUNC_DECL i16vec4 unpackInt4x16(int64 p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.
-
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.
-
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
-
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...
-
GLM_FUNC_DECL uint16 packSnorm1x16(float v)
First, converts the normalized floating-point value v into 16-bit integer value.
-
GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
-
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm(vec< L, uintType, Q > const &v)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL vec< L, intType, Q > packSnorm(vec< L, floatType, Q > const &v)
Convert each component of the normalized floating-point vector into signed integer values...
-
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p)
Convert a packed integer to a normalized floating-point vector.
-
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
-
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
-
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit signe...
-
GLM_FUNC_DECL int64 packInt4x16(i16vec4 const &v)
Convert each component from an integer vector into a packed integer.
-
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
-
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL uint64 packUint4x16(u16vec4 const &v)
Convert each component from an integer vector into a packed unsigned integer.
-
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
-
GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
-
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.
-
GLM_FUNC_DECL u16vec2 unpackUint2x16(uint p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL uint packUint2x16(u16vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
-
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
-
GLM_FUNC_DECL uint64 packUint2x32(u32vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
-
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
-
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)
Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...
-
detail::uint64 uint64
64 bit unsigned integer type.
-
GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component floating-point ...
-
GLM_GTC_type_precision
-
GLM_FUNC_DECL i8vec2 unpackInt2x8(int16 p)
Convert a packed integer into an integer vector.
-
detail::int64 int64
64 bit signed integer type.
-
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
-
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...
-
GLM_FUNC_DECL uint16 packHalf1x16(float v)
Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...
-
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm(vec< L, intType, Q > const &v)
Convert a packed integer to a normalized floating-point vector.
-
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM(vec< 4, T, Q > const &rgbm)
Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...
-
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
-
GLM_FUNC_DECL uint8 packSnorm1x8(float s)
First, converts the normalized floating-point value v into 8-bit integer value.
-
GLM_FUNC_DECL u8vec4 unpackUint4x8(uint32 p)
Convert a packed integer into an integer vector.
-
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component signed integer ...
-
GLM_FUNC_DECL int16 packInt2x8(i8vec2 const &v)
Convert each component from an integer vector into a packed integer.
-
GLM_FUNC_DECL int64 packInt2x32(i32vec2 const &v)
Convert each component from an integer vector into a packed integer.
-
GLM_FUNC_DECL uint32 packUint4x8(u8vec4 const &v)
Convert each component from an integer vector into a packed unsigned integer.
-
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...
-
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
-
GLM_FUNC_DECL int packInt2x16(i16vec2 const &v)
Convert each component from an integer vector into a packed integer.
-
GLM_FUNC_DECL vec< L, uint16, Q > packHalf(vec< L, float, Q > const &v)
Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...
-
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
-
GLM_FUNC_DECL int32 packInt4x8(i8vec4 const &v)
Convert each component from an integer vector into a packed integer.
-
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
-
GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: packing.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/packing.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "type_precision.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # pragma message("GLM: GLM_GTC_packing extension included")
+
21 #endif
+
22 
+
23 namespace glm
+
24 {
+
27 
+
39  GLM_FUNC_DECL uint8 packUnorm1x8(float v);
+
40 
+
51  GLM_FUNC_DECL float unpackUnorm1x8(uint8 p);
+
52 
+
67  GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const& v);
+
68 
+
83  GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p);
+
84 
+
96  GLM_FUNC_DECL uint8 packSnorm1x8(float s);
+
97 
+
109  GLM_FUNC_DECL float unpackSnorm1x8(uint8 p);
+
110 
+
125  GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const& v);
+
126 
+
141  GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p);
+
142 
+
154  GLM_FUNC_DECL uint16 packUnorm1x16(float v);
+
155 
+
167  GLM_FUNC_DECL float unpackUnorm1x16(uint16 p);
+
168 
+
183  GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const& v);
+
184 
+
199  GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p);
+
200 
+
212  GLM_FUNC_DECL uint16 packSnorm1x16(float v);
+
213 
+
225  GLM_FUNC_DECL float unpackSnorm1x16(uint16 p);
+
226 
+
241  GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const& v);
+
242 
+
257  GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p);
+
258 
+
268  GLM_FUNC_DECL uint16 packHalf1x16(float v);
+
269 
+
279  GLM_FUNC_DECL float unpackHalf1x16(uint16 v);
+
280 
+
292  GLM_FUNC_DECL uint64 packHalf4x16(vec4 const& v);
+
293 
+
305  GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p);
+
306 
+
318  GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const& v);
+
319 
+
329  GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p);
+
330 
+
342  GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const& v);
+
343 
+
353  GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p);
+
354 
+
371  GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const& v);
+
372 
+
388  GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p);
+
389 
+
406  GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const& v);
+
407 
+
423  GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p);
+
424 
+
434  GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const& v);
+
435 
+
444  GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p);
+
445 
+
446 
+
458  GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const& v);
+
459 
+
470  GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p);
+
471 
+
480  template<length_t L, typename T, qualifier Q>
+
481  GLM_FUNC_DECL vec<4, T, Q> packRGBM(vec<3, T, Q> const& rgb);
+
482 
+
490  template<length_t L, typename T, qualifier Q>
+
491  GLM_FUNC_DECL vec<3, T, Q> unpackRGBM(vec<4, T, Q> const& rgbm);
+
492 
+
501  template<length_t L, qualifier Q>
+
502  GLM_FUNC_DECL vec<L, uint16, Q> packHalf(vec<L, float, Q> const& v);
+
503 
+
511  template<length_t L, qualifier Q>
+
512  GLM_FUNC_DECL vec<L, float, Q> unpackHalf(vec<L, uint16, Q> const& p);
+
513 
+
518  template<typename uintType, length_t L, typename floatType, qualifier Q>
+
519  GLM_FUNC_DECL vec<L, uintType, Q> packUnorm(vec<L, floatType, Q> const& v);
+
520 
+
525  template<typename floatType, length_t L, typename uintType, qualifier Q>
+
526  GLM_FUNC_DECL vec<L, floatType, Q> unpackUnorm(vec<L, uintType, Q> const& v);
+
527 
+
532  template<typename intType, length_t L, typename floatType, qualifier Q>
+
533  GLM_FUNC_DECL vec<L, intType, Q> packSnorm(vec<L, floatType, Q> const& v);
+
534 
+
539  template<typename floatType, length_t L, typename intType, qualifier Q>
+
540  GLM_FUNC_DECL vec<L, floatType, Q> unpackSnorm(vec<L, intType, Q> const& v);
+
541 
+
546  GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const& v);
+
547 
+
552  GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p);
+
553 
+
558  GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const& v);
+
559 
+
564  GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p);
+
565 
+
570  GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const& v);
+
571 
+
576  GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p);
+
577 
+
582  GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const& v);
+
583 
+
588  GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p);
+
589 
+
594  GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const& v);
+
595 
+
600  GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p);
+
601 
+
602 
+
603 
+
608  GLM_FUNC_DECL int16 packInt2x8(i8vec2 const& v);
+
609 
+
614  GLM_FUNC_DECL i8vec2 unpackInt2x8(int16 p);
+
615 
+
620  GLM_FUNC_DECL uint16 packUint2x8(u8vec2 const& v);
+
621 
+
626  GLM_FUNC_DECL u8vec2 unpackUint2x8(uint16 p);
+
627 
+
632  GLM_FUNC_DECL int32 packInt4x8(i8vec4 const& v);
+
633 
+
638  GLM_FUNC_DECL i8vec4 unpackInt4x8(int32 p);
+
639 
+
644  GLM_FUNC_DECL uint32 packUint4x8(u8vec4 const& v);
+
645 
+
650  GLM_FUNC_DECL u8vec4 unpackUint4x8(uint32 p);
+
651 
+
656  GLM_FUNC_DECL int packInt2x16(i16vec2 const& v);
+
657 
+
662  GLM_FUNC_DECL i16vec2 unpackInt2x16(int p);
+
663 
+
668  GLM_FUNC_DECL int64 packInt4x16(i16vec4 const& v);
+
669 
+
674  GLM_FUNC_DECL i16vec4 unpackInt4x16(int64 p);
+
675 
+
680  GLM_FUNC_DECL uint packUint2x16(u16vec2 const& v);
+
681 
+
686  GLM_FUNC_DECL u16vec2 unpackUint2x16(uint p);
+
687 
+
692  GLM_FUNC_DECL uint64 packUint4x16(u16vec4 const& v);
+
693 
+
698  GLM_FUNC_DECL u16vec4 unpackUint4x16(uint64 p);
+
699 
+
704  GLM_FUNC_DECL int64 packInt2x32(i32vec2 const& v);
+
705 
+
710  GLM_FUNC_DECL i32vec2 unpackInt2x32(int64 p);
+
711 
+
716  GLM_FUNC_DECL uint64 packUint2x32(u32vec2 const& v);
+
717 
+
722  GLM_FUNC_DECL u32vec2 unpackUint2x32(uint64 p);
+
723 
+
724 
+
726 }// namespace glm
+
727 
+
728 #include "packing.inl"
+
GLM_FUNC_DECL uint16 packUnorm4x4(vec4 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL uint16 packUint2x8(u8vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
+
GLM_FUNC_DECL uint8 packUnorm2x4(vec2 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL vec4 unpackUnorm4x16(uint64 p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.
+
GLM_FUNC_DECL i16vec2 unpackInt2x16(int p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL i8vec4 unpackInt4x8(int32 p)
Convert a packed integer into an integer vector.
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
GLM_FUNC_DECL u16vec4 unpackUint4x16(uint64 p)
Convert a packed integer into an integer vector.
+
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
+
GLM_FUNC_DECL u32vec2 unpackUint2x32(uint64 p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL vec< L, float, Q > unpackHalf(vec< L, uint16, Q > const &p)
Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...
+
GLM_FUNC_DECL uint64 packUnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
+
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm(vec< L, floatType, Q > const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL vec3 unpackF2x11_1x10(uint32 p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
+
GLM_FUNC_DECL uint8 packUnorm1x8(float v)
First, converts the normalized floating-point value v into a 8-bit integer value. ...
+
GLM_FUNC_DECL u8vec2 unpackUint2x8(uint16 p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL vec2 unpackUnorm2x4(uint8 p)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL vec< 4, T, Q > packRGBM(vec< 3, T, Q > const &rgb)
Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...
+
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
+
GLM_FUNC_DECL vec4 unpackSnorm4x16(uint64 p)
First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL uint32 packUnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit unsig...
+
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
+
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
+
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
+
GLM_FUNC_DECL i32vec2 unpackInt2x32(int64 p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL uint8 packUnorm2x3_1x2(vec3 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL uint16 packUnorm1x16(float v)
First, converts the normalized floating-point value v into a 16-bit integer value.
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
+
GLM_FUNC_DECL float unpackUnorm1x8(uint8 p)
Convert a single 8-bit integer to a normalized floating-point value.
+
GLM_FUNC_DECL float unpackSnorm1x8(uint8 p)
First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.
+
GLM_FUNC_DECL float unpackHalf1x16(uint16 v)
Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into ...
+
GLM_FUNC_DECL i16vec4 unpackInt4x16(int64 p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL float unpackUnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.
+
GLM_FUNC_DECL vec2 unpackSnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.
+
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
+
GLM_FUNC_DECL ivec4 unpackI3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers...
+
GLM_FUNC_DECL uint16 packSnorm1x16(float v)
First, converts the normalized floating-point value v into 16-bit integer value.
+
GLM_FUNC_DECL vec3 unpackF3x9_E1x5(uint32 p)
First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and ...
+
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm(vec< L, uintType, Q > const &v)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL vec< L, intType, Q > packSnorm(vec< L, floatType, Q > const &v)
Convert each component of the normalized floating-point vector into signed integer values...
+
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5(vec3 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1(uint16 p)
Convert a packed integer to a normalized floating-point vector.
+
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
+
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2(uint32 p)
First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.
+
GLM_FUNC_DECL uint32 packSnorm3x10_1x2(vec4 const &v)
First, converts the first three components of the normalized floating-point value v into 10-bit signe...
+
GLM_FUNC_DECL int64 packInt4x16(i16vec4 const &v)
Convert each component from an integer vector into a packed integer.
+
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL uint32 packF3x9_E1x5(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
+
GLM_FUNC_DECL uint16 packUnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
+
GLM_FUNC_DECL uint64 packUint4x16(u16vec4 const &v)
Convert each component from an integer vector into a packed unsigned integer.
+
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
+
GLM_FUNC_DECL uint16 packUnorm3x5_1x1(vec4 const &v)
Convert each component of the normalized floating-point vector into unsigned integer values...
+
GLM_FUNC_DECL vec2 unpackUnorm2x8(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.
+
GLM_FUNC_DECL u16vec2 unpackUint2x16(uint p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL uint packUint2x16(u16vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
+
GLM_FUNC_DECL uint64 packSnorm4x16(vec4 const &v)
First, converts each component of the normalized floating-point value v into 16-bit integer values...
+
GLM_FUNC_DECL uint64 packUint2x32(u32vec2 const &v)
Convert each component from an integer vector into a packed unsigned integer.
+
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
+
GLM_FUNC_DECL vec4 unpackHalf4x16(uint64 p)
Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigne...
+
detail::uint64 uint64
64 bit unsigned integer type.
+
GLM_FUNC_DECL vec4 unpackUnorm4x4(uint16 p)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL uint64 packHalf4x16(vec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component floating-point ...
+
GLM_GTC_type_precision
+
GLM_FUNC_DECL i8vec2 unpackInt2x8(int16 p)
Convert a packed integer into an integer vector.
+
detail::int64 int64
64 bit signed integer type.
+
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2(uint8 p)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL uint32 packF2x11_1x10(vec3 const &v)
First, converts the first two components of the normalized floating-point value v into 11-bit signles...
+
GLM_FUNC_DECL uvec4 unpackU3x10_1x2(uint32 p)
Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers...
+
GLM_FUNC_DECL uint16 packHalf1x16(float v)
Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 1...
+
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm(vec< L, intType, Q > const &v)
Convert a packed integer to a normalized floating-point vector.
+
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM(vec< 4, T, Q > const &rgbm)
Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bi...
+
GLM_FUNC_DECL uint16 packSnorm2x8(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8-bit integer values...
+
GLM_FUNC_DECL uint8 packSnorm1x8(float s)
First, converts the normalized floating-point value v into 8-bit integer value.
+
GLM_FUNC_DECL u8vec4 unpackUint4x8(uint32 p)
Convert a packed integer into an integer vector.
+
GLM_FUNC_DECL uint32 packI3x10_1x2(ivec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component signed integer ...
+
GLM_FUNC_DECL int16 packInt2x8(i8vec2 const &v)
Convert each component from an integer vector into a packed integer.
+
GLM_FUNC_DECL int64 packInt2x32(i32vec2 const &v)
Convert each component from an integer vector into a packed integer.
+
GLM_FUNC_DECL uint32 packUint4x8(u8vec4 const &v)
Convert each component from an integer vector into a packed unsigned integer.
+
GLM_FUNC_DECL uint32 packU3x10_1x2(uvec4 const &v)
Returns an unsigned integer obtained by converting the components of a four-component unsigned intege...
+
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
+
GLM_FUNC_DECL int packInt2x16(i16vec2 const &v)
Convert each component from an integer vector into a packed integer.
+
GLM_FUNC_DECL vec< L, uint16, Q > packHalf(vec< L, float, Q > const &v)
Returns an unsigned integer vector obtained by converting the components of a floating-point vector t...
+
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
+
GLM_FUNC_DECL int32 packInt4x8(i8vec4 const &v)
Convert each component from an integer vector into a packed integer.
+
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
+
GLM_FUNC_DECL float unpackSnorm1x16(uint16 p)
First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00120.html b/external/include/glm-0.9.9.8/doc/api/a00120.html index 079d9ae4e5..4265a239fc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00120.html +++ b/external/include/glm-0.9.9.8/doc/api/a00120.html @@ -1,153 +1,153 @@ - - - - - - -0.9.9 API documentation: packing.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
packing.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 Returns a double-qualifier value obtained by packing the components of v into a 64-bit value. More...
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double v)
 Returns a two-component unsigned integer vector representation of v. More...
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint v)
 Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: packing.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
packing.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 Returns a double-qualifier value obtained by packing the components of v into a 64-bit value. More...
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double v)
 Returns a two-component unsigned integer vector representation of v. More...
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint v)
 Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00120_source.html b/external/include/glm-0.9.9.8/doc/api/a00120_source.html index 159c40fb8a..37a067644d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00120_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00120_source.html @@ -1,155 +1,155 @@ - - - - - - -0.9.9 API documentation: packing.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
packing.hpp
-
-
-Go to the documentation of this file.
1 
-
16 #pragma once
-
17 
-
18 #include "./ext/vector_uint2.hpp"
-
19 #include "./ext/vector_float2.hpp"
-
20 #include "./ext/vector_float4.hpp"
-
21 
-
22 namespace glm
-
23 {
-
26 
-
38  GLM_FUNC_DECL uint packUnorm2x16(vec2 const& v);
-
39 
-
51  GLM_FUNC_DECL uint packSnorm2x16(vec2 const& v);
-
52 
-
64  GLM_FUNC_DECL uint packUnorm4x8(vec4 const& v);
-
65 
-
77  GLM_FUNC_DECL uint packSnorm4x8(vec4 const& v);
-
78 
-
90  GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p);
-
91 
-
103  GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p);
-
104 
-
116  GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p);
-
117 
-
129  GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p);
-
130 
-
139  GLM_FUNC_DECL double packDouble2x32(uvec2 const& v);
-
140 
-
148  GLM_FUNC_DECL uvec2 unpackDouble2x32(double v);
-
149 
-
158  GLM_FUNC_DECL uint packHalf2x16(vec2 const& v);
-
159 
-
168  GLM_FUNC_DECL vec2 unpackHalf2x16(uint v);
-
169 
-
171 }//namespace glm
-
172 
-
173 #include "detail/func_packing.inl"
-
GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)
Returns a two-component unsigned integer vector representation of v.
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
-
GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)
Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...
-
Core features
-
GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
-
GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)
Returns a double-qualifier value obtained by packing the components of v into a 64-bit value...
-
GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)
Returns an unsigned integer obtained by converting the components of a two-component floating-point v...
-
Core features
-
GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: packing.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
packing.hpp
+
+
+Go to the documentation of this file.
1 
+
16 #pragma once
+
17 
+
18 #include "./ext/vector_uint2.hpp"
+
19 #include "./ext/vector_float2.hpp"
+
20 #include "./ext/vector_float4.hpp"
+
21 
+
22 namespace glm
+
23 {
+
26 
+
38  GLM_FUNC_DECL uint packUnorm2x16(vec2 const& v);
+
39 
+
51  GLM_FUNC_DECL uint packSnorm2x16(vec2 const& v);
+
52 
+
64  GLM_FUNC_DECL uint packUnorm4x8(vec4 const& v);
+
65 
+
77  GLM_FUNC_DECL uint packSnorm4x8(vec4 const& v);
+
78 
+
90  GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p);
+
91 
+
103  GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p);
+
104 
+
116  GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p);
+
117 
+
129  GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p);
+
130 
+
139  GLM_FUNC_DECL double packDouble2x32(uvec2 const& v);
+
140 
+
148  GLM_FUNC_DECL uvec2 unpackDouble2x32(double v);
+
149 
+
158  GLM_FUNC_DECL uint packHalf2x16(vec2 const& v);
+
159 
+
168  GLM_FUNC_DECL vec2 unpackHalf2x16(uint v);
+
169 
+
171 }//namespace glm
+
172 
+
173 #include "detail/func_packing.inl"
+
GLM_FUNC_DECL vec2 unpackUnorm2x16(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
GLM_FUNC_DECL uint packSnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL uint packSnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL uint packUnorm2x16(vec2 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL uvec2 unpackDouble2x32(double v)
Returns a two-component unsigned integer vector representation of v.
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
GLM_FUNC_DECL vec2 unpackSnorm2x16(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
+
GLM_FUNC_DECL vec2 unpackHalf2x16(uint v)
Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned...
+
Core features
+
GLM_FUNC_DECL uint packUnorm4x8(vec4 const &v)
First, converts each component of the normalized floating-point value v into 8- or 16-bit integer val...
+
GLM_FUNC_DECL vec4 unpackSnorm4x8(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
GLM_FUNC_DECL double packDouble2x32(uvec2 const &v)
Returns a double-qualifier value obtained by packing the components of v into a 64-bit value...
+
GLM_FUNC_DECL uint packHalf2x16(vec2 const &v)
Returns an unsigned integer obtained by converting the components of a two-component floating-point v...
+
Core features
+
GLM_FUNC_DECL vec4 unpackUnorm4x8(uint p)
First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00121.html b/external/include/glm-0.9.9.8/doc/api/a00121.html index 4bca5a6c62..98f3c40147 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00121.html +++ b/external/include/glm-0.9.9.8/doc/api/a00121.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: perpendicular.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
perpendicular.hpp File Reference
-
-
- -

GLM_GTX_perpendicular -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType perp (genType const &x, genType const &Normal)
 Projects x a perpendicular axis of Normal. More...
 
-

Detailed Description

-

GLM_GTX_perpendicular

-
See also
Core features (dependence)
-
-GLM_GTX_projection (dependence)
- -

Definition in file perpendicular.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: perpendicular.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
perpendicular.hpp File Reference
+
+
+ +

GLM_GTX_perpendicular +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType perp (genType const &x, genType const &Normal)
 Projects x a perpendicular axis of Normal. More...
 
+

Detailed Description

+

GLM_GTX_perpendicular

+
See also
Core features (dependence)
+
+GLM_GTX_projection (dependence)
+ +

Definition in file perpendicular.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00121_source.html b/external/include/glm-0.9.9.8/doc/api/a00121_source.html index aab91a187f..23b639cee9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00121_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00121_source.html @@ -1,125 +1,125 @@ - - - - - - -0.9.9 API documentation: perpendicular.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
perpendicular.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include "../gtx/projection.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_perpendicular extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<typename genType>
-
36  GLM_FUNC_DECL genType perp(genType const& x, genType const& Normal);
-
37 
-
39 }//namespace glm
-
40 
-
41 #include "perpendicular.inl"
-
GLM_FUNC_DECL genType perp(genType const &x, genType const &Normal)
Projects x a perpendicular axis of Normal.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: perpendicular.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
perpendicular.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include "../gtx/projection.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_perpendicular extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<typename genType>
+
36  GLM_FUNC_DECL genType perp(genType const& x, genType const& Normal);
+
37 
+
39 }//namespace glm
+
40 
+
41 #include "perpendicular.inl"
+
GLM_FUNC_DECL genType perp(genType const &x, genType const &Normal)
Projects x a perpendicular axis of Normal.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00122.html b/external/include/glm-0.9.9.8/doc/api/a00122.html index 537b6de029..0727653df4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00122.html +++ b/external/include/glm-0.9.9.8/doc/api/a00122.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: polar_coordinates.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
polar_coordinates.hpp File Reference
-
-
- -

GLM_GTX_polar_coordinates -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > euclidean (vec< 2, T, Q > const &polar)
 Convert Polar to Euclidean coordinates. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > polar (vec< 3, T, Q > const &euclidean)
 Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. More...
 
-

Detailed Description

-

GLM_GTX_polar_coordinates

-
See also
Core features (dependence)
- -

Definition in file polar_coordinates.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: polar_coordinates.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
polar_coordinates.hpp File Reference
+
+
+ +

GLM_GTX_polar_coordinates +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > euclidean (vec< 2, T, Q > const &polar)
 Convert Polar to Euclidean coordinates. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > polar (vec< 3, T, Q > const &euclidean)
 Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. More...
 
+

Detailed Description

+

GLM_GTX_polar_coordinates

+
See also
Core features (dependence)
+ +

Definition in file polar_coordinates.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00122_source.html b/external/include/glm-0.9.9.8/doc/api/a00122_source.html index 85bc08cdf0..5765202cfe 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00122_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00122_source.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: polar_coordinates.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
polar_coordinates.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
34  template<typename T, qualifier Q>
-
35  GLM_FUNC_DECL vec<3, T, Q> polar(
-
36  vec<3, T, Q> const& euclidean);
-
37 
-
41  template<typename T, qualifier Q>
-
42  GLM_FUNC_DECL vec<3, T, Q> euclidean(
-
43  vec<2, T, Q> const& polar);
-
44 
-
46 }//namespace glm
-
47 
-
48 #include "polar_coordinates.inl"
-
GLM_FUNC_DECL vec< 3, T, Q > polar(vec< 3, T, Q > const &euclidean)
Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...
-
GLM_FUNC_DECL vec< 3, T, Q > euclidean(vec< 2, T, Q > const &polar)
Convert Polar to Euclidean coordinates.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: polar_coordinates.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
polar_coordinates.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_polar_coordinates extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
34  template<typename T, qualifier Q>
+
35  GLM_FUNC_DECL vec<3, T, Q> polar(
+
36  vec<3, T, Q> const& euclidean);
+
37 
+
41  template<typename T, qualifier Q>
+
42  GLM_FUNC_DECL vec<3, T, Q> euclidean(
+
43  vec<2, T, Q> const& polar);
+
44 
+
46 }//namespace glm
+
47 
+
48 #include "polar_coordinates.inl"
+
GLM_FUNC_DECL vec< 3, T, Q > polar(vec< 3, T, Q > const &euclidean)
Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude...
+
GLM_FUNC_DECL vec< 3, T, Q > euclidean(vec< 2, T, Q > const &polar)
Convert Polar to Euclidean coordinates.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00123.html b/external/include/glm-0.9.9.8/doc/api/a00123.html index 5dda94d88c..fd40a9898d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00123.html +++ b/external/include/glm-0.9.9.8/doc/api/a00123.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: projection.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
projection.hpp File Reference
-
-
- -

GLM_GTX_projection -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType proj (genType const &x, genType const &Normal)
 Projects x on Normal. More...
 
-

Detailed Description

-

GLM_GTX_projection

-
See also
Core features (dependence)
- -

Definition in file projection.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: projection.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
projection.hpp File Reference
+
+
+ +

GLM_GTX_projection +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType proj (genType const &x, genType const &Normal)
 Projects x on Normal. More...
 
+

Detailed Description

+

GLM_GTX_projection

+
See also
Core features (dependence)
+ +

Definition in file projection.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00123_source.html b/external/include/glm-0.9.9.8/doc/api/a00123_source.html index 626af2c72a..b51acc05dc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00123_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00123_source.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: projection.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
projection.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../geometric.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_projection extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
37  template<typename genType>
-
38  GLM_FUNC_DECL genType proj(genType const& x, genType const& Normal);
-
39 
-
41 }//namespace glm
-
42 
-
43 #include "projection.inl"
-
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Projects x on Normal.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: projection.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
projection.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../geometric.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_projection extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
37  template<typename genType>
+
38  GLM_FUNC_DECL genType proj(genType const& x, genType const& Normal);
+
39 
+
41 }//namespace glm
+
42 
+
43 #include "projection.inl"
+
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Projects x on Normal.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00124_source.html b/external/include/glm-0.9.9.8/doc/api/a00124_source.html index b36efeead8..e648d3e412 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00124_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00124_source.html @@ -1,332 +1,332 @@ - - - - - - -0.9.9 API documentation: qualifier.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
qualifier.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "setup.hpp"
-
4 
-
5 namespace glm
-
6 {
-
8  enum qualifier
-
9  {
-
10  packed_highp,
-
11  packed_mediump,
-
12  packed_lowp,
-
13 
-
14 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
-
15  aligned_highp,
-
16  aligned_mediump,
-
17  aligned_lowp, // ///< Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance
-
18  aligned = aligned_highp,
-
19 # endif
-
20 
-
21  highp = packed_highp,
-
22  mediump = packed_mediump,
-
23  lowp = packed_lowp,
-
24  packed = packed_highp,
-
25 
-
26 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE && defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)
-
27  defaultp = aligned_highp
-
28 # else
-
29  defaultp = highp
-
30 # endif
-
31  };
-
32 
-
33  typedef qualifier precision;
-
34 
-
35  template<length_t L, typename T, qualifier Q = defaultp> struct vec;
-
36  template<length_t C, length_t R, typename T, qualifier Q = defaultp> struct mat;
-
37  template<typename T, qualifier Q = defaultp> struct qua;
-
38 
-
39 # if GLM_HAS_TEMPLATE_ALIASES
-
40  template <typename T, qualifier Q = defaultp> using tvec1 = vec<1, T, Q>;
-
41  template <typename T, qualifier Q = defaultp> using tvec2 = vec<2, T, Q>;
-
42  template <typename T, qualifier Q = defaultp> using tvec3 = vec<3, T, Q>;
-
43  template <typename T, qualifier Q = defaultp> using tvec4 = vec<4, T, Q>;
-
44  template <typename T, qualifier Q = defaultp> using tmat2x2 = mat<2, 2, T, Q>;
-
45  template <typename T, qualifier Q = defaultp> using tmat2x3 = mat<2, 3, T, Q>;
-
46  template <typename T, qualifier Q = defaultp> using tmat2x4 = mat<2, 4, T, Q>;
-
47  template <typename T, qualifier Q = defaultp> using tmat3x2 = mat<3, 2, T, Q>;
-
48  template <typename T, qualifier Q = defaultp> using tmat3x3 = mat<3, 3, T, Q>;
-
49  template <typename T, qualifier Q = defaultp> using tmat3x4 = mat<3, 4, T, Q>;
-
50  template <typename T, qualifier Q = defaultp> using tmat4x2 = mat<4, 2, T, Q>;
-
51  template <typename T, qualifier Q = defaultp> using tmat4x3 = mat<4, 3, T, Q>;
-
52  template <typename T, qualifier Q = defaultp> using tmat4x4 = mat<4, 4, T, Q>;
-
53  template <typename T, qualifier Q = defaultp> using tquat = qua<T, Q>;
-
54 # endif
-
55 
-
56 namespace detail
-
57 {
-
58  template<glm::qualifier P>
-
59  struct is_aligned
-
60  {
-
61  static const bool value = false;
-
62  };
-
63 
-
64 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
-
65  template<>
-
66  struct is_aligned<glm::aligned_lowp>
-
67  {
-
68  static const bool value = true;
-
69  };
-
70 
-
71  template<>
-
72  struct is_aligned<glm::aligned_mediump>
-
73  {
-
74  static const bool value = true;
-
75  };
-
76 
-
77  template<>
-
78  struct is_aligned<glm::aligned_highp>
-
79  {
-
80  static const bool value = true;
-
81  };
-
82 # endif
-
83 
-
84  template<length_t L, typename T, bool is_aligned>
-
85  struct storage
-
86  {
-
87  typedef struct type {
-
88  T data[L];
-
89  } type;
-
90  };
-
91 
-
92 # if GLM_HAS_ALIGNOF
-
93  template<length_t L, typename T>
-
94  struct storage<L, T, true>
-
95  {
-
96  typedef struct alignas(L * sizeof(T)) type {
-
97  T data[L];
-
98  } type;
-
99  };
-
100 
-
101  template<typename T>
-
102  struct storage<3, T, true>
-
103  {
-
104  typedef struct alignas(4 * sizeof(T)) type {
-
105  T data[4];
-
106  } type;
-
107  };
-
108 # endif
-
109 
-
110 # if GLM_ARCH & GLM_ARCH_SSE2_BIT
-
111  template<>
-
112  struct storage<4, float, true>
-
113  {
-
114  typedef glm_f32vec4 type;
-
115  };
-
116 
-
117  template<>
-
118  struct storage<4, int, true>
-
119  {
-
120  typedef glm_i32vec4 type;
-
121  };
-
122 
-
123  template<>
-
124  struct storage<4, unsigned int, true>
-
125  {
-
126  typedef glm_u32vec4 type;
-
127  };
-
128 
-
129  template<>
-
130  struct storage<2, double, true>
-
131  {
-
132  typedef glm_f64vec2 type;
-
133  };
-
134 
-
135  template<>
-
136  struct storage<2, detail::int64, true>
-
137  {
-
138  typedef glm_i64vec2 type;
-
139  };
-
140 
-
141  template<>
-
142  struct storage<2, detail::uint64, true>
-
143  {
-
144  typedef glm_u64vec2 type;
-
145  };
-
146 # endif
-
147 
-
148 # if (GLM_ARCH & GLM_ARCH_AVX_BIT)
-
149  template<>
-
150  struct storage<4, double, true>
-
151  {
-
152  typedef glm_f64vec4 type;
-
153  };
-
154 # endif
-
155 
-
156 # if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
-
157  template<>
-
158  struct storage<4, detail::int64, true>
-
159  {
-
160  typedef glm_i64vec4 type;
-
161  };
-
162 
-
163  template<>
-
164  struct storage<4, detail::uint64, true>
-
165  {
-
166  typedef glm_u64vec4 type;
-
167  };
-
168 # endif
-
169 
-
170 # if GLM_ARCH & GLM_ARCH_NEON_BIT
-
171  template<>
-
172  struct storage<4, float, true>
-
173  {
-
174  typedef glm_f32vec4 type;
-
175  };
-
176 
-
177  template<>
-
178  struct storage<4, int, true>
-
179  {
-
180  typedef glm_i32vec4 type;
-
181  };
-
182 
-
183  template<>
-
184  struct storage<4, unsigned int, true>
-
185  {
-
186  typedef glm_u32vec4 type;
-
187  };
-
188 # endif
-
189 
-
190  enum genTypeEnum
-
191  {
-
192  GENTYPE_VEC,
-
193  GENTYPE_MAT,
-
194  GENTYPE_QUAT
-
195  };
-
196 
-
197  template <typename genType>
-
198  struct genTypeTrait
-
199  {};
-
200 
-
201  template <length_t C, length_t R, typename T>
-
202  struct genTypeTrait<mat<C, R, T> >
-
203  {
-
204  static const genTypeEnum GENTYPE = GENTYPE_MAT;
-
205  };
-
206 
-
207  template<typename genType, genTypeEnum type>
-
208  struct init_gentype
-
209  {
-
210  };
-
211 
-
212  template<typename genType>
-
213  struct init_gentype<genType, GENTYPE_QUAT>
-
214  {
-
215  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genType identity()
-
216  {
-
217  return genType(1, 0, 0, 0);
-
218  }
-
219  };
-
220 
-
221  template<typename genType>
-
222  struct init_gentype<genType, GENTYPE_MAT>
-
223  {
-
224  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genType identity()
-
225  {
-
226  return genType(1);
-
227  }
-
228  };
-
229 }//namespace detail
-
230 }//namespace glm
-
GLM_FUNC_DECL GLM_CONSTEXPR genType identity()
Builds an identity matrix.
-
detail::uint64 uint64
64 bit unsigned integer type.
-
detail::int64 int64
64 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: qualifier.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
qualifier.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "setup.hpp"
+
4 
+
5 namespace glm
+
6 {
+
8  enum qualifier
+
9  {
+
10  packed_highp,
+
11  packed_mediump,
+
12  packed_lowp,
+
13 
+
14 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+
15  aligned_highp,
+
16  aligned_mediump,
+
17  aligned_lowp, // ///< Typed data is aligned in memory allowing SIMD optimizations and operations are executed with high precision in term of ULPs to maximize performance
+
18  aligned = aligned_highp,
+
19 # endif
+
20 
+
21  highp = packed_highp,
+
22  mediump = packed_mediump,
+
23  lowp = packed_lowp,
+
24  packed = packed_highp,
+
25 
+
26 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE && defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)
+
27  defaultp = aligned_highp
+
28 # else
+
29  defaultp = highp
+
30 # endif
+
31  };
+
32 
+
33  typedef qualifier precision;
+
34 
+
35  template<length_t L, typename T, qualifier Q = defaultp> struct vec;
+
36  template<length_t C, length_t R, typename T, qualifier Q = defaultp> struct mat;
+
37  template<typename T, qualifier Q = defaultp> struct qua;
+
38 
+
39 # if GLM_HAS_TEMPLATE_ALIASES
+
40  template <typename T, qualifier Q = defaultp> using tvec1 = vec<1, T, Q>;
+
41  template <typename T, qualifier Q = defaultp> using tvec2 = vec<2, T, Q>;
+
42  template <typename T, qualifier Q = defaultp> using tvec3 = vec<3, T, Q>;
+
43  template <typename T, qualifier Q = defaultp> using tvec4 = vec<4, T, Q>;
+
44  template <typename T, qualifier Q = defaultp> using tmat2x2 = mat<2, 2, T, Q>;
+
45  template <typename T, qualifier Q = defaultp> using tmat2x3 = mat<2, 3, T, Q>;
+
46  template <typename T, qualifier Q = defaultp> using tmat2x4 = mat<2, 4, T, Q>;
+
47  template <typename T, qualifier Q = defaultp> using tmat3x2 = mat<3, 2, T, Q>;
+
48  template <typename T, qualifier Q = defaultp> using tmat3x3 = mat<3, 3, T, Q>;
+
49  template <typename T, qualifier Q = defaultp> using tmat3x4 = mat<3, 4, T, Q>;
+
50  template <typename T, qualifier Q = defaultp> using tmat4x2 = mat<4, 2, T, Q>;
+
51  template <typename T, qualifier Q = defaultp> using tmat4x3 = mat<4, 3, T, Q>;
+
52  template <typename T, qualifier Q = defaultp> using tmat4x4 = mat<4, 4, T, Q>;
+
53  template <typename T, qualifier Q = defaultp> using tquat = qua<T, Q>;
+
54 # endif
+
55 
+
56 namespace detail
+
57 {
+
58  template<glm::qualifier P>
+
59  struct is_aligned
+
60  {
+
61  static const bool value = false;
+
62  };
+
63 
+
64 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+
65  template<>
+
66  struct is_aligned<glm::aligned_lowp>
+
67  {
+
68  static const bool value = true;
+
69  };
+
70 
+
71  template<>
+
72  struct is_aligned<glm::aligned_mediump>
+
73  {
+
74  static const bool value = true;
+
75  };
+
76 
+
77  template<>
+
78  struct is_aligned<glm::aligned_highp>
+
79  {
+
80  static const bool value = true;
+
81  };
+
82 # endif
+
83 
+
84  template<length_t L, typename T, bool is_aligned>
+
85  struct storage
+
86  {
+
87  typedef struct type {
+
88  T data[L];
+
89  } type;
+
90  };
+
91 
+
92 # if GLM_HAS_ALIGNOF
+
93  template<length_t L, typename T>
+
94  struct storage<L, T, true>
+
95  {
+
96  typedef struct alignas(L * sizeof(T)) type {
+
97  T data[L];
+
98  } type;
+
99  };
+
100 
+
101  template<typename T>
+
102  struct storage<3, T, true>
+
103  {
+
104  typedef struct alignas(4 * sizeof(T)) type {
+
105  T data[4];
+
106  } type;
+
107  };
+
108 # endif
+
109 
+
110 # if GLM_ARCH & GLM_ARCH_SSE2_BIT
+
111  template<>
+
112  struct storage<4, float, true>
+
113  {
+
114  typedef glm_f32vec4 type;
+
115  };
+
116 
+
117  template<>
+
118  struct storage<4, int, true>
+
119  {
+
120  typedef glm_i32vec4 type;
+
121  };
+
122 
+
123  template<>
+
124  struct storage<4, unsigned int, true>
+
125  {
+
126  typedef glm_u32vec4 type;
+
127  };
+
128 
+
129  template<>
+
130  struct storage<2, double, true>
+
131  {
+
132  typedef glm_f64vec2 type;
+
133  };
+
134 
+
135  template<>
+
136  struct storage<2, detail::int64, true>
+
137  {
+
138  typedef glm_i64vec2 type;
+
139  };
+
140 
+
141  template<>
+
142  struct storage<2, detail::uint64, true>
+
143  {
+
144  typedef glm_u64vec2 type;
+
145  };
+
146 # endif
+
147 
+
148 # if (GLM_ARCH & GLM_ARCH_AVX_BIT)
+
149  template<>
+
150  struct storage<4, double, true>
+
151  {
+
152  typedef glm_f64vec4 type;
+
153  };
+
154 # endif
+
155 
+
156 # if (GLM_ARCH & GLM_ARCH_AVX2_BIT)
+
157  template<>
+
158  struct storage<4, detail::int64, true>
+
159  {
+
160  typedef glm_i64vec4 type;
+
161  };
+
162 
+
163  template<>
+
164  struct storage<4, detail::uint64, true>
+
165  {
+
166  typedef glm_u64vec4 type;
+
167  };
+
168 # endif
+
169 
+
170 # if GLM_ARCH & GLM_ARCH_NEON_BIT
+
171  template<>
+
172  struct storage<4, float, true>
+
173  {
+
174  typedef glm_f32vec4 type;
+
175  };
+
176 
+
177  template<>
+
178  struct storage<4, int, true>
+
179  {
+
180  typedef glm_i32vec4 type;
+
181  };
+
182 
+
183  template<>
+
184  struct storage<4, unsigned int, true>
+
185  {
+
186  typedef glm_u32vec4 type;
+
187  };
+
188 # endif
+
189 
+
190  enum genTypeEnum
+
191  {
+
192  GENTYPE_VEC,
+
193  GENTYPE_MAT,
+
194  GENTYPE_QUAT
+
195  };
+
196 
+
197  template <typename genType>
+
198  struct genTypeTrait
+
199  {};
+
200 
+
201  template <length_t C, length_t R, typename T>
+
202  struct genTypeTrait<mat<C, R, T> >
+
203  {
+
204  static const genTypeEnum GENTYPE = GENTYPE_MAT;
+
205  };
+
206 
+
207  template<typename genType, genTypeEnum type>
+
208  struct init_gentype
+
209  {
+
210  };
+
211 
+
212  template<typename genType>
+
213  struct init_gentype<genType, GENTYPE_QUAT>
+
214  {
+
215  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genType identity()
+
216  {
+
217  return genType(1, 0, 0, 0);
+
218  }
+
219  };
+
220 
+
221  template<typename genType>
+
222  struct init_gentype<genType, GENTYPE_MAT>
+
223  {
+
224  GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genType identity()
+
225  {
+
226  return genType(1);
+
227  }
+
228  };
+
229 }//namespace detail
+
230 }//namespace glm
+
GLM_FUNC_DECL GLM_CONSTEXPR genType identity()
Builds an identity matrix.
+
detail::uint64 uint64
64 bit unsigned integer type.
+
detail::int64 int64
64 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00125.html b/external/include/glm-0.9.9.8/doc/api/a00125.html index e78bf25a3d..42e3bad604 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00125.html +++ b/external/include/glm-0.9.9.8/doc/api/a00125.html @@ -1,177 +1,177 @@ - - - - - - -0.9.9 API documentation: quaternion.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtc/quaternion.hpp File Reference
-
-
- -

GLM_GTC_quaternion -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles (qua< T, Q > const &x)
 Returns euler angles, pitch as x, yaw as y, roll as z. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T pitch (qua< T, Q > const &x)
 Returns pitch value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 3, 3, T, Q > const &x)
 Converts a pure rotation 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 4, 4, T, Q > const &x)
 Converts a pure rotation 4 * 4 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAt (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a look at quaternion based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtLH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a left-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtRH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a right-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T roll (qua< T, Q > const &x)
 Returns roll value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T yaw (qua< T, Q > const &x)
 Returns yaw value of euler angles expressed in radians. More...
 
-

Detailed Description

-

GLM_GTC_quaternion

-
See also
Core features (dependence)
-
-GLM_GTC_constants (dependence)
- -

Definition in file gtc/quaternion.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: quaternion.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtc/quaternion.hpp File Reference
+
+
+ +

GLM_GTC_quaternion +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles (qua< T, Q > const &x)
 Returns euler angles, pitch as x, yaw as y, roll as z. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T pitch (qua< T, Q > const &x)
 Returns pitch value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 3, 3, T, Q > const &x)
 Converts a pure rotation 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 4, 4, T, Q > const &x)
 Converts a pure rotation 4 * 4 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAt (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a look at quaternion based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtLH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a left-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtRH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a right-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T roll (qua< T, Q > const &x)
 Returns roll value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T yaw (qua< T, Q > const &x)
 Returns yaw value of euler angles expressed in radians. More...
 
+

Detailed Description

+

GLM_GTC_quaternion

+
See also
Core features (dependence)
+
+GLM_GTC_constants (dependence)
+ +

Definition in file gtc/quaternion.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00125_source.html b/external/include/glm-0.9.9.8/doc/api/a00125_source.html index 85befcb22b..8bd0c8fead 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00125_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00125_source.html @@ -1,195 +1,195 @@ - - - - - - -0.9.9 API documentation: quaternion.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../gtc/constants.hpp"
-
18 #include "../gtc/matrix_transform.hpp"
-
19 #include "../ext/vector_relational.hpp"
-
20 #include "../ext/quaternion_common.hpp"
-
21 #include "../ext/quaternion_float.hpp"
-
22 #include "../ext/quaternion_float_precision.hpp"
-
23 #include "../ext/quaternion_double.hpp"
-
24 #include "../ext/quaternion_double_precision.hpp"
-
25 #include "../ext/quaternion_relational.hpp"
-
26 #include "../ext/quaternion_geometric.hpp"
-
27 #include "../ext/quaternion_trigonometric.hpp"
-
28 #include "../ext/quaternion_transform.hpp"
-
29 #include "../detail/type_mat3x3.hpp"
-
30 #include "../detail/type_mat4x4.hpp"
-
31 #include "../detail/type_vec3.hpp"
-
32 #include "../detail/type_vec4.hpp"
-
33 
-
34 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
35 # pragma message("GLM: GLM_GTC_quaternion extension included")
-
36 #endif
-
37 
-
38 namespace glm
-
39 {
-
42 
-
49  template<typename T, qualifier Q>
-
50  GLM_FUNC_DECL vec<3, T, Q> eulerAngles(qua<T, Q> const& x);
-
51 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL T roll(qua<T, Q> const& x);
-
59 
-
65  template<typename T, qualifier Q>
-
66  GLM_FUNC_DECL T pitch(qua<T, Q> const& x);
-
67 
-
73  template<typename T, qualifier Q>
-
74  GLM_FUNC_DECL T yaw(qua<T, Q> const& x);
-
75 
-
81  template<typename T, qualifier Q>
-
82  GLM_FUNC_DECL mat<3, 3, T, Q> mat3_cast(qua<T, Q> const& x);
-
83 
-
89  template<typename T, qualifier Q>
-
90  GLM_FUNC_DECL mat<4, 4, T, Q> mat4_cast(qua<T, Q> const& x);
-
91 
-
97  template<typename T, qualifier Q>
-
98  GLM_FUNC_DECL qua<T, Q> quat_cast(mat<3, 3, T, Q> const& x);
-
99 
-
105  template<typename T, qualifier Q>
-
106  GLM_FUNC_DECL qua<T, Q> quat_cast(mat<4, 4, T, Q> const& x);
-
107 
-
114  template<typename T, qualifier Q>
-
115  GLM_FUNC_DECL vec<4, bool, Q> lessThan(qua<T, Q> const& x, qua<T, Q> const& y);
-
116 
-
123  template<typename T, qualifier Q>
-
124  GLM_FUNC_DECL vec<4, bool, Q> lessThanEqual(qua<T, Q> const& x, qua<T, Q> const& y);
-
125 
-
132  template<typename T, qualifier Q>
-
133  GLM_FUNC_DECL vec<4, bool, Q> greaterThan(qua<T, Q> const& x, qua<T, Q> const& y);
-
134 
-
141  template<typename T, qualifier Q>
-
142  GLM_FUNC_DECL vec<4, bool, Q> greaterThanEqual(qua<T, Q> const& x, qua<T, Q> const& y);
-
143 
-
148  template<typename T, qualifier Q>
-
149  GLM_FUNC_DECL qua<T, Q> quatLookAt(
-
150  vec<3, T, Q> const& direction,
-
151  vec<3, T, Q> const& up);
-
152 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL qua<T, Q> quatLookAtRH(
-
159  vec<3, T, Q> const& direction,
-
160  vec<3, T, Q> const& up);
-
161 
-
166  template<typename T, qualifier Q>
-
167  GLM_FUNC_DECL qua<T, Q> quatLookAtLH(
-
168  vec<3, T, Q> const& direction,
-
169  vec<3, T, Q> const& up);
-
171 } //namespace glm
-
172 
-
173 #include "quaternion.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x > y.
-
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x >= y.
-
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x <= y.
-
GLM_FUNC_DECL T roll(qua< T, Q > const &x)
Returns roll value of euler angles expressed in radians.
-
GLM_FUNC_DECL qua< T, Q > quatLookAt(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a look at quaternion based on the default handedness.
-
GLM_FUNC_DECL qua< T, Q > quat_cast(mat< 4, 4, T, Q > const &x)
Converts a pure rotation 4 * 4 matrix to a quaternion.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles(qua< T, Q > const &x)
Returns euler angles, pitch as x, yaw as y, roll as z.
-
GLM_FUNC_DECL vec< 4, bool, Q > lessThan(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison result of x < y.
-
GLM_FUNC_DECL T yaw(qua< T, Q > const &x)
Returns yaw value of euler angles expressed in radians.
-
GLM_FUNC_DECL qua< T, Q > quatLookAtLH(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a left-handed look at quaternion.
-
GLM_FUNC_DECL qua< T, Q > quatLookAtRH(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a right-handed look at quaternion.
-
GLM_FUNC_DECL T pitch(qua< T, Q > const &x)
Returns pitch value of euler angles expressed in radians.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/quaternion.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../gtc/constants.hpp"
+
18 #include "../gtc/matrix_transform.hpp"
+
19 #include "../ext/vector_relational.hpp"
+
20 #include "../ext/quaternion_common.hpp"
+
21 #include "../ext/quaternion_float.hpp"
+
22 #include "../ext/quaternion_float_precision.hpp"
+
23 #include "../ext/quaternion_double.hpp"
+
24 #include "../ext/quaternion_double_precision.hpp"
+
25 #include "../ext/quaternion_relational.hpp"
+
26 #include "../ext/quaternion_geometric.hpp"
+
27 #include "../ext/quaternion_trigonometric.hpp"
+
28 #include "../ext/quaternion_transform.hpp"
+
29 #include "../detail/type_mat3x3.hpp"
+
30 #include "../detail/type_mat4x4.hpp"
+
31 #include "../detail/type_vec3.hpp"
+
32 #include "../detail/type_vec4.hpp"
+
33 
+
34 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
35 # pragma message("GLM: GLM_GTC_quaternion extension included")
+
36 #endif
+
37 
+
38 namespace glm
+
39 {
+
42 
+
49  template<typename T, qualifier Q>
+
50  GLM_FUNC_DECL vec<3, T, Q> eulerAngles(qua<T, Q> const& x);
+
51 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL T roll(qua<T, Q> const& x);
+
59 
+
65  template<typename T, qualifier Q>
+
66  GLM_FUNC_DECL T pitch(qua<T, Q> const& x);
+
67 
+
73  template<typename T, qualifier Q>
+
74  GLM_FUNC_DECL T yaw(qua<T, Q> const& x);
+
75 
+
81  template<typename T, qualifier Q>
+
82  GLM_FUNC_DECL mat<3, 3, T, Q> mat3_cast(qua<T, Q> const& x);
+
83 
+
89  template<typename T, qualifier Q>
+
90  GLM_FUNC_DECL mat<4, 4, T, Q> mat4_cast(qua<T, Q> const& x);
+
91 
+
97  template<typename T, qualifier Q>
+
98  GLM_FUNC_DECL qua<T, Q> quat_cast(mat<3, 3, T, Q> const& x);
+
99 
+
105  template<typename T, qualifier Q>
+
106  GLM_FUNC_DECL qua<T, Q> quat_cast(mat<4, 4, T, Q> const& x);
+
107 
+
114  template<typename T, qualifier Q>
+
115  GLM_FUNC_DECL vec<4, bool, Q> lessThan(qua<T, Q> const& x, qua<T, Q> const& y);
+
116 
+
123  template<typename T, qualifier Q>
+
124  GLM_FUNC_DECL vec<4, bool, Q> lessThanEqual(qua<T, Q> const& x, qua<T, Q> const& y);
+
125 
+
132  template<typename T, qualifier Q>
+
133  GLM_FUNC_DECL vec<4, bool, Q> greaterThan(qua<T, Q> const& x, qua<T, Q> const& y);
+
134 
+
141  template<typename T, qualifier Q>
+
142  GLM_FUNC_DECL vec<4, bool, Q> greaterThanEqual(qua<T, Q> const& x, qua<T, Q> const& y);
+
143 
+
148  template<typename T, qualifier Q>
+
149  GLM_FUNC_DECL qua<T, Q> quatLookAt(
+
150  vec<3, T, Q> const& direction,
+
151  vec<3, T, Q> const& up);
+
152 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL qua<T, Q> quatLookAtRH(
+
159  vec<3, T, Q> const& direction,
+
160  vec<3, T, Q> const& up);
+
161 
+
166  template<typename T, qualifier Q>
+
167  GLM_FUNC_DECL qua<T, Q> quatLookAtLH(
+
168  vec<3, T, Q> const& direction,
+
169  vec<3, T, Q> const& up);
+
171 } //namespace glm
+
172 
+
173 #include "quaternion.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x > y.
+
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x >= y.
+
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison of result x <= y.
+
GLM_FUNC_DECL T roll(qua< T, Q > const &x)
Returns roll value of euler angles expressed in radians.
+
GLM_FUNC_DECL qua< T, Q > quatLookAt(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a look at quaternion based on the default handedness.
+
GLM_FUNC_DECL qua< T, Q > quat_cast(mat< 4, 4, T, Q > const &x)
Converts a pure rotation 4 * 4 matrix to a quaternion.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles(qua< T, Q > const &x)
Returns euler angles, pitch as x, yaw as y, roll as z.
+
GLM_FUNC_DECL vec< 4, bool, Q > lessThan(qua< T, Q > const &x, qua< T, Q > const &y)
Returns the component-wise comparison result of x < y.
+
GLM_FUNC_DECL T yaw(qua< T, Q > const &x)
Returns yaw value of euler angles expressed in radians.
+
GLM_FUNC_DECL qua< T, Q > quatLookAtLH(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a left-handed look at quaternion.
+
GLM_FUNC_DECL qua< T, Q > quatLookAtRH(vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
Build a right-handed look at quaternion.
+
GLM_FUNC_DECL T pitch(qua< T, Q > const &x)
Returns pitch value of euler angles expressed in radians.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00126.html b/external/include/glm-0.9.9.8/doc/api/a00126.html index 9290a1f411..726daf77b4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00126.html +++ b/external/include/glm-0.9.9.8/doc/api/a00126.html @@ -1,181 +1,181 @@ - - - - - - -0.9.9 API documentation: quaternion.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtx/quaternion.hpp File Reference
-
-
- -

GLM_GTX_quaternion -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Compute a cross product between a quaternion and a vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &v, qua< T, Q > const &q)
 Compute a cross product between a vector and a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T extractRealComponent (qua< T, Q > const &q)
 Extract the real component of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > fastMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion normalized linear interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > intermediate (qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
 Returns an intermediate control point for squad interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length2 (qua< T, Q > const &q)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_identity ()
 Create an identity quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Returns quarternion square root. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (qua< T, Q > const &q, vec< 4, T, Q > const &v)
 Rotates a 4 components vector by a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotation (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
 Compute the rotation between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > shortMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion interpolation using the rotation short path. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > squad (qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
 Compute a point on a path according squad equation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3 (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4 (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 3, 3, T, Q > const &x)
 Converts a 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 4, 4, T, Q > const &x)
 Converts a 4 * 4 matrix to a quaternion. More...
 
-

Detailed Description

-

GLM_GTX_quaternion

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file gtx/quaternion.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: quaternion.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtx/quaternion.hpp File Reference
+
+
+ +

GLM_GTX_quaternion +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Compute a cross product between a quaternion and a vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &v, qua< T, Q > const &q)
 Compute a cross product between a vector and a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T extractRealComponent (qua< T, Q > const &q)
 Extract the real component of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > fastMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion normalized linear interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > intermediate (qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
 Returns an intermediate control point for squad interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length2 (qua< T, Q > const &q)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_identity ()
 Create an identity quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Returns quarternion square root. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (qua< T, Q > const &q, vec< 4, T, Q > const &v)
 Rotates a 4 components vector by a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotation (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
 Compute the rotation between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > shortMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion interpolation using the rotation short path. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > squad (qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
 Compute a point on a path according squad equation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3 (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4 (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 3, 3, T, Q > const &x)
 Converts a 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 4, 4, T, Q > const &x)
 Converts a 4 * 4 matrix to a quaternion. More...
 
+

Detailed Description

+

GLM_GTX_quaternion

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file gtx/quaternion.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00126_source.html b/external/include/glm-0.9.9.8/doc/api/a00126_source.html index d6eaf92a02..0206c49647 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00126_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00126_source.html @@ -1,221 +1,221 @@ - - - - - - -0.9.9 API documentation: quaternion.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/quaternion.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include "../gtc/constants.hpp"
-
19 #include "../gtc/quaternion.hpp"
-
20 #include "../ext/quaternion_exponential.hpp"
-
21 #include "../gtx/norm.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # ifndef GLM_ENABLE_EXPERIMENTAL
-
25 # pragma message("GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
26 # else
-
27 # pragma message("GLM: GLM_GTX_quaternion extension included")
-
28 # endif
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
39  template<typename T, qualifier Q>
-
40  GLM_FUNC_DECL qua<T, Q> quat_identity();
-
41 
-
45  template<typename T, qualifier Q>
-
46  GLM_FUNC_DECL vec<3, T, Q> cross(
-
47  qua<T, Q> const& q,
-
48  vec<3, T, Q> const& v);
-
49 
-
53  template<typename T, qualifier Q>
-
54  GLM_FUNC_DECL vec<3, T, Q> cross(
-
55  vec<3, T, Q> const& v,
-
56  qua<T, Q> const& q);
-
57 
-
62  template<typename T, qualifier Q>
-
63  GLM_FUNC_DECL qua<T, Q> squad(
-
64  qua<T, Q> const& q1,
-
65  qua<T, Q> const& q2,
-
66  qua<T, Q> const& s1,
-
67  qua<T, Q> const& s2,
-
68  T const& h);
-
69 
-
73  template<typename T, qualifier Q>
-
74  GLM_FUNC_DECL qua<T, Q> intermediate(
-
75  qua<T, Q> const& prev,
-
76  qua<T, Q> const& curr,
-
77  qua<T, Q> const& next);
-
78 
-
82  //template<typename T, qualifier Q>
-
83  //qua<T, Q> sqrt(
-
84  // qua<T, Q> const& q);
-
85 
-
89  template<typename T, qualifier Q>
-
90  GLM_FUNC_DECL vec<3, T, Q> rotate(
-
91  qua<T, Q> const& q,
-
92  vec<3, T, Q> const& v);
-
93 
-
97  template<typename T, qualifier Q>
-
98  GLM_FUNC_DECL vec<4, T, Q> rotate(
-
99  qua<T, Q> const& q,
-
100  vec<4, T, Q> const& v);
-
101 
-
105  template<typename T, qualifier Q>
-
106  GLM_FUNC_DECL T extractRealComponent(
-
107  qua<T, Q> const& q);
-
108 
-
112  template<typename T, qualifier Q>
-
113  GLM_FUNC_DECL mat<3, 3, T, Q> toMat3(
-
114  qua<T, Q> const& x){return mat3_cast(x);}
-
115 
-
119  template<typename T, qualifier Q>
-
120  GLM_FUNC_DECL mat<4, 4, T, Q> toMat4(
-
121  qua<T, Q> const& x){return mat4_cast(x);}
-
122 
-
126  template<typename T, qualifier Q>
-
127  GLM_FUNC_DECL qua<T, Q> toQuat(
-
128  mat<3, 3, T, Q> const& x){return quat_cast(x);}
-
129 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL qua<T, Q> toQuat(
-
135  mat<4, 4, T, Q> const& x){return quat_cast(x);}
-
136 
-
140  template<typename T, qualifier Q>
-
141  GLM_FUNC_DECL qua<T, Q> shortMix(
-
142  qua<T, Q> const& x,
-
143  qua<T, Q> const& y,
-
144  T const& a);
-
145 
-
149  template<typename T, qualifier Q>
-
150  GLM_FUNC_DECL qua<T, Q> fastMix(
-
151  qua<T, Q> const& x,
-
152  qua<T, Q> const& y,
-
153  T const& a);
-
154 
-
160  template<typename T, qualifier Q>
-
161  GLM_FUNC_DECL qua<T, Q> rotation(
-
162  vec<3, T, Q> const& orig,
-
163  vec<3, T, Q> const& dest);
-
164 
-
168  template<typename T, qualifier Q>
-
169  GLM_FUNC_DECL T length2(qua<T, Q> const& q);
-
170 
-
172 }//namespace glm
-
173 
-
174 #include "quaternion.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL qua< T, Q > shortMix(qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
Quaternion interpolation using the rotation short path.
-
GLM_FUNC_DECL qua< T, Q > quat_identity()
Create an identity quaternion.
-
GLM_FUNC_DECL qua< T, Q > quat_cast(mat< 3, 3, T, Q > const &x)
Converts a pure rotation 3 * 3 matrix to a quaternion.
-
GLM_FUNC_DECL qua< T, Q > intermediate(qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
Returns an intermediate control point for squad interpolation.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
-
GLM_FUNC_DECL T extractRealComponent(qua< T, Q > const &q)
Extract the real component of a quaternion.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
-
GLM_FUNC_DECL qua< T, Q > squad(qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
Compute a point on a path according squad equation.
-
GLM_FUNC_DECL vec< 3, T, Q > cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)
Compute a cross product between a vector and a quaternion.
-
GLM_FUNC_DECL qua< T, Q > toQuat(mat< 4, 4, T, Q > const &x)
Converts a 4 * 4 matrix to a quaternion.
-
GLM_FUNC_DECL qua< T, Q > rotation(vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
Compute the rotation between two vectors.
-
GLM_FUNC_DECL vec< 4, T, Q > rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)
Rotates a 4 components vector by a quaternion.
-
GLM_FUNC_DECL qua< T, Q > fastMix(qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
Quaternion normalized linear interpolation.
-
GLM_FUNC_DECL T length2(qua< T, Q > const &q)
Returns the squared length of x.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/quaternion.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include "../gtc/constants.hpp"
+
19 #include "../gtc/quaternion.hpp"
+
20 #include "../ext/quaternion_exponential.hpp"
+
21 #include "../gtx/norm.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # ifndef GLM_ENABLE_EXPERIMENTAL
+
25 # pragma message("GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
26 # else
+
27 # pragma message("GLM: GLM_GTX_quaternion extension included")
+
28 # endif
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
39  template<typename T, qualifier Q>
+
40  GLM_FUNC_DECL qua<T, Q> quat_identity();
+
41 
+
45  template<typename T, qualifier Q>
+
46  GLM_FUNC_DECL vec<3, T, Q> cross(
+
47  qua<T, Q> const& q,
+
48  vec<3, T, Q> const& v);
+
49 
+
53  template<typename T, qualifier Q>
+
54  GLM_FUNC_DECL vec<3, T, Q> cross(
+
55  vec<3, T, Q> const& v,
+
56  qua<T, Q> const& q);
+
57 
+
62  template<typename T, qualifier Q>
+
63  GLM_FUNC_DECL qua<T, Q> squad(
+
64  qua<T, Q> const& q1,
+
65  qua<T, Q> const& q2,
+
66  qua<T, Q> const& s1,
+
67  qua<T, Q> const& s2,
+
68  T const& h);
+
69 
+
73  template<typename T, qualifier Q>
+
74  GLM_FUNC_DECL qua<T, Q> intermediate(
+
75  qua<T, Q> const& prev,
+
76  qua<T, Q> const& curr,
+
77  qua<T, Q> const& next);
+
78 
+
82  //template<typename T, qualifier Q>
+
83  //qua<T, Q> sqrt(
+
84  // qua<T, Q> const& q);
+
85 
+
89  template<typename T, qualifier Q>
+
90  GLM_FUNC_DECL vec<3, T, Q> rotate(
+
91  qua<T, Q> const& q,
+
92  vec<3, T, Q> const& v);
+
93 
+
97  template<typename T, qualifier Q>
+
98  GLM_FUNC_DECL vec<4, T, Q> rotate(
+
99  qua<T, Q> const& q,
+
100  vec<4, T, Q> const& v);
+
101 
+
105  template<typename T, qualifier Q>
+
106  GLM_FUNC_DECL T extractRealComponent(
+
107  qua<T, Q> const& q);
+
108 
+
112  template<typename T, qualifier Q>
+
113  GLM_FUNC_DECL mat<3, 3, T, Q> toMat3(
+
114  qua<T, Q> const& x){return mat3_cast(x);}
+
115 
+
119  template<typename T, qualifier Q>
+
120  GLM_FUNC_DECL mat<4, 4, T, Q> toMat4(
+
121  qua<T, Q> const& x){return mat4_cast(x);}
+
122 
+
126  template<typename T, qualifier Q>
+
127  GLM_FUNC_DECL qua<T, Q> toQuat(
+
128  mat<3, 3, T, Q> const& x){return quat_cast(x);}
+
129 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL qua<T, Q> toQuat(
+
135  mat<4, 4, T, Q> const& x){return quat_cast(x);}
+
136 
+
140  template<typename T, qualifier Q>
+
141  GLM_FUNC_DECL qua<T, Q> shortMix(
+
142  qua<T, Q> const& x,
+
143  qua<T, Q> const& y,
+
144  T const& a);
+
145 
+
149  template<typename T, qualifier Q>
+
150  GLM_FUNC_DECL qua<T, Q> fastMix(
+
151  qua<T, Q> const& x,
+
152  qua<T, Q> const& y,
+
153  T const& a);
+
154 
+
160  template<typename T, qualifier Q>
+
161  GLM_FUNC_DECL qua<T, Q> rotation(
+
162  vec<3, T, Q> const& orig,
+
163  vec<3, T, Q> const& dest);
+
164 
+
168  template<typename T, qualifier Q>
+
169  GLM_FUNC_DECL T length2(qua<T, Q> const& q);
+
170 
+
172 }//namespace glm
+
173 
+
174 #include "quaternion.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL qua< T, Q > shortMix(qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
Quaternion interpolation using the rotation short path.
+
GLM_FUNC_DECL qua< T, Q > quat_identity()
Create an identity quaternion.
+
GLM_FUNC_DECL qua< T, Q > quat_cast(mat< 3, 3, T, Q > const &x)
Converts a pure rotation 3 * 3 matrix to a quaternion.
+
GLM_FUNC_DECL qua< T, Q > intermediate(qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
Returns an intermediate control point for squad interpolation.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4(qua< T, Q > const &x)
Converts a quaternion to a 4 * 4 matrix.
+
GLM_FUNC_DECL T extractRealComponent(qua< T, Q > const &q)
Extract the real component of a quaternion.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3(qua< T, Q > const &x)
Converts a quaternion to a 3 * 3 matrix.
+
GLM_FUNC_DECL qua< T, Q > squad(qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
Compute a point on a path according squad equation.
+
GLM_FUNC_DECL vec< 3, T, Q > cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)
Compute a cross product between a vector and a quaternion.
+
GLM_FUNC_DECL qua< T, Q > toQuat(mat< 4, 4, T, Q > const &x)
Converts a 4 * 4 matrix to a quaternion.
+
GLM_FUNC_DECL qua< T, Q > rotation(vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
Compute the rotation between two vectors.
+
GLM_FUNC_DECL vec< 4, T, Q > rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)
Rotates a 4 components vector by a quaternion.
+
GLM_FUNC_DECL qua< T, Q > fastMix(qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
Quaternion normalized linear interpolation.
+
GLM_FUNC_DECL T length2(qua< T, Q > const &q)
Returns the squared length of x.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00127.html b/external/include/glm-0.9.9.8/doc/api/a00127.html index 2b513c2fda..a946554924 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00127.html +++ b/external/include/glm-0.9.9.8/doc/api/a00127.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: quaternion_common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_common.hpp File Reference
-
-
- -

GLM_EXT_quaternion_common -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > conjugate (qua< T, Q > const &q)
 Returns the q conjugate. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > inverse (qua< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isinf (qua< T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isnan (qua< T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > lerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > mix (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_common.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_common +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > conjugate (qua< T, Q > const &q)
 Returns the q conjugate. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > inverse (qua< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isinf (qua< T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isnan (qua< T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > lerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > mix (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00127_source.html b/external/include/glm-0.9.9.8/doc/api/a00127_source.html index c3a70f6fee..098f39a5d0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00127_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00127_source.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: quaternion_common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_common.hpp
-
-
-Go to the documentation of this file.
1 
-
21 #pragma once
-
22 
-
23 // Dependency:
-
24 #include "../ext/scalar_constants.hpp"
-
25 #include "../ext/quaternion_geometric.hpp"
-
26 #include "../common.hpp"
-
27 #include "../trigonometric.hpp"
-
28 #include "../exponential.hpp"
-
29 #include <limits>
-
30 
-
31 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
32 # pragma message("GLM: GLM_EXT_quaternion_common extension included")
-
33 #endif
-
34 
-
35 namespace glm
-
36 {
-
39 
-
52  template<typename T, qualifier Q>
-
53  GLM_FUNC_DECL qua<T, Q> mix(qua<T, Q> const& x, qua<T, Q> const& y, T a);
-
54 
-
64  template<typename T, qualifier Q>
-
65  GLM_FUNC_DECL qua<T, Q> lerp(qua<T, Q> const& x, qua<T, Q> const& y, T a);
-
66 
-
76  template<typename T, qualifier Q>
-
77  GLM_FUNC_DECL qua<T, Q> slerp(qua<T, Q> const& x, qua<T, Q> const& y, T a);
-
78 
-
83  template<typename T, qualifier Q>
-
84  GLM_FUNC_DECL qua<T, Q> conjugate(qua<T, Q> const& q);
-
85 
-
90  template<typename T, qualifier Q>
-
91  GLM_FUNC_DECL qua<T, Q> inverse(qua<T, Q> const& q);
-
92 
-
103  template<typename T, qualifier Q>
-
104  GLM_FUNC_DECL vec<4, bool, Q> isnan(qua<T, Q> const& x);
-
105 
-
114  template<typename T, qualifier Q>
-
115  GLM_FUNC_DECL vec<4, bool, Q> isinf(qua<T, Q> const& x);
-
116 
-
118 } //namespace glm
-
119 
-
120 #include "quaternion_common.inl"
-
GLM_FUNC_DECL vec< 4, bool, Q > isinf(qua< T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
-
GLM_FUNC_DECL vec< 4, bool, Q > isnan(qua< T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
-
GLM_FUNC_DECL qua< T, Q > conjugate(qua< T, Q > const &q)
Returns the q conjugate.
-
GLM_FUNC_DECL qua< T, Q > slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Spherical linear interpolation of two quaternions.
-
GLM_FUNC_DECL qua< T, Q > inverse(qua< T, Q > const &q)
Returns the q inverse.
-
GLM_FUNC_DECL qua< T, Q > lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Linear interpolation of two quaternions.
-
GLM_FUNC_DECL qua< T, Q > mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Spherical linear interpolation of two quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_common.hpp
+
+
+Go to the documentation of this file.
1 
+
21 #pragma once
+
22 
+
23 // Dependency:
+
24 #include "../ext/scalar_constants.hpp"
+
25 #include "../ext/quaternion_geometric.hpp"
+
26 #include "../common.hpp"
+
27 #include "../trigonometric.hpp"
+
28 #include "../exponential.hpp"
+
29 #include <limits>
+
30 
+
31 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
32 # pragma message("GLM: GLM_EXT_quaternion_common extension included")
+
33 #endif
+
34 
+
35 namespace glm
+
36 {
+
39 
+
52  template<typename T, qualifier Q>
+
53  GLM_FUNC_DECL qua<T, Q> mix(qua<T, Q> const& x, qua<T, Q> const& y, T a);
+
54 
+
64  template<typename T, qualifier Q>
+
65  GLM_FUNC_DECL qua<T, Q> lerp(qua<T, Q> const& x, qua<T, Q> const& y, T a);
+
66 
+
76  template<typename T, qualifier Q>
+
77  GLM_FUNC_DECL qua<T, Q> slerp(qua<T, Q> const& x, qua<T, Q> const& y, T a);
+
78 
+
83  template<typename T, qualifier Q>
+
84  GLM_FUNC_DECL qua<T, Q> conjugate(qua<T, Q> const& q);
+
85 
+
90  template<typename T, qualifier Q>
+
91  GLM_FUNC_DECL qua<T, Q> inverse(qua<T, Q> const& q);
+
92 
+
103  template<typename T, qualifier Q>
+
104  GLM_FUNC_DECL vec<4, bool, Q> isnan(qua<T, Q> const& x);
+
105 
+
114  template<typename T, qualifier Q>
+
115  GLM_FUNC_DECL vec<4, bool, Q> isinf(qua<T, Q> const& x);
+
116 
+
118 } //namespace glm
+
119 
+
120 #include "quaternion_common.inl"
+
GLM_FUNC_DECL vec< 4, bool, Q > isinf(qua< T, Q > const &x)
Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...
+
GLM_FUNC_DECL vec< 4, bool, Q > isnan(qua< T, Q > const &x)
Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of...
+
GLM_FUNC_DECL qua< T, Q > conjugate(qua< T, Q > const &q)
Returns the q conjugate.
+
GLM_FUNC_DECL qua< T, Q > slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Spherical linear interpolation of two quaternions.
+
GLM_FUNC_DECL qua< T, Q > inverse(qua< T, Q > const &q)
Returns the q inverse.
+
GLM_FUNC_DECL qua< T, Q > lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Linear interpolation of two quaternions.
+
GLM_FUNC_DECL qua< T, Q > mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Spherical linear interpolation of two quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00128.html b/external/include/glm-0.9.9.8/doc/api/a00128.html index 2c40585a5e..f4b74996df 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00128.html +++ b/external/include/glm-0.9.9.8/doc/api/a00128.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: quaternion_double.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_double.hpp File Reference
-
-
- -

GLM_EXT_quaternion_double -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef qua< double, defaultp > dquat
 Quaternion of double-precision floating-point numbers.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_double.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_double.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_double +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef qua< double, defaultp > dquat
 Quaternion of double-precision floating-point numbers.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00128_source.html b/external/include/glm-0.9.9.8/doc/api/a00128_source.html index 71bca6a6fb..9780ecff4b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00128_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00128_source.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: quaternion_double.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_double.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependency:
-
23 #include "../detail/type_quat.hpp"
-
24 
-
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
26 # pragma message("GLM: GLM_EXT_quaternion_double extension included")
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
35  typedef qua<double, defaultp> dquat;
-
36 
-
38 } //namespace glm
-
39 
-
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_double.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_double.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependency:
+
23 #include "../detail/type_quat.hpp"
+
24 
+
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
26 # pragma message("GLM: GLM_EXT_quaternion_double extension included")
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
35  typedef qua<double, defaultp> dquat;
+
36 
+
38 } //namespace glm
+
39 
+
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00129.html b/external/include/glm-0.9.9.8/doc/api/a00129.html index 04a3546df7..a03f0e6a50 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00129.html +++ b/external/include/glm-0.9.9.8/doc/api/a00129.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: quaternion_double_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_double_precision.hpp File Reference
-
-
- -

GLM_EXT_quaternion_double_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef qua< double, highp > highp_dquat
 Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, lowp > lowp_dquat
 Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, mediump > mediump_dquat
 Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_double_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_double_precision.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_double_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef qua< double, highp > highp_dquat
 Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, lowp > lowp_dquat
 Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, mediump > mediump_dquat
 Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00129_source.html b/external/include/glm-0.9.9.8/doc/api/a00129_source.html index e8de48499f..bf9c585440 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00129_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00129_source.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: quaternion_double_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_double_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 // Dependency:
-
14 #include "../detail/type_quat.hpp"
-
15 
-
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
17 # pragma message("GLM: GLM_EXT_quaternion_double_precision extension included")
-
18 #endif
-
19 
-
20 namespace glm
-
21 {
-
24 
-
28  typedef qua<double, lowp> lowp_dquat;
-
29 
-
33  typedef qua<double, mediump> mediump_dquat;
-
34 
-
38  typedef qua<double, highp> highp_dquat;
-
39 
-
41 } //namespace glm
-
42 
-
qua< double, mediump > mediump_dquat
Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term ...
-
qua< double, highp > highp_dquat
Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of...
-
qua< double, lowp > lowp_dquat
Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_double_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_double_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 // Dependency:
+
14 #include "../detail/type_quat.hpp"
+
15 
+
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
17 # pragma message("GLM: GLM_EXT_quaternion_double_precision extension included")
+
18 #endif
+
19 
+
20 namespace glm
+
21 {
+
24 
+
28  typedef qua<double, lowp> lowp_dquat;
+
29 
+
33  typedef qua<double, mediump> mediump_dquat;
+
34 
+
38  typedef qua<double, highp> highp_dquat;
+
39 
+
41 } //namespace glm
+
42 
+
qua< double, mediump > mediump_dquat
Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term ...
+
qua< double, highp > highp_dquat
Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of...
+
qua< double, lowp > lowp_dquat
Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00130.html b/external/include/glm-0.9.9.8/doc/api/a00130.html index ac51d6bde7..b7d5577052 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00130.html +++ b/external/include/glm-0.9.9.8/doc/api/a00130.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: quaternion_exponential.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_exponential.hpp File Reference
-
-
- -

GLM_EXT_quaternion_exponential -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > exp (qua< T, Q > const &q)
 Returns a exponential of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > log (qua< T, Q > const &q)
 Returns a logarithm of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > pow (qua< T, Q > const &q, T y)
 Returns a quaternion raised to a power. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > sqrt (qua< T, Q > const &q)
 Returns the square root of a quaternion. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_exponential.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_exponential.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_exponential +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > exp (qua< T, Q > const &q)
 Returns a exponential of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > log (qua< T, Q > const &q)
 Returns a logarithm of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > pow (qua< T, Q > const &q, T y)
 Returns a quaternion raised to a power. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > sqrt (qua< T, Q > const &q)
 Returns the square root of a quaternion. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00130_source.html b/external/include/glm-0.9.9.8/doc/api/a00130_source.html index bccb772364..4124710295 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00130_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00130_source.html @@ -1,135 +1,135 @@ - - - - - - -0.9.9 API documentation: quaternion_exponential.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_exponential.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../common.hpp"
-
19 #include "../trigonometric.hpp"
-
20 #include "../geometric.hpp"
-
21 #include "../ext/scalar_constants.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # pragma message("GLM: GLM_EXT_quaternion_exponential extension included")
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
36  template<typename T, qualifier Q>
-
37  GLM_FUNC_DECL qua<T, Q> exp(qua<T, Q> const& q);
-
38 
-
43  template<typename T, qualifier Q>
-
44  GLM_FUNC_DECL qua<T, Q> log(qua<T, Q> const& q);
-
45 
-
50  template<typename T, qualifier Q>
-
51  GLM_FUNC_DECL qua<T, Q> pow(qua<T, Q> const& q, T y);
-
52 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL qua<T, Q> sqrt(qua<T, Q> const& q);
-
59 
-
61 } //namespace glm
-
62 
-
63 #include "quaternion_exponential.inl"
-
GLM_FUNC_DECL qua< T, Q > log(qua< T, Q > const &q)
Returns a logarithm of a quaternion.
-
GLM_FUNC_DECL qua< T, Q > pow(qua< T, Q > const &q, T y)
Returns a quaternion raised to a power.
-
GLM_FUNC_DECL qua< T, Q > sqrt(qua< T, Q > const &q)
Returns the square root of a quaternion.
-
GLM_FUNC_DECL qua< T, Q > exp(qua< T, Q > const &q)
Returns a exponential of a quaternion.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_exponential.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_exponential.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../common.hpp"
+
19 #include "../trigonometric.hpp"
+
20 #include "../geometric.hpp"
+
21 #include "../ext/scalar_constants.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # pragma message("GLM: GLM_EXT_quaternion_exponential extension included")
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
36  template<typename T, qualifier Q>
+
37  GLM_FUNC_DECL qua<T, Q> exp(qua<T, Q> const& q);
+
38 
+
43  template<typename T, qualifier Q>
+
44  GLM_FUNC_DECL qua<T, Q> log(qua<T, Q> const& q);
+
45 
+
50  template<typename T, qualifier Q>
+
51  GLM_FUNC_DECL qua<T, Q> pow(qua<T, Q> const& q, T y);
+
52 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL qua<T, Q> sqrt(qua<T, Q> const& q);
+
59 
+
61 } //namespace glm
+
62 
+
63 #include "quaternion_exponential.inl"
+
GLM_FUNC_DECL qua< T, Q > log(qua< T, Q > const &q)
Returns a logarithm of a quaternion.
+
GLM_FUNC_DECL qua< T, Q > pow(qua< T, Q > const &q, T y)
Returns a quaternion raised to a power.
+
GLM_FUNC_DECL qua< T, Q > sqrt(qua< T, Q > const &q)
Returns the square root of a quaternion.
+
GLM_FUNC_DECL qua< T, Q > exp(qua< T, Q > const &q)
Returns a exponential of a quaternion.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00131.html b/external/include/glm-0.9.9.8/doc/api/a00131.html index c3950a63dc..7256131d53 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00131.html +++ b/external/include/glm-0.9.9.8/doc/api/a00131.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: quaternion_float.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_float.hpp File Reference
-
-
- -

GLM_EXT_quaternion_float -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef qua< float, defaultp > quat
 Quaternion of single-precision floating-point numbers.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_float.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_float.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_float +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef qua< float, defaultp > quat
 Quaternion of single-precision floating-point numbers.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00131_source.html b/external/include/glm-0.9.9.8/doc/api/a00131_source.html index 67259a8e7f..740f98cf3c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00131_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00131_source.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: quaternion_float.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_float.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 // Dependency:
-
23 #include "../detail/type_quat.hpp"
-
24 
-
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
26 # pragma message("GLM: GLM_EXT_quaternion_float extension included")
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
35  typedef qua<float, defaultp> quat;
-
36 
-
38 } //namespace glm
-
39 
-
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_float.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_float.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 // Dependency:
+
23 #include "../detail/type_quat.hpp"
+
24 
+
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
26 # pragma message("GLM: GLM_EXT_quaternion_float extension included")
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
35  typedef qua<float, defaultp> quat;
+
36 
+
38 } //namespace glm
+
39 
+
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00132.html b/external/include/glm-0.9.9.8/doc/api/a00132.html index 39fefd0fbe..8adc1ef596 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00132.html +++ b/external/include/glm-0.9.9.8/doc/api/a00132.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: quaternion_float_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_float_precision.hpp File Reference
-
-
- -

GLM_EXT_quaternion_float_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

-typedef qua< float, highp > highp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef qua< float, lowp > lowp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef qua< float, mediump > mediump_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_float_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_float_precision.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_float_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

+typedef qua< float, highp > highp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef qua< float, lowp > lowp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef qua< float, mediump > mediump_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00132_source.html b/external/include/glm-0.9.9.8/doc/api/a00132_source.html index 6e7462cc68..7a33570096 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00132_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00132_source.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: quaternion_float_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_float_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 // Dependency:
-
14 #include "../detail/type_quat.hpp"
-
15 
-
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
17 # pragma message("GLM: GLM_EXT_quaternion_float_precision extension included")
-
18 #endif
-
19 
-
20 namespace glm
-
21 {
-
24 
-
26  typedef qua<float, lowp> lowp_quat;
-
27 
-
29  typedef qua<float, mediump> mediump_quat;
-
30 
-
32  typedef qua<float, highp> highp_quat;
-
33 
-
35 } //namespace glm
-
36 
-
qua< float, highp > highp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
qua< float, mediump > mediump_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
qua< float, lowp > lowp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_float_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_float_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 // Dependency:
+
14 #include "../detail/type_quat.hpp"
+
15 
+
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
17 # pragma message("GLM: GLM_EXT_quaternion_float_precision extension included")
+
18 #endif
+
19 
+
20 namespace glm
+
21 {
+
24 
+
26  typedef qua<float, lowp> lowp_quat;
+
27 
+
29  typedef qua<float, mediump> mediump_quat;
+
30 
+
32  typedef qua<float, highp> highp_quat;
+
33 
+
35 } //namespace glm
+
36 
+
qua< float, highp > highp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
qua< float, mediump > mediump_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
qua< float, lowp > lowp_quat
Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00133.html b/external/include/glm-0.9.9.8/doc/api/a00133.html index e3808994c9..16cad057d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00133.html +++ b/external/include/glm-0.9.9.8/doc/api/a00133.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: quaternion_geometric.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_geometric.hpp File Reference
-
-
- -

GLM_EXT_quaternion_geometric -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER qua< T, Q > cross (qua< T, Q > const &q1, qua< T, Q > const &q2)
 Compute a cross product. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T dot (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length (qua< T, Q > const &q)
 Returns the norm of a quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > normalize (qua< T, Q > const &q)
 Returns the normalized quaternion. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_geometric.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_geometric.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_geometric +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER qua< T, Q > cross (qua< T, Q > const &q1, qua< T, Q > const &q2)
 Compute a cross product. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T dot (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length (qua< T, Q > const &q)
 Returns the norm of a quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > normalize (qua< T, Q > const &q)
 Returns the normalized quaternion. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00133_source.html b/external/include/glm-0.9.9.8/doc/api/a00133_source.html index a78453b405..6724a85e65 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00133_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00133_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: quaternion_geometric.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_geometric.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../geometric.hpp"
-
19 #include "../exponential.hpp"
-
20 #include "../ext/vector_relational.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_EXT_quaternion_geometric extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
37  template<typename T, qualifier Q>
-
38  GLM_FUNC_DECL T length(qua<T, Q> const& q);
-
39 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL qua<T, Q> normalize(qua<T, Q> const& q);
-
48 
-
55  template<typename T, qualifier Q>
-
56  GLM_FUNC_DECL T dot(qua<T, Q> const& x, qua<T, Q> const& y);
-
57 
-
64  template<typename T, qualifier Q>
-
65  GLM_FUNC_QUALIFIER qua<T, Q> cross(qua<T, Q> const& q1, qua<T, Q> const& q2);
-
66 
-
68 } //namespace glm
-
69 
-
70 #include "quaternion_geometric.inl"
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
GLM_FUNC_DECL T dot(qua< T, Q > const &x, qua< T, Q > const &y)
Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
-
GLM_FUNC_QUALIFIER qua< T, Q > cross(qua< T, Q > const &q1, qua< T, Q > const &q2)
Compute a cross product.
-
GLM_FUNC_DECL qua< T, Q > normalize(qua< T, Q > const &q)
Returns the normalized quaternion.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_geometric.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_geometric.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../geometric.hpp"
+
19 #include "../exponential.hpp"
+
20 #include "../ext/vector_relational.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_EXT_quaternion_geometric extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
37  template<typename T, qualifier Q>
+
38  GLM_FUNC_DECL T length(qua<T, Q> const& q);
+
39 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL qua<T, Q> normalize(qua<T, Q> const& q);
+
48 
+
55  template<typename T, qualifier Q>
+
56  GLM_FUNC_DECL T dot(qua<T, Q> const& x, qua<T, Q> const& y);
+
57 
+
64  template<typename T, qualifier Q>
+
65  GLM_FUNC_QUALIFIER qua<T, Q> cross(qua<T, Q> const& q1, qua<T, Q> const& q2);
+
66 
+
68 } //namespace glm
+
69 
+
70 #include "quaternion_geometric.inl"
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
GLM_FUNC_DECL T dot(qua< T, Q > const &x, qua< T, Q > const &y)
Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
+
GLM_FUNC_QUALIFIER qua< T, Q > cross(qua< T, Q > const &q1, qua< T, Q > const &q2)
Compute a cross product.
+
GLM_FUNC_DECL qua< T, Q > normalize(qua< T, Q > const &q)
Returns the normalized quaternion.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00134.html b/external/include/glm-0.9.9.8/doc/api/a00134.html index 856556b8c4..566ae01fd1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00134.html +++ b/external/include/glm-0.9.9.8/doc/api/a00134.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: quaternion_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_relational.hpp File Reference
-
-
- -

GLM_EXT_quaternion_relational -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_relational.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_relational +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00134_source.html b/external/include/glm-0.9.9.8/doc/api/a00134_source.html index 6e4826b1ac..2b091c19e3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00134_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00134_source.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: quaternion_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 // Dependency:
-
20 #include "../vector_relational.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_EXT_quaternion_relational extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
35  template<typename T, qualifier Q>
-
36  GLM_FUNC_DECL vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y);
-
37 
-
42  template<typename T, qualifier Q>
-
43  GLM_FUNC_DECL vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon);
-
44 
-
49  template<typename T, qualifier Q>
-
50  GLM_FUNC_DECL vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y);
-
51 
-
56  template<typename T, qualifier Q>
-
57  GLM_FUNC_DECL vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon);
-
58 
-
60 } //namespace glm
-
61 
-
62 #include "quaternion_relational.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
GLM_FUNC_DECL vec< 4, bool, Q > notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
Returns the component-wise comparison of |x - y| >= epsilon.
-
GLM_FUNC_DECL vec< 4, bool, Q > equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
Returns the component-wise comparison of |x - y| < epsilon.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 // Dependency:
+
20 #include "../vector_relational.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_EXT_quaternion_relational extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
35  template<typename T, qualifier Q>
+
36  GLM_FUNC_DECL vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y);
+
37 
+
42  template<typename T, qualifier Q>
+
43  GLM_FUNC_DECL vec<4, bool, Q> equal(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon);
+
44 
+
49  template<typename T, qualifier Q>
+
50  GLM_FUNC_DECL vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y);
+
51 
+
56  template<typename T, qualifier Q>
+
57  GLM_FUNC_DECL vec<4, bool, Q> notEqual(qua<T, Q> const& x, qua<T, Q> const& y, T epsilon);
+
58 
+
60 } //namespace glm
+
61 
+
62 #include "quaternion_relational.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
GLM_FUNC_DECL vec< 4, bool, Q > notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
Returns the component-wise comparison of |x - y| >= epsilon.
+
GLM_FUNC_DECL vec< 4, bool, Q > equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
Returns the component-wise comparison of |x - y| < epsilon.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00135.html b/external/include/glm-0.9.9.8/doc/api/a00135.html index 443c0bb7a4..16c281fa26 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00135.html +++ b/external/include/glm-0.9.9.8/doc/api/a00135.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: quaternion_transform.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_transform.hpp File Reference
-
-
- -

GLM_EXT_quaternion_transform -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotate (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components axis and an angle. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_transform.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_transform.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_transform +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotate (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components axis and an angle. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00135_source.html b/external/include/glm-0.9.9.8/doc/api/a00135_source.html index 7e7c2ce3b3..a23ecb7899 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00135_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00135_source.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: quaternion_transform.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_transform.hpp
-
-
-Go to the documentation of this file.
1 
-
18 #pragma once
-
19 
-
20 // Dependency:
-
21 #include "../common.hpp"
-
22 #include "../trigonometric.hpp"
-
23 #include "../geometric.hpp"
-
24 
-
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
26 # pragma message("GLM: GLM_EXT_quaternion_transform extension included")
-
27 #endif
-
28 
-
29 namespace glm
-
30 {
-
33 
-
42  template<typename T, qualifier Q>
-
43  GLM_FUNC_DECL qua<T, Q> rotate(qua<T, Q> const& q, T const& angle, vec<3, T, Q> const& axis);
-
45 } //namespace glm
-
46 
-
47 #include "quaternion_transform.inl"
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL qua< T, Q > rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
Rotates a quaternion from a vector of 3 components axis and an angle.
-
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_transform.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_transform.hpp
+
+
+Go to the documentation of this file.
1 
+
18 #pragma once
+
19 
+
20 // Dependency:
+
21 #include "../common.hpp"
+
22 #include "../trigonometric.hpp"
+
23 #include "../geometric.hpp"
+
24 
+
25 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
26 # pragma message("GLM: GLM_EXT_quaternion_transform extension included")
+
27 #endif
+
28 
+
29 namespace glm
+
30 {
+
33 
+
42  template<typename T, qualifier Q>
+
43  GLM_FUNC_DECL qua<T, Q> rotate(qua<T, Q> const& q, T const& angle, vec<3, T, Q> const& axis);
+
45 } //namespace glm
+
46 
+
47 #include "quaternion_transform.inl"
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL qua< T, Q > rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
Rotates a quaternion from a vector of 3 components axis and an angle.
+
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00136.html b/external/include/glm-0.9.9.8/doc/api/a00136.html index 82bedcfe7d..ab0a414e60 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00136.html +++ b/external/include/glm-0.9.9.8/doc/api/a00136.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: quaternion_trigonometric.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
quaternion_trigonometric.hpp File Reference
-
-
- -

GLM_EXT_quaternion_trigonometric -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T angle (qua< T, Q > const &x)
 Returns the quaternion rotation angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > angleAxis (T const &angle, vec< 3, T, Q > const &axis)
 Build a quaternion from an angle and a normalized axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > axis (qua< T, Q > const &x)
 Returns the q rotation axis. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: quaternion_trigonometric.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
quaternion_trigonometric.hpp File Reference
+
+
+ +

GLM_EXT_quaternion_trigonometric +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T angle (qua< T, Q > const &x)
 Returns the quaternion rotation angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > angleAxis (T const &angle, vec< 3, T, Q > const &axis)
 Build a quaternion from an angle and a normalized axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > axis (qua< T, Q > const &x)
 Returns the q rotation axis. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00136_source.html b/external/include/glm-0.9.9.8/doc/api/a00136_source.html index c67347e048..7ed33c08d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00136_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00136_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: quaternion_trigonometric.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
quaternion_trigonometric.hpp
-
-
-Go to the documentation of this file.
1 
-
18 #pragma once
-
19 
-
20 // Dependency:
-
21 #include "../trigonometric.hpp"
-
22 #include "../exponential.hpp"
-
23 #include "scalar_constants.hpp"
-
24 #include "vector_relational.hpp"
-
25 #include <limits>
-
26 
-
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
28 # pragma message("GLM: GLM_EXT_quaternion_trigonometric extension included")
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL T angle(qua<T, Q> const& x);
-
42 
-
47  template<typename T, qualifier Q>
-
48  GLM_FUNC_DECL vec<3, T, Q> axis(qua<T, Q> const& x);
-
49 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL qua<T, Q> angleAxis(T const& angle, vec<3, T, Q> const& axis);
-
59 
-
61 } //namespace glm
-
62 
-
63 #include "quaternion_trigonometric.inl"
-
GLM_EXT_vector_relational
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL qua< T, Q > angleAxis(T const &angle, vec< 3, T, Q > const &axis)
Build a quaternion from an angle and a normalized axis.
-
GLM_EXT_scalar_constants
-
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: quaternion_trigonometric.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
quaternion_trigonometric.hpp
+
+
+Go to the documentation of this file.
1 
+
18 #pragma once
+
19 
+
20 // Dependency:
+
21 #include "../trigonometric.hpp"
+
22 #include "../exponential.hpp"
+
23 #include "scalar_constants.hpp"
+
24 #include "vector_relational.hpp"
+
25 #include <limits>
+
26 
+
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
28 # pragma message("GLM: GLM_EXT_quaternion_trigonometric extension included")
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL T angle(qua<T, Q> const& x);
+
42 
+
47  template<typename T, qualifier Q>
+
48  GLM_FUNC_DECL vec<3, T, Q> axis(qua<T, Q> const& x);
+
49 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL qua<T, Q> angleAxis(T const& angle, vec<3, T, Q> const& axis);
+
59 
+
61 } //namespace glm
+
62 
+
63 #include "quaternion_trigonometric.inl"
+
GLM_EXT_vector_relational
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL qua< T, Q > angleAxis(T const &angle, vec< 3, T, Q > const &axis)
Build a quaternion from an angle and a normalized axis.
+
GLM_EXT_scalar_constants
+
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00137.html b/external/include/glm-0.9.9.8/doc/api/a00137.html index 054fd83584..af6cbb34e3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00137.html +++ b/external/include/glm-0.9.9.8/doc/api/a00137.html @@ -1,145 +1,145 @@ - - - - - - -0.9.9 API documentation: random.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
random.hpp File Reference
-
-
- -

GLM_GTC_random -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. More...
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 Generate random numbers in the interval [Min, Max], according a gaussian distribution. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType Min, genType Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > linearRand (vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. More...
 
-

Detailed Description

-

GLM_GTC_random

-
See also
Core features (dependence)
-
-gtx_random (extended)
- -

Definition in file random.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: random.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
random.hpp File Reference
+
+
+ +

GLM_GTC_random +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. More...
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 Generate random numbers in the interval [Min, Max], according a gaussian distribution. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType Min, genType Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > linearRand (vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. More...
 
+

Detailed Description

+

GLM_GTC_random

+
See also
Core features (dependence)
+
+gtx_random (extended)
+ +

Definition in file random.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00137_source.html b/external/include/glm-0.9.9.8/doc/api/a00137_source.html index 1188b36d5c..f1a63a24bd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00137_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00137_source.html @@ -1,145 +1,145 @@ - - - - - - -0.9.9 API documentation: random.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
random.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../ext/scalar_int_sized.hpp"
-
18 #include "../ext/scalar_uint_sized.hpp"
-
19 #include "../detail/qualifier.hpp"
-
20 
-
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
22 # pragma message("GLM: GLM_GTC_random extension included")
-
23 #endif
-
24 
-
25 namespace glm
-
26 {
-
29 
-
36  template<typename genType>
-
37  GLM_FUNC_DECL genType linearRand(genType Min, genType Max);
-
38 
-
46  template<length_t L, typename T, qualifier Q>
-
47  GLM_FUNC_DECL vec<L, T, Q> linearRand(vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
-
48 
-
52  template<typename genType>
-
53  GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation);
-
54 
-
58  template<typename T>
-
59  GLM_FUNC_DECL vec<2, T, defaultp> circularRand(T Radius);
-
60 
-
64  template<typename T>
-
65  GLM_FUNC_DECL vec<3, T, defaultp> sphericalRand(T Radius);
-
66 
-
70  template<typename T>
-
71  GLM_FUNC_DECL vec<2, T, defaultp> diskRand(T Radius);
-
72 
-
76  template<typename T>
-
77  GLM_FUNC_DECL vec<3, T, defaultp> ballRand(T Radius);
-
78 
-
80 }//namespace glm
-
81 
-
82 #include "random.inl"
-
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...
-
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...
-
GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)
Generate random numbers in the interval [Min, Max], according a gaussian distribution.
-
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...
-
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...
-
GLM_FUNC_DECL vec< L, T, Q > linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Generate random numbers in the interval [Min, Max], according a linear distribution.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: random.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
random.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../ext/scalar_int_sized.hpp"
+
18 #include "../ext/scalar_uint_sized.hpp"
+
19 #include "../detail/qualifier.hpp"
+
20 
+
21 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
22 # pragma message("GLM: GLM_GTC_random extension included")
+
23 #endif
+
24 
+
25 namespace glm
+
26 {
+
29 
+
36  template<typename genType>
+
37  GLM_FUNC_DECL genType linearRand(genType Min, genType Max);
+
38 
+
46  template<length_t L, typename T, qualifier Q>
+
47  GLM_FUNC_DECL vec<L, T, Q> linearRand(vec<L, T, Q> const& Min, vec<L, T, Q> const& Max);
+
48 
+
52  template<typename genType>
+
53  GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation);
+
54 
+
58  template<typename T>
+
59  GLM_FUNC_DECL vec<2, T, defaultp> circularRand(T Radius);
+
60 
+
64  template<typename T>
+
65  GLM_FUNC_DECL vec<3, T, defaultp> sphericalRand(T Radius);
+
66 
+
70  template<typename T>
+
71  GLM_FUNC_DECL vec<2, T, defaultp> diskRand(T Radius);
+
72 
+
76  template<typename T>
+
77  GLM_FUNC_DECL vec<3, T, defaultp> ballRand(T Radius);
+
78 
+
80 }//namespace glm
+
81 
+
82 #include "random.inl"
+
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius...
+
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand(T Radius)
Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a...
+
GLM_FUNC_DECL genType gaussRand(genType Mean, genType Deviation)
Generate random numbers in the interval [Min, Max], according a gaussian distribution.
+
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius...
+
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand(T Radius)
Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of...
+
GLM_FUNC_DECL vec< L, T, Q > linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
Generate random numbers in the interval [Min, Max], according a linear distribution.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00138.html b/external/include/glm-0.9.9.8/doc/api/a00138.html index 8c578cd3b8..41aae9a03e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00138.html +++ b/external/include/glm-0.9.9.8/doc/api/a00138.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: range.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
range.hpp File Reference
-
-
- -

GLM_GTX_range -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTX_range

-
Author
Joshua Moerman
- -

Definition in file range.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: range.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
range.hpp File Reference
+
+
+ +

GLM_GTX_range +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTX_range

+
Author
Joshua Moerman
+ +

Definition in file range.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00138_source.html b/external/include/glm-0.9.9.8/doc/api/a00138_source.html index b127fbc42f..84b3539205 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00138_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00138_source.html @@ -1,185 +1,185 @@ - - - - - - -0.9.9 API documentation: range.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
range.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../detail/setup.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_range extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 #include "../gtc/type_ptr.hpp"
-
27 #include "../gtc/vec1.hpp"
-
28 
-
29 namespace glm
-
30 {
-
33 
-
34 # if GLM_COMPILER & GLM_COMPILER_VC
-
35 # pragma warning(push)
-
36 # pragma warning(disable : 4100) // unreferenced formal parameter
-
37 # endif
-
38 
-
39  template<typename T, qualifier Q>
-
40  inline length_t components(vec<1, T, Q> const& v)
-
41  {
-
42  return v.length();
-
43  }
-
44 
-
45  template<typename T, qualifier Q>
-
46  inline length_t components(vec<2, T, Q> const& v)
-
47  {
-
48  return v.length();
-
49  }
-
50 
-
51  template<typename T, qualifier Q>
-
52  inline length_t components(vec<3, T, Q> const& v)
-
53  {
-
54  return v.length();
-
55  }
-
56 
-
57  template<typename T, qualifier Q>
-
58  inline length_t components(vec<4, T, Q> const& v)
-
59  {
-
60  return v.length();
-
61  }
-
62 
-
63  template<typename genType>
-
64  inline length_t components(genType const& m)
-
65  {
-
66  return m.length() * m[0].length();
-
67  }
-
68 
-
69  template<typename genType>
-
70  inline typename genType::value_type const * begin(genType const& v)
-
71  {
-
72  return value_ptr(v);
-
73  }
-
74 
-
75  template<typename genType>
-
76  inline typename genType::value_type const * end(genType const& v)
-
77  {
-
78  return begin(v) + components(v);
-
79  }
-
80 
-
81  template<typename genType>
-
82  inline typename genType::value_type * begin(genType& v)
-
83  {
-
84  return value_ptr(v);
-
85  }
-
86 
-
87  template<typename genType>
-
88  inline typename genType::value_type * end(genType& v)
-
89  {
-
90  return begin(v) + components(v);
-
91  }
-
92 
-
93 # if GLM_COMPILER & GLM_COMPILER_VC
-
94 # pragma warning(pop)
-
95 # endif
-
96 
-
98 }//namespace glm
-
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &v)
Return the constant address to the data of the input parameter.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: range.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
range.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../detail/setup.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_range extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 #include "../gtc/type_ptr.hpp"
+
27 #include "../gtc/vec1.hpp"
+
28 
+
29 namespace glm
+
30 {
+
33 
+
34 # if GLM_COMPILER & GLM_COMPILER_VC
+
35 # pragma warning(push)
+
36 # pragma warning(disable : 4100) // unreferenced formal parameter
+
37 # endif
+
38 
+
39  template<typename T, qualifier Q>
+
40  inline length_t components(vec<1, T, Q> const& v)
+
41  {
+
42  return v.length();
+
43  }
+
44 
+
45  template<typename T, qualifier Q>
+
46  inline length_t components(vec<2, T, Q> const& v)
+
47  {
+
48  return v.length();
+
49  }
+
50 
+
51  template<typename T, qualifier Q>
+
52  inline length_t components(vec<3, T, Q> const& v)
+
53  {
+
54  return v.length();
+
55  }
+
56 
+
57  template<typename T, qualifier Q>
+
58  inline length_t components(vec<4, T, Q> const& v)
+
59  {
+
60  return v.length();
+
61  }
+
62 
+
63  template<typename genType>
+
64  inline length_t components(genType const& m)
+
65  {
+
66  return m.length() * m[0].length();
+
67  }
+
68 
+
69  template<typename genType>
+
70  inline typename genType::value_type const * begin(genType const& v)
+
71  {
+
72  return value_ptr(v);
+
73  }
+
74 
+
75  template<typename genType>
+
76  inline typename genType::value_type const * end(genType const& v)
+
77  {
+
78  return begin(v) + components(v);
+
79  }
+
80 
+
81  template<typename genType>
+
82  inline typename genType::value_type * begin(genType& v)
+
83  {
+
84  return value_ptr(v);
+
85  }
+
86 
+
87  template<typename genType>
+
88  inline typename genType::value_type * end(genType& v)
+
89  {
+
90  return begin(v) + components(v);
+
91  }
+
92 
+
93 # if GLM_COMPILER & GLM_COMPILER_VC
+
94 # pragma warning(pop)
+
95 # endif
+
96 
+
98 }//namespace glm
+
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &v)
Return the constant address to the data of the input parameter.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00139.html b/external/include/glm-0.9.9.8/doc/api/a00139.html index d2d77d0c57..0efee438c6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00139.html +++ b/external/include/glm-0.9.9.8/doc/api/a00139.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: raw_data.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
raw_data.hpp File Reference
-
-
- -

GLM_GTX_raw_data -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Typedefs

typedef detail::uint8 byte
 Type for byte numbers. More...
 
typedef detail::uint32 dword
 Type for dword numbers. More...
 
typedef detail::uint64 qword
 Type for qword numbers. More...
 
typedef detail::uint16 word
 Type for word numbers. More...
 
-

Detailed Description

-

GLM_GTX_raw_data

-
See also
Core features (dependence)
- -

Definition in file raw_data.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: raw_data.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
raw_data.hpp File Reference
+
+
+ +

GLM_GTX_raw_data +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Typedefs

typedef detail::uint8 byte
 Type for byte numbers. More...
 
typedef detail::uint32 dword
 Type for dword numbers. More...
 
typedef detail::uint64 qword
 Type for qword numbers. More...
 
typedef detail::uint16 word
 Type for word numbers. More...
 
+

Detailed Description

+

GLM_GTX_raw_data

+
See also
Core features (dependence)
+ +

Definition in file raw_data.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00139_source.html b/external/include/glm-0.9.9.8/doc/api/a00139_source.html index 91b33894a8..be1d9f6e3b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00139_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00139_source.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: raw_data.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
raw_data.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../ext/scalar_uint_sized.hpp"
-
17 #include "../detail/setup.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_raw_data extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  typedef detail::uint8 byte;
-
35 
-
38  typedef detail::uint16 word;
-
39 
-
42  typedef detail::uint32 dword;
-
43 
-
46  typedef detail::uint64 qword;
-
47 
-
49 }// namespace glm
-
50 
-
51 #include "raw_data.inl"
-
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:42
-
detail::uint8 byte
Type for byte numbers.
Definition: raw_data.hpp:34
-
detail::uint64 qword
Type for qword numbers.
Definition: raw_data.hpp:46
-
detail::uint16 word
Type for word numbers.
Definition: raw_data.hpp:38
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: raw_data.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
raw_data.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../ext/scalar_uint_sized.hpp"
+
17 #include "../detail/setup.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_raw_data extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  typedef detail::uint8 byte;
+
35 
+
38  typedef detail::uint16 word;
+
39 
+
42  typedef detail::uint32 dword;
+
43 
+
46  typedef detail::uint64 qword;
+
47 
+
49 }// namespace glm
+
50 
+
51 #include "raw_data.inl"
+
detail::uint32 dword
Type for dword numbers.
Definition: raw_data.hpp:42
+
detail::uint8 byte
Type for byte numbers.
Definition: raw_data.hpp:34
+
detail::uint64 qword
Type for qword numbers.
Definition: raw_data.hpp:46
+
detail::uint16 word
Type for word numbers.
Definition: raw_data.hpp:38
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00140.html b/external/include/glm-0.9.9.8/doc/api/a00140.html index 61423a1837..1528660945 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00140.html +++ b/external/include/glm-0.9.9.8/doc/api/a00140.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: reciprocal.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
reciprocal.hpp File Reference
-
-
- -

GLM_GTC_reciprocal -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType x)
 Inverse cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType x)
 Inverse cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType x)
 Inverse cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType x)
 Inverse cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType x)
 Inverse secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType x)
 Inverse secant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType angle)
 Cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType angle)
 Cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType angle)
 Cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType angle)
 Cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType angle)
 Secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType angle)
 Secant hyperbolic function. More...
 
-

Detailed Description

-

GLM_GTC_reciprocal

-
See also
Core features (dependence)
- -

Definition in file reciprocal.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: reciprocal.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
reciprocal.hpp File Reference
+
+
+ +

GLM_GTC_reciprocal +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType x)
 Inverse cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType x)
 Inverse cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType x)
 Inverse cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType x)
 Inverse cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType x)
 Inverse secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType x)
 Inverse secant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType angle)
 Cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType angle)
 Cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType angle)
 Cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType angle)
 Cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType angle)
 Secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType angle)
 Secant hyperbolic function. More...
 
+

Detailed Description

+

GLM_GTC_reciprocal

+
See also
Core features (dependence)
+ +

Definition in file reciprocal.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00140_source.html b/external/include/glm-0.9.9.8/doc/api/a00140_source.html index 2826f7262c..9febcf5f5b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00140_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00140_source.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: reciprocal.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
reciprocal.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependencies
-
16 #include "../detail/setup.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_GTC_reciprocal extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
33  template<typename genType>
-
34  GLM_FUNC_DECL genType sec(genType angle);
-
35 
-
42  template<typename genType>
-
43  GLM_FUNC_DECL genType csc(genType angle);
-
44 
-
51  template<typename genType>
-
52  GLM_FUNC_DECL genType cot(genType angle);
-
53 
-
60  template<typename genType>
-
61  GLM_FUNC_DECL genType asec(genType x);
-
62 
-
69  template<typename genType>
-
70  GLM_FUNC_DECL genType acsc(genType x);
-
71 
-
78  template<typename genType>
-
79  GLM_FUNC_DECL genType acot(genType x);
-
80 
-
86  template<typename genType>
-
87  GLM_FUNC_DECL genType sech(genType angle);
-
88 
-
94  template<typename genType>
-
95  GLM_FUNC_DECL genType csch(genType angle);
-
96 
-
102  template<typename genType>
-
103  GLM_FUNC_DECL genType coth(genType angle);
-
104 
-
111  template<typename genType>
-
112  GLM_FUNC_DECL genType asech(genType x);
-
113 
-
120  template<typename genType>
-
121  GLM_FUNC_DECL genType acsch(genType x);
-
122 
-
129  template<typename genType>
-
130  GLM_FUNC_DECL genType acoth(genType x);
-
131 
-
133 }//namespace glm
-
134 
-
135 #include "reciprocal.inl"
-
GLM_FUNC_DECL genType sec(genType angle)
Secant function.
-
GLM_FUNC_DECL genType csc(genType angle)
Cosecant function.
-
GLM_FUNC_DECL genType coth(genType angle)
Cotangent hyperbolic function.
-
GLM_FUNC_DECL genType asec(genType x)
Inverse secant function.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL genType cot(genType angle)
Cotangent function.
-
GLM_FUNC_DECL genType acsc(genType x)
Inverse cosecant function.
-
GLM_FUNC_DECL genType sech(genType angle)
Secant hyperbolic function.
-
GLM_FUNC_DECL genType csch(genType angle)
Cosecant hyperbolic function.
-
GLM_FUNC_DECL genType acoth(genType x)
Inverse cotangent hyperbolic function.
-
GLM_FUNC_DECL genType acot(genType x)
Inverse cotangent function.
-
GLM_FUNC_DECL genType asech(genType x)
Inverse secant hyperbolic function.
-
GLM_FUNC_DECL genType acsch(genType x)
Inverse cosecant hyperbolic function.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: reciprocal.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
reciprocal.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependencies
+
16 #include "../detail/setup.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_GTC_reciprocal extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
33  template<typename genType>
+
34  GLM_FUNC_DECL genType sec(genType angle);
+
35 
+
42  template<typename genType>
+
43  GLM_FUNC_DECL genType csc(genType angle);
+
44 
+
51  template<typename genType>
+
52  GLM_FUNC_DECL genType cot(genType angle);
+
53 
+
60  template<typename genType>
+
61  GLM_FUNC_DECL genType asec(genType x);
+
62 
+
69  template<typename genType>
+
70  GLM_FUNC_DECL genType acsc(genType x);
+
71 
+
78  template<typename genType>
+
79  GLM_FUNC_DECL genType acot(genType x);
+
80 
+
86  template<typename genType>
+
87  GLM_FUNC_DECL genType sech(genType angle);
+
88 
+
94  template<typename genType>
+
95  GLM_FUNC_DECL genType csch(genType angle);
+
96 
+
102  template<typename genType>
+
103  GLM_FUNC_DECL genType coth(genType angle);
+
104 
+
111  template<typename genType>
+
112  GLM_FUNC_DECL genType asech(genType x);
+
113 
+
120  template<typename genType>
+
121  GLM_FUNC_DECL genType acsch(genType x);
+
122 
+
129  template<typename genType>
+
130  GLM_FUNC_DECL genType acoth(genType x);
+
131 
+
133 }//namespace glm
+
134 
+
135 #include "reciprocal.inl"
+
GLM_FUNC_DECL genType sec(genType angle)
Secant function.
+
GLM_FUNC_DECL genType csc(genType angle)
Cosecant function.
+
GLM_FUNC_DECL genType coth(genType angle)
Cotangent hyperbolic function.
+
GLM_FUNC_DECL genType asec(genType x)
Inverse secant function.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL genType cot(genType angle)
Cotangent function.
+
GLM_FUNC_DECL genType acsc(genType x)
Inverse cosecant function.
+
GLM_FUNC_DECL genType sech(genType angle)
Secant hyperbolic function.
+
GLM_FUNC_DECL genType csch(genType angle)
Cosecant hyperbolic function.
+
GLM_FUNC_DECL genType acoth(genType x)
Inverse cotangent hyperbolic function.
+
GLM_FUNC_DECL genType acot(genType x)
Inverse cotangent function.
+
GLM_FUNC_DECL genType asech(genType x)
Inverse secant hyperbolic function.
+
GLM_FUNC_DECL genType acsch(genType x)
Inverse cosecant hyperbolic function.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00141.html b/external/include/glm-0.9.9.8/doc/api/a00141.html index f5efe4eb33..98804fa2a1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00141.html +++ b/external/include/glm-0.9.9.8/doc/api/a00141.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: rotate_normalized_axis.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
rotate_normalized_axis.hpp File Reference
-
-
- -

GLM_GTX_rotate_normalized_axis -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotateNormalizedAxis (mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components normalized axis and an angle. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: rotate_normalized_axis.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
rotate_normalized_axis.hpp File Reference
+
+
+ +

GLM_GTX_rotate_normalized_axis +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotateNormalizedAxis (mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components normalized axis and an angle. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00141_source.html b/external/include/glm-0.9.9.8/doc/api/a00141_source.html index b1720126d1..874e182d85 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00141_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00141_source.html @@ -1,137 +1,137 @@ - - - - - - -0.9.9 API documentation: rotate_normalized_axis.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
rotate_normalized_axis.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../glm.hpp"
-
19 #include "../gtc/epsilon.hpp"
-
20 #include "../gtc/quaternion.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
46  template<typename T, qualifier Q>
-
47  GLM_FUNC_DECL mat<4, 4, T, Q> rotateNormalizedAxis(
-
48  mat<4, 4, T, Q> const& m,
-
49  T const& angle,
-
50  vec<3, T, Q> const& axis);
-
51 
-
59  template<typename T, qualifier Q>
-
60  GLM_FUNC_DECL qua<T, Q> rotateNormalizedAxis(
-
61  qua<T, Q> const& q,
-
62  T const& angle,
-
63  vec<3, T, Q> const& axis);
-
64 
-
66 }//namespace glm
-
67 
-
68 #include "rotate_normalized_axis.inl"
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
Rotates a quaternion from a vector of 3 components normalized axis and an angle.
-
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: rotate_normalized_axis.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
rotate_normalized_axis.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../glm.hpp"
+
19 #include "../gtc/epsilon.hpp"
+
20 #include "../gtc/quaternion.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTX_rotate_normalized_axis extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
46  template<typename T, qualifier Q>
+
47  GLM_FUNC_DECL mat<4, 4, T, Q> rotateNormalizedAxis(
+
48  mat<4, 4, T, Q> const& m,
+
49  T const& angle,
+
50  vec<3, T, Q> const& axis);
+
51 
+
59  template<typename T, qualifier Q>
+
60  GLM_FUNC_DECL qua<T, Q> rotateNormalizedAxis(
+
61  qua<T, Q> const& q,
+
62  T const& angle,
+
63  vec<3, T, Q> const& axis);
+
64 
+
66 }//namespace glm
+
67 
+
68 #include "rotate_normalized_axis.inl"
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
Rotates a quaternion from a vector of 3 components normalized axis and an angle.
+
GLM_FUNC_DECL vec< 3, T, Q > axis(qua< T, Q > const &x)
Returns the q rotation axis.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00142.html b/external/include/glm-0.9.9.8/doc/api/a00142.html index 3c273925bf..31a6038156 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00142.html +++ b/external/include/glm-0.9.9.8/doc/api/a00142.html @@ -1,161 +1,161 @@ - - - - - - -0.9.9 API documentation: rotate_vector.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
rotate_vector.hpp File Reference
-
-
- -

GLM_GTX_rotate_vector -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation (vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
 Build a rotation matrix from a normal and a up vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > rotate (vec< 2, T, Q > const &v, T const &angle)
 Rotate a two dimensional vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a three dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a four dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateX (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateX (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateY (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateY (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateZ (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateZ (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > slerp (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
 Returns Spherical interpolation between two vectors. More...
 
-

Detailed Description

-

GLM_GTX_rotate_vector

-
See also
Core features (dependence)
-
-GLM_GTX_transform (dependence)
- -

Definition in file rotate_vector.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: rotate_vector.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
rotate_vector.hpp File Reference
+
+
+ +

GLM_GTX_rotate_vector +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation (vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
 Build a rotation matrix from a normal and a up vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > rotate (vec< 2, T, Q > const &v, T const &angle)
 Rotate a two dimensional vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a three dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a four dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateX (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateX (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateY (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateY (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateZ (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateZ (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > slerp (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
 Returns Spherical interpolation between two vectors. More...
 
+

Detailed Description

+

GLM_GTX_rotate_vector

+
See also
Core features (dependence)
+
+GLM_GTX_transform (dependence)
+ +

Definition in file rotate_vector.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00142_source.html b/external/include/glm-0.9.9.8/doc/api/a00142_source.html index 1667d98abd..dfa75fff5b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00142_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00142_source.html @@ -1,188 +1,188 @@ - - - - - - -0.9.9 API documentation: rotate_vector.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
rotate_vector.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../gtx/transform.hpp"
-
18 #include "../gtc/epsilon.hpp"
-
19 #include "../ext/vector_relational.hpp"
-
20 #include "../glm.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
42  template<typename T, qualifier Q>
-
43  GLM_FUNC_DECL vec<3, T, Q> slerp(
-
44  vec<3, T, Q> const& x,
-
45  vec<3, T, Q> const& y,
-
46  T const& a);
-
47 
-
50  template<typename T, qualifier Q>
-
51  GLM_FUNC_DECL vec<2, T, Q> rotate(
-
52  vec<2, T, Q> const& v,
-
53  T const& angle);
-
54 
-
57  template<typename T, qualifier Q>
-
58  GLM_FUNC_DECL vec<3, T, Q> rotate(
-
59  vec<3, T, Q> const& v,
-
60  T const& angle,
-
61  vec<3, T, Q> const& normal);
-
62 
-
65  template<typename T, qualifier Q>
-
66  GLM_FUNC_DECL vec<4, T, Q> rotate(
-
67  vec<4, T, Q> const& v,
-
68  T const& angle,
-
69  vec<3, T, Q> const& normal);
-
70 
-
73  template<typename T, qualifier Q>
-
74  GLM_FUNC_DECL vec<3, T, Q> rotateX(
-
75  vec<3, T, Q> const& v,
-
76  T const& angle);
-
77 
-
80  template<typename T, qualifier Q>
-
81  GLM_FUNC_DECL vec<3, T, Q> rotateY(
-
82  vec<3, T, Q> const& v,
-
83  T const& angle);
-
84 
-
87  template<typename T, qualifier Q>
-
88  GLM_FUNC_DECL vec<3, T, Q> rotateZ(
-
89  vec<3, T, Q> const& v,
-
90  T const& angle);
-
91 
-
94  template<typename T, qualifier Q>
-
95  GLM_FUNC_DECL vec<4, T, Q> rotateX(
-
96  vec<4, T, Q> const& v,
-
97  T const& angle);
-
98 
-
101  template<typename T, qualifier Q>
-
102  GLM_FUNC_DECL vec<4, T, Q> rotateY(
-
103  vec<4, T, Q> const& v,
-
104  T const& angle);
-
105 
-
108  template<typename T, qualifier Q>
-
109  GLM_FUNC_DECL vec<4, T, Q> rotateZ(
-
110  vec<4, T, Q> const& v,
-
111  T const& angle);
-
112 
-
115  template<typename T, qualifier Q>
-
116  GLM_FUNC_DECL mat<4, 4, T, Q> orientation(
-
117  vec<3, T, Q> const& Normal,
-
118  vec<3, T, Q> const& Up);
-
119 
-
121 }//namespace glm
-
122 
-
123 #include "rotate_vector.inl"
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL vec< 4, T, Q > rotateZ(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the Z axis.
-
GLM_FUNC_DECL vec< 4, T, Q > rotateY(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the Y axis.
-
GLM_FUNC_DECL vec< 4, T, Q > rotateX(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the X axis.
-
GLM_FUNC_DECL vec< 3, T, Q > slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
Returns Spherical interpolation between two vectors.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
-
GLM_FUNC_DECL vec< 4, T, Q > rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
Rotate a four dimensional vector around an axis.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: rotate_vector.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
rotate_vector.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../gtx/transform.hpp"
+
18 #include "../gtc/epsilon.hpp"
+
19 #include "../ext/vector_relational.hpp"
+
20 #include "../glm.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
42  template<typename T, qualifier Q>
+
43  GLM_FUNC_DECL vec<3, T, Q> slerp(
+
44  vec<3, T, Q> const& x,
+
45  vec<3, T, Q> const& y,
+
46  T const& a);
+
47 
+
50  template<typename T, qualifier Q>
+
51  GLM_FUNC_DECL vec<2, T, Q> rotate(
+
52  vec<2, T, Q> const& v,
+
53  T const& angle);
+
54 
+
57  template<typename T, qualifier Q>
+
58  GLM_FUNC_DECL vec<3, T, Q> rotate(
+
59  vec<3, T, Q> const& v,
+
60  T const& angle,
+
61  vec<3, T, Q> const& normal);
+
62 
+
65  template<typename T, qualifier Q>
+
66  GLM_FUNC_DECL vec<4, T, Q> rotate(
+
67  vec<4, T, Q> const& v,
+
68  T const& angle,
+
69  vec<3, T, Q> const& normal);
+
70 
+
73  template<typename T, qualifier Q>
+
74  GLM_FUNC_DECL vec<3, T, Q> rotateX(
+
75  vec<3, T, Q> const& v,
+
76  T const& angle);
+
77 
+
80  template<typename T, qualifier Q>
+
81  GLM_FUNC_DECL vec<3, T, Q> rotateY(
+
82  vec<3, T, Q> const& v,
+
83  T const& angle);
+
84 
+
87  template<typename T, qualifier Q>
+
88  GLM_FUNC_DECL vec<3, T, Q> rotateZ(
+
89  vec<3, T, Q> const& v,
+
90  T const& angle);
+
91 
+
94  template<typename T, qualifier Q>
+
95  GLM_FUNC_DECL vec<4, T, Q> rotateX(
+
96  vec<4, T, Q> const& v,
+
97  T const& angle);
+
98 
+
101  template<typename T, qualifier Q>
+
102  GLM_FUNC_DECL vec<4, T, Q> rotateY(
+
103  vec<4, T, Q> const& v,
+
104  T const& angle);
+
105 
+
108  template<typename T, qualifier Q>
+
109  GLM_FUNC_DECL vec<4, T, Q> rotateZ(
+
110  vec<4, T, Q> const& v,
+
111  T const& angle);
+
112 
+
115  template<typename T, qualifier Q>
+
116  GLM_FUNC_DECL mat<4, 4, T, Q> orientation(
+
117  vec<3, T, Q> const& Normal,
+
118  vec<3, T, Q> const& Up);
+
119 
+
121 }//namespace glm
+
122 
+
123 #include "rotate_vector.inl"
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL vec< 4, T, Q > rotateZ(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the Z axis.
+
GLM_FUNC_DECL vec< 4, T, Q > rotateY(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the Y axis.
+
GLM_FUNC_DECL vec< 4, T, Q > rotateX(vec< 4, T, Q > const &v, T const &angle)
Rotate a four dimensional vector around the X axis.
+
GLM_FUNC_DECL vec< 3, T, Q > slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
Returns Spherical interpolation between two vectors.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation(vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
Build a rotation matrix from a normal and a up vector.
+
GLM_FUNC_DECL vec< 4, T, Q > rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
Rotate a four dimensional vector around an axis.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00143.html b/external/include/glm-0.9.9.8/doc/api/a00143.html index fae2d54261..4853ae536a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00143.html +++ b/external/include/glm-0.9.9.8/doc/api/a00143.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: round.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
round.hpp File Reference
-
-
- -

GLM_GTC_round -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType v, genType Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType v)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is the closet to the input value. More...
 
-

Detailed Description

-

GLM_GTC_round

-
See also
Core features (dependence)
-
-GLM_GTC_round (dependence)
- -

Definition in file round.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: round.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
round.hpp File Reference
+
+
+ +

GLM_GTC_round +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType v, genType Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType v)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is the closet to the input value. More...
 
+

Detailed Description

+

GLM_GTC_round

+
See also
Core features (dependence)
+
+GLM_GTC_round (dependence)
+ +

Definition in file round.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00143_source.html b/external/include/glm-0.9.9.8/doc/api/a00143_source.html index f97d76a721..f900669bd2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00143_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00143_source.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: round.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
round.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependencies
-
17 #include "../detail/setup.hpp"
-
18 #include "../detail/qualifier.hpp"
-
19 #include "../detail/_vectorize.hpp"
-
20 #include "../vector_relational.hpp"
-
21 #include "../common.hpp"
-
22 #include <limits>
-
23 
-
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
25 # pragma message("GLM: GLM_GTC_round extension included")
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
37  template<typename genIUType>
-
38  GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType v);
-
39 
-
48  template<length_t L, typename T, qualifier Q>
-
49  GLM_FUNC_DECL vec<L, T, Q> ceilPowerOfTwo(vec<L, T, Q> const& v);
-
50 
-
55  template<typename genIUType>
-
56  GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType v);
-
57 
-
66  template<length_t L, typename T, qualifier Q>
-
67  GLM_FUNC_DECL vec<L, T, Q> floorPowerOfTwo(vec<L, T, Q> const& v);
-
68 
-
72  template<typename genIUType>
-
73  GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType v);
-
74 
-
82  template<length_t L, typename T, qualifier Q>
-
83  GLM_FUNC_DECL vec<L, T, Q> roundPowerOfTwo(vec<L, T, Q> const& v);
-
84 
-
93  template<typename genType>
-
94  GLM_FUNC_DECL genType ceilMultiple(genType v, genType Multiple);
-
95 
-
106  template<length_t L, typename T, qualifier Q>
-
107  GLM_FUNC_DECL vec<L, T, Q> ceilMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
108 
-
117  template<typename genType>
-
118  GLM_FUNC_DECL genType floorMultiple(genType v, genType Multiple);
-
119 
-
130  template<length_t L, typename T, qualifier Q>
-
131  GLM_FUNC_DECL vec<L, T, Q> floorMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
132 
-
141  template<typename genType>
-
142  GLM_FUNC_DECL genType roundMultiple(genType v, genType Multiple);
-
143 
-
154  template<length_t L, typename T, qualifier Q>
-
155  GLM_FUNC_DECL vec<L, T, Q> roundMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
156 
-
158 } //namespace glm
-
159 
-
160 #include "round.inl"
-
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is the closet to the input value.
-
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Higher multiple number of Source.
-
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
-
GLM_FUNC_DECL vec< L, T, Q > roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
-
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just higher the input value, round up to a power of two...
-
GLM_FUNC_DECL vec< L, T, Q > floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: round.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
round.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependencies
+
17 #include "../detail/setup.hpp"
+
18 #include "../detail/qualifier.hpp"
+
19 #include "../detail/_vectorize.hpp"
+
20 #include "../vector_relational.hpp"
+
21 #include "../common.hpp"
+
22 #include <limits>
+
23 
+
24 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
25 # pragma message("GLM: GLM_GTC_round extension included")
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
37  template<typename genIUType>
+
38  GLM_FUNC_DECL genIUType ceilPowerOfTwo(genIUType v);
+
39 
+
48  template<length_t L, typename T, qualifier Q>
+
49  GLM_FUNC_DECL vec<L, T, Q> ceilPowerOfTwo(vec<L, T, Q> const& v);
+
50 
+
55  template<typename genIUType>
+
56  GLM_FUNC_DECL genIUType floorPowerOfTwo(genIUType v);
+
57 
+
66  template<length_t L, typename T, qualifier Q>
+
67  GLM_FUNC_DECL vec<L, T, Q> floorPowerOfTwo(vec<L, T, Q> const& v);
+
68 
+
72  template<typename genIUType>
+
73  GLM_FUNC_DECL genIUType roundPowerOfTwo(genIUType v);
+
74 
+
82  template<length_t L, typename T, qualifier Q>
+
83  GLM_FUNC_DECL vec<L, T, Q> roundPowerOfTwo(vec<L, T, Q> const& v);
+
84 
+
93  template<typename genType>
+
94  GLM_FUNC_DECL genType ceilMultiple(genType v, genType Multiple);
+
95 
+
106  template<length_t L, typename T, qualifier Q>
+
107  GLM_FUNC_DECL vec<L, T, Q> ceilMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
108 
+
117  template<typename genType>
+
118  GLM_FUNC_DECL genType floorMultiple(genType v, genType Multiple);
+
119 
+
130  template<length_t L, typename T, qualifier Q>
+
131  GLM_FUNC_DECL vec<L, T, Q> floorMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
132 
+
141  template<typename genType>
+
142  GLM_FUNC_DECL genType roundMultiple(genType v, genType Multiple);
+
143 
+
154  template<length_t L, typename T, qualifier Q>
+
155  GLM_FUNC_DECL vec<L, T, Q> roundMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
156 
+
158 } //namespace glm
+
159 
+
160 #include "round.inl"
+
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is the closet to the input value.
+
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Higher multiple number of Source.
+
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
+
GLM_FUNC_DECL vec< L, T, Q > roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
+
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just higher the input value, round up to a power of two...
+
GLM_FUNC_DECL vec< L, T, Q > floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00144.html b/external/include/glm-0.9.9.8/doc/api/a00144.html index c9b0190f75..a0f522be97 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00144.html +++ b/external/include/glm-0.9.9.8/doc/api/a00144.html @@ -1,154 +1,154 @@ - - - - - - -0.9.9 API documentation: scalar_common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_common.hpp File Reference
-
-
- -

GLM_EXT_scalar_common -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fmax (T a, T b)
 Returns the maximum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C, T D)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b)
 Returns the minimum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c, T d)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

GLM_EXT_scalar_common

- -

Definition in file scalar_common.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: scalar_common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_common.hpp File Reference
+
+
+ +

GLM_EXT_scalar_common +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fmax (T a, T b)
 Returns the maximum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C, T D)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b)
 Returns the minimum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c, T d)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

GLM_EXT_scalar_common

+ +

Definition in file scalar_common.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00144_source.html b/external/include/glm-0.9.9.8/doc/api/a00144_source.html index daf7fce159..13df516a5b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00144_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00144_source.html @@ -1,150 +1,150 @@ - - - - - - -0.9.9 API documentation: scalar_common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_common.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../common.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # pragma message("GLM: GLM_EXT_scalar_common extension included")
-
21 #endif
-
22 
-
23 namespace glm
-
24 {
-
27 
-
31  template<typename T>
-
32  GLM_FUNC_DECL T min(T a, T b, T c);
-
33 
-
37  template<typename T>
-
38  GLM_FUNC_DECL T min(T a, T b, T c, T d);
-
39 
-
43  template<typename T>
-
44  GLM_FUNC_DECL T max(T a, T b, T c);
-
45 
-
49  template<typename T>
-
50  GLM_FUNC_DECL T max(T a, T b, T c, T d);
-
51 
-
57  template<typename T>
-
58  GLM_FUNC_DECL T fmin(T a, T b);
-
59 
-
65  template<typename T>
-
66  GLM_FUNC_DECL T fmin(T a, T b, T c);
-
67 
-
73  template<typename T>
-
74  GLM_FUNC_DECL T fmin(T a, T b, T c, T d);
-
75 
-
81  template<typename T>
-
82  GLM_FUNC_DECL T fmax(T a, T b);
-
83 
-
89  template<typename T>
-
90  GLM_FUNC_DECL T fmax(T a, T b, T C);
-
91 
-
97  template<typename T>
-
98  GLM_FUNC_DECL T fmax(T a, T b, T C, T D);
-
99 
-
101 }//namespace glm
-
102 
-
103 #include "scalar_common.inl"
-
GLM_FUNC_DECL T min(T a, T b, T c, T d)
Returns the minimum component-wise values of 4 inputs.
-
GLM_FUNC_DECL T max(T a, T b, T c, T d)
Returns the maximum component-wise values of 4 inputs.
-
GLM_FUNC_DECL T fmax(T a, T b, T C, T D)
Returns the maximum component-wise values of 4 inputs.
-
GLM_FUNC_DECL T fmin(T a, T b, T c, T d)
Returns the minimum component-wise values of 4 inputs.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_common.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../common.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # pragma message("GLM: GLM_EXT_scalar_common extension included")
+
21 #endif
+
22 
+
23 namespace glm
+
24 {
+
27 
+
31  template<typename T>
+
32  GLM_FUNC_DECL T min(T a, T b, T c);
+
33 
+
37  template<typename T>
+
38  GLM_FUNC_DECL T min(T a, T b, T c, T d);
+
39 
+
43  template<typename T>
+
44  GLM_FUNC_DECL T max(T a, T b, T c);
+
45 
+
49  template<typename T>
+
50  GLM_FUNC_DECL T max(T a, T b, T c, T d);
+
51 
+
57  template<typename T>
+
58  GLM_FUNC_DECL T fmin(T a, T b);
+
59 
+
65  template<typename T>
+
66  GLM_FUNC_DECL T fmin(T a, T b, T c);
+
67 
+
73  template<typename T>
+
74  GLM_FUNC_DECL T fmin(T a, T b, T c, T d);
+
75 
+
81  template<typename T>
+
82  GLM_FUNC_DECL T fmax(T a, T b);
+
83 
+
89  template<typename T>
+
90  GLM_FUNC_DECL T fmax(T a, T b, T C);
+
91 
+
97  template<typename T>
+
98  GLM_FUNC_DECL T fmax(T a, T b, T C, T D);
+
99 
+
101 }//namespace glm
+
102 
+
103 #include "scalar_common.inl"
+
GLM_FUNC_DECL T min(T a, T b, T c, T d)
Returns the minimum component-wise values of 4 inputs.
+
GLM_FUNC_DECL T max(T a, T b, T c, T d)
Returns the maximum component-wise values of 4 inputs.
+
GLM_FUNC_DECL T fmax(T a, T b, T C, T D)
Returns the maximum component-wise values of 4 inputs.
+
GLM_FUNC_DECL T fmin(T a, T b, T c, T d)
Returns the minimum component-wise values of 4 inputs.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00145.html b/external/include/glm-0.9.9.8/doc/api/a00145.html index 715a85f4f1..4ce4ff3cf0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00145.html +++ b/external/include/glm-0.9.9.8/doc/api/a00145.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: scalar_constants.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_constants.hpp File Reference
-
-
- -

GLM_EXT_scalar_constants -More...

- -

Go to the source code of this file.

- - - - - - - - - - -

-Functions

-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon ()
 Return the epsilon constant for floating point types.
 
-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType pi ()
 Return the pi constant for floating point types.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: scalar_constants.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_constants.hpp File Reference
+
+
+ +

GLM_EXT_scalar_constants +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Functions

+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon ()
 Return the epsilon constant for floating point types.
 
+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType pi ()
 Return the pi constant for floating point types.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00145_source.html b/external/include/glm-0.9.9.8/doc/api/a00145_source.html index 4919628db2..084396a849 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00145_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00145_source.html @@ -1,124 +1,124 @@ - - - - - - -0.9.9 API documentation: scalar_constants.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_constants.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 // Dependencies
-
14 #include "../detail/setup.hpp"
-
15 
-
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
17 # pragma message("GLM: GLM_EXT_scalar_constants extension included")
-
18 #endif
-
19 
-
20 namespace glm
-
21 {
-
24 
-
26  template<typename genType>
-
27  GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
-
28 
-
30  template<typename genType>
-
31  GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
-
32 
-
34 } //namespace glm
-
35 
-
36 #include "scalar_constants.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR genType pi()
Return the pi constant for floating point types.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_constants.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_constants.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 // Dependencies
+
14 #include "../detail/setup.hpp"
+
15 
+
16 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
17 # pragma message("GLM: GLM_EXT_scalar_constants extension included")
+
18 #endif
+
19 
+
20 namespace glm
+
21 {
+
24 
+
26  template<typename genType>
+
27  GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
+
28 
+
30  template<typename genType>
+
31  GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
+
32 
+
34 } //namespace glm
+
35 
+
36 #include "scalar_constants.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR genType pi()
Return the pi constant for floating point types.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00146.html b/external/include/glm-0.9.9.8/doc/api/a00146.html index 6a7dd2f6d8..4f227064b1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00146.html +++ b/external/include/glm-0.9.9.8/doc/api/a00146.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: scalar_int_sized.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_int_sized.hpp File Reference
-
-
- -

GLM_EXT_scalar_int_sized -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Typedefs

-typedef detail::int16 int16
 16 bit signed integer type.
 
-typedef detail::int32 int32
 32 bit signed integer type.
 
-typedef detail::int64 int64
 64 bit signed integer type.
 
-typedef detail::int8 int8
 8 bit signed integer type.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: scalar_int_sized.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_int_sized.hpp File Reference
+
+
+ +

GLM_EXT_scalar_int_sized +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Typedefs

+typedef detail::int16 int16
 16 bit signed integer type.
 
+typedef detail::int32 int32
 32 bit signed integer type.
 
+typedef detail::int64 int64
 64 bit signed integer type.
 
+typedef detail::int8 int8
 8 bit signed integer type.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00146_source.html b/external/include/glm-0.9.9.8/doc/api/a00146_source.html index 1fcdb95270..d1f3534692 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00146_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00146_source.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: scalar_int_sized.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_int_sized.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/setup.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # pragma message("GLM: GLM_EXT_scalar_int_sized extension included")
-
19 #endif
-
20 
-
21 namespace glm{
-
22 namespace detail
-
23 {
-
24 # if GLM_HAS_EXTENDED_INTEGER_TYPE
-
25  typedef std::int8_t int8;
-
26  typedef std::int16_t int16;
-
27  typedef std::int32_t int32;
-
28 # else
-
29  typedef signed char int8;
-
30  typedef signed short int16;
-
31  typedef signed int int32;
-
32 #endif//
-
33 
-
34  template<>
-
35  struct is_int<int8>
-
36  {
-
37  enum test {value = ~0};
-
38  };
-
39 
-
40  template<>
-
41  struct is_int<int16>
-
42  {
-
43  enum test {value = ~0};
-
44  };
-
45 
-
46  template<>
-
47  struct is_int<int64>
-
48  {
-
49  enum test {value = ~0};
-
50  };
-
51 }//namespace detail
-
52 
-
53 
-
56 
-
58  typedef detail::int8 int8;
-
59 
-
61  typedef detail::int16 int16;
-
62 
-
64  typedef detail::int32 int32;
-
65 
-
67  typedef detail::int64 int64;
-
68 
-
70 }//namespace glm
-
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
-
detail::int8 int8
8 bit signed integer type.
-
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
-
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
-
detail::int64 int64
64 bit signed integer type.
-
detail::int32 int32
32 bit signed integer type.
-
detail::int16 int16
16 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_int_sized.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_int_sized.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/setup.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # pragma message("GLM: GLM_EXT_scalar_int_sized extension included")
+
19 #endif
+
20 
+
21 namespace glm{
+
22 namespace detail
+
23 {
+
24 # if GLM_HAS_EXTENDED_INTEGER_TYPE
+
25  typedef std::int8_t int8;
+
26  typedef std::int16_t int16;
+
27  typedef std::int32_t int32;
+
28 # else
+
29  typedef signed char int8;
+
30  typedef signed short int16;
+
31  typedef signed int int32;
+
32 #endif//
+
33 
+
34  template<>
+
35  struct is_int<int8>
+
36  {
+
37  enum test {value = ~0};
+
38  };
+
39 
+
40  template<>
+
41  struct is_int<int16>
+
42  {
+
43  enum test {value = ~0};
+
44  };
+
45 
+
46  template<>
+
47  struct is_int<int64>
+
48  {
+
49  enum test {value = ~0};
+
50  };
+
51 }//namespace detail
+
52 
+
53 
+
56 
+
58  typedef detail::int8 int8;
+
59 
+
61  typedef detail::int16 int16;
+
62 
+
64  typedef detail::int32 int32;
+
65 
+
67  typedef detail::int64 int64;
+
68 
+
70 }//namespace glm
+
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
+
detail::int8 int8
8 bit signed integer type.
+
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
+
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
+
detail::int64 int64
64 bit signed integer type.
+
detail::int32 int32
32 bit signed integer type.
+
detail::int16 int16
16 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00147.html b/external/include/glm-0.9.9.8/doc/api/a00147.html index e779c67b02..856a382d5d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00147.html +++ b/external/include/glm-0.9.9.8/doc/api/a00147.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: scalar_integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_integer.hpp File Reference
-
-
- -

GLM_EXT_scalar_integer -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genIUType >
GLM_FUNC_DECL int findNSB (genIUType x, int significantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType v, genIUType Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType v)
 Return true if the value is a power of two number. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextMultiple (genIUType v, genIUType Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevMultiple (genIUType v, genIUType Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
-

Detailed Description

-

GLM_EXT_scalar_integer

-
See also
Core features (dependence)
- -

Definition in file scalar_integer.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: scalar_integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_integer.hpp File Reference
+
+
+ +

GLM_EXT_scalar_integer +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL int findNSB (genIUType x, int significantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType v, genIUType Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType v)
 Return true if the value is a power of two number. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextMultiple (genIUType v, genIUType Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevMultiple (genIUType v, genIUType Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
+

Detailed Description

+

GLM_EXT_scalar_integer

+
See also
Core features (dependence)
+ +

Definition in file scalar_integer.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00147_source.html b/external/include/glm-0.9.9.8/doc/api/a00147_source.html index 48c4cf81b1..977c7b0512 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00147_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00147_source.html @@ -1,150 +1,150 @@ - - - - - - -0.9.9 API documentation: scalar_integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_integer.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 // Dependencies
-
14 #include "../detail/setup.hpp"
-
15 #include "../detail/qualifier.hpp"
-
16 #include "../detail/_vectorize.hpp"
-
17 #include "../detail/type_float.hpp"
-
18 #include "../vector_relational.hpp"
-
19 #include "../common.hpp"
-
20 #include <limits>
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_EXT_scalar_integer extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
34  template<typename genIUType>
-
35  GLM_FUNC_DECL bool isPowerOfTwo(genIUType v);
-
36 
-
41  template<typename genIUType>
-
42  GLM_FUNC_DECL genIUType nextPowerOfTwo(genIUType v);
-
43 
-
48  template<typename genIUType>
-
49  GLM_FUNC_DECL genIUType prevPowerOfTwo(genIUType v);
-
50 
-
54  template<typename genIUType>
-
55  GLM_FUNC_DECL bool isMultiple(genIUType v, genIUType Multiple);
-
56 
-
65  template<typename genIUType>
-
66  GLM_FUNC_DECL genIUType nextMultiple(genIUType v, genIUType Multiple);
-
67 
-
76  template<typename genIUType>
-
77  GLM_FUNC_DECL genIUType prevMultiple(genIUType v, genIUType Multiple);
-
78 
-
86  template<typename genIUType>
-
87  GLM_FUNC_DECL int findNSB(genIUType x, int significantBitCount);
-
88 
-
90 } //namespace glm
-
91 
-
92 #include "scalar_integer.inl"
-
GLM_FUNC_DECL genIUType prevPowerOfTwo(genIUType v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
-
GLM_FUNC_DECL genIUType prevMultiple(genIUType v, genIUType Multiple)
Lower multiple number of Source.
-
GLM_FUNC_DECL bool isMultiple(genIUType v, genIUType Multiple)
Return true if the 'Value' is a multiple of 'Multiple'.
-
GLM_FUNC_DECL int findNSB(genIUType x, int significantBitCount)
Returns the bit number of the Nth significant bit set to 1 in the binary representation of value...
-
GLM_FUNC_DECL genIUType nextMultiple(genIUType v, genIUType Multiple)
Higher multiple number of Source.
-
GLM_FUNC_DECL bool isPowerOfTwo(genIUType v)
Return true if the value is a power of two number.
-
GLM_FUNC_DECL genIUType nextPowerOfTwo(genIUType v)
Return the power of two number which value is just higher the input value, round up to a power of two...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_integer.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 // Dependencies
+
14 #include "../detail/setup.hpp"
+
15 #include "../detail/qualifier.hpp"
+
16 #include "../detail/_vectorize.hpp"
+
17 #include "../detail/type_float.hpp"
+
18 #include "../vector_relational.hpp"
+
19 #include "../common.hpp"
+
20 #include <limits>
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_EXT_scalar_integer extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
34  template<typename genIUType>
+
35  GLM_FUNC_DECL bool isPowerOfTwo(genIUType v);
+
36 
+
41  template<typename genIUType>
+
42  GLM_FUNC_DECL genIUType nextPowerOfTwo(genIUType v);
+
43 
+
48  template<typename genIUType>
+
49  GLM_FUNC_DECL genIUType prevPowerOfTwo(genIUType v);
+
50 
+
54  template<typename genIUType>
+
55  GLM_FUNC_DECL bool isMultiple(genIUType v, genIUType Multiple);
+
56 
+
65  template<typename genIUType>
+
66  GLM_FUNC_DECL genIUType nextMultiple(genIUType v, genIUType Multiple);
+
67 
+
76  template<typename genIUType>
+
77  GLM_FUNC_DECL genIUType prevMultiple(genIUType v, genIUType Multiple);
+
78 
+
86  template<typename genIUType>
+
87  GLM_FUNC_DECL int findNSB(genIUType x, int significantBitCount);
+
88 
+
90 } //namespace glm
+
91 
+
92 #include "scalar_integer.inl"
+
GLM_FUNC_DECL genIUType prevPowerOfTwo(genIUType v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
+
GLM_FUNC_DECL genIUType prevMultiple(genIUType v, genIUType Multiple)
Lower multiple number of Source.
+
GLM_FUNC_DECL bool isMultiple(genIUType v, genIUType Multiple)
Return true if the 'Value' is a multiple of 'Multiple'.
+
GLM_FUNC_DECL int findNSB(genIUType x, int significantBitCount)
Returns the bit number of the Nth significant bit set to 1 in the binary representation of value...
+
GLM_FUNC_DECL genIUType nextMultiple(genIUType v, genIUType Multiple)
Higher multiple number of Source.
+
GLM_FUNC_DECL bool isPowerOfTwo(genIUType v)
Return true if the value is a power of two number.
+
GLM_FUNC_DECL genIUType nextPowerOfTwo(genIUType v)
Return the power of two number which value is just higher the input value, round up to a power of two...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00148.html b/external/include/glm-0.9.9.8/doc/api/a00148.html index 922ceb6268..ec50cf351a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00148.html +++ b/external/include/glm-0.9.9.8/doc/api/a00148.html @@ -1,112 +1,112 @@ - - - - - - -0.9.9 API documentation: scalar_multiplication.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_multiplication.hpp File Reference
-
-
- -

Experimental extensions -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Experimental extensions

-
Author
Joshua Moerman
-

Include <glm/gtx/scalar_multiplication.hpp> to use the features of this extension.

-

Enables scalar multiplication for all types

-

Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic)

- -

Definition in file scalar_multiplication.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: scalar_multiplication.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_multiplication.hpp File Reference
+
+
+ +

Experimental extensions +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Experimental extensions

+
Author
Joshua Moerman
+

Include <glm/gtx/scalar_multiplication.hpp> to use the features of this extension.

+

Enables scalar multiplication for all types

+

Since GLSL is very strict about types, the following (often used) combinations do not work: double * vec4 int * vec4 vec4 / int So we'll fix that! Of course "float * vec4" should remain the same (hence the enable_if magic)

+ +

Definition in file scalar_multiplication.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00148_source.html b/external/include/glm-0.9.9.8/doc/api/a00148_source.html index 965eab13ba..a4a9c590dd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00148_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00148_source.html @@ -1,174 +1,174 @@ - - - - - - -0.9.9 API documentation: scalar_multiplication.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_multiplication.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 #include "../detail/setup.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_scalar_multiplication extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 #include "../vec2.hpp"
-
28 #include "../vec3.hpp"
-
29 #include "../vec4.hpp"
-
30 #include "../mat2x2.hpp"
-
31 #include <type_traits>
-
32 
-
33 namespace glm
-
34 {
-
35  template<typename T, typename Vec>
-
36  using return_type_scalar_multiplication = typename std::enable_if<
-
37  !std::is_same<T, float>::value // T may not be a float
-
38  && std::is_arithmetic<T>::value, Vec // But it may be an int or double (no vec3 or mat3, ...)
-
39  >::type;
-
40 
-
41 #define GLM_IMPLEMENT_SCAL_MULT(Vec) \
-
42  template<typename T> \
-
43  return_type_scalar_multiplication<T, Vec> \
-
44  operator*(T const& s, Vec rh){ \
-
45  return rh *= static_cast<float>(s); \
-
46  } \
-
47  \
-
48  template<typename T> \
-
49  return_type_scalar_multiplication<T, Vec> \
-
50  operator*(Vec lh, T const& s){ \
-
51  return lh *= static_cast<float>(s); \
-
52  } \
-
53  \
-
54  template<typename T> \
-
55  return_type_scalar_multiplication<T, Vec> \
-
56  operator/(Vec lh, T const& s){ \
-
57  return lh *= 1.0f / s; \
-
58  }
-
59 
-
60 GLM_IMPLEMENT_SCAL_MULT(vec2)
-
61 GLM_IMPLEMENT_SCAL_MULT(vec3)
-
62 GLM_IMPLEMENT_SCAL_MULT(vec4)
-
63 
-
64 GLM_IMPLEMENT_SCAL_MULT(mat2)
-
65 GLM_IMPLEMENT_SCAL_MULT(mat2x3)
-
66 GLM_IMPLEMENT_SCAL_MULT(mat2x4)
-
67 GLM_IMPLEMENT_SCAL_MULT(mat3x2)
-
68 GLM_IMPLEMENT_SCAL_MULT(mat3)
-
69 GLM_IMPLEMENT_SCAL_MULT(mat3x4)
-
70 GLM_IMPLEMENT_SCAL_MULT(mat4x2)
-
71 GLM_IMPLEMENT_SCAL_MULT(mat4x3)
-
72 GLM_IMPLEMENT_SCAL_MULT(mat4)
-
73 
-
74 #undef GLM_IMPLEMENT_SCAL_MULT
-
75 } // namespace glm
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
-
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
-
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
-
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
-
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
-
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
-
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_multiplication.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_multiplication.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 #include "../detail/setup.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_scalar_multiplication extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 #include "../vec2.hpp"
+
28 #include "../vec3.hpp"
+
29 #include "../vec4.hpp"
+
30 #include "../mat2x2.hpp"
+
31 #include <type_traits>
+
32 
+
33 namespace glm
+
34 {
+
35  template<typename T, typename Vec>
+
36  using return_type_scalar_multiplication = typename std::enable_if<
+
37  !std::is_same<T, float>::value // T may not be a float
+
38  && std::is_arithmetic<T>::value, Vec // But it may be an int or double (no vec3 or mat3, ...)
+
39  >::type;
+
40 
+
41 #define GLM_IMPLEMENT_SCAL_MULT(Vec) \
+
42  template<typename T> \
+
43  return_type_scalar_multiplication<T, Vec> \
+
44  operator*(T const& s, Vec rh){ \
+
45  return rh *= static_cast<float>(s); \
+
46  } \
+
47  \
+
48  template<typename T> \
+
49  return_type_scalar_multiplication<T, Vec> \
+
50  operator*(Vec lh, T const& s){ \
+
51  return lh *= static_cast<float>(s); \
+
52  } \
+
53  \
+
54  template<typename T> \
+
55  return_type_scalar_multiplication<T, Vec> \
+
56  operator/(Vec lh, T const& s){ \
+
57  return lh *= 1.0f / s; \
+
58  }
+
59 
+
60 GLM_IMPLEMENT_SCAL_MULT(vec2)
+
61 GLM_IMPLEMENT_SCAL_MULT(vec3)
+
62 GLM_IMPLEMENT_SCAL_MULT(vec4)
+
63 
+
64 GLM_IMPLEMENT_SCAL_MULT(mat2)
+
65 GLM_IMPLEMENT_SCAL_MULT(mat2x3)
+
66 GLM_IMPLEMENT_SCAL_MULT(mat2x4)
+
67 GLM_IMPLEMENT_SCAL_MULT(mat3x2)
+
68 GLM_IMPLEMENT_SCAL_MULT(mat3)
+
69 GLM_IMPLEMENT_SCAL_MULT(mat3x4)
+
70 GLM_IMPLEMENT_SCAL_MULT(mat4x2)
+
71 GLM_IMPLEMENT_SCAL_MULT(mat4x3)
+
72 GLM_IMPLEMENT_SCAL_MULT(mat4)
+
73 
+
74 #undef GLM_IMPLEMENT_SCAL_MULT
+
75 } // namespace glm
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
mat< 2, 4, float, defaultp > mat2x4
2 columns of 4 components matrix of single-precision floating-point numbers.
+
mat< 3, 2, float, defaultp > mat3x2
3 columns of 2 components matrix of single-precision floating-point numbers.
+
mat< 3, 4, float, defaultp > mat3x4
3 columns of 4 components matrix of single-precision floating-point numbers.
+
mat< 4, 3, float, defaultp > mat4x3
4 columns of 3 components matrix of single-precision floating-point numbers.
+
mat< 4, 2, float, defaultp > mat4x2
4 columns of 2 components matrix of single-precision floating-point numbers.
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
+
mat< 2, 3, float, defaultp > mat2x3
2 columns of 3 components matrix of single-precision floating-point numbers.
+
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00149.html b/external/include/glm-0.9.9.8/doc/api/a00149.html index 8d4fbc987c..f7aa38c374 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00149.html +++ b/external/include/glm-0.9.9.8/doc/api/a00149.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: scalar_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ext/scalar_relational.hpp File Reference
-
-
- -

GLM_EXT_scalar_relational -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool equal (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool equal (genType const &x, genType const &y, int ULPs)
 Returns the component-wise comparison between two scalars in term of ULPs. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual (genType const &x, genType const &y, int ULPs)
 Returns the component-wise comparison between two scalars in term of ULPs. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: scalar_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ext/scalar_relational.hpp File Reference
+
+
+ +

GLM_EXT_scalar_relational +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool equal (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool equal (genType const &x, genType const &y, int ULPs)
 Returns the component-wise comparison between two scalars in term of ULPs. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual (genType const &x, genType const &y, int ULPs)
 Returns the component-wise comparison between two scalars in term of ULPs. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00149_source.html b/external/include/glm-0.9.9.8/doc/api/a00149_source.html index e4bf4a2a9e..c013efd3c4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00149_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00149_source.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: scalar_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ext/scalar_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependencies
-
18 #include "../detail/qualifier.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # pragma message("GLM: GLM_EXT_scalar_relational extension included")
-
22 #endif
-
23 
-
24 namespace glm
-
25 {
-
30  template<typename genType>
-
31  GLM_FUNC_DECL GLM_CONSTEXPR bool equal(genType const& x, genType const& y, genType const& epsilon);
-
32 
-
37  template<typename genType>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, genType const& epsilon);
-
39 
-
48  template<typename genType>
-
49  GLM_FUNC_DECL GLM_CONSTEXPR bool equal(genType const& x, genType const& y, int ULPs);
-
50 
-
59  template<typename genType>
-
60  GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, int ULPs);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "scalar_relational.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Perform a component-wise not-equal-to comparison of two matrices.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Perform a component-wise equal-to comparison of two matrices.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext/scalar_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependencies
+
18 #include "../detail/qualifier.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # pragma message("GLM: GLM_EXT_scalar_relational extension included")
+
22 #endif
+
23 
+
24 namespace glm
+
25 {
+
30  template<typename genType>
+
31  GLM_FUNC_DECL GLM_CONSTEXPR bool equal(genType const& x, genType const& y, genType const& epsilon);
+
32 
+
37  template<typename genType>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, genType const& epsilon);
+
39 
+
48  template<typename genType>
+
49  GLM_FUNC_DECL GLM_CONSTEXPR bool equal(genType const& x, genType const& y, int ULPs);
+
50 
+
59  template<typename genType>
+
60  GLM_FUNC_DECL GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, int ULPs);
+
61 
+
63 }//namespace glm
+
64 
+
65 #include "scalar_relational.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Perform a component-wise not-equal-to comparison of two matrices.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
Perform a component-wise equal-to comparison of two matrices.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00150.html b/external/include/glm-0.9.9.8/doc/api/a00150.html index 4c7c79ed11..ff6d2a07d8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00150.html +++ b/external/include/glm-0.9.9.8/doc/api/a00150.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: scalar_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/scalar_relational.hpp File Reference
-
- - - - - + + + + + + +0.9.9 API documentation: scalar_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/scalar_relational.hpp File Reference
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00150_source.html b/external/include/glm-0.9.9.8/doc/api/a00150_source.html index affb976cd1..5997155a8c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00150_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00150_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: scalar_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/scalar_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # ifndef GLM_ENABLE_EXPERIMENTAL
-
20 # pragma message("GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
21 # else
-
22 # pragma message("GLM: GLM_GTX_extend extension included")
-
23 # endif
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
31 
-
32 
-
34 }//namespace glm
-
35 
-
36 #include "scalar_relational.inl"
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/scalar_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # ifndef GLM_ENABLE_EXPERIMENTAL
+
20 # pragma message("GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
21 # else
+
22 # pragma message("GLM: GLM_GTX_extend extension included")
+
23 # endif
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
31 
+
32 
+
34 }//namespace glm
+
35 
+
36 #include "scalar_relational.inl"
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00151.html b/external/include/glm-0.9.9.8/doc/api/a00151.html index bed79f5a49..9954dbdeaf 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00151.html +++ b/external/include/glm-0.9.9.8/doc/api/a00151.html @@ -1,130 +1,130 @@ - - - - - - -0.9.9 API documentation: scalar_uint_sized.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_uint_sized.hpp File Reference
-
-
- -

GLM_EXT_scalar_uint_sized -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Typedefs

-typedef detail::uint16 uint16
 16 bit unsigned integer type.
 
-typedef detail::uint32 uint32
 32 bit unsigned integer type.
 
-typedef detail::uint64 uint64
 64 bit unsigned integer type.
 
-typedef detail::uint8 uint8
 8 bit unsigned integer type.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: scalar_uint_sized.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_uint_sized.hpp File Reference
+
+
+ +

GLM_EXT_scalar_uint_sized +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Typedefs

+typedef detail::uint16 uint16
 16 bit unsigned integer type.
 
+typedef detail::uint32 uint32
 32 bit unsigned integer type.
 
+typedef detail::uint64 uint64
 64 bit unsigned integer type.
 
+typedef detail::uint8 uint8
 8 bit unsigned integer type.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00151_source.html b/external/include/glm-0.9.9.8/doc/api/a00151_source.html index 6210cb37a6..e807b705f9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00151_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00151_source.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: scalar_uint_sized.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_uint_sized.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/setup.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # pragma message("GLM: GLM_EXT_scalar_uint_sized extension included")
-
19 #endif
-
20 
-
21 namespace glm{
-
22 namespace detail
-
23 {
-
24 # if GLM_HAS_EXTENDED_INTEGER_TYPE
-
25  typedef std::uint8_t uint8;
-
26  typedef std::uint16_t uint16;
-
27  typedef std::uint32_t uint32;
-
28 # else
-
29  typedef unsigned char uint8;
-
30  typedef unsigned short uint16;
-
31  typedef unsigned int uint32;
-
32 #endif
-
33 
-
34  template<>
-
35  struct is_int<uint8>
-
36  {
-
37  enum test {value = ~0};
-
38  };
-
39 
-
40  template<>
-
41  struct is_int<uint16>
-
42  {
-
43  enum test {value = ~0};
-
44  };
-
45 
-
46  template<>
-
47  struct is_int<uint64>
-
48  {
-
49  enum test {value = ~0};
-
50  };
-
51 }//namespace detail
-
52 
-
53 
-
56 
-
58  typedef detail::uint8 uint8;
-
59 
-
61  typedef detail::uint16 uint16;
-
62 
-
64  typedef detail::uint32 uint32;
-
65 
-
67  typedef detail::uint64 uint64;
-
68 
-
70 }//namespace glm
-
detail::uint32 uint32
32 bit unsigned integer type.
-
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
-
detail::uint16 uint16
16 bit unsigned integer type.
-
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
-
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
-
detail::uint64 uint64
64 bit unsigned integer type.
-
detail::uint8 uint8
8 bit unsigned integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_uint_sized.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_uint_sized.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/setup.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # pragma message("GLM: GLM_EXT_scalar_uint_sized extension included")
+
19 #endif
+
20 
+
21 namespace glm{
+
22 namespace detail
+
23 {
+
24 # if GLM_HAS_EXTENDED_INTEGER_TYPE
+
25  typedef std::uint8_t uint8;
+
26  typedef std::uint16_t uint16;
+
27  typedef std::uint32_t uint32;
+
28 # else
+
29  typedef unsigned char uint8;
+
30  typedef unsigned short uint16;
+
31  typedef unsigned int uint32;
+
32 #endif
+
33 
+
34  template<>
+
35  struct is_int<uint8>
+
36  {
+
37  enum test {value = ~0};
+
38  };
+
39 
+
40  template<>
+
41  struct is_int<uint16>
+
42  {
+
43  enum test {value = ~0};
+
44  };
+
45 
+
46  template<>
+
47  struct is_int<uint64>
+
48  {
+
49  enum test {value = ~0};
+
50  };
+
51 }//namespace detail
+
52 
+
53 
+
56 
+
58  typedef detail::uint8 uint8;
+
59 
+
61  typedef detail::uint16 uint16;
+
62 
+
64  typedef detail::uint32 uint32;
+
65 
+
67  typedef detail::uint64 uint64;
+
68 
+
70 }//namespace glm
+
detail::uint32 uint32
32 bit unsigned integer type.
+
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
+
detail::uint16 uint16
16 bit unsigned integer type.
+
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
+
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
+
detail::uint64 uint64
64 bit unsigned integer type.
+
detail::uint8 uint8
8 bit unsigned integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00152.html b/external/include/glm-0.9.9.8/doc/api/a00152.html index 803cc48c37..1265ab90bd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00152.html +++ b/external/include/glm-0.9.9.8/doc/api/a00152.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: scalar_ulp.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
scalar_ulp.hpp File Reference
-
-
- -

GLM_EXT_scalar_ulp -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL int floatDistance (float x, float y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
GLM_FUNC_DECL int64 floatDistance (double x, double y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<typename genType >
GLM_FUNC_DECL genType nextFloat (genType x)
 Return the next ULP value(s) after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType nextFloat (genType x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prevFloat (genType x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prevFloat (genType x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
-

Detailed Description

-

GLM_EXT_scalar_ulp

- -

Definition in file scalar_ulp.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: scalar_ulp.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
scalar_ulp.hpp File Reference
+
+
+ +

GLM_EXT_scalar_ulp +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL int floatDistance (float x, float y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
GLM_FUNC_DECL int64 floatDistance (double x, double y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<typename genType >
GLM_FUNC_DECL genType nextFloat (genType x)
 Return the next ULP value(s) after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType nextFloat (genType x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prevFloat (genType x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prevFloat (genType x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
+

Detailed Description

+

GLM_EXT_scalar_ulp

+ +

Definition in file scalar_ulp.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00152_source.html b/external/include/glm-0.9.9.8/doc/api/a00152_source.html index 31e22187a2..0d664c811d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00152_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00152_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: scalar_ulp.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
scalar_ulp.hpp
-
-
-Go to the documentation of this file.
1 
-
16 #pragma once
-
17 
-
18 // Dependencies
-
19 #include "../ext/scalar_int_sized.hpp"
-
20 #include "../common.hpp"
-
21 #include "../detail/qualifier.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # pragma message("GLM: GLM_EXT_scalar_ulp extension included")
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
34  template<typename genType>
-
35  GLM_FUNC_DECL genType nextFloat(genType x);
-
36 
-
42  template<typename genType>
-
43  GLM_FUNC_DECL genType prevFloat(genType x);
-
44 
-
50  template<typename genType>
-
51  GLM_FUNC_DECL genType nextFloat(genType x, int ULPs);
-
52 
-
58  template<typename genType>
-
59  GLM_FUNC_DECL genType prevFloat(genType x, int ULPs);
-
60 
-
64  GLM_FUNC_DECL int floatDistance(float x, float y);
-
65 
-
69  GLM_FUNC_DECL int64 floatDistance(double x, double y);
-
70 
-
72 }//namespace glm
-
73 
-
74 #include "scalar_ulp.inl"
-
detail::int64 int64
64 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: scalar_ulp.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scalar_ulp.hpp
+
+
+Go to the documentation of this file.
1 
+
16 #pragma once
+
17 
+
18 // Dependencies
+
19 #include "../ext/scalar_int_sized.hpp"
+
20 #include "../common.hpp"
+
21 #include "../detail/qualifier.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # pragma message("GLM: GLM_EXT_scalar_ulp extension included")
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
34  template<typename genType>
+
35  GLM_FUNC_DECL genType nextFloat(genType x);
+
36 
+
42  template<typename genType>
+
43  GLM_FUNC_DECL genType prevFloat(genType x);
+
44 
+
50  template<typename genType>
+
51  GLM_FUNC_DECL genType nextFloat(genType x, int ULPs);
+
52 
+
58  template<typename genType>
+
59  GLM_FUNC_DECL genType prevFloat(genType x, int ULPs);
+
60 
+
64  GLM_FUNC_DECL int floatDistance(float x, float y);
+
65 
+
69  GLM_FUNC_DECL int64 floatDistance(double x, double y);
+
70 
+
72 }//namespace glm
+
73 
+
74 #include "scalar_ulp.inl"
+
detail::int64 int64
64 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00153_source.html b/external/include/glm-0.9.9.8/doc/api/a00153_source.html index 4b93aad0e7..fe206eee0b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00153_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00153_source.html @@ -1,1212 +1,1212 @@ - - - - - - -0.9.9 API documentation: setup.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
setup.hpp
-
-
-
1 #ifndef GLM_SETUP_INCLUDED
-
2 
-
3 #include <cassert>
-
4 #include <cstddef>
-
5 
-
6 #define GLM_VERSION_MAJOR 0
-
7 #define GLM_VERSION_MINOR 9
-
8 #define GLM_VERSION_PATCH 9
-
9 #define GLM_VERSION_REVISION 6
-
10 #define GLM_VERSION 996
-
11 #define GLM_VERSION_MESSAGE "GLM: version 0.9.9.6"
-
12 
-
13 #define GLM_SETUP_INCLUDED GLM_VERSION
-
14 
-
16 // Active states
-
17 
-
18 #define GLM_DISABLE 0
-
19 #define GLM_ENABLE 1
-
20 
-
22 // Messages
-
23 
-
24 #if defined(GLM_FORCE_MESSAGES)
-
25 # define GLM_MESSAGES GLM_ENABLE
-
26 #else
-
27 # define GLM_MESSAGES GLM_DISABLE
-
28 #endif
-
29 
-
31 // Detect the platform
-
32 
-
33 #include "../simd/platform.h"
-
34 
-
36 // Build model
-
37 
-
38 #if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)
-
39 # define GLM_MODEL GLM_MODEL_64
-
40 #elif defined(__i386__) || defined(__ppc__)
-
41 # define GLM_MODEL GLM_MODEL_32
-
42 #else
-
43 # define GLM_MODEL GLM_MODEL_32
-
44 #endif//
-
45 
-
46 #if !defined(GLM_MODEL) && GLM_COMPILER != 0
-
47 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
-
48 #endif//GLM_MODEL
-
49 
-
51 // C++ Version
-
52 
-
53 // User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14, GLM_FORCE_CXX17, GLM_FORCE_CXX2A
-
54 
-
55 #define GLM_LANG_CXX98_FLAG (1 << 1)
-
56 #define GLM_LANG_CXX03_FLAG (1 << 2)
-
57 #define GLM_LANG_CXX0X_FLAG (1 << 3)
-
58 #define GLM_LANG_CXX11_FLAG (1 << 4)
-
59 #define GLM_LANG_CXX14_FLAG (1 << 5)
-
60 #define GLM_LANG_CXX17_FLAG (1 << 6)
-
61 #define GLM_LANG_CXX2A_FLAG (1 << 7)
-
62 #define GLM_LANG_CXXMS_FLAG (1 << 8)
-
63 #define GLM_LANG_CXXGNU_FLAG (1 << 9)
-
64 
-
65 #define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG
-
66 #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
-
67 #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)
-
68 #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)
-
69 #define GLM_LANG_CXX14 (GLM_LANG_CXX11 | GLM_LANG_CXX14_FLAG)
-
70 #define GLM_LANG_CXX17 (GLM_LANG_CXX14 | GLM_LANG_CXX17_FLAG)
-
71 #define GLM_LANG_CXX2A (GLM_LANG_CXX17 | GLM_LANG_CXX2A_FLAG)
-
72 #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
-
73 #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
-
74 
-
75 #if (defined(_MSC_EXTENSIONS))
-
76 # define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG
-
77 #elif ((GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) && (GLM_ARCH & GLM_ARCH_SIMD_BIT))
-
78 # define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG
-
79 #else
-
80 # define GLM_LANG_EXT 0
-
81 #endif
-
82 
-
83 #if (defined(GLM_FORCE_CXX_UNKNOWN))
-
84 # define GLM_LANG 0
-
85 #elif defined(GLM_FORCE_CXX2A)
-
86 # define GLM_LANG (GLM_LANG_CXX2A | GLM_LANG_EXT)
-
87 # define GLM_LANG_STL11_FORCED
-
88 #elif defined(GLM_FORCE_CXX17)
-
89 # define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)
-
90 # define GLM_LANG_STL11_FORCED
-
91 #elif defined(GLM_FORCE_CXX14)
-
92 # define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)
-
93 # define GLM_LANG_STL11_FORCED
-
94 #elif defined(GLM_FORCE_CXX11)
-
95 # define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)
-
96 # define GLM_LANG_STL11_FORCED
-
97 #elif defined(GLM_FORCE_CXX03)
-
98 # define GLM_LANG (GLM_LANG_CXX03 | GLM_LANG_EXT)
-
99 #elif defined(GLM_FORCE_CXX98)
-
100 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)
-
101 #else
-
102 # if GLM_COMPILER & GLM_COMPILER_VC && defined(_MSVC_LANG)
-
103 # if GLM_COMPILER >= GLM_COMPILER_VC15_7
-
104 # define GLM_LANG_PLATFORM _MSVC_LANG
-
105 # elif GLM_COMPILER >= GLM_COMPILER_VC15
-
106 # if _MSVC_LANG > 201402L
-
107 # define GLM_LANG_PLATFORM 201402L
-
108 # else
-
109 # define GLM_LANG_PLATFORM _MSVC_LANG
-
110 # endif
-
111 # else
-
112 # define GLM_LANG_PLATFORM 0
-
113 # endif
-
114 # else
-
115 # define GLM_LANG_PLATFORM 0
-
116 # endif
-
117 
-
118 # if __cplusplus > 201703L || GLM_LANG_PLATFORM > 201703L
-
119 # define GLM_LANG (GLM_LANG_CXX2A | GLM_LANG_EXT)
-
120 # elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L
-
121 # define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)
-
122 # elif __cplusplus == 201402L || __cplusplus == 201500L || GLM_LANG_PLATFORM == 201402L
-
123 # define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)
-
124 # elif __cplusplus == 201103L || GLM_LANG_PLATFORM == 201103L
-
125 # define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)
-
126 # elif defined(__INTEL_CXX11_MODE__) || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-
127 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_EXT)
-
128 # elif __cplusplus == 199711L
-
129 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)
-
130 # else
-
131 # define GLM_LANG (0 | GLM_LANG_EXT)
-
132 # endif
-
133 #endif
-
134 
-
136 // Has of C++ features
-
137 
-
138 // http://clang.llvm.org/cxx_status.html
-
139 // http://gcc.gnu.org/projects/cxx0x.html
-
140 // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
-
141 
-
142 // Android has multiple STLs but C++11 STL detection doesn't always work #284 #564
-
143 #if GLM_PLATFORM == GLM_PLATFORM_ANDROID && !defined(GLM_LANG_STL11_FORCED)
-
144 # define GLM_HAS_CXX11_STL 0
-
145 #elif GLM_COMPILER & GLM_COMPILER_CLANG
-
146 # if (defined(_LIBCPP_VERSION) || (GLM_LANG & GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED))
-
147 # define GLM_HAS_CXX11_STL 1
-
148 # else
-
149 # define GLM_HAS_CXX11_STL 0
-
150 # endif
-
151 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
152 # define GLM_HAS_CXX11_STL 1
-
153 #else
-
154 # define GLM_HAS_CXX11_STL ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
155  ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \
-
156  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
-
157  ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) && (GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15))))
-
158 #endif
-
159 
-
160 // N1720
-
161 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
162 # define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)
-
163 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
164 # define GLM_HAS_STATIC_ASSERT 1
-
165 #else
-
166 # define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
167  ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
-
168  ((GLM_COMPILER & GLM_COMPILER_VC))))
-
169 #endif
-
170 
-
171 // N1988
-
172 #if GLM_LANG & GLM_LANG_CXX11_FLAG
-
173 # define GLM_HAS_EXTENDED_INTEGER_TYPE 1
-
174 #else
-
175 # define GLM_HAS_EXTENDED_INTEGER_TYPE (\
-
176  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC)) || \
-
177  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
-
178  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)))
-
179 #endif
-
180 
-
181 // N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
-
182 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
183 # define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)
-
184 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
185 # define GLM_HAS_INITIALIZER_LISTS 1
-
186 #else
-
187 # define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
188  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
-
189  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
-
190  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
191 #endif
-
192 
-
193 // N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
-
194 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
195 # define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)
-
196 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
197 # define GLM_HAS_UNRESTRICTED_UNIONS 1
-
198 #else
-
199 # define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
200  (GLM_COMPILER & GLM_COMPILER_VC) || \
-
201  ((GLM_COMPILER & GLM_COMPILER_CUDA)))
-
202 #endif
-
203 
-
204 // N2346
-
205 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
206 # define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)
-
207 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
208 # define GLM_HAS_DEFAULTED_FUNCTIONS 1
-
209 #else
-
210 # define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
211  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
-
212  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
-
213  (GLM_COMPILER & GLM_COMPILER_CUDA)))
-
214 #endif
-
215 
-
216 // N2118
-
217 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
218 # define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)
-
219 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
220 # define GLM_HAS_RVALUE_REFERENCES 1
-
221 #else
-
222 # define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
223  ((GLM_COMPILER & GLM_COMPILER_VC)) || \
-
224  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
225 #endif
-
226 
-
227 // N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
-
228 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
229 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)
-
230 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
231 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1
-
232 #else
-
233 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
234  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
-
235  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
-
236  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
237 #endif
-
238 
-
239 // N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
-
240 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
241 # define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)
-
242 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
243 # define GLM_HAS_TEMPLATE_ALIASES 1
-
244 #else
-
245 # define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
246  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
-
247  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
-
248  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
249 #endif
-
250 
-
251 // N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
-
252 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
253 # define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)
-
254 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
255 # define GLM_HAS_RANGE_FOR 1
-
256 #else
-
257 # define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
258  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
-
259  ((GLM_COMPILER & GLM_COMPILER_VC)) || \
-
260  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
261 #endif
-
262 
-
263 // N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
-
264 #if GLM_COMPILER & GLM_COMPILER_CLANG
-
265 # define GLM_HAS_ALIGNOF __has_feature(cxx_alignas)
-
266 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
-
267 # define GLM_HAS_ALIGNOF 1
-
268 #else
-
269 # define GLM_HAS_ALIGNOF ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
270  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)) || \
-
271  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)) || \
-
272  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
273 #endif
-
274 
-
275 // N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
-
276 // N3652 Extended Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html
-
277 #if (GLM_ARCH & GLM_ARCH_SIMD_BIT) // Compiler SIMD intrinsics don't support constexpr...
-
278 # define GLM_HAS_CONSTEXPR 0
-
279 #elif (GLM_COMPILER & GLM_COMPILER_CLANG)
-
280 # define GLM_HAS_CONSTEXPR __has_feature(cxx_relaxed_constexpr)
-
281 #elif (GLM_LANG & GLM_LANG_CXX14_FLAG)
-
282 # define GLM_HAS_CONSTEXPR 1
-
283 #else
-
284 # define GLM_HAS_CONSTEXPR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && GLM_HAS_INITIALIZER_LISTS && (\
-
285  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL17)) || \
-
286  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15))))
-
287 #endif
-
288 
-
289 #if GLM_HAS_CONSTEXPR
-
290 # define GLM_CONSTEXPR constexpr
-
291 #else
-
292 # define GLM_CONSTEXPR
-
293 #endif
-
294 
-
295 //
-
296 #if GLM_HAS_CONSTEXPR
-
297 # if (GLM_COMPILER & GLM_COMPILER_CLANG)
-
298 # if __has_feature(cxx_if_constexpr)
-
299 # define GLM_HAS_IF_CONSTEXPR 1
-
300 # else
-
301 # define GLM_HAS_IF_CONSTEXPR 0
-
302 # endif
-
303 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG)
-
304 # define GLM_HAS_IF_CONSTEXPR 1
-
305 # else
-
306 # define GLM_HAS_IF_CONSTEXPR 0
-
307 # endif
-
308 #else
-
309 # define GLM_HAS_IF_CONSTEXPR 0
-
310 #endif
-
311 
-
312 #if GLM_HAS_IF_CONSTEXPR
-
313 # define GLM_IF_CONSTEXPR if constexpr
-
314 #else
-
315 # define GLM_IF_CONSTEXPR if
-
316 #endif
-
317 
-
318 //
-
319 #if GLM_LANG & GLM_LANG_CXX11_FLAG
-
320 # define GLM_HAS_ASSIGNABLE 1
-
321 #else
-
322 # define GLM_HAS_ASSIGNABLE ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
323  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
-
324  ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49))))
-
325 #endif
-
326 
-
327 //
-
328 #define GLM_HAS_TRIVIAL_QUERIES 0
-
329 
-
330 //
-
331 #if GLM_LANG & GLM_LANG_CXX11_FLAG
-
332 # define GLM_HAS_MAKE_SIGNED 1
-
333 #else
-
334 # define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
-
335  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
-
336  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
-
337 #endif
-
338 
-
339 //
-
340 #if defined(GLM_FORCE_INTRINSICS)
-
341 # define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && (\
-
342  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
-
343  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14) && (GLM_ARCH & GLM_ARCH_X86_BIT))))
-
344 #else
-
345 # define GLM_HAS_BITSCAN_WINDOWS 0
-
346 #endif
-
347 
-
349 // OpenMP
-
350 #ifdef _OPENMP
-
351 # if GLM_COMPILER & GLM_COMPILER_GCC
-
352 # if GLM_COMPILER >= GLM_COMPILER_GCC61
-
353 # define GLM_HAS_OPENMP 45
-
354 # elif GLM_COMPILER >= GLM_COMPILER_GCC49
-
355 # define GLM_HAS_OPENMP 40
-
356 # elif GLM_COMPILER >= GLM_COMPILER_GCC47
-
357 # define GLM_HAS_OPENMP 31
-
358 # else
-
359 # define GLM_HAS_OPENMP 0
-
360 # endif
-
361 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
362 # if GLM_COMPILER >= GLM_COMPILER_CLANG38
-
363 # define GLM_HAS_OPENMP 31
-
364 # else
-
365 # define GLM_HAS_OPENMP 0
-
366 # endif
-
367 # elif GLM_COMPILER & GLM_COMPILER_VC
-
368 # define GLM_HAS_OPENMP 20
-
369 # elif GLM_COMPILER & GLM_COMPILER_INTEL
-
370 # if GLM_COMPILER >= GLM_COMPILER_INTEL16
-
371 # define GLM_HAS_OPENMP 40
-
372 # else
-
373 # define GLM_HAS_OPENMP 0
-
374 # endif
-
375 # else
-
376 # define GLM_HAS_OPENMP 0
-
377 # endif
-
378 #else
-
379 # define GLM_HAS_OPENMP 0
-
380 #endif
-
381 
-
383 // nullptr
-
384 
-
385 #if GLM_LANG & GLM_LANG_CXX0X_FLAG
-
386 # define GLM_CONFIG_NULLPTR GLM_ENABLE
-
387 #else
-
388 # define GLM_CONFIG_NULLPTR GLM_DISABLE
-
389 #endif
-
390 
-
391 #if GLM_CONFIG_NULLPTR == GLM_ENABLE
-
392 # define GLM_NULLPTR nullptr
-
393 #else
-
394 # define GLM_NULLPTR 0
-
395 #endif
-
396 
-
398 // Static assert
-
399 
-
400 #if GLM_HAS_STATIC_ASSERT
-
401 # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
-
402 #elif GLM_COMPILER & GLM_COMPILER_VC
-
403 # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
-
404 #else
-
405 # define GLM_STATIC_ASSERT(x, message) assert(x)
-
406 #endif//GLM_LANG
-
407 
-
409 // Qualifiers
-
410 
-
411 #if GLM_COMPILER & GLM_COMPILER_CUDA
-
412 # define GLM_CUDA_FUNC_DEF __device__ __host__
-
413 # define GLM_CUDA_FUNC_DECL __device__ __host__
-
414 #else
-
415 # define GLM_CUDA_FUNC_DEF
-
416 # define GLM_CUDA_FUNC_DECL
-
417 #endif
-
418 
-
419 #if defined(GLM_FORCE_INLINE)
-
420 # if GLM_COMPILER & GLM_COMPILER_VC
-
421 # define GLM_INLINE __forceinline
-
422 # define GLM_NEVER_INLINE __declspec((noinline))
-
423 # elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
-
424 # define GLM_INLINE inline __attribute__((__always_inline__))
-
425 # define GLM_NEVER_INLINE __attribute__((__noinline__))
-
426 # elif GLM_COMPILER & GLM_COMPILER_CUDA
-
427 # define GLM_INLINE __forceinline__
-
428 # define GLM_NEVER_INLINE __noinline__
-
429 # else
-
430 # define GLM_INLINE inline
-
431 # define GLM_NEVER_INLINE
-
432 # endif//GLM_COMPILER
-
433 #else
-
434 # define GLM_INLINE inline
-
435 # define GLM_NEVER_INLINE
-
436 #endif//defined(GLM_FORCE_INLINE)
-
437 
-
438 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
-
439 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
-
440 
-
442 // Swizzle operators
-
443 
-
444 // User defines: GLM_FORCE_SWIZZLE
-
445 
-
446 #define GLM_SWIZZLE_DISABLED 0
-
447 #define GLM_SWIZZLE_OPERATOR 1
-
448 #define GLM_SWIZZLE_FUNCTION 2
-
449 
-
450 #if defined(GLM_FORCE_XYZW_ONLY)
-
451 # undef GLM_FORCE_SWIZZLE
-
452 #endif
-
453 
-
454 #if defined(GLM_SWIZZLE)
-
455 # pragma message("GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead.")
-
456 # define GLM_FORCE_SWIZZLE
-
457 #endif
-
458 
-
459 #if defined(GLM_FORCE_SWIZZLE) && (GLM_LANG & GLM_LANG_CXXMS_FLAG)
-
460 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_OPERATOR
-
461 #elif defined(GLM_FORCE_SWIZZLE)
-
462 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_FUNCTION
-
463 #else
-
464 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_DISABLED
-
465 #endif
-
466 
-
468 // Allows using not basic types as genType
-
469 
-
470 // #define GLM_FORCE_UNRESTRICTED_GENTYPE
-
471 
-
472 #ifdef GLM_FORCE_UNRESTRICTED_GENTYPE
-
473 # define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_ENABLE
-
474 #else
-
475 # define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_DISABLE
-
476 #endif
-
477 
-
479 // Clip control, define GLM_FORCE_DEPTH_ZERO_TO_ONE before including GLM
-
480 // to use a clip space between 0 to 1.
-
481 // Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM
-
482 // to use left handed coordinate system by default.
-
483 
-
484 #define GLM_CLIP_CONTROL_ZO_BIT (1 << 0) // ZERO_TO_ONE
-
485 #define GLM_CLIP_CONTROL_NO_BIT (1 << 1) // NEGATIVE_ONE_TO_ONE
-
486 #define GLM_CLIP_CONTROL_LH_BIT (1 << 2) // LEFT_HANDED, For DirectX, Metal, Vulkan
-
487 #define GLM_CLIP_CONTROL_RH_BIT (1 << 3) // RIGHT_HANDED, For OpenGL, default in GLM
-
488 
-
489 #define GLM_CLIP_CONTROL_LH_ZO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_ZO_BIT)
-
490 #define GLM_CLIP_CONTROL_LH_NO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_NO_BIT)
-
491 #define GLM_CLIP_CONTROL_RH_ZO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_ZO_BIT)
-
492 #define GLM_CLIP_CONTROL_RH_NO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_NO_BIT)
-
493 
-
494 #ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE
-
495 # ifdef GLM_FORCE_LEFT_HANDED
-
496 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_ZO
-
497 # else
-
498 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_ZO
-
499 # endif
-
500 #else
-
501 # ifdef GLM_FORCE_LEFT_HANDED
-
502 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_NO
-
503 # else
-
504 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_NO
-
505 # endif
-
506 #endif
-
507 
-
509 // Qualifiers
-
510 
-
511 #if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
-
512 # define GLM_DEPRECATED __declspec(deprecated)
-
513 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name
-
514 #elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)
-
515 # define GLM_DEPRECATED __attribute__((__deprecated__))
-
516 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
-
517 #elif GLM_COMPILER & GLM_COMPILER_CUDA
-
518 # define GLM_DEPRECATED
-
519 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)
-
520 #else
-
521 # define GLM_DEPRECATED
-
522 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name
-
523 #endif
-
524 
-
526 
-
527 #ifdef GLM_FORCE_EXPLICIT_CTOR
-
528 # define GLM_EXPLICIT explicit
-
529 #else
-
530 # define GLM_EXPLICIT
-
531 #endif
-
532 
-
534 // SYCL
-
535 
-
536 #if GLM_COMPILER==GLM_COMPILER_SYCL
-
537 
-
538 #include <CL/sycl.hpp>
-
539 #include <limits>
-
540 
-
541 namespace glm {
-
542 namespace std {
-
543  // Import SYCL's functions into the namespace glm::std to force their usages.
-
544  // It's important to use the math built-in function (sin, exp, ...)
-
545  // of SYCL instead the std ones.
-
546  using namespace cl::sycl;
-
547 
-
549  // Import some "harmless" std's stuffs used by glm into
-
550  // the new glm::std namespace.
-
551  template<typename T>
-
552  using numeric_limits = ::std::numeric_limits<T>;
-
553 
-
554  using ::std::size_t;
-
555 
- - - - -
560 
- - - - -
565 
-
566  using ::std::make_unsigned;
-
568 } //namespace std
-
569 } //namespace glm
-
570 
-
571 #endif
-
572 
-
574 
-
576 // Length type: all length functions returns a length_t type.
-
577 // When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise
-
578 // length_t is a typedef of int like GLSL defines it.
-
579 
-
580 #define GLM_LENGTH_INT 1
-
581 #define GLM_LENGTH_SIZE_T 2
-
582 
-
583 #ifdef GLM_FORCE_SIZE_T_LENGTH
-
584 # define GLM_CONFIG_LENGTH_TYPE GLM_LENGTH_SIZE_T
-
585 #else
-
586 # define GLM_CONFIG_LENGTH_TYPE GLM_LENGTH_INT
-
587 #endif
-
588 
-
589 namespace glm
-
590 {
-
591  using std::size_t;
-
592 # if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T
-
593  typedef size_t length_t;
-
594 # else
-
595  typedef int length_t;
-
596 # endif
-
597 }//namespace glm
-
598 
-
600 // constexpr
-
601 
-
602 #if GLM_HAS_CONSTEXPR
-
603 # define GLM_CONFIG_CONSTEXP GLM_ENABLE
-
604 
-
605  namespace glm
-
606  {
-
607  template<typename T, std::size_t N>
-
608  constexpr std::size_t countof(T const (&)[N])
-
609  {
-
610  return N;
-
611  }
-
612  }//namespace glm
-
613 # define GLM_COUNTOF(arr) glm::countof(arr)
-
614 #elif defined(_MSC_VER)
-
615 # define GLM_CONFIG_CONSTEXP GLM_DISABLE
-
616 
-
617 # define GLM_COUNTOF(arr) _countof(arr)
-
618 #else
-
619 # define GLM_CONFIG_CONSTEXP GLM_DISABLE
-
620 
-
621 # define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])
-
622 #endif
-
623 
-
625 // uint
-
626 
-
627 namespace glm{
-
628 namespace detail
-
629 {
-
630  template<typename T>
-
631  struct is_int
-
632  {
-
633  enum test {value = 0};
-
634  };
-
635 
-
636  template<>
-
637  struct is_int<unsigned int>
-
638  {
-
639  enum test {value = ~0};
-
640  };
-
641 
-
642  template<>
-
643  struct is_int<signed int>
-
644  {
-
645  enum test {value = ~0};
-
646  };
-
647 }//namespace detail
-
648 
-
649  typedef unsigned int uint;
-
650 }//namespace glm
-
651 
-
653 // 64-bit int
-
654 
-
655 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
656 # include <cstdint>
-
657 #endif
-
658 
-
659 namespace glm{
-
660 namespace detail
-
661 {
-
662 # if GLM_HAS_EXTENDED_INTEGER_TYPE
-
663  typedef std::uint64_t uint64;
-
664  typedef std::int64_t int64;
-
665 # elif (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
-
666  typedef uint64_t uint64;
-
667  typedef int64_t int64;
-
668 # elif GLM_COMPILER & GLM_COMPILER_VC
-
669  typedef unsigned __int64 uint64;
-
670  typedef signed __int64 int64;
-
671 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
672 # pragma GCC diagnostic ignored "-Wlong-long"
-
673  __extension__ typedef unsigned long long uint64;
-
674  __extension__ typedef signed long long int64;
-
675 # elif (GLM_COMPILER & GLM_COMPILER_CLANG)
-
676 # pragma clang diagnostic ignored "-Wc++11-long-long"
-
677  typedef unsigned long long uint64;
-
678  typedef signed long long int64;
-
679 # else//unknown compiler
-
680  typedef unsigned long long uint64;
-
681  typedef signed long long int64;
-
682 # endif
-
683 }//namespace detail
-
684 }//namespace glm
-
685 
-
687 // make_unsigned
-
688 
-
689 #if GLM_HAS_MAKE_SIGNED
-
690 # include <type_traits>
-
691 
-
692 namespace glm{
-
693 namespace detail
-
694 {
-
695  using std::make_unsigned;
-
696 }//namespace detail
-
697 }//namespace glm
-
698 
-
699 #else
-
700 
-
701 namespace glm{
-
702 namespace detail
-
703 {
-
704  template<typename genType>
-
705  struct make_unsigned
-
706  {};
-
707 
-
708  template<>
-
709  struct make_unsigned<char>
-
710  {
-
711  typedef unsigned char type;
-
712  };
-
713 
-
714  template<>
-
715  struct make_unsigned<signed char>
-
716  {
-
717  typedef unsigned char type;
-
718  };
-
719 
-
720  template<>
-
721  struct make_unsigned<short>
-
722  {
-
723  typedef unsigned short type;
-
724  };
-
725 
-
726  template<>
-
727  struct make_unsigned<int>
-
728  {
-
729  typedef unsigned int type;
-
730  };
-
731 
-
732  template<>
-
733  struct make_unsigned<long>
-
734  {
-
735  typedef unsigned long type;
-
736  };
-
737 
-
738  template<>
-
739  struct make_unsigned<int64>
-
740  {
-
741  typedef uint64 type;
-
742  };
-
743 
-
744  template<>
-
745  struct make_unsigned<unsigned char>
-
746  {
-
747  typedef unsigned char type;
-
748  };
-
749 
-
750  template<>
-
751  struct make_unsigned<unsigned short>
-
752  {
-
753  typedef unsigned short type;
-
754  };
-
755 
-
756  template<>
-
757  struct make_unsigned<unsigned int>
-
758  {
-
759  typedef unsigned int type;
-
760  };
-
761 
-
762  template<>
-
763  struct make_unsigned<unsigned long>
-
764  {
-
765  typedef unsigned long type;
-
766  };
-
767 
-
768  template<>
-
769  struct make_unsigned<uint64>
-
770  {
-
771  typedef uint64 type;
-
772  };
-
773 }//namespace detail
-
774 }//namespace glm
-
775 #endif
-
776 
-
778 // Only use x, y, z, w as vector type components
-
779 
-
780 #ifdef GLM_FORCE_XYZW_ONLY
-
781 # define GLM_CONFIG_XYZW_ONLY GLM_ENABLE
-
782 #else
-
783 # define GLM_CONFIG_XYZW_ONLY GLM_DISABLE
-
784 #endif
-
785 
-
787 // Configure the use of defaulted initialized types
-
788 
-
789 #define GLM_CTOR_INIT_DISABLE 0
-
790 #define GLM_CTOR_INITIALIZER_LIST 1
-
791 #define GLM_CTOR_INITIALISATION 2
-
792 
-
793 #if defined(GLM_FORCE_CTOR_INIT) && GLM_HAS_INITIALIZER_LISTS
-
794 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALIZER_LIST
-
795 #elif defined(GLM_FORCE_CTOR_INIT) && !GLM_HAS_INITIALIZER_LISTS
-
796 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALISATION
-
797 #else
-
798 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INIT_DISABLE
-
799 #endif
-
800 
-
802 // Use SIMD instruction sets
-
803 
-
804 #if GLM_HAS_ALIGNOF && (GLM_LANG & GLM_LANG_CXXMS_FLAG) && (GLM_ARCH & GLM_ARCH_SIMD_BIT)
-
805 # define GLM_CONFIG_SIMD GLM_ENABLE
-
806 #else
-
807 # define GLM_CONFIG_SIMD GLM_DISABLE
-
808 #endif
-
809 
-
811 // Configure the use of defaulted function
-
812 
-
813 #if GLM_HAS_DEFAULTED_FUNCTIONS && GLM_CONFIG_CTOR_INIT == GLM_CTOR_INIT_DISABLE
-
814 # define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_ENABLE
-
815 # define GLM_DEFAULT = default
-
816 #else
-
817 # define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_DISABLE
-
818 # define GLM_DEFAULT
-
819 #endif
-
820 
-
822 // Configure the use of aligned gentypes
-
823 
-
824 #ifdef GLM_FORCE_ALIGNED // Legacy define
-
825 # define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
-
826 #endif
-
827 
-
828 #ifdef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
-
829 # define GLM_FORCE_ALIGNED_GENTYPES
-
830 #endif
-
831 
-
832 #if GLM_HAS_ALIGNOF && (GLM_LANG & GLM_LANG_CXXMS_FLAG) && (defined(GLM_FORCE_ALIGNED_GENTYPES) || (GLM_CONFIG_SIMD == GLM_ENABLE))
-
833 # define GLM_CONFIG_ALIGNED_GENTYPES GLM_ENABLE
-
834 #else
-
835 # define GLM_CONFIG_ALIGNED_GENTYPES GLM_DISABLE
-
836 #endif
-
837 
-
839 // Configure the use of anonymous structure as implementation detail
-
840 
-
841 #if ((GLM_CONFIG_SIMD == GLM_ENABLE) || (GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR) || (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE))
-
842 # define GLM_CONFIG_ANONYMOUS_STRUCT GLM_ENABLE
-
843 #else
-
844 # define GLM_CONFIG_ANONYMOUS_STRUCT GLM_DISABLE
-
845 #endif
-
846 
-
848 // Silent warnings
-
849 
-
850 #ifdef GLM_FORCE_SILENT_WARNINGS
-
851 # define GLM_SILENT_WARNINGS GLM_ENABLE
-
852 #else
-
853 # define GLM_SILENT_WARNINGS GLM_DISABLE
-
854 #endif
-
855 
-
857 // Precision
-
858 
-
859 #define GLM_HIGHP 1
-
860 #define GLM_MEDIUMP 2
-
861 #define GLM_LOWP 3
-
862 
-
863 #if defined(GLM_FORCE_PRECISION_HIGHP_BOOL) || defined(GLM_PRECISION_HIGHP_BOOL)
-
864 # define GLM_CONFIG_PRECISION_BOOL GLM_HIGHP
-
865 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_BOOL) || defined(GLM_PRECISION_MEDIUMP_BOOL)
-
866 # define GLM_CONFIG_PRECISION_BOOL GLM_MEDIUMP
-
867 #elif defined(GLM_FORCE_PRECISION_LOWP_BOOL) || defined(GLM_PRECISION_LOWP_BOOL)
-
868 # define GLM_CONFIG_PRECISION_BOOL GLM_LOWP
-
869 #else
-
870 # define GLM_CONFIG_PRECISION_BOOL GLM_HIGHP
-
871 #endif
-
872 
-
873 #if defined(GLM_FORCE_PRECISION_HIGHP_INT) || defined(GLM_PRECISION_HIGHP_INT)
-
874 # define GLM_CONFIG_PRECISION_INT GLM_HIGHP
-
875 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_INT) || defined(GLM_PRECISION_MEDIUMP_INT)
-
876 # define GLM_CONFIG_PRECISION_INT GLM_MEDIUMP
-
877 #elif defined(GLM_FORCE_PRECISION_LOWP_INT) || defined(GLM_PRECISION_LOWP_INT)
-
878 # define GLM_CONFIG_PRECISION_INT GLM_LOWP
-
879 #else
-
880 # define GLM_CONFIG_PRECISION_INT GLM_HIGHP
-
881 #endif
-
882 
-
883 #if defined(GLM_FORCE_PRECISION_HIGHP_UINT) || defined(GLM_PRECISION_HIGHP_UINT)
-
884 # define GLM_CONFIG_PRECISION_UINT GLM_HIGHP
-
885 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_UINT) || defined(GLM_PRECISION_MEDIUMP_UINT)
-
886 # define GLM_CONFIG_PRECISION_UINT GLM_MEDIUMP
-
887 #elif defined(GLM_FORCE_PRECISION_LOWP_UINT) || defined(GLM_PRECISION_LOWP_UINT)
-
888 # define GLM_CONFIG_PRECISION_UINT GLM_LOWP
-
889 #else
-
890 # define GLM_CONFIG_PRECISION_UINT GLM_HIGHP
-
891 #endif
-
892 
-
893 #if defined(GLM_FORCE_PRECISION_HIGHP_FLOAT) || defined(GLM_PRECISION_HIGHP_FLOAT)
-
894 # define GLM_CONFIG_PRECISION_FLOAT GLM_HIGHP
-
895 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_FLOAT) || defined(GLM_PRECISION_MEDIUMP_FLOAT)
-
896 # define GLM_CONFIG_PRECISION_FLOAT GLM_MEDIUMP
-
897 #elif defined(GLM_FORCE_PRECISION_LOWP_FLOAT) || defined(GLM_PRECISION_LOWP_FLOAT)
-
898 # define GLM_CONFIG_PRECISION_FLOAT GLM_LOWP
-
899 #else
-
900 # define GLM_CONFIG_PRECISION_FLOAT GLM_HIGHP
-
901 #endif
-
902 
-
903 #if defined(GLM_FORCE_PRECISION_HIGHP_DOUBLE) || defined(GLM_PRECISION_HIGHP_DOUBLE)
-
904 # define GLM_CONFIG_PRECISION_DOUBLE GLM_HIGHP
-
905 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_DOUBLE) || defined(GLM_PRECISION_MEDIUMP_DOUBLE)
-
906 # define GLM_CONFIG_PRECISION_DOUBLE GLM_MEDIUMP
-
907 #elif defined(GLM_FORCE_PRECISION_LOWP_DOUBLE) || defined(GLM_PRECISION_LOWP_DOUBLE)
-
908 # define GLM_CONFIG_PRECISION_DOUBLE GLM_LOWP
-
909 #else
-
910 # define GLM_CONFIG_PRECISION_DOUBLE GLM_HIGHP
-
911 #endif
-
912 
-
914 // Check inclusions of different versions of GLM
-
915 
-
916 #elif ((GLM_SETUP_INCLUDED != GLM_VERSION) && !defined(GLM_FORCE_IGNORE_VERSION))
-
917 # error "GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error."
-
918 #elif GLM_SETUP_INCLUDED == GLM_VERSION
-
919 
-
921 // Messages
-
922 
-
923 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_MESSAGE_DISPLAYED)
-
924 # define GLM_MESSAGE_DISPLAYED
-
925 # define GLM_STR_HELPER(x) #x
-
926 # define GLM_STR(x) GLM_STR_HELPER(x)
-
927 
-
928  // Report GLM version
-
929 # pragma message (GLM_STR(GLM_VERSION_MESSAGE))
-
930 
-
931  // Report C++ language
-
932 # if (GLM_LANG & GLM_LANG_CXX2A_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
933 # pragma message("GLM: C++ 2A with extensions")
-
934 # elif (GLM_LANG & GLM_LANG_CXX2A_FLAG)
-
935 # pragma message("GLM: C++ 2A")
-
936 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
937 # pragma message("GLM: C++ 17 with extensions")
-
938 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG)
-
939 # pragma message("GLM: C++ 17")
-
940 # elif (GLM_LANG & GLM_LANG_CXX14_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
941 # pragma message("GLM: C++ 14 with extensions")
-
942 # elif (GLM_LANG & GLM_LANG_CXX14_FLAG)
-
943 # pragma message("GLM: C++ 14")
-
944 # elif (GLM_LANG & GLM_LANG_CXX11_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
945 # pragma message("GLM: C++ 11 with extensions")
-
946 # elif (GLM_LANG & GLM_LANG_CXX11_FLAG)
-
947 # pragma message("GLM: C++ 11")
-
948 # elif (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
949 # pragma message("GLM: C++ 0x with extensions")
-
950 # elif (GLM_LANG & GLM_LANG_CXX0X_FLAG)
-
951 # pragma message("GLM: C++ 0x")
-
952 # elif (GLM_LANG & GLM_LANG_CXX03_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
953 # pragma message("GLM: C++ 03 with extensions")
-
954 # elif (GLM_LANG & GLM_LANG_CXX03_FLAG)
-
955 # pragma message("GLM: C++ 03")
-
956 # elif (GLM_LANG & GLM_LANG_CXX98_FLAG) && (GLM_LANG & GLM_LANG_EXT)
-
957 # pragma message("GLM: C++ 98 with extensions")
-
958 # elif (GLM_LANG & GLM_LANG_CXX98_FLAG)
-
959 # pragma message("GLM: C++ 98")
-
960 # else
-
961 # pragma message("GLM: C++ language undetected")
-
962 # endif//GLM_LANG
-
963 
-
964  // Report compiler detection
-
965 # if GLM_COMPILER & GLM_COMPILER_CUDA
-
966 # pragma message("GLM: CUDA compiler detected")
-
967 # elif GLM_COMPILER & GLM_COMPILER_VC
-
968 # pragma message("GLM: Visual C++ compiler detected")
-
969 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
970 # pragma message("GLM: Clang compiler detected")
-
971 # elif GLM_COMPILER & GLM_COMPILER_INTEL
-
972 # pragma message("GLM: Intel Compiler detected")
-
973 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
974 # pragma message("GLM: GCC compiler detected")
-
975 # else
-
976 # pragma message("GLM: Compiler not detected")
-
977 # endif
-
978 
-
979  // Report build target
-
980 # if (GLM_ARCH & GLM_ARCH_AVX2_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
981 # pragma message("GLM: x86 64 bits with AVX2 instruction set build target")
-
982 # elif (GLM_ARCH & GLM_ARCH_AVX2_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
983 # pragma message("GLM: x86 32 bits with AVX2 instruction set build target")
-
984 
-
985 # elif (GLM_ARCH & GLM_ARCH_AVX_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
986 # pragma message("GLM: x86 64 bits with AVX instruction set build target")
-
987 # elif (GLM_ARCH & GLM_ARCH_AVX_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
988 # pragma message("GLM: x86 32 bits with AVX instruction set build target")
-
989 
-
990 # elif (GLM_ARCH & GLM_ARCH_SSE42_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
991 # pragma message("GLM: x86 64 bits with SSE4.2 instruction set build target")
-
992 # elif (GLM_ARCH & GLM_ARCH_SSE42_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
993 # pragma message("GLM: x86 32 bits with SSE4.2 instruction set build target")
-
994 
-
995 # elif (GLM_ARCH & GLM_ARCH_SSE41_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
996 # pragma message("GLM: x86 64 bits with SSE4.1 instruction set build target")
-
997 # elif (GLM_ARCH & GLM_ARCH_SSE41_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
998 # pragma message("GLM: x86 32 bits with SSE4.1 instruction set build target")
-
999 
-
1000 # elif (GLM_ARCH & GLM_ARCH_SSSE3_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1001 # pragma message("GLM: x86 64 bits with SSSE3 instruction set build target")
-
1002 # elif (GLM_ARCH & GLM_ARCH_SSSE3_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1003 # pragma message("GLM: x86 32 bits with SSSE3 instruction set build target")
-
1004 
-
1005 # elif (GLM_ARCH & GLM_ARCH_SSE3_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1006 # pragma message("GLM: x86 64 bits with SSE3 instruction set build target")
-
1007 # elif (GLM_ARCH & GLM_ARCH_SSE3_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1008 # pragma message("GLM: x86 32 bits with SSE3 instruction set build target")
-
1009 
-
1010 # elif (GLM_ARCH & GLM_ARCH_SSE2_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1011 # pragma message("GLM: x86 64 bits with SSE2 instruction set build target")
-
1012 # elif (GLM_ARCH & GLM_ARCH_SSE2_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1013 # pragma message("GLM: x86 32 bits with SSE2 instruction set build target")
-
1014 
-
1015 # elif (GLM_ARCH & GLM_ARCH_X86_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1016 # pragma message("GLM: x86 64 bits build target")
-
1017 # elif (GLM_ARCH & GLM_ARCH_X86_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1018 # pragma message("GLM: x86 32 bits build target")
-
1019 
-
1020 # elif (GLM_ARCH & GLM_ARCH_NEON_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1021 # pragma message("GLM: ARM 64 bits with Neon instruction set build target")
-
1022 # elif (GLM_ARCH & GLM_ARCH_NEON_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1023 # pragma message("GLM: ARM 32 bits with Neon instruction set build target")
-
1024 
-
1025 # elif (GLM_ARCH & GLM_ARCH_ARM_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1026 # pragma message("GLM: ARM 64 bits build target")
-
1027 # elif (GLM_ARCH & GLM_ARCH_ARM_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1028 # pragma message("GLM: ARM 32 bits build target")
-
1029 
-
1030 # elif (GLM_ARCH & GLM_ARCH_MIPS_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1031 # pragma message("GLM: MIPS 64 bits build target")
-
1032 # elif (GLM_ARCH & GLM_ARCH_MIPS_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1033 # pragma message("GLM: MIPS 32 bits build target")
-
1034 
-
1035 # elif (GLM_ARCH & GLM_ARCH_PPC_BIT) && (GLM_MODEL == GLM_MODEL_64)
-
1036 # pragma message("GLM: PowerPC 64 bits build target")
-
1037 # elif (GLM_ARCH & GLM_ARCH_PPC_BIT) && (GLM_MODEL == GLM_MODEL_32)
-
1038 # pragma message("GLM: PowerPC 32 bits build target")
-
1039 # else
-
1040 # pragma message("GLM: Unknown build target")
-
1041 # endif//GLM_ARCH
-
1042 
-
1043  // Report platform name
-
1044 # if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
-
1045 # pragma message("GLM: QNX platform detected")
-
1046 //# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
-
1047 //# pragma message("GLM: iOS platform detected")
-
1048 # elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
-
1049 # pragma message("GLM: Apple platform detected")
-
1050 # elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
-
1051 # pragma message("GLM: WinCE platform detected")
-
1052 # elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
-
1053 # pragma message("GLM: Windows platform detected")
-
1054 # elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
-
1055 # pragma message("GLM: Native Client detected")
-
1056 # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
-
1057 # pragma message("GLM: Android platform detected")
-
1058 # elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
-
1059 # pragma message("GLM: Linux platform detected")
-
1060 # elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
-
1061 # pragma message("GLM: UNIX platform detected")
-
1062 # elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
-
1063 # pragma message("GLM: platform unknown")
-
1064 # else
-
1065 # pragma message("GLM: platform not detected")
-
1066 # endif
-
1067 
-
1068  // Report whether only xyzw component are used
-
1069 # if defined GLM_FORCE_XYZW_ONLY
-
1070 # pragma message("GLM: GLM_FORCE_XYZW_ONLY is defined. Only x, y, z and w component are available in vector type. This define disables swizzle operators and SIMD instruction sets.")
-
1071 # endif
-
1072 
-
1073  // Report swizzle operator support
-
1074 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
1075 # pragma message("GLM: GLM_FORCE_SWIZZLE is defined, swizzling operators enabled.")
-
1076 # elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
1077 # pragma message("GLM: GLM_FORCE_SWIZZLE is defined, swizzling functions enabled. Enable compiler C++ language extensions to enable swizzle operators.")
-
1078 # else
-
1079 # pragma message("GLM: GLM_FORCE_SWIZZLE is undefined. swizzling functions or operators are disabled.")
-
1080 # endif
-
1081 
-
1082  // Report .length() type
-
1083 # if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T
-
1084 # pragma message("GLM: GLM_FORCE_SIZE_T_LENGTH is defined. .length() returns a glm::length_t, a typedef of std::size_t.")
-
1085 # else
-
1086 # pragma message("GLM: GLM_FORCE_SIZE_T_LENGTH is undefined. .length() returns a glm::length_t, a typedef of int following GLSL.")
-
1087 # endif
-
1088 
-
1089 # if GLM_CONFIG_UNRESTRICTED_GENTYPE == GLM_ENABLE
-
1090 # pragma message("GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is defined. Removes GLSL restrictions on valid function genTypes.")
-
1091 # else
-
1092 # pragma message("GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is undefined. Follows strictly GLSL on valid function genTypes.")
-
1093 # endif
-
1094 
-
1095 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
1096 # pragma message("GLM: GLM_FORCE_SILENT_WARNINGS is defined. Ignores C++ warnings from using C++ language extensions.")
-
1097 # else
-
1098 # pragma message("GLM: GLM_FORCE_SILENT_WARNINGS is undefined. Shows C++ warnings from using C++ language extensions.")
-
1099 # endif
-
1100 
-
1101 # ifdef GLM_FORCE_SINGLE_ONLY
-
1102 # pragma message("GLM: GLM_FORCE_SINGLE_ONLY is defined. Using only single precision floating-point types.")
-
1103 # endif
-
1104 
-
1105 # if defined(GLM_FORCE_ALIGNED_GENTYPES) && (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE)
-
1106 # undef GLM_FORCE_ALIGNED_GENTYPES
-
1107 # pragma message("GLM: GLM_FORCE_ALIGNED_GENTYPES is defined, allowing aligned types. This prevents the use of C++ constexpr.")
-
1108 # elif defined(GLM_FORCE_ALIGNED_GENTYPES) && (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)
-
1109 # undef GLM_FORCE_ALIGNED_GENTYPES
-
1110 # pragma message("GLM: GLM_FORCE_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.")
-
1111 # endif
-
1112 
-
1113 # if defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)
-
1114 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE
-
1115 # undef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
-
1116 # pragma message("GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.")
-
1117 # elif GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
-
1118 # pragma message("GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined. All gentypes (e.g. vec3) will be aligned and padded by default.")
-
1119 # endif
-
1120 # endif
-
1121 
-
1122 # if GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_ZO_BIT
-
1123 # pragma message("GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is defined. Using zero to one depth clip space.")
-
1124 # else
-
1125 # pragma message("GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is undefined. Using negative one to one depth clip space.")
-
1126 # endif
-
1127 
-
1128 # if GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_LH_BIT
-
1129 # pragma message("GLM: GLM_FORCE_LEFT_HANDED is defined. Using left handed coordinate system.")
-
1130 # else
-
1131 # pragma message("GLM: GLM_FORCE_LEFT_HANDED is undefined. Using right handed coordinate system.")
-
1132 # endif
-
1133 #endif//GLM_MESSAGES
-
1134 
-
1135 #endif//GLM_SETUP_INCLUDED
-
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
-
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
-
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
-
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
-
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
-
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
-
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
-
Definition: hash.hpp:49
-
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
-
detail::uint64 uint64
64 bit unsigned integer type.
-
detail::int64 int64
64 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: setup.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
setup.hpp
+
+
+
1 #ifndef GLM_SETUP_INCLUDED
+
2 
+
3 #include <cassert>
+
4 #include <cstddef>
+
5 
+
6 #define GLM_VERSION_MAJOR 0
+
7 #define GLM_VERSION_MINOR 9
+
8 #define GLM_VERSION_PATCH 9
+
9 #define GLM_VERSION_REVISION 6
+
10 #define GLM_VERSION 996
+
11 #define GLM_VERSION_MESSAGE "GLM: version 0.9.9.6"
+
12 
+
13 #define GLM_SETUP_INCLUDED GLM_VERSION
+
14 
+
16 // Active states
+
17 
+
18 #define GLM_DISABLE 0
+
19 #define GLM_ENABLE 1
+
20 
+
22 // Messages
+
23 
+
24 #if defined(GLM_FORCE_MESSAGES)
+
25 # define GLM_MESSAGES GLM_ENABLE
+
26 #else
+
27 # define GLM_MESSAGES GLM_DISABLE
+
28 #endif
+
29 
+
31 // Detect the platform
+
32 
+
33 #include "../simd/platform.h"
+
34 
+
36 // Build model
+
37 
+
38 #if defined(__arch64__) || defined(__LP64__) || defined(_M_X64) || defined(__ppc64__) || defined(__x86_64__)
+
39 # define GLM_MODEL GLM_MODEL_64
+
40 #elif defined(__i386__) || defined(__ppc__)
+
41 # define GLM_MODEL GLM_MODEL_32
+
42 #else
+
43 # define GLM_MODEL GLM_MODEL_32
+
44 #endif//
+
45 
+
46 #if !defined(GLM_MODEL) && GLM_COMPILER != 0
+
47 # error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
+
48 #endif//GLM_MODEL
+
49 
+
51 // C++ Version
+
52 
+
53 // User defines: GLM_FORCE_CXX98, GLM_FORCE_CXX03, GLM_FORCE_CXX11, GLM_FORCE_CXX14, GLM_FORCE_CXX17, GLM_FORCE_CXX2A
+
54 
+
55 #define GLM_LANG_CXX98_FLAG (1 << 1)
+
56 #define GLM_LANG_CXX03_FLAG (1 << 2)
+
57 #define GLM_LANG_CXX0X_FLAG (1 << 3)
+
58 #define GLM_LANG_CXX11_FLAG (1 << 4)
+
59 #define GLM_LANG_CXX14_FLAG (1 << 5)
+
60 #define GLM_LANG_CXX17_FLAG (1 << 6)
+
61 #define GLM_LANG_CXX2A_FLAG (1 << 7)
+
62 #define GLM_LANG_CXXMS_FLAG (1 << 8)
+
63 #define GLM_LANG_CXXGNU_FLAG (1 << 9)
+
64 
+
65 #define GLM_LANG_CXX98 GLM_LANG_CXX98_FLAG
+
66 #define GLM_LANG_CXX03 (GLM_LANG_CXX98 | GLM_LANG_CXX03_FLAG)
+
67 #define GLM_LANG_CXX0X (GLM_LANG_CXX03 | GLM_LANG_CXX0X_FLAG)
+
68 #define GLM_LANG_CXX11 (GLM_LANG_CXX0X | GLM_LANG_CXX11_FLAG)
+
69 #define GLM_LANG_CXX14 (GLM_LANG_CXX11 | GLM_LANG_CXX14_FLAG)
+
70 #define GLM_LANG_CXX17 (GLM_LANG_CXX14 | GLM_LANG_CXX17_FLAG)
+
71 #define GLM_LANG_CXX2A (GLM_LANG_CXX17 | GLM_LANG_CXX2A_FLAG)
+
72 #define GLM_LANG_CXXMS GLM_LANG_CXXMS_FLAG
+
73 #define GLM_LANG_CXXGNU GLM_LANG_CXXGNU_FLAG
+
74 
+
75 #if (defined(_MSC_EXTENSIONS))
+
76 # define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG
+
77 #elif ((GLM_COMPILER & (GLM_COMPILER_CLANG | GLM_COMPILER_GCC)) && (GLM_ARCH & GLM_ARCH_SIMD_BIT))
+
78 # define GLM_LANG_EXT GLM_LANG_CXXMS_FLAG
+
79 #else
+
80 # define GLM_LANG_EXT 0
+
81 #endif
+
82 
+
83 #if (defined(GLM_FORCE_CXX_UNKNOWN))
+
84 # define GLM_LANG 0
+
85 #elif defined(GLM_FORCE_CXX2A)
+
86 # define GLM_LANG (GLM_LANG_CXX2A | GLM_LANG_EXT)
+
87 # define GLM_LANG_STL11_FORCED
+
88 #elif defined(GLM_FORCE_CXX17)
+
89 # define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)
+
90 # define GLM_LANG_STL11_FORCED
+
91 #elif defined(GLM_FORCE_CXX14)
+
92 # define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)
+
93 # define GLM_LANG_STL11_FORCED
+
94 #elif defined(GLM_FORCE_CXX11)
+
95 # define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)
+
96 # define GLM_LANG_STL11_FORCED
+
97 #elif defined(GLM_FORCE_CXX03)
+
98 # define GLM_LANG (GLM_LANG_CXX03 | GLM_LANG_EXT)
+
99 #elif defined(GLM_FORCE_CXX98)
+
100 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)
+
101 #else
+
102 # if GLM_COMPILER & GLM_COMPILER_VC && defined(_MSVC_LANG)
+
103 # if GLM_COMPILER >= GLM_COMPILER_VC15_7
+
104 # define GLM_LANG_PLATFORM _MSVC_LANG
+
105 # elif GLM_COMPILER >= GLM_COMPILER_VC15
+
106 # if _MSVC_LANG > 201402L
+
107 # define GLM_LANG_PLATFORM 201402L
+
108 # else
+
109 # define GLM_LANG_PLATFORM _MSVC_LANG
+
110 # endif
+
111 # else
+
112 # define GLM_LANG_PLATFORM 0
+
113 # endif
+
114 # else
+
115 # define GLM_LANG_PLATFORM 0
+
116 # endif
+
117 
+
118 # if __cplusplus > 201703L || GLM_LANG_PLATFORM > 201703L
+
119 # define GLM_LANG (GLM_LANG_CXX2A | GLM_LANG_EXT)
+
120 # elif __cplusplus == 201703L || GLM_LANG_PLATFORM == 201703L
+
121 # define GLM_LANG (GLM_LANG_CXX17 | GLM_LANG_EXT)
+
122 # elif __cplusplus == 201402L || __cplusplus == 201500L || GLM_LANG_PLATFORM == 201402L
+
123 # define GLM_LANG (GLM_LANG_CXX14 | GLM_LANG_EXT)
+
124 # elif __cplusplus == 201103L || GLM_LANG_PLATFORM == 201103L
+
125 # define GLM_LANG (GLM_LANG_CXX11 | GLM_LANG_EXT)
+
126 # elif defined(__INTEL_CXX11_MODE__) || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+
127 # define GLM_LANG (GLM_LANG_CXX0X | GLM_LANG_EXT)
+
128 # elif __cplusplus == 199711L
+
129 # define GLM_LANG (GLM_LANG_CXX98 | GLM_LANG_EXT)
+
130 # else
+
131 # define GLM_LANG (0 | GLM_LANG_EXT)
+
132 # endif
+
133 #endif
+
134 
+
136 // Has of C++ features
+
137 
+
138 // http://clang.llvm.org/cxx_status.html
+
139 // http://gcc.gnu.org/projects/cxx0x.html
+
140 // http://msdn.microsoft.com/en-us/library/vstudio/hh567368(v=vs.120).aspx
+
141 
+
142 // Android has multiple STLs but C++11 STL detection doesn't always work #284 #564
+
143 #if GLM_PLATFORM == GLM_PLATFORM_ANDROID && !defined(GLM_LANG_STL11_FORCED)
+
144 # define GLM_HAS_CXX11_STL 0
+
145 #elif GLM_COMPILER & GLM_COMPILER_CLANG
+
146 # if (defined(_LIBCPP_VERSION) || (GLM_LANG & GLM_LANG_CXX11_FLAG) || defined(GLM_LANG_STL11_FORCED))
+
147 # define GLM_HAS_CXX11_STL 1
+
148 # else
+
149 # define GLM_HAS_CXX11_STL 0
+
150 # endif
+
151 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
152 # define GLM_HAS_CXX11_STL 1
+
153 #else
+
154 # define GLM_HAS_CXX11_STL ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
155  ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC48)) || \
+
156  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+
157  ((GLM_PLATFORM != GLM_PLATFORM_WINDOWS) && (GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15))))
+
158 #endif
+
159 
+
160 // N1720
+
161 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
162 # define GLM_HAS_STATIC_ASSERT __has_feature(cxx_static_assert)
+
163 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
164 # define GLM_HAS_STATIC_ASSERT 1
+
165 #else
+
166 # define GLM_HAS_STATIC_ASSERT ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
167  ((GLM_COMPILER & GLM_COMPILER_CUDA)) || \
+
168  ((GLM_COMPILER & GLM_COMPILER_VC))))
+
169 #endif
+
170 
+
171 // N1988
+
172 #if GLM_LANG & GLM_LANG_CXX11_FLAG
+
173 # define GLM_HAS_EXTENDED_INTEGER_TYPE 1
+
174 #else
+
175 # define GLM_HAS_EXTENDED_INTEGER_TYPE (\
+
176  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_VC)) || \
+
177  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CUDA)) || \
+
178  ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_COMPILER & GLM_COMPILER_CLANG)))
+
179 #endif
+
180 
+
181 // N2672 Initializer lists http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm
+
182 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
183 # define GLM_HAS_INITIALIZER_LISTS __has_feature(cxx_generalized_initializers)
+
184 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
185 # define GLM_HAS_INITIALIZER_LISTS 1
+
186 #else
+
187 # define GLM_HAS_INITIALIZER_LISTS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
188  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
+
189  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
+
190  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
191 #endif
+
192 
+
193 // N2544 Unrestricted unions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf
+
194 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
195 # define GLM_HAS_UNRESTRICTED_UNIONS __has_feature(cxx_unrestricted_unions)
+
196 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
197 # define GLM_HAS_UNRESTRICTED_UNIONS 1
+
198 #else
+
199 # define GLM_HAS_UNRESTRICTED_UNIONS (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
200  (GLM_COMPILER & GLM_COMPILER_VC) || \
+
201  ((GLM_COMPILER & GLM_COMPILER_CUDA)))
+
202 #endif
+
203 
+
204 // N2346
+
205 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
206 # define GLM_HAS_DEFAULTED_FUNCTIONS __has_feature(cxx_defaulted_functions)
+
207 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
208 # define GLM_HAS_DEFAULTED_FUNCTIONS 1
+
209 #else
+
210 # define GLM_HAS_DEFAULTED_FUNCTIONS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
211  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+
212  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+
213  (GLM_COMPILER & GLM_COMPILER_CUDA)))
+
214 #endif
+
215 
+
216 // N2118
+
217 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
218 # define GLM_HAS_RVALUE_REFERENCES __has_feature(cxx_rvalue_references)
+
219 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
220 # define GLM_HAS_RVALUE_REFERENCES 1
+
221 #else
+
222 # define GLM_HAS_RVALUE_REFERENCES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
223  ((GLM_COMPILER & GLM_COMPILER_VC)) || \
+
224  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
225 #endif
+
226 
+
227 // N2437 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
+
228 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
229 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS __has_feature(cxx_explicit_conversions)
+
230 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
231 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS 1
+
232 #else
+
233 # define GLM_HAS_EXPLICIT_CONVERSION_OPERATORS ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
234  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL14)) || \
+
235  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+
236  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
237 #endif
+
238 
+
239 // N2258 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
+
240 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
241 # define GLM_HAS_TEMPLATE_ALIASES __has_feature(cxx_alias_templates)
+
242 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
243 # define GLM_HAS_TEMPLATE_ALIASES 1
+
244 #else
+
245 # define GLM_HAS_TEMPLATE_ALIASES ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
246  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+
247  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+
248  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
249 #endif
+
250 
+
251 // N2930 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
+
252 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
253 # define GLM_HAS_RANGE_FOR __has_feature(cxx_range_for)
+
254 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
255 # define GLM_HAS_RANGE_FOR 1
+
256 #else
+
257 # define GLM_HAS_RANGE_FOR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
258  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+
259  ((GLM_COMPILER & GLM_COMPILER_VC)) || \
+
260  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
261 #endif
+
262 
+
263 // N2341 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf
+
264 #if GLM_COMPILER & GLM_COMPILER_CLANG
+
265 # define GLM_HAS_ALIGNOF __has_feature(cxx_alignas)
+
266 #elif GLM_LANG & GLM_LANG_CXX11_FLAG
+
267 # define GLM_HAS_ALIGNOF 1
+
268 #else
+
269 # define GLM_HAS_ALIGNOF ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
270  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL15)) || \
+
271  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14)) || \
+
272  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
273 #endif
+
274 
+
275 // N2235 Generalized Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
+
276 // N3652 Extended Constant Expressions http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3652.html
+
277 #if (GLM_ARCH & GLM_ARCH_SIMD_BIT) // Compiler SIMD intrinsics don't support constexpr...
+
278 # define GLM_HAS_CONSTEXPR 0
+
279 #elif (GLM_COMPILER & GLM_COMPILER_CLANG)
+
280 # define GLM_HAS_CONSTEXPR __has_feature(cxx_relaxed_constexpr)
+
281 #elif (GLM_LANG & GLM_LANG_CXX14_FLAG)
+
282 # define GLM_HAS_CONSTEXPR 1
+
283 #else
+
284 # define GLM_HAS_CONSTEXPR ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && GLM_HAS_INITIALIZER_LISTS && (\
+
285  ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_COMPILER >= GLM_COMPILER_INTEL17)) || \
+
286  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15))))
+
287 #endif
+
288 
+
289 #if GLM_HAS_CONSTEXPR
+
290 # define GLM_CONSTEXPR constexpr
+
291 #else
+
292 # define GLM_CONSTEXPR
+
293 #endif
+
294 
+
295 //
+
296 #if GLM_HAS_CONSTEXPR
+
297 # if (GLM_COMPILER & GLM_COMPILER_CLANG)
+
298 # if __has_feature(cxx_if_constexpr)
+
299 # define GLM_HAS_IF_CONSTEXPR 1
+
300 # else
+
301 # define GLM_HAS_IF_CONSTEXPR 0
+
302 # endif
+
303 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG)
+
304 # define GLM_HAS_IF_CONSTEXPR 1
+
305 # else
+
306 # define GLM_HAS_IF_CONSTEXPR 0
+
307 # endif
+
308 #else
+
309 # define GLM_HAS_IF_CONSTEXPR 0
+
310 #endif
+
311 
+
312 #if GLM_HAS_IF_CONSTEXPR
+
313 # define GLM_IF_CONSTEXPR if constexpr
+
314 #else
+
315 # define GLM_IF_CONSTEXPR if
+
316 #endif
+
317 
+
318 //
+
319 #if GLM_LANG & GLM_LANG_CXX11_FLAG
+
320 # define GLM_HAS_ASSIGNABLE 1
+
321 #else
+
322 # define GLM_HAS_ASSIGNABLE ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
323  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC15)) || \
+
324  ((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC49))))
+
325 #endif
+
326 
+
327 //
+
328 #define GLM_HAS_TRIVIAL_QUERIES 0
+
329 
+
330 //
+
331 #if GLM_LANG & GLM_LANG_CXX11_FLAG
+
332 # define GLM_HAS_MAKE_SIGNED 1
+
333 #else
+
334 # define GLM_HAS_MAKE_SIGNED ((GLM_LANG & GLM_LANG_CXX0X_FLAG) && (\
+
335  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC12)) || \
+
336  ((GLM_COMPILER & GLM_COMPILER_CUDA))))
+
337 #endif
+
338 
+
339 //
+
340 #if defined(GLM_FORCE_INTRINSICS)
+
341 # define GLM_HAS_BITSCAN_WINDOWS ((GLM_PLATFORM & GLM_PLATFORM_WINDOWS) && (\
+
342  ((GLM_COMPILER & GLM_COMPILER_INTEL)) || \
+
343  ((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC14) && (GLM_ARCH & GLM_ARCH_X86_BIT))))
+
344 #else
+
345 # define GLM_HAS_BITSCAN_WINDOWS 0
+
346 #endif
+
347 
+
349 // OpenMP
+
350 #ifdef _OPENMP
+
351 # if GLM_COMPILER & GLM_COMPILER_GCC
+
352 # if GLM_COMPILER >= GLM_COMPILER_GCC61
+
353 # define GLM_HAS_OPENMP 45
+
354 # elif GLM_COMPILER >= GLM_COMPILER_GCC49
+
355 # define GLM_HAS_OPENMP 40
+
356 # elif GLM_COMPILER >= GLM_COMPILER_GCC47
+
357 # define GLM_HAS_OPENMP 31
+
358 # else
+
359 # define GLM_HAS_OPENMP 0
+
360 # endif
+
361 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
362 # if GLM_COMPILER >= GLM_COMPILER_CLANG38
+
363 # define GLM_HAS_OPENMP 31
+
364 # else
+
365 # define GLM_HAS_OPENMP 0
+
366 # endif
+
367 # elif GLM_COMPILER & GLM_COMPILER_VC
+
368 # define GLM_HAS_OPENMP 20
+
369 # elif GLM_COMPILER & GLM_COMPILER_INTEL
+
370 # if GLM_COMPILER >= GLM_COMPILER_INTEL16
+
371 # define GLM_HAS_OPENMP 40
+
372 # else
+
373 # define GLM_HAS_OPENMP 0
+
374 # endif
+
375 # else
+
376 # define GLM_HAS_OPENMP 0
+
377 # endif
+
378 #else
+
379 # define GLM_HAS_OPENMP 0
+
380 #endif
+
381 
+
383 // nullptr
+
384 
+
385 #if GLM_LANG & GLM_LANG_CXX0X_FLAG
+
386 # define GLM_CONFIG_NULLPTR GLM_ENABLE
+
387 #else
+
388 # define GLM_CONFIG_NULLPTR GLM_DISABLE
+
389 #endif
+
390 
+
391 #if GLM_CONFIG_NULLPTR == GLM_ENABLE
+
392 # define GLM_NULLPTR nullptr
+
393 #else
+
394 # define GLM_NULLPTR 0
+
395 #endif
+
396 
+
398 // Static assert
+
399 
+
400 #if GLM_HAS_STATIC_ASSERT
+
401 # define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
+
402 #elif GLM_COMPILER & GLM_COMPILER_VC
+
403 # define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
+
404 #else
+
405 # define GLM_STATIC_ASSERT(x, message) assert(x)
+
406 #endif//GLM_LANG
+
407 
+
409 // Qualifiers
+
410 
+
411 #if GLM_COMPILER & GLM_COMPILER_CUDA
+
412 # define GLM_CUDA_FUNC_DEF __device__ __host__
+
413 # define GLM_CUDA_FUNC_DECL __device__ __host__
+
414 #else
+
415 # define GLM_CUDA_FUNC_DEF
+
416 # define GLM_CUDA_FUNC_DECL
+
417 #endif
+
418 
+
419 #if defined(GLM_FORCE_INLINE)
+
420 # if GLM_COMPILER & GLM_COMPILER_VC
+
421 # define GLM_INLINE __forceinline
+
422 # define GLM_NEVER_INLINE __declspec((noinline))
+
423 # elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)
+
424 # define GLM_INLINE inline __attribute__((__always_inline__))
+
425 # define GLM_NEVER_INLINE __attribute__((__noinline__))
+
426 # elif GLM_COMPILER & GLM_COMPILER_CUDA
+
427 # define GLM_INLINE __forceinline__
+
428 # define GLM_NEVER_INLINE __noinline__
+
429 # else
+
430 # define GLM_INLINE inline
+
431 # define GLM_NEVER_INLINE
+
432 # endif//GLM_COMPILER
+
433 #else
+
434 # define GLM_INLINE inline
+
435 # define GLM_NEVER_INLINE
+
436 #endif//defined(GLM_FORCE_INLINE)
+
437 
+
438 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
+
439 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
+
440 
+
442 // Swizzle operators
+
443 
+
444 // User defines: GLM_FORCE_SWIZZLE
+
445 
+
446 #define GLM_SWIZZLE_DISABLED 0
+
447 #define GLM_SWIZZLE_OPERATOR 1
+
448 #define GLM_SWIZZLE_FUNCTION 2
+
449 
+
450 #if defined(GLM_FORCE_XYZW_ONLY)
+
451 # undef GLM_FORCE_SWIZZLE
+
452 #endif
+
453 
+
454 #if defined(GLM_SWIZZLE)
+
455 # pragma message("GLM: GLM_SWIZZLE is deprecated, use GLM_FORCE_SWIZZLE instead.")
+
456 # define GLM_FORCE_SWIZZLE
+
457 #endif
+
458 
+
459 #if defined(GLM_FORCE_SWIZZLE) && (GLM_LANG & GLM_LANG_CXXMS_FLAG)
+
460 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_OPERATOR
+
461 #elif defined(GLM_FORCE_SWIZZLE)
+
462 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_FUNCTION
+
463 #else
+
464 # define GLM_CONFIG_SWIZZLE GLM_SWIZZLE_DISABLED
+
465 #endif
+
466 
+
468 // Allows using not basic types as genType
+
469 
+
470 // #define GLM_FORCE_UNRESTRICTED_GENTYPE
+
471 
+
472 #ifdef GLM_FORCE_UNRESTRICTED_GENTYPE
+
473 # define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_ENABLE
+
474 #else
+
475 # define GLM_CONFIG_UNRESTRICTED_GENTYPE GLM_DISABLE
+
476 #endif
+
477 
+
479 // Clip control, define GLM_FORCE_DEPTH_ZERO_TO_ONE before including GLM
+
480 // to use a clip space between 0 to 1.
+
481 // Coordinate system, define GLM_FORCE_LEFT_HANDED before including GLM
+
482 // to use left handed coordinate system by default.
+
483 
+
484 #define GLM_CLIP_CONTROL_ZO_BIT (1 << 0) // ZERO_TO_ONE
+
485 #define GLM_CLIP_CONTROL_NO_BIT (1 << 1) // NEGATIVE_ONE_TO_ONE
+
486 #define GLM_CLIP_CONTROL_LH_BIT (1 << 2) // LEFT_HANDED, For DirectX, Metal, Vulkan
+
487 #define GLM_CLIP_CONTROL_RH_BIT (1 << 3) // RIGHT_HANDED, For OpenGL, default in GLM
+
488 
+
489 #define GLM_CLIP_CONTROL_LH_ZO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_ZO_BIT)
+
490 #define GLM_CLIP_CONTROL_LH_NO (GLM_CLIP_CONTROL_LH_BIT | GLM_CLIP_CONTROL_NO_BIT)
+
491 #define GLM_CLIP_CONTROL_RH_ZO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_ZO_BIT)
+
492 #define GLM_CLIP_CONTROL_RH_NO (GLM_CLIP_CONTROL_RH_BIT | GLM_CLIP_CONTROL_NO_BIT)
+
493 
+
494 #ifdef GLM_FORCE_DEPTH_ZERO_TO_ONE
+
495 # ifdef GLM_FORCE_LEFT_HANDED
+
496 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_ZO
+
497 # else
+
498 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_ZO
+
499 # endif
+
500 #else
+
501 # ifdef GLM_FORCE_LEFT_HANDED
+
502 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_LH_NO
+
503 # else
+
504 # define GLM_CONFIG_CLIP_CONTROL GLM_CLIP_CONTROL_RH_NO
+
505 # endif
+
506 #endif
+
507 
+
509 // Qualifiers
+
510 
+
511 #if (GLM_COMPILER & GLM_COMPILER_VC) || ((GLM_COMPILER & GLM_COMPILER_INTEL) && (GLM_PLATFORM & GLM_PLATFORM_WINDOWS))
+
512 # define GLM_DEPRECATED __declspec(deprecated)
+
513 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef __declspec(align(alignment)) type name
+
514 #elif GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG | GLM_COMPILER_INTEL)
+
515 # define GLM_DEPRECATED __attribute__((__deprecated__))
+
516 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __attribute__((aligned(alignment)))
+
517 #elif GLM_COMPILER & GLM_COMPILER_CUDA
+
518 # define GLM_DEPRECATED
+
519 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name __align__(x)
+
520 #else
+
521 # define GLM_DEPRECATED
+
522 # define GLM_ALIGNED_TYPEDEF(type, name, alignment) typedef type name
+
523 #endif
+
524 
+
526 
+
527 #ifdef GLM_FORCE_EXPLICIT_CTOR
+
528 # define GLM_EXPLICIT explicit
+
529 #else
+
530 # define GLM_EXPLICIT
+
531 #endif
+
532 
+
534 // SYCL
+
535 
+
536 #if GLM_COMPILER==GLM_COMPILER_SYCL
+
537 
+
538 #include <CL/sycl.hpp>
+
539 #include <limits>
+
540 
+
541 namespace glm {
+
542 namespace std {
+
543  // Import SYCL's functions into the namespace glm::std to force their usages.
+
544  // It's important to use the math built-in function (sin, exp, ...)
+
545  // of SYCL instead the std ones.
+
546  using namespace cl::sycl;
+
547 
+
549  // Import some "harmless" std's stuffs used by glm into
+
550  // the new glm::std namespace.
+
551  template<typename T>
+
552  using numeric_limits = ::std::numeric_limits<T>;
+
553 
+
554  using ::std::size_t;
+
555 
+ + + + +
560 
+ + + + +
565 
+
566  using ::std::make_unsigned;
+
568 } //namespace std
+
569 } //namespace glm
+
570 
+
571 #endif
+
572 
+
574 
+
576 // Length type: all length functions returns a length_t type.
+
577 // When GLM_FORCE_SIZE_T_LENGTH is defined, length_t is a typedef of size_t otherwise
+
578 // length_t is a typedef of int like GLSL defines it.
+
579 
+
580 #define GLM_LENGTH_INT 1
+
581 #define GLM_LENGTH_SIZE_T 2
+
582 
+
583 #ifdef GLM_FORCE_SIZE_T_LENGTH
+
584 # define GLM_CONFIG_LENGTH_TYPE GLM_LENGTH_SIZE_T
+
585 #else
+
586 # define GLM_CONFIG_LENGTH_TYPE GLM_LENGTH_INT
+
587 #endif
+
588 
+
589 namespace glm
+
590 {
+
591  using std::size_t;
+
592 # if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T
+
593  typedef size_t length_t;
+
594 # else
+
595  typedef int length_t;
+
596 # endif
+
597 }//namespace glm
+
598 
+
600 // constexpr
+
601 
+
602 #if GLM_HAS_CONSTEXPR
+
603 # define GLM_CONFIG_CONSTEXP GLM_ENABLE
+
604 
+
605  namespace glm
+
606  {
+
607  template<typename T, std::size_t N>
+
608  constexpr std::size_t countof(T const (&)[N])
+
609  {
+
610  return N;
+
611  }
+
612  }//namespace glm
+
613 # define GLM_COUNTOF(arr) glm::countof(arr)
+
614 #elif defined(_MSC_VER)
+
615 # define GLM_CONFIG_CONSTEXP GLM_DISABLE
+
616 
+
617 # define GLM_COUNTOF(arr) _countof(arr)
+
618 #else
+
619 # define GLM_CONFIG_CONSTEXP GLM_DISABLE
+
620 
+
621 # define GLM_COUNTOF(arr) sizeof(arr) / sizeof(arr[0])
+
622 #endif
+
623 
+
625 // uint
+
626 
+
627 namespace glm{
+
628 namespace detail
+
629 {
+
630  template<typename T>
+
631  struct is_int
+
632  {
+
633  enum test {value = 0};
+
634  };
+
635 
+
636  template<>
+
637  struct is_int<unsigned int>
+
638  {
+
639  enum test {value = ~0};
+
640  };
+
641 
+
642  template<>
+
643  struct is_int<signed int>
+
644  {
+
645  enum test {value = ~0};
+
646  };
+
647 }//namespace detail
+
648 
+
649  typedef unsigned int uint;
+
650 }//namespace glm
+
651 
+
653 // 64-bit int
+
654 
+
655 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
656 # include <cstdint>
+
657 #endif
+
658 
+
659 namespace glm{
+
660 namespace detail
+
661 {
+
662 # if GLM_HAS_EXTENDED_INTEGER_TYPE
+
663  typedef std::uint64_t uint64;
+
664  typedef std::int64_t int64;
+
665 # elif (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
+
666  typedef uint64_t uint64;
+
667  typedef int64_t int64;
+
668 # elif GLM_COMPILER & GLM_COMPILER_VC
+
669  typedef unsigned __int64 uint64;
+
670  typedef signed __int64 int64;
+
671 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
672 # pragma GCC diagnostic ignored "-Wlong-long"
+
673  __extension__ typedef unsigned long long uint64;
+
674  __extension__ typedef signed long long int64;
+
675 # elif (GLM_COMPILER & GLM_COMPILER_CLANG)
+
676 # pragma clang diagnostic ignored "-Wc++11-long-long"
+
677  typedef unsigned long long uint64;
+
678  typedef signed long long int64;
+
679 # else//unknown compiler
+
680  typedef unsigned long long uint64;
+
681  typedef signed long long int64;
+
682 # endif
+
683 }//namespace detail
+
684 }//namespace glm
+
685 
+
687 // make_unsigned
+
688 
+
689 #if GLM_HAS_MAKE_SIGNED
+
690 # include <type_traits>
+
691 
+
692 namespace glm{
+
693 namespace detail
+
694 {
+
695  using std::make_unsigned;
+
696 }//namespace detail
+
697 }//namespace glm
+
698 
+
699 #else
+
700 
+
701 namespace glm{
+
702 namespace detail
+
703 {
+
704  template<typename genType>
+
705  struct make_unsigned
+
706  {};
+
707 
+
708  template<>
+
709  struct make_unsigned<char>
+
710  {
+
711  typedef unsigned char type;
+
712  };
+
713 
+
714  template<>
+
715  struct make_unsigned<signed char>
+
716  {
+
717  typedef unsigned char type;
+
718  };
+
719 
+
720  template<>
+
721  struct make_unsigned<short>
+
722  {
+
723  typedef unsigned short type;
+
724  };
+
725 
+
726  template<>
+
727  struct make_unsigned<int>
+
728  {
+
729  typedef unsigned int type;
+
730  };
+
731 
+
732  template<>
+
733  struct make_unsigned<long>
+
734  {
+
735  typedef unsigned long type;
+
736  };
+
737 
+
738  template<>
+
739  struct make_unsigned<int64>
+
740  {
+
741  typedef uint64 type;
+
742  };
+
743 
+
744  template<>
+
745  struct make_unsigned<unsigned char>
+
746  {
+
747  typedef unsigned char type;
+
748  };
+
749 
+
750  template<>
+
751  struct make_unsigned<unsigned short>
+
752  {
+
753  typedef unsigned short type;
+
754  };
+
755 
+
756  template<>
+
757  struct make_unsigned<unsigned int>
+
758  {
+
759  typedef unsigned int type;
+
760  };
+
761 
+
762  template<>
+
763  struct make_unsigned<unsigned long>
+
764  {
+
765  typedef unsigned long type;
+
766  };
+
767 
+
768  template<>
+
769  struct make_unsigned<uint64>
+
770  {
+
771  typedef uint64 type;
+
772  };
+
773 }//namespace detail
+
774 }//namespace glm
+
775 #endif
+
776 
+
778 // Only use x, y, z, w as vector type components
+
779 
+
780 #ifdef GLM_FORCE_XYZW_ONLY
+
781 # define GLM_CONFIG_XYZW_ONLY GLM_ENABLE
+
782 #else
+
783 # define GLM_CONFIG_XYZW_ONLY GLM_DISABLE
+
784 #endif
+
785 
+
787 // Configure the use of defaulted initialized types
+
788 
+
789 #define GLM_CTOR_INIT_DISABLE 0
+
790 #define GLM_CTOR_INITIALIZER_LIST 1
+
791 #define GLM_CTOR_INITIALISATION 2
+
792 
+
793 #if defined(GLM_FORCE_CTOR_INIT) && GLM_HAS_INITIALIZER_LISTS
+
794 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALIZER_LIST
+
795 #elif defined(GLM_FORCE_CTOR_INIT) && !GLM_HAS_INITIALIZER_LISTS
+
796 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INITIALISATION
+
797 #else
+
798 # define GLM_CONFIG_CTOR_INIT GLM_CTOR_INIT_DISABLE
+
799 #endif
+
800 
+
802 // Use SIMD instruction sets
+
803 
+
804 #if GLM_HAS_ALIGNOF && (GLM_LANG & GLM_LANG_CXXMS_FLAG) && (GLM_ARCH & GLM_ARCH_SIMD_BIT)
+
805 # define GLM_CONFIG_SIMD GLM_ENABLE
+
806 #else
+
807 # define GLM_CONFIG_SIMD GLM_DISABLE
+
808 #endif
+
809 
+
811 // Configure the use of defaulted function
+
812 
+
813 #if GLM_HAS_DEFAULTED_FUNCTIONS && GLM_CONFIG_CTOR_INIT == GLM_CTOR_INIT_DISABLE
+
814 # define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_ENABLE
+
815 # define GLM_DEFAULT = default
+
816 #else
+
817 # define GLM_CONFIG_DEFAULTED_FUNCTIONS GLM_DISABLE
+
818 # define GLM_DEFAULT
+
819 #endif
+
820 
+
822 // Configure the use of aligned gentypes
+
823 
+
824 #ifdef GLM_FORCE_ALIGNED // Legacy define
+
825 # define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
+
826 #endif
+
827 
+
828 #ifdef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
+
829 # define GLM_FORCE_ALIGNED_GENTYPES
+
830 #endif
+
831 
+
832 #if GLM_HAS_ALIGNOF && (GLM_LANG & GLM_LANG_CXXMS_FLAG) && (defined(GLM_FORCE_ALIGNED_GENTYPES) || (GLM_CONFIG_SIMD == GLM_ENABLE))
+
833 # define GLM_CONFIG_ALIGNED_GENTYPES GLM_ENABLE
+
834 #else
+
835 # define GLM_CONFIG_ALIGNED_GENTYPES GLM_DISABLE
+
836 #endif
+
837 
+
839 // Configure the use of anonymous structure as implementation detail
+
840 
+
841 #if ((GLM_CONFIG_SIMD == GLM_ENABLE) || (GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR) || (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE))
+
842 # define GLM_CONFIG_ANONYMOUS_STRUCT GLM_ENABLE
+
843 #else
+
844 # define GLM_CONFIG_ANONYMOUS_STRUCT GLM_DISABLE
+
845 #endif
+
846 
+
848 // Silent warnings
+
849 
+
850 #ifdef GLM_FORCE_SILENT_WARNINGS
+
851 # define GLM_SILENT_WARNINGS GLM_ENABLE
+
852 #else
+
853 # define GLM_SILENT_WARNINGS GLM_DISABLE
+
854 #endif
+
855 
+
857 // Precision
+
858 
+
859 #define GLM_HIGHP 1
+
860 #define GLM_MEDIUMP 2
+
861 #define GLM_LOWP 3
+
862 
+
863 #if defined(GLM_FORCE_PRECISION_HIGHP_BOOL) || defined(GLM_PRECISION_HIGHP_BOOL)
+
864 # define GLM_CONFIG_PRECISION_BOOL GLM_HIGHP
+
865 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_BOOL) || defined(GLM_PRECISION_MEDIUMP_BOOL)
+
866 # define GLM_CONFIG_PRECISION_BOOL GLM_MEDIUMP
+
867 #elif defined(GLM_FORCE_PRECISION_LOWP_BOOL) || defined(GLM_PRECISION_LOWP_BOOL)
+
868 # define GLM_CONFIG_PRECISION_BOOL GLM_LOWP
+
869 #else
+
870 # define GLM_CONFIG_PRECISION_BOOL GLM_HIGHP
+
871 #endif
+
872 
+
873 #if defined(GLM_FORCE_PRECISION_HIGHP_INT) || defined(GLM_PRECISION_HIGHP_INT)
+
874 # define GLM_CONFIG_PRECISION_INT GLM_HIGHP
+
875 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_INT) || defined(GLM_PRECISION_MEDIUMP_INT)
+
876 # define GLM_CONFIG_PRECISION_INT GLM_MEDIUMP
+
877 #elif defined(GLM_FORCE_PRECISION_LOWP_INT) || defined(GLM_PRECISION_LOWP_INT)
+
878 # define GLM_CONFIG_PRECISION_INT GLM_LOWP
+
879 #else
+
880 # define GLM_CONFIG_PRECISION_INT GLM_HIGHP
+
881 #endif
+
882 
+
883 #if defined(GLM_FORCE_PRECISION_HIGHP_UINT) || defined(GLM_PRECISION_HIGHP_UINT)
+
884 # define GLM_CONFIG_PRECISION_UINT GLM_HIGHP
+
885 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_UINT) || defined(GLM_PRECISION_MEDIUMP_UINT)
+
886 # define GLM_CONFIG_PRECISION_UINT GLM_MEDIUMP
+
887 #elif defined(GLM_FORCE_PRECISION_LOWP_UINT) || defined(GLM_PRECISION_LOWP_UINT)
+
888 # define GLM_CONFIG_PRECISION_UINT GLM_LOWP
+
889 #else
+
890 # define GLM_CONFIG_PRECISION_UINT GLM_HIGHP
+
891 #endif
+
892 
+
893 #if defined(GLM_FORCE_PRECISION_HIGHP_FLOAT) || defined(GLM_PRECISION_HIGHP_FLOAT)
+
894 # define GLM_CONFIG_PRECISION_FLOAT GLM_HIGHP
+
895 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_FLOAT) || defined(GLM_PRECISION_MEDIUMP_FLOAT)
+
896 # define GLM_CONFIG_PRECISION_FLOAT GLM_MEDIUMP
+
897 #elif defined(GLM_FORCE_PRECISION_LOWP_FLOAT) || defined(GLM_PRECISION_LOWP_FLOAT)
+
898 # define GLM_CONFIG_PRECISION_FLOAT GLM_LOWP
+
899 #else
+
900 # define GLM_CONFIG_PRECISION_FLOAT GLM_HIGHP
+
901 #endif
+
902 
+
903 #if defined(GLM_FORCE_PRECISION_HIGHP_DOUBLE) || defined(GLM_PRECISION_HIGHP_DOUBLE)
+
904 # define GLM_CONFIG_PRECISION_DOUBLE GLM_HIGHP
+
905 #elif defined(GLM_FORCE_PRECISION_MEDIUMP_DOUBLE) || defined(GLM_PRECISION_MEDIUMP_DOUBLE)
+
906 # define GLM_CONFIG_PRECISION_DOUBLE GLM_MEDIUMP
+
907 #elif defined(GLM_FORCE_PRECISION_LOWP_DOUBLE) || defined(GLM_PRECISION_LOWP_DOUBLE)
+
908 # define GLM_CONFIG_PRECISION_DOUBLE GLM_LOWP
+
909 #else
+
910 # define GLM_CONFIG_PRECISION_DOUBLE GLM_HIGHP
+
911 #endif
+
912 
+
914 // Check inclusions of different versions of GLM
+
915 
+
916 #elif ((GLM_SETUP_INCLUDED != GLM_VERSION) && !defined(GLM_FORCE_IGNORE_VERSION))
+
917 # error "GLM error: A different version of GLM is already included. Define GLM_FORCE_IGNORE_VERSION before including GLM headers to ignore this error."
+
918 #elif GLM_SETUP_INCLUDED == GLM_VERSION
+
919 
+
921 // Messages
+
922 
+
923 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_MESSAGE_DISPLAYED)
+
924 # define GLM_MESSAGE_DISPLAYED
+
925 # define GLM_STR_HELPER(x) #x
+
926 # define GLM_STR(x) GLM_STR_HELPER(x)
+
927 
+
928  // Report GLM version
+
929 # pragma message (GLM_STR(GLM_VERSION_MESSAGE))
+
930 
+
931  // Report C++ language
+
932 # if (GLM_LANG & GLM_LANG_CXX2A_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
933 # pragma message("GLM: C++ 2A with extensions")
+
934 # elif (GLM_LANG & GLM_LANG_CXX2A_FLAG)
+
935 # pragma message("GLM: C++ 2A")
+
936 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
937 # pragma message("GLM: C++ 17 with extensions")
+
938 # elif (GLM_LANG & GLM_LANG_CXX17_FLAG)
+
939 # pragma message("GLM: C++ 17")
+
940 # elif (GLM_LANG & GLM_LANG_CXX14_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
941 # pragma message("GLM: C++ 14 with extensions")
+
942 # elif (GLM_LANG & GLM_LANG_CXX14_FLAG)
+
943 # pragma message("GLM: C++ 14")
+
944 # elif (GLM_LANG & GLM_LANG_CXX11_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
945 # pragma message("GLM: C++ 11 with extensions")
+
946 # elif (GLM_LANG & GLM_LANG_CXX11_FLAG)
+
947 # pragma message("GLM: C++ 11")
+
948 # elif (GLM_LANG & GLM_LANG_CXX0X_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
949 # pragma message("GLM: C++ 0x with extensions")
+
950 # elif (GLM_LANG & GLM_LANG_CXX0X_FLAG)
+
951 # pragma message("GLM: C++ 0x")
+
952 # elif (GLM_LANG & GLM_LANG_CXX03_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
953 # pragma message("GLM: C++ 03 with extensions")
+
954 # elif (GLM_LANG & GLM_LANG_CXX03_FLAG)
+
955 # pragma message("GLM: C++ 03")
+
956 # elif (GLM_LANG & GLM_LANG_CXX98_FLAG) && (GLM_LANG & GLM_LANG_EXT)
+
957 # pragma message("GLM: C++ 98 with extensions")
+
958 # elif (GLM_LANG & GLM_LANG_CXX98_FLAG)
+
959 # pragma message("GLM: C++ 98")
+
960 # else
+
961 # pragma message("GLM: C++ language undetected")
+
962 # endif//GLM_LANG
+
963 
+
964  // Report compiler detection
+
965 # if GLM_COMPILER & GLM_COMPILER_CUDA
+
966 # pragma message("GLM: CUDA compiler detected")
+
967 # elif GLM_COMPILER & GLM_COMPILER_VC
+
968 # pragma message("GLM: Visual C++ compiler detected")
+
969 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
970 # pragma message("GLM: Clang compiler detected")
+
971 # elif GLM_COMPILER & GLM_COMPILER_INTEL
+
972 # pragma message("GLM: Intel Compiler detected")
+
973 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
974 # pragma message("GLM: GCC compiler detected")
+
975 # else
+
976 # pragma message("GLM: Compiler not detected")
+
977 # endif
+
978 
+
979  // Report build target
+
980 # if (GLM_ARCH & GLM_ARCH_AVX2_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
981 # pragma message("GLM: x86 64 bits with AVX2 instruction set build target")
+
982 # elif (GLM_ARCH & GLM_ARCH_AVX2_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
983 # pragma message("GLM: x86 32 bits with AVX2 instruction set build target")
+
984 
+
985 # elif (GLM_ARCH & GLM_ARCH_AVX_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
986 # pragma message("GLM: x86 64 bits with AVX instruction set build target")
+
987 # elif (GLM_ARCH & GLM_ARCH_AVX_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
988 # pragma message("GLM: x86 32 bits with AVX instruction set build target")
+
989 
+
990 # elif (GLM_ARCH & GLM_ARCH_SSE42_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
991 # pragma message("GLM: x86 64 bits with SSE4.2 instruction set build target")
+
992 # elif (GLM_ARCH & GLM_ARCH_SSE42_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
993 # pragma message("GLM: x86 32 bits with SSE4.2 instruction set build target")
+
994 
+
995 # elif (GLM_ARCH & GLM_ARCH_SSE41_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
996 # pragma message("GLM: x86 64 bits with SSE4.1 instruction set build target")
+
997 # elif (GLM_ARCH & GLM_ARCH_SSE41_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
998 # pragma message("GLM: x86 32 bits with SSE4.1 instruction set build target")
+
999 
+
1000 # elif (GLM_ARCH & GLM_ARCH_SSSE3_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1001 # pragma message("GLM: x86 64 bits with SSSE3 instruction set build target")
+
1002 # elif (GLM_ARCH & GLM_ARCH_SSSE3_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1003 # pragma message("GLM: x86 32 bits with SSSE3 instruction set build target")
+
1004 
+
1005 # elif (GLM_ARCH & GLM_ARCH_SSE3_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1006 # pragma message("GLM: x86 64 bits with SSE3 instruction set build target")
+
1007 # elif (GLM_ARCH & GLM_ARCH_SSE3_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1008 # pragma message("GLM: x86 32 bits with SSE3 instruction set build target")
+
1009 
+
1010 # elif (GLM_ARCH & GLM_ARCH_SSE2_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1011 # pragma message("GLM: x86 64 bits with SSE2 instruction set build target")
+
1012 # elif (GLM_ARCH & GLM_ARCH_SSE2_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1013 # pragma message("GLM: x86 32 bits with SSE2 instruction set build target")
+
1014 
+
1015 # elif (GLM_ARCH & GLM_ARCH_X86_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1016 # pragma message("GLM: x86 64 bits build target")
+
1017 # elif (GLM_ARCH & GLM_ARCH_X86_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1018 # pragma message("GLM: x86 32 bits build target")
+
1019 
+
1020 # elif (GLM_ARCH & GLM_ARCH_NEON_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1021 # pragma message("GLM: ARM 64 bits with Neon instruction set build target")
+
1022 # elif (GLM_ARCH & GLM_ARCH_NEON_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1023 # pragma message("GLM: ARM 32 bits with Neon instruction set build target")
+
1024 
+
1025 # elif (GLM_ARCH & GLM_ARCH_ARM_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1026 # pragma message("GLM: ARM 64 bits build target")
+
1027 # elif (GLM_ARCH & GLM_ARCH_ARM_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1028 # pragma message("GLM: ARM 32 bits build target")
+
1029 
+
1030 # elif (GLM_ARCH & GLM_ARCH_MIPS_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1031 # pragma message("GLM: MIPS 64 bits build target")
+
1032 # elif (GLM_ARCH & GLM_ARCH_MIPS_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1033 # pragma message("GLM: MIPS 32 bits build target")
+
1034 
+
1035 # elif (GLM_ARCH & GLM_ARCH_PPC_BIT) && (GLM_MODEL == GLM_MODEL_64)
+
1036 # pragma message("GLM: PowerPC 64 bits build target")
+
1037 # elif (GLM_ARCH & GLM_ARCH_PPC_BIT) && (GLM_MODEL == GLM_MODEL_32)
+
1038 # pragma message("GLM: PowerPC 32 bits build target")
+
1039 # else
+
1040 # pragma message("GLM: Unknown build target")
+
1041 # endif//GLM_ARCH
+
1042 
+
1043  // Report platform name
+
1044 # if(GLM_PLATFORM & GLM_PLATFORM_QNXNTO)
+
1045 # pragma message("GLM: QNX platform detected")
+
1046 //# elif(GLM_PLATFORM & GLM_PLATFORM_IOS)
+
1047 //# pragma message("GLM: iOS platform detected")
+
1048 # elif(GLM_PLATFORM & GLM_PLATFORM_APPLE)
+
1049 # pragma message("GLM: Apple platform detected")
+
1050 # elif(GLM_PLATFORM & GLM_PLATFORM_WINCE)
+
1051 # pragma message("GLM: WinCE platform detected")
+
1052 # elif(GLM_PLATFORM & GLM_PLATFORM_WINDOWS)
+
1053 # pragma message("GLM: Windows platform detected")
+
1054 # elif(GLM_PLATFORM & GLM_PLATFORM_CHROME_NACL)
+
1055 # pragma message("GLM: Native Client detected")
+
1056 # elif(GLM_PLATFORM & GLM_PLATFORM_ANDROID)
+
1057 # pragma message("GLM: Android platform detected")
+
1058 # elif(GLM_PLATFORM & GLM_PLATFORM_LINUX)
+
1059 # pragma message("GLM: Linux platform detected")
+
1060 # elif(GLM_PLATFORM & GLM_PLATFORM_UNIX)
+
1061 # pragma message("GLM: UNIX platform detected")
+
1062 # elif(GLM_PLATFORM & GLM_PLATFORM_UNKNOWN)
+
1063 # pragma message("GLM: platform unknown")
+
1064 # else
+
1065 # pragma message("GLM: platform not detected")
+
1066 # endif
+
1067 
+
1068  // Report whether only xyzw component are used
+
1069 # if defined GLM_FORCE_XYZW_ONLY
+
1070 # pragma message("GLM: GLM_FORCE_XYZW_ONLY is defined. Only x, y, z and w component are available in vector type. This define disables swizzle operators and SIMD instruction sets.")
+
1071 # endif
+
1072 
+
1073  // Report swizzle operator support
+
1074 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
1075 # pragma message("GLM: GLM_FORCE_SWIZZLE is defined, swizzling operators enabled.")
+
1076 # elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
1077 # pragma message("GLM: GLM_FORCE_SWIZZLE is defined, swizzling functions enabled. Enable compiler C++ language extensions to enable swizzle operators.")
+
1078 # else
+
1079 # pragma message("GLM: GLM_FORCE_SWIZZLE is undefined. swizzling functions or operators are disabled.")
+
1080 # endif
+
1081 
+
1082  // Report .length() type
+
1083 # if GLM_CONFIG_LENGTH_TYPE == GLM_LENGTH_SIZE_T
+
1084 # pragma message("GLM: GLM_FORCE_SIZE_T_LENGTH is defined. .length() returns a glm::length_t, a typedef of std::size_t.")
+
1085 # else
+
1086 # pragma message("GLM: GLM_FORCE_SIZE_T_LENGTH is undefined. .length() returns a glm::length_t, a typedef of int following GLSL.")
+
1087 # endif
+
1088 
+
1089 # if GLM_CONFIG_UNRESTRICTED_GENTYPE == GLM_ENABLE
+
1090 # pragma message("GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is defined. Removes GLSL restrictions on valid function genTypes.")
+
1091 # else
+
1092 # pragma message("GLM: GLM_FORCE_UNRESTRICTED_GENTYPE is undefined. Follows strictly GLSL on valid function genTypes.")
+
1093 # endif
+
1094 
+
1095 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
1096 # pragma message("GLM: GLM_FORCE_SILENT_WARNINGS is defined. Ignores C++ warnings from using C++ language extensions.")
+
1097 # else
+
1098 # pragma message("GLM: GLM_FORCE_SILENT_WARNINGS is undefined. Shows C++ warnings from using C++ language extensions.")
+
1099 # endif
+
1100 
+
1101 # ifdef GLM_FORCE_SINGLE_ONLY
+
1102 # pragma message("GLM: GLM_FORCE_SINGLE_ONLY is defined. Using only single precision floating-point types.")
+
1103 # endif
+
1104 
+
1105 # if defined(GLM_FORCE_ALIGNED_GENTYPES) && (GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE)
+
1106 # undef GLM_FORCE_ALIGNED_GENTYPES
+
1107 # pragma message("GLM: GLM_FORCE_ALIGNED_GENTYPES is defined, allowing aligned types. This prevents the use of C++ constexpr.")
+
1108 # elif defined(GLM_FORCE_ALIGNED_GENTYPES) && (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)
+
1109 # undef GLM_FORCE_ALIGNED_GENTYPES
+
1110 # pragma message("GLM: GLM_FORCE_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.")
+
1111 # endif
+
1112 
+
1113 # if defined(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)
+
1114 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE
+
1115 # undef GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
+
1116 # pragma message("GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined but is disabled. It requires C++11 and language extensions.")
+
1117 # elif GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+
1118 # pragma message("GLM: GLM_FORCE_DEFAULT_ALIGNED_GENTYPES is defined. All gentypes (e.g. vec3) will be aligned and padded by default.")
+
1119 # endif
+
1120 # endif
+
1121 
+
1122 # if GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_ZO_BIT
+
1123 # pragma message("GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is defined. Using zero to one depth clip space.")
+
1124 # else
+
1125 # pragma message("GLM: GLM_FORCE_DEPTH_ZERO_TO_ONE is undefined. Using negative one to one depth clip space.")
+
1126 # endif
+
1127 
+
1128 # if GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_LH_BIT
+
1129 # pragma message("GLM: GLM_FORCE_LEFT_HANDED is defined. Using left handed coordinate system.")
+
1130 # else
+
1131 # pragma message("GLM: GLM_FORCE_LEFT_HANDED is undefined. Using right handed coordinate system.")
+
1132 # endif
+
1133 #endif//GLM_MESSAGES
+
1134 
+
1135 #endif//GLM_SETUP_INCLUDED
+
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
+
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
+
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
+
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
+
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
+
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
+
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
+
Definition: hash.hpp:49
+
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
+
detail::uint64 uint64
64 bit unsigned integer type.
+
detail::int64 int64
64 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00154.html b/external/include/glm-0.9.9.8/doc/api/a00154.html index c465f06e8b..7da63a783e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00154.html +++ b/external/include/glm-0.9.9.8/doc/api/a00154.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: spline.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
spline.hpp File Reference
-
-
- -

GLM_GTX_spline -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a catmull rom curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a cubic curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 Return a point from a hermite curve. More...
 
-

Detailed Description

-

GLM_GTX_spline

-
See also
Core features (dependence)
- -

Definition in file spline.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: spline.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
spline.hpp File Reference
+
+
+ +

GLM_GTX_spline +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a catmull rom curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a cubic curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 Return a point from a hermite curve. More...
 
+

Detailed Description

+

GLM_GTX_spline

+
See also
Core features (dependence)
+ +

Definition in file spline.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00154_source.html b/external/include/glm-0.9.9.8/doc/api/a00154_source.html index 6b1da0fcef..e2530bc372 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00154_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00154_source.html @@ -1,148 +1,148 @@ - - - - - - -0.9.9 API documentation: spline.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
spline.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include "../gtx/optimum_pow.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_spline extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename genType>
-
35  GLM_FUNC_DECL genType catmullRom(
-
36  genType const& v1,
-
37  genType const& v2,
-
38  genType const& v3,
-
39  genType const& v4,
-
40  typename genType::value_type const& s);
-
41 
-
44  template<typename genType>
-
45  GLM_FUNC_DECL genType hermite(
-
46  genType const& v1,
-
47  genType const& t1,
-
48  genType const& v2,
-
49  genType const& t2,
-
50  typename genType::value_type const& s);
-
51 
-
54  template<typename genType>
-
55  GLM_FUNC_DECL genType cubic(
-
56  genType const& v1,
-
57  genType const& v2,
-
58  genType const& v3,
-
59  genType const& v4,
-
60  typename genType::value_type const& s);
-
61 
-
63 }//namespace glm
-
64 
-
65 #include "spline.inl"
-
GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
Return a point from a hermite curve.
-
GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a cubic curve.
-
GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a catmull rom curve.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: spline.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
spline.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include "../gtx/optimum_pow.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_spline extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename genType>
+
35  GLM_FUNC_DECL genType catmullRom(
+
36  genType const& v1,
+
37  genType const& v2,
+
38  genType const& v3,
+
39  genType const& v4,
+
40  typename genType::value_type const& s);
+
41 
+
44  template<typename genType>
+
45  GLM_FUNC_DECL genType hermite(
+
46  genType const& v1,
+
47  genType const& t1,
+
48  genType const& v2,
+
49  genType const& t2,
+
50  typename genType::value_type const& s);
+
51 
+
54  template<typename genType>
+
55  GLM_FUNC_DECL genType cubic(
+
56  genType const& v1,
+
57  genType const& v2,
+
58  genType const& v3,
+
59  genType const& v4,
+
60  typename genType::value_type const& s);
+
61 
+
63 }//namespace glm
+
64 
+
65 #include "spline.inl"
+
GLM_FUNC_DECL genType hermite(genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
Return a point from a hermite curve.
+
GLM_FUNC_DECL genType cubic(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a cubic curve.
+
GLM_FUNC_DECL genType catmullRom(genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
Return a point from a catmull rom curve.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00155.html b/external/include/glm-0.9.9.8/doc/api/a00155.html index 4b3c5fc012..a193492bf2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00155.html +++ b/external/include/glm-0.9.9.8/doc/api/a00155.html @@ -1,141 +1,141 @@ - - - - - - -0.9.9 API documentation: std_based_type.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
std_based_type.hpp File Reference
-
-
- -

GLM_GTX_std_based_type -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef vec< 1, std::size_t, defaultp > size1
 Vector type based of one std::size_t component. More...
 
typedef vec< 1, std::size_t, defaultp > size1_t
 Vector type based of one std::size_t component. More...
 
typedef vec< 2, std::size_t, defaultp > size2
 Vector type based of two std::size_t components. More...
 
typedef vec< 2, std::size_t, defaultp > size2_t
 Vector type based of two std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3
 Vector type based of three std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3_t
 Vector type based of three std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4
 Vector type based of four std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4_t
 Vector type based of four std::size_t components. More...
 
-

Detailed Description

-

GLM_GTX_std_based_type

-
See also
Core features (dependence)
-
-gtx_extented_min_max (dependence)
- -

Definition in file std_based_type.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: std_based_type.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
std_based_type.hpp File Reference
+
+
+ +

GLM_GTX_std_based_type +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef vec< 1, std::size_t, defaultp > size1
 Vector type based of one std::size_t component. More...
 
typedef vec< 1, std::size_t, defaultp > size1_t
 Vector type based of one std::size_t component. More...
 
typedef vec< 2, std::size_t, defaultp > size2
 Vector type based of two std::size_t components. More...
 
typedef vec< 2, std::size_t, defaultp > size2_t
 Vector type based of two std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3
 Vector type based of three std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3_t
 Vector type based of three std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4
 Vector type based of four std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4_t
 Vector type based of four std::size_t components. More...
 
+

Detailed Description

+

GLM_GTX_std_based_type

+
See also
Core features (dependence)
+
+gtx_extented_min_max (dependence)
+ +

Definition in file std_based_type.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00155_source.html b/external/include/glm-0.9.9.8/doc/api/a00155_source.html index b31f418822..0f50c6fe4e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00155_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00155_source.html @@ -1,145 +1,145 @@ - - - - - - -0.9.9 API documentation: std_based_type.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
std_based_type.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include <cstdlib>
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_std_based_type extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  typedef vec<1, std::size_t, defaultp> size1;
-
36 
-
39  typedef vec<2, std::size_t, defaultp> size2;
-
40 
-
43  typedef vec<3, std::size_t, defaultp> size3;
-
44 
-
47  typedef vec<4, std::size_t, defaultp> size4;
-
48 
-
51  typedef vec<1, std::size_t, defaultp> size1_t;
-
52 
-
55  typedef vec<2, std::size_t, defaultp> size2_t;
-
56 
-
59  typedef vec<3, std::size_t, defaultp> size3_t;
-
60 
-
63  typedef vec<4, std::size_t, defaultp> size4_t;
-
64 
-
66 }//namespace glm
-
67 
-
68 #include "std_based_type.inl"
-
vec< 1, std::size_t, defaultp > size1
Vector type based of one std::size_t component.
-
vec< 3, std::size_t, defaultp > size3_t
Vector type based of three std::size_t components.
-
vec< 2, std::size_t, defaultp > size2_t
Vector type based of two std::size_t components.
-
vec< 4, std::size_t, defaultp > size4
Vector type based of four std::size_t components.
-
vec< 1, std::size_t, defaultp > size1_t
Vector type based of one std::size_t component.
-
vec< 3, std::size_t, defaultp > size3
Vector type based of three std::size_t components.
-
vec< 2, std::size_t, defaultp > size2
Vector type based of two std::size_t components.
-
vec< 4, std::size_t, defaultp > size4_t
Vector type based of four std::size_t components.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: std_based_type.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
std_based_type.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include <cstdlib>
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_std_based_type extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  typedef vec<1, std::size_t, defaultp> size1;
+
36 
+
39  typedef vec<2, std::size_t, defaultp> size2;
+
40 
+
43  typedef vec<3, std::size_t, defaultp> size3;
+
44 
+
47  typedef vec<4, std::size_t, defaultp> size4;
+
48 
+
51  typedef vec<1, std::size_t, defaultp> size1_t;
+
52 
+
55  typedef vec<2, std::size_t, defaultp> size2_t;
+
56 
+
59  typedef vec<3, std::size_t, defaultp> size3_t;
+
60 
+
63  typedef vec<4, std::size_t, defaultp> size4_t;
+
64 
+
66 }//namespace glm
+
67 
+
68 #include "std_based_type.inl"
+
vec< 1, std::size_t, defaultp > size1
Vector type based of one std::size_t component.
+
vec< 3, std::size_t, defaultp > size3_t
Vector type based of three std::size_t components.
+
vec< 2, std::size_t, defaultp > size2_t
Vector type based of two std::size_t components.
+
vec< 4, std::size_t, defaultp > size4
Vector type based of four std::size_t components.
+
vec< 1, std::size_t, defaultp > size1_t
Vector type based of one std::size_t component.
+
vec< 3, std::size_t, defaultp > size3
Vector type based of three std::size_t components.
+
vec< 2, std::size_t, defaultp > size2
Vector type based of two std::size_t components.
+
vec< 4, std::size_t, defaultp > size4_t
Vector type based of four std::size_t components.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00156.html b/external/include/glm-0.9.9.8/doc/api/a00156.html index ff1f864493..ddaf252c96 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00156.html +++ b/external/include/glm-0.9.9.8/doc/api/a00156.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: string_cast.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
string_cast.hpp File Reference
-
-
- -

GLM_GTX_string_cast -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL std::string to_string (genType const &x)
 Create a string from a GLM vector or matrix typed variable. More...
 
-

Detailed Description

-

GLM_GTX_string_cast

-
See also
Core features (dependence)
-
-GLM_GTX_integer (dependence)
-
-GLM_GTX_quaternion (dependence)
- -

Definition in file string_cast.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: string_cast.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
string_cast.hpp File Reference
+
+
+ +

GLM_GTX_string_cast +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL std::string to_string (genType const &x)
 Create a string from a GLM vector or matrix typed variable. More...
 
+

Detailed Description

+

GLM_GTX_string_cast

+
See also
Core features (dependence)
+
+GLM_GTX_integer (dependence)
+
+GLM_GTX_quaternion (dependence)
+ +

Definition in file string_cast.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00156_source.html b/external/include/glm-0.9.9.8/doc/api/a00156_source.html index 51df24bc98..4dba3bcdb6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00156_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00156_source.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: string_cast.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
string_cast.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 // Dependency:
-
20 #include "../glm.hpp"
-
21 #include "../gtc/type_precision.hpp"
-
22 #include "../gtc/quaternion.hpp"
-
23 #include "../gtx/dual_quaternion.hpp"
-
24 #include <string>
-
25 #include <cmath>
-
26 
-
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
28 # ifndef GLM_ENABLE_EXPERIMENTAL
-
29 # pragma message("GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
30 # else
-
31 # pragma message("GLM: GLM_GTX_string_cast extension included")
-
32 # endif
-
33 #endif
-
34 
-
35 #if(GLM_COMPILER & GLM_COMPILER_CUDA)
-
36 # error "GLM_GTX_string_cast is not supported on CUDA compiler"
-
37 #endif
-
38 
-
39 namespace glm
-
40 {
-
43 
-
46  template<typename genType>
-
47  GLM_FUNC_DECL std::string to_string(genType const& x);
-
48 
-
50 }//namespace glm
-
51 
-
52 #include "string_cast.inl"
-
GLM_FUNC_DECL std::string to_string(genType const &x)
Create a string from a GLM vector or matrix typed variable.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: string_cast.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
string_cast.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 // Dependency:
+
20 #include "../glm.hpp"
+
21 #include "../gtc/type_precision.hpp"
+
22 #include "../gtc/quaternion.hpp"
+
23 #include "../gtx/dual_quaternion.hpp"
+
24 #include <string>
+
25 #include <cmath>
+
26 
+
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
28 # ifndef GLM_ENABLE_EXPERIMENTAL
+
29 # pragma message("GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
30 # else
+
31 # pragma message("GLM: GLM_GTX_string_cast extension included")
+
32 # endif
+
33 #endif
+
34 
+
35 #if(GLM_COMPILER & GLM_COMPILER_CUDA)
+
36 # error "GLM_GTX_string_cast is not supported on CUDA compiler"
+
37 #endif
+
38 
+
39 namespace glm
+
40 {
+
43 
+
46  template<typename genType>
+
47  GLM_FUNC_DECL std::string to_string(genType const& x);
+
48 
+
50 }//namespace glm
+
51 
+
52 #include "string_cast.inl"
+
GLM_FUNC_DECL std::string to_string(genType const &x)
Create a string from a GLM vector or matrix typed variable.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00157.html b/external/include/glm-0.9.9.8/doc/api/a00157.html index 8c1060beb2..5a20020300 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00157.html +++ b/external/include/glm-0.9.9.8/doc/api/a00157.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: texture.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
texture.hpp File Reference
-
-
- -

GLM_GTX_texture -More...

- -

Go to the source code of this file.

- - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
T levels (vec< L, T, Q > const &Extent)
 Compute the number of mipmaps levels necessary to create a mipmap complete texture. More...
 
-

Detailed Description

-

GLM_GTX_texture

-
See also
Core features (dependence)
- -

Definition in file texture.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: texture.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
texture.hpp File Reference
+
+
+ +

GLM_GTX_texture +More...

+ +

Go to the source code of this file.

+ + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
T levels (vec< L, T, Q > const &Extent)
 Compute the number of mipmaps levels necessary to create a mipmap complete texture. More...
 
+

Detailed Description

+

GLM_GTX_texture

+
See also
Core features (dependence)
+ +

Definition in file texture.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00157_source.html b/external/include/glm-0.9.9.8/doc/api/a00157_source.html index 9eb0cef888..eabc4ba1b6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00157_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00157_source.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: texture.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
texture.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include "../gtc/integer.hpp"
-
18 #include "../gtx/component_wise.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_texture extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
39  template <length_t L, typename T, qualifier Q>
-
40  T levels(vec<L, T, Q> const& Extent);
-
41 
-
43 }// namespace glm
-
44 
-
45 #include "texture.inl"
-
46 
-
T levels(vec< L, T, Q > const &Extent)
Compute the number of mipmaps levels necessary to create a mipmap complete texture.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: texture.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
texture.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include "../gtc/integer.hpp"
+
18 #include "../gtx/component_wise.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_texture extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
39  template <length_t L, typename T, qualifier Q>
+
40  T levels(vec<L, T, Q> const& Extent);
+
41 
+
43 }// namespace glm
+
44 
+
45 #include "texture.inl"
+
46 
+
T levels(vec< L, T, Q > const &Extent)
Compute the number of mipmaps levels necessary to create a mipmap complete texture.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00158.html b/external/include/glm-0.9.9.8/doc/api/a00158.html index a831de0932..995837206d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00158.html +++ b/external/include/glm-0.9.9.8/doc/api/a00158.html @@ -1,133 +1,133 @@ - - - - - - -0.9.9 API documentation: transform.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
transform.hpp File Reference
-
-
- -

GLM_GTX_transform -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (T angle, vec< 3, T, Q > const &v)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (vec< 3, T, Q > const &v)
 Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (vec< 3, T, Q > const &v)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. More...
 
-

Detailed Description

-

GLM_GTX_transform

-
See also
Core features (dependence)
-
-GLM_GTC_matrix_transform (dependence)
-
-GLM_GTX_transform
-
-GLM_GTX_transform2
- -

Definition in file transform.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: transform.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
transform.hpp File Reference
+
+
+ +

GLM_GTX_transform +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (T angle, vec< 3, T, Q > const &v)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (vec< 3, T, Q > const &v)
 Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (vec< 3, T, Q > const &v)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. More...
 
+

Detailed Description

+

GLM_GTX_transform

+
See also
Core features (dependence)
+
+GLM_GTC_matrix_transform (dependence)
+
+GLM_GTX_transform
+
+GLM_GTX_transform2
+ +

Definition in file transform.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00158_source.html b/external/include/glm-0.9.9.8/doc/api/a00158_source.html index 4f9db7f0b2..ce75b1ea6b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00158_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00158_source.html @@ -1,138 +1,138 @@ - - - - - - -0.9.9 API documentation: transform.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
transform.hpp
-
-
-Go to the documentation of this file.
1 
-
16 #pragma once
-
17 
-
18 // Dependency:
-
19 #include "../glm.hpp"
-
20 #include "../gtc/matrix_transform.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # ifndef GLM_ENABLE_EXPERIMENTAL
-
24 # pragma message("GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
25 # else
-
26 # pragma message("GLM: GLM_GTX_transform extension included")
-
27 # endif
-
28 #endif
-
29 
-
30 namespace glm
-
31 {
-
34 
-
38  template<typename T, qualifier Q>
-
39  GLM_FUNC_DECL mat<4, 4, T, Q> translate(
-
40  vec<3, T, Q> const& v);
-
41 
-
45  template<typename T, qualifier Q>
-
46  GLM_FUNC_DECL mat<4, 4, T, Q> rotate(
-
47  T angle,
-
48  vec<3, T, Q> const& v);
-
49 
-
53  template<typename T, qualifier Q>
-
54  GLM_FUNC_DECL mat<4, 4, T, Q> scale(
-
55  vec<3, T, Q> const& v);
-
56 
-
58 }// namespace glm
-
59 
-
60 #include "transform.inl"
-
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(vec< 3, T, Q > const &v)
Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(vec< 3, T, Q > const &v)
Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(T angle, vec< 3, T, Q > const &v)
Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: transform.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
transform.hpp
+
+
+Go to the documentation of this file.
1 
+
16 #pragma once
+
17 
+
18 // Dependency:
+
19 #include "../glm.hpp"
+
20 #include "../gtc/matrix_transform.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # ifndef GLM_ENABLE_EXPERIMENTAL
+
24 # pragma message("GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
25 # else
+
26 # pragma message("GLM: GLM_GTX_transform extension included")
+
27 # endif
+
28 #endif
+
29 
+
30 namespace glm
+
31 {
+
34 
+
38  template<typename T, qualifier Q>
+
39  GLM_FUNC_DECL mat<4, 4, T, Q> translate(
+
40  vec<3, T, Q> const& v);
+
41 
+
45  template<typename T, qualifier Q>
+
46  GLM_FUNC_DECL mat<4, 4, T, Q> rotate(
+
47  T angle,
+
48  vec<3, T, Q> const& v);
+
49 
+
53  template<typename T, qualifier Q>
+
54  GLM_FUNC_DECL mat<4, 4, T, Q> scale(
+
55  vec<3, T, Q> const& v);
+
56 
+
58 }// namespace glm
+
59 
+
60 #include "transform.inl"
+
GLM_FUNC_DECL mat< 4, 4, T, Q > translate(vec< 3, T, Q > const &v)
Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(vec< 3, T, Q > const &v)
Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate(T angle, vec< 3, T, Q > const &v)
Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00159.html b/external/include/glm-0.9.9.8/doc/api/a00159.html index 834630c394..23a665a55e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00159.html +++ b/external/include/glm-0.9.9.8/doc/api/a00159.html @@ -1,153 +1,153 @@ - - - - - - -0.9.9 API documentation: transform2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
transform2.hpp File Reference
-
-
- -

GLM_GTX_transform2 -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D (mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (mat< 4, 4, T, Q > const &m, T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D (mat< 3, 3, T, Q > const &m, T y)
 Transforms a matrix with a shearing on X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D (mat< 4, 4, T, Q > const &m, T y, T z)
 Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D (mat< 3, 3, T, Q > const &m, T x)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D (mat< 4, 4, T, Q > const &m, T x, T z)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D (mat< 4, 4, T, Q > const &m, T x, T y)
 Transforms a matrix with a shearing on Z axis. More...
 
-

Detailed Description

-

GLM_GTX_transform2

-
See also
Core features (dependence)
-
-GLM_GTX_transform (dependence)
- -

Definition in file transform2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: transform2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
transform2.hpp File Reference
+
+
+ +

GLM_GTX_transform2 +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D (mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (mat< 4, 4, T, Q > const &m, T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D (mat< 3, 3, T, Q > const &m, T y)
 Transforms a matrix with a shearing on X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D (mat< 4, 4, T, Q > const &m, T y, T z)
 Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D (mat< 3, 3, T, Q > const &m, T x)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D (mat< 4, 4, T, Q > const &m, T x, T z)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D (mat< 4, 4, T, Q > const &m, T x, T y)
 Transforms a matrix with a shearing on Z axis. More...
 
+

Detailed Description

+

GLM_GTX_transform2

+
See also
Core features (dependence)
+
+GLM_GTX_transform (dependence)
+ +

Definition in file transform2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00159_source.html b/external/include/glm-0.9.9.8/doc/api/a00159_source.html index 46de7f5c1f..7724d4bf3c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00159_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00159_source.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: transform2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
transform2.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../glm.hpp"
-
18 #include "../gtx/transform.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_transform2 extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<typename T, qualifier Q>
-
36  GLM_FUNC_DECL mat<3, 3, T, Q> shearX2D(mat<3, 3, T, Q> const& m, T y);
-
37 
-
40  template<typename T, qualifier Q>
-
41  GLM_FUNC_DECL mat<3, 3, T, Q> shearY2D(mat<3, 3, T, Q> const& m, T x);
-
42 
-
45  template<typename T, qualifier Q>
-
46  GLM_FUNC_DECL mat<4, 4, T, Q> shearX3D(mat<4, 4, T, Q> const& m, T y, T z);
-
47 
-
50  template<typename T, qualifier Q>
-
51  GLM_FUNC_DECL mat<4, 4, T, Q> shearY3D(mat<4, 4, T, Q> const& m, T x, T z);
-
52 
-
55  template<typename T, qualifier Q>
-
56  GLM_FUNC_DECL mat<4, 4, T, Q> shearZ3D(mat<4, 4, T, Q> const& m, T x, T y);
-
57 
-
58  //template<typename T> GLM_FUNC_QUALIFIER mat<4, 4, T, Q> shear(const mat<4, 4, T, Q> & m, shearPlane, planePoint, angle)
-
59  // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
-
60  // - dot(PointOnPlane, normal) * OnPlaneVector 1
-
61 
-
62  // Reflect functions seem to don't work
-
63  //template<typename T> mat<3, 3, T, Q> reflect2D(const mat<3, 3, T, Q> & m, const vec<3, T, Q>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
64  //template<typename T> mat<4, 4, T, Q> reflect3D(const mat<4, 4, T, Q> & m, const vec<3, T, Q>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
-
65 
-
68  template<typename T, qualifier Q>
-
69  GLM_FUNC_DECL mat<3, 3, T, Q> proj2D(mat<3, 3, T, Q> const& m, vec<3, T, Q> const& normal);
-
70 
-
73  template<typename T, qualifier Q>
-
74  GLM_FUNC_DECL mat<4, 4, T, Q> proj3D(mat<4, 4, T, Q> const & m, vec<3, T, Q> const& normal);
-
75 
-
78  template<typename T, qualifier Q>
-
79  GLM_FUNC_DECL mat<4, 4, T, Q> scaleBias(T scale, T bias);
-
80 
-
83  template<typename T, qualifier Q>
-
84  GLM_FUNC_DECL mat<4, 4, T, Q> scaleBias(mat<4, 4, T, Q> const& m, T scale, T bias);
-
85 
-
87 }// namespace glm
-
88 
-
89 #include "transform2.inl"
-
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D(mat< 3, 3, T, Q > const &m, T y)
Transforms a matrix with a shearing on X axis.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D(mat< 3, 3, T, Q > const &m, T x)
Transforms a matrix with a shearing on Y axis.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
Build planar projection matrix along normal axis.
-
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D(mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
Build planar projection matrix along normal axis.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D(mat< 4, 4, T, Q > const &m, T x, T y)
Transforms a matrix with a shearing on Z axis.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D(mat< 4, 4, T, Q > const &m, T x, T z)
Transforms a matrix with a shearing on Y axis.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)
Build a scale bias matrix.
-
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D(mat< 4, 4, T, Q > const &m, T y, T z)
Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: transform2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
transform2.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../glm.hpp"
+
18 #include "../gtx/transform.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_transform2 extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<typename T, qualifier Q>
+
36  GLM_FUNC_DECL mat<3, 3, T, Q> shearX2D(mat<3, 3, T, Q> const& m, T y);
+
37 
+
40  template<typename T, qualifier Q>
+
41  GLM_FUNC_DECL mat<3, 3, T, Q> shearY2D(mat<3, 3, T, Q> const& m, T x);
+
42 
+
45  template<typename T, qualifier Q>
+
46  GLM_FUNC_DECL mat<4, 4, T, Q> shearX3D(mat<4, 4, T, Q> const& m, T y, T z);
+
47 
+
50  template<typename T, qualifier Q>
+
51  GLM_FUNC_DECL mat<4, 4, T, Q> shearY3D(mat<4, 4, T, Q> const& m, T x, T z);
+
52 
+
55  template<typename T, qualifier Q>
+
56  GLM_FUNC_DECL mat<4, 4, T, Q> shearZ3D(mat<4, 4, T, Q> const& m, T x, T y);
+
57 
+
58  //template<typename T> GLM_FUNC_QUALIFIER mat<4, 4, T, Q> shear(const mat<4, 4, T, Q> & m, shearPlane, planePoint, angle)
+
59  // Identity + tan(angle) * cross(Normal, OnPlaneVector) 0
+
60  // - dot(PointOnPlane, normal) * OnPlaneVector 1
+
61 
+
62  // Reflect functions seem to don't work
+
63  //template<typename T> mat<3, 3, T, Q> reflect2D(const mat<3, 3, T, Q> & m, const vec<3, T, Q>& normal){return reflect2DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+
64  //template<typename T> mat<4, 4, T, Q> reflect3D(const mat<4, 4, T, Q> & m, const vec<3, T, Q>& normal){return reflect3DGTX(m, normal);} //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
+
65 
+
68  template<typename T, qualifier Q>
+
69  GLM_FUNC_DECL mat<3, 3, T, Q> proj2D(mat<3, 3, T, Q> const& m, vec<3, T, Q> const& normal);
+
70 
+
73  template<typename T, qualifier Q>
+
74  GLM_FUNC_DECL mat<4, 4, T, Q> proj3D(mat<4, 4, T, Q> const & m, vec<3, T, Q> const& normal);
+
75 
+
78  template<typename T, qualifier Q>
+
79  GLM_FUNC_DECL mat<4, 4, T, Q> scaleBias(T scale, T bias);
+
80 
+
83  template<typename T, qualifier Q>
+
84  GLM_FUNC_DECL mat<4, 4, T, Q> scaleBias(mat<4, 4, T, Q> const& m, T scale, T bias);
+
85 
+
87 }// namespace glm
+
88 
+
89 #include "transform2.inl"
+
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D(mat< 3, 3, T, Q > const &m, T y)
Transforms a matrix with a shearing on X axis.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D(mat< 3, 3, T, Q > const &m, T x)
Transforms a matrix with a shearing on Y axis.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
Build planar projection matrix along normal axis.
+
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D(mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
Build planar projection matrix along normal axis.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D(mat< 4, 4, T, Q > const &m, T x, T y)
Transforms a matrix with a shearing on Z axis.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D(mat< 4, 4, T, Q > const &m, T x, T z)
Transforms a matrix with a shearing on Y axis.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)
Build a scale bias matrix.
+
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D(mat< 4, 4, T, Q > const &m, T y, T z)
Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00160.html b/external/include/glm-0.9.9.8/doc/api/a00160.html index 4e2aeb8578..b375eda03c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00160.html +++ b/external/include/glm-0.9.9.8/doc/api/a00160.html @@ -1,175 +1,175 @@ - - - - - - -0.9.9 API documentation: trigonometric.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
trigonometric.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acos (vec< L, T, Q > const &x)
 Arc cosine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acosh (vec< L, T, Q > const &x)
 Arc hyperbolic cosine; returns the non-negative inverse of cosh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asin (vec< L, T, Q > const &x)
 Arc sine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asinh (vec< L, T, Q > const &x)
 Arc hyperbolic sine; returns the inverse of sinh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y, vec< L, T, Q > const &x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y_over_x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atanh (vec< L, T, Q > const &x)
 Arc hyperbolic tangent; returns the inverse of tanh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cos (vec< L, T, Q > const &angle)
 The standard trigonometric cosine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cosh (vec< L, T, Q > const &angle)
 Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees (vec< L, T, Q > const &radians)
 Converts radians to degrees and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians (vec< L, T, Q > const &degrees)
 Converts degrees to radians and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sin (vec< L, T, Q > const &angle)
 The standard trigonometric sine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sinh (vec< L, T, Q > const &angle)
 Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tan (vec< L, T, Q > const &angle)
 The standard trigonometric tangent function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tanh (vec< L, T, Q > const &angle)
 Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: trigonometric.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
trigonometric.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acos (vec< L, T, Q > const &x)
 Arc cosine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acosh (vec< L, T, Q > const &x)
 Arc hyperbolic cosine; returns the non-negative inverse of cosh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asin (vec< L, T, Q > const &x)
 Arc sine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asinh (vec< L, T, Q > const &x)
 Arc hyperbolic sine; returns the inverse of sinh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y, vec< L, T, Q > const &x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y_over_x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atanh (vec< L, T, Q > const &x)
 Arc hyperbolic tangent; returns the inverse of tanh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cos (vec< L, T, Q > const &angle)
 The standard trigonometric cosine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cosh (vec< L, T, Q > const &angle)
 Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees (vec< L, T, Q > const &radians)
 Converts radians to degrees and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians (vec< L, T, Q > const &degrees)
 Converts degrees to radians and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sin (vec< L, T, Q > const &angle)
 The standard trigonometric sine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sinh (vec< L, T, Q > const &angle)
 Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tan (vec< L, T, Q > const &angle)
 The standard trigonometric tangent function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tanh (vec< L, T, Q > const &angle)
 Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00160_source.html b/external/include/glm-0.9.9.8/doc/api/a00160_source.html index 67678d1dbf..3ddd5bee6e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00160_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00160_source.html @@ -1,172 +1,172 @@ - - - - - - -0.9.9 API documentation: trigonometric.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
trigonometric.hpp
-
-
-Go to the documentation of this file.
1 
-
19 #pragma once
-
20 
-
21 #include "detail/setup.hpp"
-
22 #include "detail/qualifier.hpp"
-
23 
-
24 namespace glm
-
25 {
-
28 
-
37  template<length_t L, typename T, qualifier Q>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> radians(vec<L, T, Q> const& degrees);
-
39 
-
48  template<length_t L, typename T, qualifier Q>
-
49  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> degrees(vec<L, T, Q> const& radians);
-
50 
-
60  template<length_t L, typename T, qualifier Q>
-
61  GLM_FUNC_DECL vec<L, T, Q> sin(vec<L, T, Q> const& angle);
-
62 
-
72  template<length_t L, typename T, qualifier Q>
-
73  GLM_FUNC_DECL vec<L, T, Q> cos(vec<L, T, Q> const& angle);
-
74 
-
83  template<length_t L, typename T, qualifier Q>
-
84  GLM_FUNC_DECL vec<L, T, Q> tan(vec<L, T, Q> const& angle);
-
85 
-
96  template<length_t L, typename T, qualifier Q>
-
97  GLM_FUNC_DECL vec<L, T, Q> asin(vec<L, T, Q> const& x);
-
98 
-
109  template<length_t L, typename T, qualifier Q>
-
110  GLM_FUNC_DECL vec<L, T, Q> acos(vec<L, T, Q> const& x);
-
111 
-
124  template<length_t L, typename T, qualifier Q>
-
125  GLM_FUNC_DECL vec<L, T, Q> atan(vec<L, T, Q> const& y, vec<L, T, Q> const& x);
-
126 
-
136  template<length_t L, typename T, qualifier Q>
-
137  GLM_FUNC_DECL vec<L, T, Q> atan(vec<L, T, Q> const& y_over_x);
-
138 
-
147  template<length_t L, typename T, qualifier Q>
-
148  GLM_FUNC_DECL vec<L, T, Q> sinh(vec<L, T, Q> const& angle);
-
149 
-
158  template<length_t L, typename T, qualifier Q>
-
159  GLM_FUNC_DECL vec<L, T, Q> cosh(vec<L, T, Q> const& angle);
-
160 
-
169  template<length_t L, typename T, qualifier Q>
-
170  GLM_FUNC_DECL vec<L, T, Q> tanh(vec<L, T, Q> const& angle);
-
171 
-
180  template<length_t L, typename T, qualifier Q>
-
181  GLM_FUNC_DECL vec<L, T, Q> asinh(vec<L, T, Q> const& x);
-
182 
-
192  template<length_t L, typename T, qualifier Q>
-
193  GLM_FUNC_DECL vec<L, T, Q> acosh(vec<L, T, Q> const& x);
-
194 
-
204  template<length_t L, typename T, qualifier Q>
-
205  GLM_FUNC_DECL vec<L, T, Q> atanh(vec<L, T, Q> const& x);
-
206 
-
208 }//namespace glm
-
209 
-
210 #include "detail/func_trigonometric.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees(vec< L, T, Q > const &radians)
Converts radians to degrees and returns the result.
-
GLM_FUNC_DECL vec< L, T, Q > cosh(vec< L, T, Q > const &angle)
Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.
-
GLM_FUNC_DECL vec< L, T, Q > acos(vec< L, T, Q > const &x)
Arc cosine.
-
GLM_FUNC_DECL vec< L, T, Q > sin(vec< L, T, Q > const &angle)
The standard trigonometric sine function.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians(vec< L, T, Q > const &degrees)
Converts degrees to radians and returns the result.
-
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
-
GLM_FUNC_DECL vec< L, T, Q > asin(vec< L, T, Q > const &x)
Arc sine.
-
GLM_FUNC_DECL vec< L, T, Q > tanh(vec< L, T, Q > const &angle)
Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
-
GLM_FUNC_DECL vec< L, T, Q > sinh(vec< L, T, Q > const &angle)
Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.
-
GLM_FUNC_DECL vec< L, T, Q > asinh(vec< L, T, Q > const &x)
Arc hyperbolic sine; returns the inverse of sinh.
-
GLM_FUNC_DECL vec< L, T, Q > atanh(vec< L, T, Q > const &x)
Arc hyperbolic tangent; returns the inverse of tanh.
-
GLM_FUNC_DECL vec< L, T, Q > cos(vec< L, T, Q > const &angle)
The standard trigonometric cosine function.
-
GLM_FUNC_DECL vec< L, T, Q > atan(vec< L, T, Q > const &y_over_x)
Arc tangent.
-
GLM_FUNC_DECL vec< L, T, Q > acosh(vec< L, T, Q > const &x)
Arc hyperbolic cosine; returns the non-negative inverse of cosh.
-
GLM_FUNC_DECL vec< L, T, Q > tan(vec< L, T, Q > const &angle)
The standard trigonometric tangent function.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: trigonometric.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
trigonometric.hpp
+
+
+Go to the documentation of this file.
1 
+
19 #pragma once
+
20 
+
21 #include "detail/setup.hpp"
+
22 #include "detail/qualifier.hpp"
+
23 
+
24 namespace glm
+
25 {
+
28 
+
37  template<length_t L, typename T, qualifier Q>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> radians(vec<L, T, Q> const& degrees);
+
39 
+
48  template<length_t L, typename T, qualifier Q>
+
49  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> degrees(vec<L, T, Q> const& radians);
+
50 
+
60  template<length_t L, typename T, qualifier Q>
+
61  GLM_FUNC_DECL vec<L, T, Q> sin(vec<L, T, Q> const& angle);
+
62 
+
72  template<length_t L, typename T, qualifier Q>
+
73  GLM_FUNC_DECL vec<L, T, Q> cos(vec<L, T, Q> const& angle);
+
74 
+
83  template<length_t L, typename T, qualifier Q>
+
84  GLM_FUNC_DECL vec<L, T, Q> tan(vec<L, T, Q> const& angle);
+
85 
+
96  template<length_t L, typename T, qualifier Q>
+
97  GLM_FUNC_DECL vec<L, T, Q> asin(vec<L, T, Q> const& x);
+
98 
+
109  template<length_t L, typename T, qualifier Q>
+
110  GLM_FUNC_DECL vec<L, T, Q> acos(vec<L, T, Q> const& x);
+
111 
+
124  template<length_t L, typename T, qualifier Q>
+
125  GLM_FUNC_DECL vec<L, T, Q> atan(vec<L, T, Q> const& y, vec<L, T, Q> const& x);
+
126 
+
136  template<length_t L, typename T, qualifier Q>
+
137  GLM_FUNC_DECL vec<L, T, Q> atan(vec<L, T, Q> const& y_over_x);
+
138 
+
147  template<length_t L, typename T, qualifier Q>
+
148  GLM_FUNC_DECL vec<L, T, Q> sinh(vec<L, T, Q> const& angle);
+
149 
+
158  template<length_t L, typename T, qualifier Q>
+
159  GLM_FUNC_DECL vec<L, T, Q> cosh(vec<L, T, Q> const& angle);
+
160 
+
169  template<length_t L, typename T, qualifier Q>
+
170  GLM_FUNC_DECL vec<L, T, Q> tanh(vec<L, T, Q> const& angle);
+
171 
+
180  template<length_t L, typename T, qualifier Q>
+
181  GLM_FUNC_DECL vec<L, T, Q> asinh(vec<L, T, Q> const& x);
+
182 
+
192  template<length_t L, typename T, qualifier Q>
+
193  GLM_FUNC_DECL vec<L, T, Q> acosh(vec<L, T, Q> const& x);
+
194 
+
204  template<length_t L, typename T, qualifier Q>
+
205  GLM_FUNC_DECL vec<L, T, Q> atanh(vec<L, T, Q> const& x);
+
206 
+
208 }//namespace glm
+
209 
+
210 #include "detail/func_trigonometric.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees(vec< L, T, Q > const &radians)
Converts radians to degrees and returns the result.
+
GLM_FUNC_DECL vec< L, T, Q > cosh(vec< L, T, Q > const &angle)
Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.
+
GLM_FUNC_DECL vec< L, T, Q > acos(vec< L, T, Q > const &x)
Arc cosine.
+
GLM_FUNC_DECL vec< L, T, Q > sin(vec< L, T, Q > const &angle)
The standard trigonometric sine function.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians(vec< L, T, Q > const &degrees)
Converts degrees to radians and returns the result.
+
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Returns the quaternion rotation angle.
+
GLM_FUNC_DECL vec< L, T, Q > asin(vec< L, T, Q > const &x)
Arc sine.
+
GLM_FUNC_DECL vec< L, T, Q > tanh(vec< L, T, Q > const &angle)
Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)
+
GLM_FUNC_DECL vec< L, T, Q > sinh(vec< L, T, Q > const &angle)
Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.
+
GLM_FUNC_DECL vec< L, T, Q > asinh(vec< L, T, Q > const &x)
Arc hyperbolic sine; returns the inverse of sinh.
+
GLM_FUNC_DECL vec< L, T, Q > atanh(vec< L, T, Q > const &x)
Arc hyperbolic tangent; returns the inverse of tanh.
+
GLM_FUNC_DECL vec< L, T, Q > cos(vec< L, T, Q > const &angle)
The standard trigonometric cosine function.
+
GLM_FUNC_DECL vec< L, T, Q > atan(vec< L, T, Q > const &y_over_x)
Arc tangent.
+
GLM_FUNC_DECL vec< L, T, Q > acosh(vec< L, T, Q > const &x)
Arc hyperbolic cosine; returns the non-negative inverse of cosh.
+
GLM_FUNC_DECL vec< L, T, Q > tan(vec< L, T, Q > const &angle)
The standard trigonometric tangent function.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00161.html b/external/include/glm-0.9.9.8/doc/api/a00161.html index 7e741bbcb6..773124e635 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00161.html +++ b/external/include/glm-0.9.9.8/doc/api/a00161.html @@ -1,1523 +1,1523 @@ - - - - - - -0.9.9 API documentation: type_aligned.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtc/type_aligned.hpp File Reference
-
-
- -

GLM_GTC_type_aligned -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef aligned_highp_bvec1 aligned_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec2 aligned_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec3 aligned_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec4 aligned_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef aligned_highp_dmat2 aligned_dmat2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x2 aligned_dmat2x2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x3 aligned_dmat2x3
 2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x4 aligned_dmat2x4
 2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3 aligned_dmat3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x2 aligned_dmat3x2
 3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x3 aligned_dmat3x3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x4 aligned_dmat3x4
 3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4 aligned_dmat4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x2 aligned_dmat4x2
 4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x3 aligned_dmat4x3
 4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x4 aligned_dmat4x4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec1 aligned_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec2 aligned_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec3 aligned_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec4 aligned_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef vec< 1, bool, aligned_highp > aligned_highp_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_highp > aligned_highp_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_highp > aligned_highp_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_highp > aligned_highp_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_highp > aligned_highp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_highp > aligned_highp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_highp > aligned_highp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_highp > aligned_highp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_highp > aligned_highp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_highp > aligned_highp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_highp > aligned_highp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_highp > aligned_highp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_highp > aligned_highp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_highp > aligned_highp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_highp > aligned_highp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_highp > aligned_highp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_highp > aligned_highp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_highp > aligned_highp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_highp > aligned_highp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_highp > aligned_highp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef aligned_highp_ivec1 aligned_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec2 aligned_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec3 aligned_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec4 aligned_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_lowp > aligned_lowp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_lowp > aligned_lowp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_lowp > aligned_lowp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_lowp > aligned_lowp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_lowp > aligned_lowp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_lowp > aligned_lowp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_lowp > aligned_lowp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_lowp > aligned_lowp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_lowp > aligned_lowp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_lowp > aligned_lowp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_lowp > aligned_lowp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_lowp > aligned_lowp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef aligned_highp_mat2 aligned_mat2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x2 aligned_mat2x2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x3 aligned_mat2x3
 2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x4 aligned_mat2x4
 2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3 aligned_mat3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x2 aligned_mat3x2
 3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x3 aligned_mat3x3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x4 aligned_mat3x4
 3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4 aligned_mat4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x2 aligned_mat4x2
 4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x3 aligned_mat4x3
 4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x4 aligned_mat4x4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_mediump > aligned_mediump_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_mediump > aligned_mediump_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_mediump > aligned_mediump_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_mediump > aligned_mediump_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_mediump > aligned_mediump_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_mediump > aligned_mediump_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_mediump > aligned_mediump_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_mediump > aligned_mediump_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_mediump > aligned_mediump_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_mediump > aligned_mediump_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_mediump > aligned_mediump_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_mediump > aligned_mediump_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef aligned_highp_uvec1 aligned_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec2 aligned_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec3 aligned_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec4 aligned_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_vec1 aligned_vec1
 1 component vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec2 aligned_vec2
 2 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec3 aligned_vec3
 3 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec4 aligned_vec4
 4 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef packed_highp_bvec1 packed_bvec1
 1 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec2 packed_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec3 packed_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec4 packed_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_dmat2 packed_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x2 packed_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x3 packed_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x4 packed_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3 packed_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x2 packed_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x3 packed_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x4 packed_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4 packed_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x2 packed_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x3 packed_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x4 packed_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec1 packed_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec2 packed_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec3 packed_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec4 packed_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef vec< 1, bool, packed_highp > packed_highp_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_highp > packed_highp_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_highp > packed_highp_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_highp > packed_highp_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_highp > packed_highp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_highp > packed_highp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_highp > packed_highp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_highp > packed_highp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_highp > packed_highp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_highp > packed_highp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_highp > packed_highp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_highp > packed_highp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_highp > packed_highp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_highp > packed_highp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_highp > packed_highp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_highp > packed_highp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_highp > packed_highp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_highp > packed_highp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_highp > packed_highp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_highp > packed_highp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_highp > packed_highp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_highp > packed_highp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_highp > packed_highp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_highp > packed_highp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_highp > packed_highp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_highp > packed_highp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_highp > packed_highp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_highp > packed_highp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_highp > packed_highp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_highp > packed_highp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_highp > packed_highp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_highp > packed_highp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef packed_highp_ivec1 packed_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec2 packed_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec3 packed_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec4 packed_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 1, bool, packed_lowp > packed_lowp_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_lowp > packed_lowp_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_lowp > packed_lowp_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_lowp > packed_lowp_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_lowp > packed_lowp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_lowp > packed_lowp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_lowp > packed_lowp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_lowp > packed_lowp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_lowp > packed_lowp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_lowp > packed_lowp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_lowp > packed_lowp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_lowp > packed_lowp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_lowp > packed_lowp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_lowp > packed_lowp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_lowp > packed_lowp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_lowp > packed_lowp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_lowp > packed_lowp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_lowp > packed_lowp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_lowp > packed_lowp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_lowp > packed_lowp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef packed_highp_mat2 packed_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x2 packed_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x3 packed_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x4 packed_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3 packed_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x2 packed_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x3 packed_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x4 packed_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4 packed_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x2 packed_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x3 packed_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x4 packed_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef vec< 1, bool, packed_mediump > packed_mediump_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_mediump > packed_mediump_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_mediump > packed_mediump_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_mediump > packed_mediump_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_mediump > packed_mediump_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_mediump > packed_mediump_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_mediump > packed_mediump_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_mediump > packed_mediump_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_mediump > packed_mediump_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_mediump > packed_mediump_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_mediump > packed_mediump_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_mediump > packed_mediump_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_mediump > packed_mediump_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_mediump > packed_mediump_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_mediump > packed_mediump_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_mediump > packed_mediump_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_mediump > packed_mediump_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_mediump > packed_mediump_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_mediump > packed_mediump_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_mediump > packed_mediump_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef packed_highp_uvec1 packed_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec2 packed_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec3 packed_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec4 packed_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_vec1 packed_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec2 packed_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec3 packed_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec4 packed_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers.
 
-

Detailed Description

-

GLM_GTC_type_aligned

-
See also
Core features (dependence)
- -

Definition in file gtc/type_aligned.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_aligned.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtc/type_aligned.hpp File Reference
+
+
+ +

GLM_GTC_type_aligned +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef aligned_highp_bvec1 aligned_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec2 aligned_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec3 aligned_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec4 aligned_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef aligned_highp_dmat2 aligned_dmat2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x2 aligned_dmat2x2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x3 aligned_dmat2x3
 2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x4 aligned_dmat2x4
 2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3 aligned_dmat3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x2 aligned_dmat3x2
 3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x3 aligned_dmat3x3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x4 aligned_dmat3x4
 3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4 aligned_dmat4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x2 aligned_dmat4x2
 4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x3 aligned_dmat4x3
 4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x4 aligned_dmat4x4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec1 aligned_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec2 aligned_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec3 aligned_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec4 aligned_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef vec< 1, bool, aligned_highp > aligned_highp_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_highp > aligned_highp_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_highp > aligned_highp_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_highp > aligned_highp_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_highp > aligned_highp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_highp > aligned_highp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_highp > aligned_highp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_highp > aligned_highp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_highp > aligned_highp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_highp > aligned_highp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_highp > aligned_highp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_highp > aligned_highp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_highp > aligned_highp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_highp > aligned_highp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_highp > aligned_highp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_highp > aligned_highp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_highp > aligned_highp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_highp > aligned_highp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_highp > aligned_highp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_highp > aligned_highp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef aligned_highp_ivec1 aligned_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec2 aligned_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec3 aligned_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec4 aligned_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_lowp > aligned_lowp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_lowp > aligned_lowp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_lowp > aligned_lowp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_lowp > aligned_lowp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_lowp > aligned_lowp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_lowp > aligned_lowp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_lowp > aligned_lowp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_lowp > aligned_lowp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_lowp > aligned_lowp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_lowp > aligned_lowp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_lowp > aligned_lowp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_lowp > aligned_lowp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef aligned_highp_mat2 aligned_mat2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x2 aligned_mat2x2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x3 aligned_mat2x3
 2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x4 aligned_mat2x4
 2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3 aligned_mat3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x2 aligned_mat3x2
 3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x3 aligned_mat3x3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x4 aligned_mat3x4
 3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4 aligned_mat4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x2 aligned_mat4x2
 4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x3 aligned_mat4x3
 4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x4 aligned_mat4x4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_mediump > aligned_mediump_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_mediump > aligned_mediump_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_mediump > aligned_mediump_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_mediump > aligned_mediump_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_mediump > aligned_mediump_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_mediump > aligned_mediump_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_mediump > aligned_mediump_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_mediump > aligned_mediump_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_mediump > aligned_mediump_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_mediump > aligned_mediump_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_mediump > aligned_mediump_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_mediump > aligned_mediump_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef aligned_highp_uvec1 aligned_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec2 aligned_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec3 aligned_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec4 aligned_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_vec1 aligned_vec1
 1 component vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec2 aligned_vec2
 2 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec3 aligned_vec3
 3 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec4 aligned_vec4
 4 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef packed_highp_bvec1 packed_bvec1
 1 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec2 packed_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec3 packed_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec4 packed_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_dmat2 packed_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x2 packed_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x3 packed_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x4 packed_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3 packed_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x2 packed_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x3 packed_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x4 packed_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4 packed_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x2 packed_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x3 packed_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x4 packed_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec1 packed_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec2 packed_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec3 packed_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec4 packed_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef vec< 1, bool, packed_highp > packed_highp_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_highp > packed_highp_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_highp > packed_highp_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_highp > packed_highp_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_highp > packed_highp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_highp > packed_highp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_highp > packed_highp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_highp > packed_highp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_highp > packed_highp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_highp > packed_highp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_highp > packed_highp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_highp > packed_highp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_highp > packed_highp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_highp > packed_highp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_highp > packed_highp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_highp > packed_highp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_highp > packed_highp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_highp > packed_highp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_highp > packed_highp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_highp > packed_highp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_highp > packed_highp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_highp > packed_highp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_highp > packed_highp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_highp > packed_highp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_highp > packed_highp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_highp > packed_highp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_highp > packed_highp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_highp > packed_highp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_highp > packed_highp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_highp > packed_highp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_highp > packed_highp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_highp > packed_highp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef packed_highp_ivec1 packed_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec2 packed_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec3 packed_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec4 packed_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 1, bool, packed_lowp > packed_lowp_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_lowp > packed_lowp_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_lowp > packed_lowp_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_lowp > packed_lowp_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_lowp > packed_lowp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_lowp > packed_lowp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_lowp > packed_lowp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_lowp > packed_lowp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_lowp > packed_lowp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_lowp > packed_lowp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_lowp > packed_lowp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_lowp > packed_lowp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_lowp > packed_lowp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_lowp > packed_lowp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_lowp > packed_lowp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_lowp > packed_lowp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_lowp > packed_lowp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_lowp > packed_lowp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_lowp > packed_lowp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_lowp > packed_lowp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef packed_highp_mat2 packed_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x2 packed_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x3 packed_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x4 packed_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3 packed_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x2 packed_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x3 packed_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x4 packed_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4 packed_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x2 packed_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x3 packed_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x4 packed_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef vec< 1, bool, packed_mediump > packed_mediump_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_mediump > packed_mediump_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_mediump > packed_mediump_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_mediump > packed_mediump_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_mediump > packed_mediump_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_mediump > packed_mediump_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_mediump > packed_mediump_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_mediump > packed_mediump_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_mediump > packed_mediump_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_mediump > packed_mediump_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_mediump > packed_mediump_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_mediump > packed_mediump_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_mediump > packed_mediump_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_mediump > packed_mediump_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_mediump > packed_mediump_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_mediump > packed_mediump_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_mediump > packed_mediump_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_mediump > packed_mediump_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_mediump > packed_mediump_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_mediump > packed_mediump_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef packed_highp_uvec1 packed_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec2 packed_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec3 packed_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec4 packed_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_vec1 packed_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec2 packed_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec3 packed_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec4 packed_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers.
 
+

Detailed Description

+

GLM_GTC_type_aligned

+
See also
Core features (dependence)
+ +

Definition in file gtc/type_aligned.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00161_source.html b/external/include/glm-0.9.9.8/doc/api/a00161_source.html index 5c5bb8b480..e3fac6e14c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00161_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00161_source.html @@ -1,1401 +1,1401 @@ - - - - - - -0.9.9 API documentation: type_aligned.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtc/type_aligned.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #if (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)
-
16 # error "GLM: Aligned gentypes require to enable C++ language extensions. Define GLM_FORCE_ALIGNED_GENTYPES before including GLM headers to use aligned types."
-
17 #endif
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # pragma message("GLM: GLM_GTC_type_aligned extension included")
-
21 #endif
-
22 
-
23 #include "../mat4x4.hpp"
-
24 #include "../mat4x3.hpp"
-
25 #include "../mat4x2.hpp"
-
26 #include "../mat3x4.hpp"
-
27 #include "../mat3x3.hpp"
-
28 #include "../mat3x2.hpp"
-
29 #include "../mat2x4.hpp"
-
30 #include "../mat2x3.hpp"
-
31 #include "../mat2x2.hpp"
-
32 #include "../gtc/vec1.hpp"
-
33 #include "../vec2.hpp"
-
34 #include "../vec3.hpp"
-
35 #include "../vec4.hpp"
-
36 
-
37 namespace glm
-
38 {
-
41 
-
42  // -- *vec1 --
-
43 
-
45  typedef vec<1, float, aligned_highp> aligned_highp_vec1;
-
46 
-
48  typedef vec<1, float, aligned_mediump> aligned_mediump_vec1;
-
49 
-
51  typedef vec<1, float, aligned_lowp> aligned_lowp_vec1;
-
52 
-
54  typedef vec<1, double, aligned_highp> aligned_highp_dvec1;
-
55 
-
57  typedef vec<1, double, aligned_mediump> aligned_mediump_dvec1;
-
58 
-
60  typedef vec<1, double, aligned_lowp> aligned_lowp_dvec1;
-
61 
-
63  typedef vec<1, int, aligned_highp> aligned_highp_ivec1;
-
64 
-
66  typedef vec<1, int, aligned_mediump> aligned_mediump_ivec1;
-
67 
-
69  typedef vec<1, int, aligned_lowp> aligned_lowp_ivec1;
-
70 
-
72  typedef vec<1, uint, aligned_highp> aligned_highp_uvec1;
-
73 
-
75  typedef vec<1, uint, aligned_mediump> aligned_mediump_uvec1;
-
76 
-
78  typedef vec<1, uint, aligned_lowp> aligned_lowp_uvec1;
-
79 
-
81  typedef vec<1, bool, aligned_highp> aligned_highp_bvec1;
-
82 
-
84  typedef vec<1, bool, aligned_mediump> aligned_mediump_bvec1;
-
85 
-
87  typedef vec<1, bool, aligned_lowp> aligned_lowp_bvec1;
-
88 
-
90  typedef vec<1, float, packed_highp> packed_highp_vec1;
-
91 
-
93  typedef vec<1, float, packed_mediump> packed_mediump_vec1;
-
94 
-
96  typedef vec<1, float, packed_lowp> packed_lowp_vec1;
-
97 
-
99  typedef vec<1, double, packed_highp> packed_highp_dvec1;
-
100 
-
102  typedef vec<1, double, packed_mediump> packed_mediump_dvec1;
-
103 
-
105  typedef vec<1, double, packed_lowp> packed_lowp_dvec1;
-
106 
-
108  typedef vec<1, int, packed_highp> packed_highp_ivec1;
-
109 
-
111  typedef vec<1, int, packed_mediump> packed_mediump_ivec1;
-
112 
-
114  typedef vec<1, int, packed_lowp> packed_lowp_ivec1;
-
115 
-
117  typedef vec<1, uint, packed_highp> packed_highp_uvec1;
-
118 
-
120  typedef vec<1, uint, packed_mediump> packed_mediump_uvec1;
-
121 
-
123  typedef vec<1, uint, packed_lowp> packed_lowp_uvec1;
-
124 
-
126  typedef vec<1, bool, packed_highp> packed_highp_bvec1;
-
127 
-
129  typedef vec<1, bool, packed_mediump> packed_mediump_bvec1;
-
130 
-
132  typedef vec<1, bool, packed_lowp> packed_lowp_bvec1;
-
133 
-
134  // -- *vec2 --
-
135 
-
137  typedef vec<2, float, aligned_highp> aligned_highp_vec2;
-
138 
-
140  typedef vec<2, float, aligned_mediump> aligned_mediump_vec2;
-
141 
-
143  typedef vec<2, float, aligned_lowp> aligned_lowp_vec2;
-
144 
-
146  typedef vec<2, double, aligned_highp> aligned_highp_dvec2;
-
147 
-
149  typedef vec<2, double, aligned_mediump> aligned_mediump_dvec2;
-
150 
-
152  typedef vec<2, double, aligned_lowp> aligned_lowp_dvec2;
-
153 
-
155  typedef vec<2, int, aligned_highp> aligned_highp_ivec2;
-
156 
-
158  typedef vec<2, int, aligned_mediump> aligned_mediump_ivec2;
-
159 
-
161  typedef vec<2, int, aligned_lowp> aligned_lowp_ivec2;
-
162 
-
164  typedef vec<2, uint, aligned_highp> aligned_highp_uvec2;
-
165 
-
167  typedef vec<2, uint, aligned_mediump> aligned_mediump_uvec2;
-
168 
-
170  typedef vec<2, uint, aligned_lowp> aligned_lowp_uvec2;
-
171 
-
173  typedef vec<2, bool, aligned_highp> aligned_highp_bvec2;
-
174 
-
176  typedef vec<2, bool, aligned_mediump> aligned_mediump_bvec2;
-
177 
-
179  typedef vec<2, bool, aligned_lowp> aligned_lowp_bvec2;
-
180 
-
182  typedef vec<2, float, packed_highp> packed_highp_vec2;
-
183 
-
185  typedef vec<2, float, packed_mediump> packed_mediump_vec2;
-
186 
-
188  typedef vec<2, float, packed_lowp> packed_lowp_vec2;
-
189 
-
191  typedef vec<2, double, packed_highp> packed_highp_dvec2;
-
192 
-
194  typedef vec<2, double, packed_mediump> packed_mediump_dvec2;
-
195 
-
197  typedef vec<2, double, packed_lowp> packed_lowp_dvec2;
-
198 
-
200  typedef vec<2, int, packed_highp> packed_highp_ivec2;
-
201 
-
203  typedef vec<2, int, packed_mediump> packed_mediump_ivec2;
-
204 
-
206  typedef vec<2, int, packed_lowp> packed_lowp_ivec2;
-
207 
-
209  typedef vec<2, uint, packed_highp> packed_highp_uvec2;
-
210 
-
212  typedef vec<2, uint, packed_mediump> packed_mediump_uvec2;
-
213 
-
215  typedef vec<2, uint, packed_lowp> packed_lowp_uvec2;
-
216 
-
218  typedef vec<2, bool, packed_highp> packed_highp_bvec2;
-
219 
-
221  typedef vec<2, bool, packed_mediump> packed_mediump_bvec2;
-
222 
-
224  typedef vec<2, bool, packed_lowp> packed_lowp_bvec2;
-
225 
-
226  // -- *vec3 --
-
227 
-
229  typedef vec<3, float, aligned_highp> aligned_highp_vec3;
-
230 
-
232  typedef vec<3, float, aligned_mediump> aligned_mediump_vec3;
-
233 
-
235  typedef vec<3, float, aligned_lowp> aligned_lowp_vec3;
-
236 
-
238  typedef vec<3, double, aligned_highp> aligned_highp_dvec3;
-
239 
-
241  typedef vec<3, double, aligned_mediump> aligned_mediump_dvec3;
-
242 
-
244  typedef vec<3, double, aligned_lowp> aligned_lowp_dvec3;
-
245 
-
247  typedef vec<3, int, aligned_highp> aligned_highp_ivec3;
-
248 
-
250  typedef vec<3, int, aligned_mediump> aligned_mediump_ivec3;
-
251 
-
253  typedef vec<3, int, aligned_lowp> aligned_lowp_ivec3;
-
254 
-
256  typedef vec<3, uint, aligned_highp> aligned_highp_uvec3;
-
257 
-
259  typedef vec<3, uint, aligned_mediump> aligned_mediump_uvec3;
-
260 
-
262  typedef vec<3, uint, aligned_lowp> aligned_lowp_uvec3;
-
263 
-
265  typedef vec<3, bool, aligned_highp> aligned_highp_bvec3;
-
266 
-
268  typedef vec<3, bool, aligned_mediump> aligned_mediump_bvec3;
-
269 
-
271  typedef vec<3, bool, aligned_lowp> aligned_lowp_bvec3;
-
272 
-
274  typedef vec<3, float, packed_highp> packed_highp_vec3;
-
275 
-
277  typedef vec<3, float, packed_mediump> packed_mediump_vec3;
-
278 
-
280  typedef vec<3, float, packed_lowp> packed_lowp_vec3;
-
281 
-
283  typedef vec<3, double, packed_highp> packed_highp_dvec3;
-
284 
-
286  typedef vec<3, double, packed_mediump> packed_mediump_dvec3;
-
287 
-
289  typedef vec<3, double, packed_lowp> packed_lowp_dvec3;
-
290 
-
292  typedef vec<3, int, packed_highp> packed_highp_ivec3;
-
293 
-
295  typedef vec<3, int, packed_mediump> packed_mediump_ivec3;
-
296 
-
298  typedef vec<3, int, packed_lowp> packed_lowp_ivec3;
-
299 
-
301  typedef vec<3, uint, packed_highp> packed_highp_uvec3;
-
302 
-
304  typedef vec<3, uint, packed_mediump> packed_mediump_uvec3;
-
305 
-
307  typedef vec<3, uint, packed_lowp> packed_lowp_uvec3;
-
308 
-
310  typedef vec<3, bool, packed_highp> packed_highp_bvec3;
-
311 
-
313  typedef vec<3, bool, packed_mediump> packed_mediump_bvec3;
-
314 
-
316  typedef vec<3, bool, packed_lowp> packed_lowp_bvec3;
-
317 
-
318  // -- *vec4 --
-
319 
-
321  typedef vec<4, float, aligned_highp> aligned_highp_vec4;
-
322 
-
324  typedef vec<4, float, aligned_mediump> aligned_mediump_vec4;
-
325 
-
327  typedef vec<4, float, aligned_lowp> aligned_lowp_vec4;
-
328 
-
330  typedef vec<4, double, aligned_highp> aligned_highp_dvec4;
-
331 
-
333  typedef vec<4, double, aligned_mediump> aligned_mediump_dvec4;
-
334 
-
336  typedef vec<4, double, aligned_lowp> aligned_lowp_dvec4;
-
337 
-
339  typedef vec<4, int, aligned_highp> aligned_highp_ivec4;
-
340 
-
342  typedef vec<4, int, aligned_mediump> aligned_mediump_ivec4;
-
343 
-
345  typedef vec<4, int, aligned_lowp> aligned_lowp_ivec4;
-
346 
-
348  typedef vec<4, uint, aligned_highp> aligned_highp_uvec4;
-
349 
-
351  typedef vec<4, uint, aligned_mediump> aligned_mediump_uvec4;
-
352 
-
354  typedef vec<4, uint, aligned_lowp> aligned_lowp_uvec4;
-
355 
-
357  typedef vec<4, bool, aligned_highp> aligned_highp_bvec4;
-
358 
-
360  typedef vec<4, bool, aligned_mediump> aligned_mediump_bvec4;
-
361 
-
363  typedef vec<4, bool, aligned_lowp> aligned_lowp_bvec4;
-
364 
-
366  typedef vec<4, float, packed_highp> packed_highp_vec4;
-
367 
-
369  typedef vec<4, float, packed_mediump> packed_mediump_vec4;
-
370 
-
372  typedef vec<4, float, packed_lowp> packed_lowp_vec4;
-
373 
-
375  typedef vec<4, double, packed_highp> packed_highp_dvec4;
-
376 
-
378  typedef vec<4, double, packed_mediump> packed_mediump_dvec4;
-
379 
-
381  typedef vec<4, double, packed_lowp> packed_lowp_dvec4;
-
382 
-
384  typedef vec<4, int, packed_highp> packed_highp_ivec4;
-
385 
-
387  typedef vec<4, int, packed_mediump> packed_mediump_ivec4;
-
388 
-
390  typedef vec<4, int, packed_lowp> packed_lowp_ivec4;
-
391 
-
393  typedef vec<4, uint, packed_highp> packed_highp_uvec4;
-
394 
-
396  typedef vec<4, uint, packed_mediump> packed_mediump_uvec4;
-
397 
-
399  typedef vec<4, uint, packed_lowp> packed_lowp_uvec4;
-
400 
-
402  typedef vec<4, bool, packed_highp> packed_highp_bvec4;
-
403 
-
405  typedef vec<4, bool, packed_mediump> packed_mediump_bvec4;
-
406 
-
408  typedef vec<4, bool, packed_lowp> packed_lowp_bvec4;
-
409 
-
410  // -- *mat2 --
-
411 
-
413  typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2;
-
414 
-
416  typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2;
-
417 
-
419  typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2;
-
420 
-
422  typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2;
-
423 
-
425  typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2;
-
426 
-
428  typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2;
-
429 
-
431  typedef mat<2, 2, float, packed_highp> packed_highp_mat2;
-
432 
-
434  typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2;
-
435 
-
437  typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2;
-
438 
-
440  typedef mat<2, 2, double, packed_highp> packed_highp_dmat2;
-
441 
-
443  typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2;
-
444 
-
446  typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2;
-
447 
-
448  // -- *mat3 --
-
449 
-
451  typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3;
-
452 
-
454  typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3;
-
455 
-
457  typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3;
-
458 
-
460  typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3;
-
461 
-
463  typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3;
-
464 
-
466  typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3;
-
467 
-
469  typedef mat<3, 3, float, packed_highp> packed_highp_mat3;
-
470 
-
472  typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3;
-
473 
-
475  typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3;
-
476 
-
478  typedef mat<3, 3, double, packed_highp> packed_highp_dmat3;
-
479 
-
481  typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3;
-
482 
-
484  typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3;
-
485 
-
486  // -- *mat4 --
-
487 
-
489  typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4;
-
490 
-
492  typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4;
-
493 
-
495  typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4;
-
496 
-
498  typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4;
-
499 
-
501  typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4;
-
502 
-
504  typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4;
-
505 
-
507  typedef mat<4, 4, float, packed_highp> packed_highp_mat4;
-
508 
-
510  typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4;
-
511 
-
513  typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4;
-
514 
-
516  typedef mat<4, 4, double, packed_highp> packed_highp_dmat4;
-
517 
-
519  typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4;
-
520 
-
522  typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4;
-
523 
-
524  // -- *mat2x2 --
-
525 
-
527  typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2x2;
-
528 
-
530  typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2x2;
-
531 
-
533  typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2x2;
-
534 
-
536  typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2x2;
-
537 
-
539  typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2x2;
-
540 
-
542  typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2x2;
-
543 
-
545  typedef mat<2, 2, float, packed_highp> packed_highp_mat2x2;
-
546 
-
548  typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2x2;
-
549 
-
551  typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2x2;
-
552 
-
554  typedef mat<2, 2, double, packed_highp> packed_highp_dmat2x2;
-
555 
-
557  typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2x2;
-
558 
-
560  typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2x2;
-
561 
-
562  // -- *mat2x3 --
-
563 
-
565  typedef mat<2, 3, float, aligned_highp> aligned_highp_mat2x3;
-
566 
-
568  typedef mat<2, 3, float, aligned_mediump> aligned_mediump_mat2x3;
-
569 
-
571  typedef mat<2, 3, float, aligned_lowp> aligned_lowp_mat2x3;
-
572 
-
574  typedef mat<2, 3, double, aligned_highp> aligned_highp_dmat2x3;
-
575 
-
577  typedef mat<2, 3, double, aligned_mediump> aligned_mediump_dmat2x3;
-
578 
-
580  typedef mat<2, 3, double, aligned_lowp> aligned_lowp_dmat2x3;
-
581 
-
583  typedef mat<2, 3, float, packed_highp> packed_highp_mat2x3;
-
584 
-
586  typedef mat<2, 3, float, packed_mediump> packed_mediump_mat2x3;
-
587 
-
589  typedef mat<2, 3, float, packed_lowp> packed_lowp_mat2x3;
-
590 
-
592  typedef mat<2, 3, double, packed_highp> packed_highp_dmat2x3;
-
593 
-
595  typedef mat<2, 3, double, packed_mediump> packed_mediump_dmat2x3;
-
596 
-
598  typedef mat<2, 3, double, packed_lowp> packed_lowp_dmat2x3;
-
599 
-
600  // -- *mat2x4 --
-
601 
-
603  typedef mat<2, 4, float, aligned_highp> aligned_highp_mat2x4;
-
604 
-
606  typedef mat<2, 4, float, aligned_mediump> aligned_mediump_mat2x4;
-
607 
-
609  typedef mat<2, 4, float, aligned_lowp> aligned_lowp_mat2x4;
-
610 
-
612  typedef mat<2, 4, double, aligned_highp> aligned_highp_dmat2x4;
-
613 
-
615  typedef mat<2, 4, double, aligned_mediump> aligned_mediump_dmat2x4;
-
616 
-
618  typedef mat<2, 4, double, aligned_lowp> aligned_lowp_dmat2x4;
-
619 
-
621  typedef mat<2, 4, float, packed_highp> packed_highp_mat2x4;
-
622 
-
624  typedef mat<2, 4, float, packed_mediump> packed_mediump_mat2x4;
-
625 
-
627  typedef mat<2, 4, float, packed_lowp> packed_lowp_mat2x4;
-
628 
-
630  typedef mat<2, 4, double, packed_highp> packed_highp_dmat2x4;
-
631 
-
633  typedef mat<2, 4, double, packed_mediump> packed_mediump_dmat2x4;
-
634 
-
636  typedef mat<2, 4, double, packed_lowp> packed_lowp_dmat2x4;
-
637 
-
638  // -- *mat3x2 --
-
639 
-
641  typedef mat<3, 2, float, aligned_highp> aligned_highp_mat3x2;
-
642 
-
644  typedef mat<3, 2, float, aligned_mediump> aligned_mediump_mat3x2;
-
645 
-
647  typedef mat<3, 2, float, aligned_lowp> aligned_lowp_mat3x2;
-
648 
-
650  typedef mat<3, 2, double, aligned_highp> aligned_highp_dmat3x2;
-
651 
-
653  typedef mat<3, 2, double, aligned_mediump> aligned_mediump_dmat3x2;
-
654 
-
656  typedef mat<3, 2, double, aligned_lowp> aligned_lowp_dmat3x2;
-
657 
-
659  typedef mat<3, 2, float, packed_highp> packed_highp_mat3x2;
-
660 
-
662  typedef mat<3, 2, float, packed_mediump> packed_mediump_mat3x2;
-
663 
-
665  typedef mat<3, 2, float, packed_lowp> packed_lowp_mat3x2;
-
666 
-
668  typedef mat<3, 2, double, packed_highp> packed_highp_dmat3x2;
-
669 
-
671  typedef mat<3, 2, double, packed_mediump> packed_mediump_dmat3x2;
-
672 
-
674  typedef mat<3, 2, double, packed_lowp> packed_lowp_dmat3x2;
-
675 
-
676  // -- *mat3x3 --
-
677 
-
679  typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3x3;
-
680 
-
682  typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3x3;
-
683 
-
685  typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3x3;
-
686 
-
688  typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3x3;
-
689 
-
691  typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3x3;
-
692 
-
694  typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3x3;
-
695 
-
697  typedef mat<3, 3, float, packed_highp> packed_highp_mat3x3;
-
698 
-
700  typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3x3;
-
701 
-
703  typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3x3;
-
704 
-
706  typedef mat<3, 3, double, packed_highp> packed_highp_dmat3x3;
-
707 
-
709  typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3x3;
-
710 
-
712  typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3x3;
-
713 
-
714  // -- *mat3x4 --
-
715 
-
717  typedef mat<3, 4, float, aligned_highp> aligned_highp_mat3x4;
-
718 
-
720  typedef mat<3, 4, float, aligned_mediump> aligned_mediump_mat3x4;
-
721 
-
723  typedef mat<3, 4, float, aligned_lowp> aligned_lowp_mat3x4;
-
724 
-
726  typedef mat<3, 4, double, aligned_highp> aligned_highp_dmat3x4;
-
727 
-
729  typedef mat<3, 4, double, aligned_mediump> aligned_mediump_dmat3x4;
-
730 
-
732  typedef mat<3, 4, double, aligned_lowp> aligned_lowp_dmat3x4;
-
733 
-
735  typedef mat<3, 4, float, packed_highp> packed_highp_mat3x4;
-
736 
-
738  typedef mat<3, 4, float, packed_mediump> packed_mediump_mat3x4;
-
739 
-
741  typedef mat<3, 4, float, packed_lowp> packed_lowp_mat3x4;
-
742 
-
744  typedef mat<3, 4, double, packed_highp> packed_highp_dmat3x4;
-
745 
-
747  typedef mat<3, 4, double, packed_mediump> packed_mediump_dmat3x4;
-
748 
-
750  typedef mat<3, 4, double, packed_lowp> packed_lowp_dmat3x4;
-
751 
-
752  // -- *mat4x2 --
-
753 
-
755  typedef mat<4, 2, float, aligned_highp> aligned_highp_mat4x2;
-
756 
-
758  typedef mat<4, 2, float, aligned_mediump> aligned_mediump_mat4x2;
-
759 
-
761  typedef mat<4, 2, float, aligned_lowp> aligned_lowp_mat4x2;
-
762 
-
764  typedef mat<4, 2, double, aligned_highp> aligned_highp_dmat4x2;
-
765 
-
767  typedef mat<4, 2, double, aligned_mediump> aligned_mediump_dmat4x2;
-
768 
-
770  typedef mat<4, 2, double, aligned_lowp> aligned_lowp_dmat4x2;
-
771 
-
773  typedef mat<4, 2, float, packed_highp> packed_highp_mat4x2;
-
774 
-
776  typedef mat<4, 2, float, packed_mediump> packed_mediump_mat4x2;
-
777 
-
779  typedef mat<4, 2, float, packed_lowp> packed_lowp_mat4x2;
-
780 
-
782  typedef mat<4, 2, double, packed_highp> packed_highp_dmat4x2;
-
783 
-
785  typedef mat<4, 2, double, packed_mediump> packed_mediump_dmat4x2;
-
786 
-
788  typedef mat<4, 2, double, packed_lowp> packed_lowp_dmat4x2;
-
789 
-
790  // -- *mat4x3 --
-
791 
-
793  typedef mat<4, 3, float, aligned_highp> aligned_highp_mat4x3;
-
794 
-
796  typedef mat<4, 3, float, aligned_mediump> aligned_mediump_mat4x3;
-
797 
-
799  typedef mat<4, 3, float, aligned_lowp> aligned_lowp_mat4x3;
-
800 
-
802  typedef mat<4, 3, double, aligned_highp> aligned_highp_dmat4x3;
-
803 
-
805  typedef mat<4, 3, double, aligned_mediump> aligned_mediump_dmat4x3;
-
806 
-
808  typedef mat<4, 3, double, aligned_lowp> aligned_lowp_dmat4x3;
-
809 
-
811  typedef mat<4, 3, float, packed_highp> packed_highp_mat4x3;
-
812 
-
814  typedef mat<4, 3, float, packed_mediump> packed_mediump_mat4x3;
-
815 
-
817  typedef mat<4, 3, float, packed_lowp> packed_lowp_mat4x3;
-
818 
-
820  typedef mat<4, 3, double, packed_highp> packed_highp_dmat4x3;
-
821 
-
823  typedef mat<4, 3, double, packed_mediump> packed_mediump_dmat4x3;
-
824 
-
826  typedef mat<4, 3, double, packed_lowp> packed_lowp_dmat4x3;
-
827 
-
828  // -- *mat4x4 --
-
829 
-
831  typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4x4;
-
832 
-
834  typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4x4;
-
835 
-
837  typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4x4;
-
838 
-
840  typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4x4;
-
841 
-
843  typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4x4;
-
844 
-
846  typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4x4;
-
847 
-
849  typedef mat<4, 4, float, packed_highp> packed_highp_mat4x4;
-
850 
-
852  typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4x4;
-
853 
-
855  typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4x4;
-
856 
-
858  typedef mat<4, 4, double, packed_highp> packed_highp_dmat4x4;
-
859 
-
861  typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4x4;
-
862 
-
864  typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4x4;
-
865 
-
866  // -- default --
-
867 
-
868 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
869  typedef aligned_lowp_vec1 aligned_vec1;
-
870  typedef aligned_lowp_vec2 aligned_vec2;
-
871  typedef aligned_lowp_vec3 aligned_vec3;
-
872  typedef aligned_lowp_vec4 aligned_vec4;
-
873  typedef packed_lowp_vec1 packed_vec1;
-
874  typedef packed_lowp_vec2 packed_vec2;
-
875  typedef packed_lowp_vec3 packed_vec3;
-
876  typedef packed_lowp_vec4 packed_vec4;
-
877 
-
878  typedef aligned_lowp_mat2 aligned_mat2;
-
879  typedef aligned_lowp_mat3 aligned_mat3;
-
880  typedef aligned_lowp_mat4 aligned_mat4;
-
881  typedef packed_lowp_mat2 packed_mat2;
-
882  typedef packed_lowp_mat3 packed_mat3;
-
883  typedef packed_lowp_mat4 packed_mat4;
-
884 
-
885  typedef aligned_lowp_mat2x2 aligned_mat2x2;
-
886  typedef aligned_lowp_mat2x3 aligned_mat2x3;
-
887  typedef aligned_lowp_mat2x4 aligned_mat2x4;
-
888  typedef aligned_lowp_mat3x2 aligned_mat3x2;
-
889  typedef aligned_lowp_mat3x3 aligned_mat3x3;
-
890  typedef aligned_lowp_mat3x4 aligned_mat3x4;
-
891  typedef aligned_lowp_mat4x2 aligned_mat4x2;
-
892  typedef aligned_lowp_mat4x3 aligned_mat4x3;
-
893  typedef aligned_lowp_mat4x4 aligned_mat4x4;
-
894  typedef packed_lowp_mat2x2 packed_mat2x2;
-
895  typedef packed_lowp_mat2x3 packed_mat2x3;
-
896  typedef packed_lowp_mat2x4 packed_mat2x4;
-
897  typedef packed_lowp_mat3x2 packed_mat3x2;
-
898  typedef packed_lowp_mat3x3 packed_mat3x3;
-
899  typedef packed_lowp_mat3x4 packed_mat3x4;
-
900  typedef packed_lowp_mat4x2 packed_mat4x2;
-
901  typedef packed_lowp_mat4x3 packed_mat4x3;
-
902  typedef packed_lowp_mat4x4 packed_mat4x4;
-
903 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
904  typedef aligned_mediump_vec1 aligned_vec1;
-
905  typedef aligned_mediump_vec2 aligned_vec2;
-
906  typedef aligned_mediump_vec3 aligned_vec3;
-
907  typedef aligned_mediump_vec4 aligned_vec4;
-
908  typedef packed_mediump_vec1 packed_vec1;
-
909  typedef packed_mediump_vec2 packed_vec2;
-
910  typedef packed_mediump_vec3 packed_vec3;
-
911  typedef packed_mediump_vec4 packed_vec4;
-
912 
-
913  typedef aligned_mediump_mat2 aligned_mat2;
-
914  typedef aligned_mediump_mat3 aligned_mat3;
-
915  typedef aligned_mediump_mat4 aligned_mat4;
-
916  typedef packed_mediump_mat2 packed_mat2;
-
917  typedef packed_mediump_mat3 packed_mat3;
-
918  typedef packed_mediump_mat4 packed_mat4;
-
919 
-
920  typedef aligned_mediump_mat2x2 aligned_mat2x2;
-
921  typedef aligned_mediump_mat2x3 aligned_mat2x3;
-
922  typedef aligned_mediump_mat2x4 aligned_mat2x4;
-
923  typedef aligned_mediump_mat3x2 aligned_mat3x2;
-
924  typedef aligned_mediump_mat3x3 aligned_mat3x3;
-
925  typedef aligned_mediump_mat3x4 aligned_mat3x4;
-
926  typedef aligned_mediump_mat4x2 aligned_mat4x2;
-
927  typedef aligned_mediump_mat4x3 aligned_mat4x3;
-
928  typedef aligned_mediump_mat4x4 aligned_mat4x4;
-
929  typedef packed_mediump_mat2x2 packed_mat2x2;
-
930  typedef packed_mediump_mat2x3 packed_mat2x3;
-
931  typedef packed_mediump_mat2x4 packed_mat2x4;
-
932  typedef packed_mediump_mat3x2 packed_mat3x2;
-
933  typedef packed_mediump_mat3x3 packed_mat3x3;
-
934  typedef packed_mediump_mat3x4 packed_mat3x4;
-
935  typedef packed_mediump_mat4x2 packed_mat4x2;
-
936  typedef packed_mediump_mat4x3 packed_mat4x3;
-
937  typedef packed_mediump_mat4x4 packed_mat4x4;
-
938 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
-
939  typedef aligned_highp_vec1 aligned_vec1;
-
941 
-
943  typedef aligned_highp_vec2 aligned_vec2;
-
944 
-
946  typedef aligned_highp_vec3 aligned_vec3;
-
947 
-
949  typedef aligned_highp_vec4 aligned_vec4;
-
950 
-
952  typedef packed_highp_vec1 packed_vec1;
-
953 
-
955  typedef packed_highp_vec2 packed_vec2;
-
956 
-
958  typedef packed_highp_vec3 packed_vec3;
-
959 
-
961  typedef packed_highp_vec4 packed_vec4;
-
962 
-
964  typedef aligned_highp_mat2 aligned_mat2;
-
965 
-
967  typedef aligned_highp_mat3 aligned_mat3;
-
968 
-
970  typedef aligned_highp_mat4 aligned_mat4;
-
971 
-
973  typedef packed_highp_mat2 packed_mat2;
-
974 
-
976  typedef packed_highp_mat3 packed_mat3;
-
977 
-
979  typedef packed_highp_mat4 packed_mat4;
-
980 
-
982  typedef aligned_highp_mat2x2 aligned_mat2x2;
-
983 
-
985  typedef aligned_highp_mat2x3 aligned_mat2x3;
-
986 
-
988  typedef aligned_highp_mat2x4 aligned_mat2x4;
-
989 
-
991  typedef aligned_highp_mat3x2 aligned_mat3x2;
-
992 
-
994  typedef aligned_highp_mat3x3 aligned_mat3x3;
-
995 
-
997  typedef aligned_highp_mat3x4 aligned_mat3x4;
-
998 
-
1000  typedef aligned_highp_mat4x2 aligned_mat4x2;
-
1001 
-
1003  typedef aligned_highp_mat4x3 aligned_mat4x3;
-
1004 
-
1006  typedef aligned_highp_mat4x4 aligned_mat4x4;
-
1007 
-
1009  typedef packed_highp_mat2x2 packed_mat2x2;
-
1010 
-
1012  typedef packed_highp_mat2x3 packed_mat2x3;
-
1013 
-
1015  typedef packed_highp_mat2x4 packed_mat2x4;
-
1016 
-
1018  typedef packed_highp_mat3x2 packed_mat3x2;
-
1019 
-
1021  typedef packed_highp_mat3x3 packed_mat3x3;
-
1022 
-
1024  typedef packed_highp_mat3x4 packed_mat3x4;
-
1025 
-
1027  typedef packed_highp_mat4x2 packed_mat4x2;
-
1028 
-
1030  typedef packed_highp_mat4x3 packed_mat4x3;
-
1031 
-
1033  typedef packed_highp_mat4x4 packed_mat4x4;
-
1034 #endif//GLM_PRECISION
-
1035 
-
1036 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
-
1037  typedef aligned_lowp_dvec1 aligned_dvec1;
-
1038  typedef aligned_lowp_dvec2 aligned_dvec2;
-
1039  typedef aligned_lowp_dvec3 aligned_dvec3;
-
1040  typedef aligned_lowp_dvec4 aligned_dvec4;
-
1041  typedef packed_lowp_dvec1 packed_dvec1;
-
1042  typedef packed_lowp_dvec2 packed_dvec2;
-
1043  typedef packed_lowp_dvec3 packed_dvec3;
-
1044  typedef packed_lowp_dvec4 packed_dvec4;
-
1045 
-
1046  typedef aligned_lowp_dmat2 aligned_dmat2;
-
1047  typedef aligned_lowp_dmat3 aligned_dmat3;
-
1048  typedef aligned_lowp_dmat4 aligned_dmat4;
-
1049  typedef packed_lowp_dmat2 packed_dmat2;
-
1050  typedef packed_lowp_dmat3 packed_dmat3;
-
1051  typedef packed_lowp_dmat4 packed_dmat4;
-
1052 
-
1053  typedef aligned_lowp_dmat2x2 aligned_dmat2x2;
-
1054  typedef aligned_lowp_dmat2x3 aligned_dmat2x3;
-
1055  typedef aligned_lowp_dmat2x4 aligned_dmat2x4;
-
1056  typedef aligned_lowp_dmat3x2 aligned_dmat3x2;
-
1057  typedef aligned_lowp_dmat3x3 aligned_dmat3x3;
-
1058  typedef aligned_lowp_dmat3x4 aligned_dmat3x4;
-
1059  typedef aligned_lowp_dmat4x2 aligned_dmat4x2;
-
1060  typedef aligned_lowp_dmat4x3 aligned_dmat4x3;
-
1061  typedef aligned_lowp_dmat4x4 aligned_dmat4x4;
-
1062  typedef packed_lowp_dmat2x2 packed_dmat2x2;
-
1063  typedef packed_lowp_dmat2x3 packed_dmat2x3;
-
1064  typedef packed_lowp_dmat2x4 packed_dmat2x4;
-
1065  typedef packed_lowp_dmat3x2 packed_dmat3x2;
-
1066  typedef packed_lowp_dmat3x3 packed_dmat3x3;
-
1067  typedef packed_lowp_dmat3x4 packed_dmat3x4;
-
1068  typedef packed_lowp_dmat4x2 packed_dmat4x2;
-
1069  typedef packed_lowp_dmat4x3 packed_dmat4x3;
-
1070  typedef packed_lowp_dmat4x4 packed_dmat4x4;
-
1071 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
-
1072  typedef aligned_mediump_dvec1 aligned_dvec1;
-
1073  typedef aligned_mediump_dvec2 aligned_dvec2;
-
1074  typedef aligned_mediump_dvec3 aligned_dvec3;
-
1075  typedef aligned_mediump_dvec4 aligned_dvec4;
-
1076  typedef packed_mediump_dvec1 packed_dvec1;
-
1077  typedef packed_mediump_dvec2 packed_dvec2;
-
1078  typedef packed_mediump_dvec3 packed_dvec3;
-
1079  typedef packed_mediump_dvec4 packed_dvec4;
-
1080 
-
1081  typedef aligned_mediump_dmat2 aligned_dmat2;
-
1082  typedef aligned_mediump_dmat3 aligned_dmat3;
-
1083  typedef aligned_mediump_dmat4 aligned_dmat4;
-
1084  typedef packed_mediump_dmat2 packed_dmat2;
-
1085  typedef packed_mediump_dmat3 packed_dmat3;
-
1086  typedef packed_mediump_dmat4 packed_dmat4;
-
1087 
-
1088  typedef aligned_mediump_dmat2x2 aligned_dmat2x2;
-
1089  typedef aligned_mediump_dmat2x3 aligned_dmat2x3;
-
1090  typedef aligned_mediump_dmat2x4 aligned_dmat2x4;
-
1091  typedef aligned_mediump_dmat3x2 aligned_dmat3x2;
-
1092  typedef aligned_mediump_dmat3x3 aligned_dmat3x3;
-
1093  typedef aligned_mediump_dmat3x4 aligned_dmat3x4;
-
1094  typedef aligned_mediump_dmat4x2 aligned_dmat4x2;
-
1095  typedef aligned_mediump_dmat4x3 aligned_dmat4x3;
-
1096  typedef aligned_mediump_dmat4x4 aligned_dmat4x4;
-
1097  typedef packed_mediump_dmat2x2 packed_dmat2x2;
-
1098  typedef packed_mediump_dmat2x3 packed_dmat2x3;
-
1099  typedef packed_mediump_dmat2x4 packed_dmat2x4;
-
1100  typedef packed_mediump_dmat3x2 packed_dmat3x2;
-
1101  typedef packed_mediump_dmat3x3 packed_dmat3x3;
-
1102  typedef packed_mediump_dmat3x4 packed_dmat3x4;
-
1103  typedef packed_mediump_dmat4x2 packed_dmat4x2;
-
1104  typedef packed_mediump_dmat4x3 packed_dmat4x3;
-
1105  typedef packed_mediump_dmat4x4 packed_dmat4x4;
-
1106 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
-
1107  typedef aligned_highp_dvec1 aligned_dvec1;
-
1109 
-
1111  typedef aligned_highp_dvec2 aligned_dvec2;
-
1112 
-
1114  typedef aligned_highp_dvec3 aligned_dvec3;
-
1115 
-
1117  typedef aligned_highp_dvec4 aligned_dvec4;
-
1118 
-
1120  typedef packed_highp_dvec1 packed_dvec1;
-
1121 
-
1123  typedef packed_highp_dvec2 packed_dvec2;
-
1124 
-
1126  typedef packed_highp_dvec3 packed_dvec3;
-
1127 
-
1129  typedef packed_highp_dvec4 packed_dvec4;
-
1130 
-
1132  typedef aligned_highp_dmat2 aligned_dmat2;
-
1133 
-
1135  typedef aligned_highp_dmat3 aligned_dmat3;
-
1136 
-
1138  typedef aligned_highp_dmat4 aligned_dmat4;
-
1139 
-
1141  typedef packed_highp_dmat2 packed_dmat2;
-
1142 
-
1144  typedef packed_highp_dmat3 packed_dmat3;
-
1145 
-
1147  typedef packed_highp_dmat4 packed_dmat4;
-
1148 
-
1150  typedef aligned_highp_dmat2x2 aligned_dmat2x2;
-
1151 
-
1153  typedef aligned_highp_dmat2x3 aligned_dmat2x3;
-
1154 
-
1156  typedef aligned_highp_dmat2x4 aligned_dmat2x4;
-
1157 
-
1159  typedef aligned_highp_dmat3x2 aligned_dmat3x2;
-
1160 
-
1162  typedef aligned_highp_dmat3x3 aligned_dmat3x3;
-
1163 
-
1165  typedef aligned_highp_dmat3x4 aligned_dmat3x4;
-
1166 
-
1168  typedef aligned_highp_dmat4x2 aligned_dmat4x2;
-
1169 
-
1171  typedef aligned_highp_dmat4x3 aligned_dmat4x3;
-
1172 
-
1174  typedef aligned_highp_dmat4x4 aligned_dmat4x4;
-
1175 
-
1177  typedef packed_highp_dmat2x2 packed_dmat2x2;
-
1178 
-
1180  typedef packed_highp_dmat2x3 packed_dmat2x3;
-
1181 
-
1183  typedef packed_highp_dmat2x4 packed_dmat2x4;
-
1184 
-
1186  typedef packed_highp_dmat3x2 packed_dmat3x2;
-
1187 
-
1189  typedef packed_highp_dmat3x3 packed_dmat3x3;
-
1190 
-
1192  typedef packed_highp_dmat3x4 packed_dmat3x4;
-
1193 
-
1195  typedef packed_highp_dmat4x2 packed_dmat4x2;
-
1196 
-
1198  typedef packed_highp_dmat4x3 packed_dmat4x3;
-
1199 
-
1201  typedef packed_highp_dmat4x4 packed_dmat4x4;
-
1202 #endif//GLM_PRECISION
-
1203 
-
1204 #if(defined(GLM_PRECISION_LOWP_INT))
-
1205  typedef aligned_lowp_ivec1 aligned_ivec1;
-
1206  typedef aligned_lowp_ivec2 aligned_ivec2;
-
1207  typedef aligned_lowp_ivec3 aligned_ivec3;
-
1208  typedef aligned_lowp_ivec4 aligned_ivec4;
-
1209 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
-
1210  typedef aligned_mediump_ivec1 aligned_ivec1;
-
1211  typedef aligned_mediump_ivec2 aligned_ivec2;
-
1212  typedef aligned_mediump_ivec3 aligned_ivec3;
-
1213  typedef aligned_mediump_ivec4 aligned_ivec4;
-
1214 #else //defined(GLM_PRECISION_HIGHP_INT)
-
1215  typedef aligned_highp_ivec1 aligned_ivec1;
-
1217 
-
1219  typedef aligned_highp_ivec2 aligned_ivec2;
-
1220 
-
1222  typedef aligned_highp_ivec3 aligned_ivec3;
-
1223 
-
1225  typedef aligned_highp_ivec4 aligned_ivec4;
-
1226 
-
1228  typedef packed_highp_ivec1 packed_ivec1;
-
1229 
-
1231  typedef packed_highp_ivec2 packed_ivec2;
-
1232 
-
1234  typedef packed_highp_ivec3 packed_ivec3;
-
1235 
-
1237  typedef packed_highp_ivec4 packed_ivec4;
-
1238 #endif//GLM_PRECISION
-
1239 
-
1240  // -- Unsigned integer definition --
-
1241 
-
1242 #if(defined(GLM_PRECISION_LOWP_UINT))
-
1243  typedef aligned_lowp_uvec1 aligned_uvec1;
-
1244  typedef aligned_lowp_uvec2 aligned_uvec2;
-
1245  typedef aligned_lowp_uvec3 aligned_uvec3;
-
1246  typedef aligned_lowp_uvec4 aligned_uvec4;
-
1247 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
-
1248  typedef aligned_mediump_uvec1 aligned_uvec1;
-
1249  typedef aligned_mediump_uvec2 aligned_uvec2;
-
1250  typedef aligned_mediump_uvec3 aligned_uvec3;
-
1251  typedef aligned_mediump_uvec4 aligned_uvec4;
-
1252 #else //defined(GLM_PRECISION_HIGHP_UINT)
-
1253  typedef aligned_highp_uvec1 aligned_uvec1;
-
1255 
-
1257  typedef aligned_highp_uvec2 aligned_uvec2;
-
1258 
-
1260  typedef aligned_highp_uvec3 aligned_uvec3;
-
1261 
-
1263  typedef aligned_highp_uvec4 aligned_uvec4;
-
1264 
-
1266  typedef packed_highp_uvec1 packed_uvec1;
-
1267 
-
1269  typedef packed_highp_uvec2 packed_uvec2;
-
1270 
-
1272  typedef packed_highp_uvec3 packed_uvec3;
-
1273 
-
1275  typedef packed_highp_uvec4 packed_uvec4;
-
1276 #endif//GLM_PRECISION
-
1277 
-
1278 #if(defined(GLM_PRECISION_LOWP_BOOL))
-
1279  typedef aligned_lowp_bvec1 aligned_bvec1;
-
1280  typedef aligned_lowp_bvec2 aligned_bvec2;
-
1281  typedef aligned_lowp_bvec3 aligned_bvec3;
-
1282  typedef aligned_lowp_bvec4 aligned_bvec4;
-
1283 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
-
1284  typedef aligned_mediump_bvec1 aligned_bvec1;
-
1285  typedef aligned_mediump_bvec2 aligned_bvec2;
-
1286  typedef aligned_mediump_bvec3 aligned_bvec3;
-
1287  typedef aligned_mediump_bvec4 aligned_bvec4;
-
1288 #else //defined(GLM_PRECISION_HIGHP_BOOL)
-
1289  typedef aligned_highp_bvec1 aligned_bvec1;
-
1291 
-
1293  typedef aligned_highp_bvec2 aligned_bvec2;
-
1294 
-
1296  typedef aligned_highp_bvec3 aligned_bvec3;
-
1297 
-
1299  typedef aligned_highp_bvec4 aligned_bvec4;
-
1300 
-
1302  typedef packed_highp_bvec1 packed_bvec1;
-
1303 
-
1305  typedef packed_highp_bvec2 packed_bvec2;
-
1306 
-
1308  typedef packed_highp_bvec3 packed_bvec3;
-
1309 
-
1311  typedef packed_highp_bvec4 packed_bvec4;
-
1312 #endif//GLM_PRECISION
-
1313 
-
1315 }//namespace glm
-
packed_highp_uvec3 packed_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
-
packed_highp_mat2x2 packed_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
-
mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
4 components vector aligned in memory of bool values.
-
vec< 4, double, packed_highp > packed_highp_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
-
packed_highp_dmat2x3 packed_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
-
vec< 3, bool, packed_lowp > packed_lowp_bvec3
3 components vector tightly packed in memory of bool values.
-
packed_highp_mat4 packed_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
-
aligned_highp_uvec2 aligned_uvec2
2 components vector aligned in memory of unsigned integer numbers.
-
vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
2 components vector aligned in memory of bool values.
-
vec< 3, int, packed_highp > packed_highp_ivec3
3 components vector tightly packed in memory of signed integer numbers.
-
mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
packed_highp_dmat2 packed_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 3, 3, double, packed_highp > packed_highp_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
vec< 2, int, aligned_mediump > aligned_mediump_ivec2
2 components vector aligned in memory of signed integer numbers.
-
mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
packed_highp_ivec3 packed_ivec3
3 components vector tightly packed in memory of signed integer numbers.
-
mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
packed_highp_mat2 packed_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
-
mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
vec< 2, float, aligned_mediump > aligned_mediump_vec2
2 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
-
mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
packed_highp_mat3 packed_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
-
packed_highp_dmat4 packed_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
-
packed_highp_vec4 packed_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers.
-
vec< 4, float, aligned_highp > aligned_highp_vec4
4 components vector aligned in memory of single-precision floating-point numbers using high precision...
-
mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
vec< 1, double, aligned_mediump > aligned_mediump_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using medium precisio...
-
mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
packed_highp_dvec3 packed_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers.
-
vec< 1, double, packed_mediump > packed_mediump_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using medium p...
-
packed_highp_uvec1 packed_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
-
mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
1 component vector aligned in memory of unsigned integer numbers.
-
mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
aligned_highp_ivec3 aligned_ivec3
3 components vector aligned in memory of signed integer numbers.
-
mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
packed_highp_vec2 packed_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers.
-
vec< 1, uint, packed_highp > packed_highp_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
-
mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 1, bool, packed_highp > packed_highp_bvec1
1 component vector tightly packed in memory of bool values.
-
aligned_highp_bvec4 aligned_bvec4
4 components vector aligned in memory of bool values.
-
aligned_highp_vec3 aligned_vec3
3 components vector aligned in memory of single-precision floating-point numbers. ...
-
mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
aligned_highp_uvec3 aligned_uvec3
3 components vector aligned in memory of unsigned integer numbers.
-
mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 3, 3, float, aligned_highp > aligned_highp_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
vec< 2, uint, packed_mediump > packed_mediump_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
-
vec< 3, float, aligned_highp > aligned_highp_vec3
3 components vector aligned in memory of single-precision floating-point numbers using high precision...
-
aligned_highp_mat4x3 aligned_mat4x3
4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
vec< 4, int, aligned_lowp > aligned_lowp_ivec4
4 components vector aligned in memory of signed integer numbers.
-
mat< 2, 2, float, aligned_highp > aligned_highp_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
packed_highp_vec1 packed_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers.
-
vec< 2, int, aligned_lowp > aligned_lowp_ivec2
2 components vector aligned in memory of signed integer numbers.
-
mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
aligned_highp_dvec3 aligned_dvec3
3 components vector aligned in memory of double-precision floating-point numbers. ...
-
vec< 1, float, packed_lowp > packed_lowp_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using low prec...
-
vec< 3, bool, packed_mediump > packed_mediump_bvec3
3 components vector tightly packed in memory of bool values.
-
aligned_highp_dvec1 aligned_dvec1
1 component vector aligned in memory of double-precision floating-point numbers.
-
packed_highp_uvec4 packed_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
-
packed_highp_dmat3 packed_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
-
vec< 2, float, aligned_highp > aligned_highp_vec2
2 components vector aligned in memory of single-precision floating-point numbers using high precision...
-
mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
3 components vector aligned in memory of unsigned integer numbers.
-
vec< 1, double, aligned_lowp > aligned_lowp_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using low precision a...
-
vec< 1, float, aligned_mediump > aligned_mediump_vec1
1 component vector aligned in memory of single-precision floating-point numbers using medium precisio...
-
mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 4, 2, float, packed_highp > packed_highp_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
vec< 3, double, aligned_lowp > aligned_lowp_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using low precision ...
-
mat< 2, 2, float, packed_mediump > packed_mediump_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
packed_highp_mat3x3 packed_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
-
vec< 1, double, packed_highp > packed_highp_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using high pre...
-
mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 3, 3, float, packed_mediump > packed_mediump_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
packed_highp_dmat4x4 packed_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 4, 4, float, packed_lowp > packed_lowp_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 1, float, packed_highp > packed_highp_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using high pre...
-
mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 2, 2, float, packed_highp > packed_highp_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
2 components vector aligned in memory of bool values.
-
mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
vec< 4, float, packed_mediump > packed_mediump_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
-
aligned_highp_dmat4x2 aligned_dmat4x2
4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
mat< 4, 3, float, packed_highp > packed_highp_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
1 component vector aligned in memory of bool values.
-
aligned_highp_mat2 aligned_mat2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
vec< 3, int, aligned_mediump > aligned_mediump_ivec3
3 components vector aligned in memory of signed integer numbers.
-
aligned_highp_bvec3 aligned_bvec3
3 components vector aligned in memory of bool values.
-
packed_highp_uvec2 packed_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
-
vec< 4, double, aligned_lowp > aligned_lowp_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using low precision ...
-
mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
vec< 4, uint, aligned_highp > aligned_highp_uvec4
4 components vector aligned in memory of unsigned integer numbers.
-
mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 2, float, aligned_lowp > aligned_lowp_vec2
2 components vector aligned in memory of single-precision floating-point numbers using low precision ...
-
vec< 1, int, packed_lowp > packed_lowp_ivec1
1 component vector tightly packed in memory of signed integer numbers.
-
vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
3 components vector aligned in memory of bool values.
-
mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
mat< 4, 4, double, packed_highp > packed_highp_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
vec< 3, uint, packed_highp > packed_highp_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
-
aligned_highp_dmat2x2 aligned_dmat2x2
2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
mat< 3, 4, float, packed_highp > packed_highp_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
packed_highp_mat3x4 packed_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
-
mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
vec< 1, uint, packed_mediump > packed_mediump_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
-
mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
packed_highp_mat4x3 packed_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
-
vec< 4, int, packed_lowp > packed_lowp_ivec4
4 components vector tightly packed in memory of signed integer numbers.
-
vec< 4, int, packed_mediump > packed_mediump_ivec4
4 components vector tightly packed in memory of signed integer numbers.
-
vec< 2, double, aligned_mediump > aligned_mediump_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
-
packed_highp_ivec2 packed_ivec2
2 components vector tightly packed in memory of signed integer numbers.
-
aligned_highp_ivec1 aligned_ivec1
1 component vector aligned in memory of signed integer numbers.
-
vec< 3, int, packed_mediump > packed_mediump_ivec3
3 components vector tightly packed in memory of signed integer numbers.
-
vec< 3, uint, packed_lowp > packed_lowp_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
-
packed_highp_dmat4x2 packed_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
-
vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
4 components vector aligned in memory of bool values.
-
vec< 2, bool, aligned_highp > aligned_highp_bvec2
2 components vector aligned in memory of bool values.
-
vec< 4, float, packed_lowp > packed_lowp_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
-
vec< 4, double, aligned_highp > aligned_highp_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using high precision...
-
mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
vec< 4, bool, packed_lowp > packed_lowp_bvec4
4 components vector tightly packed in memory of bool values.
-
vec< 2, double, packed_mediump > packed_mediump_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
-
vec< 2, double, aligned_highp > aligned_highp_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using high precision...
-
mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
aligned_highp_mat2x3 aligned_mat2x3
2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 2, 2, float, packed_lowp > packed_lowp_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 4, int, aligned_mediump > aligned_mediump_ivec4
4 components vector aligned in memory of signed integer numbers.
-
vec< 2, bool, packed_lowp > packed_lowp_bvec2
2 components vector tightly packed in memory of bool values.
-
vec< 2, int, packed_highp > packed_highp_ivec2
2 components vector tightly packed in memory of signed integer numbers.
-
packed_highp_dmat3x4 packed_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
packed_highp_mat4x4 packed_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
-
mat< 4, 4, float, packed_highp > packed_highp_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
vec< 1, double, packed_lowp > packed_lowp_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using low prec...
-
mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
vec< 3, uint, packed_mediump > packed_mediump_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
-
aligned_highp_dmat4x3 aligned_dmat4x3
4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
aligned_highp_mat3x4 aligned_mat3x4
3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
aligned_highp_mat4 aligned_mat4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
vec< 2, int, packed_mediump > packed_mediump_ivec2
2 components vector tightly packed in memory of signed integer numbers.
-
packed_highp_dmat3x2 packed_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
vec< 3, float, aligned_lowp > aligned_lowp_vec3
3 components vector aligned in memory of single-precision floating-point numbers using low precision ...
-
mat< 2, 4, float, packed_highp > packed_highp_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
vec< 4, float, packed_highp > packed_highp_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
-
aligned_highp_uvec1 aligned_uvec1
1 component vector aligned in memory of unsigned integer numbers.
-
mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
mat< 3, 3, float, packed_lowp > packed_lowp_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 4, bool, packed_highp > packed_highp_bvec4
4 components vector tightly packed in memory of bool values.
-
aligned_highp_vec1 aligned_vec1
1 component vector aligned in memory of single-precision floating-point numbers.
-
packed_highp_vec3 packed_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers.
-
packed_highp_mat2x3 packed_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
-
vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
3 components vector aligned in memory of bool values.
-
vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
1 component vector aligned in memory of unsigned integer numbers.
-
aligned_highp_bvec2 aligned_bvec2
2 components vector aligned in memory of bool values.
-
packed_highp_dmat2x2 packed_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
packed_highp_dmat2x4 packed_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
-
vec< 3, uint, aligned_highp > aligned_highp_uvec3
3 components vector aligned in memory of unsigned integer numbers.
-
vec< 2, bool, packed_mediump > packed_mediump_bvec2
2 components vector tightly packed in memory of bool values.
-
aligned_highp_bvec1 aligned_bvec1
1 component vector aligned in memory of bool values.
-
aligned_highp_mat3x2 aligned_mat3x2
3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
vec< 1, int, aligned_lowp > aligned_lowp_ivec1
1 component vector aligned in memory of signed integer numbers.
-
mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
mat< 2, 3, float, packed_highp > packed_highp_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
aligned_highp_uvec4 aligned_uvec4
4 components vector aligned in memory of unsigned integer numbers.
-
packed_highp_bvec2 packed_bvec2
2 components vector tightly packed in memory of bool values.
-
mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
packed_highp_bvec4 packed_bvec4
4 components vector tightly packed in memory of bool values.
-
aligned_highp_ivec4 aligned_ivec4
4 components vector aligned in memory of signed integer numbers.
-
mat< 3, 3, float, packed_highp > packed_highp_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
vec< 4, int, packed_highp > packed_highp_ivec4
4 components vector tightly packed in memory of signed integer numbers.
-
packed_highp_mat3x2 packed_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
-
vec< 2, uint, aligned_highp > aligned_highp_uvec2
2 components vector aligned in memory of unsigned integer numbers.
-
aligned_highp_dmat3 aligned_dmat3
3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
-
vec< 3, int, aligned_highp > aligned_highp_ivec3
3 components vector aligned in memory of signed integer numbers.
-
mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
vec< 1, uint, aligned_highp > aligned_highp_uvec1
1 component vector aligned in memory of unsigned integer numbers.
-
aligned_highp_mat2x4 aligned_mat2x4
2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
packed_highp_dvec1 packed_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers.
-
aligned_highp_dmat2x4 aligned_dmat2x4
2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
vec< 3, double, packed_lowp > packed_lowp_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
-
vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
4 components vector aligned in memory of unsigned integer numbers.
-
vec< 4, uint, packed_highp > packed_highp_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
-
mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
aligned_highp_vec2 aligned_vec2
2 components vector aligned in memory of single-precision floating-point numbers. ...
-
aligned_highp_mat2x2 aligned_mat2x2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
aligned_highp_dmat3x3 aligned_dmat3x3
3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
-
vec< 2, double, packed_highp > packed_highp_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
-
mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
vec< 1, uint, packed_lowp > packed_lowp_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
-
vec< 2, uint, packed_lowp > packed_lowp_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
-
packed_highp_dmat4x3 packed_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
-
mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
mat< 3, 3, float, packed_highp > packed_highp_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
aligned_highp_dmat2x3 aligned_dmat2x3
2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
vec< 1, bool, packed_mediump > packed_mediump_bvec1
1 component vector tightly packed in memory of bool values.
-
mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
packed_highp_ivec1 packed_ivec1
1 component vector tightly packed in memory of signed integer numbers.
-
vec< 1, bool, packed_lowp > packed_lowp_bvec1
1 component vector tightly packed in memory of bool values.
-
aligned_highp_dmat3x2 aligned_dmat3x2
3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
aligned_highp_ivec2 aligned_ivec2
2 components vector aligned in memory of signed integer numbers.
-
aligned_highp_dmat4x4 aligned_dmat4x4
4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
vec< 4, bool, aligned_highp > aligned_highp_bvec4
4 components vector aligned in memory of bool values.
-
vec< 4, bool, packed_mediump > packed_mediump_bvec4
4 components vector tightly packed in memory of bool values.
-
mat< 2, 2, float, packed_highp > packed_highp_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
packed_highp_mat2x4 packed_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
-
mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
1 component vector aligned in memory of bool values.
-
mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
mat< 4, 4, float, packed_mediump > packed_mediump_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
vec< 1, float, packed_mediump > packed_mediump_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using medium p...
-
aligned_highp_mat4x4 aligned_mat4x4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
aligned_highp_mat4x2 aligned_mat4x2
4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
vec< 3, float, packed_highp > packed_highp_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
-
aligned_highp_dvec4 aligned_dvec4
4 components vector aligned in memory of double-precision floating-point numbers. ...
-
vec< 1, int, aligned_highp > aligned_highp_ivec1
1 component vector aligned in memory of signed integer numbers.
-
mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
aligned_highp_dmat3x4 aligned_dmat3x4
3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
-
packed_highp_bvec3 packed_bvec3
3 components vector tightly packed in memory of bool values.
-
mat< 4, 4, float, packed_highp > packed_highp_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
vec< 3, float, packed_mediump > packed_mediump_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
-
vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
2 components vector aligned in memory of unsigned integer numbers.
-
vec< 1, bool, aligned_highp > aligned_highp_bvec1
1 component vector aligned in memory of bool values.
-
vec< 2, bool, packed_highp > packed_highp_bvec2
2 components vector tightly packed in memory of bool values.
-
vec< 1, int, packed_highp > packed_highp_ivec1
1 component vector tightly packed in memory of signed integer numbers.
-
mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
vec< 2, int, packed_lowp > packed_lowp_ivec2
2 components vector tightly packed in memory of signed integer numbers.
-
vec< 3, double, packed_highp > packed_highp_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
-
vec< 2, int, aligned_highp > aligned_highp_ivec2
2 components vector aligned in memory of signed integer numbers.
-
aligned_highp_dmat2 aligned_dmat2
2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
3 components vector aligned in memory of unsigned integer numbers.
-
vec< 4, double, packed_lowp > packed_lowp_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
-
vec< 3, double, packed_mediump > packed_mediump_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
-
mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
vec< 3, int, aligned_lowp > aligned_lowp_ivec3
3 components vector aligned in memory of signed integer numbers.
-
mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
vec< 3, bool, aligned_highp > aligned_highp_bvec3
3 components vector aligned in memory of bool values.
-
vec< 3, float, packed_lowp > packed_lowp_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
-
vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
2 components vector aligned in memory of unsigned integer numbers.
-
vec< 1, int, packed_mediump > packed_mediump_ivec1
1 component vector tightly packed in memory of signed integer numbers.
-
mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
vec< 4, uint, packed_mediump > packed_mediump_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
-
mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
vec< 2, uint, packed_highp > packed_highp_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
-
vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
4 components vector aligned in memory of unsigned integer numbers.
-
vec< 4, double, packed_mediump > packed_mediump_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
-
aligned_highp_vec4 aligned_vec4
4 components vector aligned in memory of single-precision floating-point numbers. ...
-
vec< 4, int, aligned_highp > aligned_highp_ivec4
4 components vector aligned in memory of signed integer numbers.
-
vec< 2, double, aligned_lowp > aligned_lowp_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using low precision ...
-
packed_highp_bvec1 packed_bvec1
1 components vector tightly packed in memory of bool values.
-
mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
-
vec< 1, float, aligned_lowp > aligned_lowp_vec1
1 component vector aligned in memory of single-precision floating-point numbers using low precision a...
-
vec< 2, float, packed_lowp > packed_lowp_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
-
vec< 1, double, aligned_highp > aligned_highp_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using high precision ...
-
mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
vec< 4, float, aligned_mediump > aligned_mediump_vec4
4 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
-
packed_highp_dvec4 packed_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers.
-
vec< 4, double, aligned_mediump > aligned_mediump_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
-
mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
-
mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
mat< 4, 4, float, aligned_highp > aligned_highp_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
packed_highp_dmat3x3 packed_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
-
aligned_highp_mat3x3 aligned_mat3x3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
vec< 3, int, packed_lowp > packed_lowp_ivec3
3 components vector tightly packed in memory of signed integer numbers.
-
aligned_highp_dmat4 aligned_dmat4
4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
-
mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
-
vec< 2, float, packed_highp > packed_highp_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
-
mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
-
vec< 4, uint, packed_lowp > packed_lowp_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
-
packed_highp_ivec4 packed_ivec4
4 components vector tightly packed in memory of signed integer numbers.
-
packed_highp_dvec2 packed_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers.
-
mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
-
mat< 3, 2, float, packed_highp > packed_highp_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
-
mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
vec< 1, int, aligned_mediump > aligned_mediump_ivec1
1 component vector aligned in memory of signed integer numbers.
-
mat< 2, 2, double, packed_highp > packed_highp_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
-
vec< 2, float, packed_mediump > packed_mediump_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
-
aligned_highp_mat3 aligned_mat3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
-
mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
-
mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
-
aligned_highp_dvec2 aligned_dvec2
2 components vector aligned in memory of double-precision floating-point numbers. ...
-
mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
-
packed_highp_mat4x2 packed_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
-
vec< 4, float, aligned_lowp > aligned_lowp_vec4
4 components vector aligned in memory of single-precision floating-point numbers using low precision ...
-
vec< 3, bool, packed_highp > packed_highp_bvec3
3 components vector tightly packed in memory of bool values.
-
vec< 2, double, packed_lowp > packed_lowp_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
-
vec< 3, double, aligned_mediump > aligned_mediump_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
-
vec< 3, float, aligned_mediump > aligned_mediump_vec3
3 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
-
mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
-
Definition: common.hpp:20
-
vec< 3, double, aligned_highp > aligned_highp_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using high precision...
-
vec< 1, float, aligned_highp > aligned_highp_vec1
1 component vector aligned in memory of single-precision floating-point numbers using high precision ...
-
- - - - + + + + + + +0.9.9 API documentation: type_aligned.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc/type_aligned.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #if (GLM_CONFIG_ALIGNED_GENTYPES == GLM_DISABLE)
+
16 # error "GLM: Aligned gentypes require to enable C++ language extensions. Define GLM_FORCE_ALIGNED_GENTYPES before including GLM headers to use aligned types."
+
17 #endif
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # pragma message("GLM: GLM_GTC_type_aligned extension included")
+
21 #endif
+
22 
+
23 #include "../mat4x4.hpp"
+
24 #include "../mat4x3.hpp"
+
25 #include "../mat4x2.hpp"
+
26 #include "../mat3x4.hpp"
+
27 #include "../mat3x3.hpp"
+
28 #include "../mat3x2.hpp"
+
29 #include "../mat2x4.hpp"
+
30 #include "../mat2x3.hpp"
+
31 #include "../mat2x2.hpp"
+
32 #include "../gtc/vec1.hpp"
+
33 #include "../vec2.hpp"
+
34 #include "../vec3.hpp"
+
35 #include "../vec4.hpp"
+
36 
+
37 namespace glm
+
38 {
+
41 
+
42  // -- *vec1 --
+
43 
+
45  typedef vec<1, float, aligned_highp> aligned_highp_vec1;
+
46 
+
48  typedef vec<1, float, aligned_mediump> aligned_mediump_vec1;
+
49 
+
51  typedef vec<1, float, aligned_lowp> aligned_lowp_vec1;
+
52 
+
54  typedef vec<1, double, aligned_highp> aligned_highp_dvec1;
+
55 
+
57  typedef vec<1, double, aligned_mediump> aligned_mediump_dvec1;
+
58 
+
60  typedef vec<1, double, aligned_lowp> aligned_lowp_dvec1;
+
61 
+
63  typedef vec<1, int, aligned_highp> aligned_highp_ivec1;
+
64 
+
66  typedef vec<1, int, aligned_mediump> aligned_mediump_ivec1;
+
67 
+
69  typedef vec<1, int, aligned_lowp> aligned_lowp_ivec1;
+
70 
+
72  typedef vec<1, uint, aligned_highp> aligned_highp_uvec1;
+
73 
+
75  typedef vec<1, uint, aligned_mediump> aligned_mediump_uvec1;
+
76 
+
78  typedef vec<1, uint, aligned_lowp> aligned_lowp_uvec1;
+
79 
+
81  typedef vec<1, bool, aligned_highp> aligned_highp_bvec1;
+
82 
+
84  typedef vec<1, bool, aligned_mediump> aligned_mediump_bvec1;
+
85 
+
87  typedef vec<1, bool, aligned_lowp> aligned_lowp_bvec1;
+
88 
+
90  typedef vec<1, float, packed_highp> packed_highp_vec1;
+
91 
+
93  typedef vec<1, float, packed_mediump> packed_mediump_vec1;
+
94 
+
96  typedef vec<1, float, packed_lowp> packed_lowp_vec1;
+
97 
+
99  typedef vec<1, double, packed_highp> packed_highp_dvec1;
+
100 
+
102  typedef vec<1, double, packed_mediump> packed_mediump_dvec1;
+
103 
+
105  typedef vec<1, double, packed_lowp> packed_lowp_dvec1;
+
106 
+
108  typedef vec<1, int, packed_highp> packed_highp_ivec1;
+
109 
+
111  typedef vec<1, int, packed_mediump> packed_mediump_ivec1;
+
112 
+
114  typedef vec<1, int, packed_lowp> packed_lowp_ivec1;
+
115 
+
117  typedef vec<1, uint, packed_highp> packed_highp_uvec1;
+
118 
+
120  typedef vec<1, uint, packed_mediump> packed_mediump_uvec1;
+
121 
+
123  typedef vec<1, uint, packed_lowp> packed_lowp_uvec1;
+
124 
+
126  typedef vec<1, bool, packed_highp> packed_highp_bvec1;
+
127 
+
129  typedef vec<1, bool, packed_mediump> packed_mediump_bvec1;
+
130 
+
132  typedef vec<1, bool, packed_lowp> packed_lowp_bvec1;
+
133 
+
134  // -- *vec2 --
+
135 
+
137  typedef vec<2, float, aligned_highp> aligned_highp_vec2;
+
138 
+
140  typedef vec<2, float, aligned_mediump> aligned_mediump_vec2;
+
141 
+
143  typedef vec<2, float, aligned_lowp> aligned_lowp_vec2;
+
144 
+
146  typedef vec<2, double, aligned_highp> aligned_highp_dvec2;
+
147 
+
149  typedef vec<2, double, aligned_mediump> aligned_mediump_dvec2;
+
150 
+
152  typedef vec<2, double, aligned_lowp> aligned_lowp_dvec2;
+
153 
+
155  typedef vec<2, int, aligned_highp> aligned_highp_ivec2;
+
156 
+
158  typedef vec<2, int, aligned_mediump> aligned_mediump_ivec2;
+
159 
+
161  typedef vec<2, int, aligned_lowp> aligned_lowp_ivec2;
+
162 
+
164  typedef vec<2, uint, aligned_highp> aligned_highp_uvec2;
+
165 
+
167  typedef vec<2, uint, aligned_mediump> aligned_mediump_uvec2;
+
168 
+
170  typedef vec<2, uint, aligned_lowp> aligned_lowp_uvec2;
+
171 
+
173  typedef vec<2, bool, aligned_highp> aligned_highp_bvec2;
+
174 
+
176  typedef vec<2, bool, aligned_mediump> aligned_mediump_bvec2;
+
177 
+
179  typedef vec<2, bool, aligned_lowp> aligned_lowp_bvec2;
+
180 
+
182  typedef vec<2, float, packed_highp> packed_highp_vec2;
+
183 
+
185  typedef vec<2, float, packed_mediump> packed_mediump_vec2;
+
186 
+
188  typedef vec<2, float, packed_lowp> packed_lowp_vec2;
+
189 
+
191  typedef vec<2, double, packed_highp> packed_highp_dvec2;
+
192 
+
194  typedef vec<2, double, packed_mediump> packed_mediump_dvec2;
+
195 
+
197  typedef vec<2, double, packed_lowp> packed_lowp_dvec2;
+
198 
+
200  typedef vec<2, int, packed_highp> packed_highp_ivec2;
+
201 
+
203  typedef vec<2, int, packed_mediump> packed_mediump_ivec2;
+
204 
+
206  typedef vec<2, int, packed_lowp> packed_lowp_ivec2;
+
207 
+
209  typedef vec<2, uint, packed_highp> packed_highp_uvec2;
+
210 
+
212  typedef vec<2, uint, packed_mediump> packed_mediump_uvec2;
+
213 
+
215  typedef vec<2, uint, packed_lowp> packed_lowp_uvec2;
+
216 
+
218  typedef vec<2, bool, packed_highp> packed_highp_bvec2;
+
219 
+
221  typedef vec<2, bool, packed_mediump> packed_mediump_bvec2;
+
222 
+
224  typedef vec<2, bool, packed_lowp> packed_lowp_bvec2;
+
225 
+
226  // -- *vec3 --
+
227 
+
229  typedef vec<3, float, aligned_highp> aligned_highp_vec3;
+
230 
+
232  typedef vec<3, float, aligned_mediump> aligned_mediump_vec3;
+
233 
+
235  typedef vec<3, float, aligned_lowp> aligned_lowp_vec3;
+
236 
+
238  typedef vec<3, double, aligned_highp> aligned_highp_dvec3;
+
239 
+
241  typedef vec<3, double, aligned_mediump> aligned_mediump_dvec3;
+
242 
+
244  typedef vec<3, double, aligned_lowp> aligned_lowp_dvec3;
+
245 
+
247  typedef vec<3, int, aligned_highp> aligned_highp_ivec3;
+
248 
+
250  typedef vec<3, int, aligned_mediump> aligned_mediump_ivec3;
+
251 
+
253  typedef vec<3, int, aligned_lowp> aligned_lowp_ivec3;
+
254 
+
256  typedef vec<3, uint, aligned_highp> aligned_highp_uvec3;
+
257 
+
259  typedef vec<3, uint, aligned_mediump> aligned_mediump_uvec3;
+
260 
+
262  typedef vec<3, uint, aligned_lowp> aligned_lowp_uvec3;
+
263 
+
265  typedef vec<3, bool, aligned_highp> aligned_highp_bvec3;
+
266 
+
268  typedef vec<3, bool, aligned_mediump> aligned_mediump_bvec3;
+
269 
+
271  typedef vec<3, bool, aligned_lowp> aligned_lowp_bvec3;
+
272 
+
274  typedef vec<3, float, packed_highp> packed_highp_vec3;
+
275 
+
277  typedef vec<3, float, packed_mediump> packed_mediump_vec3;
+
278 
+
280  typedef vec<3, float, packed_lowp> packed_lowp_vec3;
+
281 
+
283  typedef vec<3, double, packed_highp> packed_highp_dvec3;
+
284 
+
286  typedef vec<3, double, packed_mediump> packed_mediump_dvec3;
+
287 
+
289  typedef vec<3, double, packed_lowp> packed_lowp_dvec3;
+
290 
+
292  typedef vec<3, int, packed_highp> packed_highp_ivec3;
+
293 
+
295  typedef vec<3, int, packed_mediump> packed_mediump_ivec3;
+
296 
+
298  typedef vec<3, int, packed_lowp> packed_lowp_ivec3;
+
299 
+
301  typedef vec<3, uint, packed_highp> packed_highp_uvec3;
+
302 
+
304  typedef vec<3, uint, packed_mediump> packed_mediump_uvec3;
+
305 
+
307  typedef vec<3, uint, packed_lowp> packed_lowp_uvec3;
+
308 
+
310  typedef vec<3, bool, packed_highp> packed_highp_bvec3;
+
311 
+
313  typedef vec<3, bool, packed_mediump> packed_mediump_bvec3;
+
314 
+
316  typedef vec<3, bool, packed_lowp> packed_lowp_bvec3;
+
317 
+
318  // -- *vec4 --
+
319 
+
321  typedef vec<4, float, aligned_highp> aligned_highp_vec4;
+
322 
+
324  typedef vec<4, float, aligned_mediump> aligned_mediump_vec4;
+
325 
+
327  typedef vec<4, float, aligned_lowp> aligned_lowp_vec4;
+
328 
+
330  typedef vec<4, double, aligned_highp> aligned_highp_dvec4;
+
331 
+
333  typedef vec<4, double, aligned_mediump> aligned_mediump_dvec4;
+
334 
+
336  typedef vec<4, double, aligned_lowp> aligned_lowp_dvec4;
+
337 
+
339  typedef vec<4, int, aligned_highp> aligned_highp_ivec4;
+
340 
+
342  typedef vec<4, int, aligned_mediump> aligned_mediump_ivec4;
+
343 
+
345  typedef vec<4, int, aligned_lowp> aligned_lowp_ivec4;
+
346 
+
348  typedef vec<4, uint, aligned_highp> aligned_highp_uvec4;
+
349 
+
351  typedef vec<4, uint, aligned_mediump> aligned_mediump_uvec4;
+
352 
+
354  typedef vec<4, uint, aligned_lowp> aligned_lowp_uvec4;
+
355 
+
357  typedef vec<4, bool, aligned_highp> aligned_highp_bvec4;
+
358 
+
360  typedef vec<4, bool, aligned_mediump> aligned_mediump_bvec4;
+
361 
+
363  typedef vec<4, bool, aligned_lowp> aligned_lowp_bvec4;
+
364 
+
366  typedef vec<4, float, packed_highp> packed_highp_vec4;
+
367 
+
369  typedef vec<4, float, packed_mediump> packed_mediump_vec4;
+
370 
+
372  typedef vec<4, float, packed_lowp> packed_lowp_vec4;
+
373 
+
375  typedef vec<4, double, packed_highp> packed_highp_dvec4;
+
376 
+
378  typedef vec<4, double, packed_mediump> packed_mediump_dvec4;
+
379 
+
381  typedef vec<4, double, packed_lowp> packed_lowp_dvec4;
+
382 
+
384  typedef vec<4, int, packed_highp> packed_highp_ivec4;
+
385 
+
387  typedef vec<4, int, packed_mediump> packed_mediump_ivec4;
+
388 
+
390  typedef vec<4, int, packed_lowp> packed_lowp_ivec4;
+
391 
+
393  typedef vec<4, uint, packed_highp> packed_highp_uvec4;
+
394 
+
396  typedef vec<4, uint, packed_mediump> packed_mediump_uvec4;
+
397 
+
399  typedef vec<4, uint, packed_lowp> packed_lowp_uvec4;
+
400 
+
402  typedef vec<4, bool, packed_highp> packed_highp_bvec4;
+
403 
+
405  typedef vec<4, bool, packed_mediump> packed_mediump_bvec4;
+
406 
+
408  typedef vec<4, bool, packed_lowp> packed_lowp_bvec4;
+
409 
+
410  // -- *mat2 --
+
411 
+
413  typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2;
+
414 
+
416  typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2;
+
417 
+
419  typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2;
+
420 
+
422  typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2;
+
423 
+
425  typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2;
+
426 
+
428  typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2;
+
429 
+
431  typedef mat<2, 2, float, packed_highp> packed_highp_mat2;
+
432 
+
434  typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2;
+
435 
+
437  typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2;
+
438 
+
440  typedef mat<2, 2, double, packed_highp> packed_highp_dmat2;
+
441 
+
443  typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2;
+
444 
+
446  typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2;
+
447 
+
448  // -- *mat3 --
+
449 
+
451  typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3;
+
452 
+
454  typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3;
+
455 
+
457  typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3;
+
458 
+
460  typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3;
+
461 
+
463  typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3;
+
464 
+
466  typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3;
+
467 
+
469  typedef mat<3, 3, float, packed_highp> packed_highp_mat3;
+
470 
+
472  typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3;
+
473 
+
475  typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3;
+
476 
+
478  typedef mat<3, 3, double, packed_highp> packed_highp_dmat3;
+
479 
+
481  typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3;
+
482 
+
484  typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3;
+
485 
+
486  // -- *mat4 --
+
487 
+
489  typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4;
+
490 
+
492  typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4;
+
493 
+
495  typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4;
+
496 
+
498  typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4;
+
499 
+
501  typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4;
+
502 
+
504  typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4;
+
505 
+
507  typedef mat<4, 4, float, packed_highp> packed_highp_mat4;
+
508 
+
510  typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4;
+
511 
+
513  typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4;
+
514 
+
516  typedef mat<4, 4, double, packed_highp> packed_highp_dmat4;
+
517 
+
519  typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4;
+
520 
+
522  typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4;
+
523 
+
524  // -- *mat2x2 --
+
525 
+
527  typedef mat<2, 2, float, aligned_highp> aligned_highp_mat2x2;
+
528 
+
530  typedef mat<2, 2, float, aligned_mediump> aligned_mediump_mat2x2;
+
531 
+
533  typedef mat<2, 2, float, aligned_lowp> aligned_lowp_mat2x2;
+
534 
+
536  typedef mat<2, 2, double, aligned_highp> aligned_highp_dmat2x2;
+
537 
+
539  typedef mat<2, 2, double, aligned_mediump> aligned_mediump_dmat2x2;
+
540 
+
542  typedef mat<2, 2, double, aligned_lowp> aligned_lowp_dmat2x2;
+
543 
+
545  typedef mat<2, 2, float, packed_highp> packed_highp_mat2x2;
+
546 
+
548  typedef mat<2, 2, float, packed_mediump> packed_mediump_mat2x2;
+
549 
+
551  typedef mat<2, 2, float, packed_lowp> packed_lowp_mat2x2;
+
552 
+
554  typedef mat<2, 2, double, packed_highp> packed_highp_dmat2x2;
+
555 
+
557  typedef mat<2, 2, double, packed_mediump> packed_mediump_dmat2x2;
+
558 
+
560  typedef mat<2, 2, double, packed_lowp> packed_lowp_dmat2x2;
+
561 
+
562  // -- *mat2x3 --
+
563 
+
565  typedef mat<2, 3, float, aligned_highp> aligned_highp_mat2x3;
+
566 
+
568  typedef mat<2, 3, float, aligned_mediump> aligned_mediump_mat2x3;
+
569 
+
571  typedef mat<2, 3, float, aligned_lowp> aligned_lowp_mat2x3;
+
572 
+
574  typedef mat<2, 3, double, aligned_highp> aligned_highp_dmat2x3;
+
575 
+
577  typedef mat<2, 3, double, aligned_mediump> aligned_mediump_dmat2x3;
+
578 
+
580  typedef mat<2, 3, double, aligned_lowp> aligned_lowp_dmat2x3;
+
581 
+
583  typedef mat<2, 3, float, packed_highp> packed_highp_mat2x3;
+
584 
+
586  typedef mat<2, 3, float, packed_mediump> packed_mediump_mat2x3;
+
587 
+
589  typedef mat<2, 3, float, packed_lowp> packed_lowp_mat2x3;
+
590 
+
592  typedef mat<2, 3, double, packed_highp> packed_highp_dmat2x3;
+
593 
+
595  typedef mat<2, 3, double, packed_mediump> packed_mediump_dmat2x3;
+
596 
+
598  typedef mat<2, 3, double, packed_lowp> packed_lowp_dmat2x3;
+
599 
+
600  // -- *mat2x4 --
+
601 
+
603  typedef mat<2, 4, float, aligned_highp> aligned_highp_mat2x4;
+
604 
+
606  typedef mat<2, 4, float, aligned_mediump> aligned_mediump_mat2x4;
+
607 
+
609  typedef mat<2, 4, float, aligned_lowp> aligned_lowp_mat2x4;
+
610 
+
612  typedef mat<2, 4, double, aligned_highp> aligned_highp_dmat2x4;
+
613 
+
615  typedef mat<2, 4, double, aligned_mediump> aligned_mediump_dmat2x4;
+
616 
+
618  typedef mat<2, 4, double, aligned_lowp> aligned_lowp_dmat2x4;
+
619 
+
621  typedef mat<2, 4, float, packed_highp> packed_highp_mat2x4;
+
622 
+
624  typedef mat<2, 4, float, packed_mediump> packed_mediump_mat2x4;
+
625 
+
627  typedef mat<2, 4, float, packed_lowp> packed_lowp_mat2x4;
+
628 
+
630  typedef mat<2, 4, double, packed_highp> packed_highp_dmat2x4;
+
631 
+
633  typedef mat<2, 4, double, packed_mediump> packed_mediump_dmat2x4;
+
634 
+
636  typedef mat<2, 4, double, packed_lowp> packed_lowp_dmat2x4;
+
637 
+
638  // -- *mat3x2 --
+
639 
+
641  typedef mat<3, 2, float, aligned_highp> aligned_highp_mat3x2;
+
642 
+
644  typedef mat<3, 2, float, aligned_mediump> aligned_mediump_mat3x2;
+
645 
+
647  typedef mat<3, 2, float, aligned_lowp> aligned_lowp_mat3x2;
+
648 
+
650  typedef mat<3, 2, double, aligned_highp> aligned_highp_dmat3x2;
+
651 
+
653  typedef mat<3, 2, double, aligned_mediump> aligned_mediump_dmat3x2;
+
654 
+
656  typedef mat<3, 2, double, aligned_lowp> aligned_lowp_dmat3x2;
+
657 
+
659  typedef mat<3, 2, float, packed_highp> packed_highp_mat3x2;
+
660 
+
662  typedef mat<3, 2, float, packed_mediump> packed_mediump_mat3x2;
+
663 
+
665  typedef mat<3, 2, float, packed_lowp> packed_lowp_mat3x2;
+
666 
+
668  typedef mat<3, 2, double, packed_highp> packed_highp_dmat3x2;
+
669 
+
671  typedef mat<3, 2, double, packed_mediump> packed_mediump_dmat3x2;
+
672 
+
674  typedef mat<3, 2, double, packed_lowp> packed_lowp_dmat3x2;
+
675 
+
676  // -- *mat3x3 --
+
677 
+
679  typedef mat<3, 3, float, aligned_highp> aligned_highp_mat3x3;
+
680 
+
682  typedef mat<3, 3, float, aligned_mediump> aligned_mediump_mat3x3;
+
683 
+
685  typedef mat<3, 3, float, aligned_lowp> aligned_lowp_mat3x3;
+
686 
+
688  typedef mat<3, 3, double, aligned_highp> aligned_highp_dmat3x3;
+
689 
+
691  typedef mat<3, 3, double, aligned_mediump> aligned_mediump_dmat3x3;
+
692 
+
694  typedef mat<3, 3, double, aligned_lowp> aligned_lowp_dmat3x3;
+
695 
+
697  typedef mat<3, 3, float, packed_highp> packed_highp_mat3x3;
+
698 
+
700  typedef mat<3, 3, float, packed_mediump> packed_mediump_mat3x3;
+
701 
+
703  typedef mat<3, 3, float, packed_lowp> packed_lowp_mat3x3;
+
704 
+
706  typedef mat<3, 3, double, packed_highp> packed_highp_dmat3x3;
+
707 
+
709  typedef mat<3, 3, double, packed_mediump> packed_mediump_dmat3x3;
+
710 
+
712  typedef mat<3, 3, double, packed_lowp> packed_lowp_dmat3x3;
+
713 
+
714  // -- *mat3x4 --
+
715 
+
717  typedef mat<3, 4, float, aligned_highp> aligned_highp_mat3x4;
+
718 
+
720  typedef mat<3, 4, float, aligned_mediump> aligned_mediump_mat3x4;
+
721 
+
723  typedef mat<3, 4, float, aligned_lowp> aligned_lowp_mat3x4;
+
724 
+
726  typedef mat<3, 4, double, aligned_highp> aligned_highp_dmat3x4;
+
727 
+
729  typedef mat<3, 4, double, aligned_mediump> aligned_mediump_dmat3x4;
+
730 
+
732  typedef mat<3, 4, double, aligned_lowp> aligned_lowp_dmat3x4;
+
733 
+
735  typedef mat<3, 4, float, packed_highp> packed_highp_mat3x4;
+
736 
+
738  typedef mat<3, 4, float, packed_mediump> packed_mediump_mat3x4;
+
739 
+
741  typedef mat<3, 4, float, packed_lowp> packed_lowp_mat3x4;
+
742 
+
744  typedef mat<3, 4, double, packed_highp> packed_highp_dmat3x4;
+
745 
+
747  typedef mat<3, 4, double, packed_mediump> packed_mediump_dmat3x4;
+
748 
+
750  typedef mat<3, 4, double, packed_lowp> packed_lowp_dmat3x4;
+
751 
+
752  // -- *mat4x2 --
+
753 
+
755  typedef mat<4, 2, float, aligned_highp> aligned_highp_mat4x2;
+
756 
+
758  typedef mat<4, 2, float, aligned_mediump> aligned_mediump_mat4x2;
+
759 
+
761  typedef mat<4, 2, float, aligned_lowp> aligned_lowp_mat4x2;
+
762 
+
764  typedef mat<4, 2, double, aligned_highp> aligned_highp_dmat4x2;
+
765 
+
767  typedef mat<4, 2, double, aligned_mediump> aligned_mediump_dmat4x2;
+
768 
+
770  typedef mat<4, 2, double, aligned_lowp> aligned_lowp_dmat4x2;
+
771 
+
773  typedef mat<4, 2, float, packed_highp> packed_highp_mat4x2;
+
774 
+
776  typedef mat<4, 2, float, packed_mediump> packed_mediump_mat4x2;
+
777 
+
779  typedef mat<4, 2, float, packed_lowp> packed_lowp_mat4x2;
+
780 
+
782  typedef mat<4, 2, double, packed_highp> packed_highp_dmat4x2;
+
783 
+
785  typedef mat<4, 2, double, packed_mediump> packed_mediump_dmat4x2;
+
786 
+
788  typedef mat<4, 2, double, packed_lowp> packed_lowp_dmat4x2;
+
789 
+
790  // -- *mat4x3 --
+
791 
+
793  typedef mat<4, 3, float, aligned_highp> aligned_highp_mat4x3;
+
794 
+
796  typedef mat<4, 3, float, aligned_mediump> aligned_mediump_mat4x3;
+
797 
+
799  typedef mat<4, 3, float, aligned_lowp> aligned_lowp_mat4x3;
+
800 
+
802  typedef mat<4, 3, double, aligned_highp> aligned_highp_dmat4x3;
+
803 
+
805  typedef mat<4, 3, double, aligned_mediump> aligned_mediump_dmat4x3;
+
806 
+
808  typedef mat<4, 3, double, aligned_lowp> aligned_lowp_dmat4x3;
+
809 
+
811  typedef mat<4, 3, float, packed_highp> packed_highp_mat4x3;
+
812 
+
814  typedef mat<4, 3, float, packed_mediump> packed_mediump_mat4x3;
+
815 
+
817  typedef mat<4, 3, float, packed_lowp> packed_lowp_mat4x3;
+
818 
+
820  typedef mat<4, 3, double, packed_highp> packed_highp_dmat4x3;
+
821 
+
823  typedef mat<4, 3, double, packed_mediump> packed_mediump_dmat4x3;
+
824 
+
826  typedef mat<4, 3, double, packed_lowp> packed_lowp_dmat4x3;
+
827 
+
828  // -- *mat4x4 --
+
829 
+
831  typedef mat<4, 4, float, aligned_highp> aligned_highp_mat4x4;
+
832 
+
834  typedef mat<4, 4, float, aligned_mediump> aligned_mediump_mat4x4;
+
835 
+
837  typedef mat<4, 4, float, aligned_lowp> aligned_lowp_mat4x4;
+
838 
+
840  typedef mat<4, 4, double, aligned_highp> aligned_highp_dmat4x4;
+
841 
+
843  typedef mat<4, 4, double, aligned_mediump> aligned_mediump_dmat4x4;
+
844 
+
846  typedef mat<4, 4, double, aligned_lowp> aligned_lowp_dmat4x4;
+
847 
+
849  typedef mat<4, 4, float, packed_highp> packed_highp_mat4x4;
+
850 
+
852  typedef mat<4, 4, float, packed_mediump> packed_mediump_mat4x4;
+
853 
+
855  typedef mat<4, 4, float, packed_lowp> packed_lowp_mat4x4;
+
856 
+
858  typedef mat<4, 4, double, packed_highp> packed_highp_dmat4x4;
+
859 
+
861  typedef mat<4, 4, double, packed_mediump> packed_mediump_dmat4x4;
+
862 
+
864  typedef mat<4, 4, double, packed_lowp> packed_lowp_dmat4x4;
+
865 
+
866  // -- default --
+
867 
+
868 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
869  typedef aligned_lowp_vec1 aligned_vec1;
+
870  typedef aligned_lowp_vec2 aligned_vec2;
+
871  typedef aligned_lowp_vec3 aligned_vec3;
+
872  typedef aligned_lowp_vec4 aligned_vec4;
+
873  typedef packed_lowp_vec1 packed_vec1;
+
874  typedef packed_lowp_vec2 packed_vec2;
+
875  typedef packed_lowp_vec3 packed_vec3;
+
876  typedef packed_lowp_vec4 packed_vec4;
+
877 
+
878  typedef aligned_lowp_mat2 aligned_mat2;
+
879  typedef aligned_lowp_mat3 aligned_mat3;
+
880  typedef aligned_lowp_mat4 aligned_mat4;
+
881  typedef packed_lowp_mat2 packed_mat2;
+
882  typedef packed_lowp_mat3 packed_mat3;
+
883  typedef packed_lowp_mat4 packed_mat4;
+
884 
+
885  typedef aligned_lowp_mat2x2 aligned_mat2x2;
+
886  typedef aligned_lowp_mat2x3 aligned_mat2x3;
+
887  typedef aligned_lowp_mat2x4 aligned_mat2x4;
+
888  typedef aligned_lowp_mat3x2 aligned_mat3x2;
+
889  typedef aligned_lowp_mat3x3 aligned_mat3x3;
+
890  typedef aligned_lowp_mat3x4 aligned_mat3x4;
+
891  typedef aligned_lowp_mat4x2 aligned_mat4x2;
+
892  typedef aligned_lowp_mat4x3 aligned_mat4x3;
+
893  typedef aligned_lowp_mat4x4 aligned_mat4x4;
+
894  typedef packed_lowp_mat2x2 packed_mat2x2;
+
895  typedef packed_lowp_mat2x3 packed_mat2x3;
+
896  typedef packed_lowp_mat2x4 packed_mat2x4;
+
897  typedef packed_lowp_mat3x2 packed_mat3x2;
+
898  typedef packed_lowp_mat3x3 packed_mat3x3;
+
899  typedef packed_lowp_mat3x4 packed_mat3x4;
+
900  typedef packed_lowp_mat4x2 packed_mat4x2;
+
901  typedef packed_lowp_mat4x3 packed_mat4x3;
+
902  typedef packed_lowp_mat4x4 packed_mat4x4;
+
903 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
904  typedef aligned_mediump_vec1 aligned_vec1;
+
905  typedef aligned_mediump_vec2 aligned_vec2;
+
906  typedef aligned_mediump_vec3 aligned_vec3;
+
907  typedef aligned_mediump_vec4 aligned_vec4;
+
908  typedef packed_mediump_vec1 packed_vec1;
+
909  typedef packed_mediump_vec2 packed_vec2;
+
910  typedef packed_mediump_vec3 packed_vec3;
+
911  typedef packed_mediump_vec4 packed_vec4;
+
912 
+
913  typedef aligned_mediump_mat2 aligned_mat2;
+
914  typedef aligned_mediump_mat3 aligned_mat3;
+
915  typedef aligned_mediump_mat4 aligned_mat4;
+
916  typedef packed_mediump_mat2 packed_mat2;
+
917  typedef packed_mediump_mat3 packed_mat3;
+
918  typedef packed_mediump_mat4 packed_mat4;
+
919 
+
920  typedef aligned_mediump_mat2x2 aligned_mat2x2;
+
921  typedef aligned_mediump_mat2x3 aligned_mat2x3;
+
922  typedef aligned_mediump_mat2x4 aligned_mat2x4;
+
923  typedef aligned_mediump_mat3x2 aligned_mat3x2;
+
924  typedef aligned_mediump_mat3x3 aligned_mat3x3;
+
925  typedef aligned_mediump_mat3x4 aligned_mat3x4;
+
926  typedef aligned_mediump_mat4x2 aligned_mat4x2;
+
927  typedef aligned_mediump_mat4x3 aligned_mat4x3;
+
928  typedef aligned_mediump_mat4x4 aligned_mat4x4;
+
929  typedef packed_mediump_mat2x2 packed_mat2x2;
+
930  typedef packed_mediump_mat2x3 packed_mat2x3;
+
931  typedef packed_mediump_mat2x4 packed_mat2x4;
+
932  typedef packed_mediump_mat3x2 packed_mat3x2;
+
933  typedef packed_mediump_mat3x3 packed_mat3x3;
+
934  typedef packed_mediump_mat3x4 packed_mat3x4;
+
935  typedef packed_mediump_mat4x2 packed_mat4x2;
+
936  typedef packed_mediump_mat4x3 packed_mat4x3;
+
937  typedef packed_mediump_mat4x4 packed_mat4x4;
+
938 #else //defined(GLM_PRECISION_HIGHP_FLOAT)
+
939  typedef aligned_highp_vec1 aligned_vec1;
+
941 
+
943  typedef aligned_highp_vec2 aligned_vec2;
+
944 
+
946  typedef aligned_highp_vec3 aligned_vec3;
+
947 
+
949  typedef aligned_highp_vec4 aligned_vec4;
+
950 
+
952  typedef packed_highp_vec1 packed_vec1;
+
953 
+
955  typedef packed_highp_vec2 packed_vec2;
+
956 
+
958  typedef packed_highp_vec3 packed_vec3;
+
959 
+
961  typedef packed_highp_vec4 packed_vec4;
+
962 
+
964  typedef aligned_highp_mat2 aligned_mat2;
+
965 
+
967  typedef aligned_highp_mat3 aligned_mat3;
+
968 
+
970  typedef aligned_highp_mat4 aligned_mat4;
+
971 
+
973  typedef packed_highp_mat2 packed_mat2;
+
974 
+
976  typedef packed_highp_mat3 packed_mat3;
+
977 
+
979  typedef packed_highp_mat4 packed_mat4;
+
980 
+
982  typedef aligned_highp_mat2x2 aligned_mat2x2;
+
983 
+
985  typedef aligned_highp_mat2x3 aligned_mat2x3;
+
986 
+
988  typedef aligned_highp_mat2x4 aligned_mat2x4;
+
989 
+
991  typedef aligned_highp_mat3x2 aligned_mat3x2;
+
992 
+
994  typedef aligned_highp_mat3x3 aligned_mat3x3;
+
995 
+
997  typedef aligned_highp_mat3x4 aligned_mat3x4;
+
998 
+
1000  typedef aligned_highp_mat4x2 aligned_mat4x2;
+
1001 
+
1003  typedef aligned_highp_mat4x3 aligned_mat4x3;
+
1004 
+
1006  typedef aligned_highp_mat4x4 aligned_mat4x4;
+
1007 
+
1009  typedef packed_highp_mat2x2 packed_mat2x2;
+
1010 
+
1012  typedef packed_highp_mat2x3 packed_mat2x3;
+
1013 
+
1015  typedef packed_highp_mat2x4 packed_mat2x4;
+
1016 
+
1018  typedef packed_highp_mat3x2 packed_mat3x2;
+
1019 
+
1021  typedef packed_highp_mat3x3 packed_mat3x3;
+
1022 
+
1024  typedef packed_highp_mat3x4 packed_mat3x4;
+
1025 
+
1027  typedef packed_highp_mat4x2 packed_mat4x2;
+
1028 
+
1030  typedef packed_highp_mat4x3 packed_mat4x3;
+
1031 
+
1033  typedef packed_highp_mat4x4 packed_mat4x4;
+
1034 #endif//GLM_PRECISION
+
1035 
+
1036 #if(defined(GLM_PRECISION_LOWP_DOUBLE))
+
1037  typedef aligned_lowp_dvec1 aligned_dvec1;
+
1038  typedef aligned_lowp_dvec2 aligned_dvec2;
+
1039  typedef aligned_lowp_dvec3 aligned_dvec3;
+
1040  typedef aligned_lowp_dvec4 aligned_dvec4;
+
1041  typedef packed_lowp_dvec1 packed_dvec1;
+
1042  typedef packed_lowp_dvec2 packed_dvec2;
+
1043  typedef packed_lowp_dvec3 packed_dvec3;
+
1044  typedef packed_lowp_dvec4 packed_dvec4;
+
1045 
+
1046  typedef aligned_lowp_dmat2 aligned_dmat2;
+
1047  typedef aligned_lowp_dmat3 aligned_dmat3;
+
1048  typedef aligned_lowp_dmat4 aligned_dmat4;
+
1049  typedef packed_lowp_dmat2 packed_dmat2;
+
1050  typedef packed_lowp_dmat3 packed_dmat3;
+
1051  typedef packed_lowp_dmat4 packed_dmat4;
+
1052 
+
1053  typedef aligned_lowp_dmat2x2 aligned_dmat2x2;
+
1054  typedef aligned_lowp_dmat2x3 aligned_dmat2x3;
+
1055  typedef aligned_lowp_dmat2x4 aligned_dmat2x4;
+
1056  typedef aligned_lowp_dmat3x2 aligned_dmat3x2;
+
1057  typedef aligned_lowp_dmat3x3 aligned_dmat3x3;
+
1058  typedef aligned_lowp_dmat3x4 aligned_dmat3x4;
+
1059  typedef aligned_lowp_dmat4x2 aligned_dmat4x2;
+
1060  typedef aligned_lowp_dmat4x3 aligned_dmat4x3;
+
1061  typedef aligned_lowp_dmat4x4 aligned_dmat4x4;
+
1062  typedef packed_lowp_dmat2x2 packed_dmat2x2;
+
1063  typedef packed_lowp_dmat2x3 packed_dmat2x3;
+
1064  typedef packed_lowp_dmat2x4 packed_dmat2x4;
+
1065  typedef packed_lowp_dmat3x2 packed_dmat3x2;
+
1066  typedef packed_lowp_dmat3x3 packed_dmat3x3;
+
1067  typedef packed_lowp_dmat3x4 packed_dmat3x4;
+
1068  typedef packed_lowp_dmat4x2 packed_dmat4x2;
+
1069  typedef packed_lowp_dmat4x3 packed_dmat4x3;
+
1070  typedef packed_lowp_dmat4x4 packed_dmat4x4;
+
1071 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
+
1072  typedef aligned_mediump_dvec1 aligned_dvec1;
+
1073  typedef aligned_mediump_dvec2 aligned_dvec2;
+
1074  typedef aligned_mediump_dvec3 aligned_dvec3;
+
1075  typedef aligned_mediump_dvec4 aligned_dvec4;
+
1076  typedef packed_mediump_dvec1 packed_dvec1;
+
1077  typedef packed_mediump_dvec2 packed_dvec2;
+
1078  typedef packed_mediump_dvec3 packed_dvec3;
+
1079  typedef packed_mediump_dvec4 packed_dvec4;
+
1080 
+
1081  typedef aligned_mediump_dmat2 aligned_dmat2;
+
1082  typedef aligned_mediump_dmat3 aligned_dmat3;
+
1083  typedef aligned_mediump_dmat4 aligned_dmat4;
+
1084  typedef packed_mediump_dmat2 packed_dmat2;
+
1085  typedef packed_mediump_dmat3 packed_dmat3;
+
1086  typedef packed_mediump_dmat4 packed_dmat4;
+
1087 
+
1088  typedef aligned_mediump_dmat2x2 aligned_dmat2x2;
+
1089  typedef aligned_mediump_dmat2x3 aligned_dmat2x3;
+
1090  typedef aligned_mediump_dmat2x4 aligned_dmat2x4;
+
1091  typedef aligned_mediump_dmat3x2 aligned_dmat3x2;
+
1092  typedef aligned_mediump_dmat3x3 aligned_dmat3x3;
+
1093  typedef aligned_mediump_dmat3x4 aligned_dmat3x4;
+
1094  typedef aligned_mediump_dmat4x2 aligned_dmat4x2;
+
1095  typedef aligned_mediump_dmat4x3 aligned_dmat4x3;
+
1096  typedef aligned_mediump_dmat4x4 aligned_dmat4x4;
+
1097  typedef packed_mediump_dmat2x2 packed_dmat2x2;
+
1098  typedef packed_mediump_dmat2x3 packed_dmat2x3;
+
1099  typedef packed_mediump_dmat2x4 packed_dmat2x4;
+
1100  typedef packed_mediump_dmat3x2 packed_dmat3x2;
+
1101  typedef packed_mediump_dmat3x3 packed_dmat3x3;
+
1102  typedef packed_mediump_dmat3x4 packed_dmat3x4;
+
1103  typedef packed_mediump_dmat4x2 packed_dmat4x2;
+
1104  typedef packed_mediump_dmat4x3 packed_dmat4x3;
+
1105  typedef packed_mediump_dmat4x4 packed_dmat4x4;
+
1106 #else //defined(GLM_PRECISION_HIGHP_DOUBLE)
+
1107  typedef aligned_highp_dvec1 aligned_dvec1;
+
1109 
+
1111  typedef aligned_highp_dvec2 aligned_dvec2;
+
1112 
+
1114  typedef aligned_highp_dvec3 aligned_dvec3;
+
1115 
+
1117  typedef aligned_highp_dvec4 aligned_dvec4;
+
1118 
+
1120  typedef packed_highp_dvec1 packed_dvec1;
+
1121 
+
1123  typedef packed_highp_dvec2 packed_dvec2;
+
1124 
+
1126  typedef packed_highp_dvec3 packed_dvec3;
+
1127 
+
1129  typedef packed_highp_dvec4 packed_dvec4;
+
1130 
+
1132  typedef aligned_highp_dmat2 aligned_dmat2;
+
1133 
+
1135  typedef aligned_highp_dmat3 aligned_dmat3;
+
1136 
+
1138  typedef aligned_highp_dmat4 aligned_dmat4;
+
1139 
+
1141  typedef packed_highp_dmat2 packed_dmat2;
+
1142 
+
1144  typedef packed_highp_dmat3 packed_dmat3;
+
1145 
+
1147  typedef packed_highp_dmat4 packed_dmat4;
+
1148 
+
1150  typedef aligned_highp_dmat2x2 aligned_dmat2x2;
+
1151 
+
1153  typedef aligned_highp_dmat2x3 aligned_dmat2x3;
+
1154 
+
1156  typedef aligned_highp_dmat2x4 aligned_dmat2x4;
+
1157 
+
1159  typedef aligned_highp_dmat3x2 aligned_dmat3x2;
+
1160 
+
1162  typedef aligned_highp_dmat3x3 aligned_dmat3x3;
+
1163 
+
1165  typedef aligned_highp_dmat3x4 aligned_dmat3x4;
+
1166 
+
1168  typedef aligned_highp_dmat4x2 aligned_dmat4x2;
+
1169 
+
1171  typedef aligned_highp_dmat4x3 aligned_dmat4x3;
+
1172 
+
1174  typedef aligned_highp_dmat4x4 aligned_dmat4x4;
+
1175 
+
1177  typedef packed_highp_dmat2x2 packed_dmat2x2;
+
1178 
+
1180  typedef packed_highp_dmat2x3 packed_dmat2x3;
+
1181 
+
1183  typedef packed_highp_dmat2x4 packed_dmat2x4;
+
1184 
+
1186  typedef packed_highp_dmat3x2 packed_dmat3x2;
+
1187 
+
1189  typedef packed_highp_dmat3x3 packed_dmat3x3;
+
1190 
+
1192  typedef packed_highp_dmat3x4 packed_dmat3x4;
+
1193 
+
1195  typedef packed_highp_dmat4x2 packed_dmat4x2;
+
1196 
+
1198  typedef packed_highp_dmat4x3 packed_dmat4x3;
+
1199 
+
1201  typedef packed_highp_dmat4x4 packed_dmat4x4;
+
1202 #endif//GLM_PRECISION
+
1203 
+
1204 #if(defined(GLM_PRECISION_LOWP_INT))
+
1205  typedef aligned_lowp_ivec1 aligned_ivec1;
+
1206  typedef aligned_lowp_ivec2 aligned_ivec2;
+
1207  typedef aligned_lowp_ivec3 aligned_ivec3;
+
1208  typedef aligned_lowp_ivec4 aligned_ivec4;
+
1209 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
+
1210  typedef aligned_mediump_ivec1 aligned_ivec1;
+
1211  typedef aligned_mediump_ivec2 aligned_ivec2;
+
1212  typedef aligned_mediump_ivec3 aligned_ivec3;
+
1213  typedef aligned_mediump_ivec4 aligned_ivec4;
+
1214 #else //defined(GLM_PRECISION_HIGHP_INT)
+
1215  typedef aligned_highp_ivec1 aligned_ivec1;
+
1217 
+
1219  typedef aligned_highp_ivec2 aligned_ivec2;
+
1220 
+
1222  typedef aligned_highp_ivec3 aligned_ivec3;
+
1223 
+
1225  typedef aligned_highp_ivec4 aligned_ivec4;
+
1226 
+
1228  typedef packed_highp_ivec1 packed_ivec1;
+
1229 
+
1231  typedef packed_highp_ivec2 packed_ivec2;
+
1232 
+
1234  typedef packed_highp_ivec3 packed_ivec3;
+
1235 
+
1237  typedef packed_highp_ivec4 packed_ivec4;
+
1238 #endif//GLM_PRECISION
+
1239 
+
1240  // -- Unsigned integer definition --
+
1241 
+
1242 #if(defined(GLM_PRECISION_LOWP_UINT))
+
1243  typedef aligned_lowp_uvec1 aligned_uvec1;
+
1244  typedef aligned_lowp_uvec2 aligned_uvec2;
+
1245  typedef aligned_lowp_uvec3 aligned_uvec3;
+
1246  typedef aligned_lowp_uvec4 aligned_uvec4;
+
1247 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
+
1248  typedef aligned_mediump_uvec1 aligned_uvec1;
+
1249  typedef aligned_mediump_uvec2 aligned_uvec2;
+
1250  typedef aligned_mediump_uvec3 aligned_uvec3;
+
1251  typedef aligned_mediump_uvec4 aligned_uvec4;
+
1252 #else //defined(GLM_PRECISION_HIGHP_UINT)
+
1253  typedef aligned_highp_uvec1 aligned_uvec1;
+
1255 
+
1257  typedef aligned_highp_uvec2 aligned_uvec2;
+
1258 
+
1260  typedef aligned_highp_uvec3 aligned_uvec3;
+
1261 
+
1263  typedef aligned_highp_uvec4 aligned_uvec4;
+
1264 
+
1266  typedef packed_highp_uvec1 packed_uvec1;
+
1267 
+
1269  typedef packed_highp_uvec2 packed_uvec2;
+
1270 
+
1272  typedef packed_highp_uvec3 packed_uvec3;
+
1273 
+
1275  typedef packed_highp_uvec4 packed_uvec4;
+
1276 #endif//GLM_PRECISION
+
1277 
+
1278 #if(defined(GLM_PRECISION_LOWP_BOOL))
+
1279  typedef aligned_lowp_bvec1 aligned_bvec1;
+
1280  typedef aligned_lowp_bvec2 aligned_bvec2;
+
1281  typedef aligned_lowp_bvec3 aligned_bvec3;
+
1282  typedef aligned_lowp_bvec4 aligned_bvec4;
+
1283 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
+
1284  typedef aligned_mediump_bvec1 aligned_bvec1;
+
1285  typedef aligned_mediump_bvec2 aligned_bvec2;
+
1286  typedef aligned_mediump_bvec3 aligned_bvec3;
+
1287  typedef aligned_mediump_bvec4 aligned_bvec4;
+
1288 #else //defined(GLM_PRECISION_HIGHP_BOOL)
+
1289  typedef aligned_highp_bvec1 aligned_bvec1;
+
1291 
+
1293  typedef aligned_highp_bvec2 aligned_bvec2;
+
1294 
+
1296  typedef aligned_highp_bvec3 aligned_bvec3;
+
1297 
+
1299  typedef aligned_highp_bvec4 aligned_bvec4;
+
1300 
+
1302  typedef packed_highp_bvec1 packed_bvec1;
+
1303 
+
1305  typedef packed_highp_bvec2 packed_bvec2;
+
1306 
+
1308  typedef packed_highp_bvec3 packed_bvec3;
+
1309 
+
1311  typedef packed_highp_bvec4 packed_bvec4;
+
1312 #endif//GLM_PRECISION
+
1313 
+
1315 }//namespace glm
+
packed_highp_uvec3 packed_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
+
packed_highp_mat2x2 packed_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
+
mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
4 components vector aligned in memory of bool values.
+
vec< 4, double, packed_highp > packed_highp_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
+
packed_highp_dmat2x3 packed_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
+
vec< 3, bool, packed_lowp > packed_lowp_bvec3
3 components vector tightly packed in memory of bool values.
+
packed_highp_mat4 packed_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
+
aligned_highp_uvec2 aligned_uvec2
2 components vector aligned in memory of unsigned integer numbers.
+
vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
2 components vector aligned in memory of bool values.
+
vec< 3, int, packed_highp > packed_highp_ivec3
3 components vector tightly packed in memory of signed integer numbers.
+
mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
packed_highp_dmat2 packed_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 3, 3, double, packed_highp > packed_highp_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
vec< 2, int, aligned_mediump > aligned_mediump_ivec2
2 components vector aligned in memory of signed integer numbers.
+
mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
packed_highp_ivec3 packed_ivec3
3 components vector tightly packed in memory of signed integer numbers.
+
mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
packed_highp_mat2 packed_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
+
mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
vec< 2, float, aligned_mediump > aligned_mediump_vec2
2 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
+
mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
packed_highp_mat3 packed_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
+
packed_highp_dmat4 packed_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
+
packed_highp_vec4 packed_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers.
+
vec< 4, float, aligned_highp > aligned_highp_vec4
4 components vector aligned in memory of single-precision floating-point numbers using high precision...
+
mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
vec< 1, double, aligned_mediump > aligned_mediump_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using medium precisio...
+
mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
packed_highp_dvec3 packed_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers.
+
vec< 1, double, packed_mediump > packed_mediump_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using medium p...
+
packed_highp_uvec1 packed_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
+
mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
1 component vector aligned in memory of unsigned integer numbers.
+
mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
aligned_highp_ivec3 aligned_ivec3
3 components vector aligned in memory of signed integer numbers.
+
mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
packed_highp_vec2 packed_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers.
+
vec< 1, uint, packed_highp > packed_highp_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
+
mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 1, bool, packed_highp > packed_highp_bvec1
1 component vector tightly packed in memory of bool values.
+
aligned_highp_bvec4 aligned_bvec4
4 components vector aligned in memory of bool values.
+
aligned_highp_vec3 aligned_vec3
3 components vector aligned in memory of single-precision floating-point numbers. ...
+
mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
aligned_highp_uvec3 aligned_uvec3
3 components vector aligned in memory of unsigned integer numbers.
+
mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 3, 3, float, aligned_highp > aligned_highp_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
vec< 2, uint, packed_mediump > packed_mediump_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
+
vec< 3, float, aligned_highp > aligned_highp_vec3
3 components vector aligned in memory of single-precision floating-point numbers using high precision...
+
aligned_highp_mat4x3 aligned_mat4x3
4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
vec< 4, int, aligned_lowp > aligned_lowp_ivec4
4 components vector aligned in memory of signed integer numbers.
+
mat< 2, 2, float, aligned_highp > aligned_highp_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
packed_highp_vec1 packed_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers.
+
vec< 2, int, aligned_lowp > aligned_lowp_ivec2
2 components vector aligned in memory of signed integer numbers.
+
mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
aligned_highp_dvec3 aligned_dvec3
3 components vector aligned in memory of double-precision floating-point numbers. ...
+
vec< 1, float, packed_lowp > packed_lowp_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using low prec...
+
vec< 3, bool, packed_mediump > packed_mediump_bvec3
3 components vector tightly packed in memory of bool values.
+
aligned_highp_dvec1 aligned_dvec1
1 component vector aligned in memory of double-precision floating-point numbers.
+
packed_highp_uvec4 packed_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
+
packed_highp_dmat3 packed_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
+
vec< 2, float, aligned_highp > aligned_highp_vec2
2 components vector aligned in memory of single-precision floating-point numbers using high precision...
+
mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
3 components vector aligned in memory of unsigned integer numbers.
+
vec< 1, double, aligned_lowp > aligned_lowp_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using low precision a...
+
vec< 1, float, aligned_mediump > aligned_mediump_vec1
1 component vector aligned in memory of single-precision floating-point numbers using medium precisio...
+
mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 4, 2, float, packed_highp > packed_highp_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
vec< 3, double, aligned_lowp > aligned_lowp_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using low precision ...
+
mat< 2, 2, float, packed_mediump > packed_mediump_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
packed_highp_mat3x3 packed_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
+
vec< 1, double, packed_highp > packed_highp_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using high pre...
+
mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 3, 3, float, packed_mediump > packed_mediump_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
packed_highp_dmat4x4 packed_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 4, 4, float, packed_lowp > packed_lowp_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 1, float, packed_highp > packed_highp_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using high pre...
+
mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 2, 2, float, packed_highp > packed_highp_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
2 components vector aligned in memory of bool values.
+
mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
vec< 4, float, packed_mediump > packed_mediump_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
+
aligned_highp_dmat4x2 aligned_dmat4x2
4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
mat< 4, 3, float, packed_highp > packed_highp_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
1 component vector aligned in memory of bool values.
+
aligned_highp_mat2 aligned_mat2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
vec< 3, int, aligned_mediump > aligned_mediump_ivec3
3 components vector aligned in memory of signed integer numbers.
+
aligned_highp_bvec3 aligned_bvec3
3 components vector aligned in memory of bool values.
+
packed_highp_uvec2 packed_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
+
vec< 4, double, aligned_lowp > aligned_lowp_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using low precision ...
+
mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
vec< 4, uint, aligned_highp > aligned_highp_uvec4
4 components vector aligned in memory of unsigned integer numbers.
+
mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 2, float, aligned_lowp > aligned_lowp_vec2
2 components vector aligned in memory of single-precision floating-point numbers using low precision ...
+
vec< 1, int, packed_lowp > packed_lowp_ivec1
1 component vector tightly packed in memory of signed integer numbers.
+
vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
3 components vector aligned in memory of bool values.
+
mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
mat< 4, 4, double, packed_highp > packed_highp_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
vec< 3, uint, packed_highp > packed_highp_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
+
aligned_highp_dmat2x2 aligned_dmat2x2
2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
mat< 3, 4, float, packed_highp > packed_highp_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
packed_highp_mat3x4 packed_mat3x4
3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
+
mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
vec< 1, uint, packed_mediump > packed_mediump_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
+
mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
packed_highp_mat4x3 packed_mat4x3
4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
+
vec< 4, int, packed_lowp > packed_lowp_ivec4
4 components vector tightly packed in memory of signed integer numbers.
+
vec< 4, int, packed_mediump > packed_mediump_ivec4
4 components vector tightly packed in memory of signed integer numbers.
+
vec< 2, double, aligned_mediump > aligned_mediump_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
+
packed_highp_ivec2 packed_ivec2
2 components vector tightly packed in memory of signed integer numbers.
+
aligned_highp_ivec1 aligned_ivec1
1 component vector aligned in memory of signed integer numbers.
+
vec< 3, int, packed_mediump > packed_mediump_ivec3
3 components vector tightly packed in memory of signed integer numbers.
+
vec< 3, uint, packed_lowp > packed_lowp_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
+
packed_highp_dmat4x2 packed_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
+
vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
4 components vector aligned in memory of bool values.
+
vec< 2, bool, aligned_highp > aligned_highp_bvec2
2 components vector aligned in memory of bool values.
+
vec< 4, float, packed_lowp > packed_lowp_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
+
vec< 4, double, aligned_highp > aligned_highp_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using high precision...
+
mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
vec< 4, bool, packed_lowp > packed_lowp_bvec4
4 components vector tightly packed in memory of bool values.
+
vec< 2, double, packed_mediump > packed_mediump_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
+
vec< 2, double, aligned_highp > aligned_highp_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using high precision...
+
mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
aligned_highp_mat2x3 aligned_mat2x3
2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 2, 2, float, packed_lowp > packed_lowp_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 4, int, aligned_mediump > aligned_mediump_ivec4
4 components vector aligned in memory of signed integer numbers.
+
vec< 2, bool, packed_lowp > packed_lowp_bvec2
2 components vector tightly packed in memory of bool values.
+
vec< 2, int, packed_highp > packed_highp_ivec2
2 components vector tightly packed in memory of signed integer numbers.
+
packed_highp_dmat3x4 packed_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
packed_highp_mat4x4 packed_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
+
mat< 4, 4, float, packed_highp > packed_highp_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
vec< 1, double, packed_lowp > packed_lowp_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers using low prec...
+
mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
vec< 3, uint, packed_mediump > packed_mediump_uvec3
3 components vector tightly packed in memory of unsigned integer numbers.
+
aligned_highp_dmat4x3 aligned_dmat4x3
4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
aligned_highp_mat3x4 aligned_mat3x4
3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
aligned_highp_mat4 aligned_mat4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
vec< 2, int, packed_mediump > packed_mediump_ivec2
2 components vector tightly packed in memory of signed integer numbers.
+
packed_highp_dmat3x2 packed_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
vec< 3, float, aligned_lowp > aligned_lowp_vec3
3 components vector aligned in memory of single-precision floating-point numbers using low precision ...
+
mat< 2, 4, float, packed_highp > packed_highp_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
vec< 4, float, packed_highp > packed_highp_vec4
4 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
+
aligned_highp_uvec1 aligned_uvec1
1 component vector aligned in memory of unsigned integer numbers.
+
mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
mat< 3, 3, float, packed_lowp > packed_lowp_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 4, bool, packed_highp > packed_highp_bvec4
4 components vector tightly packed in memory of bool values.
+
aligned_highp_vec1 aligned_vec1
1 component vector aligned in memory of single-precision floating-point numbers.
+
packed_highp_vec3 packed_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers.
+
packed_highp_mat2x3 packed_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
+
vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
3 components vector aligned in memory of bool values.
+
vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
1 component vector aligned in memory of unsigned integer numbers.
+
aligned_highp_bvec2 aligned_bvec2
2 components vector aligned in memory of bool values.
+
packed_highp_dmat2x2 packed_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
packed_highp_dmat2x4 packed_dmat2x4
2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
+
vec< 3, uint, aligned_highp > aligned_highp_uvec3
3 components vector aligned in memory of unsigned integer numbers.
+
vec< 2, bool, packed_mediump > packed_mediump_bvec2
2 components vector tightly packed in memory of bool values.
+
aligned_highp_bvec1 aligned_bvec1
1 component vector aligned in memory of bool values.
+
aligned_highp_mat3x2 aligned_mat3x2
3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
vec< 1, int, aligned_lowp > aligned_lowp_ivec1
1 component vector aligned in memory of signed integer numbers.
+
mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
mat< 2, 3, float, packed_highp > packed_highp_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
aligned_highp_uvec4 aligned_uvec4
4 components vector aligned in memory of unsigned integer numbers.
+
packed_highp_bvec2 packed_bvec2
2 components vector tightly packed in memory of bool values.
+
mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
packed_highp_bvec4 packed_bvec4
4 components vector tightly packed in memory of bool values.
+
aligned_highp_ivec4 aligned_ivec4
4 components vector aligned in memory of signed integer numbers.
+
mat< 3, 3, float, packed_highp > packed_highp_mat3x3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
vec< 4, int, packed_highp > packed_highp_ivec4
4 components vector tightly packed in memory of signed integer numbers.
+
packed_highp_mat3x2 packed_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
+
vec< 2, uint, aligned_highp > aligned_highp_uvec2
2 components vector aligned in memory of unsigned integer numbers.
+
aligned_highp_dmat3 aligned_dmat3
3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
+
vec< 3, int, aligned_highp > aligned_highp_ivec3
3 components vector aligned in memory of signed integer numbers.
+
mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
vec< 1, uint, aligned_highp > aligned_highp_uvec1
1 component vector aligned in memory of unsigned integer numbers.
+
aligned_highp_mat2x4 aligned_mat2x4
2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
packed_highp_dvec1 packed_dvec1
1 component vector tightly packed in memory of double-precision floating-point numbers.
+
aligned_highp_dmat2x4 aligned_dmat2x4
2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
vec< 3, double, packed_lowp > packed_lowp_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
+
vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
4 components vector aligned in memory of unsigned integer numbers.
+
vec< 4, uint, packed_highp > packed_highp_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
+
mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
aligned_highp_vec2 aligned_vec2
2 components vector aligned in memory of single-precision floating-point numbers. ...
+
aligned_highp_mat2x2 aligned_mat2x2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
aligned_highp_dmat3x3 aligned_dmat3x3
3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
+
vec< 2, double, packed_highp > packed_highp_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
+
mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
vec< 1, uint, packed_lowp > packed_lowp_uvec1
1 component vector tightly packed in memory of unsigned integer numbers.
+
vec< 2, uint, packed_lowp > packed_lowp_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
+
packed_highp_dmat4x3 packed_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
+
mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
mat< 3, 3, float, packed_highp > packed_highp_mat3
3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
aligned_highp_dmat2x3 aligned_dmat2x3
2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
vec< 1, bool, packed_mediump > packed_mediump_bvec1
1 component vector tightly packed in memory of bool values.
+
mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
packed_highp_ivec1 packed_ivec1
1 component vector tightly packed in memory of signed integer numbers.
+
vec< 1, bool, packed_lowp > packed_lowp_bvec1
1 component vector tightly packed in memory of bool values.
+
aligned_highp_dmat3x2 aligned_dmat3x2
3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
aligned_highp_ivec2 aligned_ivec2
2 components vector aligned in memory of signed integer numbers.
+
aligned_highp_dmat4x4 aligned_dmat4x4
4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
vec< 4, bool, aligned_highp > aligned_highp_bvec4
4 components vector aligned in memory of bool values.
+
vec< 4, bool, packed_mediump > packed_mediump_bvec4
4 components vector tightly packed in memory of bool values.
+
mat< 2, 2, float, packed_highp > packed_highp_mat2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
packed_highp_mat2x4 packed_mat2x4
2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
+
mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
1 component vector aligned in memory of bool values.
+
mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
mat< 4, 4, float, packed_mediump > packed_mediump_mat4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
vec< 1, float, packed_mediump > packed_mediump_vec1
1 component vector tightly packed in memory of single-precision floating-point numbers using medium p...
+
aligned_highp_mat4x4 aligned_mat4x4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
aligned_highp_mat4x2 aligned_mat4x2
4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
vec< 3, float, packed_highp > packed_highp_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
+
aligned_highp_dvec4 aligned_dvec4
4 components vector aligned in memory of double-precision floating-point numbers. ...
+
vec< 1, int, aligned_highp > aligned_highp_ivec1
1 component vector aligned in memory of signed integer numbers.
+
mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
aligned_highp_dmat3x4 aligned_dmat3x4
3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
+
packed_highp_bvec3 packed_bvec3
3 components vector tightly packed in memory of bool values.
+
mat< 4, 4, float, packed_highp > packed_highp_mat4x4
4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
vec< 3, float, packed_mediump > packed_mediump_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
+
vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
2 components vector aligned in memory of unsigned integer numbers.
+
vec< 1, bool, aligned_highp > aligned_highp_bvec1
1 component vector aligned in memory of bool values.
+
vec< 2, bool, packed_highp > packed_highp_bvec2
2 components vector tightly packed in memory of bool values.
+
vec< 1, int, packed_highp > packed_highp_ivec1
1 component vector tightly packed in memory of signed integer numbers.
+
mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
vec< 2, int, packed_lowp > packed_lowp_ivec2
2 components vector tightly packed in memory of signed integer numbers.
+
vec< 3, double, packed_highp > packed_highp_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using high pr...
+
vec< 2, int, aligned_highp > aligned_highp_ivec2
2 components vector aligned in memory of signed integer numbers.
+
aligned_highp_dmat2 aligned_dmat2
2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
3 components vector aligned in memory of unsigned integer numbers.
+
vec< 4, double, packed_lowp > packed_lowp_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
+
vec< 3, double, packed_mediump > packed_mediump_dvec3
3 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
+
mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
vec< 3, int, aligned_lowp > aligned_lowp_ivec3
3 components vector aligned in memory of signed integer numbers.
+
mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
vec< 3, bool, aligned_highp > aligned_highp_bvec3
3 components vector aligned in memory of bool values.
+
vec< 3, float, packed_lowp > packed_lowp_vec3
3 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
+
vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
2 components vector aligned in memory of unsigned integer numbers.
+
vec< 1, int, packed_mediump > packed_mediump_ivec1
1 component vector tightly packed in memory of signed integer numbers.
+
mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
vec< 4, uint, packed_mediump > packed_mediump_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
+
mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
vec< 2, uint, packed_highp > packed_highp_uvec2
2 components vector tightly packed in memory of unsigned integer numbers.
+
vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
4 components vector aligned in memory of unsigned integer numbers.
+
vec< 4, double, packed_mediump > packed_mediump_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers using medium ...
+
aligned_highp_vec4 aligned_vec4
4 components vector aligned in memory of single-precision floating-point numbers. ...
+
vec< 4, int, aligned_highp > aligned_highp_ivec4
4 components vector aligned in memory of signed integer numbers.
+
vec< 2, double, aligned_lowp > aligned_lowp_dvec2
2 components vector aligned in memory of double-precision floating-point numbers using low precision ...
+
packed_highp_bvec1 packed_bvec1
1 components vector tightly packed in memory of bool values.
+
mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision...
+
vec< 1, float, aligned_lowp > aligned_lowp_vec1
1 component vector aligned in memory of single-precision floating-point numbers using low precision a...
+
vec< 2, float, packed_lowp > packed_lowp_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using low pre...
+
vec< 1, double, aligned_highp > aligned_highp_dvec1
1 component vector aligned in memory of double-precision floating-point numbers using high precision ...
+
mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
vec< 4, float, aligned_mediump > aligned_mediump_vec4
4 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
+
packed_highp_dvec4 packed_dvec4
4 components vector tightly packed in memory of double-precision floating-point numbers.
+
vec< 4, double, aligned_mediump > aligned_mediump_dvec4
4 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
+
mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precis...
+
mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
mat< 4, 4, float, aligned_highp > aligned_highp_mat4
4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
packed_highp_dmat3x3 packed_dmat3x3
3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
+
aligned_highp_mat3x3 aligned_mat3x3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
vec< 3, int, packed_lowp > packed_lowp_ivec3
3 components vector tightly packed in memory of signed integer numbers.
+
aligned_highp_dmat4 aligned_dmat4
4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
+
mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arith...
+
vec< 2, float, packed_highp > packed_highp_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using high pr...
+
mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithm...
+
vec< 4, uint, packed_lowp > packed_lowp_uvec4
4 components vector tightly packed in memory of unsigned integer numbers.
+
packed_highp_ivec4 packed_ivec4
4 components vector tightly packed in memory of signed integer numbers.
+
packed_highp_dvec2 packed_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers.
+
mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision...
+
mat< 3, 2, float, packed_highp > packed_highp_mat3x2
3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precisio...
+
mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
vec< 1, int, aligned_mediump > aligned_mediump_ivec1
1 component vector aligned in memory of signed integer numbers.
+
mat< 2, 2, double, packed_highp > packed_highp_dmat2
2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precisio...
+
vec< 2, float, packed_mediump > packed_mediump_vec2
2 components vector tightly packed in memory of single-precision floating-point numbers using medium ...
+
aligned_highp_mat3 aligned_mat3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision ari...
+
mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precis...
+
mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arith...
+
aligned_highp_dvec2 aligned_dvec2
2 components vector aligned in memory of double-precision floating-point numbers. ...
+
mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithm...
+
packed_highp_mat4x2 packed_mat4x2
4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
+
vec< 4, float, aligned_lowp > aligned_lowp_vec4
4 components vector aligned in memory of single-precision floating-point numbers using low precision ...
+
vec< 3, bool, packed_highp > packed_highp_bvec3
3 components vector tightly packed in memory of bool values.
+
vec< 2, double, packed_lowp > packed_lowp_dvec2
2 components vector tightly packed in memory of double-precision floating-point numbers using low pre...
+
vec< 3, double, aligned_mediump > aligned_mediump_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using medium precisi...
+
vec< 3, float, aligned_mediump > aligned_mediump_vec3
3 components vector aligned in memory of single-precision floating-point numbers using medium precisi...
+
mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision ari...
+
Definition: common.hpp:20
+
vec< 3, double, aligned_highp > aligned_highp_dvec3
3 components vector aligned in memory of double-precision floating-point numbers using high precision...
+
vec< 1, float, aligned_highp > aligned_highp_vec1
1 component vector aligned in memory of single-precision floating-point numbers using high precision ...
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00162.html b/external/include/glm-0.9.9.8/doc/api/a00162.html index df96222fe4..39c6337403 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00162.html +++ b/external/include/glm-0.9.9.8/doc/api/a00162.html @@ -1,735 +1,735 @@ - - - - - - -0.9.9 API documentation: type_aligned.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
gtx/type_aligned.hpp File Reference
-
-
- -

GLM_GTX_type_aligned -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 Default qualifier 8 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 Default qualifier 8 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 Default qualifier 8 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 Default qualifier 16 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 Default qualifier 16 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 Default qualifier 16 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 Default qualifier 64 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 Default qualifier 64 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 Default qualifier 64 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 Default qualifier 8 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 Default qualifier 16 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 Default qualifier 64 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 Double-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 Double-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 Double-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 Double-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 Double-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 Double-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_fquat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
-

Detailed Description

-

GLM_GTX_type_aligned

-
See also
Core features (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file gtx/type_aligned.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_aligned.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
gtx/type_aligned.hpp File Reference
+
+
+ +

GLM_GTX_type_aligned +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 Default qualifier 8 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 Default qualifier 8 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 Default qualifier 8 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 Default qualifier 16 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 Default qualifier 16 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 Default qualifier 16 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 Default qualifier 64 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 Default qualifier 64 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 Default qualifier 64 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 Default qualifier 8 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 Default qualifier 16 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 Default qualifier 64 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 Double-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 Double-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 Double-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 Double-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 Double-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 Double-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_fquat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
+

Detailed Description

+

GLM_GTX_type_aligned

+
See also
Core features (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file gtx/type_aligned.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00162_source.html b/external/include/glm-0.9.9.8/doc/api/a00162_source.html index fbd21e73de..017457683d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00162_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00162_source.html @@ -1,842 +1,842 @@ - - - - - - -0.9.9 API documentation: type_aligned.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
gtx/type_aligned.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../gtc/type_precision.hpp"
-
18 #include "../gtc/quaternion.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_type_aligned extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
31  // Signed int vector types
-
32 
-
35 
-
38  GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1);
-
39 
-
42  GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2);
-
43 
-
46  GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4);
-
47 
-
50  GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8);
-
51 
-
52 
-
55  GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1);
-
56 
-
59  GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2);
-
60 
-
63  GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4);
-
64 
-
67  GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8);
-
68 
-
69 
-
72  GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1);
-
73 
-
76  GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2);
-
77 
-
80  GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4);
-
81 
-
84  GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8);
-
85 
-
86 
-
89  GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1);
-
90 
-
93  GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2);
-
94 
-
97  GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4);
-
98 
-
101  GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8);
-
102 
-
103 
-
106  GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1);
-
107 
-
110  GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2);
-
111 
-
114  GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4);
-
115 
-
118  GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8);
-
119 
-
120 
-
123  GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1);
-
124 
-
127  GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2);
-
128 
-
131  GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4);
-
132 
-
135  GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8);
-
136 
-
137 
-
140  GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1);
-
141 
-
144  GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2);
-
145 
-
148  GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4);
-
149 
-
152  GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8);
-
153 
-
154 
-
157  GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1);
-
158 
-
161  GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2);
-
162 
-
165  GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4);
-
166 
-
169  GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8);
-
170 
-
171 
-
174  GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1);
-
175 
-
178  GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2);
-
179 
-
182  GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4);
-
183 
-
186  GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8);
-
187 
-
188 
-
191  GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1);
-
192 
-
195  GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2);
-
196 
-
199  GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4);
-
200 
-
203  GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8);
-
204 
-
205 
-
208  GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1);
-
209 
-
212  GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2);
-
213 
-
216  GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4);
-
217 
-
220  GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8);
-
221 
-
222 
-
225  GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1);
-
226 
-
229  GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2);
-
230 
-
233  GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4);
-
234 
-
237  GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8);
-
238 
-
239 
- -
243 
- -
247 
- -
251 
- -
255 
-
256 
-
259  GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1);
-
260 
-
263  GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2);
-
264 
-
267  GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4);
-
268 
-
271  GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4);
-
272 
-
273 
-
276  GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2);
-
277 
-
280  GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4);
-
281 
-
284  GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8);
-
285 
-
288  GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8);
-
289 
-
290 
-
293  GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4);
-
294 
-
297  GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8);
-
298 
-
301  GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16);
-
302 
-
305  GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16);
-
306 
-
307 
-
310  GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8);
-
311 
-
314  GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16);
-
315 
-
318  GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32);
-
319 
-
322  GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32);
-
323 
-
324 
-
326  // Unsigned int vector types
-
327 
-
330  GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1);
-
331 
-
334  GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2);
-
335 
-
338  GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4);
-
339 
-
342  GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8);
-
343 
-
344 
-
347  GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1);
-
348 
-
351  GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2);
-
352 
-
355  GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4);
-
356 
-
359  GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8);
-
360 
-
361 
-
364  GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1);
-
365 
-
368  GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2);
-
369 
-
372  GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4);
-
373 
-
376  GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8);
-
377 
-
378 
-
381  GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1);
-
382 
-
385  GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2);
-
386 
-
389  GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4);
-
390 
-
393  GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8);
-
394 
-
395 
-
398  GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1);
-
399 
-
402  GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2);
-
403 
-
406  GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4);
-
407 
-
410  GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8);
-
411 
-
412 
-
415  GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1);
-
416 
-
419  GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2);
-
420 
-
423  GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4);
-
424 
-
427  GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8);
-
428 
-
429 
-
432  GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1);
-
433 
-
436  GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2);
-
437 
-
440  GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4);
-
441 
-
444  GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8);
-
445 
-
446 
-
449  GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1);
-
450 
-
453  GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2);
-
454 
-
457  GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4);
-
458 
-
461  GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8);
-
462 
-
463 
-
466  GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1);
-
467 
-
470  GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2);
-
471 
-
474  GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4);
-
475 
-
478  GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8);
-
479 
-
480 
-
483  GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1);
-
484 
-
487  GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2);
-
488 
-
491  GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4);
-
492 
-
495  GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8);
-
496 
-
497 
-
500  GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1);
-
501 
-
504  GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2);
-
505 
-
508  GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4);
-
509 
-
512  GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8);
-
513 
-
514 
-
517  GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1);
-
518 
-
521  GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2);
-
522 
-
525  GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4);
-
526 
-
529  GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8);
-
530 
-
531 
- -
535 
- -
539 
- -
543 
- -
547 
-
548 
-
551  GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1);
-
552 
-
555  GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2);
-
556 
-
559  GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4);
-
560 
-
563  GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4);
-
564 
-
565 
-
568  GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2);
-
569 
-
572  GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4);
-
573 
-
576  GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8);
-
577 
-
580  GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8);
-
581 
-
582 
-
585  GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4);
-
586 
-
589  GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8);
-
590 
-
593  GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16);
-
594 
-
597  GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16);
-
598 
-
599 
-
602  GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8);
-
603 
-
606  GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16);
-
607 
-
610  GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32);
-
611 
-
614  GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32);
-
615 
-
616 
-
618  // Float vector types
-
619 
-
622  GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4);
-
623 
-
626  GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4);
-
627 
-
630  GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4);
-
631 
-
632 # ifndef GLM_FORCE_SINGLE_ONLY
-
633 
-
636  GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8);
-
637 
-
640  GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8);
-
641 
-
644  GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8);
-
645 
-
646 # endif//GLM_FORCE_SINGLE_ONLY
-
647 
-
648 
- -
652 
- -
656 
- -
660 
- -
664 
-
665 
-
668  GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4);
-
669 
-
672  GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8);
-
673 
-
676  GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16);
-
677 
-
680  GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16);
-
681 
-
682 
-
685  GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4);
-
686 
-
689  GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8);
-
690 
-
693  GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16);
-
694 
-
697  GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16);
-
698 
-
699 
- -
703 
- -
707 
- -
711 
- -
715 
-
716 
-
717 # ifndef GLM_FORCE_SINGLE_ONLY
-
718 
-
721  GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8);
-
722 
-
725  GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16);
-
726 
-
729  GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32);
-
730 
-
733  GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32);
-
734 
-
735 # endif//GLM_FORCE_SINGLE_ONLY
-
736 
-
738  // Float matrix types
-
739 
-
742  //typedef detail::tmat1<f32> mat1;
-
743 
- -
747 
- -
751 
- -
755 
-
756 
-
759  //typedef detail::tmat1x1<f32> mat1;
-
760 
- -
764 
- -
768 
- -
772 
-
773 
-
776  //typedef detail::tmat1x1<f32> fmat1;
-
777 
-
780  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16);
-
781 
-
784  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16);
-
785 
-
788  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16);
-
789 
-
790 
-
793  //typedef f32 fmat1x1;
-
794 
-
797  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16);
-
798 
-
801  GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16);
-
802 
-
805  GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16);
-
806 
-
809  GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16);
-
810 
-
813  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16);
-
814 
-
817  GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16);
-
818 
-
821  GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16);
-
822 
-
825  GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16);
-
826 
-
829  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16);
-
830 
-
831 
-
834  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
-
835 
-
838  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16);
-
839 
-
842  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16);
-
843 
-
846  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16);
-
847 
-
848 
-
851  //typedef f32 f32mat1x1;
-
852 
-
855  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16);
-
856 
-
859  GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16);
-
860 
-
863  GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16);
-
864 
-
867  GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16);
-
868 
-
871  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16);
-
872 
-
875  GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16);
-
876 
-
879  GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16);
-
880 
-
883  GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16);
-
884 
-
887  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16);
-
888 
-
889 
-
890 # ifndef GLM_FORCE_SINGLE_ONLY
-
891 
-
894  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
-
895 
-
898  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32);
-
899 
-
902  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32);
-
903 
-
906  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32);
-
907 
-
908 
-
911  //typedef f64 f64mat1x1;
-
912 
-
915  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32);
-
916 
-
919  GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32);
-
920 
-
923  GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32);
-
924 
-
927  GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32);
-
928 
-
931  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32);
-
932 
-
935  GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32);
-
936 
-
939  GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32);
-
940 
-
943  GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32);
-
944 
-
947  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32);
-
948 
-
949 # endif//GLM_FORCE_SINGLE_ONLY
-
950 
-
951 
-
953  // Quaternion types
-
954 
-
957  GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16);
-
958 
-
961  GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16);
-
962 
-
965  GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32);
-
966 
-
969  GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16);
-
970 
-
971 # ifndef GLM_FORCE_SINGLE_ONLY
-
972 
-
975  GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32);
-
976 
-
977 # endif//GLM_FORCE_SINGLE_ONLY
-
978 
-
980 }//namespace glm
-
981 
-
982 #include "type_aligned.inl"
-
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
-
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
-
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
-
aligned_highp_uvec2 aligned_uvec2
2 components vector aligned in memory of unsigned integer numbers.
-
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
-
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
-
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
-
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
-
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
-
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
-
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
-
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
-
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
-
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
-
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
-
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
-
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
-
aligned_highp_ivec3 aligned_ivec3
3 components vector aligned in memory of signed integer numbers.
-
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
-
aligned_highp_vec3 aligned_vec3
3 components vector aligned in memory of single-precision floating-point numbers. ...
-
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
-
aligned_highp_uvec3 aligned_uvec3
3 components vector aligned in memory of unsigned integer numbers.
-
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
-
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
-
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
-
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
-
GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)
Double-qualifier floating-point aligned quaternion.
-
aligned_highp_dvec3 aligned_dvec3
3 components vector aligned in memory of double-precision floating-point numbers. ...
-
aligned_highp_dvec1 aligned_dvec1
1 component vector aligned in memory of double-precision floating-point numbers.
-
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
-
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
-
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
-
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
-
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
-
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
-
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
-
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
-
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
-
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
-
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
-
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
-
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
-
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
-
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
-
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
-
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
-
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
-
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
-
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
-
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
-
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
-
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
-
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
-
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
-
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
-
aligned_highp_mat2 aligned_mat2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
-
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
-
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
-
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
-
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
-
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
-
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
-
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
-
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
-
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
-
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
-
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
-
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
-
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
-
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
-
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
-
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
-
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
-
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
-
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
-
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
-
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
-
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
-
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
-
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
-
aligned_highp_ivec1 aligned_ivec1
1 component vector aligned in memory of signed integer numbers.
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
-
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
-
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
-
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
-
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
-
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
-
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
-
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
-
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
-
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
-
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
-
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
-
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
-
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
-
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
-
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
-
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
-
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
-
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
-
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
-
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
-
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
-
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
-
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
-
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
-
aligned_highp_mat4 aligned_mat4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
-
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
-
aligned_highp_uvec1 aligned_uvec1
1 component vector aligned in memory of unsigned integer numbers.
-
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
-
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
-
aligned_highp_vec1 aligned_vec1
1 component vector aligned in memory of single-precision floating-point numbers.
-
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
-
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
-
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
-
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
-
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
-
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
-
aligned_highp_uvec4 aligned_uvec4
4 components vector aligned in memory of unsigned integer numbers.
-
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
-
aligned_highp_ivec4 aligned_ivec4
4 components vector aligned in memory of signed integer numbers.
-
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
-
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
-
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
-
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
-
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
-
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
-
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
-
aligned_highp_vec2 aligned_vec2
2 components vector aligned in memory of single-precision floating-point numbers. ...
-
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
-
aligned_highp_mat2x2 aligned_mat2x2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
-
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
-
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
-
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
-
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
-
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
-
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
-
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
-
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
-
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
-
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
-
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
-
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
-
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
-
aligned_highp_ivec2 aligned_ivec2
2 components vector aligned in memory of signed integer numbers.
-
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
-
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
-
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
-
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
-
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
-
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
-
detail::uint64 uint64
64 bit unsigned integer type.
-
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
-
aligned_highp_mat4x4 aligned_mat4x4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
-
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
-
aligned_highp_dvec4 aligned_dvec4
4 components vector aligned in memory of double-precision floating-point numbers. ...
-
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
-
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
-
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
-
detail::int64 int64
64 bit signed integer type.
-
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
-
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
-
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
-
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
-
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
-
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
-
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
-
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
-
aligned_highp_vec4 aligned_vec4
4 components vector aligned in memory of single-precision floating-point numbers. ...
-
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
-
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
-
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
-
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
-
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
-
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
-
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
-
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
-
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
-
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
-
aligned_highp_mat3x3 aligned_mat3x3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
-
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
-
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
-
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
-
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
-
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
-
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
-
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
-
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
-
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
-
aligned_highp_mat3 aligned_mat3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
-
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
-
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
-
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
-
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
-
aligned_highp_dvec2 aligned_dvec2
2 components vector aligned in memory of double-precision floating-point numbers. ...
-
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
-
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
-
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
-
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
-
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
-
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
-
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
-
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
-
Definition: common.hpp:20
-
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
-
- - - - + + + + + + +0.9.9 API documentation: type_aligned.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx/type_aligned.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../gtc/type_precision.hpp"
+
18 #include "../gtc/quaternion.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_type_aligned extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
31  // Signed int vector types
+
32 
+
35 
+
38  GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1);
+
39 
+
42  GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2);
+
43 
+
46  GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4);
+
47 
+
50  GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8);
+
51 
+
52 
+
55  GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1);
+
56 
+
59  GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2);
+
60 
+
63  GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4);
+
64 
+
67  GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8);
+
68 
+
69 
+
72  GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1);
+
73 
+
76  GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2);
+
77 
+
80  GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4);
+
81 
+
84  GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8);
+
85 
+
86 
+
89  GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1);
+
90 
+
93  GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2);
+
94 
+
97  GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4);
+
98 
+
101  GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8);
+
102 
+
103 
+
106  GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1);
+
107 
+
110  GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2);
+
111 
+
114  GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4);
+
115 
+
118  GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8);
+
119 
+
120 
+
123  GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1);
+
124 
+
127  GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2);
+
128 
+
131  GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4);
+
132 
+
135  GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8);
+
136 
+
137 
+
140  GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1);
+
141 
+
144  GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2);
+
145 
+
148  GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4);
+
149 
+
152  GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8);
+
153 
+
154 
+
157  GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1);
+
158 
+
161  GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2);
+
162 
+
165  GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4);
+
166 
+
169  GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8);
+
170 
+
171 
+
174  GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1);
+
175 
+
178  GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2);
+
179 
+
182  GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4);
+
183 
+
186  GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8);
+
187 
+
188 
+
191  GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1);
+
192 
+
195  GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2);
+
196 
+
199  GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4);
+
200 
+
203  GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8);
+
204 
+
205 
+
208  GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1);
+
209 
+
212  GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2);
+
213 
+
216  GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4);
+
217 
+
220  GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8);
+
221 
+
222 
+
225  GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1);
+
226 
+
229  GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2);
+
230 
+
233  GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4);
+
234 
+
237  GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8);
+
238 
+
239 
+ +
243 
+ +
247 
+ +
251 
+ +
255 
+
256 
+
259  GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1);
+
260 
+
263  GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2);
+
264 
+
267  GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4);
+
268 
+
271  GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4);
+
272 
+
273 
+
276  GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2);
+
277 
+
280  GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4);
+
281 
+
284  GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8);
+
285 
+
288  GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8);
+
289 
+
290 
+
293  GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4);
+
294 
+
297  GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8);
+
298 
+
301  GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16);
+
302 
+
305  GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16);
+
306 
+
307 
+
310  GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8);
+
311 
+
314  GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16);
+
315 
+
318  GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32);
+
319 
+
322  GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32);
+
323 
+
324 
+
326  // Unsigned int vector types
+
327 
+
330  GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1);
+
331 
+
334  GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2);
+
335 
+
338  GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4);
+
339 
+
342  GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8);
+
343 
+
344 
+
347  GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1);
+
348 
+
351  GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2);
+
352 
+
355  GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4);
+
356 
+
359  GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8);
+
360 
+
361 
+
364  GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1);
+
365 
+
368  GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2);
+
369 
+
372  GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4);
+
373 
+
376  GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8);
+
377 
+
378 
+
381  GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1);
+
382 
+
385  GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2);
+
386 
+
389  GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4);
+
390 
+
393  GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8);
+
394 
+
395 
+
398  GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1);
+
399 
+
402  GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2);
+
403 
+
406  GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4);
+
407 
+
410  GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8);
+
411 
+
412 
+
415  GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1);
+
416 
+
419  GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2);
+
420 
+
423  GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4);
+
424 
+
427  GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8);
+
428 
+
429 
+
432  GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1);
+
433 
+
436  GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2);
+
437 
+
440  GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4);
+
441 
+
444  GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8);
+
445 
+
446 
+
449  GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1);
+
450 
+
453  GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2);
+
454 
+
457  GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4);
+
458 
+
461  GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8);
+
462 
+
463 
+
466  GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1);
+
467 
+
470  GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2);
+
471 
+
474  GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4);
+
475 
+
478  GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8);
+
479 
+
480 
+
483  GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1);
+
484 
+
487  GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2);
+
488 
+
491  GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4);
+
492 
+
495  GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8);
+
496 
+
497 
+
500  GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1);
+
501 
+
504  GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2);
+
505 
+
508  GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4);
+
509 
+
512  GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8);
+
513 
+
514 
+
517  GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1);
+
518 
+
521  GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2);
+
522 
+
525  GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4);
+
526 
+
529  GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8);
+
530 
+
531 
+ +
535 
+ +
539 
+ +
543 
+ +
547 
+
548 
+
551  GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1);
+
552 
+
555  GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2);
+
556 
+
559  GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4);
+
560 
+
563  GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4);
+
564 
+
565 
+
568  GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2);
+
569 
+
572  GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4);
+
573 
+
576  GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8);
+
577 
+
580  GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8);
+
581 
+
582 
+
585  GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4);
+
586 
+
589  GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8);
+
590 
+
593  GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16);
+
594 
+
597  GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16);
+
598 
+
599 
+
602  GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8);
+
603 
+
606  GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16);
+
607 
+
610  GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32);
+
611 
+
614  GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32);
+
615 
+
616 
+
618  // Float vector types
+
619 
+
622  GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4);
+
623 
+
626  GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4);
+
627 
+
630  GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4);
+
631 
+
632 # ifndef GLM_FORCE_SINGLE_ONLY
+
633 
+
636  GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8);
+
637 
+
640  GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8);
+
641 
+
644  GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8);
+
645 
+
646 # endif//GLM_FORCE_SINGLE_ONLY
+
647 
+
648 
+ +
652 
+ +
656 
+ +
660 
+ +
664 
+
665 
+
668  GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4);
+
669 
+
672  GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8);
+
673 
+
676  GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16);
+
677 
+
680  GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16);
+
681 
+
682 
+
685  GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4);
+
686 
+
689  GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8);
+
690 
+
693  GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16);
+
694 
+
697  GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16);
+
698 
+
699 
+ +
703 
+ +
707 
+ +
711 
+ +
715 
+
716 
+
717 # ifndef GLM_FORCE_SINGLE_ONLY
+
718 
+
721  GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8);
+
722 
+
725  GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16);
+
726 
+
729  GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32);
+
730 
+
733  GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32);
+
734 
+
735 # endif//GLM_FORCE_SINGLE_ONLY
+
736 
+
738  // Float matrix types
+
739 
+
742  //typedef detail::tmat1<f32> mat1;
+
743 
+ +
747 
+ +
751 
+ +
755 
+
756 
+
759  //typedef detail::tmat1x1<f32> mat1;
+
760 
+ +
764 
+ +
768 
+ +
772 
+
773 
+
776  //typedef detail::tmat1x1<f32> fmat1;
+
777 
+
780  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16);
+
781 
+
784  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16);
+
785 
+
788  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16);
+
789 
+
790 
+
793  //typedef f32 fmat1x1;
+
794 
+
797  GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16);
+
798 
+
801  GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16);
+
802 
+
805  GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16);
+
806 
+
809  GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16);
+
810 
+
813  GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16);
+
814 
+
817  GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16);
+
818 
+
821  GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16);
+
822 
+
825  GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16);
+
826 
+
829  GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16);
+
830 
+
831 
+
834  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
+
835 
+
838  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16);
+
839 
+
842  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16);
+
843 
+
846  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16);
+
847 
+
848 
+
851  //typedef f32 f32mat1x1;
+
852 
+
855  GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16);
+
856 
+
859  GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16);
+
860 
+
863  GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16);
+
864 
+
867  GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16);
+
868 
+
871  GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16);
+
872 
+
875  GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16);
+
876 
+
879  GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16);
+
880 
+
883  GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16);
+
884 
+
887  GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16);
+
888 
+
889 
+
890 # ifndef GLM_FORCE_SINGLE_ONLY
+
891 
+
894  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
+
895 
+
898  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32);
+
899 
+
902  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32);
+
903 
+
906  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32);
+
907 
+
908 
+
911  //typedef f64 f64mat1x1;
+
912 
+
915  GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32);
+
916 
+
919  GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32);
+
920 
+
923  GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32);
+
924 
+
927  GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32);
+
928 
+
931  GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32);
+
932 
+
935  GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32);
+
936 
+
939  GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32);
+
940 
+
943  GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32);
+
944 
+
947  GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32);
+
948 
+
949 # endif//GLM_FORCE_SINGLE_ONLY
+
950 
+
951 
+
953  // Quaternion types
+
954 
+
957  GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16);
+
958 
+
961  GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16);
+
962 
+
965  GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32);
+
966 
+
969  GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16);
+
970 
+
971 # ifndef GLM_FORCE_SINGLE_ONLY
+
972 
+
975  GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32);
+
976 
+
977 # endif//GLM_FORCE_SINGLE_ONLY
+
978 
+
980 }//namespace glm
+
981 
+
982 #include "type_aligned.inl"
+
mat< 4, 4, float, defaultp > mat4x4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
+
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
+
mat< 2, 2, float, defaultp > mat2x2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
+
aligned_highp_uvec2 aligned_uvec2
2 components vector aligned in memory of unsigned integer numbers.
+
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
+
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
+
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
+
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
+
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
+
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
+
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
+
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
+
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
+
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
+
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
+
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
+
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
+
aligned_highp_ivec3 aligned_ivec3
3 components vector aligned in memory of signed integer numbers.
+
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
+
aligned_highp_vec3 aligned_vec3
3 components vector aligned in memory of single-precision floating-point numbers. ...
+
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
+
aligned_highp_uvec3 aligned_uvec3
3 components vector aligned in memory of unsigned integer numbers.
+
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
+
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
+
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
+
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
+
GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)
Double-qualifier floating-point aligned quaternion.
+
aligned_highp_dvec3 aligned_dvec3
3 components vector aligned in memory of double-precision floating-point numbers. ...
+
aligned_highp_dvec1 aligned_dvec1
1 component vector aligned in memory of double-precision floating-point numbers.
+
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
+
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
+
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
+
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
+
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
+
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
+
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
+
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
+
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
+
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
+
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
+
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
+
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
+
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
+
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
+
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
+
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
+
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
+
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
+
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
+
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
+
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
+
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
+
qua< double, defaultp > dquat
Quaternion of double-precision floating-point numbers.
+
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
+
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
+
aligned_highp_mat2 aligned_mat2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
+
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
+
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
+
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
+
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
+
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
+
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
+
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
+
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
+
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
+
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
+
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
+
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
+
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
+
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
+
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
+
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
+
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
+
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
+
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
+
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
+
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
+
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
+
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
+
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
+
aligned_highp_ivec1 aligned_ivec1
1 component vector aligned in memory of signed integer numbers.
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
+
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
+
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
+
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
+
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
+
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
+
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
+
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
+
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
+
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
+
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
+
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
+
mat< 3, 3, float, defaultp > mat3x3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
+
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
+
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
+
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
+
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
+
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
+
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
+
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
+
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
+
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
+
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
+
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
+
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
+
aligned_highp_mat4 aligned_mat4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
+
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
+
aligned_highp_uvec1 aligned_uvec1
1 component vector aligned in memory of unsigned integer numbers.
+
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
+
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
+
aligned_highp_vec1 aligned_vec1
1 component vector aligned in memory of single-precision floating-point numbers.
+
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
+
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
+
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
+
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
+
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
+
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
+
aligned_highp_uvec4 aligned_uvec4
4 components vector aligned in memory of unsigned integer numbers.
+
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
+
aligned_highp_ivec4 aligned_ivec4
4 components vector aligned in memory of signed integer numbers.
+
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
+
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
+
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
+
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
+
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
+
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
+
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
+
aligned_highp_vec2 aligned_vec2
2 components vector aligned in memory of single-precision floating-point numbers. ...
+
mat< 4, 4, float, defaultp > mat4
4 columns of 4 components matrix of single-precision floating-point numbers.
+
aligned_highp_mat2x2 aligned_mat2x2
2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
+
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
+
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
+
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
+
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
+
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
+
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
+
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
+
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
+
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
+
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
+
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
+
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
+
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
+
aligned_highp_ivec2 aligned_ivec2
2 components vector aligned in memory of signed integer numbers.
+
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
+
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
+
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
+
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
+
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
+
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
+
detail::uint64 uint64
64 bit unsigned integer type.
+
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
+
aligned_highp_mat4x4 aligned_mat4x4
4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
+
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
+
aligned_highp_dvec4 aligned_dvec4
4 components vector aligned in memory of double-precision floating-point numbers. ...
+
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
+
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
+
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
+
detail::int64 int64
64 bit signed integer type.
+
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
+
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
+
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
+
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
+
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
+
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
+
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
+
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
+
aligned_highp_vec4 aligned_vec4
4 components vector aligned in memory of single-precision floating-point numbers. ...
+
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
+
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
+
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
+
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
+
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
+
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
+
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
+
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
+
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
+
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
+
aligned_highp_mat3x3 aligned_mat3x3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
+
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
+
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
+
qua< float, defaultp > quat
Quaternion of single-precision floating-point numbers.
+
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
+
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
+
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
+
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
+
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
+
mat< 2, 2, float, defaultp > mat2
2 columns of 2 components matrix of single-precision floating-point numbers.
+
aligned_highp_mat3 aligned_mat3
3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
+
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
+
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
+
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
+
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
+
aligned_highp_dvec2 aligned_dvec2
2 components vector aligned in memory of double-precision floating-point numbers. ...
+
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
+
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
+
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
+
mat< 3, 3, float, defaultp > mat3
3 columns of 3 components matrix of single-precision floating-point numbers.
+
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
+
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
+
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
+
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
+
Definition: common.hpp:20
+
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00163_source.html b/external/include/glm-0.9.9.8/doc/api/a00163_source.html index d74bc381df..a2df166b03 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00163_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00163_source.html @@ -1,169 +1,169 @@ - - - - - - -0.9.9 API documentation: type_float.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_float.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "setup.hpp"
-
4 
-
5 #if GLM_COMPILER == GLM_COMPILER_VC12
-
6 # pragma warning(push)
-
7 # pragma warning(disable: 4512) // assignment operator could not be generated
-
8 #endif
-
9 
-
10 namespace glm{
-
11 namespace detail
-
12 {
-
13  template <typename T>
-
14  union float_t
-
15  {};
-
16 
-
17  // https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
-
18  template <>
-
19  union float_t<float>
-
20  {
-
21  typedef int int_type;
-
22  typedef float float_type;
-
23 
-
24  GLM_CONSTEXPR float_t(float_type Num = 0.0f) : f(Num) {}
-
25 
-
26  GLM_CONSTEXPR float_t& operator=(float_t const& x)
-
27  {
-
28  f = x.f;
-
29  return *this;
-
30  }
-
31 
-
32  // Portable extraction of components.
-
33  GLM_CONSTEXPR bool negative() const { return i < 0; }
-
34  GLM_CONSTEXPR int_type mantissa() const { return i & ((1 << 23) - 1); }
-
35  GLM_CONSTEXPR int_type exponent() const { return (i >> 23) & ((1 << 8) - 1); }
-
36 
-
37  int_type i;
-
38  float_type f;
-
39  };
-
40 
-
41  template <>
-
42  union float_t<double>
-
43  {
-
44  typedef detail::int64 int_type;
-
45  typedef double float_type;
-
46 
-
47  GLM_CONSTEXPR float_t(float_type Num = static_cast<float_type>(0)) : f(Num) {}
-
48 
-
49  GLM_CONSTEXPR float_t& operator=(float_t const& x)
-
50  {
-
51  f = x.f;
-
52  return *this;
-
53  }
-
54 
-
55  // Portable extraction of components.
-
56  GLM_CONSTEXPR bool negative() const { return i < 0; }
-
57  GLM_CONSTEXPR int_type mantissa() const { return i & ((int_type(1) << 52) - 1); }
-
58  GLM_CONSTEXPR int_type exponent() const { return (i >> 52) & ((int_type(1) << 11) - 1); }
-
59 
-
60  int_type i;
-
61  float_type f;
-
62  };
-
63 }//namespace detail
-
64 }//namespace glm
-
65 
-
66 #if GLM_COMPILER == GLM_COMPILER_VC12
-
67 # pragma warning(pop)
-
68 #endif
-
detail::int64 int64
64 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_float.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_float.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "setup.hpp"
+
4 
+
5 #if GLM_COMPILER == GLM_COMPILER_VC12
+
6 # pragma warning(push)
+
7 # pragma warning(disable: 4512) // assignment operator could not be generated
+
8 #endif
+
9 
+
10 namespace glm{
+
11 namespace detail
+
12 {
+
13  template <typename T>
+
14  union float_t
+
15  {};
+
16 
+
17  // https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
+
18  template <>
+
19  union float_t<float>
+
20  {
+
21  typedef int int_type;
+
22  typedef float float_type;
+
23 
+
24  GLM_CONSTEXPR float_t(float_type Num = 0.0f) : f(Num) {}
+
25 
+
26  GLM_CONSTEXPR float_t& operator=(float_t const& x)
+
27  {
+
28  f = x.f;
+
29  return *this;
+
30  }
+
31 
+
32  // Portable extraction of components.
+
33  GLM_CONSTEXPR bool negative() const { return i < 0; }
+
34  GLM_CONSTEXPR int_type mantissa() const { return i & ((1 << 23) - 1); }
+
35  GLM_CONSTEXPR int_type exponent() const { return (i >> 23) & ((1 << 8) - 1); }
+
36 
+
37  int_type i;
+
38  float_type f;
+
39  };
+
40 
+
41  template <>
+
42  union float_t<double>
+
43  {
+
44  typedef detail::int64 int_type;
+
45  typedef double float_type;
+
46 
+
47  GLM_CONSTEXPR float_t(float_type Num = static_cast<float_type>(0)) : f(Num) {}
+
48 
+
49  GLM_CONSTEXPR float_t& operator=(float_t const& x)
+
50  {
+
51  f = x.f;
+
52  return *this;
+
53  }
+
54 
+
55  // Portable extraction of components.
+
56  GLM_CONSTEXPR bool negative() const { return i < 0; }
+
57  GLM_CONSTEXPR int_type mantissa() const { return i & ((int_type(1) << 52) - 1); }
+
58  GLM_CONSTEXPR int_type exponent() const { return (i >> 52) & ((int_type(1) << 11) - 1); }
+
59 
+
60  int_type i;
+
61  float_type f;
+
62  };
+
63 }//namespace detail
+
64 }//namespace glm
+
65 
+
66 #if GLM_COMPILER == GLM_COMPILER_VC12
+
67 # pragma warning(pop)
+
68 #endif
+
detail::int64 int64
64 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00164_source.html b/external/include/glm-0.9.9.8/doc/api/a00164_source.html index 2e1be82226..89639d2524 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00164_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00164_source.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: type_half.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_half.hpp
-
-
-
1 #pragma once
-
2 
-
3 #include "setup.hpp"
-
4 
-
5 namespace glm{
-
6 namespace detail
-
7 {
-
8  typedef short hdata;
-
9 
-
10  GLM_FUNC_DECL float toFloat32(hdata value);
-
11  GLM_FUNC_DECL hdata toFloat16(float const& value);
-
12 
-
13 }//namespace detail
-
14 }//namespace glm
-
15 
-
16 #include "type_half.inl"
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_half.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_half.hpp
+
+
+
1 #pragma once
+
2 
+
3 #include "setup.hpp"
+
4 
+
5 namespace glm{
+
6 namespace detail
+
7 {
+
8  typedef short hdata;
+
9 
+
10  GLM_FUNC_DECL float toFloat32(hdata value);
+
11  GLM_FUNC_DECL hdata toFloat16(float const& value);
+
12 
+
13 }//namespace detail
+
14 }//namespace glm
+
15 
+
16 #include "type_half.inl"
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00165.html b/external/include/glm-0.9.9.8/doc/api/a00165.html index 2cb44aca65..e6a9c91b3b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00165.html +++ b/external/include/glm-0.9.9.8/doc/api/a00165.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat2x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat2x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat2x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00165_source.html b/external/include/glm-0.9.9.8/doc/api/a00165_source.html index f206371be6..0b4e126c49 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00165_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00165_source.html @@ -1,277 +1,277 @@ - - - - - - -0.9.9 API documentation: type_mat2x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec2.hpp"
-
7 #include <limits>
-
8 #include <cstddef>
-
9 
-
10 namespace glm
-
11 {
-
12  template<typename T, qualifier Q>
-
13  struct mat<2, 2, T, Q>
-
14  {
-
15  typedef vec<2, T, Q> col_type;
-
16  typedef vec<2, T, Q> row_type;
-
17  typedef mat<2, 2, T, Q> type;
-
18  typedef mat<2, 2, T, Q> transpose_type;
-
19  typedef T value_type;
-
20 
-
21  private:
-
22  col_type value[2];
-
23 
-
24  public:
-
25  // -- Accesses --
-
26 
-
27  typedef length_t length_type;
-
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
-
29 
-
30  GLM_FUNC_DECL col_type & operator[](length_type i);
-
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
32 
-
33  // -- Constructors --
-
34 
-
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
36  template<qualifier P>
-
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 2, T, P> const& m);
-
38 
-
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
41  T const& x1, T const& y1,
-
42  T const& x2, T const& y2);
-
43  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
44  col_type const& v1,
-
45  col_type const& v2);
-
46 
-
47  // -- Conversions --
-
48 
-
49  template<typename U, typename V, typename M, typename N>
-
50  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
51  U const& x1, V const& y1,
-
52  M const& x2, N const& y2);
-
53 
-
54  template<typename U, typename V>
-
55  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
56  vec<2, U, Q> const& v1,
-
57  vec<2, V, Q> const& v2);
-
58 
-
59  // -- Matrix conversions --
-
60 
-
61  template<typename U, qualifier P>
-
62  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, U, P> const& m);
-
63 
-
64  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
66  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
72 
-
73  // -- Unary arithmetic operators --
-
74 
-
75  template<typename U>
-
76  GLM_FUNC_DECL mat<2, 2, T, Q> & operator=(mat<2, 2, U, Q> const& m);
-
77  template<typename U>
-
78  GLM_FUNC_DECL mat<2, 2, T, Q> & operator+=(U s);
-
79  template<typename U>
-
80  GLM_FUNC_DECL mat<2, 2, T, Q> & operator+=(mat<2, 2, U, Q> const& m);
-
81  template<typename U>
-
82  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-=(U s);
-
83  template<typename U>
-
84  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-=(mat<2, 2, U, Q> const& m);
-
85  template<typename U>
-
86  GLM_FUNC_DECL mat<2, 2, T, Q> & operator*=(U s);
-
87  template<typename U>
-
88  GLM_FUNC_DECL mat<2, 2, T, Q> & operator*=(mat<2, 2, U, Q> const& m);
-
89  template<typename U>
-
90  GLM_FUNC_DECL mat<2, 2, T, Q> & operator/=(U s);
-
91  template<typename U>
-
92  GLM_FUNC_DECL mat<2, 2, T, Q> & operator/=(mat<2, 2, U, Q> const& m);
-
93 
-
94  // -- Increment and decrement operators --
-
95 
-
96  GLM_FUNC_DECL mat<2, 2, T, Q> & operator++ ();
-
97  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-- ();
-
98  GLM_FUNC_DECL mat<2, 2, T, Q> operator++(int);
-
99  GLM_FUNC_DECL mat<2, 2, T, Q> operator--(int);
-
100  };
-
101 
-
102  // -- Unary operators --
-
103 
-
104  template<typename T, qualifier Q>
-
105  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m);
-
106 
-
107  template<typename T, qualifier Q>
-
108  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m);
-
109 
-
110  // -- Binary operators --
-
111 
-
112  template<typename T, qualifier Q>
-
113  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m, T scalar);
-
114 
-
115  template<typename T, qualifier Q>
-
116  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(T scalar, mat<2, 2, T, Q> const& m);
-
117 
-
118  template<typename T, qualifier Q>
-
119  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
120 
-
121  template<typename T, qualifier Q>
-
122  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m, T scalar);
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(T scalar, mat<2, 2, T, Q> const& m);
-
126 
-
127  template<typename T, qualifier Q>
-
128  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
129 
-
130  template<typename T, qualifier Q>
-
131  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m, T scalar);
-
132 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(T scalar, mat<2, 2, T, Q> const& m);
-
135 
-
136  template<typename T, qualifier Q>
-
137  GLM_FUNC_DECL typename mat<2, 2, T, Q>::col_type operator*(mat<2, 2, T, Q> const& m, typename mat<2, 2, T, Q>::row_type const& v);
-
138 
-
139  template<typename T, qualifier Q>
-
140  GLM_FUNC_DECL typename mat<2, 2, T, Q>::row_type operator*(typename mat<2, 2, T, Q>::col_type const& v, mat<2, 2, T, Q> const& m);
-
141 
-
142  template<typename T, qualifier Q>
-
143  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
144 
-
145  template<typename T, qualifier Q>
-
146  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
147 
-
148  template<typename T, qualifier Q>
-
149  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
150 
-
151  template<typename T, qualifier Q>
-
152  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(mat<2, 2, T, Q> const& m, T scalar);
-
153 
-
154  template<typename T, qualifier Q>
-
155  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(T scalar, mat<2, 2, T, Q> const& m);
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL typename mat<2, 2, T, Q>::col_type operator/(mat<2, 2, T, Q> const& m, typename mat<2, 2, T, Q>::row_type const& v);
-
159 
-
160  template<typename T, qualifier Q>
-
161  GLM_FUNC_DECL typename mat<2, 2, T, Q>::row_type operator/(typename mat<2, 2, T, Q>::col_type const& v, mat<2, 2, T, Q> const& m);
-
162 
-
163  template<typename T, qualifier Q>
-
164  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
165 
-
166  // -- Boolean operators --
-
167 
-
168  template<typename T, qualifier Q>
-
169  GLM_FUNC_DECL bool operator==(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
170 
-
171  template<typename T, qualifier Q>
-
172  GLM_FUNC_DECL bool operator!=(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
173 } //namespace glm
-
174 
-
175 #ifndef GLM_EXTERNAL_TEMPLATE
-
176 #include "type_mat2x2.inl"
-
177 #endif
-
Core features
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec2.hpp"
+
7 #include <limits>
+
8 #include <cstddef>
+
9 
+
10 namespace glm
+
11 {
+
12  template<typename T, qualifier Q>
+
13  struct mat<2, 2, T, Q>
+
14  {
+
15  typedef vec<2, T, Q> col_type;
+
16  typedef vec<2, T, Q> row_type;
+
17  typedef mat<2, 2, T, Q> type;
+
18  typedef mat<2, 2, T, Q> transpose_type;
+
19  typedef T value_type;
+
20 
+
21  private:
+
22  col_type value[2];
+
23 
+
24  public:
+
25  // -- Accesses --
+
26 
+
27  typedef length_t length_type;
+
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
+
29 
+
30  GLM_FUNC_DECL col_type & operator[](length_type i);
+
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
32 
+
33  // -- Constructors --
+
34 
+
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
36  template<qualifier P>
+
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 2, T, P> const& m);
+
38 
+
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
41  T const& x1, T const& y1,
+
42  T const& x2, T const& y2);
+
43  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
44  col_type const& v1,
+
45  col_type const& v2);
+
46 
+
47  // -- Conversions --
+
48 
+
49  template<typename U, typename V, typename M, typename N>
+
50  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
51  U const& x1, V const& y1,
+
52  M const& x2, N const& y2);
+
53 
+
54  template<typename U, typename V>
+
55  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
56  vec<2, U, Q> const& v1,
+
57  vec<2, V, Q> const& v2);
+
58 
+
59  // -- Matrix conversions --
+
60 
+
61  template<typename U, qualifier P>
+
62  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, U, P> const& m);
+
63 
+
64  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
66  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
72 
+
73  // -- Unary arithmetic operators --
+
74 
+
75  template<typename U>
+
76  GLM_FUNC_DECL mat<2, 2, T, Q> & operator=(mat<2, 2, U, Q> const& m);
+
77  template<typename U>
+
78  GLM_FUNC_DECL mat<2, 2, T, Q> & operator+=(U s);
+
79  template<typename U>
+
80  GLM_FUNC_DECL mat<2, 2, T, Q> & operator+=(mat<2, 2, U, Q> const& m);
+
81  template<typename U>
+
82  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-=(U s);
+
83  template<typename U>
+
84  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-=(mat<2, 2, U, Q> const& m);
+
85  template<typename U>
+
86  GLM_FUNC_DECL mat<2, 2, T, Q> & operator*=(U s);
+
87  template<typename U>
+
88  GLM_FUNC_DECL mat<2, 2, T, Q> & operator*=(mat<2, 2, U, Q> const& m);
+
89  template<typename U>
+
90  GLM_FUNC_DECL mat<2, 2, T, Q> & operator/=(U s);
+
91  template<typename U>
+
92  GLM_FUNC_DECL mat<2, 2, T, Q> & operator/=(mat<2, 2, U, Q> const& m);
+
93 
+
94  // -- Increment and decrement operators --
+
95 
+
96  GLM_FUNC_DECL mat<2, 2, T, Q> & operator++ ();
+
97  GLM_FUNC_DECL mat<2, 2, T, Q> & operator-- ();
+
98  GLM_FUNC_DECL mat<2, 2, T, Q> operator++(int);
+
99  GLM_FUNC_DECL mat<2, 2, T, Q> operator--(int);
+
100  };
+
101 
+
102  // -- Unary operators --
+
103 
+
104  template<typename T, qualifier Q>
+
105  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m);
+
106 
+
107  template<typename T, qualifier Q>
+
108  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m);
+
109 
+
110  // -- Binary operators --
+
111 
+
112  template<typename T, qualifier Q>
+
113  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m, T scalar);
+
114 
+
115  template<typename T, qualifier Q>
+
116  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(T scalar, mat<2, 2, T, Q> const& m);
+
117 
+
118  template<typename T, qualifier Q>
+
119  GLM_FUNC_DECL mat<2, 2, T, Q> operator+(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
120 
+
121  template<typename T, qualifier Q>
+
122  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m, T scalar);
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(T scalar, mat<2, 2, T, Q> const& m);
+
126 
+
127  template<typename T, qualifier Q>
+
128  GLM_FUNC_DECL mat<2, 2, T, Q> operator-(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
129 
+
130  template<typename T, qualifier Q>
+
131  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m, T scalar);
+
132 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(T scalar, mat<2, 2, T, Q> const& m);
+
135 
+
136  template<typename T, qualifier Q>
+
137  GLM_FUNC_DECL typename mat<2, 2, T, Q>::col_type operator*(mat<2, 2, T, Q> const& m, typename mat<2, 2, T, Q>::row_type const& v);
+
138 
+
139  template<typename T, qualifier Q>
+
140  GLM_FUNC_DECL typename mat<2, 2, T, Q>::row_type operator*(typename mat<2, 2, T, Q>::col_type const& v, mat<2, 2, T, Q> const& m);
+
141 
+
142  template<typename T, qualifier Q>
+
143  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
144 
+
145  template<typename T, qualifier Q>
+
146  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
147 
+
148  template<typename T, qualifier Q>
+
149  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<2, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
150 
+
151  template<typename T, qualifier Q>
+
152  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(mat<2, 2, T, Q> const& m, T scalar);
+
153 
+
154  template<typename T, qualifier Q>
+
155  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(T scalar, mat<2, 2, T, Q> const& m);
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL typename mat<2, 2, T, Q>::col_type operator/(mat<2, 2, T, Q> const& m, typename mat<2, 2, T, Q>::row_type const& v);
+
159 
+
160  template<typename T, qualifier Q>
+
161  GLM_FUNC_DECL typename mat<2, 2, T, Q>::row_type operator/(typename mat<2, 2, T, Q>::col_type const& v, mat<2, 2, T, Q> const& m);
+
162 
+
163  template<typename T, qualifier Q>
+
164  GLM_FUNC_DECL mat<2, 2, T, Q> operator/(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
165 
+
166  // -- Boolean operators --
+
167 
+
168  template<typename T, qualifier Q>
+
169  GLM_FUNC_DECL bool operator==(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
170 
+
171  template<typename T, qualifier Q>
+
172  GLM_FUNC_DECL bool operator!=(mat<2, 2, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
173 } //namespace glm
+
174 
+
175 #ifndef GLM_EXTERNAL_TEMPLATE
+
176 #include "type_mat2x2.inl"
+
177 #endif
+
Core features
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00166.html b/external/include/glm-0.9.9.8/doc/api/a00166.html index aa63b709ce..fdcf3e8cbb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00166.html +++ b/external/include/glm-0.9.9.8/doc/api/a00166.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat2x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat2x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat2x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00166_source.html b/external/include/glm-0.9.9.8/doc/api/a00166_source.html index f023fd38c1..a2f39c6886 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00166_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00166_source.html @@ -1,260 +1,260 @@ - - - - - - -0.9.9 API documentation: type_mat2x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec2.hpp"
-
7 #include "type_vec3.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<2, 3, T, Q>
-
15  {
-
16  typedef vec<3, T, Q> col_type;
-
17  typedef vec<2, T, Q> row_type;
-
18  typedef mat<2, 3, T, Q> type;
-
19  typedef mat<3, 2, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[2];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 3, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T x0, T y0, T z0,
-
43  T x1, T y1, T z1);
-
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
45  col_type const& v0,
-
46  col_type const& v1);
-
47 
-
48  // -- Conversions --
-
49 
-
50  template<typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
-
51  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
52  X1 x1, Y1 y1, Z1 z1,
-
53  X2 x2, Y2 y2, Z2 z2);
-
54 
-
55  template<typename U, typename V>
-
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
57  vec<3, U, Q> const& v1,
-
58  vec<3, V, Q> const& v2);
-
59 
-
60  // -- Matrix conversions --
-
61 
-
62  template<typename U, qualifier P>
-
63  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, U, P> const& m);
-
64 
-
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
66  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
73 
-
74  // -- Unary arithmetic operators --
-
75 
-
76  template<typename U>
-
77  GLM_FUNC_DECL mat<2, 3, T, Q> & operator=(mat<2, 3, U, Q> const& m);
-
78  template<typename U>
-
79  GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(U s);
-
80  template<typename U>
-
81  GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(mat<2, 3, U, Q> const& m);
-
82  template<typename U>
-
83  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(U s);
-
84  template<typename U>
-
85  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(mat<2, 3, U, Q> const& m);
-
86  template<typename U>
-
87  GLM_FUNC_DECL mat<2, 3, T, Q> & operator*=(U s);
-
88  template<typename U>
-
89  GLM_FUNC_DECL mat<2, 3, T, Q> & operator/=(U s);
-
90 
-
91  // -- Increment and decrement operators --
-
92 
-
93  GLM_FUNC_DECL mat<2, 3, T, Q> & operator++ ();
-
94  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-- ();
-
95  GLM_FUNC_DECL mat<2, 3, T, Q> operator++(int);
-
96  GLM_FUNC_DECL mat<2, 3, T, Q> operator--(int);
-
97  };
-
98 
-
99  // -- Unary operators --
-
100 
-
101  template<typename T, qualifier Q>
-
102  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m);
-
103 
-
104  template<typename T, qualifier Q>
-
105  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m);
-
106 
-
107  // -- Binary operators --
-
108 
-
109  template<typename T, qualifier Q>
-
110  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m, T scalar);
-
111 
-
112  template<typename T, qualifier Q>
-
113  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
114 
-
115  template<typename T, qualifier Q>
-
116  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m, T scalar);
-
117 
-
118  template<typename T, qualifier Q>
-
119  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
120 
-
121  template<typename T, qualifier Q>
-
122  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m, T scalar);
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(T scalar, mat<2, 3, T, Q> const& m);
-
126 
-
127  template<typename T, qualifier Q>
-
128  GLM_FUNC_DECL typename mat<2, 3, T, Q>::col_type operator*(mat<2, 3, T, Q> const& m, typename mat<2, 3, T, Q>::row_type const& v);
-
129 
-
130  template<typename T, qualifier Q>
-
131  GLM_FUNC_DECL typename mat<2, 3, T, Q>::row_type operator*(typename mat<2, 3, T, Q>::col_type const& v, mat<2, 3, T, Q> const& m);
-
132 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
135 
-
136  template<typename T, qualifier Q>
-
137  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
138 
-
139  template<typename T, qualifier Q>
-
140  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
141 
-
142  template<typename T, qualifier Q>
-
143  GLM_FUNC_DECL mat<2, 3, T, Q> operator/(mat<2, 3, T, Q> const& m, T scalar);
-
144 
-
145  template<typename T, qualifier Q>
-
146  GLM_FUNC_DECL mat<2, 3, T, Q> operator/(T scalar, mat<2, 3, T, Q> const& m);
-
147 
-
148  // -- Boolean operators --
-
149 
-
150  template<typename T, qualifier Q>
-
151  GLM_FUNC_DECL bool operator==(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
152 
-
153  template<typename T, qualifier Q>
-
154  GLM_FUNC_DECL bool operator!=(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
155 }//namespace glm
-
156 
-
157 #ifndef GLM_EXTERNAL_TEMPLATE
-
158 #include "type_mat2x3.inl"
-
159 #endif
-
Core features
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec2.hpp"
+
7 #include "type_vec3.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<2, 3, T, Q>
+
15  {
+
16  typedef vec<3, T, Q> col_type;
+
17  typedef vec<2, T, Q> row_type;
+
18  typedef mat<2, 3, T, Q> type;
+
19  typedef mat<3, 2, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[2];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 3, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T x0, T y0, T z0,
+
43  T x1, T y1, T z1);
+
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
45  col_type const& v0,
+
46  col_type const& v1);
+
47 
+
48  // -- Conversions --
+
49 
+
50  template<typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
+
51  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
52  X1 x1, Y1 y1, Z1 z1,
+
53  X2 x2, Y2 y2, Z2 z2);
+
54 
+
55  template<typename U, typename V>
+
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
57  vec<3, U, Q> const& v1,
+
58  vec<3, V, Q> const& v2);
+
59 
+
60  // -- Matrix conversions --
+
61 
+
62  template<typename U, qualifier P>
+
63  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, U, P> const& m);
+
64 
+
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
66  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
73 
+
74  // -- Unary arithmetic operators --
+
75 
+
76  template<typename U>
+
77  GLM_FUNC_DECL mat<2, 3, T, Q> & operator=(mat<2, 3, U, Q> const& m);
+
78  template<typename U>
+
79  GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(U s);
+
80  template<typename U>
+
81  GLM_FUNC_DECL mat<2, 3, T, Q> & operator+=(mat<2, 3, U, Q> const& m);
+
82  template<typename U>
+
83  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(U s);
+
84  template<typename U>
+
85  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-=(mat<2, 3, U, Q> const& m);
+
86  template<typename U>
+
87  GLM_FUNC_DECL mat<2, 3, T, Q> & operator*=(U s);
+
88  template<typename U>
+
89  GLM_FUNC_DECL mat<2, 3, T, Q> & operator/=(U s);
+
90 
+
91  // -- Increment and decrement operators --
+
92 
+
93  GLM_FUNC_DECL mat<2, 3, T, Q> & operator++ ();
+
94  GLM_FUNC_DECL mat<2, 3, T, Q> & operator-- ();
+
95  GLM_FUNC_DECL mat<2, 3, T, Q> operator++(int);
+
96  GLM_FUNC_DECL mat<2, 3, T, Q> operator--(int);
+
97  };
+
98 
+
99  // -- Unary operators --
+
100 
+
101  template<typename T, qualifier Q>
+
102  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m);
+
103 
+
104  template<typename T, qualifier Q>
+
105  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m);
+
106 
+
107  // -- Binary operators --
+
108 
+
109  template<typename T, qualifier Q>
+
110  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m, T scalar);
+
111 
+
112  template<typename T, qualifier Q>
+
113  GLM_FUNC_DECL mat<2, 3, T, Q> operator+(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
114 
+
115  template<typename T, qualifier Q>
+
116  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m, T scalar);
+
117 
+
118  template<typename T, qualifier Q>
+
119  GLM_FUNC_DECL mat<2, 3, T, Q> operator-(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
120 
+
121  template<typename T, qualifier Q>
+
122  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m, T scalar);
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(T scalar, mat<2, 3, T, Q> const& m);
+
126 
+
127  template<typename T, qualifier Q>
+
128  GLM_FUNC_DECL typename mat<2, 3, T, Q>::col_type operator*(mat<2, 3, T, Q> const& m, typename mat<2, 3, T, Q>::row_type const& v);
+
129 
+
130  template<typename T, qualifier Q>
+
131  GLM_FUNC_DECL typename mat<2, 3, T, Q>::row_type operator*(typename mat<2, 3, T, Q>::col_type const& v, mat<2, 3, T, Q> const& m);
+
132 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
135 
+
136  template<typename T, qualifier Q>
+
137  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
138 
+
139  template<typename T, qualifier Q>
+
140  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<2, 3, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
141 
+
142  template<typename T, qualifier Q>
+
143  GLM_FUNC_DECL mat<2, 3, T, Q> operator/(mat<2, 3, T, Q> const& m, T scalar);
+
144 
+
145  template<typename T, qualifier Q>
+
146  GLM_FUNC_DECL mat<2, 3, T, Q> operator/(T scalar, mat<2, 3, T, Q> const& m);
+
147 
+
148  // -- Boolean operators --
+
149 
+
150  template<typename T, qualifier Q>
+
151  GLM_FUNC_DECL bool operator==(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
152 
+
153  template<typename T, qualifier Q>
+
154  GLM_FUNC_DECL bool operator!=(mat<2, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
155 }//namespace glm
+
156 
+
157 #ifndef GLM_EXTERNAL_TEMPLATE
+
158 #include "type_mat2x3.inl"
+
159 #endif
+
Core features
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00167.html b/external/include/glm-0.9.9.8/doc/api/a00167.html index 5a1adeace8..655c011b64 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00167.html +++ b/external/include/glm-0.9.9.8/doc/api/a00167.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat2x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat2x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat2x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00167_source.html b/external/include/glm-0.9.9.8/doc/api/a00167_source.html index 58244c69d2..810fb6f297 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00167_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00167_source.html @@ -1,262 +1,262 @@ - - - - - - -0.9.9 API documentation: type_mat2x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat2x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec2.hpp"
-
7 #include "type_vec4.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<2, 4, T, Q>
-
15  {
-
16  typedef vec<4, T, Q> col_type;
-
17  typedef vec<2, T, Q> row_type;
-
18  typedef mat<2, 4, T, Q> type;
-
19  typedef mat<4, 2, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[2];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 4, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T x0, T y0, T z0, T w0,
-
43  T x1, T y1, T z1, T w1);
-
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
45  col_type const& v0,
-
46  col_type const& v1);
-
47 
-
48  // -- Conversions --
-
49 
-
50  template<
-
51  typename X1, typename Y1, typename Z1, typename W1,
-
52  typename X2, typename Y2, typename Z2, typename W2>
-
53  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
54  X1 x1, Y1 y1, Z1 z1, W1 w1,
-
55  X2 x2, Y2 y2, Z2 z2, W2 w2);
-
56 
-
57  template<typename U, typename V>
-
58  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
59  vec<4, U, Q> const& v1,
-
60  vec<4, V, Q> const& v2);
-
61 
-
62  // -- Matrix conversions --
-
63 
-
64  template<typename U, qualifier P>
-
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, U, P> const& m);
-
66 
-
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
75 
-
76  // -- Unary arithmetic operators --
-
77 
-
78  template<typename U>
-
79  GLM_FUNC_DECL mat<2, 4, T, Q> & operator=(mat<2, 4, U, Q> const& m);
-
80  template<typename U>
-
81  GLM_FUNC_DECL mat<2, 4, T, Q> & operator+=(U s);
-
82  template<typename U>
-
83  GLM_FUNC_DECL mat<2, 4, T, Q> & operator+=(mat<2, 4, U, Q> const& m);
-
84  template<typename U>
-
85  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-=(U s);
-
86  template<typename U>
-
87  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-=(mat<2, 4, U, Q> const& m);
-
88  template<typename U>
-
89  GLM_FUNC_DECL mat<2, 4, T, Q> & operator*=(U s);
-
90  template<typename U>
-
91  GLM_FUNC_DECL mat<2, 4, T, Q> & operator/=(U s);
-
92 
-
93  // -- Increment and decrement operators --
-
94 
-
95  GLM_FUNC_DECL mat<2, 4, T, Q> & operator++ ();
-
96  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-- ();
-
97  GLM_FUNC_DECL mat<2, 4, T, Q> operator++(int);
-
98  GLM_FUNC_DECL mat<2, 4, T, Q> operator--(int);
-
99  };
-
100 
-
101  // -- Unary operators --
-
102 
-
103  template<typename T, qualifier Q>
-
104  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m);
-
105 
-
106  template<typename T, qualifier Q>
-
107  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m);
-
108 
-
109  // -- Binary operators --
-
110 
-
111  template<typename T, qualifier Q>
-
112  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m, T scalar);
-
113 
-
114  template<typename T, qualifier Q>
-
115  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
116 
-
117  template<typename T, qualifier Q>
-
118  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m, T scalar);
-
119 
-
120  template<typename T, qualifier Q>
-
121  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
122 
-
123  template<typename T, qualifier Q>
-
124  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m, T scalar);
-
125 
-
126  template<typename T, qualifier Q>
-
127  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(T scalar, mat<2, 4, T, Q> const& m);
-
128 
-
129  template<typename T, qualifier Q>
-
130  GLM_FUNC_DECL typename mat<2, 4, T, Q>::col_type operator*(mat<2, 4, T, Q> const& m, typename mat<2, 4, T, Q>::row_type const& v);
-
131 
-
132  template<typename T, qualifier Q>
-
133  GLM_FUNC_DECL typename mat<2, 4, T, Q>::row_type operator*(typename mat<2, 4, T, Q>::col_type const& v, mat<2, 4, T, Q> const& m);
-
134 
-
135  template<typename T, qualifier Q>
-
136  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
137 
-
138  template<typename T, qualifier Q>
-
139  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
-
140 
-
141  template<typename T, qualifier Q>
-
142  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
143 
-
144  template<typename T, qualifier Q>
-
145  GLM_FUNC_DECL mat<2, 4, T, Q> operator/(mat<2, 4, T, Q> const& m, T scalar);
-
146 
-
147  template<typename T, qualifier Q>
-
148  GLM_FUNC_DECL mat<2, 4, T, Q> operator/(T scalar, mat<2, 4, T, Q> const& m);
-
149 
-
150  // -- Boolean operators --
-
151 
-
152  template<typename T, qualifier Q>
-
153  GLM_FUNC_DECL bool operator==(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
154 
-
155  template<typename T, qualifier Q>
-
156  GLM_FUNC_DECL bool operator!=(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
157 }//namespace glm
-
158 
-
159 #ifndef GLM_EXTERNAL_TEMPLATE
-
160 #include "type_mat2x4.inl"
-
161 #endif
-
Core features
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat2x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat2x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec2.hpp"
+
7 #include "type_vec4.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<2, 4, T, Q>
+
15  {
+
16  typedef vec<4, T, Q> col_type;
+
17  typedef vec<2, T, Q> row_type;
+
18  typedef mat<2, 4, T, Q> type;
+
19  typedef mat<4, 2, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[2];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 2; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<2, 4, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T x0, T y0, T z0, T w0,
+
43  T x1, T y1, T z1, T w1);
+
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
45  col_type const& v0,
+
46  col_type const& v1);
+
47 
+
48  // -- Conversions --
+
49 
+
50  template<
+
51  typename X1, typename Y1, typename Z1, typename W1,
+
52  typename X2, typename Y2, typename Z2, typename W2>
+
53  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
54  X1 x1, Y1 y1, Z1 z1, W1 w1,
+
55  X2 x2, Y2 y2, Z2 z2, W2 w2);
+
56 
+
57  template<typename U, typename V>
+
58  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
59  vec<4, U, Q> const& v1,
+
60  vec<4, V, Q> const& v2);
+
61 
+
62  // -- Matrix conversions --
+
63 
+
64  template<typename U, qualifier P>
+
65  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, U, P> const& m);
+
66 
+
67  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
68  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
75 
+
76  // -- Unary arithmetic operators --
+
77 
+
78  template<typename U>
+
79  GLM_FUNC_DECL mat<2, 4, T, Q> & operator=(mat<2, 4, U, Q> const& m);
+
80  template<typename U>
+
81  GLM_FUNC_DECL mat<2, 4, T, Q> & operator+=(U s);
+
82  template<typename U>
+
83  GLM_FUNC_DECL mat<2, 4, T, Q> & operator+=(mat<2, 4, U, Q> const& m);
+
84  template<typename U>
+
85  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-=(U s);
+
86  template<typename U>
+
87  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-=(mat<2, 4, U, Q> const& m);
+
88  template<typename U>
+
89  GLM_FUNC_DECL mat<2, 4, T, Q> & operator*=(U s);
+
90  template<typename U>
+
91  GLM_FUNC_DECL mat<2, 4, T, Q> & operator/=(U s);
+
92 
+
93  // -- Increment and decrement operators --
+
94 
+
95  GLM_FUNC_DECL mat<2, 4, T, Q> & operator++ ();
+
96  GLM_FUNC_DECL mat<2, 4, T, Q> & operator-- ();
+
97  GLM_FUNC_DECL mat<2, 4, T, Q> operator++(int);
+
98  GLM_FUNC_DECL mat<2, 4, T, Q> operator--(int);
+
99  };
+
100 
+
101  // -- Unary operators --
+
102 
+
103  template<typename T, qualifier Q>
+
104  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m);
+
105 
+
106  template<typename T, qualifier Q>
+
107  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m);
+
108 
+
109  // -- Binary operators --
+
110 
+
111  template<typename T, qualifier Q>
+
112  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m, T scalar);
+
113 
+
114  template<typename T, qualifier Q>
+
115  GLM_FUNC_DECL mat<2, 4, T, Q> operator+(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
116 
+
117  template<typename T, qualifier Q>
+
118  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m, T scalar);
+
119 
+
120  template<typename T, qualifier Q>
+
121  GLM_FUNC_DECL mat<2, 4, T, Q> operator-(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
122 
+
123  template<typename T, qualifier Q>
+
124  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m, T scalar);
+
125 
+
126  template<typename T, qualifier Q>
+
127  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(T scalar, mat<2, 4, T, Q> const& m);
+
128 
+
129  template<typename T, qualifier Q>
+
130  GLM_FUNC_DECL typename mat<2, 4, T, Q>::col_type operator*(mat<2, 4, T, Q> const& m, typename mat<2, 4, T, Q>::row_type const& v);
+
131 
+
132  template<typename T, qualifier Q>
+
133  GLM_FUNC_DECL typename mat<2, 4, T, Q>::row_type operator*(typename mat<2, 4, T, Q>::col_type const& v, mat<2, 4, T, Q> const& m);
+
134 
+
135  template<typename T, qualifier Q>
+
136  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
137 
+
138  template<typename T, qualifier Q>
+
139  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<2, 2, T, Q> const& m2);
+
140 
+
141  template<typename T, qualifier Q>
+
142  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<2, 4, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
143 
+
144  template<typename T, qualifier Q>
+
145  GLM_FUNC_DECL mat<2, 4, T, Q> operator/(mat<2, 4, T, Q> const& m, T scalar);
+
146 
+
147  template<typename T, qualifier Q>
+
148  GLM_FUNC_DECL mat<2, 4, T, Q> operator/(T scalar, mat<2, 4, T, Q> const& m);
+
149 
+
150  // -- Boolean operators --
+
151 
+
152  template<typename T, qualifier Q>
+
153  GLM_FUNC_DECL bool operator==(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
154 
+
155  template<typename T, qualifier Q>
+
156  GLM_FUNC_DECL bool operator!=(mat<2, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
157 }//namespace glm
+
158 
+
159 #ifndef GLM_EXTERNAL_TEMPLATE
+
160 #include "type_mat2x4.inl"
+
161 #endif
+
Core features
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00168.html b/external/include/glm-0.9.9.8/doc/api/a00168.html index 97be97ff24..f3840a2e7d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00168.html +++ b/external/include/glm-0.9.9.8/doc/api/a00168.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat3x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat3x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat3x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00168_source.html b/external/include/glm-0.9.9.8/doc/api/a00168_source.html index 5500f8486c..cade0e9103 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00168_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00168_source.html @@ -1,268 +1,268 @@ - - - - - - -0.9.9 API documentation: type_mat3x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec2.hpp"
-
7 #include "type_vec3.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<3, 2, T, Q>
-
15  {
-
16  typedef vec<2, T, Q> col_type;
-
17  typedef vec<3, T, Q> row_type;
-
18  typedef mat<3, 2, T, Q> type;
-
19  typedef mat<2, 3, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[3];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 2, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T x0, T y0,
-
43  T x1, T y1,
-
44  T x2, T y2);
-
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
46  col_type const& v0,
-
47  col_type const& v1,
-
48  col_type const& v2);
-
49 
-
50  // -- Conversions --
-
51 
-
52  template<
-
53  typename X1, typename Y1,
-
54  typename X2, typename Y2,
-
55  typename X3, typename Y3>
-
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
57  X1 x1, Y1 y1,
-
58  X2 x2, Y2 y2,
-
59  X3 x3, Y3 y3);
-
60 
-
61  template<typename V1, typename V2, typename V3>
-
62  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
63  vec<2, V1, Q> const& v1,
-
64  vec<2, V2, Q> const& v2,
-
65  vec<2, V3, Q> const& v3);
-
66 
-
67  // -- Matrix conversions --
-
68 
-
69  template<typename U, qualifier P>
-
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, U, P> const& m);
-
71 
-
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
80 
-
81  // -- Unary arithmetic operators --
-
82 
-
83  template<typename U>
-
84  GLM_FUNC_DECL mat<3, 2, T, Q> & operator=(mat<3, 2, U, Q> const& m);
-
85  template<typename U>
-
86  GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(U s);
-
87  template<typename U>
-
88  GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(mat<3, 2, U, Q> const& m);
-
89  template<typename U>
-
90  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(U s);
-
91  template<typename U>
-
92  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(mat<3, 2, U, Q> const& m);
-
93  template<typename U>
-
94  GLM_FUNC_DECL mat<3, 2, T, Q> & operator*=(U s);
-
95  template<typename U>
-
96  GLM_FUNC_DECL mat<3, 2, T, Q> & operator/=(U s);
-
97 
-
98  // -- Increment and decrement operators --
-
99 
-
100  GLM_FUNC_DECL mat<3, 2, T, Q> & operator++ ();
-
101  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-- ();
-
102  GLM_FUNC_DECL mat<3, 2, T, Q> operator++(int);
-
103  GLM_FUNC_DECL mat<3, 2, T, Q> operator--(int);
-
104  };
-
105 
-
106  // -- Unary operators --
-
107 
-
108  template<typename T, qualifier Q>
-
109  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m);
-
110 
-
111  template<typename T, qualifier Q>
-
112  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m);
-
113 
-
114  // -- Binary operators --
-
115 
-
116  template<typename T, qualifier Q>
-
117  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m, T scalar);
-
118 
-
119  template<typename T, qualifier Q>
-
120  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
121 
-
122  template<typename T, qualifier Q>
-
123  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m, T scalar);
-
124 
-
125  template<typename T, qualifier Q>
-
126  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
127 
-
128  template<typename T, qualifier Q>
-
129  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m, T scalar);
-
130 
-
131  template<typename T, qualifier Q>
-
132  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(T scalar, mat<3, 2, T, Q> const& m);
-
133 
-
134  template<typename T, qualifier Q>
-
135  GLM_FUNC_DECL typename mat<3, 2, T, Q>::col_type operator*(mat<3, 2, T, Q> const& m, typename mat<3, 2, T, Q>::row_type const& v);
-
136 
-
137  template<typename T, qualifier Q>
-
138  GLM_FUNC_DECL typename mat<3, 2, T, Q>::row_type operator*(typename mat<3, 2, T, Q>::col_type const& v, mat<3, 2, T, Q> const& m);
-
139 
-
140  template<typename T, qualifier Q>
-
141  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
142 
-
143  template<typename T, qualifier Q>
-
144  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
148 
-
149  template<typename T, qualifier Q>
-
150  GLM_FUNC_DECL mat<3, 2, T, Q> operator/(mat<3, 2, T, Q> const& m, T scalar);
-
151 
-
152  template<typename T, qualifier Q>
-
153  GLM_FUNC_DECL mat<3, 2, T, Q> operator/(T scalar, mat<3, 2, T, Q> const& m);
-
154 
-
155  // -- Boolean operators --
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL bool operator==(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
159 
-
160  template<typename T, qualifier Q>
-
161  GLM_FUNC_DECL bool operator!=(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
-
162 
-
163 }//namespace glm
-
164 
-
165 #ifndef GLM_EXTERNAL_TEMPLATE
-
166 #include "type_mat3x2.inl"
-
167 #endif
-
Core features
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec2.hpp"
+
7 #include "type_vec3.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<3, 2, T, Q>
+
15  {
+
16  typedef vec<2, T, Q> col_type;
+
17  typedef vec<3, T, Q> row_type;
+
18  typedef mat<3, 2, T, Q> type;
+
19  typedef mat<2, 3, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[3];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 2, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T x0, T y0,
+
43  T x1, T y1,
+
44  T x2, T y2);
+
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
46  col_type const& v0,
+
47  col_type const& v1,
+
48  col_type const& v2);
+
49 
+
50  // -- Conversions --
+
51 
+
52  template<
+
53  typename X1, typename Y1,
+
54  typename X2, typename Y2,
+
55  typename X3, typename Y3>
+
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
57  X1 x1, Y1 y1,
+
58  X2 x2, Y2 y2,
+
59  X3 x3, Y3 y3);
+
60 
+
61  template<typename V1, typename V2, typename V3>
+
62  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
63  vec<2, V1, Q> const& v1,
+
64  vec<2, V2, Q> const& v2,
+
65  vec<2, V3, Q> const& v3);
+
66 
+
67  // -- Matrix conversions --
+
68 
+
69  template<typename U, qualifier P>
+
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, U, P> const& m);
+
71 
+
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
80 
+
81  // -- Unary arithmetic operators --
+
82 
+
83  template<typename U>
+
84  GLM_FUNC_DECL mat<3, 2, T, Q> & operator=(mat<3, 2, U, Q> const& m);
+
85  template<typename U>
+
86  GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(U s);
+
87  template<typename U>
+
88  GLM_FUNC_DECL mat<3, 2, T, Q> & operator+=(mat<3, 2, U, Q> const& m);
+
89  template<typename U>
+
90  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(U s);
+
91  template<typename U>
+
92  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-=(mat<3, 2, U, Q> const& m);
+
93  template<typename U>
+
94  GLM_FUNC_DECL mat<3, 2, T, Q> & operator*=(U s);
+
95  template<typename U>
+
96  GLM_FUNC_DECL mat<3, 2, T, Q> & operator/=(U s);
+
97 
+
98  // -- Increment and decrement operators --
+
99 
+
100  GLM_FUNC_DECL mat<3, 2, T, Q> & operator++ ();
+
101  GLM_FUNC_DECL mat<3, 2, T, Q> & operator-- ();
+
102  GLM_FUNC_DECL mat<3, 2, T, Q> operator++(int);
+
103  GLM_FUNC_DECL mat<3, 2, T, Q> operator--(int);
+
104  };
+
105 
+
106  // -- Unary operators --
+
107 
+
108  template<typename T, qualifier Q>
+
109  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m);
+
110 
+
111  template<typename T, qualifier Q>
+
112  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m);
+
113 
+
114  // -- Binary operators --
+
115 
+
116  template<typename T, qualifier Q>
+
117  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m, T scalar);
+
118 
+
119  template<typename T, qualifier Q>
+
120  GLM_FUNC_DECL mat<3, 2, T, Q> operator+(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
121 
+
122  template<typename T, qualifier Q>
+
123  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m, T scalar);
+
124 
+
125  template<typename T, qualifier Q>
+
126  GLM_FUNC_DECL mat<3, 2, T, Q> operator-(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
127 
+
128  template<typename T, qualifier Q>
+
129  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m, T scalar);
+
130 
+
131  template<typename T, qualifier Q>
+
132  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(T scalar, mat<3, 2, T, Q> const& m);
+
133 
+
134  template<typename T, qualifier Q>
+
135  GLM_FUNC_DECL typename mat<3, 2, T, Q>::col_type operator*(mat<3, 2, T, Q> const& m, typename mat<3, 2, T, Q>::row_type const& v);
+
136 
+
137  template<typename T, qualifier Q>
+
138  GLM_FUNC_DECL typename mat<3, 2, T, Q>::row_type operator*(typename mat<3, 2, T, Q>::col_type const& v, mat<3, 2, T, Q> const& m);
+
139 
+
140  template<typename T, qualifier Q>
+
141  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
142 
+
143  template<typename T, qualifier Q>
+
144  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
145 
+
146  template<typename T, qualifier Q>
+
147  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<3, 2, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
148 
+
149  template<typename T, qualifier Q>
+
150  GLM_FUNC_DECL mat<3, 2, T, Q> operator/(mat<3, 2, T, Q> const& m, T scalar);
+
151 
+
152  template<typename T, qualifier Q>
+
153  GLM_FUNC_DECL mat<3, 2, T, Q> operator/(T scalar, mat<3, 2, T, Q> const& m);
+
154 
+
155  // -- Boolean operators --
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL bool operator==(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
159 
+
160  template<typename T, qualifier Q>
+
161  GLM_FUNC_DECL bool operator!=(mat<3, 2, T, Q> const& m1, mat<3, 2, T, Q> const& m2);
+
162 
+
163 }//namespace glm
+
164 
+
165 #ifndef GLM_EXTERNAL_TEMPLATE
+
166 #include "type_mat3x2.inl"
+
167 #endif
+
Core features
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00169.html b/external/include/glm-0.9.9.8/doc/api/a00169.html index 3b7a04d7a2..2bc35c69df 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00169.html +++ b/external/include/glm-0.9.9.8/doc/api/a00169.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat3x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat3x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat3x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00169_source.html b/external/include/glm-0.9.9.8/doc/api/a00169_source.html index 08206d5ea8..fbe0c929c0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00169_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00169_source.html @@ -1,284 +1,284 @@ - - - - - - -0.9.9 API documentation: type_mat3x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec3.hpp"
-
7 #include <limits>
-
8 #include <cstddef>
-
9 
-
10 namespace glm
-
11 {
-
12  template<typename T, qualifier Q>
-
13  struct mat<3, 3, T, Q>
-
14  {
-
15  typedef vec<3, T, Q> col_type;
-
16  typedef vec<3, T, Q> row_type;
-
17  typedef mat<3, 3, T, Q> type;
-
18  typedef mat<3, 3, T, Q> transpose_type;
-
19  typedef T value_type;
-
20 
-
21  private:
-
22  col_type value[3];
-
23 
-
24  public:
-
25  // -- Accesses --
-
26 
-
27  typedef length_t length_type;
-
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
-
29 
-
30  GLM_FUNC_DECL col_type & operator[](length_type i);
-
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
32 
-
33  // -- Constructors --
-
34 
-
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
36  template<qualifier P>
-
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 3, T, P> const& m);
-
38 
-
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
41  T x0, T y0, T z0,
-
42  T x1, T y1, T z1,
-
43  T x2, T y2, T z2);
-
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
45  col_type const& v0,
-
46  col_type const& v1,
-
47  col_type const& v2);
-
48 
-
49  // -- Conversions --
-
50 
-
51  template<
-
52  typename X1, typename Y1, typename Z1,
-
53  typename X2, typename Y2, typename Z2,
-
54  typename X3, typename Y3, typename Z3>
-
55  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
56  X1 x1, Y1 y1, Z1 z1,
-
57  X2 x2, Y2 y2, Z2 z2,
-
58  X3 x3, Y3 y3, Z3 z3);
-
59 
-
60  template<typename V1, typename V2, typename V3>
-
61  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
62  vec<3, V1, Q> const& v1,
-
63  vec<3, V2, Q> const& v2,
-
64  vec<3, V3, Q> const& v3);
-
65 
-
66  // -- Matrix conversions --
-
67 
-
68  template<typename U, qualifier P>
-
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, U, P> const& m);
-
70 
-
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
79 
-
80  // -- Unary arithmetic operators --
-
81 
-
82  template<typename U>
-
83  GLM_FUNC_DECL mat<3, 3, T, Q> & operator=(mat<3, 3, U, Q> const& m);
-
84  template<typename U>
-
85  GLM_FUNC_DECL mat<3, 3, T, Q> & operator+=(U s);
-
86  template<typename U>
-
87  GLM_FUNC_DECL mat<3, 3, T, Q> & operator+=(mat<3, 3, U, Q> const& m);
-
88  template<typename U>
-
89  GLM_FUNC_DECL mat<3, 3, T, Q> & operator-=(U s);
-
90  template<typename U>
-
91  GLM_FUNC_DECL mat<3, 3, T, Q> & operator-=(mat<3, 3, U, Q> const& m);
-
92  template<typename U>
-
93  GLM_FUNC_DECL mat<3, 3, T, Q> & operator*=(U s);
-
94  template<typename U>
-
95  GLM_FUNC_DECL mat<3, 3, T, Q> & operator*=(mat<3, 3, U, Q> const& m);
-
96  template<typename U>
-
97  GLM_FUNC_DECL mat<3, 3, T, Q> & operator/=(U s);
-
98  template<typename U>
-
99  GLM_FUNC_DECL mat<3, 3, T, Q> & operator/=(mat<3, 3, U, Q> const& m);
-
100 
-
101  // -- Increment and decrement operators --
-
102 
-
103  GLM_FUNC_DECL mat<3, 3, T, Q> & operator++();
-
104  GLM_FUNC_DECL mat<3, 3, T, Q> & operator--();
-
105  GLM_FUNC_DECL mat<3, 3, T, Q> operator++(int);
-
106  GLM_FUNC_DECL mat<3, 3, T, Q> operator--(int);
-
107  };
-
108 
-
109  // -- Unary operators --
-
110 
-
111  template<typename T, qualifier Q>
-
112  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m);
-
113 
-
114  template<typename T, qualifier Q>
-
115  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m);
-
116 
-
117  // -- Binary operators --
-
118 
-
119  template<typename T, qualifier Q>
-
120  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m, T scalar);
-
121 
-
122  template<typename T, qualifier Q>
-
123  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(T scalar, mat<3, 3, T, Q> const& m);
-
124 
-
125  template<typename T, qualifier Q>
-
126  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
127 
-
128  template<typename T, qualifier Q>
-
129  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m, T scalar);
-
130 
-
131  template<typename T, qualifier Q>
-
132  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(T scalar, mat<3, 3, T, Q> const& m);
-
133 
-
134  template<typename T, qualifier Q>
-
135  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
136 
-
137  template<typename T, qualifier Q>
-
138  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m, T scalar);
-
139 
-
140  template<typename T, qualifier Q>
-
141  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(T scalar, mat<3, 3, T, Q> const& m);
-
142 
-
143  template<typename T, qualifier Q>
-
144  GLM_FUNC_DECL typename mat<3, 3, T, Q>::col_type operator*(mat<3, 3, T, Q> const& m, typename mat<3, 3, T, Q>::row_type const& v);
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_FUNC_DECL typename mat<3, 3, T, Q>::row_type operator*(typename mat<3, 3, T, Q>::col_type const& v, mat<3, 3, T, Q> const& m);
-
148 
-
149  template<typename T, qualifier Q>
-
150  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
151 
-
152  template<typename T, qualifier Q>
-
153  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
154 
-
155  template<typename T, qualifier Q>
-
156  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
157 
-
158  template<typename T, qualifier Q>
-
159  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(mat<3, 3, T, Q> const& m, T scalar);
-
160 
-
161  template<typename T, qualifier Q>
-
162  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(T scalar, mat<3, 3, T, Q> const& m);
-
163 
-
164  template<typename T, qualifier Q>
-
165  GLM_FUNC_DECL typename mat<3, 3, T, Q>::col_type operator/(mat<3, 3, T, Q> const& m, typename mat<3, 3, T, Q>::row_type const& v);
-
166 
-
167  template<typename T, qualifier Q>
-
168  GLM_FUNC_DECL typename mat<3, 3, T, Q>::row_type operator/(typename mat<3, 3, T, Q>::col_type const& v, mat<3, 3, T, Q> const& m);
-
169 
-
170  template<typename T, qualifier Q>
-
171  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
172 
-
173  // -- Boolean operators --
-
174 
-
175  template<typename T, qualifier Q>
-
176  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
177 
-
178  template<typename T, qualifier Q>
-
179  GLM_FUNC_DECL bool operator!=(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
180 }//namespace glm
-
181 
-
182 #ifndef GLM_EXTERNAL_TEMPLATE
-
183 #include "type_mat3x3.inl"
-
184 #endif
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec3.hpp"
+
7 #include <limits>
+
8 #include <cstddef>
+
9 
+
10 namespace glm
+
11 {
+
12  template<typename T, qualifier Q>
+
13  struct mat<3, 3, T, Q>
+
14  {
+
15  typedef vec<3, T, Q> col_type;
+
16  typedef vec<3, T, Q> row_type;
+
17  typedef mat<3, 3, T, Q> type;
+
18  typedef mat<3, 3, T, Q> transpose_type;
+
19  typedef T value_type;
+
20 
+
21  private:
+
22  col_type value[3];
+
23 
+
24  public:
+
25  // -- Accesses --
+
26 
+
27  typedef length_t length_type;
+
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
+
29 
+
30  GLM_FUNC_DECL col_type & operator[](length_type i);
+
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
32 
+
33  // -- Constructors --
+
34 
+
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
36  template<qualifier P>
+
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 3, T, P> const& m);
+
38 
+
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
41  T x0, T y0, T z0,
+
42  T x1, T y1, T z1,
+
43  T x2, T y2, T z2);
+
44  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
45  col_type const& v0,
+
46  col_type const& v1,
+
47  col_type const& v2);
+
48 
+
49  // -- Conversions --
+
50 
+
51  template<
+
52  typename X1, typename Y1, typename Z1,
+
53  typename X2, typename Y2, typename Z2,
+
54  typename X3, typename Y3, typename Z3>
+
55  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
56  X1 x1, Y1 y1, Z1 z1,
+
57  X2 x2, Y2 y2, Z2 z2,
+
58  X3 x3, Y3 y3, Z3 z3);
+
59 
+
60  template<typename V1, typename V2, typename V3>
+
61  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
62  vec<3, V1, Q> const& v1,
+
63  vec<3, V2, Q> const& v2,
+
64  vec<3, V3, Q> const& v3);
+
65 
+
66  // -- Matrix conversions --
+
67 
+
68  template<typename U, qualifier P>
+
69  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, U, P> const& m);
+
70 
+
71  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
79 
+
80  // -- Unary arithmetic operators --
+
81 
+
82  template<typename U>
+
83  GLM_FUNC_DECL mat<3, 3, T, Q> & operator=(mat<3, 3, U, Q> const& m);
+
84  template<typename U>
+
85  GLM_FUNC_DECL mat<3, 3, T, Q> & operator+=(U s);
+
86  template<typename U>
+
87  GLM_FUNC_DECL mat<3, 3, T, Q> & operator+=(mat<3, 3, U, Q> const& m);
+
88  template<typename U>
+
89  GLM_FUNC_DECL mat<3, 3, T, Q> & operator-=(U s);
+
90  template<typename U>
+
91  GLM_FUNC_DECL mat<3, 3, T, Q> & operator-=(mat<3, 3, U, Q> const& m);
+
92  template<typename U>
+
93  GLM_FUNC_DECL mat<3, 3, T, Q> & operator*=(U s);
+
94  template<typename U>
+
95  GLM_FUNC_DECL mat<3, 3, T, Q> & operator*=(mat<3, 3, U, Q> const& m);
+
96  template<typename U>
+
97  GLM_FUNC_DECL mat<3, 3, T, Q> & operator/=(U s);
+
98  template<typename U>
+
99  GLM_FUNC_DECL mat<3, 3, T, Q> & operator/=(mat<3, 3, U, Q> const& m);
+
100 
+
101  // -- Increment and decrement operators --
+
102 
+
103  GLM_FUNC_DECL mat<3, 3, T, Q> & operator++();
+
104  GLM_FUNC_DECL mat<3, 3, T, Q> & operator--();
+
105  GLM_FUNC_DECL mat<3, 3, T, Q> operator++(int);
+
106  GLM_FUNC_DECL mat<3, 3, T, Q> operator--(int);
+
107  };
+
108 
+
109  // -- Unary operators --
+
110 
+
111  template<typename T, qualifier Q>
+
112  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m);
+
113 
+
114  template<typename T, qualifier Q>
+
115  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m);
+
116 
+
117  // -- Binary operators --
+
118 
+
119  template<typename T, qualifier Q>
+
120  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m, T scalar);
+
121 
+
122  template<typename T, qualifier Q>
+
123  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(T scalar, mat<3, 3, T, Q> const& m);
+
124 
+
125  template<typename T, qualifier Q>
+
126  GLM_FUNC_DECL mat<3, 3, T, Q> operator+(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
127 
+
128  template<typename T, qualifier Q>
+
129  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m, T scalar);
+
130 
+
131  template<typename T, qualifier Q>
+
132  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(T scalar, mat<3, 3, T, Q> const& m);
+
133 
+
134  template<typename T, qualifier Q>
+
135  GLM_FUNC_DECL mat<3, 3, T, Q> operator-(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
136 
+
137  template<typename T, qualifier Q>
+
138  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m, T scalar);
+
139 
+
140  template<typename T, qualifier Q>
+
141  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(T scalar, mat<3, 3, T, Q> const& m);
+
142 
+
143  template<typename T, qualifier Q>
+
144  GLM_FUNC_DECL typename mat<3, 3, T, Q>::col_type operator*(mat<3, 3, T, Q> const& m, typename mat<3, 3, T, Q>::row_type const& v);
+
145 
+
146  template<typename T, qualifier Q>
+
147  GLM_FUNC_DECL typename mat<3, 3, T, Q>::row_type operator*(typename mat<3, 3, T, Q>::col_type const& v, mat<3, 3, T, Q> const& m);
+
148 
+
149  template<typename T, qualifier Q>
+
150  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
151 
+
152  template<typename T, qualifier Q>
+
153  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
154 
+
155  template<typename T, qualifier Q>
+
156  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<3, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
157 
+
158  template<typename T, qualifier Q>
+
159  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(mat<3, 3, T, Q> const& m, T scalar);
+
160 
+
161  template<typename T, qualifier Q>
+
162  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(T scalar, mat<3, 3, T, Q> const& m);
+
163 
+
164  template<typename T, qualifier Q>
+
165  GLM_FUNC_DECL typename mat<3, 3, T, Q>::col_type operator/(mat<3, 3, T, Q> const& m, typename mat<3, 3, T, Q>::row_type const& v);
+
166 
+
167  template<typename T, qualifier Q>
+
168  GLM_FUNC_DECL typename mat<3, 3, T, Q>::row_type operator/(typename mat<3, 3, T, Q>::col_type const& v, mat<3, 3, T, Q> const& m);
+
169 
+
170  template<typename T, qualifier Q>
+
171  GLM_FUNC_DECL mat<3, 3, T, Q> operator/(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
172 
+
173  // -- Boolean operators --
+
174 
+
175  template<typename T, qualifier Q>
+
176  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
177 
+
178  template<typename T, qualifier Q>
+
179  GLM_FUNC_DECL bool operator!=(mat<3, 3, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
180 }//namespace glm
+
181 
+
182 #ifndef GLM_EXTERNAL_TEMPLATE
+
183 #include "type_mat3x3.inl"
+
184 #endif
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00170.html b/external/include/glm-0.9.9.8/doc/api/a00170.html index 2f25d90b7d..95cd273cfb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00170.html +++ b/external/include/glm-0.9.9.8/doc/api/a00170.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat3x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat3x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat3x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00170_source.html b/external/include/glm-0.9.9.8/doc/api/a00170_source.html index 280867a839..db05a36581 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00170_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00170_source.html @@ -1,267 +1,267 @@ - - - - - - -0.9.9 API documentation: type_mat3x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat3x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec3.hpp"
-
7 #include "type_vec4.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<3, 4, T, Q>
-
15  {
-
16  typedef vec<4, T, Q> col_type;
-
17  typedef vec<3, T, Q> row_type;
-
18  typedef mat<3, 4, T, Q> type;
-
19  typedef mat<4, 3, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[3];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 4, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T x0, T y0, T z0, T w0,
-
43  T x1, T y1, T z1, T w1,
-
44  T x2, T y2, T z2, T w2);
-
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
46  col_type const& v0,
-
47  col_type const& v1,
-
48  col_type const& v2);
-
49 
-
50  // -- Conversions --
-
51 
-
52  template<
-
53  typename X1, typename Y1, typename Z1, typename W1,
-
54  typename X2, typename Y2, typename Z2, typename W2,
-
55  typename X3, typename Y3, typename Z3, typename W3>
-
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
57  X1 x1, Y1 y1, Z1 z1, W1 w1,
-
58  X2 x2, Y2 y2, Z2 z2, W2 w2,
-
59  X3 x3, Y3 y3, Z3 z3, W3 w3);
-
60 
-
61  template<typename V1, typename V2, typename V3>
-
62  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
63  vec<4, V1, Q> const& v1,
-
64  vec<4, V2, Q> const& v2,
-
65  vec<4, V3, Q> const& v3);
-
66 
-
67  // -- Matrix conversions --
-
68 
-
69  template<typename U, qualifier P>
-
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, U, P> const& m);
-
71 
-
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
80 
-
81  // -- Unary arithmetic operators --
-
82 
-
83  template<typename U>
-
84  GLM_FUNC_DECL mat<3, 4, T, Q> & operator=(mat<3, 4, U, Q> const& m);
-
85  template<typename U>
-
86  GLM_FUNC_DECL mat<3, 4, T, Q> & operator+=(U s);
-
87  template<typename U>
-
88  GLM_FUNC_DECL mat<3, 4, T, Q> & operator+=(mat<3, 4, U, Q> const& m);
-
89  template<typename U>
-
90  GLM_FUNC_DECL mat<3, 4, T, Q> & operator-=(U s);
-
91  template<typename U>
-
92  GLM_FUNC_DECL mat<3, 4, T, Q> & operator-=(mat<3, 4, U, Q> const& m);
-
93  template<typename U>
-
94  GLM_FUNC_DECL mat<3, 4, T, Q> & operator*=(U s);
-
95  template<typename U>
-
96  GLM_FUNC_DECL mat<3, 4, T, Q> & operator/=(U s);
-
97 
-
98  // -- Increment and decrement operators --
-
99 
-
100  GLM_FUNC_DECL mat<3, 4, T, Q> & operator++();
-
101  GLM_FUNC_DECL mat<3, 4, T, Q> & operator--();
-
102  GLM_FUNC_DECL mat<3, 4, T, Q> operator++(int);
-
103  GLM_FUNC_DECL mat<3, 4, T, Q> operator--(int);
-
104  };
-
105 
-
106  // -- Unary operators --
-
107 
-
108  template<typename T, qualifier Q>
-
109  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m);
-
110 
-
111  template<typename T, qualifier Q>
-
112  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m);
-
113 
-
114  // -- Binary operators --
-
115 
-
116  template<typename T, qualifier Q>
-
117  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m, T scalar);
-
118 
-
119  template<typename T, qualifier Q>
-
120  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
121 
-
122  template<typename T, qualifier Q>
-
123  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m, T scalar);
-
124 
-
125  template<typename T, qualifier Q>
-
126  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
127 
-
128  template<typename T, qualifier Q>
-
129  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m, T scalar);
-
130 
-
131  template<typename T, qualifier Q>
-
132  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(T scalar, mat<3, 4, T, Q> const& m);
-
133 
-
134  template<typename T, qualifier Q>
-
135  GLM_FUNC_DECL typename mat<3, 4, T, Q>::col_type operator*(mat<3, 4, T, Q> const& m, typename mat<3, 4, T, Q>::row_type const& v);
-
136 
-
137  template<typename T, qualifier Q>
-
138  GLM_FUNC_DECL typename mat<3, 4, T, Q>::row_type operator*(typename mat<3, 4, T, Q>::col_type const& v, mat<3, 4, T, Q> const& m);
-
139 
-
140  template<typename T, qualifier Q>
-
141  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
142 
-
143  template<typename T, qualifier Q>
-
144  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
-
148 
-
149  template<typename T, qualifier Q>
-
150  GLM_FUNC_DECL mat<3, 4, T, Q> operator/(mat<3, 4, T, Q> const& m, T scalar);
-
151 
-
152  template<typename T, qualifier Q>
-
153  GLM_FUNC_DECL mat<3, 4, T, Q> operator/(T scalar, mat<3, 4, T, Q> const& m);
-
154 
-
155  // -- Boolean operators --
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL bool operator==(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
159 
-
160  template<typename T, qualifier Q>
-
161  GLM_FUNC_DECL bool operator!=(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
162 }//namespace glm
-
163 
-
164 #ifndef GLM_EXTERNAL_TEMPLATE
-
165 #include "type_mat3x4.inl"
-
166 #endif
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat3x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat3x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec3.hpp"
+
7 #include "type_vec4.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<3, 4, T, Q>
+
15  {
+
16  typedef vec<4, T, Q> col_type;
+
17  typedef vec<3, T, Q> row_type;
+
18  typedef mat<3, 4, T, Q> type;
+
19  typedef mat<4, 3, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[3];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 3; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<3, 4, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T x0, T y0, T z0, T w0,
+
43  T x1, T y1, T z1, T w1,
+
44  T x2, T y2, T z2, T w2);
+
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
46  col_type const& v0,
+
47  col_type const& v1,
+
48  col_type const& v2);
+
49 
+
50  // -- Conversions --
+
51 
+
52  template<
+
53  typename X1, typename Y1, typename Z1, typename W1,
+
54  typename X2, typename Y2, typename Z2, typename W2,
+
55  typename X3, typename Y3, typename Z3, typename W3>
+
56  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
57  X1 x1, Y1 y1, Z1 z1, W1 w1,
+
58  X2 x2, Y2 y2, Z2 z2, W2 w2,
+
59  X3 x3, Y3 y3, Z3 z3, W3 w3);
+
60 
+
61  template<typename V1, typename V2, typename V3>
+
62  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
63  vec<4, V1, Q> const& v1,
+
64  vec<4, V2, Q> const& v2,
+
65  vec<4, V3, Q> const& v3);
+
66 
+
67  // -- Matrix conversions --
+
68 
+
69  template<typename U, qualifier P>
+
70  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, U, P> const& m);
+
71 
+
72  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
73  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
80 
+
81  // -- Unary arithmetic operators --
+
82 
+
83  template<typename U>
+
84  GLM_FUNC_DECL mat<3, 4, T, Q> & operator=(mat<3, 4, U, Q> const& m);
+
85  template<typename U>
+
86  GLM_FUNC_DECL mat<3, 4, T, Q> & operator+=(U s);
+
87  template<typename U>
+
88  GLM_FUNC_DECL mat<3, 4, T, Q> & operator+=(mat<3, 4, U, Q> const& m);
+
89  template<typename U>
+
90  GLM_FUNC_DECL mat<3, 4, T, Q> & operator-=(U s);
+
91  template<typename U>
+
92  GLM_FUNC_DECL mat<3, 4, T, Q> & operator-=(mat<3, 4, U, Q> const& m);
+
93  template<typename U>
+
94  GLM_FUNC_DECL mat<3, 4, T, Q> & operator*=(U s);
+
95  template<typename U>
+
96  GLM_FUNC_DECL mat<3, 4, T, Q> & operator/=(U s);
+
97 
+
98  // -- Increment and decrement operators --
+
99 
+
100  GLM_FUNC_DECL mat<3, 4, T, Q> & operator++();
+
101  GLM_FUNC_DECL mat<3, 4, T, Q> & operator--();
+
102  GLM_FUNC_DECL mat<3, 4, T, Q> operator++(int);
+
103  GLM_FUNC_DECL mat<3, 4, T, Q> operator--(int);
+
104  };
+
105 
+
106  // -- Unary operators --
+
107 
+
108  template<typename T, qualifier Q>
+
109  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m);
+
110 
+
111  template<typename T, qualifier Q>
+
112  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m);
+
113 
+
114  // -- Binary operators --
+
115 
+
116  template<typename T, qualifier Q>
+
117  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m, T scalar);
+
118 
+
119  template<typename T, qualifier Q>
+
120  GLM_FUNC_DECL mat<3, 4, T, Q> operator+(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
121 
+
122  template<typename T, qualifier Q>
+
123  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m, T scalar);
+
124 
+
125  template<typename T, qualifier Q>
+
126  GLM_FUNC_DECL mat<3, 4, T, Q> operator-(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
127 
+
128  template<typename T, qualifier Q>
+
129  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m, T scalar);
+
130 
+
131  template<typename T, qualifier Q>
+
132  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(T scalar, mat<3, 4, T, Q> const& m);
+
133 
+
134  template<typename T, qualifier Q>
+
135  GLM_FUNC_DECL typename mat<3, 4, T, Q>::col_type operator*(mat<3, 4, T, Q> const& m, typename mat<3, 4, T, Q>::row_type const& v);
+
136 
+
137  template<typename T, qualifier Q>
+
138  GLM_FUNC_DECL typename mat<3, 4, T, Q>::row_type operator*(typename mat<3, 4, T, Q>::col_type const& v, mat<3, 4, T, Q> const& m);
+
139 
+
140  template<typename T, qualifier Q>
+
141  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
142 
+
143  template<typename T, qualifier Q>
+
144  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<2, 3, T, Q> const& m2);
+
145 
+
146  template<typename T, qualifier Q>
+
147  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<3, 4, T, Q> const& m1, mat<3, 3, T, Q> const& m2);
+
148 
+
149  template<typename T, qualifier Q>
+
150  GLM_FUNC_DECL mat<3, 4, T, Q> operator/(mat<3, 4, T, Q> const& m, T scalar);
+
151 
+
152  template<typename T, qualifier Q>
+
153  GLM_FUNC_DECL mat<3, 4, T, Q> operator/(T scalar, mat<3, 4, T, Q> const& m);
+
154 
+
155  // -- Boolean operators --
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL bool operator==(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
159 
+
160  template<typename T, qualifier Q>
+
161  GLM_FUNC_DECL bool operator!=(mat<3, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
162 }//namespace glm
+
163 
+
164 #ifndef GLM_EXTERNAL_TEMPLATE
+
165 #include "type_mat3x4.inl"
+
166 #endif
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00171.html b/external/include/glm-0.9.9.8/doc/api/a00171.html index f71f10bcda..d644b94896 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00171.html +++ b/external/include/glm-0.9.9.8/doc/api/a00171.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat4x2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat4x2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat4x2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00171_source.html b/external/include/glm-0.9.9.8/doc/api/a00171_source.html index d1e310a886..795f18b423 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00171_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00171_source.html @@ -1,272 +1,272 @@ - - - - - - -0.9.9 API documentation: type_mat4x2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec2.hpp"
-
7 #include "type_vec4.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<4, 2, T, Q>
-
15  {
-
16  typedef vec<2, T, Q> col_type;
-
17  typedef vec<4, T, Q> row_type;
-
18  typedef mat<4, 2, T, Q> type;
-
19  typedef mat<2, 4, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[4];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 4; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 2, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T x0, T y0,
-
43  T x1, T y1,
-
44  T x2, T y2,
-
45  T x3, T y3);
-
46  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
47  col_type const& v0,
-
48  col_type const& v1,
-
49  col_type const& v2,
-
50  col_type const& v3);
-
51 
-
52  // -- Conversions --
-
53 
-
54  template<
-
55  typename X0, typename Y0,
-
56  typename X1, typename Y1,
-
57  typename X2, typename Y2,
-
58  typename X3, typename Y3>
-
59  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
60  X0 x0, Y0 y0,
-
61  X1 x1, Y1 y1,
-
62  X2 x2, Y2 y2,
-
63  X3 x3, Y3 y3);
-
64 
-
65  template<typename V1, typename V2, typename V3, typename V4>
-
66  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
67  vec<2, V1, Q> const& v1,
-
68  vec<2, V2, Q> const& v2,
-
69  vec<2, V3, Q> const& v3,
-
70  vec<2, V4, Q> const& v4);
-
71 
-
72  // -- Matrix conversions --
-
73 
-
74  template<typename U, qualifier P>
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, U, P> const& m);
-
76 
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
84  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
85 
-
86  // -- Unary arithmetic operators --
-
87 
-
88  template<typename U>
-
89  GLM_FUNC_DECL mat<4, 2, T, Q> & operator=(mat<4, 2, U, Q> const& m);
-
90  template<typename U>
-
91  GLM_FUNC_DECL mat<4, 2, T, Q> & operator+=(U s);
-
92  template<typename U>
-
93  GLM_FUNC_DECL mat<4, 2, T, Q> & operator+=(mat<4, 2, U, Q> const& m);
-
94  template<typename U>
-
95  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-=(U s);
-
96  template<typename U>
-
97  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-=(mat<4, 2, U, Q> const& m);
-
98  template<typename U>
-
99  GLM_FUNC_DECL mat<4, 2, T, Q> & operator*=(U s);
-
100  template<typename U>
-
101  GLM_FUNC_DECL mat<4, 2, T, Q> & operator/=(U s);
-
102 
-
103  // -- Increment and decrement operators --
-
104 
-
105  GLM_FUNC_DECL mat<4, 2, T, Q> & operator++ ();
-
106  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-- ();
-
107  GLM_FUNC_DECL mat<4, 2, T, Q> operator++(int);
-
108  GLM_FUNC_DECL mat<4, 2, T, Q> operator--(int);
-
109  };
-
110 
-
111  // -- Unary operators --
-
112 
-
113  template<typename T, qualifier Q>
-
114  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m);
-
115 
-
116  template<typename T, qualifier Q>
-
117  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m);
-
118 
-
119  // -- Binary operators --
-
120 
-
121  template<typename T, qualifier Q>
-
122  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m, T scalar);
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
126 
-
127  template<typename T, qualifier Q>
-
128  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m, T scalar);
-
129 
-
130  template<typename T, qualifier Q>
-
131  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
132 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m, T scalar);
-
135 
-
136  template<typename T, qualifier Q>
-
137  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(T scalar, mat<4, 2, T, Q> const& m);
-
138 
-
139  template<typename T, qualifier Q>
-
140  GLM_FUNC_DECL typename mat<4, 2, T, Q>::col_type operator*(mat<4, 2, T, Q> const& m, typename mat<4, 2, T, Q>::row_type const& v);
-
141 
-
142  template<typename T, qualifier Q>
-
143  GLM_FUNC_DECL typename mat<4, 2, T, Q>::row_type operator*(typename mat<4, 2, T, Q>::col_type const& v, mat<4, 2, T, Q> const& m);
-
144 
-
145  template<typename T, qualifier Q>
-
146  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
147 
-
148  template<typename T, qualifier Q>
-
149  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
150 
-
151  template<typename T, qualifier Q>
-
152  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
153 
-
154  template<typename T, qualifier Q>
-
155  GLM_FUNC_DECL mat<4, 2, T, Q> operator/(mat<4, 2, T, Q> const& m, T scalar);
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL mat<4, 2, T, Q> operator/(T scalar, mat<4, 2, T, Q> const& m);
-
159 
-
160  // -- Boolean operators --
-
161 
-
162  template<typename T, qualifier Q>
-
163  GLM_FUNC_DECL bool operator==(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
164 
-
165  template<typename T, qualifier Q>
-
166  GLM_FUNC_DECL bool operator!=(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
-
167 }//namespace glm
-
168 
-
169 #ifndef GLM_EXTERNAL_TEMPLATE
-
170 #include "type_mat4x2.inl"
-
171 #endif
-
Core features
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec2.hpp"
+
7 #include "type_vec4.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<4, 2, T, Q>
+
15  {
+
16  typedef vec<2, T, Q> col_type;
+
17  typedef vec<4, T, Q> row_type;
+
18  typedef mat<4, 2, T, Q> type;
+
19  typedef mat<2, 4, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[4];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 4; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 2, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T scalar);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T x0, T y0,
+
43  T x1, T y1,
+
44  T x2, T y2,
+
45  T x3, T y3);
+
46  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
47  col_type const& v0,
+
48  col_type const& v1,
+
49  col_type const& v2,
+
50  col_type const& v3);
+
51 
+
52  // -- Conversions --
+
53 
+
54  template<
+
55  typename X0, typename Y0,
+
56  typename X1, typename Y1,
+
57  typename X2, typename Y2,
+
58  typename X3, typename Y3>
+
59  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
60  X0 x0, Y0 y0,
+
61  X1 x1, Y1 y1,
+
62  X2 x2, Y2 y2,
+
63  X3 x3, Y3 y3);
+
64 
+
65  template<typename V1, typename V2, typename V3, typename V4>
+
66  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
67  vec<2, V1, Q> const& v1,
+
68  vec<2, V2, Q> const& v2,
+
69  vec<2, V3, Q> const& v3,
+
70  vec<2, V4, Q> const& v4);
+
71 
+
72  // -- Matrix conversions --
+
73 
+
74  template<typename U, qualifier P>
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, U, P> const& m);
+
76 
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
84  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
85 
+
86  // -- Unary arithmetic operators --
+
87 
+
88  template<typename U>
+
89  GLM_FUNC_DECL mat<4, 2, T, Q> & operator=(mat<4, 2, U, Q> const& m);
+
90  template<typename U>
+
91  GLM_FUNC_DECL mat<4, 2, T, Q> & operator+=(U s);
+
92  template<typename U>
+
93  GLM_FUNC_DECL mat<4, 2, T, Q> & operator+=(mat<4, 2, U, Q> const& m);
+
94  template<typename U>
+
95  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-=(U s);
+
96  template<typename U>
+
97  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-=(mat<4, 2, U, Q> const& m);
+
98  template<typename U>
+
99  GLM_FUNC_DECL mat<4, 2, T, Q> & operator*=(U s);
+
100  template<typename U>
+
101  GLM_FUNC_DECL mat<4, 2, T, Q> & operator/=(U s);
+
102 
+
103  // -- Increment and decrement operators --
+
104 
+
105  GLM_FUNC_DECL mat<4, 2, T, Q> & operator++ ();
+
106  GLM_FUNC_DECL mat<4, 2, T, Q> & operator-- ();
+
107  GLM_FUNC_DECL mat<4, 2, T, Q> operator++(int);
+
108  GLM_FUNC_DECL mat<4, 2, T, Q> operator--(int);
+
109  };
+
110 
+
111  // -- Unary operators --
+
112 
+
113  template<typename T, qualifier Q>
+
114  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m);
+
115 
+
116  template<typename T, qualifier Q>
+
117  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m);
+
118 
+
119  // -- Binary operators --
+
120 
+
121  template<typename T, qualifier Q>
+
122  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m, T scalar);
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL mat<4, 2, T, Q> operator+(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
126 
+
127  template<typename T, qualifier Q>
+
128  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m, T scalar);
+
129 
+
130  template<typename T, qualifier Q>
+
131  GLM_FUNC_DECL mat<4, 2, T, Q> operator-(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
132 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m, T scalar);
+
135 
+
136  template<typename T, qualifier Q>
+
137  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(T scalar, mat<4, 2, T, Q> const& m);
+
138 
+
139  template<typename T, qualifier Q>
+
140  GLM_FUNC_DECL typename mat<4, 2, T, Q>::col_type operator*(mat<4, 2, T, Q> const& m, typename mat<4, 2, T, Q>::row_type const& v);
+
141 
+
142  template<typename T, qualifier Q>
+
143  GLM_FUNC_DECL typename mat<4, 2, T, Q>::row_type operator*(typename mat<4, 2, T, Q>::col_type const& v, mat<4, 2, T, Q> const& m);
+
144 
+
145  template<typename T, qualifier Q>
+
146  GLM_FUNC_DECL mat<2, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
147 
+
148  template<typename T, qualifier Q>
+
149  GLM_FUNC_DECL mat<3, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
150 
+
151  template<typename T, qualifier Q>
+
152  GLM_FUNC_DECL mat<4, 2, T, Q> operator*(mat<4, 2, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
153 
+
154  template<typename T, qualifier Q>
+
155  GLM_FUNC_DECL mat<4, 2, T, Q> operator/(mat<4, 2, T, Q> const& m, T scalar);
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL mat<4, 2, T, Q> operator/(T scalar, mat<4, 2, T, Q> const& m);
+
159 
+
160  // -- Boolean operators --
+
161 
+
162  template<typename T, qualifier Q>
+
163  GLM_FUNC_DECL bool operator==(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
164 
+
165  template<typename T, qualifier Q>
+
166  GLM_FUNC_DECL bool operator!=(mat<4, 2, T, Q> const& m1, mat<4, 2, T, Q> const& m2);
+
167 }//namespace glm
+
168 
+
169 #ifndef GLM_EXTERNAL_TEMPLATE
+
170 #include "type_mat4x2.inl"
+
171 #endif
+
Core features
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00172.html b/external/include/glm-0.9.9.8/doc/api/a00172.html index 8e39eba1d3..ca1fd6e8a5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00172.html +++ b/external/include/glm-0.9.9.8/doc/api/a00172.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat4x3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat4x3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat4x3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00172_source.html b/external/include/glm-0.9.9.8/doc/api/a00172_source.html index 8b25de403e..491191441e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00172_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00172_source.html @@ -1,272 +1,272 @@ - - - - - - -0.9.9 API documentation: type_mat4x3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec3.hpp"
-
7 #include "type_vec4.hpp"
-
8 #include <limits>
-
9 #include <cstddef>
-
10 
-
11 namespace glm
-
12 {
-
13  template<typename T, qualifier Q>
-
14  struct mat<4, 3, T, Q>
-
15  {
-
16  typedef vec<3, T, Q> col_type;
-
17  typedef vec<4, T, Q> row_type;
-
18  typedef mat<4, 3, T, Q> type;
-
19  typedef mat<3, 4, T, Q> transpose_type;
-
20  typedef T value_type;
-
21 
-
22  private:
-
23  col_type value[4];
-
24 
-
25  public:
-
26  // -- Accesses --
-
27 
-
28  typedef length_t length_type;
-
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 4; }
-
30 
-
31  GLM_FUNC_DECL col_type & operator[](length_type i);
-
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
33 
-
34  // -- Constructors --
-
35 
-
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
37  template<qualifier P>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 3, T, P> const& m);
-
39 
-
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T const& x);
-
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
42  T const& x0, T const& y0, T const& z0,
-
43  T const& x1, T const& y1, T const& z1,
-
44  T const& x2, T const& y2, T const& z2,
-
45  T const& x3, T const& y3, T const& z3);
-
46  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
47  col_type const& v0,
-
48  col_type const& v1,
-
49  col_type const& v2,
-
50  col_type const& v3);
-
51 
-
52  // -- Conversions --
-
53 
-
54  template<
-
55  typename X1, typename Y1, typename Z1,
-
56  typename X2, typename Y2, typename Z2,
-
57  typename X3, typename Y3, typename Z3,
-
58  typename X4, typename Y4, typename Z4>
-
59  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
60  X1 const& x1, Y1 const& y1, Z1 const& z1,
-
61  X2 const& x2, Y2 const& y2, Z2 const& z2,
-
62  X3 const& x3, Y3 const& y3, Z3 const& z3,
-
63  X4 const& x4, Y4 const& y4, Z4 const& z4);
-
64 
-
65  template<typename V1, typename V2, typename V3, typename V4>
-
66  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
67  vec<3, V1, Q> const& v1,
-
68  vec<3, V2, Q> const& v2,
-
69  vec<3, V3, Q> const& v3,
-
70  vec<3, V4, Q> const& v4);
-
71 
-
72  // -- Matrix conversions --
-
73 
-
74  template<typename U, qualifier P>
-
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, U, P> const& m);
-
76 
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
-
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
84  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
85 
-
86  // -- Unary arithmetic operators --
-
87 
-
88  template<typename U>
-
89  GLM_FUNC_DECL mat<4, 3, T, Q> & operator=(mat<4, 3, U, Q> const& m);
-
90  template<typename U>
-
91  GLM_FUNC_DECL mat<4, 3, T, Q> & operator+=(U s);
-
92  template<typename U>
-
93  GLM_FUNC_DECL mat<4, 3, T, Q> & operator+=(mat<4, 3, U, Q> const& m);
-
94  template<typename U>
-
95  GLM_FUNC_DECL mat<4, 3, T, Q> & operator-=(U s);
-
96  template<typename U>
-
97  GLM_FUNC_DECL mat<4, 3, T, Q> & operator-=(mat<4, 3, U, Q> const& m);
-
98  template<typename U>
-
99  GLM_FUNC_DECL mat<4, 3, T, Q> & operator*=(U s);
-
100  template<typename U>
-
101  GLM_FUNC_DECL mat<4, 3, T, Q> & operator/=(U s);
-
102 
-
103  // -- Increment and decrement operators --
-
104 
-
105  GLM_FUNC_DECL mat<4, 3, T, Q>& operator++();
-
106  GLM_FUNC_DECL mat<4, 3, T, Q>& operator--();
-
107  GLM_FUNC_DECL mat<4, 3, T, Q> operator++(int);
-
108  GLM_FUNC_DECL mat<4, 3, T, Q> operator--(int);
-
109  };
-
110 
-
111  // -- Unary operators --
-
112 
-
113  template<typename T, qualifier Q>
-
114  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m);
-
115 
-
116  template<typename T, qualifier Q>
-
117  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m);
-
118 
-
119  // -- Binary operators --
-
120 
-
121  template<typename T, qualifier Q>
-
122  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m, T const& s);
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
126 
-
127  template<typename T, qualifier Q>
-
128  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m, T const& s);
-
129 
-
130  template<typename T, qualifier Q>
-
131  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
132 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m, T const& s);
-
135 
-
136  template<typename T, qualifier Q>
-
137  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(T const& s, mat<4, 3, T, Q> const& m);
-
138 
-
139  template<typename T, qualifier Q>
-
140  GLM_FUNC_DECL typename mat<4, 3, T, Q>::col_type operator*(mat<4, 3, T, Q> const& m, typename mat<4, 3, T, Q>::row_type const& v);
-
141 
-
142  template<typename T, qualifier Q>
-
143  GLM_FUNC_DECL typename mat<4, 3, T, Q>::row_type operator*(typename mat<4, 3, T, Q>::col_type const& v, mat<4, 3, T, Q> const& m);
-
144 
-
145  template<typename T, qualifier Q>
-
146  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
147 
-
148  template<typename T, qualifier Q>
-
149  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
150 
-
151  template<typename T, qualifier Q>
-
152  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
153 
-
154  template<typename T, qualifier Q>
-
155  GLM_FUNC_DECL mat<4, 3, T, Q> operator/(mat<4, 3, T, Q> const& m, T const& s);
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL mat<4, 3, T, Q> operator/(T const& s, mat<4, 3, T, Q> const& m);
-
159 
-
160  // -- Boolean operators --
-
161 
-
162  template<typename T, qualifier Q>
-
163  GLM_FUNC_DECL bool operator==(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
164 
-
165  template<typename T, qualifier Q>
-
166  GLM_FUNC_DECL bool operator!=(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
-
167 }//namespace glm
-
168 
-
169 #ifndef GLM_EXTERNAL_TEMPLATE
-
170 #include "type_mat4x3.inl"
-
171 #endif //GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec3.hpp"
+
7 #include "type_vec4.hpp"
+
8 #include <limits>
+
9 #include <cstddef>
+
10 
+
11 namespace glm
+
12 {
+
13  template<typename T, qualifier Q>
+
14  struct mat<4, 3, T, Q>
+
15  {
+
16  typedef vec<3, T, Q> col_type;
+
17  typedef vec<4, T, Q> row_type;
+
18  typedef mat<4, 3, T, Q> type;
+
19  typedef mat<3, 4, T, Q> transpose_type;
+
20  typedef T value_type;
+
21 
+
22  private:
+
23  col_type value[4];
+
24 
+
25  public:
+
26  // -- Accesses --
+
27 
+
28  typedef length_t length_type;
+
29  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length() { return 4; }
+
30 
+
31  GLM_FUNC_DECL col_type & operator[](length_type i);
+
32  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
33 
+
34  // -- Constructors --
+
35 
+
36  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
37  template<qualifier P>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 3, T, P> const& m);
+
39 
+
40  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T const& x);
+
41  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
42  T const& x0, T const& y0, T const& z0,
+
43  T const& x1, T const& y1, T const& z1,
+
44  T const& x2, T const& y2, T const& z2,
+
45  T const& x3, T const& y3, T const& z3);
+
46  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
47  col_type const& v0,
+
48  col_type const& v1,
+
49  col_type const& v2,
+
50  col_type const& v3);
+
51 
+
52  // -- Conversions --
+
53 
+
54  template<
+
55  typename X1, typename Y1, typename Z1,
+
56  typename X2, typename Y2, typename Z2,
+
57  typename X3, typename Y3, typename Z3,
+
58  typename X4, typename Y4, typename Z4>
+
59  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
60  X1 const& x1, Y1 const& y1, Z1 const& z1,
+
61  X2 const& x2, Y2 const& y2, Z2 const& z2,
+
62  X3 const& x3, Y3 const& y3, Z3 const& z3,
+
63  X4 const& x4, Y4 const& y4, Z4 const& z4);
+
64 
+
65  template<typename V1, typename V2, typename V3, typename V4>
+
66  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
67  vec<3, V1, Q> const& v1,
+
68  vec<3, V2, Q> const& v2,
+
69  vec<3, V3, Q> const& v3,
+
70  vec<3, V4, Q> const& v4);
+
71 
+
72  // -- Matrix conversions --
+
73 
+
74  template<typename U, qualifier P>
+
75  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, U, P> const& m);
+
76 
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, T, Q> const& x);
+
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
84  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
85 
+
86  // -- Unary arithmetic operators --
+
87 
+
88  template<typename U>
+
89  GLM_FUNC_DECL mat<4, 3, T, Q> & operator=(mat<4, 3, U, Q> const& m);
+
90  template<typename U>
+
91  GLM_FUNC_DECL mat<4, 3, T, Q> & operator+=(U s);
+
92  template<typename U>
+
93  GLM_FUNC_DECL mat<4, 3, T, Q> & operator+=(mat<4, 3, U, Q> const& m);
+
94  template<typename U>
+
95  GLM_FUNC_DECL mat<4, 3, T, Q> & operator-=(U s);
+
96  template<typename U>
+
97  GLM_FUNC_DECL mat<4, 3, T, Q> & operator-=(mat<4, 3, U, Q> const& m);
+
98  template<typename U>
+
99  GLM_FUNC_DECL mat<4, 3, T, Q> & operator*=(U s);
+
100  template<typename U>
+
101  GLM_FUNC_DECL mat<4, 3, T, Q> & operator/=(U s);
+
102 
+
103  // -- Increment and decrement operators --
+
104 
+
105  GLM_FUNC_DECL mat<4, 3, T, Q>& operator++();
+
106  GLM_FUNC_DECL mat<4, 3, T, Q>& operator--();
+
107  GLM_FUNC_DECL mat<4, 3, T, Q> operator++(int);
+
108  GLM_FUNC_DECL mat<4, 3, T, Q> operator--(int);
+
109  };
+
110 
+
111  // -- Unary operators --
+
112 
+
113  template<typename T, qualifier Q>
+
114  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m);
+
115 
+
116  template<typename T, qualifier Q>
+
117  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m);
+
118 
+
119  // -- Binary operators --
+
120 
+
121  template<typename T, qualifier Q>
+
122  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m, T const& s);
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL mat<4, 3, T, Q> operator+(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
126 
+
127  template<typename T, qualifier Q>
+
128  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m, T const& s);
+
129 
+
130  template<typename T, qualifier Q>
+
131  GLM_FUNC_DECL mat<4, 3, T, Q> operator-(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
132 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m, T const& s);
+
135 
+
136  template<typename T, qualifier Q>
+
137  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(T const& s, mat<4, 3, T, Q> const& m);
+
138 
+
139  template<typename T, qualifier Q>
+
140  GLM_FUNC_DECL typename mat<4, 3, T, Q>::col_type operator*(mat<4, 3, T, Q> const& m, typename mat<4, 3, T, Q>::row_type const& v);
+
141 
+
142  template<typename T, qualifier Q>
+
143  GLM_FUNC_DECL typename mat<4, 3, T, Q>::row_type operator*(typename mat<4, 3, T, Q>::col_type const& v, mat<4, 3, T, Q> const& m);
+
144 
+
145  template<typename T, qualifier Q>
+
146  GLM_FUNC_DECL mat<2, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
147 
+
148  template<typename T, qualifier Q>
+
149  GLM_FUNC_DECL mat<3, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
150 
+
151  template<typename T, qualifier Q>
+
152  GLM_FUNC_DECL mat<4, 3, T, Q> operator*(mat<4, 3, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
153 
+
154  template<typename T, qualifier Q>
+
155  GLM_FUNC_DECL mat<4, 3, T, Q> operator/(mat<4, 3, T, Q> const& m, T const& s);
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL mat<4, 3, T, Q> operator/(T const& s, mat<4, 3, T, Q> const& m);
+
159 
+
160  // -- Boolean operators --
+
161 
+
162  template<typename T, qualifier Q>
+
163  GLM_FUNC_DECL bool operator==(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
164 
+
165  template<typename T, qualifier Q>
+
166  GLM_FUNC_DECL bool operator!=(mat<4, 3, T, Q> const& m1, mat<4, 3, T, Q> const& m2);
+
167 }//namespace glm
+
168 
+
169 #ifndef GLM_EXTERNAL_TEMPLATE
+
170 #include "type_mat4x3.inl"
+
171 #endif //GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00173.html b/external/include/glm-0.9.9.8/doc/api/a00173.html index 3d050b30b0..57d8692ccd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00173.html +++ b/external/include/glm-0.9.9.8/doc/api/a00173.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_mat4x4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_mat4x4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_mat4x4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00173_source.html b/external/include/glm-0.9.9.8/doc/api/a00173_source.html index 15c4a8cb52..523ef991a5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00173_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00173_source.html @@ -1,289 +1,289 @@ - - - - - - -0.9.9 API documentation: type_mat4x4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_mat4x4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "type_vec4.hpp"
-
7 #include <limits>
-
8 #include <cstddef>
-
9 
-
10 namespace glm
-
11 {
-
12  template<typename T, qualifier Q>
-
13  struct mat<4, 4, T, Q>
-
14  {
-
15  typedef vec<4, T, Q> col_type;
-
16  typedef vec<4, T, Q> row_type;
-
17  typedef mat<4, 4, T, Q> type;
-
18  typedef mat<4, 4, T, Q> transpose_type;
-
19  typedef T value_type;
-
20 
-
21  private:
-
22  col_type value[4];
-
23 
-
24  public:
-
25  // -- Accesses --
-
26 
-
27  typedef length_t length_type;
-
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
-
29 
-
30  GLM_FUNC_DECL col_type & operator[](length_type i);
-
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
-
32 
-
33  // -- Constructors --
-
34 
-
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
-
36  template<qualifier P>
-
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 4, T, P> const& m);
-
38 
-
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T const& x);
-
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
41  T const& x0, T const& y0, T const& z0, T const& w0,
-
42  T const& x1, T const& y1, T const& z1, T const& w1,
-
43  T const& x2, T const& y2, T const& z2, T const& w2,
-
44  T const& x3, T const& y3, T const& z3, T const& w3);
-
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
46  col_type const& v0,
-
47  col_type const& v1,
-
48  col_type const& v2,
-
49  col_type const& v3);
-
50 
-
51  // -- Conversions --
-
52 
-
53  template<
-
54  typename X1, typename Y1, typename Z1, typename W1,
-
55  typename X2, typename Y2, typename Z2, typename W2,
-
56  typename X3, typename Y3, typename Z3, typename W3,
-
57  typename X4, typename Y4, typename Z4, typename W4>
-
58  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
59  X1 const& x1, Y1 const& y1, Z1 const& z1, W1 const& w1,
-
60  X2 const& x2, Y2 const& y2, Z2 const& z2, W2 const& w2,
-
61  X3 const& x3, Y3 const& y3, Z3 const& z3, W3 const& w3,
-
62  X4 const& x4, Y4 const& y4, Z4 const& z4, W4 const& w4);
-
63 
-
64  template<typename V1, typename V2, typename V3, typename V4>
-
65  GLM_FUNC_DECL GLM_CONSTEXPR mat(
-
66  vec<4, V1, Q> const& v1,
-
67  vec<4, V2, Q> const& v2,
-
68  vec<4, V3, Q> const& v3,
-
69  vec<4, V4, Q> const& v4);
-
70 
-
71  // -- Matrix conversions --
-
72 
-
73  template<typename U, qualifier P>
-
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, U, P> const& m);
-
75 
-
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
-
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
-
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
-
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
-
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
-
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
-
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
-
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
-
84 
-
85  // -- Unary arithmetic operators --
-
86 
-
87  template<typename U>
-
88  GLM_FUNC_DECL mat<4, 4, T, Q> & operator=(mat<4, 4, U, Q> const& m);
-
89  template<typename U>
-
90  GLM_FUNC_DECL mat<4, 4, T, Q> & operator+=(U s);
-
91  template<typename U>
-
92  GLM_FUNC_DECL mat<4, 4, T, Q> & operator+=(mat<4, 4, U, Q> const& m);
-
93  template<typename U>
-
94  GLM_FUNC_DECL mat<4, 4, T, Q> & operator-=(U s);
-
95  template<typename U>
-
96  GLM_FUNC_DECL mat<4, 4, T, Q> & operator-=(mat<4, 4, U, Q> const& m);
-
97  template<typename U>
-
98  GLM_FUNC_DECL mat<4, 4, T, Q> & operator*=(U s);
-
99  template<typename U>
-
100  GLM_FUNC_DECL mat<4, 4, T, Q> & operator*=(mat<4, 4, U, Q> const& m);
-
101  template<typename U>
-
102  GLM_FUNC_DECL mat<4, 4, T, Q> & operator/=(U s);
-
103  template<typename U>
-
104  GLM_FUNC_DECL mat<4, 4, T, Q> & operator/=(mat<4, 4, U, Q> const& m);
-
105 
-
106  // -- Increment and decrement operators --
-
107 
-
108  GLM_FUNC_DECL mat<4, 4, T, Q> & operator++();
-
109  GLM_FUNC_DECL mat<4, 4, T, Q> & operator--();
-
110  GLM_FUNC_DECL mat<4, 4, T, Q> operator++(int);
-
111  GLM_FUNC_DECL mat<4, 4, T, Q> operator--(int);
-
112  };
-
113 
-
114  // -- Unary operators --
-
115 
-
116  template<typename T, qualifier Q>
-
117  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m);
-
118 
-
119  template<typename T, qualifier Q>
-
120  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m);
-
121 
-
122  // -- Binary operators --
-
123 
-
124  template<typename T, qualifier Q>
-
125  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m, T const& s);
-
126 
-
127  template<typename T, qualifier Q>
-
128  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(T const& s, mat<4, 4, T, Q> const& m);
-
129 
-
130  template<typename T, qualifier Q>
-
131  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
132 
-
133  template<typename T, qualifier Q>
-
134  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m, T const& s);
-
135 
-
136  template<typename T, qualifier Q>
-
137  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(T const& s, mat<4, 4, T, Q> const& m);
-
138 
-
139  template<typename T, qualifier Q>
-
140  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
141 
-
142  template<typename T, qualifier Q>
-
143  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m, T const& s);
-
144 
-
145  template<typename T, qualifier Q>
-
146  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(T const& s, mat<4, 4, T, Q> const& m);
-
147 
-
148  template<typename T, qualifier Q>
-
149  GLM_FUNC_DECL typename mat<4, 4, T, Q>::col_type operator*(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
-
150 
-
151  template<typename T, qualifier Q>
-
152  GLM_FUNC_DECL typename mat<4, 4, T, Q>::row_type operator*(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
-
153 
-
154  template<typename T, qualifier Q>
-
155  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
-
159 
-
160  template<typename T, qualifier Q>
-
161  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
162 
-
163  template<typename T, qualifier Q>
-
164  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m, T const& s);
-
165 
-
166  template<typename T, qualifier Q>
-
167  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(T const& s, mat<4, 4, T, Q> const& m);
-
168 
-
169  template<typename T, qualifier Q>
-
170  GLM_FUNC_DECL typename mat<4, 4, T, Q>::col_type operator/(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
-
171 
-
172  template<typename T, qualifier Q>
-
173  GLM_FUNC_DECL typename mat<4, 4, T, Q>::row_type operator/(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
-
174 
-
175  template<typename T, qualifier Q>
-
176  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
177 
-
178  // -- Boolean operators --
-
179 
-
180  template<typename T, qualifier Q>
-
181  GLM_FUNC_DECL bool operator==(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
182 
-
183  template<typename T, qualifier Q>
-
184  GLM_FUNC_DECL bool operator!=(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
-
185 }//namespace glm
-
186 
-
187 #ifndef GLM_EXTERNAL_TEMPLATE
-
188 #include "type_mat4x4.inl"
-
189 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Core features
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_mat4x4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_mat4x4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "type_vec4.hpp"
+
7 #include <limits>
+
8 #include <cstddef>
+
9 
+
10 namespace glm
+
11 {
+
12  template<typename T, qualifier Q>
+
13  struct mat<4, 4, T, Q>
+
14  {
+
15  typedef vec<4, T, Q> col_type;
+
16  typedef vec<4, T, Q> row_type;
+
17  typedef mat<4, 4, T, Q> type;
+
18  typedef mat<4, 4, T, Q> transpose_type;
+
19  typedef T value_type;
+
20 
+
21  private:
+
22  col_type value[4];
+
23 
+
24  public:
+
25  // -- Accesses --
+
26 
+
27  typedef length_t length_type;
+
28  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
+
29 
+
30  GLM_FUNC_DECL col_type & operator[](length_type i);
+
31  GLM_FUNC_DECL GLM_CONSTEXPR col_type const& operator[](length_type i) const;
+
32 
+
33  // -- Constructors --
+
34 
+
35  GLM_FUNC_DECL GLM_CONSTEXPR mat() GLM_DEFAULT;
+
36  template<qualifier P>
+
37  GLM_FUNC_DECL GLM_CONSTEXPR mat(mat<4, 4, T, P> const& m);
+
38 
+
39  GLM_FUNC_DECL explicit GLM_CONSTEXPR mat(T const& x);
+
40  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
41  T const& x0, T const& y0, T const& z0, T const& w0,
+
42  T const& x1, T const& y1, T const& z1, T const& w1,
+
43  T const& x2, T const& y2, T const& z2, T const& w2,
+
44  T const& x3, T const& y3, T const& z3, T const& w3);
+
45  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
46  col_type const& v0,
+
47  col_type const& v1,
+
48  col_type const& v2,
+
49  col_type const& v3);
+
50 
+
51  // -- Conversions --
+
52 
+
53  template<
+
54  typename X1, typename Y1, typename Z1, typename W1,
+
55  typename X2, typename Y2, typename Z2, typename W2,
+
56  typename X3, typename Y3, typename Z3, typename W3,
+
57  typename X4, typename Y4, typename Z4, typename W4>
+
58  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
59  X1 const& x1, Y1 const& y1, Z1 const& z1, W1 const& w1,
+
60  X2 const& x2, Y2 const& y2, Z2 const& z2, W2 const& w2,
+
61  X3 const& x3, Y3 const& y3, Z3 const& z3, W3 const& w3,
+
62  X4 const& x4, Y4 const& y4, Z4 const& z4, W4 const& w4);
+
63 
+
64  template<typename V1, typename V2, typename V3, typename V4>
+
65  GLM_FUNC_DECL GLM_CONSTEXPR mat(
+
66  vec<4, V1, Q> const& v1,
+
67  vec<4, V2, Q> const& v2,
+
68  vec<4, V3, Q> const& v3,
+
69  vec<4, V4, Q> const& v4);
+
70 
+
71  // -- Matrix conversions --
+
72 
+
73  template<typename U, qualifier P>
+
74  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 4, U, P> const& m);
+
75 
+
76  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 2, T, Q> const& x);
+
77  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 3, T, Q> const& x);
+
78  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 3, T, Q> const& x);
+
79  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 2, T, Q> const& x);
+
80  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<2, 4, T, Q> const& x);
+
81  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 2, T, Q> const& x);
+
82  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<3, 4, T, Q> const& x);
+
83  GLM_FUNC_DECL GLM_EXPLICIT GLM_CONSTEXPR mat(mat<4, 3, T, Q> const& x);
+
84 
+
85  // -- Unary arithmetic operators --
+
86 
+
87  template<typename U>
+
88  GLM_FUNC_DECL mat<4, 4, T, Q> & operator=(mat<4, 4, U, Q> const& m);
+
89  template<typename U>
+
90  GLM_FUNC_DECL mat<4, 4, T, Q> & operator+=(U s);
+
91  template<typename U>
+
92  GLM_FUNC_DECL mat<4, 4, T, Q> & operator+=(mat<4, 4, U, Q> const& m);
+
93  template<typename U>
+
94  GLM_FUNC_DECL mat<4, 4, T, Q> & operator-=(U s);
+
95  template<typename U>
+
96  GLM_FUNC_DECL mat<4, 4, T, Q> & operator-=(mat<4, 4, U, Q> const& m);
+
97  template<typename U>
+
98  GLM_FUNC_DECL mat<4, 4, T, Q> & operator*=(U s);
+
99  template<typename U>
+
100  GLM_FUNC_DECL mat<4, 4, T, Q> & operator*=(mat<4, 4, U, Q> const& m);
+
101  template<typename U>
+
102  GLM_FUNC_DECL mat<4, 4, T, Q> & operator/=(U s);
+
103  template<typename U>
+
104  GLM_FUNC_DECL mat<4, 4, T, Q> & operator/=(mat<4, 4, U, Q> const& m);
+
105 
+
106  // -- Increment and decrement operators --
+
107 
+
108  GLM_FUNC_DECL mat<4, 4, T, Q> & operator++();
+
109  GLM_FUNC_DECL mat<4, 4, T, Q> & operator--();
+
110  GLM_FUNC_DECL mat<4, 4, T, Q> operator++(int);
+
111  GLM_FUNC_DECL mat<4, 4, T, Q> operator--(int);
+
112  };
+
113 
+
114  // -- Unary operators --
+
115 
+
116  template<typename T, qualifier Q>
+
117  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m);
+
118 
+
119  template<typename T, qualifier Q>
+
120  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m);
+
121 
+
122  // -- Binary operators --
+
123 
+
124  template<typename T, qualifier Q>
+
125  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m, T const& s);
+
126 
+
127  template<typename T, qualifier Q>
+
128  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(T const& s, mat<4, 4, T, Q> const& m);
+
129 
+
130  template<typename T, qualifier Q>
+
131  GLM_FUNC_DECL mat<4, 4, T, Q> operator+(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
132 
+
133  template<typename T, qualifier Q>
+
134  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m, T const& s);
+
135 
+
136  template<typename T, qualifier Q>
+
137  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(T const& s, mat<4, 4, T, Q> const& m);
+
138 
+
139  template<typename T, qualifier Q>
+
140  GLM_FUNC_DECL mat<4, 4, T, Q> operator-(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
141 
+
142  template<typename T, qualifier Q>
+
143  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m, T const& s);
+
144 
+
145  template<typename T, qualifier Q>
+
146  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(T const& s, mat<4, 4, T, Q> const& m);
+
147 
+
148  template<typename T, qualifier Q>
+
149  GLM_FUNC_DECL typename mat<4, 4, T, Q>::col_type operator*(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
+
150 
+
151  template<typename T, qualifier Q>
+
152  GLM_FUNC_DECL typename mat<4, 4, T, Q>::row_type operator*(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
+
153 
+
154  template<typename T, qualifier Q>
+
155  GLM_FUNC_DECL mat<2, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<2, 4, T, Q> const& m2);
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_FUNC_DECL mat<3, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<3, 4, T, Q> const& m2);
+
159 
+
160  template<typename T, qualifier Q>
+
161  GLM_FUNC_DECL mat<4, 4, T, Q> operator*(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
162 
+
163  template<typename T, qualifier Q>
+
164  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m, T const& s);
+
165 
+
166  template<typename T, qualifier Q>
+
167  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(T const& s, mat<4, 4, T, Q> const& m);
+
168 
+
169  template<typename T, qualifier Q>
+
170  GLM_FUNC_DECL typename mat<4, 4, T, Q>::col_type operator/(mat<4, 4, T, Q> const& m, typename mat<4, 4, T, Q>::row_type const& v);
+
171 
+
172  template<typename T, qualifier Q>
+
173  GLM_FUNC_DECL typename mat<4, 4, T, Q>::row_type operator/(typename mat<4, 4, T, Q>::col_type const& v, mat<4, 4, T, Q> const& m);
+
174 
+
175  template<typename T, qualifier Q>
+
176  GLM_FUNC_DECL mat<4, 4, T, Q> operator/(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
177 
+
178  // -- Boolean operators --
+
179 
+
180  template<typename T, qualifier Q>
+
181  GLM_FUNC_DECL bool operator==(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
182 
+
183  template<typename T, qualifier Q>
+
184  GLM_FUNC_DECL bool operator!=(mat<4, 4, T, Q> const& m1, mat<4, 4, T, Q> const& m2);
+
185 }//namespace glm
+
186 
+
187 #ifndef GLM_EXTERNAL_TEMPLATE
+
188 #include "type_mat4x4.inl"
+
189 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Core features
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00174.html b/external/include/glm-0.9.9.8/doc/api/a00174.html index e48ad1110b..d852be4c27 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00174.html +++ b/external/include/glm-0.9.9.8/doc/api/a00174.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: type_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_precision.hpp File Reference
-
-
- -

GLM_GTC_type_precision -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTC_type_precision

-
See also
Core features (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file type_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_precision.hpp File Reference
+
+
+ +

GLM_GTC_type_precision +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTC_type_precision

+
See also
Core features (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file type_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00174_source.html b/external/include/glm-0.9.9.8/doc/api/a00174_source.html index 4473ed8509..edcf9d6ccc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00174_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00174_source.html @@ -1,1682 +1,1682 @@ - - - - - - -0.9.9 API documentation: type_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../gtc/quaternion.hpp"
-
18 #include "../gtc/vec1.hpp"
-
19 #include "../ext/scalar_int_sized.hpp"
-
20 #include "../ext/scalar_uint_sized.hpp"
-
21 #include "../detail/type_vec2.hpp"
-
22 #include "../detail/type_vec3.hpp"
-
23 #include "../detail/type_vec4.hpp"
-
24 #include "../detail/type_mat2x2.hpp"
-
25 #include "../detail/type_mat2x3.hpp"
-
26 #include "../detail/type_mat2x4.hpp"
-
27 #include "../detail/type_mat3x2.hpp"
-
28 #include "../detail/type_mat3x3.hpp"
-
29 #include "../detail/type_mat3x4.hpp"
-
30 #include "../detail/type_mat4x2.hpp"
-
31 #include "../detail/type_mat4x3.hpp"
-
32 #include "../detail/type_mat4x4.hpp"
-
33 
-
34 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
35 # pragma message("GLM: GLM_GTC_type_precision extension included")
-
36 #endif
-
37 
-
38 namespace glm
-
39 {
-
41  // Signed int vector types
-
42 
-
45 
-
48  typedef detail::int8 lowp_int8;
-
49 
-
52  typedef detail::int16 lowp_int16;
-
53 
-
56  typedef detail::int32 lowp_int32;
-
57 
-
60  typedef detail::int64 lowp_int64;
-
61 
-
64  typedef detail::int8 lowp_int8_t;
-
65 
-
68  typedef detail::int16 lowp_int16_t;
-
69 
-
72  typedef detail::int32 lowp_int32_t;
-
73 
- -
77 
-
80  typedef detail::int8 lowp_i8;
-
81 
-
84  typedef detail::int16 lowp_i16;
-
85 
-
88  typedef detail::int32 lowp_i32;
-
89 
-
92  typedef detail::int64 lowp_i64;
-
93 
-
96  typedef detail::int8 mediump_int8;
-
97 
-
100  typedef detail::int16 mediump_int16;
-
101 
-
104  typedef detail::int32 mediump_int32;
-
105 
- -
109 
-
112  typedef detail::int8 mediump_int8_t;
-
113 
-
116  typedef detail::int16 mediump_int16_t;
-
117 
-
120  typedef detail::int32 mediump_int32_t;
-
121 
- -
125 
-
128  typedef detail::int8 mediump_i8;
-
129 
-
132  typedef detail::int16 mediump_i16;
-
133 
-
136  typedef detail::int32 mediump_i32;
-
137 
-
140  typedef detail::int64 mediump_i64;
-
141 
-
144  typedef detail::int8 highp_int8;
-
145 
-
148  typedef detail::int16 highp_int16;
-
149 
-
152  typedef detail::int32 highp_int32;
-
153 
-
156  typedef detail::int64 highp_int64;
-
157 
-
160  typedef detail::int8 highp_int8_t;
-
161 
-
164  typedef detail::int16 highp_int16_t;
-
165 
-
168  typedef detail::int32 highp_int32_t;
-
169 
- -
173 
-
176  typedef detail::int8 highp_i8;
-
177 
-
180  typedef detail::int16 highp_i16;
-
181 
-
184  typedef detail::int32 highp_i32;
-
185 
-
188  typedef detail::int64 highp_i64;
-
189 
-
190 
-
191 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
192  using std::int8_t;
-
193  using std::int16_t;
-
194  using std::int32_t;
-
195  using std::int64_t;
-
196 #else
-
197  typedef detail::int8 int8_t;
-
200 
-
203  typedef detail::int16 int16_t;
-
204 
-
207  typedef detail::int32 int32_t;
-
208 
-
211  typedef detail::int64 int64_t;
-
212 #endif
-
213 
-
216  typedef detail::int8 i8;
-
217 
-
220  typedef detail::int16 i16;
-
221 
-
224  typedef detail::int32 i32;
-
225 
-
228  typedef detail::int64 i64;
-
229 
-
230 
-
231 
-
234  typedef vec<1, i8, lowp> lowp_i8vec1;
-
235 
-
238  typedef vec<2, i8, lowp> lowp_i8vec2;
-
239 
-
242  typedef vec<3, i8, lowp> lowp_i8vec3;
-
243 
-
246  typedef vec<4, i8, lowp> lowp_i8vec4;
-
247 
-
248 
-
251  typedef vec<1, i8, mediump> mediump_i8vec1;
-
252 
-
255  typedef vec<2, i8, mediump> mediump_i8vec2;
-
256 
-
259  typedef vec<3, i8, mediump> mediump_i8vec3;
-
260 
-
263  typedef vec<4, i8, mediump> mediump_i8vec4;
-
264 
-
265 
-
268  typedef vec<1, i8, highp> highp_i8vec1;
-
269 
-
272  typedef vec<2, i8, highp> highp_i8vec2;
-
273 
-
276  typedef vec<3, i8, highp> highp_i8vec3;
-
277 
-
280  typedef vec<4, i8, highp> highp_i8vec4;
-
281 
-
282 
-
283 
-
286  typedef vec<1, i8, defaultp> i8vec1;
-
287 
-
290  typedef vec<2, i8, defaultp> i8vec2;
-
291 
-
294  typedef vec<3, i8, defaultp> i8vec3;
-
295 
-
298  typedef vec<4, i8, defaultp> i8vec4;
-
299 
-
300 
-
301 
-
302 
-
303 
-
306  typedef vec<1, i16, lowp> lowp_i16vec1;
-
307 
-
310  typedef vec<2, i16, lowp> lowp_i16vec2;
-
311 
-
314  typedef vec<3, i16, lowp> lowp_i16vec3;
-
315 
-
318  typedef vec<4, i16, lowp> lowp_i16vec4;
-
319 
-
320 
-
323  typedef vec<1, i16, mediump> mediump_i16vec1;
-
324 
-
327  typedef vec<2, i16, mediump> mediump_i16vec2;
-
328 
-
331  typedef vec<3, i16, mediump> mediump_i16vec3;
-
332 
-
335  typedef vec<4, i16, mediump> mediump_i16vec4;
-
336 
-
337 
-
340  typedef vec<1, i16, highp> highp_i16vec1;
-
341 
-
344  typedef vec<2, i16, highp> highp_i16vec2;
-
345 
-
348  typedef vec<3, i16, highp> highp_i16vec3;
-
349 
-
352  typedef vec<4, i16, highp> highp_i16vec4;
-
353 
-
354 
-
355 
-
356 
-
359  typedef vec<1, i16, defaultp> i16vec1;
-
360 
-
363  typedef vec<2, i16, defaultp> i16vec2;
-
364 
-
367  typedef vec<3, i16, defaultp> i16vec3;
-
368 
-
371  typedef vec<4, i16, defaultp> i16vec4;
-
372 
-
373 
-
374 
-
377  typedef vec<1, i32, lowp> lowp_i32vec1;
-
378 
-
381  typedef vec<2, i32, lowp> lowp_i32vec2;
-
382 
-
385  typedef vec<3, i32, lowp> lowp_i32vec3;
-
386 
-
389  typedef vec<4, i32, lowp> lowp_i32vec4;
-
390 
-
391 
-
394  typedef vec<1, i32, mediump> mediump_i32vec1;
-
395 
-
398  typedef vec<2, i32, mediump> mediump_i32vec2;
-
399 
-
402  typedef vec<3, i32, mediump> mediump_i32vec3;
-
403 
-
406  typedef vec<4, i32, mediump> mediump_i32vec4;
-
407 
-
408 
-
411  typedef vec<1, i32, highp> highp_i32vec1;
-
412 
-
415  typedef vec<2, i32, highp> highp_i32vec2;
-
416 
-
419  typedef vec<3, i32, highp> highp_i32vec3;
-
420 
-
423  typedef vec<4, i32, highp> highp_i32vec4;
-
424 
-
425 
-
428  typedef vec<1, i32, defaultp> i32vec1;
-
429 
-
432  typedef vec<2, i32, defaultp> i32vec2;
-
433 
-
436  typedef vec<3, i32, defaultp> i32vec3;
-
437 
-
440  typedef vec<4, i32, defaultp> i32vec4;
-
441 
-
442 
-
443 
-
444 
-
447  typedef vec<1, i64, lowp> lowp_i64vec1;
-
448 
-
451  typedef vec<2, i64, lowp> lowp_i64vec2;
-
452 
-
455  typedef vec<3, i64, lowp> lowp_i64vec3;
-
456 
-
459  typedef vec<4, i64, lowp> lowp_i64vec4;
-
460 
-
461 
-
464  typedef vec<1, i64, mediump> mediump_i64vec1;
-
465 
-
468  typedef vec<2, i64, mediump> mediump_i64vec2;
-
469 
-
472  typedef vec<3, i64, mediump> mediump_i64vec3;
-
473 
-
476  typedef vec<4, i64, mediump> mediump_i64vec4;
-
477 
-
478 
-
481  typedef vec<1, i64, highp> highp_i64vec1;
-
482 
-
485  typedef vec<2, i64, highp> highp_i64vec2;
-
486 
-
489  typedef vec<3, i64, highp> highp_i64vec3;
-
490 
-
493  typedef vec<4, i64, highp> highp_i64vec4;
-
494 
-
495 
-
498  typedef vec<1, i64, defaultp> i64vec1;
-
499 
-
502  typedef vec<2, i64, defaultp> i64vec2;
-
503 
-
506  typedef vec<3, i64, defaultp> i64vec3;
-
507 
-
510  typedef vec<4, i64, defaultp> i64vec4;
-
511 
-
512 
-
514  // Unsigned int vector types
-
515 
-
518  typedef detail::uint8 lowp_uint8;
-
519 
-
522  typedef detail::uint16 lowp_uint16;
-
523 
-
526  typedef detail::uint32 lowp_uint32;
-
527 
-
530  typedef detail::uint64 lowp_uint64;
-
531 
-
534  typedef detail::uint8 lowp_uint8_t;
-
535 
-
538  typedef detail::uint16 lowp_uint16_t;
-
539 
-
542  typedef detail::uint32 lowp_uint32_t;
-
543 
- -
547 
-
550  typedef detail::uint8 lowp_u8;
-
551 
-
554  typedef detail::uint16 lowp_u16;
-
555 
-
558  typedef detail::uint32 lowp_u32;
-
559 
-
562  typedef detail::uint64 lowp_u64;
-
563 
-
566  typedef detail::uint8 mediump_uint8;
-
567 
-
570  typedef detail::uint16 mediump_uint16;
-
571 
-
574  typedef detail::uint32 mediump_uint32;
-
575 
- -
579 
-
582  typedef detail::uint8 mediump_uint8_t;
-
583 
-
586  typedef detail::uint16 mediump_uint16_t;
-
587 
-
590  typedef detail::uint32 mediump_uint32_t;
-
591 
- -
595 
-
598  typedef detail::uint8 mediump_u8;
-
599 
-
602  typedef detail::uint16 mediump_u16;
-
603 
-
606  typedef detail::uint32 mediump_u32;
-
607 
-
610  typedef detail::uint64 mediump_u64;
-
611 
-
614  typedef detail::uint8 highp_uint8;
-
615 
-
618  typedef detail::uint16 highp_uint16;
-
619 
-
622  typedef detail::uint32 highp_uint32;
-
623 
- -
627 
-
630  typedef detail::uint8 highp_uint8_t;
-
631 
-
634  typedef detail::uint16 highp_uint16_t;
-
635 
-
638  typedef detail::uint32 highp_uint32_t;
-
639 
- -
643 
-
646  typedef detail::uint8 highp_u8;
-
647 
-
650  typedef detail::uint16 highp_u16;
-
651 
-
654  typedef detail::uint32 highp_u32;
-
655 
-
658  typedef detail::uint64 highp_u64;
-
659 
-
660 #if GLM_HAS_EXTENDED_INTEGER_TYPE
-
661  using std::uint8_t;
-
662  using std::uint16_t;
-
663  using std::uint32_t;
-
664  using std::uint64_t;
-
665 #else
-
666  typedef detail::uint8 uint8_t;
-
669 
-
672  typedef detail::uint16 uint16_t;
-
673 
-
676  typedef detail::uint32 uint32_t;
-
677 
-
680  typedef detail::uint64 uint64_t;
-
681 #endif
-
682 
-
685  typedef detail::uint8 u8;
-
686 
-
689  typedef detail::uint16 u16;
-
690 
-
693  typedef detail::uint32 u32;
-
694 
-
697  typedef detail::uint64 u64;
-
698 
-
699 
-
700 
-
701 
-
702 
-
704  // Float vector types
-
705 
-
708  typedef float float32;
-
709 
-
712  typedef double float64;
-
713 
-
716  typedef float32 lowp_float32;
-
717 
-
720  typedef float64 lowp_float64;
-
721 
-
724  typedef float32 lowp_float32_t;
-
725 
-
728  typedef float64 lowp_float64_t;
-
729 
-
732  typedef float32 lowp_f32;
-
733 
-
736  typedef float64 lowp_f64;
-
737 
-
740  typedef float32 lowp_float32;
-
741 
-
744  typedef float64 lowp_float64;
-
745 
-
748  typedef float32 lowp_float32_t;
-
749 
-
752  typedef float64 lowp_float64_t;
-
753 
-
756  typedef float32 lowp_f32;
-
757 
-
760  typedef float64 lowp_f64;
-
761 
-
762 
-
765  typedef float32 lowp_float32;
-
766 
-
769  typedef float64 lowp_float64;
-
770 
-
773  typedef float32 lowp_float32_t;
-
774 
-
777  typedef float64 lowp_float64_t;
-
778 
-
781  typedef float32 lowp_f32;
-
782 
-
785  typedef float64 lowp_f64;
-
786 
-
787 
-
790  typedef float32 mediump_float32;
-
791 
-
794  typedef float64 mediump_float64;
-
795 
-
798  typedef float32 mediump_float32_t;
-
799 
-
802  typedef float64 mediump_float64_t;
-
803 
-
806  typedef float32 mediump_f32;
-
807 
-
810  typedef float64 mediump_f64;
-
811 
-
812 
-
815  typedef float32 highp_float32;
-
816 
-
819  typedef float64 highp_float64;
-
820 
-
823  typedef float32 highp_float32_t;
-
824 
-
827  typedef float64 highp_float64_t;
-
828 
-
831  typedef float32 highp_f32;
-
832 
-
835  typedef float64 highp_f64;
-
836 
-
837 
-
838 #if(defined(GLM_PRECISION_LOWP_FLOAT))
-
839  typedef lowp_float32_t float32_t;
-
842 
-
845  typedef lowp_float64_t float64_t;
-
846 
-
849  typedef lowp_f32 f32;
-
850 
-
853  typedef lowp_f64 f64;
-
854 
-
855 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
-
856  typedef mediump_float32 float32_t;
-
859 
-
862  typedef mediump_float64 float64_t;
-
863 
-
866  typedef mediump_float32 f32;
-
867 
-
870  typedef mediump_float64 f64;
-
871 
-
872 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
-
873 
-
876  typedef highp_float32_t float32_t;
-
877 
-
880  typedef highp_float64_t float64_t;
-
881 
-
884  typedef highp_float32_t f32;
-
885 
-
888  typedef highp_float64_t f64;
-
889 #endif
-
890 
-
891 
-
894  typedef vec<1, float, lowp> lowp_fvec1;
-
895 
-
898  typedef vec<2, float, lowp> lowp_fvec2;
-
899 
-
902  typedef vec<3, float, lowp> lowp_fvec3;
-
903 
-
906  typedef vec<4, float, lowp> lowp_fvec4;
-
907 
-
908 
-
911  typedef vec<1, float, mediump> mediump_fvec1;
-
912 
-
915  typedef vec<2, float, mediump> mediump_fvec2;
-
916 
-
919  typedef vec<3, float, mediump> mediump_fvec3;
-
920 
-
923  typedef vec<4, float, mediump> mediump_fvec4;
-
924 
-
925 
-
928  typedef vec<1, float, highp> highp_fvec1;
-
929 
-
932  typedef vec<2, float, highp> highp_fvec2;
-
933 
-
936  typedef vec<3, float, highp> highp_fvec3;
-
937 
-
940  typedef vec<4, float, highp> highp_fvec4;
-
941 
-
942 
-
945  typedef vec<1, f32, lowp> lowp_f32vec1;
-
946 
-
949  typedef vec<2, f32, lowp> lowp_f32vec2;
-
950 
-
953  typedef vec<3, f32, lowp> lowp_f32vec3;
-
954 
-
957  typedef vec<4, f32, lowp> lowp_f32vec4;
-
958 
-
961  typedef vec<1, f32, mediump> mediump_f32vec1;
-
962 
-
965  typedef vec<2, f32, mediump> mediump_f32vec2;
-
966 
-
969  typedef vec<3, f32, mediump> mediump_f32vec3;
-
970 
-
973  typedef vec<4, f32, mediump> mediump_f32vec4;
-
974 
-
977  typedef vec<1, f32, highp> highp_f32vec1;
-
978 
-
981  typedef vec<2, f32, highp> highp_f32vec2;
-
982 
-
985  typedef vec<3, f32, highp> highp_f32vec3;
-
986 
-
989  typedef vec<4, f32, highp> highp_f32vec4;
-
990 
-
991 
-
994  typedef vec<1, f64, lowp> lowp_f64vec1;
-
995 
-
998  typedef vec<2, f64, lowp> lowp_f64vec2;
-
999 
-
1002  typedef vec<3, f64, lowp> lowp_f64vec3;
-
1003 
-
1006  typedef vec<4, f64, lowp> lowp_f64vec4;
-
1007 
-
1010  typedef vec<1, f64, mediump> mediump_f64vec1;
-
1011 
-
1014  typedef vec<2, f64, mediump> mediump_f64vec2;
-
1015 
-
1018  typedef vec<3, f64, mediump> mediump_f64vec3;
-
1019 
-
1022  typedef vec<4, f64, mediump> mediump_f64vec4;
-
1023 
-
1026  typedef vec<1, f64, highp> highp_f64vec1;
-
1027 
-
1030  typedef vec<2, f64, highp> highp_f64vec2;
-
1031 
-
1034  typedef vec<3, f64, highp> highp_f64vec3;
-
1035 
-
1038  typedef vec<4, f64, highp> highp_f64vec4;
-
1039 
-
1040 
-
1041 
-
1043  // Float matrix types
-
1044 
-
1047  //typedef lowp_f32 lowp_fmat1x1;
-
1048 
-
1051  typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
-
1052 
-
1055  typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
-
1056 
-
1059  typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
-
1060 
-
1063  typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
-
1064 
-
1067  typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
-
1068 
-
1071  typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
-
1072 
-
1075  typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
-
1076 
-
1079  typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
-
1080 
-
1083  typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
-
1084 
-
1087  //typedef lowp_fmat1x1 lowp_fmat1;
-
1088 
-
1091  typedef lowp_fmat2x2 lowp_fmat2;
-
1092 
-
1095  typedef lowp_fmat3x3 lowp_fmat3;
-
1096 
-
1099  typedef lowp_fmat4x4 lowp_fmat4;
-
1100 
-
1101 
-
1104  //typedef mediump_f32 mediump_fmat1x1;
-
1105 
-
1108  typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
-
1109 
-
1112  typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
-
1113 
-
1116  typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
-
1117 
-
1120  typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
-
1121 
-
1124  typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
-
1125 
-
1128  typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
-
1129 
-
1132  typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
-
1133 
-
1136  typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
-
1137 
-
1140  typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
-
1141 
-
1144  //typedef mediump_fmat1x1 mediump_fmat1;
-
1145 
-
1148  typedef mediump_fmat2x2 mediump_fmat2;
-
1149 
-
1152  typedef mediump_fmat3x3 mediump_fmat3;
-
1153 
-
1156  typedef mediump_fmat4x4 mediump_fmat4;
-
1157 
-
1158 
-
1161  //typedef highp_f32 highp_fmat1x1;
-
1162 
-
1165  typedef mat<2, 2, f32, highp> highp_fmat2x2;
-
1166 
-
1169  typedef mat<2, 3, f32, highp> highp_fmat2x3;
-
1170 
-
1173  typedef mat<2, 4, f32, highp> highp_fmat2x4;
-
1174 
-
1177  typedef mat<3, 2, f32, highp> highp_fmat3x2;
-
1178 
-
1181  typedef mat<3, 3, f32, highp> highp_fmat3x3;
-
1182 
-
1185  typedef mat<3, 4, f32, highp> highp_fmat3x4;
-
1186 
-
1189  typedef mat<4, 2, f32, highp> highp_fmat4x2;
-
1190 
-
1193  typedef mat<4, 3, f32, highp> highp_fmat4x3;
-
1194 
-
1197  typedef mat<4, 4, f32, highp> highp_fmat4x4;
-
1198 
-
1201  //typedef highp_fmat1x1 highp_fmat1;
-
1202 
-
1205  typedef highp_fmat2x2 highp_fmat2;
-
1206 
-
1209  typedef highp_fmat3x3 highp_fmat3;
-
1210 
-
1213  typedef highp_fmat4x4 highp_fmat4;
-
1214 
-
1215 
-
1218  //typedef f32 lowp_f32mat1x1;
-
1219 
-
1222  typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
-
1223 
-
1226  typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
-
1227 
-
1230  typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
-
1231 
-
1234  typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
-
1235 
-
1238  typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
-
1239 
-
1242  typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
-
1243 
-
1246  typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
-
1247 
-
1250  typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
-
1251 
-
1254  typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
-
1255 
-
1258  //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
-
1259 
-
1262  typedef lowp_f32mat2x2 lowp_f32mat2;
-
1263 
-
1266  typedef lowp_f32mat3x3 lowp_f32mat3;
-
1267 
-
1270  typedef lowp_f32mat4x4 lowp_f32mat4;
-
1271 
-
1272 
-
1275  //typedef f32 mediump_f32mat1x1;
-
1276 
-
1279  typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
-
1280 
-
1283  typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
-
1284 
-
1287  typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
-
1288 
-
1291  typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
-
1292 
-
1295  typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
-
1296 
-
1299  typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
-
1300 
-
1303  typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
-
1304 
-
1307  typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
-
1308 
-
1311  typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
-
1312 
-
1315  //typedef detail::tmat1x1<f32, mediump> f32mat1;
-
1316 
-
1319  typedef mediump_f32mat2x2 mediump_f32mat2;
-
1320 
-
1323  typedef mediump_f32mat3x3 mediump_f32mat3;
-
1324 
-
1327  typedef mediump_f32mat4x4 mediump_f32mat4;
-
1328 
-
1329 
-
1332  //typedef f32 highp_f32mat1x1;
-
1333 
-
1336  typedef mat<2, 2, f32, highp> highp_f32mat2x2;
-
1337 
-
1340  typedef mat<2, 3, f32, highp> highp_f32mat2x3;
-
1341 
-
1344  typedef mat<2, 4, f32, highp> highp_f32mat2x4;
-
1345 
-
1348  typedef mat<3, 2, f32, highp> highp_f32mat3x2;
-
1349 
-
1352  typedef mat<3, 3, f32, highp> highp_f32mat3x3;
-
1353 
-
1356  typedef mat<3, 4, f32, highp> highp_f32mat3x4;
-
1357 
-
1360  typedef mat<4, 2, f32, highp> highp_f32mat4x2;
-
1361 
-
1364  typedef mat<4, 3, f32, highp> highp_f32mat4x3;
-
1365 
-
1368  typedef mat<4, 4, f32, highp> highp_f32mat4x4;
-
1369 
-
1372  //typedef detail::tmat1x1<f32, highp> f32mat1;
-
1373 
-
1376  typedef highp_f32mat2x2 highp_f32mat2;
-
1377 
-
1380  typedef highp_f32mat3x3 highp_f32mat3;
-
1381 
-
1384  typedef highp_f32mat4x4 highp_f32mat4;
-
1385 
-
1386 
-
1389  //typedef f64 lowp_f64mat1x1;
-
1390 
-
1393  typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
-
1394 
-
1397  typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
-
1398 
-
1401  typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
-
1402 
-
1405  typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
-
1406 
-
1409  typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
-
1410 
-
1413  typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
-
1414 
-
1417  typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
-
1418 
-
1421  typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
-
1422 
-
1425  typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
-
1426 
-
1429  //typedef lowp_f64mat1x1 lowp_f64mat1;
-
1430 
-
1433  typedef lowp_f64mat2x2 lowp_f64mat2;
-
1434 
-
1437  typedef lowp_f64mat3x3 lowp_f64mat3;
-
1438 
-
1441  typedef lowp_f64mat4x4 lowp_f64mat4;
-
1442 
-
1443 
-
1446  //typedef f64 Highp_f64mat1x1;
-
1447 
-
1450  typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
-
1451 
-
1454  typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
-
1455 
-
1458  typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
-
1459 
-
1462  typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
-
1463 
-
1466  typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
-
1467 
-
1470  typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
-
1471 
-
1474  typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
-
1475 
-
1478  typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
-
1479 
-
1482  typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
-
1483 
-
1486  //typedef mediump_f64mat1x1 mediump_f64mat1;
-
1487 
-
1490  typedef mediump_f64mat2x2 mediump_f64mat2;
-
1491 
-
1494  typedef mediump_f64mat3x3 mediump_f64mat3;
-
1495 
-
1498  typedef mediump_f64mat4x4 mediump_f64mat4;
-
1499 
-
1502  //typedef f64 highp_f64mat1x1;
-
1503 
-
1506  typedef mat<2, 2, f64, highp> highp_f64mat2x2;
-
1507 
-
1510  typedef mat<2, 3, f64, highp> highp_f64mat2x3;
-
1511 
-
1514  typedef mat<2, 4, f64, highp> highp_f64mat2x4;
-
1515 
-
1518  typedef mat<3, 2, f64, highp> highp_f64mat3x2;
-
1519 
-
1522  typedef mat<3, 3, f64, highp> highp_f64mat3x3;
-
1523 
-
1526  typedef mat<3, 4, f64, highp> highp_f64mat3x4;
-
1527 
-
1530  typedef mat<4, 2, f64, highp> highp_f64mat4x2;
-
1531 
-
1534  typedef mat<4, 3, f64, highp> highp_f64mat4x3;
-
1535 
-
1538  typedef mat<4, 4, f64, highp> highp_f64mat4x4;
-
1539 
-
1542  //typedef highp_f64mat1x1 highp_f64mat1;
-
1543 
-
1546  typedef highp_f64mat2x2 highp_f64mat2;
-
1547 
-
1550  typedef highp_f64mat3x3 highp_f64mat3;
-
1551 
-
1554  typedef highp_f64mat4x4 highp_f64mat4;
-
1555 
-
1556 
-
1557 
-
1558 
-
1561  typedef vec<1, u8, lowp> lowp_u8vec1;
-
1562 
-
1565  typedef vec<2, u8, lowp> lowp_u8vec2;
-
1566 
-
1569  typedef vec<3, u8, lowp> lowp_u8vec3;
-
1570 
-
1573  typedef vec<4, u8, lowp> lowp_u8vec4;
-
1574 
-
1575 
-
1578  typedef vec<1, u8, mediump> mediump_u8vec1;
-
1579 
-
1582  typedef vec<2, u8, mediump> mediump_u8vec2;
-
1583 
-
1586  typedef vec<3, u8, mediump> mediump_u8vec3;
-
1587 
-
1590  typedef vec<4, u8, mediump> mediump_u8vec4;
-
1591 
-
1592 
-
1595  typedef vec<1, u8, highp> highp_u8vec1;
-
1596 
-
1599  typedef vec<2, u8, highp> highp_u8vec2;
-
1600 
-
1603  typedef vec<3, u8, highp> highp_u8vec3;
-
1604 
-
1607  typedef vec<4, u8, highp> highp_u8vec4;
-
1608 
-
1609 
-
1610 
-
1613  typedef vec<1, u8, defaultp> u8vec1;
-
1614 
-
1617  typedef vec<2, u8, defaultp> u8vec2;
-
1618 
-
1621  typedef vec<3, u8, defaultp> u8vec3;
-
1622 
-
1625  typedef vec<4, u8, defaultp> u8vec4;
-
1626 
-
1627 
-
1628 
-
1629 
-
1632  typedef vec<1, u16, lowp> lowp_u16vec1;
-
1633 
-
1636  typedef vec<2, u16, lowp> lowp_u16vec2;
-
1637 
-
1640  typedef vec<3, u16, lowp> lowp_u16vec3;
-
1641 
-
1644  typedef vec<4, u16, lowp> lowp_u16vec4;
-
1645 
-
1646 
-
1649  typedef vec<1, u16, mediump> mediump_u16vec1;
-
1650 
-
1653  typedef vec<2, u16, mediump> mediump_u16vec2;
-
1654 
-
1657  typedef vec<3, u16, mediump> mediump_u16vec3;
-
1658 
-
1661  typedef vec<4, u16, mediump> mediump_u16vec4;
-
1662 
-
1663 
-
1666  typedef vec<1, u16, highp> highp_u16vec1;
-
1667 
-
1670  typedef vec<2, u16, highp> highp_u16vec2;
-
1671 
-
1674  typedef vec<3, u16, highp> highp_u16vec3;
-
1675 
-
1678  typedef vec<4, u16, highp> highp_u16vec4;
-
1679 
-
1680 
-
1681 
-
1682 
-
1685  typedef vec<1, u16, defaultp> u16vec1;
-
1686 
-
1689  typedef vec<2, u16, defaultp> u16vec2;
-
1690 
-
1693  typedef vec<3, u16, defaultp> u16vec3;
-
1694 
-
1697  typedef vec<4, u16, defaultp> u16vec4;
-
1698 
-
1699 
-
1700 
-
1703  typedef vec<1, u32, lowp> lowp_u32vec1;
-
1704 
-
1707  typedef vec<2, u32, lowp> lowp_u32vec2;
-
1708 
-
1711  typedef vec<3, u32, lowp> lowp_u32vec3;
-
1712 
-
1715  typedef vec<4, u32, lowp> lowp_u32vec4;
-
1716 
-
1717 
-
1720  typedef vec<1, u32, mediump> mediump_u32vec1;
-
1721 
-
1724  typedef vec<2, u32, mediump> mediump_u32vec2;
-
1725 
-
1728  typedef vec<3, u32, mediump> mediump_u32vec3;
-
1729 
-
1732  typedef vec<4, u32, mediump> mediump_u32vec4;
-
1733 
-
1734 
-
1737  typedef vec<1, u32, highp> highp_u32vec1;
-
1738 
-
1741  typedef vec<2, u32, highp> highp_u32vec2;
-
1742 
-
1745  typedef vec<3, u32, highp> highp_u32vec3;
-
1746 
-
1749  typedef vec<4, u32, highp> highp_u32vec4;
-
1750 
-
1751 
-
1752 
-
1755  typedef vec<1, u32, defaultp> u32vec1;
-
1756 
-
1759  typedef vec<2, u32, defaultp> u32vec2;
-
1760 
-
1763  typedef vec<3, u32, defaultp> u32vec3;
-
1764 
-
1767  typedef vec<4, u32, defaultp> u32vec4;
-
1768 
-
1769 
-
1770 
-
1771 
-
1774  typedef vec<1, u64, lowp> lowp_u64vec1;
-
1775 
-
1778  typedef vec<2, u64, lowp> lowp_u64vec2;
-
1779 
-
1782  typedef vec<3, u64, lowp> lowp_u64vec3;
-
1783 
-
1786  typedef vec<4, u64, lowp> lowp_u64vec4;
-
1787 
-
1788 
-
1791  typedef vec<1, u64, mediump> mediump_u64vec1;
-
1792 
-
1795  typedef vec<2, u64, mediump> mediump_u64vec2;
-
1796 
-
1799  typedef vec<3, u64, mediump> mediump_u64vec3;
-
1800 
-
1803  typedef vec<4, u64, mediump> mediump_u64vec4;
-
1804 
-
1805 
-
1808  typedef vec<1, u64, highp> highp_u64vec1;
-
1809 
-
1812  typedef vec<2, u64, highp> highp_u64vec2;
-
1813 
-
1816  typedef vec<3, u64, highp> highp_u64vec3;
-
1817 
-
1820  typedef vec<4, u64, highp> highp_u64vec4;
-
1821 
-
1822 
-
1823 
-
1824 
-
1827  typedef vec<1, u64, defaultp> u64vec1;
-
1828 
-
1831  typedef vec<2, u64, defaultp> u64vec2;
-
1832 
-
1835  typedef vec<3, u64, defaultp> u64vec3;
-
1836 
-
1839  typedef vec<4, u64, defaultp> u64vec4;
-
1840 
-
1841 
-
1843  // Float vector types
-
1844 
-
1847  typedef float32 float32_t;
-
1848 
-
1851  typedef float32 f32;
-
1852 
-
1853 # ifndef GLM_FORCE_SINGLE_ONLY
-
1854 
-
1857  typedef float64 float64_t;
-
1858 
-
1861  typedef float64 f64;
-
1862 # endif//GLM_FORCE_SINGLE_ONLY
-
1863 
-
1866  typedef vec<1, float, defaultp> fvec1;
-
1867 
-
1870  typedef vec<2, float, defaultp> fvec2;
-
1871 
-
1874  typedef vec<3, float, defaultp> fvec3;
-
1875 
-
1878  typedef vec<4, float, defaultp> fvec4;
-
1879 
-
1880 
-
1883  typedef vec<1, f32, defaultp> f32vec1;
-
1884 
-
1887  typedef vec<2, f32, defaultp> f32vec2;
-
1888 
-
1891  typedef vec<3, f32, defaultp> f32vec3;
-
1892 
-
1895  typedef vec<4, f32, defaultp> f32vec4;
-
1896 
-
1897 # ifndef GLM_FORCE_SINGLE_ONLY
-
1898  typedef vec<1, f64, defaultp> f64vec1;
-
1901 
-
1904  typedef vec<2, f64, defaultp> f64vec2;
-
1905 
-
1908  typedef vec<3, f64, defaultp> f64vec3;
-
1909 
-
1912  typedef vec<4, f64, defaultp> f64vec4;
-
1913 # endif//GLM_FORCE_SINGLE_ONLY
-
1914 
-
1915 
-
1917  // Float matrix types
-
1918 
-
1921  //typedef detail::tmat1x1<f32> fmat1;
-
1922 
-
1925  typedef mat<2, 2, f32, defaultp> fmat2;
-
1926 
-
1929  typedef mat<3, 3, f32, defaultp> fmat3;
-
1930 
-
1933  typedef mat<4, 4, f32, defaultp> fmat4;
-
1934 
-
1935 
-
1938  //typedef f32 fmat1x1;
-
1939 
-
1942  typedef mat<2, 2, f32, defaultp> fmat2x2;
-
1943 
-
1946  typedef mat<2, 3, f32, defaultp> fmat2x3;
-
1947 
-
1950  typedef mat<2, 4, f32, defaultp> fmat2x4;
-
1951 
-
1954  typedef mat<3, 2, f32, defaultp> fmat3x2;
-
1955 
-
1958  typedef mat<3, 3, f32, defaultp> fmat3x3;
-
1959 
-
1962  typedef mat<3, 4, f32, defaultp> fmat3x4;
-
1963 
-
1966  typedef mat<4, 2, f32, defaultp> fmat4x2;
-
1967 
-
1970  typedef mat<4, 3, f32, defaultp> fmat4x3;
-
1971 
-
1974  typedef mat<4, 4, f32, defaultp> fmat4x4;
-
1975 
-
1976 
-
1979  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
-
1980 
-
1983  typedef mat<2, 2, f32, defaultp> f32mat2;
-
1984 
-
1987  typedef mat<3, 3, f32, defaultp> f32mat3;
-
1988 
-
1991  typedef mat<4, 4, f32, defaultp> f32mat4;
-
1992 
-
1993 
-
1996  //typedef f32 f32mat1x1;
-
1997 
-
2000  typedef mat<2, 2, f32, defaultp> f32mat2x2;
-
2001 
-
2004  typedef mat<2, 3, f32, defaultp> f32mat2x3;
-
2005 
-
2008  typedef mat<2, 4, f32, defaultp> f32mat2x4;
-
2009 
-
2012  typedef mat<3, 2, f32, defaultp> f32mat3x2;
-
2013 
-
2016  typedef mat<3, 3, f32, defaultp> f32mat3x3;
-
2017 
-
2020  typedef mat<3, 4, f32, defaultp> f32mat3x4;
-
2021 
-
2024  typedef mat<4, 2, f32, defaultp> f32mat4x2;
-
2025 
-
2028  typedef mat<4, 3, f32, defaultp> f32mat4x3;
-
2029 
-
2032  typedef mat<4, 4, f32, defaultp> f32mat4x4;
-
2033 
-
2034 
-
2035 # ifndef GLM_FORCE_SINGLE_ONLY
-
2036 
-
2039  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
-
2040 
-
2043  typedef mat<2, 2, f64, defaultp> f64mat2;
-
2044 
-
2047  typedef mat<3, 3, f64, defaultp> f64mat3;
-
2048 
-
2051  typedef mat<4, 4, f64, defaultp> f64mat4;
-
2052 
-
2053 
-
2056  //typedef f64 f64mat1x1;
-
2057 
-
2060  typedef mat<2, 2, f64, defaultp> f64mat2x2;
-
2061 
-
2064  typedef mat<2, 3, f64, defaultp> f64mat2x3;
-
2065 
-
2068  typedef mat<2, 4, f64, defaultp> f64mat2x4;
-
2069 
-
2072  typedef mat<3, 2, f64, defaultp> f64mat3x2;
-
2073 
-
2076  typedef mat<3, 3, f64, defaultp> f64mat3x3;
-
2077 
-
2080  typedef mat<3, 4, f64, defaultp> f64mat3x4;
-
2081 
-
2084  typedef mat<4, 2, f64, defaultp> f64mat4x2;
-
2085 
-
2088  typedef mat<4, 3, f64, defaultp> f64mat4x3;
-
2089 
-
2092  typedef mat<4, 4, f64, defaultp> f64mat4x4;
-
2093 
-
2094 # endif//GLM_FORCE_SINGLE_ONLY
-
2095 
-
2097  // Quaternion types
-
2098 
-
2101  typedef qua<f32, defaultp> f32quat;
-
2102 
-
2105  typedef qua<f32, lowp> lowp_f32quat;
-
2106 
-
2109  typedef qua<f64, lowp> lowp_f64quat;
-
2110 
-
2113  typedef qua<f32, mediump> mediump_f32quat;
-
2114 
-
2115 # ifndef GLM_FORCE_SINGLE_ONLY
-
2116 
-
2119  typedef qua<f64, mediump> mediump_f64quat;
-
2120 
-
2123  typedef qua<f32, highp> highp_f32quat;
-
2124 
-
2127  typedef qua<f64, highp> highp_f64quat;
-
2128 
-
2131  typedef qua<f64, defaultp> f64quat;
-
2132 
-
2133 # endif//GLM_FORCE_SINGLE_ONLY
-
2134 
-
2136 }//namespace glm
-
2137 
-
2138 #include "type_precision.inl"
-
vec< 1, u16, highp > highp_u16vec1
High qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:354
-
mat< 4, 2, f32, highp > highp_f32mat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:696
-
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
-
vec< 1, f64, mediump > mediump_f64vec1
Medium double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:491
-
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
-
mat< 2, 2, f32, mediump > mediump_fmat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:528
-
double highp_float64_t
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:175
-
mat< 4, 4, f64, defaultp > f64mat4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:586
-
mat< 2, 2, f64, defaultp > f64mat2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:584
-
mat< 4, 3, f32, mediump > mediump_fmat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:647
-
mat< 3, 3, f32, mediump > mediump_f32mat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:545
-
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
-
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
-
mat< 2, 2, f32, mediump > mediump_fmat2x2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:640
-
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
-
mat< 4, 4, f32, highp > highp_f32mat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:550
-
double highp_float64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:170
-
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
-
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
-
mat< 3, 3, f64, defaultp > f64mat3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:585
-
double lowp_float64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:168
-
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
-
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
-
mat< 2, 4, f64, mediump > mediump_f64mat2x4
Medium double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:762
-
vec< 4, i64, highp > highp_i64vec4
High qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:295
-
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
-
mat< 2, 2, f32, defaultp > fmat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:536
-
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
-
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
-
vec< 2, float, lowp > lowp_fvec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:427
-
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
-
mat< 4, 4, f32, mediump > mediump_fmat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:530
-
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
-
mat< 2, 2, f32, lowp > lowp_fmat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:524
-
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
-
vec< 3, float, lowp > lowp_fvec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:428
-
vec< 2, float, mediump > mediump_fvec2
Medium Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:432
-
mat< 3, 4, f32, lowp > lowp_fmat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:635
-
mat< 2, 2, f64, lowp > lowp_f64mat2x2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:750
-
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
-
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
-
vec< 1, u64, lowp > lowp_u64vec1
Low qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:384
-
vec< 1, u16, mediump > mediump_u16vec1
Medium qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:349
-
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
-
mat< 2, 3, f64, mediump > mediump_f64mat2x3
Medium double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:761
-
vec< 4, u32, lowp > lowp_u32vec4
Low qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:367
-
vec< 4, f32, highp > highp_f32vec4
High single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:459
-
vec< 1, f32, lowp > lowp_f32vec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:446
-
mat< 2, 3, f32, highp > highp_f32mat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:691
-
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
-
vec< 2, i32, mediump > mediump_i32vec2
Medium qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:268
-
mat< 4, 4, f64, lowp > lowp_f64mat4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:574
-
mat< 4, 4, f32, defaultp > fmat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:538
-
mat< 3, 4, f32, mediump > mediump_fmat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:645
-
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
-
vec< 4, i32, highp > highp_i32vec4
High qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:275
-
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
-
mat< 3, 2, f32, highp > highp_fmat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:653
-
mat< 2, 3, f32, mediump > mediump_fmat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:641
-
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
-
mat< 3, 2, f32, lowp > lowp_fmat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:633
-
mat< 4, 2, f64, mediump > mediump_f64mat4x2
Medium double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:766
-
vec< 2, u16, highp > highp_u16vec2
High qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:355
-
vec< 1, f64, highp > highp_f64vec1
High double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:496
-
vec< 2, i16, mediump > mediump_i16vec2
Medium qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:248
-
mat< 2, 4, f32, highp > highp_fmat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:652
-
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
-
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
-
mat< 3, 2, f32, lowp > lowp_f32mat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:673
-
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
-
vec< 3, i64, highp > highp_i64vec3
High qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:294
-
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
-
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
-
mat< 4, 2, f32, mediump > mediump_f32mat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:686
-
vec< 3, f64, lowp > lowp_f64vec3
Low double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:488
-
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
-
vec< 3, i64, lowp > lowp_i64vec3
Low qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:284
-
vec< 2, i8, mediump > mediump_i8vec2
Medium qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:228
-
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
-
vec< 3, i16, highp > highp_i16vec3
High qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:254
-
vec< 3, i16, mediump > mediump_i16vec3
Medium qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:249
-
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
-
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
-
mat< 3, 2, f32, mediump > mediump_fmat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:643
-
vec< 1, i64, mediump > mediump_i64vec1
Medium qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:287
-
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
-
mat< 3, 3, f64, lowp > lowp_f64mat3x3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:754
-
vec< 2, f64, lowp > lowp_f64vec2
Low double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:487
-
mat< 2, 3, f32, highp > highp_fmat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:651
-
mat< 3, 3, f64, lowp > lowp_f64mat3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:573
-
mat< 4, 3, f32, lowp > lowp_f32mat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:677
-
vec< 3, u64, mediump > mediump_u64vec3
Medium qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:391
-
double mediump_float64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:169
-
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
-
vec< 2, i16, highp > highp_i16vec2
High qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:253
-
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
-
mat< 2, 3, f64, lowp > lowp_f64mat2x3
Low double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:751
-
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
-
vec< 3, u32, lowp > lowp_u32vec3
Low qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:366
-
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
-
vec< 4, float, lowp > lowp_fvec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:429
-
vec< 4, f32, mediump > mediump_f32vec4
Medium single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:454
-
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
-
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
-
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
-
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
-
mat< 3, 4, f64, mediump > mediump_f64mat3x4
Medium double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:765
-
mat< 2, 3, f32, lowp > lowp_fmat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:631
-
vec< 1, u32, lowp > lowp_u32vec1
Low qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:364
-
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
-
vec< 1, i32, mediump > mediump_i32vec1
Medium qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:267
-
vec< 4, u16, highp > highp_u16vec4
High qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:357
-
vec< 1, i32, lowp > lowp_i32vec1
Low qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:262
-
vec< 1, i64, lowp > lowp_i64vec1
Low qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:282
-
vec< 1, u32, highp > highp_u32vec1
High qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:374
-
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
-
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
-
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
-
vec< 3, f64, mediump > mediump_f64vec3
Medium double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:493
-
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
-
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
-
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
-
vec< 1, i8, highp > highp_i8vec1
High qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:232
-
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
-
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
-
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
-
vec< 1, u32, mediump > mediump_u32vec1
Medium qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:369
-
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
-
mat< 2, 2, f32, lowp > lowp_f32mat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:670
-
vec< 4, f32, lowp > lowp_f32vec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:449
-
vec< 3, float, highp > highp_fvec3
High Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:438
-
mat< 4, 2, f64, lowp > lowp_f64mat4x2
Low double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:756
-
mat< 3, 3, f32, mediump > mediump_fmat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:644
-
vec< 1, i64, highp > highp_i64vec1
High qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:292
-
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
-
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
-
mat< 2, 3, f32, mediump > mediump_f32mat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:681
-
mat< 3, 2, f64, lowp > lowp_f64mat3x2
Low double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:753
-
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
-
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
-
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
-
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
-
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
-
mat< 4, 4, f64, mediump > mediump_f64mat4x4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:768
-
vec< 4, u16, lowp > lowp_u16vec4
Low qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:347
-
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
-
mat< 4, 4, f32, lowp > lowp_f32mat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:542
-
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
-
float mediump_float32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:153
-
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
-
vec< 4, f64, mediump > mediump_f64vec4
Medium double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:494
-
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
-
float highp_float32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:154
-
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
-
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
-
mat< 2, 4, f64, lowp > lowp_f64mat2x4
Low double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:752
-
mat< 3, 4, f64, lowp > lowp_f64mat3x4
Low double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:755
-
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
-
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
-
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
-
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
-
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
-
vec< 2, i64, lowp > lowp_i64vec2
Low qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:283
-
mat< 2, 4, f32, lowp > lowp_f32mat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:672
-
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
-
mat< 3, 3, f32, highp > highp_f32mat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:549
-
mat< 3, 3, f64, mediump > mediump_f64mat3x3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:764
-
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
-
vec< 3, i32, highp > highp_i32vec3
High qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:274
-
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
-
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
-
vec< 1, i32, highp > highp_i32vec1
High qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:272
-
mat< 3, 3, f32, lowp > lowp_f32mat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:541
-
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
-
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
-
vec< 3, i32, mediump > mediump_i32vec3
Medium qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:269
-
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
-
vec< 2, i16, lowp > lowp_i16vec2
Low qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:243
-
vec< 2, u64, mediump > mediump_u64vec2
Medium qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:390
-
vec< 4, u8, lowp > lowp_u8vec4
Low qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:327
-
mat< 3, 3, f32, highp > highp_f32mat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:694
-
vec< 1, u8, highp > highp_u8vec1
High qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:334
-
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
-
vec< 4, u32, mediump > mediump_u32vec4
Medium qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:372
-
mat< 2, 2, f32, highp > highp_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:690
-
vec< 4, f64, highp > highp_f64vec4
High double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:499
-
vec< 3, u8, lowp > lowp_u8vec3
Low qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:326
-
float highp_f32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:149
-
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
-
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
-
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
-
mat< 2, 3, f32, lowp > lowp_f32mat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:671
-
vec< 3, u16, mediump > mediump_u16vec3
Medium qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:351
-
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
-
mat< 3, 3, f32, defaultp > f32mat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:553
-
mat< 2, 2, f64, mediump > mediump_f64mat2x2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:760
-
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
-
vec< 4, i16, highp > highp_i16vec4
High qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:255
-
mat< 4, 4, f32, lowp > lowp_fmat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:526
-
vec< 2, u32, mediump > mediump_u32vec2
Medium qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:370
-
vec< 3, u64, highp > highp_u64vec3
High qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:396
-
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
-
vec< 3, i16, lowp > lowp_i16vec3
Low qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:244
-
vec< 3, u16, lowp > lowp_u16vec3
Low qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:346
-
vec< 3, f32, lowp > lowp_f32vec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:448
-
mat< 4, 4, f32, highp > highp_fmat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:534
-
mat< 3, 3, f32, lowp > lowp_fmat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:525
-
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
-
qua< f32, mediump > mediump_f32quat
Medium single-qualifier floating-point quaternion.
Definition: fwd.hpp:803
-
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
-
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
-
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
-
mat< 2, 4, f32, lowp > lowp_fmat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:632
-
mat< 3, 3, f64, highp > highp_f64mat3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:581
-
vec< 3, i8, mediump > mediump_i8vec3
Medium qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:229
-
vec< 1, f32, highp > highp_f32vec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:456
-
vec< 3, i8, lowp > lowp_i8vec3
Low qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:224
-
mat< 4, 3, f64, lowp > lowp_f64mat4x3
Low double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:757
-
vec< 4, u64, highp > highp_u64vec4
High qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:397
-
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
-
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
-
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
-
mat< 2, 2, f32, defaultp > f32mat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:552
-
vec< 2, u16, mediump > mediump_u16vec2
Medium qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:350
-
mat< 2, 4, f32, mediump > mediump_fmat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:642
-
mat< 4, 4, f32, lowp > lowp_f32mat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:678
-
vec< 2, u8, lowp > lowp_u8vec2
Low qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:325
-
mat< 3, 3, f64, mediump > mediump_f64mat3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:577
-
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
-
mat< 3, 4, f32, highp > highp_fmat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:655
-
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
-
mat< 4, 4, f64, highp > highp_f64mat4x4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:778
-
mat< 4, 3, f32, mediump > mediump_f32mat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:687
-
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
-
mat< 3, 3, f32, mediump > mediump_fmat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:529
-
mat< 4, 4, f32, highp > highp_f32mat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:698
-
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
-
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
-
vec< 2, f64, highp > highp_f64vec2
High double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:497
-
vec< 2, u64, lowp > lowp_u64vec2
Low qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:385
-
mat< 3, 3, f32, defaultp > fmat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:537
-
mat< 3, 2, f32, mediump > mediump_f32mat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:683
-
mat< 4, 2, f32, lowp > lowp_f32mat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:676
-
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
-
vec< 4, i64, mediump > mediump_i64vec4
Medium qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:290
-
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
-
vec< 1, i8, mediump > mediump_i8vec1
Medium qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:227
-
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
-
float highp_float32_t
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:159
-
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
-
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
-
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
-
mat< 4, 2, f32, highp > highp_fmat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:656
-
vec< 2, f32, highp > highp_f32vec2
High single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:457
-
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
-
vec< 3, u64, lowp > lowp_u64vec3
Low qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:386
-
mat< 2, 2, f64, highp > highp_f64mat2x2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:770
-
vec< 3, u32, highp > highp_u32vec3
High qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:376
-
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
-
qua< f32, lowp > lowp_f32quat
Low single-qualifier floating-point quaternion.
Definition: fwd.hpp:802
-
vec< 4, i32, lowp > lowp_i32vec4
Low qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:265
-
vec< 1, i16, highp > highp_i16vec1
High qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:252
-
mat< 4, 4, f32, lowp > lowp_fmat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:638
-
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
-
mat< 3, 3, f32, lowp > lowp_f32mat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:674
-
vec< 2, i8, lowp > lowp_i8vec2
Low qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:223
-
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
-
mat< 2, 2, f32, highp > highp_f32mat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:548
-
float lowp_f32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:147
-
vec< 4, u16, mediump > mediump_u16vec4
Medium qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:352
-
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
-
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
-
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
-
vec< 2, u64, highp > highp_u64vec2
High qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:395
-
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
-
mat< 2, 2, f32, mediump > mediump_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:680
-
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
-
mat< 4, 3, f64, mediump > mediump_f64mat4x3
Medium double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:767
-
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
-
double highp_f64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:165
-
vec< 3, float, mediump > mediump_fvec3
Medium Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:433
-
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
-
vec< 4, u64, mediump > mediump_u64vec4
Medium qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:392
-
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
-
vec< 2, u32, highp > highp_u32vec2
High qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:375
-
vec< 1, float, highp > highp_fvec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:436
-
vec< 4, i64, lowp > lowp_i64vec4
Low qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:285
-
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
-
mat< 2, 4, f32, highp > highp_f32mat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:692
-
vec< 1, i8, lowp > lowp_i8vec1
Low qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:222
-
mat< 2, 2, f64, highp > highp_f64mat2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:580
-
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
-
mat< 3, 2, f64, highp > highp_f64mat3x2
High double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:773
-
vec< 3, u32, mediump > mediump_u32vec3
Medium qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:371
-
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
-
vec< 3, u8, highp > highp_u8vec3
High qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:336
-
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
-
vec< 2, i8, highp > highp_i8vec2
High qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:233
-
vec< 3, i32, lowp > lowp_i32vec3
Low qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:264
-
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
-
mat< 4, 4, f32, mediump > mediump_fmat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:648
-
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
-
vec< 4, i16, lowp > lowp_i16vec4
Low qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:245
-
mat< 4, 3, f64, highp > highp_f64mat4x3
High double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:777
-
vec< 2, u8, highp > highp_u8vec2
High qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:335
-
vec< 3, i8, highp > highp_i8vec3
High qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:234
-
vec< 3, f64, highp > highp_f64vec3
High double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:498
-
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
-
vec< 4, f64, lowp > lowp_f64vec4
Low double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:489
-
vec< 3, f32, mediump > mediump_f32vec3
Medium single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:453
-
double lowp_f64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:163
-
mat< 4, 2, f32, lowp > lowp_fmat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:636
-
mat< 2, 4, f64, highp > highp_f64mat2x4
High double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:772
-
mat< 4, 4, f64, highp > highp_f64mat4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:582
-
vec< 4, i32, mediump > mediump_i32vec4
Medium qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:270
-
mat< 2, 2, f32, lowp > lowp_f32mat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:540
-
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
-
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
-
mat< 3, 4, f64, highp > highp_f64mat3x4
High double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:775
-
mat< 3, 3, f32, highp > highp_fmat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:533
-
mat< 3, 3, f32, mediump > mediump_f32mat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:684
-
qua< f64, mediump > mediump_f64quat
Medium double-qualifier floating-point quaternion.
Definition: fwd.hpp:813
-
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
-
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
-
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
-
detail::uint64 uint64
64 bit unsigned integer type.
-
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
-
vec< 1, i16, mediump > mediump_i16vec1
Medium qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:247
-
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
-
mat< 2, 2, f32, highp > highp_fmat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:650
-
vec< 4, float, highp > highp_fvec4
High Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:439
-
mat< 3, 3, f64, highp > highp_f64mat3x3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:774
-
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
-
vec< 2, u16, lowp > lowp_u16vec2
Low qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:345
-
vec< 4, u32, highp > highp_u32vec4
High qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:377
-
float lowp_float32_t
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:157
-
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
-
vec< 2, f32, lowp > lowp_f32vec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:447
-
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
-
mat< 2, 2, f64, mediump > mediump_f64mat2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:576
-
mat< 4, 3, f32, highp > highp_f32mat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:697
-
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
-
detail::int64 int64
64 bit signed integer type.
-
vec< 1, u64, highp > highp_u64vec1
High qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:394
-
mat< 2, 3, f64, highp > highp_f64mat2x3
High double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:771
-
vec< 4, i8, lowp > lowp_i8vec4
Low qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:225
-
mat< 4, 3, f32, lowp > lowp_fmat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:637
-
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
-
vec< 2, i32, highp > highp_i32vec2
High qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:273
-
vec< 1, u8, mediump > mediump_u8vec1
Medium qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:329
-
mat< 4, 3, f32, highp > highp_fmat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:657
-
vec< 4, i16, mediump > mediump_i16vec4
Medium qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:250
-
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
-
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
-
mat< 4, 4, f64, mediump > mediump_f64mat4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:578
-
vec< 4, u8, mediump > mediump_u8vec4
Medium qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:332
-
mat< 3, 4, f32, lowp > lowp_f32mat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:675
-
double mediump_float64_t
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:174
-
vec< 2, float, highp > highp_fvec2
High Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:437
-
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
-
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
-
mat< 4, 4, f32, defaultp > f32mat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:554
-
mat< 4, 2, f32, mediump > mediump_fmat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:646
-
mat< 2, 2, f64, lowp > lowp_f64mat2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:572
-
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
-
mat< 3, 3, f32, lowp > lowp_fmat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:634
-
double lowp_float64_t
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:173
-
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
-
mat< 3, 3, f32, highp > highp_fmat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:654
-
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
-
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
-
vec< 1, u8, lowp > lowp_u8vec1
Low qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:324
-
vec< 3, i64, mediump > mediump_i64vec3
Medium qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:289
-
qua< f32, highp > highp_f32quat
High single-qualifier floating-point quaternion.
Definition: fwd.hpp:804
-
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
-
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
-
vec< 2, u8, mediump > mediump_u8vec2
Medium qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:330
-
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
-
vec< 1, u16, lowp > lowp_u16vec1
Low qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:344
-
mat< 4, 4, f32, highp > highp_fmat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:658
-
mat< 3, 4, f32, highp > highp_f32mat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:695
-
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
-
vec< 3, u16, highp > highp_u16vec3
High qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:356
-
float mediump_float32_t
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:158
-
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
-
float mediump_f32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:148
-
mat< 4, 4, f32, mediump > mediump_f32mat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:688
-
vec< 2, f32, mediump > mediump_f32vec2
Medium single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:452
-
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
-
vec< 1, f64, lowp > lowp_f64vec1
Low double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:486
-
mat< 3, 2, f32, highp > highp_f32mat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:693
-
mat< 3, 2, f64, mediump > mediump_f64mat3x2
Medium double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:763
-
vec< 3, u8, mediump > mediump_u8vec3
Medium qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:331
-
mat< 4, 4, f64, lowp > lowp_f64mat4x4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:758
-
vec< 1, i16, lowp > lowp_i16vec1
Low qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:242
-
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
-
vec< 2, u32, lowp > lowp_u32vec2
Low qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:365
-
mat< 2, 4, f32, mediump > mediump_f32mat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:682
-
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
-
vec< 2, i64, highp > highp_i64vec2
High qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:293
-
mat< 4, 4, f32, mediump > mediump_f32mat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:546
-
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
-
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
-
vec< 1, f32, mediump > mediump_f32vec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:451
-
mat< 3, 4, f32, mediump > mediump_f32mat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:685
-
mat< 2, 2, f32, highp > highp_fmat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:532
-
vec< 3, f32, highp > highp_f32vec3
High single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:458
-
vec< 4, i8, mediump > mediump_i8vec4
Medium qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:230
-
float lowp_float32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:152
-
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
-
vec< 4, float, mediump > mediump_fvec4
Medium Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:434
-
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
-
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
-
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
-
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
-
qua< f64, lowp > lowp_f64quat
Low double-qualifier floating-point quaternion.
Definition: fwd.hpp:812
-
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
-
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
-
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
-
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
-
mat< 2, 2, f32, lowp > lowp_fmat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:630
-
vec< 4, i8, highp > highp_i8vec4
High qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:235
-
vec< 4, u64, lowp > lowp_u64vec4
Low qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:387
-
vec< 2, i64, mediump > mediump_i64vec2
Medium qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:288
-
mat< 4, 2, f64, highp > highp_f64mat4x2
High double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:776
-
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
-
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
-
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
-
vec< 2, i32, lowp > lowp_i32vec2
Low qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:263
-
qua< f64, highp > highp_f64quat
High double-qualifier floating-point quaternion.
Definition: fwd.hpp:814
-
vec< 2, f64, mediump > mediump_f64vec2
Medium double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:492
-
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
-
vec< 1, float, lowp > lowp_fvec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:426
-
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
-
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
-
vec< 1, u64, mediump > mediump_u64vec1
Medium qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:389
-
mat< 2, 2, f32, mediump > mediump_f32mat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:544
-
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
-
Definition: common.hpp:20
-
double mediump_f64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:164
-
vec< 1, float, mediump > mediump_fvec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:431
-
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
-
vec< 4, u8, highp > highp_u8vec4
High qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:337
-
- - - - + + + + + + +0.9.9 API documentation: type_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../gtc/quaternion.hpp"
+
18 #include "../gtc/vec1.hpp"
+
19 #include "../ext/scalar_int_sized.hpp"
+
20 #include "../ext/scalar_uint_sized.hpp"
+
21 #include "../detail/type_vec2.hpp"
+
22 #include "../detail/type_vec3.hpp"
+
23 #include "../detail/type_vec4.hpp"
+
24 #include "../detail/type_mat2x2.hpp"
+
25 #include "../detail/type_mat2x3.hpp"
+
26 #include "../detail/type_mat2x4.hpp"
+
27 #include "../detail/type_mat3x2.hpp"
+
28 #include "../detail/type_mat3x3.hpp"
+
29 #include "../detail/type_mat3x4.hpp"
+
30 #include "../detail/type_mat4x2.hpp"
+
31 #include "../detail/type_mat4x3.hpp"
+
32 #include "../detail/type_mat4x4.hpp"
+
33 
+
34 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
35 # pragma message("GLM: GLM_GTC_type_precision extension included")
+
36 #endif
+
37 
+
38 namespace glm
+
39 {
+
41  // Signed int vector types
+
42 
+
45 
+
48  typedef detail::int8 lowp_int8;
+
49 
+
52  typedef detail::int16 lowp_int16;
+
53 
+
56  typedef detail::int32 lowp_int32;
+
57 
+
60  typedef detail::int64 lowp_int64;
+
61 
+
64  typedef detail::int8 lowp_int8_t;
+
65 
+
68  typedef detail::int16 lowp_int16_t;
+
69 
+
72  typedef detail::int32 lowp_int32_t;
+
73 
+ +
77 
+
80  typedef detail::int8 lowp_i8;
+
81 
+
84  typedef detail::int16 lowp_i16;
+
85 
+
88  typedef detail::int32 lowp_i32;
+
89 
+
92  typedef detail::int64 lowp_i64;
+
93 
+
96  typedef detail::int8 mediump_int8;
+
97 
+
100  typedef detail::int16 mediump_int16;
+
101 
+
104  typedef detail::int32 mediump_int32;
+
105 
+ +
109 
+
112  typedef detail::int8 mediump_int8_t;
+
113 
+
116  typedef detail::int16 mediump_int16_t;
+
117 
+
120  typedef detail::int32 mediump_int32_t;
+
121 
+ +
125 
+
128  typedef detail::int8 mediump_i8;
+
129 
+
132  typedef detail::int16 mediump_i16;
+
133 
+
136  typedef detail::int32 mediump_i32;
+
137 
+
140  typedef detail::int64 mediump_i64;
+
141 
+
144  typedef detail::int8 highp_int8;
+
145 
+
148  typedef detail::int16 highp_int16;
+
149 
+
152  typedef detail::int32 highp_int32;
+
153 
+
156  typedef detail::int64 highp_int64;
+
157 
+
160  typedef detail::int8 highp_int8_t;
+
161 
+
164  typedef detail::int16 highp_int16_t;
+
165 
+
168  typedef detail::int32 highp_int32_t;
+
169 
+ +
173 
+
176  typedef detail::int8 highp_i8;
+
177 
+
180  typedef detail::int16 highp_i16;
+
181 
+
184  typedef detail::int32 highp_i32;
+
185 
+
188  typedef detail::int64 highp_i64;
+
189 
+
190 
+
191 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
192  using std::int8_t;
+
193  using std::int16_t;
+
194  using std::int32_t;
+
195  using std::int64_t;
+
196 #else
+
197  typedef detail::int8 int8_t;
+
200 
+
203  typedef detail::int16 int16_t;
+
204 
+
207  typedef detail::int32 int32_t;
+
208 
+
211  typedef detail::int64 int64_t;
+
212 #endif
+
213 
+
216  typedef detail::int8 i8;
+
217 
+
220  typedef detail::int16 i16;
+
221 
+
224  typedef detail::int32 i32;
+
225 
+
228  typedef detail::int64 i64;
+
229 
+
230 
+
231 
+
234  typedef vec<1, i8, lowp> lowp_i8vec1;
+
235 
+
238  typedef vec<2, i8, lowp> lowp_i8vec2;
+
239 
+
242  typedef vec<3, i8, lowp> lowp_i8vec3;
+
243 
+
246  typedef vec<4, i8, lowp> lowp_i8vec4;
+
247 
+
248 
+
251  typedef vec<1, i8, mediump> mediump_i8vec1;
+
252 
+
255  typedef vec<2, i8, mediump> mediump_i8vec2;
+
256 
+
259  typedef vec<3, i8, mediump> mediump_i8vec3;
+
260 
+
263  typedef vec<4, i8, mediump> mediump_i8vec4;
+
264 
+
265 
+
268  typedef vec<1, i8, highp> highp_i8vec1;
+
269 
+
272  typedef vec<2, i8, highp> highp_i8vec2;
+
273 
+
276  typedef vec<3, i8, highp> highp_i8vec3;
+
277 
+
280  typedef vec<4, i8, highp> highp_i8vec4;
+
281 
+
282 
+
283 
+
286  typedef vec<1, i8, defaultp> i8vec1;
+
287 
+
290  typedef vec<2, i8, defaultp> i8vec2;
+
291 
+
294  typedef vec<3, i8, defaultp> i8vec3;
+
295 
+
298  typedef vec<4, i8, defaultp> i8vec4;
+
299 
+
300 
+
301 
+
302 
+
303 
+
306  typedef vec<1, i16, lowp> lowp_i16vec1;
+
307 
+
310  typedef vec<2, i16, lowp> lowp_i16vec2;
+
311 
+
314  typedef vec<3, i16, lowp> lowp_i16vec3;
+
315 
+
318  typedef vec<4, i16, lowp> lowp_i16vec4;
+
319 
+
320 
+
323  typedef vec<1, i16, mediump> mediump_i16vec1;
+
324 
+
327  typedef vec<2, i16, mediump> mediump_i16vec2;
+
328 
+
331  typedef vec<3, i16, mediump> mediump_i16vec3;
+
332 
+
335  typedef vec<4, i16, mediump> mediump_i16vec4;
+
336 
+
337 
+
340  typedef vec<1, i16, highp> highp_i16vec1;
+
341 
+
344  typedef vec<2, i16, highp> highp_i16vec2;
+
345 
+
348  typedef vec<3, i16, highp> highp_i16vec3;
+
349 
+
352  typedef vec<4, i16, highp> highp_i16vec4;
+
353 
+
354 
+
355 
+
356 
+
359  typedef vec<1, i16, defaultp> i16vec1;
+
360 
+
363  typedef vec<2, i16, defaultp> i16vec2;
+
364 
+
367  typedef vec<3, i16, defaultp> i16vec3;
+
368 
+
371  typedef vec<4, i16, defaultp> i16vec4;
+
372 
+
373 
+
374 
+
377  typedef vec<1, i32, lowp> lowp_i32vec1;
+
378 
+
381  typedef vec<2, i32, lowp> lowp_i32vec2;
+
382 
+
385  typedef vec<3, i32, lowp> lowp_i32vec3;
+
386 
+
389  typedef vec<4, i32, lowp> lowp_i32vec4;
+
390 
+
391 
+
394  typedef vec<1, i32, mediump> mediump_i32vec1;
+
395 
+
398  typedef vec<2, i32, mediump> mediump_i32vec2;
+
399 
+
402  typedef vec<3, i32, mediump> mediump_i32vec3;
+
403 
+
406  typedef vec<4, i32, mediump> mediump_i32vec4;
+
407 
+
408 
+
411  typedef vec<1, i32, highp> highp_i32vec1;
+
412 
+
415  typedef vec<2, i32, highp> highp_i32vec2;
+
416 
+
419  typedef vec<3, i32, highp> highp_i32vec3;
+
420 
+
423  typedef vec<4, i32, highp> highp_i32vec4;
+
424 
+
425 
+
428  typedef vec<1, i32, defaultp> i32vec1;
+
429 
+
432  typedef vec<2, i32, defaultp> i32vec2;
+
433 
+
436  typedef vec<3, i32, defaultp> i32vec3;
+
437 
+
440  typedef vec<4, i32, defaultp> i32vec4;
+
441 
+
442 
+
443 
+
444 
+
447  typedef vec<1, i64, lowp> lowp_i64vec1;
+
448 
+
451  typedef vec<2, i64, lowp> lowp_i64vec2;
+
452 
+
455  typedef vec<3, i64, lowp> lowp_i64vec3;
+
456 
+
459  typedef vec<4, i64, lowp> lowp_i64vec4;
+
460 
+
461 
+
464  typedef vec<1, i64, mediump> mediump_i64vec1;
+
465 
+
468  typedef vec<2, i64, mediump> mediump_i64vec2;
+
469 
+
472  typedef vec<3, i64, mediump> mediump_i64vec3;
+
473 
+
476  typedef vec<4, i64, mediump> mediump_i64vec4;
+
477 
+
478 
+
481  typedef vec<1, i64, highp> highp_i64vec1;
+
482 
+
485  typedef vec<2, i64, highp> highp_i64vec2;
+
486 
+
489  typedef vec<3, i64, highp> highp_i64vec3;
+
490 
+
493  typedef vec<4, i64, highp> highp_i64vec4;
+
494 
+
495 
+
498  typedef vec<1, i64, defaultp> i64vec1;
+
499 
+
502  typedef vec<2, i64, defaultp> i64vec2;
+
503 
+
506  typedef vec<3, i64, defaultp> i64vec3;
+
507 
+
510  typedef vec<4, i64, defaultp> i64vec4;
+
511 
+
512 
+
514  // Unsigned int vector types
+
515 
+
518  typedef detail::uint8 lowp_uint8;
+
519 
+
522  typedef detail::uint16 lowp_uint16;
+
523 
+
526  typedef detail::uint32 lowp_uint32;
+
527 
+
530  typedef detail::uint64 lowp_uint64;
+
531 
+
534  typedef detail::uint8 lowp_uint8_t;
+
535 
+
538  typedef detail::uint16 lowp_uint16_t;
+
539 
+
542  typedef detail::uint32 lowp_uint32_t;
+
543 
+ +
547 
+
550  typedef detail::uint8 lowp_u8;
+
551 
+
554  typedef detail::uint16 lowp_u16;
+
555 
+
558  typedef detail::uint32 lowp_u32;
+
559 
+
562  typedef detail::uint64 lowp_u64;
+
563 
+
566  typedef detail::uint8 mediump_uint8;
+
567 
+
570  typedef detail::uint16 mediump_uint16;
+
571 
+
574  typedef detail::uint32 mediump_uint32;
+
575 
+ +
579 
+
582  typedef detail::uint8 mediump_uint8_t;
+
583 
+
586  typedef detail::uint16 mediump_uint16_t;
+
587 
+
590  typedef detail::uint32 mediump_uint32_t;
+
591 
+ +
595 
+
598  typedef detail::uint8 mediump_u8;
+
599 
+
602  typedef detail::uint16 mediump_u16;
+
603 
+
606  typedef detail::uint32 mediump_u32;
+
607 
+
610  typedef detail::uint64 mediump_u64;
+
611 
+
614  typedef detail::uint8 highp_uint8;
+
615 
+
618  typedef detail::uint16 highp_uint16;
+
619 
+
622  typedef detail::uint32 highp_uint32;
+
623 
+ +
627 
+
630  typedef detail::uint8 highp_uint8_t;
+
631 
+
634  typedef detail::uint16 highp_uint16_t;
+
635 
+
638  typedef detail::uint32 highp_uint32_t;
+
639 
+ +
643 
+
646  typedef detail::uint8 highp_u8;
+
647 
+
650  typedef detail::uint16 highp_u16;
+
651 
+
654  typedef detail::uint32 highp_u32;
+
655 
+
658  typedef detail::uint64 highp_u64;
+
659 
+
660 #if GLM_HAS_EXTENDED_INTEGER_TYPE
+
661  using std::uint8_t;
+
662  using std::uint16_t;
+
663  using std::uint32_t;
+
664  using std::uint64_t;
+
665 #else
+
666  typedef detail::uint8 uint8_t;
+
669 
+
672  typedef detail::uint16 uint16_t;
+
673 
+
676  typedef detail::uint32 uint32_t;
+
677 
+
680  typedef detail::uint64 uint64_t;
+
681 #endif
+
682 
+
685  typedef detail::uint8 u8;
+
686 
+
689  typedef detail::uint16 u16;
+
690 
+
693  typedef detail::uint32 u32;
+
694 
+
697  typedef detail::uint64 u64;
+
698 
+
699 
+
700 
+
701 
+
702 
+
704  // Float vector types
+
705 
+
708  typedef float float32;
+
709 
+
712  typedef double float64;
+
713 
+
716  typedef float32 lowp_float32;
+
717 
+
720  typedef float64 lowp_float64;
+
721 
+
724  typedef float32 lowp_float32_t;
+
725 
+
728  typedef float64 lowp_float64_t;
+
729 
+
732  typedef float32 lowp_f32;
+
733 
+
736  typedef float64 lowp_f64;
+
737 
+
740  typedef float32 lowp_float32;
+
741 
+
744  typedef float64 lowp_float64;
+
745 
+
748  typedef float32 lowp_float32_t;
+
749 
+
752  typedef float64 lowp_float64_t;
+
753 
+
756  typedef float32 lowp_f32;
+
757 
+
760  typedef float64 lowp_f64;
+
761 
+
762 
+
765  typedef float32 lowp_float32;
+
766 
+
769  typedef float64 lowp_float64;
+
770 
+
773  typedef float32 lowp_float32_t;
+
774 
+
777  typedef float64 lowp_float64_t;
+
778 
+
781  typedef float32 lowp_f32;
+
782 
+
785  typedef float64 lowp_f64;
+
786 
+
787 
+
790  typedef float32 mediump_float32;
+
791 
+
794  typedef float64 mediump_float64;
+
795 
+
798  typedef float32 mediump_float32_t;
+
799 
+
802  typedef float64 mediump_float64_t;
+
803 
+
806  typedef float32 mediump_f32;
+
807 
+
810  typedef float64 mediump_f64;
+
811 
+
812 
+
815  typedef float32 highp_float32;
+
816 
+
819  typedef float64 highp_float64;
+
820 
+
823  typedef float32 highp_float32_t;
+
824 
+
827  typedef float64 highp_float64_t;
+
828 
+
831  typedef float32 highp_f32;
+
832 
+
835  typedef float64 highp_f64;
+
836 
+
837 
+
838 #if(defined(GLM_PRECISION_LOWP_FLOAT))
+
839  typedef lowp_float32_t float32_t;
+
842 
+
845  typedef lowp_float64_t float64_t;
+
846 
+
849  typedef lowp_f32 f32;
+
850 
+
853  typedef lowp_f64 f64;
+
854 
+
855 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
+
856  typedef mediump_float32 float32_t;
+
859 
+
862  typedef mediump_float64 float64_t;
+
863 
+
866  typedef mediump_float32 f32;
+
867 
+
870  typedef mediump_float64 f64;
+
871 
+
872 #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
+
873 
+
876  typedef highp_float32_t float32_t;
+
877 
+
880  typedef highp_float64_t float64_t;
+
881 
+
884  typedef highp_float32_t f32;
+
885 
+
888  typedef highp_float64_t f64;
+
889 #endif
+
890 
+
891 
+
894  typedef vec<1, float, lowp> lowp_fvec1;
+
895 
+
898  typedef vec<2, float, lowp> lowp_fvec2;
+
899 
+
902  typedef vec<3, float, lowp> lowp_fvec3;
+
903 
+
906  typedef vec<4, float, lowp> lowp_fvec4;
+
907 
+
908 
+
911  typedef vec<1, float, mediump> mediump_fvec1;
+
912 
+
915  typedef vec<2, float, mediump> mediump_fvec2;
+
916 
+
919  typedef vec<3, float, mediump> mediump_fvec3;
+
920 
+
923  typedef vec<4, float, mediump> mediump_fvec4;
+
924 
+
925 
+
928  typedef vec<1, float, highp> highp_fvec1;
+
929 
+
932  typedef vec<2, float, highp> highp_fvec2;
+
933 
+
936  typedef vec<3, float, highp> highp_fvec3;
+
937 
+
940  typedef vec<4, float, highp> highp_fvec4;
+
941 
+
942 
+
945  typedef vec<1, f32, lowp> lowp_f32vec1;
+
946 
+
949  typedef vec<2, f32, lowp> lowp_f32vec2;
+
950 
+
953  typedef vec<3, f32, lowp> lowp_f32vec3;
+
954 
+
957  typedef vec<4, f32, lowp> lowp_f32vec4;
+
958 
+
961  typedef vec<1, f32, mediump> mediump_f32vec1;
+
962 
+
965  typedef vec<2, f32, mediump> mediump_f32vec2;
+
966 
+
969  typedef vec<3, f32, mediump> mediump_f32vec3;
+
970 
+
973  typedef vec<4, f32, mediump> mediump_f32vec4;
+
974 
+
977  typedef vec<1, f32, highp> highp_f32vec1;
+
978 
+
981  typedef vec<2, f32, highp> highp_f32vec2;
+
982 
+
985  typedef vec<3, f32, highp> highp_f32vec3;
+
986 
+
989  typedef vec<4, f32, highp> highp_f32vec4;
+
990 
+
991 
+
994  typedef vec<1, f64, lowp> lowp_f64vec1;
+
995 
+
998  typedef vec<2, f64, lowp> lowp_f64vec2;
+
999 
+
1002  typedef vec<3, f64, lowp> lowp_f64vec3;
+
1003 
+
1006  typedef vec<4, f64, lowp> lowp_f64vec4;
+
1007 
+
1010  typedef vec<1, f64, mediump> mediump_f64vec1;
+
1011 
+
1014  typedef vec<2, f64, mediump> mediump_f64vec2;
+
1015 
+
1018  typedef vec<3, f64, mediump> mediump_f64vec3;
+
1019 
+
1022  typedef vec<4, f64, mediump> mediump_f64vec4;
+
1023 
+
1026  typedef vec<1, f64, highp> highp_f64vec1;
+
1027 
+
1030  typedef vec<2, f64, highp> highp_f64vec2;
+
1031 
+
1034  typedef vec<3, f64, highp> highp_f64vec3;
+
1035 
+
1038  typedef vec<4, f64, highp> highp_f64vec4;
+
1039 
+
1040 
+
1041 
+
1043  // Float matrix types
+
1044 
+
1047  //typedef lowp_f32 lowp_fmat1x1;
+
1048 
+
1051  typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
+
1052 
+
1055  typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
+
1056 
+
1059  typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
+
1060 
+
1063  typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
+
1064 
+
1067  typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
+
1068 
+
1071  typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
+
1072 
+
1075  typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
+
1076 
+
1079  typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
+
1080 
+
1083  typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
+
1084 
+
1087  //typedef lowp_fmat1x1 lowp_fmat1;
+
1088 
+
1091  typedef lowp_fmat2x2 lowp_fmat2;
+
1092 
+
1095  typedef lowp_fmat3x3 lowp_fmat3;
+
1096 
+
1099  typedef lowp_fmat4x4 lowp_fmat4;
+
1100 
+
1101 
+
1104  //typedef mediump_f32 mediump_fmat1x1;
+
1105 
+
1108  typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
+
1109 
+
1112  typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
+
1113 
+
1116  typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
+
1117 
+
1120  typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
+
1121 
+
1124  typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
+
1125 
+
1128  typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
+
1129 
+
1132  typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
+
1133 
+
1136  typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
+
1137 
+
1140  typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
+
1141 
+
1144  //typedef mediump_fmat1x1 mediump_fmat1;
+
1145 
+
1148  typedef mediump_fmat2x2 mediump_fmat2;
+
1149 
+
1152  typedef mediump_fmat3x3 mediump_fmat3;
+
1153 
+
1156  typedef mediump_fmat4x4 mediump_fmat4;
+
1157 
+
1158 
+
1161  //typedef highp_f32 highp_fmat1x1;
+
1162 
+
1165  typedef mat<2, 2, f32, highp> highp_fmat2x2;
+
1166 
+
1169  typedef mat<2, 3, f32, highp> highp_fmat2x3;
+
1170 
+
1173  typedef mat<2, 4, f32, highp> highp_fmat2x4;
+
1174 
+
1177  typedef mat<3, 2, f32, highp> highp_fmat3x2;
+
1178 
+
1181  typedef mat<3, 3, f32, highp> highp_fmat3x3;
+
1182 
+
1185  typedef mat<3, 4, f32, highp> highp_fmat3x4;
+
1186 
+
1189  typedef mat<4, 2, f32, highp> highp_fmat4x2;
+
1190 
+
1193  typedef mat<4, 3, f32, highp> highp_fmat4x3;
+
1194 
+
1197  typedef mat<4, 4, f32, highp> highp_fmat4x4;
+
1198 
+
1201  //typedef highp_fmat1x1 highp_fmat1;
+
1202 
+
1205  typedef highp_fmat2x2 highp_fmat2;
+
1206 
+
1209  typedef highp_fmat3x3 highp_fmat3;
+
1210 
+
1213  typedef highp_fmat4x4 highp_fmat4;
+
1214 
+
1215 
+
1218  //typedef f32 lowp_f32mat1x1;
+
1219 
+
1222  typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
+
1223 
+
1226  typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
+
1227 
+
1230  typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
+
1231 
+
1234  typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
+
1235 
+
1238  typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
+
1239 
+
1242  typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
+
1243 
+
1246  typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
+
1247 
+
1250  typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
+
1251 
+
1254  typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
+
1255 
+
1258  //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
+
1259 
+
1262  typedef lowp_f32mat2x2 lowp_f32mat2;
+
1263 
+
1266  typedef lowp_f32mat3x3 lowp_f32mat3;
+
1267 
+
1270  typedef lowp_f32mat4x4 lowp_f32mat4;
+
1271 
+
1272 
+
1275  //typedef f32 mediump_f32mat1x1;
+
1276 
+
1279  typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
+
1280 
+
1283  typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
+
1284 
+
1287  typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
+
1288 
+
1291  typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
+
1292 
+
1295  typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
+
1296 
+
1299  typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
+
1300 
+
1303  typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
+
1304 
+
1307  typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
+
1308 
+
1311  typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
+
1312 
+
1315  //typedef detail::tmat1x1<f32, mediump> f32mat1;
+
1316 
+
1319  typedef mediump_f32mat2x2 mediump_f32mat2;
+
1320 
+
1323  typedef mediump_f32mat3x3 mediump_f32mat3;
+
1324 
+
1327  typedef mediump_f32mat4x4 mediump_f32mat4;
+
1328 
+
1329 
+
1332  //typedef f32 highp_f32mat1x1;
+
1333 
+
1336  typedef mat<2, 2, f32, highp> highp_f32mat2x2;
+
1337 
+
1340  typedef mat<2, 3, f32, highp> highp_f32mat2x3;
+
1341 
+
1344  typedef mat<2, 4, f32, highp> highp_f32mat2x4;
+
1345 
+
1348  typedef mat<3, 2, f32, highp> highp_f32mat3x2;
+
1349 
+
1352  typedef mat<3, 3, f32, highp> highp_f32mat3x3;
+
1353 
+
1356  typedef mat<3, 4, f32, highp> highp_f32mat3x4;
+
1357 
+
1360  typedef mat<4, 2, f32, highp> highp_f32mat4x2;
+
1361 
+
1364  typedef mat<4, 3, f32, highp> highp_f32mat4x3;
+
1365 
+
1368  typedef mat<4, 4, f32, highp> highp_f32mat4x4;
+
1369 
+
1372  //typedef detail::tmat1x1<f32, highp> f32mat1;
+
1373 
+
1376  typedef highp_f32mat2x2 highp_f32mat2;
+
1377 
+
1380  typedef highp_f32mat3x3 highp_f32mat3;
+
1381 
+
1384  typedef highp_f32mat4x4 highp_f32mat4;
+
1385 
+
1386 
+
1389  //typedef f64 lowp_f64mat1x1;
+
1390 
+
1393  typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
+
1394 
+
1397  typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
+
1398 
+
1401  typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
+
1402 
+
1405  typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
+
1406 
+
1409  typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
+
1410 
+
1413  typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
+
1414 
+
1417  typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
+
1418 
+
1421  typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
+
1422 
+
1425  typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
+
1426 
+
1429  //typedef lowp_f64mat1x1 lowp_f64mat1;
+
1430 
+
1433  typedef lowp_f64mat2x2 lowp_f64mat2;
+
1434 
+
1437  typedef lowp_f64mat3x3 lowp_f64mat3;
+
1438 
+
1441  typedef lowp_f64mat4x4 lowp_f64mat4;
+
1442 
+
1443 
+
1446  //typedef f64 Highp_f64mat1x1;
+
1447 
+
1450  typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
+
1451 
+
1454  typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
+
1455 
+
1458  typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
+
1459 
+
1462  typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
+
1463 
+
1466  typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
+
1467 
+
1470  typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
+
1471 
+
1474  typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
+
1475 
+
1478  typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
+
1479 
+
1482  typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
+
1483 
+
1486  //typedef mediump_f64mat1x1 mediump_f64mat1;
+
1487 
+
1490  typedef mediump_f64mat2x2 mediump_f64mat2;
+
1491 
+
1494  typedef mediump_f64mat3x3 mediump_f64mat3;
+
1495 
+
1498  typedef mediump_f64mat4x4 mediump_f64mat4;
+
1499 
+
1502  //typedef f64 highp_f64mat1x1;
+
1503 
+
1506  typedef mat<2, 2, f64, highp> highp_f64mat2x2;
+
1507 
+
1510  typedef mat<2, 3, f64, highp> highp_f64mat2x3;
+
1511 
+
1514  typedef mat<2, 4, f64, highp> highp_f64mat2x4;
+
1515 
+
1518  typedef mat<3, 2, f64, highp> highp_f64mat3x2;
+
1519 
+
1522  typedef mat<3, 3, f64, highp> highp_f64mat3x3;
+
1523 
+
1526  typedef mat<3, 4, f64, highp> highp_f64mat3x4;
+
1527 
+
1530  typedef mat<4, 2, f64, highp> highp_f64mat4x2;
+
1531 
+
1534  typedef mat<4, 3, f64, highp> highp_f64mat4x3;
+
1535 
+
1538  typedef mat<4, 4, f64, highp> highp_f64mat4x4;
+
1539 
+
1542  //typedef highp_f64mat1x1 highp_f64mat1;
+
1543 
+
1546  typedef highp_f64mat2x2 highp_f64mat2;
+
1547 
+
1550  typedef highp_f64mat3x3 highp_f64mat3;
+
1551 
+
1554  typedef highp_f64mat4x4 highp_f64mat4;
+
1555 
+
1556 
+
1557 
+
1558 
+
1561  typedef vec<1, u8, lowp> lowp_u8vec1;
+
1562 
+
1565  typedef vec<2, u8, lowp> lowp_u8vec2;
+
1566 
+
1569  typedef vec<3, u8, lowp> lowp_u8vec3;
+
1570 
+
1573  typedef vec<4, u8, lowp> lowp_u8vec4;
+
1574 
+
1575 
+
1578  typedef vec<1, u8, mediump> mediump_u8vec1;
+
1579 
+
1582  typedef vec<2, u8, mediump> mediump_u8vec2;
+
1583 
+
1586  typedef vec<3, u8, mediump> mediump_u8vec3;
+
1587 
+
1590  typedef vec<4, u8, mediump> mediump_u8vec4;
+
1591 
+
1592 
+
1595  typedef vec<1, u8, highp> highp_u8vec1;
+
1596 
+
1599  typedef vec<2, u8, highp> highp_u8vec2;
+
1600 
+
1603  typedef vec<3, u8, highp> highp_u8vec3;
+
1604 
+
1607  typedef vec<4, u8, highp> highp_u8vec4;
+
1608 
+
1609 
+
1610 
+
1613  typedef vec<1, u8, defaultp> u8vec1;
+
1614 
+
1617  typedef vec<2, u8, defaultp> u8vec2;
+
1618 
+
1621  typedef vec<3, u8, defaultp> u8vec3;
+
1622 
+
1625  typedef vec<4, u8, defaultp> u8vec4;
+
1626 
+
1627 
+
1628 
+
1629 
+
1632  typedef vec<1, u16, lowp> lowp_u16vec1;
+
1633 
+
1636  typedef vec<2, u16, lowp> lowp_u16vec2;
+
1637 
+
1640  typedef vec<3, u16, lowp> lowp_u16vec3;
+
1641 
+
1644  typedef vec<4, u16, lowp> lowp_u16vec4;
+
1645 
+
1646 
+
1649  typedef vec<1, u16, mediump> mediump_u16vec1;
+
1650 
+
1653  typedef vec<2, u16, mediump> mediump_u16vec2;
+
1654 
+
1657  typedef vec<3, u16, mediump> mediump_u16vec3;
+
1658 
+
1661  typedef vec<4, u16, mediump> mediump_u16vec4;
+
1662 
+
1663 
+
1666  typedef vec<1, u16, highp> highp_u16vec1;
+
1667 
+
1670  typedef vec<2, u16, highp> highp_u16vec2;
+
1671 
+
1674  typedef vec<3, u16, highp> highp_u16vec3;
+
1675 
+
1678  typedef vec<4, u16, highp> highp_u16vec4;
+
1679 
+
1680 
+
1681 
+
1682 
+
1685  typedef vec<1, u16, defaultp> u16vec1;
+
1686 
+
1689  typedef vec<2, u16, defaultp> u16vec2;
+
1690 
+
1693  typedef vec<3, u16, defaultp> u16vec3;
+
1694 
+
1697  typedef vec<4, u16, defaultp> u16vec4;
+
1698 
+
1699 
+
1700 
+
1703  typedef vec<1, u32, lowp> lowp_u32vec1;
+
1704 
+
1707  typedef vec<2, u32, lowp> lowp_u32vec2;
+
1708 
+
1711  typedef vec<3, u32, lowp> lowp_u32vec3;
+
1712 
+
1715  typedef vec<4, u32, lowp> lowp_u32vec4;
+
1716 
+
1717 
+
1720  typedef vec<1, u32, mediump> mediump_u32vec1;
+
1721 
+
1724  typedef vec<2, u32, mediump> mediump_u32vec2;
+
1725 
+
1728  typedef vec<3, u32, mediump> mediump_u32vec3;
+
1729 
+
1732  typedef vec<4, u32, mediump> mediump_u32vec4;
+
1733 
+
1734 
+
1737  typedef vec<1, u32, highp> highp_u32vec1;
+
1738 
+
1741  typedef vec<2, u32, highp> highp_u32vec2;
+
1742 
+
1745  typedef vec<3, u32, highp> highp_u32vec3;
+
1746 
+
1749  typedef vec<4, u32, highp> highp_u32vec4;
+
1750 
+
1751 
+
1752 
+
1755  typedef vec<1, u32, defaultp> u32vec1;
+
1756 
+
1759  typedef vec<2, u32, defaultp> u32vec2;
+
1760 
+
1763  typedef vec<3, u32, defaultp> u32vec3;
+
1764 
+
1767  typedef vec<4, u32, defaultp> u32vec4;
+
1768 
+
1769 
+
1770 
+
1771 
+
1774  typedef vec<1, u64, lowp> lowp_u64vec1;
+
1775 
+
1778  typedef vec<2, u64, lowp> lowp_u64vec2;
+
1779 
+
1782  typedef vec<3, u64, lowp> lowp_u64vec3;
+
1783 
+
1786  typedef vec<4, u64, lowp> lowp_u64vec4;
+
1787 
+
1788 
+
1791  typedef vec<1, u64, mediump> mediump_u64vec1;
+
1792 
+
1795  typedef vec<2, u64, mediump> mediump_u64vec2;
+
1796 
+
1799  typedef vec<3, u64, mediump> mediump_u64vec3;
+
1800 
+
1803  typedef vec<4, u64, mediump> mediump_u64vec4;
+
1804 
+
1805 
+
1808  typedef vec<1, u64, highp> highp_u64vec1;
+
1809 
+
1812  typedef vec<2, u64, highp> highp_u64vec2;
+
1813 
+
1816  typedef vec<3, u64, highp> highp_u64vec3;
+
1817 
+
1820  typedef vec<4, u64, highp> highp_u64vec4;
+
1821 
+
1822 
+
1823 
+
1824 
+
1827  typedef vec<1, u64, defaultp> u64vec1;
+
1828 
+
1831  typedef vec<2, u64, defaultp> u64vec2;
+
1832 
+
1835  typedef vec<3, u64, defaultp> u64vec3;
+
1836 
+
1839  typedef vec<4, u64, defaultp> u64vec4;
+
1840 
+
1841 
+
1843  // Float vector types
+
1844 
+
1847  typedef float32 float32_t;
+
1848 
+
1851  typedef float32 f32;
+
1852 
+
1853 # ifndef GLM_FORCE_SINGLE_ONLY
+
1854 
+
1857  typedef float64 float64_t;
+
1858 
+
1861  typedef float64 f64;
+
1862 # endif//GLM_FORCE_SINGLE_ONLY
+
1863 
+
1866  typedef vec<1, float, defaultp> fvec1;
+
1867 
+
1870  typedef vec<2, float, defaultp> fvec2;
+
1871 
+
1874  typedef vec<3, float, defaultp> fvec3;
+
1875 
+
1878  typedef vec<4, float, defaultp> fvec4;
+
1879 
+
1880 
+
1883  typedef vec<1, f32, defaultp> f32vec1;
+
1884 
+
1887  typedef vec<2, f32, defaultp> f32vec2;
+
1888 
+
1891  typedef vec<3, f32, defaultp> f32vec3;
+
1892 
+
1895  typedef vec<4, f32, defaultp> f32vec4;
+
1896 
+
1897 # ifndef GLM_FORCE_SINGLE_ONLY
+
1898  typedef vec<1, f64, defaultp> f64vec1;
+
1901 
+
1904  typedef vec<2, f64, defaultp> f64vec2;
+
1905 
+
1908  typedef vec<3, f64, defaultp> f64vec3;
+
1909 
+
1912  typedef vec<4, f64, defaultp> f64vec4;
+
1913 # endif//GLM_FORCE_SINGLE_ONLY
+
1914 
+
1915 
+
1917  // Float matrix types
+
1918 
+
1921  //typedef detail::tmat1x1<f32> fmat1;
+
1922 
+
1925  typedef mat<2, 2, f32, defaultp> fmat2;
+
1926 
+
1929  typedef mat<3, 3, f32, defaultp> fmat3;
+
1930 
+
1933  typedef mat<4, 4, f32, defaultp> fmat4;
+
1934 
+
1935 
+
1938  //typedef f32 fmat1x1;
+
1939 
+
1942  typedef mat<2, 2, f32, defaultp> fmat2x2;
+
1943 
+
1946  typedef mat<2, 3, f32, defaultp> fmat2x3;
+
1947 
+
1950  typedef mat<2, 4, f32, defaultp> fmat2x4;
+
1951 
+
1954  typedef mat<3, 2, f32, defaultp> fmat3x2;
+
1955 
+
1958  typedef mat<3, 3, f32, defaultp> fmat3x3;
+
1959 
+
1962  typedef mat<3, 4, f32, defaultp> fmat3x4;
+
1963 
+
1966  typedef mat<4, 2, f32, defaultp> fmat4x2;
+
1967 
+
1970  typedef mat<4, 3, f32, defaultp> fmat4x3;
+
1971 
+
1974  typedef mat<4, 4, f32, defaultp> fmat4x4;
+
1975 
+
1976 
+
1979  //typedef detail::tmat1x1<f32, defaultp> f32mat1;
+
1980 
+
1983  typedef mat<2, 2, f32, defaultp> f32mat2;
+
1984 
+
1987  typedef mat<3, 3, f32, defaultp> f32mat3;
+
1988 
+
1991  typedef mat<4, 4, f32, defaultp> f32mat4;
+
1992 
+
1993 
+
1996  //typedef f32 f32mat1x1;
+
1997 
+
2000  typedef mat<2, 2, f32, defaultp> f32mat2x2;
+
2001 
+
2004  typedef mat<2, 3, f32, defaultp> f32mat2x3;
+
2005 
+
2008  typedef mat<2, 4, f32, defaultp> f32mat2x4;
+
2009 
+
2012  typedef mat<3, 2, f32, defaultp> f32mat3x2;
+
2013 
+
2016  typedef mat<3, 3, f32, defaultp> f32mat3x3;
+
2017 
+
2020  typedef mat<3, 4, f32, defaultp> f32mat3x4;
+
2021 
+
2024  typedef mat<4, 2, f32, defaultp> f32mat4x2;
+
2025 
+
2028  typedef mat<4, 3, f32, defaultp> f32mat4x3;
+
2029 
+
2032  typedef mat<4, 4, f32, defaultp> f32mat4x4;
+
2033 
+
2034 
+
2035 # ifndef GLM_FORCE_SINGLE_ONLY
+
2036 
+
2039  //typedef detail::tmat1x1<f64, defaultp> f64mat1;
+
2040 
+
2043  typedef mat<2, 2, f64, defaultp> f64mat2;
+
2044 
+
2047  typedef mat<3, 3, f64, defaultp> f64mat3;
+
2048 
+
2051  typedef mat<4, 4, f64, defaultp> f64mat4;
+
2052 
+
2053 
+
2056  //typedef f64 f64mat1x1;
+
2057 
+
2060  typedef mat<2, 2, f64, defaultp> f64mat2x2;
+
2061 
+
2064  typedef mat<2, 3, f64, defaultp> f64mat2x3;
+
2065 
+
2068  typedef mat<2, 4, f64, defaultp> f64mat2x4;
+
2069 
+
2072  typedef mat<3, 2, f64, defaultp> f64mat3x2;
+
2073 
+
2076  typedef mat<3, 3, f64, defaultp> f64mat3x3;
+
2077 
+
2080  typedef mat<3, 4, f64, defaultp> f64mat3x4;
+
2081 
+
2084  typedef mat<4, 2, f64, defaultp> f64mat4x2;
+
2085 
+
2088  typedef mat<4, 3, f64, defaultp> f64mat4x3;
+
2089 
+
2092  typedef mat<4, 4, f64, defaultp> f64mat4x4;
+
2093 
+
2094 # endif//GLM_FORCE_SINGLE_ONLY
+
2095 
+
2097  // Quaternion types
+
2098 
+
2101  typedef qua<f32, defaultp> f32quat;
+
2102 
+
2105  typedef qua<f32, lowp> lowp_f32quat;
+
2106 
+
2109  typedef qua<f64, lowp> lowp_f64quat;
+
2110 
+
2113  typedef qua<f32, mediump> mediump_f32quat;
+
2114 
+
2115 # ifndef GLM_FORCE_SINGLE_ONLY
+
2116 
+
2119  typedef qua<f64, mediump> mediump_f64quat;
+
2120 
+
2123  typedef qua<f32, highp> highp_f32quat;
+
2124 
+
2127  typedef qua<f64, highp> highp_f64quat;
+
2128 
+
2131  typedef qua<f64, defaultp> f64quat;
+
2132 
+
2133 # endif//GLM_FORCE_SINGLE_ONLY
+
2134 
+
2136 }//namespace glm
+
2137 
+
2138 #include "type_precision.inl"
+
vec< 1, u16, highp > highp_u16vec1
High qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:354
+
mat< 4, 2, f32, highp > highp_f32mat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:696
+
uint64 highp_u64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:133
+
vec< 1, f64, mediump > mediump_f64vec1
Medium double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:491
+
vec< 3, f32, defaultp > f32vec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:463
+
mat< 2, 2, f32, mediump > mediump_fmat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:528
+
double highp_float64_t
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:175
+
mat< 4, 4, f64, defaultp > f64mat4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:586
+
mat< 2, 2, f64, defaultp > f64mat2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:584
+
mat< 4, 3, f32, mediump > mediump_fmat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:647
+
mat< 3, 3, f32, mediump > mediump_f32mat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:545
+
uint32 mediump_uint32_t
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:127
+
uint64 lowp_uint64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:136
+
mat< 2, 2, f32, mediump > mediump_fmat2x2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:640
+
vec< 1, f32, defaultp > f32vec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:461
+
mat< 4, 4, f32, highp > highp_f32mat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:550
+
double highp_float64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:170
+
uint8 lowp_u8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:89
+
uint32 u32
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:120
+
mat< 3, 3, f64, defaultp > f64mat3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:585
+
double lowp_float64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:168
+
vec< 1, i32, defaultp > i32vec1
32 bit signed integer scalar type.
Definition: fwd.hpp:277
+
uint16 highp_uint16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:110
+
mat< 2, 4, f64, mediump > mediump_f64mat2x4
Medium double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:762
+
vec< 4, i64, highp > highp_i64vec4
High qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:295
+
mat< 3, 4, f64, defaultp > f64mat3x4
Double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:787
+
mat< 2, 2, f32, defaultp > fmat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:536
+
vec< 3, i16, defaultp > i16vec3
16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:259
+
uint32 lowp_uint32_t
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:126
+
vec< 2, float, lowp > lowp_fvec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:427
+
uint32 mediump_uint32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:123
+
mat< 4, 4, f32, mediump > mediump_fmat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:530
+
uint64 highp_uint64
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:138
+
mat< 2, 2, f32, lowp > lowp_fmat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:524
+
uint32 lowp_uint32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:122
+
vec< 3, float, lowp > lowp_fvec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:428
+
vec< 2, float, mediump > mediump_fvec2
Medium Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:432
+
mat< 3, 4, f32, lowp > lowp_fmat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:635
+
mat< 2, 2, f64, lowp > lowp_f64mat2x2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:750
+
vec< 4, i64, defaultp > i64vec4
64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:300
+
vec< 3, u16, defaultp > u16vec3
Default qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:361
+
vec< 1, u64, lowp > lowp_u64vec1
Low qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:384
+
vec< 1, u16, mediump > mediump_u16vec1
Medium qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:349
+
vec< 2, i8, defaultp > i8vec2
8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:238
+
mat< 2, 3, f64, mediump > mediump_f64mat2x3
Medium double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:761
+
vec< 4, u32, lowp > lowp_u32vec4
Low qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:367
+
vec< 4, f32, highp > highp_f32vec4
High single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:459
+
vec< 1, f32, lowp > lowp_f32vec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:446
+
mat< 2, 3, f32, highp > highp_f32mat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:691
+
int64 highp_int64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:80
+
vec< 2, i32, mediump > mediump_i32vec2
Medium qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:268
+
mat< 4, 4, f64, lowp > lowp_f64mat4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:574
+
mat< 4, 4, f32, defaultp > fmat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:538
+
mat< 3, 4, f32, mediump > mediump_fmat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:645
+
int16 lowp_int16_t
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:54
+
vec< 4, i32, highp > highp_i32vec4
High qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:275
+
mat< 4, 2, f32, defaultp > f32mat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:702
+
mat< 3, 2, f32, highp > highp_fmat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:653
+
mat< 2, 3, f32, mediump > mediump_fmat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:641
+
uint32 mediump_u32
Medium qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:118
+
mat< 3, 2, f32, lowp > lowp_fmat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:633
+
mat< 4, 2, f64, mediump > mediump_f64mat4x2
Medium double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:766
+
vec< 2, u16, highp > highp_u16vec2
High qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:355
+
vec< 1, f64, highp > highp_f64vec1
High double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:496
+
vec< 2, i16, mediump > mediump_i16vec2
Medium qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:248
+
mat< 2, 4, f32, highp > highp_fmat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:652
+
vec< 3, u64, defaultp > u64vec3
Default qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:401
+
uint8 lowp_uint8
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:94
+
mat< 3, 2, f32, lowp > lowp_f32mat3x2
Low single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:673
+
uint64 lowp_u64
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:131
+
vec< 3, i64, highp > highp_i64vec3
High qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:294
+
int8 mediump_int8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:37
+
int64 lowp_int64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:78
+
mat< 4, 2, f32, mediump > mediump_f32mat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:686
+
vec< 3, f64, lowp > lowp_f64vec3
Low double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:488
+
vec< 2, u64, defaultp > u64vec2
Default qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:400
+
vec< 3, i64, lowp > lowp_i64vec3
Low qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:284
+
vec< 2, i8, mediump > mediump_i8vec2
Medium qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:228
+
mat< 3, 4, f32, defaultp > f32mat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:707
+
vec< 3, i16, highp > highp_i16vec3
High qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:254
+
vec< 3, i16, mediump > mediump_i16vec3
Medium qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:249
+
uint64 u64
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:134
+
vec< 1, f64, defaultp > f64vec1
Double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:501
+
mat< 3, 2, f32, mediump > mediump_fmat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:643
+
vec< 1, i64, mediump > mediump_i64vec1
Medium qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:287
+
vec< 1, i16, defaultp > i16vec1
16 bit signed integer scalar type.
Definition: fwd.hpp:257
+
mat< 3, 3, f64, lowp > lowp_f64mat3x3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:754
+
vec< 2, f64, lowp > lowp_f64vec2
Low double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:487
+
mat< 2, 3, f32, highp > highp_fmat2x3
High single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:651
+
mat< 3, 3, f64, lowp > lowp_f64mat3
Low double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:573
+
mat< 4, 3, f32, lowp > lowp_f32mat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:677
+
vec< 3, u64, mediump > mediump_u64vec3
Medium qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:391
+
double mediump_float64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:169
+
double float64
Double-qualifier floating-point scalar.
Definition: fwd.hpp:171
+
vec< 2, i16, highp > highp_i16vec2
High qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:253
+
mat< 4, 2, f32, defaultp > fmat4x2
Single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:662
+
mat< 2, 3, f64, lowp > lowp_f64mat2x3
Low double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:751
+
mat< 3, 4, f32, defaultp > fmat3x4
Single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:667
+
vec< 3, u32, lowp > lowp_u32vec3
Low qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:366
+
mat< 2, 4, f32, defaultp > f32mat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:706
+
vec< 4, float, lowp > lowp_fvec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:429
+
vec< 4, f32, mediump > mediump_f32vec4
Medium single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:454
+
vec< 4, i16, defaultp > i16vec4
16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:260
+
uint8 lowp_uint8_t
Low qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:98
+
uint32 highp_uint32_t
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:128
+
mat< 3, 3, f32, defaultp > fmat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:664
+
mat< 3, 4, f64, mediump > mediump_f64mat3x4
Medium double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:765
+
mat< 2, 3, f32, lowp > lowp_fmat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:631
+
vec< 1, u32, lowp > lowp_u32vec1
Low qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:364
+
mat< 2, 3, f32, defaultp > f32mat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:703
+
vec< 1, i32, mediump > mediump_i32vec1
Medium qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:267
+
vec< 4, u16, highp > highp_u16vec4
High qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:357
+
vec< 1, i32, lowp > lowp_i32vec1
Low qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:262
+
vec< 1, i64, lowp > lowp_i64vec1
Low qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:282
+
vec< 1, u32, highp > highp_u32vec1
High qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:374
+
int16 mediump_int16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:51
+
uint16 mediump_u16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:104
+
qua< f64, defaultp > f64quat
Double-qualifier floating-point quaternion.
Definition: fwd.hpp:815
+
vec< 3, f64, mediump > mediump_f64vec3
Medium double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:493
+
vec< 1, u64, defaultp > u64vec1
Default qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:399
+
int64 int64_t
64 bit signed integer type.
Definition: fwd.hpp:85
+
vec< 1, u8, defaultp > u8vec1
Default qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:339
+
vec< 1, i8, highp > highp_i8vec1
High qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:232
+
vec< 4, u8, defaultp > u8vec4
Default qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:342
+
int8 int8_t
8 bit signed integer type.
Definition: fwd.hpp:43
+
int32 i32
32 bit signed integer type.
Definition: fwd.hpp:62
+
vec< 1, u32, mediump > mediump_u32vec1
Medium qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:369
+
mat< 2, 2, f64, defaultp > f64mat2x2
Double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:780
+
mat< 2, 2, f32, lowp > lowp_f32mat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:670
+
vec< 4, f32, lowp > lowp_f32vec4
Low single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:449
+
vec< 3, float, highp > highp_fvec3
High Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:438
+
mat< 4, 2, f64, lowp > lowp_f64mat4x2
Low double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:756
+
mat< 3, 3, f32, mediump > mediump_fmat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:644
+
vec< 1, i64, highp > highp_i64vec1
High qualifier 64 bit signed integer scalar type.
Definition: fwd.hpp:292
+
vec< 4, i8, defaultp > i8vec4
8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:240
+
int32 highp_int32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:66
+
mat< 2, 3, f32, mediump > mediump_f32mat2x3
Medium single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:681
+
mat< 3, 2, f64, lowp > lowp_f64mat3x2
Low double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:753
+
uint32 highp_u32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:119
+
int32 highp_i32
High qualifier 32 bit signed integer type.
Definition: fwd.hpp:61
+
vec< 4, u64, defaultp > u64vec4
Default qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:402
+
vec< 4, f32, defaultp > f32vec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:464
+
mat< 2, 3, f64, defaultp > f64mat2x3
Double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:783
+
mat< 4, 4, f64, mediump > mediump_f64mat4x4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:768
+
vec< 4, u16, lowp > lowp_u16vec4
Low qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:347
+
uint32 highp_uint32
High qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:124
+
mat< 4, 4, f32, lowp > lowp_f32mat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:542
+
mat< 3, 2, f64, defaultp > f64mat3x2
Double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:781
+
float mediump_float32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:153
+
vec< 1, u32, defaultp > u32vec1
Default qualifier 32 bit unsigned integer scalar type.
Definition: fwd.hpp:379
+
vec< 4, f64, mediump > mediump_f64vec4
Medium double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:494
+
mat< 3, 3, f64, defaultp > f64mat3x3
Double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:784
+
float highp_float32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:154
+
uint8 highp_uint8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:96
+
int8 highp_i8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:33
+
mat< 2, 4, f64, lowp > lowp_f64mat2x4
Low double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:752
+
mat< 3, 4, f64, lowp > lowp_f64mat3x4
Low double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:755
+
int8 mediump_i8
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:32
+
int64 highp_int64_t
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:84
+
mat< 4, 4, f32, defaultp > f32mat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:708
+
float float32_t
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:160
+
mat< 2, 2, f32, defaultp > f32mat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:700
+
vec< 2, i64, lowp > lowp_i64vec2
Low qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:283
+
mat< 2, 4, f32, lowp > lowp_f32mat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:672
+
uint32 uint32_t
Default qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:129
+
mat< 3, 3, f32, highp > highp_f32mat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:549
+
mat< 3, 3, f64, mediump > mediump_f64mat3x3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:764
+
uint8 u8
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:92
+
vec< 3, i32, highp > highp_i32vec3
High qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:274
+
float float32
Single-qualifier floating-point scalar.
Definition: fwd.hpp:155
+
vec< 4, f32, defaultp > fvec4
Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:444
+
vec< 1, i32, highp > highp_i32vec1
High qualifier 32 bit signed integer scalar type.
Definition: fwd.hpp:272
+
mat< 3, 3, f32, lowp > lowp_f32mat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:541
+
vec< 1, u16, defaultp > u16vec1
Default qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:359
+
vec< 1, i8, defaultp > i8vec1
8 bit signed integer scalar type.
Definition: fwd.hpp:237
+
vec< 3, i32, mediump > mediump_i32vec3
Medium qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:269
+
vec< 2, i32, defaultp > i32vec2
32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:278
+
vec< 2, i16, lowp > lowp_i16vec2
Low qualifier 16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:243
+
vec< 2, u64, mediump > mediump_u64vec2
Medium qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:390
+
vec< 4, u8, lowp > lowp_u8vec4
Low qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:327
+
mat< 3, 3, f32, highp > highp_f32mat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:694
+
vec< 1, u8, highp > highp_u8vec1
High qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:334
+
uint8 highp_uint8_t
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:100
+
vec< 4, u32, mediump > mediump_u32vec4
Medium qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:372
+
mat< 2, 2, f32, highp > highp_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:690
+
vec< 4, f64, highp > highp_f64vec4
High double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:499
+
vec< 3, u8, lowp > lowp_u8vec3
Low qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:326
+
float highp_f32
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:149
+
uint64 mediump_uint64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:137
+
int32 highp_int32_t
32 bit signed integer type.
Definition: fwd.hpp:70
+
vec< 3, f64, defaultp > f64vec3
Double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:503
+
mat< 2, 3, f32, lowp > lowp_f32mat2x3
Low single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:671
+
vec< 3, u16, mediump > mediump_u16vec3
Medium qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:351
+
mat< 2, 4, f64, defaultp > f64mat2x4
Double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:786
+
mat< 3, 3, f32, defaultp > f32mat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:553
+
mat< 2, 2, f64, mediump > mediump_f64mat2x2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:760
+
uint64 mediump_u64
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:132
+
vec< 4, i16, highp > highp_i16vec4
High qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:255
+
mat< 4, 4, f32, lowp > lowp_fmat4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:526
+
vec< 2, u32, mediump > mediump_u32vec2
Medium qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:370
+
vec< 3, u64, highp > highp_u64vec3
High qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:396
+
uint16 lowp_u16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:103
+
vec< 3, i16, lowp > lowp_i16vec3
Low qualifier 16 bit signed integer vector of 3 components type.
Definition: fwd.hpp:244
+
vec< 3, u16, lowp > lowp_u16vec3
Low qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:346
+
vec< 3, f32, lowp > lowp_f32vec3
Low single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:448
+
mat< 4, 4, f32, highp > highp_fmat4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:534
+
mat< 3, 3, f32, lowp > lowp_fmat3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:525
+
int16 highp_i16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:47
+
qua< f32, mediump > mediump_f32quat
Medium single-qualifier floating-point quaternion.
Definition: fwd.hpp:803
+
int8 highp_int8
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:38
+
mat< 4, 4, f64, defaultp > f64mat4x4
Double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:788
+
mat< 4, 3, f32, defaultp > fmat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:665
+
mat< 2, 4, f32, lowp > lowp_fmat2x4
Low single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:632
+
mat< 3, 3, f64, highp > highp_f64mat3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:581
+
vec< 3, i8, mediump > mediump_i8vec3
Medium qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:229
+
vec< 1, f32, highp > highp_f32vec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:456
+
vec< 3, i8, lowp > lowp_i8vec3
Low qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:224
+
mat< 4, 3, f64, lowp > lowp_f64mat4x3
Low double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:757
+
vec< 4, u64, highp > highp_u64vec4
High qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:397
+
vec< 3, f32, defaultp > fvec3
Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:443
+
vec< 2, i16, defaultp > i16vec2
16 bit signed integer vector of 2 components type.
Definition: fwd.hpp:258
+
mat< 4, 3, f32, defaultp > f32mat4x3
Single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:705
+
mat< 2, 2, f32, defaultp > f32mat2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:552
+
vec< 2, u16, mediump > mediump_u16vec2
Medium qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:350
+
mat< 2, 4, f32, mediump > mediump_fmat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:642
+
mat< 4, 4, f32, lowp > lowp_f32mat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:678
+
vec< 2, u8, lowp > lowp_u8vec2
Low qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:325
+
mat< 3, 3, f64, mediump > mediump_f64mat3
Medium double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:577
+
int16 lowp_i16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:45
+
mat< 3, 4, f32, highp > highp_fmat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:655
+
double float64_t
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:176
+
mat< 4, 4, f64, highp > highp_f64mat4x4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:778
+
mat< 4, 3, f32, mediump > mediump_f32mat4x3
Medium single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:687
+
int16 lowp_int16
Low qualifier 16 bit signed integer type.
Definition: fwd.hpp:50
+
mat< 3, 3, f32, mediump > mediump_fmat3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:529
+
mat< 4, 4, f32, highp > highp_f32mat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:698
+
int64 lowp_int64_t
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:82
+
uint16 uint16_t
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:115
+
vec< 2, f64, highp > highp_f64vec2
High double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:497
+
vec< 2, u64, lowp > lowp_u64vec2
Low qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:385
+
mat< 3, 3, f32, defaultp > fmat3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:537
+
mat< 3, 2, f32, mediump > mediump_f32mat3x2
Medium single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:683
+
mat< 4, 2, f32, lowp > lowp_f32mat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:676
+
int32 lowp_int32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:64
+
vec< 4, i64, mediump > mediump_i64vec4
Medium qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:290
+
uint8 uint8_t
Default qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:101
+
vec< 1, i8, mediump > mediump_i8vec1
Medium qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:227
+
int32 mediump_int32_t
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:69
+
float highp_float32_t
High 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:159
+
mat< 3, 3, f32, defaultp > f32mat3x3
Single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:704
+
uint8 highp_u8
High qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:91
+
uint8 mediump_uint8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:95
+
mat< 4, 2, f32, highp > highp_fmat4x2
High single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:656
+
vec< 2, f32, highp > highp_f32vec2
High single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:457
+
int64 mediump_int64_t
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:83
+
vec< 3, u64, lowp > lowp_u64vec3
Low qualifier 64 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:386
+
mat< 2, 2, f64, highp > highp_f64mat2x2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:770
+
vec< 3, u32, highp > highp_u32vec3
High qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:376
+
int8 highp_int8_t
High qualifier 8 bit signed integer type.
Definition: fwd.hpp:42
+
qua< f32, lowp > lowp_f32quat
Low single-qualifier floating-point quaternion.
Definition: fwd.hpp:802
+
vec< 4, i32, lowp > lowp_i32vec4
Low qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:265
+
vec< 1, i16, highp > highp_i16vec1
High qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:252
+
mat< 4, 4, f32, lowp > lowp_fmat4x4
Low single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:638
+
mat< 3, 2, f32, defaultp > f32mat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:701
+
mat< 3, 3, f32, lowp > lowp_f32mat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:674
+
vec< 2, i8, lowp > lowp_i8vec2
Low qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:223
+
vec< 4, i32, defaultp > i32vec4
32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:280
+
mat< 2, 2, f32, highp > highp_f32mat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:548
+
float lowp_f32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:147
+
vec< 4, u16, mediump > mediump_u16vec4
Medium qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:352
+
vec< 3, u32, defaultp > u32vec3
Default qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:381
+
vec< 2, u8, defaultp > u8vec2
Default qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:340
+
int16 mediump_i16
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:46
+
vec< 2, u64, highp > highp_u64vec2
High qualifier 64 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:395
+
vec< 3, i8, defaultp > i8vec3
8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:239
+
mat< 2, 2, f32, mediump > mediump_f32mat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:680
+
uint16 mediump_uint16_t
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:113
+
mat< 4, 3, f64, mediump > mediump_f64mat4x3
Medium double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:767
+
vec< 3, u8, defaultp > u8vec3
Default qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:341
+
double highp_f64
High 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:165
+
vec< 3, float, mediump > mediump_fvec3
Medium Single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:433
+
int64 mediump_int64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:79
+
vec< 4, u64, mediump > mediump_u64vec4
Medium qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:392
+
uint64 uint64_t
Default qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:143
+
vec< 2, u32, highp > highp_u32vec2
High qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:375
+
vec< 1, float, highp > highp_fvec1
High single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:436
+
vec< 4, i64, lowp > lowp_i64vec4
Low qualifier 64 bit signed integer vector of 4 components type.
Definition: fwd.hpp:285
+
vec< 3, i32, defaultp > i32vec3
32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:279
+
mat< 2, 4, f32, highp > highp_f32mat2x4
High single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:692
+
vec< 1, i8, lowp > lowp_i8vec1
Low qualifier 8 bit signed integer scalar type.
Definition: fwd.hpp:222
+
mat< 2, 2, f64, highp > highp_f64mat2
High double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:580
+
uint16 lowp_uint16_t
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:112
+
mat< 3, 2, f64, highp > highp_f64mat3x2
High double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:773
+
vec< 3, u32, mediump > mediump_u32vec3
Medium qualifier 32 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:371
+
uint16 lowp_uint16
Low qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:108
+
vec< 3, u8, highp > highp_u8vec3
High qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:336
+
vec< 4, f64, defaultp > f64vec4
Double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:504
+
vec< 2, i8, highp > highp_i8vec2
High qualifier 8 bit signed integer vector of 2 components type.
Definition: fwd.hpp:233
+
vec< 3, i32, lowp > lowp_i32vec3
Low qualifier 32 bit signed integer vector of 3 components type.
Definition: fwd.hpp:264
+
int32 lowp_i32
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:59
+
mat< 4, 4, f32, mediump > mediump_fmat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:648
+
int64 mediump_i64
Medium qualifier 64 bit signed integer type.
Definition: fwd.hpp:74
+
vec< 4, i16, lowp > lowp_i16vec4
Low qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:245
+
mat< 4, 3, f64, highp > highp_f64mat4x3
High double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:777
+
vec< 2, u8, highp > highp_u8vec2
High qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:335
+
vec< 3, i8, highp > highp_i8vec3
High qualifier 8 bit signed integer vector of 3 components type.
Definition: fwd.hpp:234
+
vec< 3, f64, highp > highp_f64vec3
High double-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:498
+
vec< 2, f32, defaultp > fvec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:442
+
vec< 4, f64, lowp > lowp_f64vec4
Low double-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:489
+
vec< 3, f32, mediump > mediump_f32vec3
Medium single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:453
+
double lowp_f64
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:163
+
mat< 4, 2, f32, lowp > lowp_fmat4x2
Low single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:636
+
mat< 2, 4, f64, highp > highp_f64mat2x4
High double-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:772
+
mat< 4, 4, f64, highp > highp_f64mat4
High double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:582
+
vec< 4, i32, mediump > mediump_i32vec4
Medium qualifier 32 bit signed integer vector of 4 components type.
Definition: fwd.hpp:270
+
mat< 2, 2, f32, lowp > lowp_f32mat2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:540
+
int16 int16_t
16 bit signed integer type.
Definition: fwd.hpp:57
+
int64 highp_i64
High qualifier 64 bit signed integer type.
Definition: fwd.hpp:75
+
mat< 3, 4, f64, highp > highp_f64mat3x4
High double-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:775
+
mat< 3, 3, f32, highp > highp_fmat3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:533
+
mat< 3, 3, f32, mediump > mediump_f32mat3x3
Medium single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:684
+
qua< f64, mediump > mediump_f64quat
Medium double-qualifier floating-point quaternion.
Definition: fwd.hpp:813
+
int32 int32_t
32 bit signed integer type.
Definition: fwd.hpp:71
+
vec< 2, f64, defaultp > f64vec2
Double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:502
+
uint64 lowp_uint64_t
Low qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:140
+
detail::uint64 uint64
64 bit unsigned integer type.
+
int16 highp_int16
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:52
+
vec< 1, i16, mediump > mediump_i16vec1
Medium qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:247
+
mat< 2, 4, f32, defaultp > fmat2x4
Single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:666
+
mat< 2, 2, f32, highp > highp_fmat2x2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:650
+
vec< 4, float, highp > highp_fvec4
High Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:439
+
mat< 3, 3, f64, highp > highp_f64mat3x3
High double-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:774
+
int32 mediump_i32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:60
+
vec< 2, u16, lowp > lowp_u16vec2
Low qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:345
+
vec< 4, u32, highp > highp_u32vec4
High qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:377
+
float lowp_float32_t
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:157
+
uint64 highp_uint64_t
High qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:142
+
vec< 2, f32, lowp > lowp_f32vec2
Low single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:447
+
vec< 4, u32, defaultp > u32vec4
Default qualifier 32 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:382
+
mat< 2, 2, f64, mediump > mediump_f64mat2
Medium double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:576
+
mat< 4, 3, f32, highp > highp_f32mat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:697
+
qua< f32, defaultp > f32quat
Single-qualifier floating-point quaternion.
Definition: fwd.hpp:805
+
detail::int64 int64
64 bit signed integer type.
+
vec< 1, u64, highp > highp_u64vec1
High qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:394
+
mat< 2, 3, f64, highp > highp_f64mat2x3
High double-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:771
+
vec< 4, i8, lowp > lowp_i8vec4
Low qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:225
+
mat< 4, 3, f32, lowp > lowp_fmat4x3
Low single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:637
+
float f32
Default 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:150
+
vec< 2, i32, highp > highp_i32vec2
High qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:273
+
vec< 1, u8, mediump > mediump_u8vec1
Medium qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:329
+
mat< 4, 3, f32, highp > highp_fmat4x3
High single-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:657
+
vec< 4, i16, mediump > mediump_i16vec4
Medium qualifier 16 bit signed integer vector of 4 components type.
Definition: fwd.hpp:250
+
mat< 4, 2, f64, defaultp > f64mat4x2
Double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:782
+
mat< 2, 3, f32, defaultp > fmat2x3
Single-qualifier floating-point 2x3 matrix.
Definition: fwd.hpp:663
+
mat< 4, 4, f64, mediump > mediump_f64mat4
Medium double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:578
+
vec< 4, u8, mediump > mediump_u8vec4
Medium qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:332
+
mat< 3, 4, f32, lowp > lowp_f32mat3x4
Low single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:675
+
double mediump_float64_t
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:174
+
vec< 2, float, highp > highp_fvec2
High Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:437
+
uint16 u16
Default qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:106
+
int64 lowp_i64
Low qualifier 64 bit signed integer type.
Definition: fwd.hpp:73
+
mat< 4, 4, f32, defaultp > f32mat4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:554
+
mat< 4, 2, f32, mediump > mediump_fmat4x2
Medium single-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:646
+
mat< 2, 2, f64, lowp > lowp_f64mat2
Low double-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:572
+
int8 mediump_int8_t
Medium qualifier 8 bit signed integer type.
Definition: fwd.hpp:41
+
mat< 3, 3, f32, lowp > lowp_fmat3x3
Low single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:634
+
double lowp_float64_t
Low 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:173
+
int16 highp_int16_t
High qualifier 16 bit signed integer type.
Definition: fwd.hpp:56
+
mat< 3, 3, f32, highp > highp_fmat3x3
High single-qualifier floating-point 3x3 matrix.
Definition: fwd.hpp:654
+
vec< 1, i64, defaultp > i64vec1
64 bit signed integer scalar type.
Definition: fwd.hpp:297
+
uint32 lowp_u32
Low qualifier 32 bit unsigned integer type.
Definition: fwd.hpp:117
+
vec< 1, u8, lowp > lowp_u8vec1
Low qualifier 8 bit unsigned integer scalar type.
Definition: fwd.hpp:324
+
vec< 3, i64, mediump > mediump_i64vec3
Medium qualifier 64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:289
+
qua< f32, highp > highp_f32quat
High single-qualifier floating-point quaternion.
Definition: fwd.hpp:804
+
uint16 highp_u16
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:105
+
vec< 1, f32, defaultp > fvec1
Single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:441
+
vec< 2, u8, mediump > mediump_u8vec2
Medium qualifier 8 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:330
+
int32 lowp_int32_t
Low qualifier 32 bit signed integer type.
Definition: fwd.hpp:68
+
vec< 1, u16, lowp > lowp_u16vec1
Low qualifier 16 bit unsigned integer scalar type.
Definition: fwd.hpp:344
+
mat< 4, 4, f32, highp > highp_fmat4x4
High single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:658
+
mat< 3, 4, f32, highp > highp_f32mat3x4
High single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:695
+
vec< 2, f32, defaultp > f32vec2
Single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:462
+
vec< 3, u16, highp > highp_u16vec3
High qualifier 16 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:356
+
float mediump_float32_t
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:158
+
mat< 2, 2, f32, defaultp > fmat2x2
Single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:660
+
float mediump_f32
Medium 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:148
+
mat< 4, 4, f32, mediump > mediump_f32mat4x4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:688
+
vec< 2, f32, mediump > mediump_f32vec2
Medium single-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:452
+
int8 lowp_int8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:36
+
vec< 1, f64, lowp > lowp_f64vec1
Low double-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:486
+
mat< 3, 2, f32, highp > highp_f32mat3x2
High single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:693
+
mat< 3, 2, f64, mediump > mediump_f64mat3x2
Medium double-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:763
+
vec< 3, u8, mediump > mediump_u8vec3
Medium qualifier 8 bit unsigned integer vector of 3 components type.
Definition: fwd.hpp:331
+
mat< 4, 4, f64, lowp > lowp_f64mat4x4
Low double-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:758
+
vec< 1, i16, lowp > lowp_i16vec1
Low qualifier 16 bit signed integer scalar type.
Definition: fwd.hpp:242
+
int8 lowp_int8_t
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:40
+
vec< 2, u32, lowp > lowp_u32vec2
Low qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:365
+
mat< 2, 4, f32, mediump > mediump_f32mat2x4
Medium single-qualifier floating-point 2x4 matrix.
Definition: fwd.hpp:682
+
mat< 4, 3, f64, defaultp > f64mat4x3
Double-qualifier floating-point 4x3 matrix.
Definition: fwd.hpp:785
+
vec< 2, i64, highp > highp_i64vec2
High qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:293
+
mat< 4, 4, f32, mediump > mediump_f32mat4
Medium single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:546
+
int64 i64
64 bit signed integer type.
Definition: fwd.hpp:76
+
double f64
Default 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:166
+
vec< 1, f32, mediump > mediump_f32vec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:451
+
mat< 3, 4, f32, mediump > mediump_f32mat3x4
Medium single-qualifier floating-point 3x4 matrix.
Definition: fwd.hpp:685
+
mat< 2, 2, f32, highp > highp_fmat2
High single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:532
+
vec< 3, f32, highp > highp_f32vec3
High single-qualifier floating-point vector of 3 components.
Definition: fwd.hpp:458
+
vec< 4, i8, mediump > mediump_i8vec4
Medium qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:230
+
float lowp_float32
Low 32 bit single-qualifier floating-point scalar.
Definition: fwd.hpp:152
+
vec< 2, u32, defaultp > u32vec2
Default qualifier 32 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:380
+
vec< 4, float, mediump > mediump_fvec4
Medium Single-qualifier floating-point vector of 4 components.
Definition: fwd.hpp:434
+
int32 mediump_int32
Medium qualifier 32 bit signed integer type.
Definition: fwd.hpp:65
+
vec< 2, i64, defaultp > i64vec2
64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:298
+
int16 i16
16 bit signed integer type.
Definition: fwd.hpp:48
+
mat< 4, 4, f32, defaultp > fmat4x4
Single-qualifier floating-point 4x4 matrix.
Definition: fwd.hpp:668
+
qua< f64, lowp > lowp_f64quat
Low double-qualifier floating-point quaternion.
Definition: fwd.hpp:812
+
mat< 3, 2, f32, defaultp > fmat3x2
Single-qualifier floating-point 3x2 matrix.
Definition: fwd.hpp:661
+
vec< 4, u16, defaultp > u16vec4
Default qualifier 16 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:362
+
vec< 2, u16, defaultp > u16vec2
Default qualifier 16 bit unsigned integer vector of 2 components type.
Definition: fwd.hpp:360
+
uint8 mediump_u8
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:90
+
mat< 2, 2, f32, lowp > lowp_fmat2x2
Low single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:630
+
vec< 4, i8, highp > highp_i8vec4
High qualifier 8 bit signed integer vector of 4 components type.
Definition: fwd.hpp:235
+
vec< 4, u64, lowp > lowp_u64vec4
Low qualifier 64 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:387
+
vec< 2, i64, mediump > mediump_i64vec2
Medium qualifier 64 bit signed integer vector of 2 components type.
Definition: fwd.hpp:288
+
mat< 4, 2, f64, highp > highp_f64mat4x2
High double-qualifier floating-point 4x2 matrix.
Definition: fwd.hpp:776
+
int16 mediump_int16_t
Medium qualifier 16 bit signed integer type.
Definition: fwd.hpp:55
+
int8 lowp_i8
Low qualifier 8 bit signed integer type.
Definition: fwd.hpp:31
+
vec< 3, i64, defaultp > i64vec3
64 bit signed integer vector of 3 components type.
Definition: fwd.hpp:299
+
vec< 2, i32, lowp > lowp_i32vec2
Low qualifier 32 bit signed integer vector of 2 components type.
Definition: fwd.hpp:263
+
qua< f64, highp > highp_f64quat
High double-qualifier floating-point quaternion.
Definition: fwd.hpp:814
+
vec< 2, f64, mediump > mediump_f64vec2
Medium double-qualifier floating-point vector of 2 components.
Definition: fwd.hpp:492
+
uint16 highp_uint16_t
High qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:114
+
vec< 1, float, lowp > lowp_fvec1
Low single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:426
+
int8 i8
8 bit signed integer type.
Definition: fwd.hpp:34
+
uint64 mediump_uint64_t
Medium qualifier 64 bit unsigned integer type.
Definition: fwd.hpp:141
+
vec< 1, u64, mediump > mediump_u64vec1
Medium qualifier 64 bit unsigned integer scalar type.
Definition: fwd.hpp:389
+
mat< 2, 2, f32, mediump > mediump_f32mat2
Medium single-qualifier floating-point 1x1 matrix.
Definition: fwd.hpp:544
+
uint8 mediump_uint8_t
Medium qualifier 8 bit unsigned integer type.
Definition: fwd.hpp:99
+
Definition: common.hpp:20
+
double mediump_f64
Medium 64 bit double-qualifier floating-point scalar.
Definition: fwd.hpp:164
+
vec< 1, float, mediump > mediump_fvec1
Medium single-qualifier floating-point vector of 1 component.
Definition: fwd.hpp:431
+
uint16 mediump_uint16
Medium qualifier 16 bit unsigned integer type.
Definition: fwd.hpp:109
+
vec< 4, u8, highp > highp_u8vec4
High qualifier 8 bit unsigned integer vector of 4 components type.
Definition: fwd.hpp:337
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00175.html b/external/include/glm-0.9.9.8/doc/api/a00175.html index bb6ce55d48..871fae2aea 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00175.html +++ b/external/include/glm-0.9.9.8/doc/api/a00175.html @@ -1,249 +1,249 @@ - - - - - - -0.9.9 API documentation: type_ptr.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
type_ptr.hpp File Reference
-
-
- -

GLM_GTC_type_ptr -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL qua< T, defaultp > make_quat (T const *const ptr)
 Build a quaternion from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type const * value_ptr (genType const &v)
 Return the constant address to the data of the input parameter. More...
 
-

Detailed Description

-

GLM_GTC_type_ptr

-
See also
Core features (dependence)
-
-GLM_GTC_quaternion (dependence)
- -

Definition in file type_ptr.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_ptr.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
type_ptr.hpp File Reference
+
+
+ +

GLM_GTC_type_ptr +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL qua< T, defaultp > make_quat (T const *const ptr)
 Build a quaternion from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type const * value_ptr (genType const &v)
 Return the constant address to the data of the input parameter. More...
 
+

Detailed Description

+

GLM_GTC_type_ptr

+
See also
Core features (dependence)
+
+GLM_GTC_quaternion (dependence)
+ +

Definition in file type_ptr.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00175_source.html b/external/include/glm-0.9.9.8/doc/api/a00175_source.html index 69262539a7..0a66716d0e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00175_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00175_source.html @@ -1,247 +1,247 @@ - - - - - - -0.9.9 API documentation: type_ptr.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_ptr.hpp
-
-
-Go to the documentation of this file.
1 
-
34 #pragma once
-
35 
-
36 // Dependency:
-
37 #include "../gtc/quaternion.hpp"
-
38 #include "../gtc/vec1.hpp"
-
39 #include "../vec2.hpp"
-
40 #include "../vec3.hpp"
-
41 #include "../vec4.hpp"
-
42 #include "../mat2x2.hpp"
-
43 #include "../mat2x3.hpp"
-
44 #include "../mat2x4.hpp"
-
45 #include "../mat3x2.hpp"
-
46 #include "../mat3x3.hpp"
-
47 #include "../mat3x4.hpp"
-
48 #include "../mat4x2.hpp"
-
49 #include "../mat4x3.hpp"
-
50 #include "../mat4x4.hpp"
-
51 #include <cstring>
-
52 
-
53 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
54 # pragma message("GLM: GLM_GTC_type_ptr extension included")
-
55 #endif
-
56 
-
57 namespace glm
-
58 {
-
61 
-
64  template<typename genType>
-
65  GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const& v);
-
66 
-
69  template <typename T, qualifier Q>
-
70  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<1, T, Q> const& v);
-
71 
-
74  template <typename T, qualifier Q>
-
75  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<2, T, Q> const& v);
-
76 
-
79  template <typename T, qualifier Q>
-
80  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<3, T, Q> const& v);
-
81 
-
84  template <typename T, qualifier Q>
-
85  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<4, T, Q> const& v);
-
86 
-
89  template <typename T, qualifier Q>
-
90  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<1, T, Q> const& v);
-
91 
-
94  template <typename T, qualifier Q>
-
95  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<2, T, Q> const& v);
-
96 
-
99  template <typename T, qualifier Q>
-
100  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<3, T, Q> const& v);
-
101 
-
104  template <typename T, qualifier Q>
-
105  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<4, T, Q> const& v);
-
106 
-
109  template <typename T, qualifier Q>
-
110  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<1, T, Q> const& v);
-
111 
-
114  template <typename T, qualifier Q>
-
115  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<2, T, Q> const& v);
-
116 
-
119  template <typename T, qualifier Q>
-
120  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<3, T, Q> const& v);
-
121 
-
124  template <typename T, qualifier Q>
-
125  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<4, T, Q> const& v);
-
126 
-
129  template <typename T, qualifier Q>
-
130  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<1, T, Q> const& v);
-
131 
-
134  template <typename T, qualifier Q>
-
135  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<2, T, Q> const& v);
-
136 
-
139  template <typename T, qualifier Q>
-
140  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<3, T, Q> const& v);
-
141 
-
144  template <typename T, qualifier Q>
-
145  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<4, T, Q> const& v);
-
146 
-
149  template<typename T>
-
150  GLM_FUNC_DECL vec<2, T, defaultp> make_vec2(T const * const ptr);
-
151 
-
154  template<typename T>
-
155  GLM_FUNC_DECL vec<3, T, defaultp> make_vec3(T const * const ptr);
-
156 
-
159  template<typename T>
-
160  GLM_FUNC_DECL vec<4, T, defaultp> make_vec4(T const * const ptr);
-
161 
-
164  template<typename T>
-
165  GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2x2(T const * const ptr);
-
166 
-
169  template<typename T>
-
170  GLM_FUNC_DECL mat<2, 3, T, defaultp> make_mat2x3(T const * const ptr);
-
171 
-
174  template<typename T>
-
175  GLM_FUNC_DECL mat<2, 4, T, defaultp> make_mat2x4(T const * const ptr);
-
176 
-
179  template<typename T>
-
180  GLM_FUNC_DECL mat<3, 2, T, defaultp> make_mat3x2(T const * const ptr);
-
181 
-
184  template<typename T>
-
185  GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3x3(T const * const ptr);
-
186 
-
189  template<typename T>
-
190  GLM_FUNC_DECL mat<3, 4, T, defaultp> make_mat3x4(T const * const ptr);
-
191 
-
194  template<typename T>
-
195  GLM_FUNC_DECL mat<4, 2, T, defaultp> make_mat4x2(T const * const ptr);
-
196 
-
199  template<typename T>
-
200  GLM_FUNC_DECL mat<4, 3, T, defaultp> make_mat4x3(T const * const ptr);
-
201 
-
204  template<typename T>
-
205  GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4x4(T const * const ptr);
-
206 
-
209  template<typename T>
-
210  GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2(T const * const ptr);
-
211 
-
214  template<typename T>
-
215  GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3(T const * const ptr);
-
216 
-
219  template<typename T>
-
220  GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4(T const * const ptr);
-
221 
-
224  template<typename T>
-
225  GLM_FUNC_DECL qua<T, defaultp> make_quat(T const * const ptr);
-
226 
-
228 }//namespace glm
-
229 
-
230 #include "type_ptr.inl"
-
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL vec< 1, T, Q > make_vec1(vec< 4, T, Q > const &v)
Build a vector from a pointer.
-
GLM_FUNC_DECL qua< T, defaultp > make_quat(T const *const ptr)
Build a quaternion from a pointer.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &v)
Return the constant address to the data of the input parameter.
-
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4(T const *const ptr)
Build a vector from a pointer.
-
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4(T const *const ptr)
Build a matrix from a pointer.
-
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2(T const *const ptr)
Build a matrix from a pointer.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_ptr.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_ptr.hpp
+
+
+Go to the documentation of this file.
1 
+
34 #pragma once
+
35 
+
36 // Dependency:
+
37 #include "../gtc/quaternion.hpp"
+
38 #include "../gtc/vec1.hpp"
+
39 #include "../vec2.hpp"
+
40 #include "../vec3.hpp"
+
41 #include "../vec4.hpp"
+
42 #include "../mat2x2.hpp"
+
43 #include "../mat2x3.hpp"
+
44 #include "../mat2x4.hpp"
+
45 #include "../mat3x2.hpp"
+
46 #include "../mat3x3.hpp"
+
47 #include "../mat3x4.hpp"
+
48 #include "../mat4x2.hpp"
+
49 #include "../mat4x3.hpp"
+
50 #include "../mat4x4.hpp"
+
51 #include <cstring>
+
52 
+
53 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
54 # pragma message("GLM: GLM_GTC_type_ptr extension included")
+
55 #endif
+
56 
+
57 namespace glm
+
58 {
+
61 
+
64  template<typename genType>
+
65  GLM_FUNC_DECL typename genType::value_type const * value_ptr(genType const& v);
+
66 
+
69  template <typename T, qualifier Q>
+
70  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<1, T, Q> const& v);
+
71 
+
74  template <typename T, qualifier Q>
+
75  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<2, T, Q> const& v);
+
76 
+
79  template <typename T, qualifier Q>
+
80  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<3, T, Q> const& v);
+
81 
+
84  template <typename T, qualifier Q>
+
85  GLM_FUNC_DECL vec<1, T, Q> make_vec1(vec<4, T, Q> const& v);
+
86 
+
89  template <typename T, qualifier Q>
+
90  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<1, T, Q> const& v);
+
91 
+
94  template <typename T, qualifier Q>
+
95  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<2, T, Q> const& v);
+
96 
+
99  template <typename T, qualifier Q>
+
100  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<3, T, Q> const& v);
+
101 
+
104  template <typename T, qualifier Q>
+
105  GLM_FUNC_DECL vec<2, T, Q> make_vec2(vec<4, T, Q> const& v);
+
106 
+
109  template <typename T, qualifier Q>
+
110  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<1, T, Q> const& v);
+
111 
+
114  template <typename T, qualifier Q>
+
115  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<2, T, Q> const& v);
+
116 
+
119  template <typename T, qualifier Q>
+
120  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<3, T, Q> const& v);
+
121 
+
124  template <typename T, qualifier Q>
+
125  GLM_FUNC_DECL vec<3, T, Q> make_vec3(vec<4, T, Q> const& v);
+
126 
+
129  template <typename T, qualifier Q>
+
130  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<1, T, Q> const& v);
+
131 
+
134  template <typename T, qualifier Q>
+
135  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<2, T, Q> const& v);
+
136 
+
139  template <typename T, qualifier Q>
+
140  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<3, T, Q> const& v);
+
141 
+
144  template <typename T, qualifier Q>
+
145  GLM_FUNC_DECL vec<4, T, Q> make_vec4(vec<4, T, Q> const& v);
+
146 
+
149  template<typename T>
+
150  GLM_FUNC_DECL vec<2, T, defaultp> make_vec2(T const * const ptr);
+
151 
+
154  template<typename T>
+
155  GLM_FUNC_DECL vec<3, T, defaultp> make_vec3(T const * const ptr);
+
156 
+
159  template<typename T>
+
160  GLM_FUNC_DECL vec<4, T, defaultp> make_vec4(T const * const ptr);
+
161 
+
164  template<typename T>
+
165  GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2x2(T const * const ptr);
+
166 
+
169  template<typename T>
+
170  GLM_FUNC_DECL mat<2, 3, T, defaultp> make_mat2x3(T const * const ptr);
+
171 
+
174  template<typename T>
+
175  GLM_FUNC_DECL mat<2, 4, T, defaultp> make_mat2x4(T const * const ptr);
+
176 
+
179  template<typename T>
+
180  GLM_FUNC_DECL mat<3, 2, T, defaultp> make_mat3x2(T const * const ptr);
+
181 
+
184  template<typename T>
+
185  GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3x3(T const * const ptr);
+
186 
+
189  template<typename T>
+
190  GLM_FUNC_DECL mat<3, 4, T, defaultp> make_mat3x4(T const * const ptr);
+
191 
+
194  template<typename T>
+
195  GLM_FUNC_DECL mat<4, 2, T, defaultp> make_mat4x2(T const * const ptr);
+
196 
+
199  template<typename T>
+
200  GLM_FUNC_DECL mat<4, 3, T, defaultp> make_mat4x3(T const * const ptr);
+
201 
+
204  template<typename T>
+
205  GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4x4(T const * const ptr);
+
206 
+
209  template<typename T>
+
210  GLM_FUNC_DECL mat<2, 2, T, defaultp> make_mat2(T const * const ptr);
+
211 
+
214  template<typename T>
+
215  GLM_FUNC_DECL mat<3, 3, T, defaultp> make_mat3(T const * const ptr);
+
216 
+
219  template<typename T>
+
220  GLM_FUNC_DECL mat<4, 4, T, defaultp> make_mat4(T const * const ptr);
+
221 
+
224  template<typename T>
+
225  GLM_FUNC_DECL qua<T, defaultp> make_quat(T const * const ptr);
+
226 
+
228 }//namespace glm
+
229 
+
230 #include "type_ptr.inl"
+
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL vec< 1, T, Q > make_vec1(vec< 4, T, Q > const &v)
Build a vector from a pointer.
+
GLM_FUNC_DECL qua< T, defaultp > make_quat(T const *const ptr)
Build a quaternion from a pointer.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL genType::value_type const * value_ptr(genType const &v)
Return the constant address to the data of the input parameter.
+
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4(T const *const ptr)
Build a vector from a pointer.
+
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4(T const *const ptr)
Build a matrix from a pointer.
+
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2(T const *const ptr)
Build a matrix from a pointer.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00176.html b/external/include/glm-0.9.9.8/doc/api/a00176.html index 6028761cd8..6ad7077d43 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00176.html +++ b/external/include/glm-0.9.9.8/doc/api/a00176.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_quat.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_quat.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_quat.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_quat.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_quat.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_quat.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00176_source.html b/external/include/glm-0.9.9.8/doc/api/a00176_source.html index cd2b4fb463..e0f2832be0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00176_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00176_source.html @@ -1,269 +1,269 @@ - - - - - - -0.9.9 API documentation: type_quat.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_quat.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 // Dependency:
-
7 #include "../detail/type_mat3x3.hpp"
-
8 #include "../detail/type_mat4x4.hpp"
-
9 #include "../detail/type_vec3.hpp"
-
10 #include "../detail/type_vec4.hpp"
-
11 #include "../ext/vector_relational.hpp"
-
12 #include "../ext/quaternion_relational.hpp"
-
13 #include "../gtc/constants.hpp"
-
14 #include "../gtc/matrix_transform.hpp"
-
15 
-
16 namespace glm
-
17 {
-
18  template<typename T, qualifier Q>
-
19  struct qua
-
20  {
-
21  // -- Implementation detail --
-
22 
-
23  typedef qua<T, Q> type;
-
24  typedef T value_type;
-
25 
-
26  // -- Data --
-
27 
-
28 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
29 # if GLM_COMPILER & GLM_COMPILER_GCC
-
30 # pragma GCC diagnostic push
-
31 # pragma GCC diagnostic ignored "-Wpedantic"
-
32 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
33 # pragma clang diagnostic push
-
34 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
-
35 # pragma clang diagnostic ignored "-Wnested-anon-types"
-
36 # elif GLM_COMPILER & GLM_COMPILER_VC
-
37 # pragma warning(push)
-
38 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-
39 # endif
-
40 # endif
-
41 
-
42 # if GLM_LANG & GLM_LANG_CXXMS_FLAG
-
43  union
-
44  {
-
45  struct { T x, y, z, w;};
-
46 
-
47  typename detail::storage<4, T, detail::is_aligned<Q>::value>::type data;
-
48  };
-
49 # else
-
50  T x, y, z, w;
-
51 # endif
-
52 
-
53 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
54 # if GLM_COMPILER & GLM_COMPILER_CLANG
-
55 # pragma clang diagnostic pop
-
56 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
57 # pragma GCC diagnostic pop
-
58 # elif GLM_COMPILER & GLM_COMPILER_VC
-
59 # pragma warning(pop)
-
60 # endif
-
61 # endif
-
62 
-
63  // -- Component accesses --
-
64 
-
65  typedef length_t length_type;
-
66 
-
68  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
-
69 
-
70  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
-
71  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
-
72 
-
73  // -- Implicit basic constructors --
-
74 
-
75  GLM_FUNC_DECL GLM_CONSTEXPR qua() GLM_DEFAULT;
-
76  GLM_FUNC_DECL GLM_CONSTEXPR qua(qua<T, Q> const& q) GLM_DEFAULT;
-
77  template<qualifier P>
-
78  GLM_FUNC_DECL GLM_CONSTEXPR qua(qua<T, P> const& q);
-
79 
-
80  // -- Explicit basic constructors --
-
81 
-
82  GLM_FUNC_DECL GLM_CONSTEXPR qua(T s, vec<3, T, Q> const& v);
-
83  GLM_FUNC_DECL GLM_CONSTEXPR qua(T w, T x, T y, T z);
-
84 
-
85  // -- Conversion constructors --
-
86 
-
87  template<typename U, qualifier P>
-
88  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT qua(qua<U, P> const& q);
-
89 
-
91 # if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
-
92  GLM_FUNC_DECL explicit operator mat<3, 3, T, Q>() const;
-
93  GLM_FUNC_DECL explicit operator mat<4, 4, T, Q>() const;
-
94 # endif
-
95 
-
102  GLM_FUNC_DECL qua(vec<3, T, Q> const& u, vec<3, T, Q> const& v);
-
103 
-
105  GLM_FUNC_DECL GLM_EXPLICIT qua(vec<3, T, Q> const& eulerAngles);
-
106  GLM_FUNC_DECL GLM_EXPLICIT qua(mat<3, 3, T, Q> const& q);
-
107  GLM_FUNC_DECL GLM_EXPLICIT qua(mat<4, 4, T, Q> const& q);
-
108 
-
109  // -- Unary arithmetic operators --
-
110 
-
111  GLM_FUNC_DECL qua<T, Q>& operator=(qua<T, Q> const& q) GLM_DEFAULT;
-
112 
-
113  template<typename U>
-
114  GLM_FUNC_DECL qua<T, Q>& operator=(qua<U, Q> const& q);
-
115  template<typename U>
-
116  GLM_FUNC_DECL qua<T, Q>& operator+=(qua<U, Q> const& q);
-
117  template<typename U>
-
118  GLM_FUNC_DECL qua<T, Q>& operator-=(qua<U, Q> const& q);
-
119  template<typename U>
-
120  GLM_FUNC_DECL qua<T, Q>& operator*=(qua<U, Q> const& q);
-
121  template<typename U>
-
122  GLM_FUNC_DECL qua<T, Q>& operator*=(U s);
-
123  template<typename U>
-
124  GLM_FUNC_DECL qua<T, Q>& operator/=(U s);
-
125  };
-
126 
-
127  // -- Unary bit operators --
-
128 
-
129  template<typename T, qualifier Q>
-
130  GLM_FUNC_DECL qua<T, Q> operator+(qua<T, Q> const& q);
-
131 
-
132  template<typename T, qualifier Q>
-
133  GLM_FUNC_DECL qua<T, Q> operator-(qua<T, Q> const& q);
-
134 
-
135  // -- Binary operators --
-
136 
-
137  template<typename T, qualifier Q>
-
138  GLM_FUNC_DECL qua<T, Q> operator+(qua<T, Q> const& q, qua<T, Q> const& p);
-
139 
-
140  template<typename T, qualifier Q>
-
141  GLM_FUNC_DECL qua<T, Q> operator-(qua<T, Q> const& q, qua<T, Q> const& p);
-
142 
-
143  template<typename T, qualifier Q>
-
144  GLM_FUNC_DECL qua<T, Q> operator*(qua<T, Q> const& q, qua<T, Q> const& p);
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_FUNC_DECL vec<3, T, Q> operator*(qua<T, Q> const& q, vec<3, T, Q> const& v);
-
148 
-
149  template<typename T, qualifier Q>
-
150  GLM_FUNC_DECL vec<3, T, Q> operator*(vec<3, T, Q> const& v, qua<T, Q> const& q);
-
151 
-
152  template<typename T, qualifier Q>
-
153  GLM_FUNC_DECL vec<4, T, Q> operator*(qua<T, Q> const& q, vec<4, T, Q> const& v);
-
154 
-
155  template<typename T, qualifier Q>
-
156  GLM_FUNC_DECL vec<4, T, Q> operator*(vec<4, T, Q> const& v, qua<T, Q> const& q);
-
157 
-
158  template<typename T, qualifier Q>
-
159  GLM_FUNC_DECL qua<T, Q> operator*(qua<T, Q> const& q, T const& s);
-
160 
-
161  template<typename T, qualifier Q>
-
162  GLM_FUNC_DECL qua<T, Q> operator*(T const& s, qua<T, Q> const& q);
-
163 
-
164  template<typename T, qualifier Q>
-
165  GLM_FUNC_DECL qua<T, Q> operator/(qua<T, Q> const& q, T const& s);
-
166 
-
167  // -- Boolean operators --
-
168 
-
169  template<typename T, qualifier Q>
-
170  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(qua<T, Q> const& q1, qua<T, Q> const& q2);
-
171 
-
172  template<typename T, qualifier Q>
-
173  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(qua<T, Q> const& q1, qua<T, Q> const& q2);
-
174 } //namespace glm
-
175 
-
176 #ifndef GLM_EXTERNAL_TEMPLATE
-
177 #include "type_quat.inl"
-
178 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles(qua< T, Q > const &x)
Returns euler angles, pitch as x, yaw as y, roll as z.
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_quat.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_quat.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 // Dependency:
+
7 #include "../detail/type_mat3x3.hpp"
+
8 #include "../detail/type_mat4x4.hpp"
+
9 #include "../detail/type_vec3.hpp"
+
10 #include "../detail/type_vec4.hpp"
+
11 #include "../ext/vector_relational.hpp"
+
12 #include "../ext/quaternion_relational.hpp"
+
13 #include "../gtc/constants.hpp"
+
14 #include "../gtc/matrix_transform.hpp"
+
15 
+
16 namespace glm
+
17 {
+
18  template<typename T, qualifier Q>
+
19  struct qua
+
20  {
+
21  // -- Implementation detail --
+
22 
+
23  typedef qua<T, Q> type;
+
24  typedef T value_type;
+
25 
+
26  // -- Data --
+
27 
+
28 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
29 # if GLM_COMPILER & GLM_COMPILER_GCC
+
30 # pragma GCC diagnostic push
+
31 # pragma GCC diagnostic ignored "-Wpedantic"
+
32 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
33 # pragma clang diagnostic push
+
34 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+
35 # pragma clang diagnostic ignored "-Wnested-anon-types"
+
36 # elif GLM_COMPILER & GLM_COMPILER_VC
+
37 # pragma warning(push)
+
38 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+
39 # endif
+
40 # endif
+
41 
+
42 # if GLM_LANG & GLM_LANG_CXXMS_FLAG
+
43  union
+
44  {
+
45  struct { T x, y, z, w;};
+
46 
+
47  typename detail::storage<4, T, detail::is_aligned<Q>::value>::type data;
+
48  };
+
49 # else
+
50  T x, y, z, w;
+
51 # endif
+
52 
+
53 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
54 # if GLM_COMPILER & GLM_COMPILER_CLANG
+
55 # pragma clang diagnostic pop
+
56 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
57 # pragma GCC diagnostic pop
+
58 # elif GLM_COMPILER & GLM_COMPILER_VC
+
59 # pragma warning(pop)
+
60 # endif
+
61 # endif
+
62 
+
63  // -- Component accesses --
+
64 
+
65  typedef length_t length_type;
+
66 
+
68  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
+
69 
+
70  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
+
71  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
+
72 
+
73  // -- Implicit basic constructors --
+
74 
+
75  GLM_FUNC_DECL GLM_CONSTEXPR qua() GLM_DEFAULT;
+
76  GLM_FUNC_DECL GLM_CONSTEXPR qua(qua<T, Q> const& q) GLM_DEFAULT;
+
77  template<qualifier P>
+
78  GLM_FUNC_DECL GLM_CONSTEXPR qua(qua<T, P> const& q);
+
79 
+
80  // -- Explicit basic constructors --
+
81 
+
82  GLM_FUNC_DECL GLM_CONSTEXPR qua(T s, vec<3, T, Q> const& v);
+
83  GLM_FUNC_DECL GLM_CONSTEXPR qua(T w, T x, T y, T z);
+
84 
+
85  // -- Conversion constructors --
+
86 
+
87  template<typename U, qualifier P>
+
88  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT qua(qua<U, P> const& q);
+
89 
+
91 # if GLM_HAS_EXPLICIT_CONVERSION_OPERATORS
+
92  GLM_FUNC_DECL explicit operator mat<3, 3, T, Q>() const;
+
93  GLM_FUNC_DECL explicit operator mat<4, 4, T, Q>() const;
+
94 # endif
+
95 
+
102  GLM_FUNC_DECL qua(vec<3, T, Q> const& u, vec<3, T, Q> const& v);
+
103 
+
105  GLM_FUNC_DECL GLM_EXPLICIT qua(vec<3, T, Q> const& eulerAngles);
+
106  GLM_FUNC_DECL GLM_EXPLICIT qua(mat<3, 3, T, Q> const& q);
+
107  GLM_FUNC_DECL GLM_EXPLICIT qua(mat<4, 4, T, Q> const& q);
+
108 
+
109  // -- Unary arithmetic operators --
+
110 
+
111  GLM_FUNC_DECL qua<T, Q>& operator=(qua<T, Q> const& q) GLM_DEFAULT;
+
112 
+
113  template<typename U>
+
114  GLM_FUNC_DECL qua<T, Q>& operator=(qua<U, Q> const& q);
+
115  template<typename U>
+
116  GLM_FUNC_DECL qua<T, Q>& operator+=(qua<U, Q> const& q);
+
117  template<typename U>
+
118  GLM_FUNC_DECL qua<T, Q>& operator-=(qua<U, Q> const& q);
+
119  template<typename U>
+
120  GLM_FUNC_DECL qua<T, Q>& operator*=(qua<U, Q> const& q);
+
121  template<typename U>
+
122  GLM_FUNC_DECL qua<T, Q>& operator*=(U s);
+
123  template<typename U>
+
124  GLM_FUNC_DECL qua<T, Q>& operator/=(U s);
+
125  };
+
126 
+
127  // -- Unary bit operators --
+
128 
+
129  template<typename T, qualifier Q>
+
130  GLM_FUNC_DECL qua<T, Q> operator+(qua<T, Q> const& q);
+
131 
+
132  template<typename T, qualifier Q>
+
133  GLM_FUNC_DECL qua<T, Q> operator-(qua<T, Q> const& q);
+
134 
+
135  // -- Binary operators --
+
136 
+
137  template<typename T, qualifier Q>
+
138  GLM_FUNC_DECL qua<T, Q> operator+(qua<T, Q> const& q, qua<T, Q> const& p);
+
139 
+
140  template<typename T, qualifier Q>
+
141  GLM_FUNC_DECL qua<T, Q> operator-(qua<T, Q> const& q, qua<T, Q> const& p);
+
142 
+
143  template<typename T, qualifier Q>
+
144  GLM_FUNC_DECL qua<T, Q> operator*(qua<T, Q> const& q, qua<T, Q> const& p);
+
145 
+
146  template<typename T, qualifier Q>
+
147  GLM_FUNC_DECL vec<3, T, Q> operator*(qua<T, Q> const& q, vec<3, T, Q> const& v);
+
148 
+
149  template<typename T, qualifier Q>
+
150  GLM_FUNC_DECL vec<3, T, Q> operator*(vec<3, T, Q> const& v, qua<T, Q> const& q);
+
151 
+
152  template<typename T, qualifier Q>
+
153  GLM_FUNC_DECL vec<4, T, Q> operator*(qua<T, Q> const& q, vec<4, T, Q> const& v);
+
154 
+
155  template<typename T, qualifier Q>
+
156  GLM_FUNC_DECL vec<4, T, Q> operator*(vec<4, T, Q> const& v, qua<T, Q> const& q);
+
157 
+
158  template<typename T, qualifier Q>
+
159  GLM_FUNC_DECL qua<T, Q> operator*(qua<T, Q> const& q, T const& s);
+
160 
+
161  template<typename T, qualifier Q>
+
162  GLM_FUNC_DECL qua<T, Q> operator*(T const& s, qua<T, Q> const& q);
+
163 
+
164  template<typename T, qualifier Q>
+
165  GLM_FUNC_DECL qua<T, Q> operator/(qua<T, Q> const& q, T const& s);
+
166 
+
167  // -- Boolean operators --
+
168 
+
169  template<typename T, qualifier Q>
+
170  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(qua<T, Q> const& q1, qua<T, Q> const& q2);
+
171 
+
172  template<typename T, qualifier Q>
+
173  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(qua<T, Q> const& q1, qua<T, Q> const& q2);
+
174 } //namespace glm
+
175 
+
176 #ifndef GLM_EXTERNAL_TEMPLATE
+
177 #include "type_quat.inl"
+
178 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles(qua< T, Q > const &x)
Returns euler angles, pitch as x, yaw as y, roll as z.
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00177.html b/external/include/glm-0.9.9.8/doc/api/a00177.html index 326706add8..9a6bc37d59 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00177.html +++ b/external/include/glm-0.9.9.8/doc/api/a00177.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: type_trait.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_trait.hpp File Reference
-
-
- -

GLM_GTX_type_trait -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTX_type_trait

-
See also
Core features (dependence)
- -

Definition in file type_trait.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_trait.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_trait.hpp File Reference
+
+
+ +

GLM_GTX_type_trait +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTX_type_trait

+
See also
Core features (dependence)
+ +

Definition in file type_trait.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00177_source.html b/external/include/glm-0.9.9.8/doc/api/a00177_source.html index 8ac53901d4..eb44912e21 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00177_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00177_source.html @@ -1,171 +1,171 @@ - - - - - - -0.9.9 API documentation: type_trait.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_trait.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
16 # ifndef GLM_ENABLE_EXPERIMENTAL
-
17 # pragma message("GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
18 # else
-
19 # pragma message("GLM: GLM_GTX_type_trait extension included")
-
20 # endif
-
21 #endif
-
22 
-
23 // Dependency:
-
24 #include "../detail/qualifier.hpp"
-
25 #include "../gtc/quaternion.hpp"
-
26 #include "../gtx/dual_quaternion.hpp"
-
27 
-
28 namespace glm
-
29 {
-
32 
-
33  template<typename T>
-
34  struct type
-
35  {
-
36  static bool const is_vec = false;
-
37  static bool const is_mat = false;
-
38  static bool const is_quat = false;
-
39  static length_t const components = 0;
-
40  static length_t const cols = 0;
-
41  static length_t const rows = 0;
-
42  };
-
43 
-
44  template<length_t L, typename T, qualifier Q>
-
45  struct type<vec<L, T, Q> >
-
46  {
-
47  static bool const is_vec = true;
-
48  static bool const is_mat = false;
-
49  static bool const is_quat = false;
-
50  static length_t const components = L;
-
51  };
-
52 
-
53  template<length_t C, length_t R, typename T, qualifier Q>
-
54  struct type<mat<C, R, T, Q> >
-
55  {
-
56  static bool const is_vec = false;
-
57  static bool const is_mat = true;
-
58  static bool const is_quat = false;
-
59  static length_t const components = C;
-
60  static length_t const cols = C;
-
61  static length_t const rows = R;
-
62  };
-
63 
-
64  template<typename T, qualifier Q>
-
65  struct type<qua<T, Q> >
-
66  {
-
67  static bool const is_vec = false;
-
68  static bool const is_mat = false;
-
69  static bool const is_quat = true;
-
70  static length_t const components = 4;
-
71  };
-
72 
-
73  template<typename T, qualifier Q>
-
74  struct type<tdualquat<T, Q> >
-
75  {
-
76  static bool const is_vec = false;
-
77  static bool const is_mat = false;
-
78  static bool const is_quat = true;
-
79  static length_t const components = 8;
-
80  };
-
81 
-
83 }//namespace glm
-
84 
-
85 #include "type_trait.inl"
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_trait.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_trait.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
16 # ifndef GLM_ENABLE_EXPERIMENTAL
+
17 # pragma message("GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
18 # else
+
19 # pragma message("GLM: GLM_GTX_type_trait extension included")
+
20 # endif
+
21 #endif
+
22 
+
23 // Dependency:
+
24 #include "../detail/qualifier.hpp"
+
25 #include "../gtc/quaternion.hpp"
+
26 #include "../gtx/dual_quaternion.hpp"
+
27 
+
28 namespace glm
+
29 {
+
32 
+
33  template<typename T>
+
34  struct type
+
35  {
+
36  static bool const is_vec = false;
+
37  static bool const is_mat = false;
+
38  static bool const is_quat = false;
+
39  static length_t const components = 0;
+
40  static length_t const cols = 0;
+
41  static length_t const rows = 0;
+
42  };
+
43 
+
44  template<length_t L, typename T, qualifier Q>
+
45  struct type<vec<L, T, Q> >
+
46  {
+
47  static bool const is_vec = true;
+
48  static bool const is_mat = false;
+
49  static bool const is_quat = false;
+
50  static length_t const components = L;
+
51  };
+
52 
+
53  template<length_t C, length_t R, typename T, qualifier Q>
+
54  struct type<mat<C, R, T, Q> >
+
55  {
+
56  static bool const is_vec = false;
+
57  static bool const is_mat = true;
+
58  static bool const is_quat = false;
+
59  static length_t const components = C;
+
60  static length_t const cols = C;
+
61  static length_t const rows = R;
+
62  };
+
63 
+
64  template<typename T, qualifier Q>
+
65  struct type<qua<T, Q> >
+
66  {
+
67  static bool const is_vec = false;
+
68  static bool const is_mat = false;
+
69  static bool const is_quat = true;
+
70  static length_t const components = 4;
+
71  };
+
72 
+
73  template<typename T, qualifier Q>
+
74  struct type<tdualquat<T, Q> >
+
75  {
+
76  static bool const is_vec = false;
+
77  static bool const is_mat = false;
+
78  static bool const is_quat = true;
+
79  static length_t const components = 8;
+
80  };
+
81 
+
83 }//namespace glm
+
84 
+
85 #include "type_trait.inl"
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00178.html b/external/include/glm-0.9.9.8/doc/api/a00178.html index 6c174a4fa0..6e3ebb0f4a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00178.html +++ b/external/include/glm-0.9.9.8/doc/api/a00178.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_vec1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec1.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_vec1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_vec1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec1.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_vec1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00178_source.html b/external/include/glm-0.9.9.8/doc/api/a00178_source.html index 08dc3dbf96..40d09e0f14 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00178_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00178_source.html @@ -1,402 +1,402 @@ - - - - - - -0.9.9 API documentation: type_vec1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec1.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "qualifier.hpp"
-
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
8 # include "_swizzle.hpp"
-
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
10 # include "_swizzle_func.hpp"
-
11 #endif
-
12 #include <cstddef>
-
13 
-
14 namespace glm
-
15 {
-
16  template<typename T, qualifier Q>
-
17  struct vec<1, T, Q>
-
18  {
-
19  // -- Implementation detail --
-
20 
-
21  typedef T value_type;
-
22  typedef vec<1, T, Q> type;
-
23  typedef vec<1, bool, Q> bool_type;
-
24 
-
25  // -- Data --
-
26 
-
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
28 # if GLM_COMPILER & GLM_COMPILER_GCC
-
29 # pragma GCC diagnostic push
-
30 # pragma GCC diagnostic ignored "-Wpedantic"
-
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
32 # pragma clang diagnostic push
-
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
-
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
-
35 # elif GLM_COMPILER & GLM_COMPILER_VC
-
36 # pragma warning(push)
-
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-
38 # endif
-
39 # endif
-
40 
-
41 # if GLM_CONFIG_XYZW_ONLY
-
42  T x;
-
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
-
44  union
-
45  {
-
46  T x;
-
47  T r;
-
48  T s;
-
49 
-
50  typename detail::storage<1, T, detail::is_aligned<Q>::value>::type data;
-
51 /*
-
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
53  _GLM_SWIZZLE1_2_MEMBERS(T, Q, x)
-
54  _GLM_SWIZZLE1_2_MEMBERS(T, Q, r)
-
55  _GLM_SWIZZLE1_2_MEMBERS(T, Q, s)
-
56  _GLM_SWIZZLE1_3_MEMBERS(T, Q, x)
-
57  _GLM_SWIZZLE1_3_MEMBERS(T, Q, r)
-
58  _GLM_SWIZZLE1_3_MEMBERS(T, Q, s)
-
59  _GLM_SWIZZLE1_4_MEMBERS(T, Q, x)
-
60  _GLM_SWIZZLE1_4_MEMBERS(T, Q, r)
-
61  _GLM_SWIZZLE1_4_MEMBERS(T, Q, s)
-
62 # endif
-
63 */
-
64  };
-
65 # else
-
66  union {T x, r, s;};
-
67 /*
-
68 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
69  GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, Q)
-
70 # endif
-
71 */
-
72 # endif
-
73 
-
74 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
75 # if GLM_COMPILER & GLM_COMPILER_CLANG
-
76 # pragma clang diagnostic pop
-
77 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
78 # pragma GCC diagnostic pop
-
79 # elif GLM_COMPILER & GLM_COMPILER_VC
-
80 # pragma warning(pop)
-
81 # endif
-
82 # endif
-
83 
-
84  // -- Component accesses --
-
85 
-
87  typedef length_t length_type;
-
88  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 1;}
-
89 
-
90  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
-
91  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
-
92 
-
93  // -- Implicit basic constructors --
-
94 
-
95  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
-
96  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
-
97  template<qualifier P>
-
98  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, T, P> const& v);
-
99 
-
100  // -- Explicit basic constructors --
-
101 
-
102  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
-
103 
-
104  // -- Conversion vector constructors --
-
105 
-
107  template<typename U, qualifier P>
-
108  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<2, U, P> const& v);
-
110  template<typename U, qualifier P>
-
111  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
-
113  template<typename U, qualifier P>
-
114  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
-
115 
-
117  template<typename U, qualifier P>
-
118  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<1, U, P> const& v);
-
119 
-
120  // -- Swizzle constructors --
-
121 /*
-
122 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
123  template<int E0>
-
124  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<1, T, Q, E0, -1,-2,-3> const& that)
-
125  {
-
126  *this = that();
-
127  }
-
128 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
129 */
-
130  // -- Unary arithmetic operators --
-
131 
-
132  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec const& v) GLM_DEFAULT;
-
133 
-
134  template<typename U>
-
135  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec<1, U, Q> const& v);
-
136  template<typename U>
-
137  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator+=(U scalar);
-
138  template<typename U>
-
139  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator+=(vec<1, U, Q> const& v);
-
140  template<typename U>
-
141  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator-=(U scalar);
-
142  template<typename U>
-
143  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator-=(vec<1, U, Q> const& v);
-
144  template<typename U>
-
145  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator*=(U scalar);
-
146  template<typename U>
-
147  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator*=(vec<1, U, Q> const& v);
-
148  template<typename U>
-
149  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator/=(U scalar);
-
150  template<typename U>
-
151  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator/=(vec<1, U, Q> const& v);
-
152 
-
153  // -- Increment and decrement operators --
-
154 
-
155  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator++();
-
156  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator--();
-
157  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator++(int);
-
158  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator--(int);
-
159 
-
160  // -- Unary bit operators --
-
161 
-
162  template<typename U>
-
163  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator%=(U scalar);
-
164  template<typename U>
-
165  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator%=(vec<1, U, Q> const& v);
-
166  template<typename U>
-
167  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator&=(U scalar);
-
168  template<typename U>
-
169  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator&=(vec<1, U, Q> const& v);
-
170  template<typename U>
-
171  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator|=(U scalar);
-
172  template<typename U>
-
173  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator|=(vec<1, U, Q> const& v);
-
174  template<typename U>
-
175  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator^=(U scalar);
-
176  template<typename U>
-
177  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator^=(vec<1, U, Q> const& v);
-
178  template<typename U>
-
179  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator<<=(U scalar);
-
180  template<typename U>
-
181  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator<<=(vec<1, U, Q> const& v);
-
182  template<typename U>
-
183  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator>>=(U scalar);
-
184  template<typename U>
-
185  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator>>=(vec<1, U, Q> const& v);
-
186  };
-
187 
-
188  // -- Unary operators --
-
189 
-
190  template<typename T, qualifier Q>
-
191  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v);
-
192 
-
193  template<typename T, qualifier Q>
-
194  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v);
-
195 
-
196  // -- Binary operators --
-
197 
-
198  template<typename T, qualifier Q>
-
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v, T scalar);
-
200 
-
201  template<typename T, qualifier Q>
-
202  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(T scalar, vec<1, T, Q> const& v);
-
203 
-
204  template<typename T, qualifier Q>
-
205  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
206 
-
207  template<typename T, qualifier Q>
-
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v, T scalar);
-
209 
-
210  template<typename T, qualifier Q>
-
211  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(T scalar, vec<1, T, Q> const& v);
-
212 
-
213  template<typename T, qualifier Q>
-
214  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
215 
-
216  template<typename T, qualifier Q>
-
217  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v, T scalar);
-
218 
-
219  template<typename T, qualifier Q>
-
220  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(T scalar, vec<1, T, Q> const& v);
-
221 
-
222  template<typename T, qualifier Q>
-
223  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
224 
-
225  template<typename T, qualifier Q>
-
226  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q> const& v, T scalar);
-
227 
-
228  template<typename T, qualifier Q>
-
229  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(T scalar, vec<1, T, Q> const& v);
-
230 
-
231  template<typename T, qualifier Q>
-
232  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
233 
-
234  template<typename T, qualifier Q>
-
235  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q> const& v, T scalar);
-
236 
-
237  template<typename T, qualifier Q>
-
238  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(T scalar, vec<1, T, Q> const& v);
-
239 
-
240  template<typename T, qualifier Q>
-
241  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
242 
-
243  template<typename T, qualifier Q>
-
244  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q> const& v, T scalar);
-
245 
-
246  template<typename T, qualifier Q>
-
247  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(T scalar, vec<1, T, Q> const& v);
-
248 
-
249  template<typename T, qualifier Q>
-
250  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
251 
-
252  template<typename T, qualifier Q>
-
253  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q> const& v, T scalar);
-
254 
-
255  template<typename T, qualifier Q>
-
256  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(T scalar, vec<1, T, Q> const& v);
-
257 
-
258  template<typename T, qualifier Q>
-
259  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
260 
-
261  template<typename T, qualifier Q>
-
262  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q> const& v, T scalar);
-
263 
-
264  template<typename T, qualifier Q>
-
265  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(T scalar, vec<1, T, Q> const& v);
-
266 
-
267  template<typename T, qualifier Q>
-
268  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
269 
-
270  template<typename T, qualifier Q>
-
271  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q> const& v, T scalar);
-
272 
-
273  template<typename T, qualifier Q>
-
274  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(T scalar, vec<1, T, Q> const& v);
-
275 
-
276  template<typename T, qualifier Q>
-
277  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
278 
-
279  template<typename T, qualifier Q>
-
280  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q> const& v, T scalar);
-
281 
-
282  template<typename T, qualifier Q>
-
283  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(T scalar, vec<1, T, Q> const& v);
-
284 
-
285  template<typename T, qualifier Q>
-
286  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
287 
-
288  template<typename T, qualifier Q>
-
289  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator~(vec<1, T, Q> const& v);
-
290 
-
291  // -- Boolean operators --
-
292 
-
293  template<typename T, qualifier Q>
-
294  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
295 
-
296  template<typename T, qualifier Q>
-
297  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
-
298 
-
299  template<qualifier Q>
-
300  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, bool, Q> operator&&(vec<1, bool, Q> const& v1, vec<1, bool, Q> const& v2);
-
301 
-
302  template<qualifier Q>
-
303  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, bool, Q> operator||(vec<1, bool, Q> const& v1, vec<1, bool, Q> const& v2);
-
304 }//namespace glm
-
305 
-
306 #ifndef GLM_EXTERNAL_TEMPLATE
-
307 #include "type_vec1.inl"
-
308 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_vec1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec1.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "qualifier.hpp"
+
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
8 # include "_swizzle.hpp"
+
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
10 # include "_swizzle_func.hpp"
+
11 #endif
+
12 #include <cstddef>
+
13 
+
14 namespace glm
+
15 {
+
16  template<typename T, qualifier Q>
+
17  struct vec<1, T, Q>
+
18  {
+
19  // -- Implementation detail --
+
20 
+
21  typedef T value_type;
+
22  typedef vec<1, T, Q> type;
+
23  typedef vec<1, bool, Q> bool_type;
+
24 
+
25  // -- Data --
+
26 
+
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
28 # if GLM_COMPILER & GLM_COMPILER_GCC
+
29 # pragma GCC diagnostic push
+
30 # pragma GCC diagnostic ignored "-Wpedantic"
+
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
32 # pragma clang diagnostic push
+
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
+
35 # elif GLM_COMPILER & GLM_COMPILER_VC
+
36 # pragma warning(push)
+
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+
38 # endif
+
39 # endif
+
40 
+
41 # if GLM_CONFIG_XYZW_ONLY
+
42  T x;
+
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
+
44  union
+
45  {
+
46  T x;
+
47  T r;
+
48  T s;
+
49 
+
50  typename detail::storage<1, T, detail::is_aligned<Q>::value>::type data;
+
51 /*
+
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
53  _GLM_SWIZZLE1_2_MEMBERS(T, Q, x)
+
54  _GLM_SWIZZLE1_2_MEMBERS(T, Q, r)
+
55  _GLM_SWIZZLE1_2_MEMBERS(T, Q, s)
+
56  _GLM_SWIZZLE1_3_MEMBERS(T, Q, x)
+
57  _GLM_SWIZZLE1_3_MEMBERS(T, Q, r)
+
58  _GLM_SWIZZLE1_3_MEMBERS(T, Q, s)
+
59  _GLM_SWIZZLE1_4_MEMBERS(T, Q, x)
+
60  _GLM_SWIZZLE1_4_MEMBERS(T, Q, r)
+
61  _GLM_SWIZZLE1_4_MEMBERS(T, Q, s)
+
62 # endif
+
63 */
+
64  };
+
65 # else
+
66  union {T x, r, s;};
+
67 /*
+
68 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
69  GLM_SWIZZLE_GEN_VEC_FROM_VEC1(T, Q)
+
70 # endif
+
71 */
+
72 # endif
+
73 
+
74 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
75 # if GLM_COMPILER & GLM_COMPILER_CLANG
+
76 # pragma clang diagnostic pop
+
77 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
78 # pragma GCC diagnostic pop
+
79 # elif GLM_COMPILER & GLM_COMPILER_VC
+
80 # pragma warning(pop)
+
81 # endif
+
82 # endif
+
83 
+
84  // -- Component accesses --
+
85 
+
87  typedef length_t length_type;
+
88  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 1;}
+
89 
+
90  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
+
91  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
+
92 
+
93  // -- Implicit basic constructors --
+
94 
+
95  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
+
96  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
+
97  template<qualifier P>
+
98  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, T, P> const& v);
+
99 
+
100  // -- Explicit basic constructors --
+
101 
+
102  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
+
103 
+
104  // -- Conversion vector constructors --
+
105 
+
107  template<typename U, qualifier P>
+
108  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<2, U, P> const& v);
+
110  template<typename U, qualifier P>
+
111  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
+
113  template<typename U, qualifier P>
+
114  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
+
115 
+
117  template<typename U, qualifier P>
+
118  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<1, U, P> const& v);
+
119 
+
120  // -- Swizzle constructors --
+
121 /*
+
122 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
123  template<int E0>
+
124  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<1, T, Q, E0, -1,-2,-3> const& that)
+
125  {
+
126  *this = that();
+
127  }
+
128 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
129 */
+
130  // -- Unary arithmetic operators --
+
131 
+
132  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec const& v) GLM_DEFAULT;
+
133 
+
134  template<typename U>
+
135  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator=(vec<1, U, Q> const& v);
+
136  template<typename U>
+
137  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator+=(U scalar);
+
138  template<typename U>
+
139  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator+=(vec<1, U, Q> const& v);
+
140  template<typename U>
+
141  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator-=(U scalar);
+
142  template<typename U>
+
143  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator-=(vec<1, U, Q> const& v);
+
144  template<typename U>
+
145  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator*=(U scalar);
+
146  template<typename U>
+
147  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator*=(vec<1, U, Q> const& v);
+
148  template<typename U>
+
149  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator/=(U scalar);
+
150  template<typename U>
+
151  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator/=(vec<1, U, Q> const& v);
+
152 
+
153  // -- Increment and decrement operators --
+
154 
+
155  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator++();
+
156  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator--();
+
157  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator++(int);
+
158  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator--(int);
+
159 
+
160  // -- Unary bit operators --
+
161 
+
162  template<typename U>
+
163  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator%=(U scalar);
+
164  template<typename U>
+
165  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator%=(vec<1, U, Q> const& v);
+
166  template<typename U>
+
167  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator&=(U scalar);
+
168  template<typename U>
+
169  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator&=(vec<1, U, Q> const& v);
+
170  template<typename U>
+
171  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator|=(U scalar);
+
172  template<typename U>
+
173  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator|=(vec<1, U, Q> const& v);
+
174  template<typename U>
+
175  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator^=(U scalar);
+
176  template<typename U>
+
177  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator^=(vec<1, U, Q> const& v);
+
178  template<typename U>
+
179  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator<<=(U scalar);
+
180  template<typename U>
+
181  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator<<=(vec<1, U, Q> const& v);
+
182  template<typename U>
+
183  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator>>=(U scalar);
+
184  template<typename U>
+
185  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> & operator>>=(vec<1, U, Q> const& v);
+
186  };
+
187 
+
188  // -- Unary operators --
+
189 
+
190  template<typename T, qualifier Q>
+
191  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v);
+
192 
+
193  template<typename T, qualifier Q>
+
194  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v);
+
195 
+
196  // -- Binary operators --
+
197 
+
198  template<typename T, qualifier Q>
+
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v, T scalar);
+
200 
+
201  template<typename T, qualifier Q>
+
202  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(T scalar, vec<1, T, Q> const& v);
+
203 
+
204  template<typename T, qualifier Q>
+
205  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator+(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
206 
+
207  template<typename T, qualifier Q>
+
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v, T scalar);
+
209 
+
210  template<typename T, qualifier Q>
+
211  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(T scalar, vec<1, T, Q> const& v);
+
212 
+
213  template<typename T, qualifier Q>
+
214  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator-(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
215 
+
216  template<typename T, qualifier Q>
+
217  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v, T scalar);
+
218 
+
219  template<typename T, qualifier Q>
+
220  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(T scalar, vec<1, T, Q> const& v);
+
221 
+
222  template<typename T, qualifier Q>
+
223  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator*(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
224 
+
225  template<typename T, qualifier Q>
+
226  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q> const& v, T scalar);
+
227 
+
228  template<typename T, qualifier Q>
+
229  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(T scalar, vec<1, T, Q> const& v);
+
230 
+
231  template<typename T, qualifier Q>
+
232  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator/(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
233 
+
234  template<typename T, qualifier Q>
+
235  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q> const& v, T scalar);
+
236 
+
237  template<typename T, qualifier Q>
+
238  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(T scalar, vec<1, T, Q> const& v);
+
239 
+
240  template<typename T, qualifier Q>
+
241  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator%(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
242 
+
243  template<typename T, qualifier Q>
+
244  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q> const& v, T scalar);
+
245 
+
246  template<typename T, qualifier Q>
+
247  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(T scalar, vec<1, T, Q> const& v);
+
248 
+
249  template<typename T, qualifier Q>
+
250  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator&(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
251 
+
252  template<typename T, qualifier Q>
+
253  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q> const& v, T scalar);
+
254 
+
255  template<typename T, qualifier Q>
+
256  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(T scalar, vec<1, T, Q> const& v);
+
257 
+
258  template<typename T, qualifier Q>
+
259  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator|(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
260 
+
261  template<typename T, qualifier Q>
+
262  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q> const& v, T scalar);
+
263 
+
264  template<typename T, qualifier Q>
+
265  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(T scalar, vec<1, T, Q> const& v);
+
266 
+
267  template<typename T, qualifier Q>
+
268  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator^(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
269 
+
270  template<typename T, qualifier Q>
+
271  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q> const& v, T scalar);
+
272 
+
273  template<typename T, qualifier Q>
+
274  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(T scalar, vec<1, T, Q> const& v);
+
275 
+
276  template<typename T, qualifier Q>
+
277  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator<<(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
278 
+
279  template<typename T, qualifier Q>
+
280  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q> const& v, T scalar);
+
281 
+
282  template<typename T, qualifier Q>
+
283  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(T scalar, vec<1, T, Q> const& v);
+
284 
+
285  template<typename T, qualifier Q>
+
286  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator>>(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
287 
+
288  template<typename T, qualifier Q>
+
289  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, T, Q> operator~(vec<1, T, Q> const& v);
+
290 
+
291  // -- Boolean operators --
+
292 
+
293  template<typename T, qualifier Q>
+
294  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
295 
+
296  template<typename T, qualifier Q>
+
297  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<1, T, Q> const& v1, vec<1, T, Q> const& v2);
+
298 
+
299  template<qualifier Q>
+
300  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, bool, Q> operator&&(vec<1, bool, Q> const& v1, vec<1, bool, Q> const& v2);
+
301 
+
302  template<qualifier Q>
+
303  GLM_FUNC_DECL GLM_CONSTEXPR vec<1, bool, Q> operator||(vec<1, bool, Q> const& v1, vec<1, bool, Q> const& v2);
+
304 }//namespace glm
+
305 
+
306 #ifndef GLM_EXTERNAL_TEMPLATE
+
307 #include "type_vec1.inl"
+
308 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00179.html b/external/include/glm-0.9.9.8/doc/api/a00179.html index 8592261df5..ec04224a4b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00179.html +++ b/external/include/glm-0.9.9.8/doc/api/a00179.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_vec2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_vec2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_vec2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_vec2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00179_source.html b/external/include/glm-0.9.9.8/doc/api/a00179_source.html index f5b4bb34f9..47c1f4dde8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00179_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00179_source.html @@ -1,493 +1,493 @@ - - - - - - -0.9.9 API documentation: type_vec2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "qualifier.hpp"
-
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
8 # include "_swizzle.hpp"
-
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
10 # include "_swizzle_func.hpp"
-
11 #endif
-
12 #include <cstddef>
-
13 
-
14 namespace glm
-
15 {
-
16  template<typename T, qualifier Q>
-
17  struct vec<2, T, Q>
-
18  {
-
19  // -- Implementation detail --
-
20 
-
21  typedef T value_type;
-
22  typedef vec<2, T, Q> type;
-
23  typedef vec<2, bool, Q> bool_type;
-
24 
-
25  // -- Data --
-
26 
-
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
28 # if GLM_COMPILER & GLM_COMPILER_GCC
-
29 # pragma GCC diagnostic push
-
30 # pragma GCC diagnostic ignored "-Wpedantic"
-
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
32 # pragma clang diagnostic push
-
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
-
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
-
35 # elif GLM_COMPILER & GLM_COMPILER_VC
-
36 # pragma warning(push)
-
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-
38 # endif
-
39 # endif
-
40 
-
41 # if GLM_CONFIG_XYZW_ONLY
-
42  T x, y;
-
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
-
44  union
-
45  {
-
46  struct{ T x, y; };
-
47  struct{ T r, g; };
-
48  struct{ T s, t; };
-
49 
-
50  typename detail::storage<2, T, detail::is_aligned<Q>::value>::type data;
-
51 
-
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
53  GLM_SWIZZLE2_2_MEMBERS(T, Q, x, y)
-
54  GLM_SWIZZLE2_2_MEMBERS(T, Q, r, g)
-
55  GLM_SWIZZLE2_2_MEMBERS(T, Q, s, t)
-
56  GLM_SWIZZLE2_3_MEMBERS(T, Q, x, y)
-
57  GLM_SWIZZLE2_3_MEMBERS(T, Q, r, g)
-
58  GLM_SWIZZLE2_3_MEMBERS(T, Q, s, t)
-
59  GLM_SWIZZLE2_4_MEMBERS(T, Q, x, y)
-
60  GLM_SWIZZLE2_4_MEMBERS(T, Q, r, g)
-
61  GLM_SWIZZLE2_4_MEMBERS(T, Q, s, t)
-
62 # endif
-
63  };
-
64 # else
-
65  union {T x, r, s;};
-
66  union {T y, g, t;};
-
67 
-
68 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
69  GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, Q)
-
70 # endif//GLM_CONFIG_SWIZZLE
-
71 # endif
-
72 
-
73 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
74 # if GLM_COMPILER & GLM_COMPILER_CLANG
-
75 # pragma clang diagnostic pop
-
76 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
77 # pragma GCC diagnostic pop
-
78 # elif GLM_COMPILER & GLM_COMPILER_VC
-
79 # pragma warning(pop)
-
80 # endif
-
81 # endif
-
82 
-
83  // -- Component accesses --
-
84 
-
86  typedef length_t length_type;
-
87  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 2;}
-
88 
-
89  GLM_FUNC_DECL GLM_CONSTEXPR T& operator[](length_type i);
-
90  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
-
91 
-
92  // -- Implicit basic constructors --
-
93 
-
94  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
-
95  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
-
96  template<qualifier P>
-
97  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, T, P> const& v);
-
98 
-
99  // -- Explicit basic constructors --
-
100 
-
101  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
-
102  GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y);
-
103 
-
104  // -- Conversion constructors --
-
105 
-
106  template<typename U, qualifier P>
-
107  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
-
108 
-
110  template<typename A, typename B>
-
111  GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, B y);
-
112  template<typename A, typename B>
-
113  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, Q> const& x, B y);
-
114  template<typename A, typename B>
-
115  GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, vec<1, B, Q> const& y);
-
116  template<typename A, typename B>
-
117  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, Q> const& x, vec<1, B, Q> const& y);
-
118 
-
119  // -- Conversion vector constructors --
-
120 
-
122  template<typename U, qualifier P>
-
123  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
-
125  template<typename U, qualifier P>
-
126  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
-
127 
-
129  template<typename U, qualifier P>
-
130  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<2, U, P> const& v);
-
131 
-
132  // -- Swizzle constructors --
-
133 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
134  template<int E0, int E1>
-
135  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1,-1,-2> const& that)
-
136  {
-
137  *this = that();
-
138  }
-
139 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
140 
-
141  // -- Unary arithmetic operators --
-
142 
-
143  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT;
-
144 
-
145  template<typename U>
-
146  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec<2, U, Q> const& v);
-
147  template<typename U>
-
148  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(U scalar);
-
149  template<typename U>
-
150  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(vec<1, U, Q> const& v);
-
151  template<typename U>
-
152  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(vec<2, U, Q> const& v);
-
153  template<typename U>
-
154  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(U scalar);
-
155  template<typename U>
-
156  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(vec<1, U, Q> const& v);
-
157  template<typename U>
-
158  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(vec<2, U, Q> const& v);
-
159  template<typename U>
-
160  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(U scalar);
-
161  template<typename U>
-
162  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(vec<1, U, Q> const& v);
-
163  template<typename U>
-
164  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(vec<2, U, Q> const& v);
-
165  template<typename U>
-
166  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(U scalar);
-
167  template<typename U>
-
168  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(vec<1, U, Q> const& v);
-
169  template<typename U>
-
170  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(vec<2, U, Q> const& v);
-
171 
-
172  // -- Increment and decrement operators --
-
173 
-
174  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator++();
-
175  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator--();
-
176  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator++(int);
-
177  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator--(int);
-
178 
-
179  // -- Unary bit operators --
-
180 
-
181  template<typename U>
-
182  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(U scalar);
-
183  template<typename U>
-
184  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(vec<1, U, Q> const& v);
-
185  template<typename U>
-
186  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(vec<2, U, Q> const& v);
-
187  template<typename U>
-
188  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(U scalar);
-
189  template<typename U>
-
190  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(vec<1, U, Q> const& v);
-
191  template<typename U>
-
192  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(vec<2, U, Q> const& v);
-
193  template<typename U>
-
194  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(U scalar);
-
195  template<typename U>
-
196  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(vec<1, U, Q> const& v);
-
197  template<typename U>
-
198  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(vec<2, U, Q> const& v);
-
199  template<typename U>
-
200  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(U scalar);
-
201  template<typename U>
-
202  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(vec<1, U, Q> const& v);
-
203  template<typename U>
-
204  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(vec<2, U, Q> const& v);
-
205  template<typename U>
-
206  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(U scalar);
-
207  template<typename U>
-
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(vec<1, U, Q> const& v);
-
209  template<typename U>
-
210  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(vec<2, U, Q> const& v);
-
211  template<typename U>
-
212  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(U scalar);
-
213  template<typename U>
-
214  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(vec<1, U, Q> const& v);
-
215  template<typename U>
-
216  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(vec<2, U, Q> const& v);
-
217  };
-
218 
-
219  // -- Unary operators --
-
220 
-
221  template<typename T, qualifier Q>
-
222  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v);
-
223 
-
224  template<typename T, qualifier Q>
-
225  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v);
-
226 
-
227  // -- Binary operators --
-
228 
-
229  template<typename T, qualifier Q>
-
230  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v, T scalar);
-
231 
-
232  template<typename T, qualifier Q>
-
233  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
234 
-
235  template<typename T, qualifier Q>
-
236  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(T scalar, vec<2, T, Q> const& v);
-
237 
-
238  template<typename T, qualifier Q>
-
239  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
240 
-
241  template<typename T, qualifier Q>
-
242  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
243 
-
244  template<typename T, qualifier Q>
-
245  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v, T scalar);
-
246 
-
247  template<typename T, qualifier Q>
-
248  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
249 
-
250  template<typename T, qualifier Q>
-
251  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(T scalar, vec<2, T, Q> const& v);
-
252 
-
253  template<typename T, qualifier Q>
-
254  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
255 
-
256  template<typename T, qualifier Q>
-
257  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
258 
-
259  template<typename T, qualifier Q>
-
260  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v, T scalar);
-
261 
-
262  template<typename T, qualifier Q>
-
263  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
264 
-
265  template<typename T, qualifier Q>
-
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(T scalar, vec<2, T, Q> const& v);
-
267 
-
268  template<typename T, qualifier Q>
-
269  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
270 
-
271  template<typename T, qualifier Q>
-
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
273 
-
274  template<typename T, qualifier Q>
-
275  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v, T scalar);
-
276 
-
277  template<typename T, qualifier Q>
-
278  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
279 
-
280  template<typename T, qualifier Q>
-
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(T scalar, vec<2, T, Q> const& v);
-
282 
-
283  template<typename T, qualifier Q>
-
284  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
285 
-
286  template<typename T, qualifier Q>
-
287  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
288 
-
289  template<typename T, qualifier Q>
-
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v, T scalar);
-
291 
-
292  template<typename T, qualifier Q>
-
293  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
294 
-
295  template<typename T, qualifier Q>
-
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(T scalar, vec<2, T, Q> const& v);
-
297 
-
298  template<typename T, qualifier Q>
-
299  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
300 
-
301  template<typename T, qualifier Q>
-
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
303 
-
304  template<typename T, qualifier Q>
-
305  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v, T scalar);
-
306 
-
307  template<typename T, qualifier Q>
-
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
309 
-
310  template<typename T, qualifier Q>
-
311  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(T scalar, vec<2, T, Q> const& v);
-
312 
-
313  template<typename T, qualifier Q>
-
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
315 
-
316  template<typename T, qualifier Q>
-
317  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
318 
-
319  template<typename T, qualifier Q>
-
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v, T scalar);
-
321 
-
322  template<typename T, qualifier Q>
-
323  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
324 
-
325  template<typename T, qualifier Q>
-
326  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(T scalar, vec<2, T, Q> const& v);
-
327 
-
328  template<typename T, qualifier Q>
-
329  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
330 
-
331  template<typename T, qualifier Q>
-
332  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
333 
-
334  template<typename T, qualifier Q>
-
335  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v, T scalar);
-
336 
-
337  template<typename T, qualifier Q>
-
338  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
339 
-
340  template<typename T, qualifier Q>
-
341  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(T scalar, vec<2, T, Q> const& v);
-
342 
-
343  template<typename T, qualifier Q>
-
344  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
345 
-
346  template<typename T, qualifier Q>
-
347  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
348 
-
349  template<typename T, qualifier Q>
-
350  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v, T scalar);
-
351 
-
352  template<typename T, qualifier Q>
-
353  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
354 
-
355  template<typename T, qualifier Q>
-
356  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(T scalar, vec<2, T, Q> const& v);
-
357 
-
358  template<typename T, qualifier Q>
-
359  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
360 
-
361  template<typename T, qualifier Q>
-
362  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
363 
-
364  template<typename T, qualifier Q>
-
365  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v, T scalar);
-
366 
-
367  template<typename T, qualifier Q>
-
368  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
-
369 
-
370  template<typename T, qualifier Q>
-
371  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(T scalar, vec<2, T, Q> const& v);
-
372 
-
373  template<typename T, qualifier Q>
-
374  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
-
375 
-
376  template<typename T, qualifier Q>
-
377  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
378 
-
379  template<typename T, qualifier Q>
-
380  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator~(vec<2, T, Q> const& v);
-
381 
-
382  // -- Boolean operators --
-
383 
-
384  template<typename T, qualifier Q>
-
385  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
386 
-
387  template<typename T, qualifier Q>
-
388  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
-
389 
-
390  template<qualifier Q>
-
391  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, bool, Q> operator&&(vec<2, bool, Q> const& v1, vec<2, bool, Q> const& v2);
-
392 
-
393  template<qualifier Q>
-
394  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, bool, Q> operator||(vec<2, bool, Q> const& v1, vec<2, bool, Q> const& v2);
-
395 }//namespace glm
-
396 
-
397 #ifndef GLM_EXTERNAL_TEMPLATE
-
398 #include "type_vec2.inl"
-
399 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_vec2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "qualifier.hpp"
+
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
8 # include "_swizzle.hpp"
+
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
10 # include "_swizzle_func.hpp"
+
11 #endif
+
12 #include <cstddef>
+
13 
+
14 namespace glm
+
15 {
+
16  template<typename T, qualifier Q>
+
17  struct vec<2, T, Q>
+
18  {
+
19  // -- Implementation detail --
+
20 
+
21  typedef T value_type;
+
22  typedef vec<2, T, Q> type;
+
23  typedef vec<2, bool, Q> bool_type;
+
24 
+
25  // -- Data --
+
26 
+
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
28 # if GLM_COMPILER & GLM_COMPILER_GCC
+
29 # pragma GCC diagnostic push
+
30 # pragma GCC diagnostic ignored "-Wpedantic"
+
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
32 # pragma clang diagnostic push
+
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
+
35 # elif GLM_COMPILER & GLM_COMPILER_VC
+
36 # pragma warning(push)
+
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+
38 # endif
+
39 # endif
+
40 
+
41 # if GLM_CONFIG_XYZW_ONLY
+
42  T x, y;
+
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
+
44  union
+
45  {
+
46  struct{ T x, y; };
+
47  struct{ T r, g; };
+
48  struct{ T s, t; };
+
49 
+
50  typename detail::storage<2, T, detail::is_aligned<Q>::value>::type data;
+
51 
+
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
53  GLM_SWIZZLE2_2_MEMBERS(T, Q, x, y)
+
54  GLM_SWIZZLE2_2_MEMBERS(T, Q, r, g)
+
55  GLM_SWIZZLE2_2_MEMBERS(T, Q, s, t)
+
56  GLM_SWIZZLE2_3_MEMBERS(T, Q, x, y)
+
57  GLM_SWIZZLE2_3_MEMBERS(T, Q, r, g)
+
58  GLM_SWIZZLE2_3_MEMBERS(T, Q, s, t)
+
59  GLM_SWIZZLE2_4_MEMBERS(T, Q, x, y)
+
60  GLM_SWIZZLE2_4_MEMBERS(T, Q, r, g)
+
61  GLM_SWIZZLE2_4_MEMBERS(T, Q, s, t)
+
62 # endif
+
63  };
+
64 # else
+
65  union {T x, r, s;};
+
66  union {T y, g, t;};
+
67 
+
68 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
69  GLM_SWIZZLE_GEN_VEC_FROM_VEC2(T, Q)
+
70 # endif//GLM_CONFIG_SWIZZLE
+
71 # endif
+
72 
+
73 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
74 # if GLM_COMPILER & GLM_COMPILER_CLANG
+
75 # pragma clang diagnostic pop
+
76 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
77 # pragma GCC diagnostic pop
+
78 # elif GLM_COMPILER & GLM_COMPILER_VC
+
79 # pragma warning(pop)
+
80 # endif
+
81 # endif
+
82 
+
83  // -- Component accesses --
+
84 
+
86  typedef length_t length_type;
+
87  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 2;}
+
88 
+
89  GLM_FUNC_DECL GLM_CONSTEXPR T& operator[](length_type i);
+
90  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
+
91 
+
92  // -- Implicit basic constructors --
+
93 
+
94  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
+
95  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
+
96  template<qualifier P>
+
97  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, T, P> const& v);
+
98 
+
99  // -- Explicit basic constructors --
+
100 
+
101  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
+
102  GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y);
+
103 
+
104  // -- Conversion constructors --
+
105 
+
106  template<typename U, qualifier P>
+
107  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
+
108 
+
110  template<typename A, typename B>
+
111  GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, B y);
+
112  template<typename A, typename B>
+
113  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, Q> const& x, B y);
+
114  template<typename A, typename B>
+
115  GLM_FUNC_DECL GLM_CONSTEXPR vec(A x, vec<1, B, Q> const& y);
+
116  template<typename A, typename B>
+
117  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, Q> const& x, vec<1, B, Q> const& y);
+
118 
+
119  // -- Conversion vector constructors --
+
120 
+
122  template<typename U, qualifier P>
+
123  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
+
125  template<typename U, qualifier P>
+
126  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
+
127 
+
129  template<typename U, qualifier P>
+
130  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<2, U, P> const& v);
+
131 
+
132  // -- Swizzle constructors --
+
133 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
134  template<int E0, int E1>
+
135  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1,-1,-2> const& that)
+
136  {
+
137  *this = that();
+
138  }
+
139 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
140 
+
141  // -- Unary arithmetic operators --
+
142 
+
143  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec const& v) GLM_DEFAULT;
+
144 
+
145  template<typename U>
+
146  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator=(vec<2, U, Q> const& v);
+
147  template<typename U>
+
148  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(U scalar);
+
149  template<typename U>
+
150  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(vec<1, U, Q> const& v);
+
151  template<typename U>
+
152  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator+=(vec<2, U, Q> const& v);
+
153  template<typename U>
+
154  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(U scalar);
+
155  template<typename U>
+
156  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(vec<1, U, Q> const& v);
+
157  template<typename U>
+
158  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator-=(vec<2, U, Q> const& v);
+
159  template<typename U>
+
160  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(U scalar);
+
161  template<typename U>
+
162  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(vec<1, U, Q> const& v);
+
163  template<typename U>
+
164  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator*=(vec<2, U, Q> const& v);
+
165  template<typename U>
+
166  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(U scalar);
+
167  template<typename U>
+
168  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(vec<1, U, Q> const& v);
+
169  template<typename U>
+
170  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator/=(vec<2, U, Q> const& v);
+
171 
+
172  // -- Increment and decrement operators --
+
173 
+
174  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator++();
+
175  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator--();
+
176  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator++(int);
+
177  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator--(int);
+
178 
+
179  // -- Unary bit operators --
+
180 
+
181  template<typename U>
+
182  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(U scalar);
+
183  template<typename U>
+
184  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(vec<1, U, Q> const& v);
+
185  template<typename U>
+
186  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator%=(vec<2, U, Q> const& v);
+
187  template<typename U>
+
188  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(U scalar);
+
189  template<typename U>
+
190  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(vec<1, U, Q> const& v);
+
191  template<typename U>
+
192  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator&=(vec<2, U, Q> const& v);
+
193  template<typename U>
+
194  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(U scalar);
+
195  template<typename U>
+
196  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(vec<1, U, Q> const& v);
+
197  template<typename U>
+
198  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator|=(vec<2, U, Q> const& v);
+
199  template<typename U>
+
200  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(U scalar);
+
201  template<typename U>
+
202  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(vec<1, U, Q> const& v);
+
203  template<typename U>
+
204  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator^=(vec<2, U, Q> const& v);
+
205  template<typename U>
+
206  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(U scalar);
+
207  template<typename U>
+
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(vec<1, U, Q> const& v);
+
209  template<typename U>
+
210  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator<<=(vec<2, U, Q> const& v);
+
211  template<typename U>
+
212  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(U scalar);
+
213  template<typename U>
+
214  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(vec<1, U, Q> const& v);
+
215  template<typename U>
+
216  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> & operator>>=(vec<2, U, Q> const& v);
+
217  };
+
218 
+
219  // -- Unary operators --
+
220 
+
221  template<typename T, qualifier Q>
+
222  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v);
+
223 
+
224  template<typename T, qualifier Q>
+
225  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v);
+
226 
+
227  // -- Binary operators --
+
228 
+
229  template<typename T, qualifier Q>
+
230  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v, T scalar);
+
231 
+
232  template<typename T, qualifier Q>
+
233  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
234 
+
235  template<typename T, qualifier Q>
+
236  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(T scalar, vec<2, T, Q> const& v);
+
237 
+
238  template<typename T, qualifier Q>
+
239  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
240 
+
241  template<typename T, qualifier Q>
+
242  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator+(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
243 
+
244  template<typename T, qualifier Q>
+
245  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v, T scalar);
+
246 
+
247  template<typename T, qualifier Q>
+
248  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
249 
+
250  template<typename T, qualifier Q>
+
251  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(T scalar, vec<2, T, Q> const& v);
+
252 
+
253  template<typename T, qualifier Q>
+
254  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
255 
+
256  template<typename T, qualifier Q>
+
257  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator-(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
258 
+
259  template<typename T, qualifier Q>
+
260  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v, T scalar);
+
261 
+
262  template<typename T, qualifier Q>
+
263  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
264 
+
265  template<typename T, qualifier Q>
+
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(T scalar, vec<2, T, Q> const& v);
+
267 
+
268  template<typename T, qualifier Q>
+
269  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
270 
+
271  template<typename T, qualifier Q>
+
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator*(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
273 
+
274  template<typename T, qualifier Q>
+
275  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v, T scalar);
+
276 
+
277  template<typename T, qualifier Q>
+
278  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
279 
+
280  template<typename T, qualifier Q>
+
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(T scalar, vec<2, T, Q> const& v);
+
282 
+
283  template<typename T, qualifier Q>
+
284  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
285 
+
286  template<typename T, qualifier Q>
+
287  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator/(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
288 
+
289  template<typename T, qualifier Q>
+
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v, T scalar);
+
291 
+
292  template<typename T, qualifier Q>
+
293  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
294 
+
295  template<typename T, qualifier Q>
+
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(T scalar, vec<2, T, Q> const& v);
+
297 
+
298  template<typename T, qualifier Q>
+
299  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
300 
+
301  template<typename T, qualifier Q>
+
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator%(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
303 
+
304  template<typename T, qualifier Q>
+
305  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v, T scalar);
+
306 
+
307  template<typename T, qualifier Q>
+
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
309 
+
310  template<typename T, qualifier Q>
+
311  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(T scalar, vec<2, T, Q> const& v);
+
312 
+
313  template<typename T, qualifier Q>
+
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
315 
+
316  template<typename T, qualifier Q>
+
317  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator&(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
318 
+
319  template<typename T, qualifier Q>
+
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v, T scalar);
+
321 
+
322  template<typename T, qualifier Q>
+
323  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
324 
+
325  template<typename T, qualifier Q>
+
326  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(T scalar, vec<2, T, Q> const& v);
+
327 
+
328  template<typename T, qualifier Q>
+
329  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
330 
+
331  template<typename T, qualifier Q>
+
332  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator|(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
333 
+
334  template<typename T, qualifier Q>
+
335  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v, T scalar);
+
336 
+
337  template<typename T, qualifier Q>
+
338  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
339 
+
340  template<typename T, qualifier Q>
+
341  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(T scalar, vec<2, T, Q> const& v);
+
342 
+
343  template<typename T, qualifier Q>
+
344  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
345 
+
346  template<typename T, qualifier Q>
+
347  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator^(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
348 
+
349  template<typename T, qualifier Q>
+
350  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v, T scalar);
+
351 
+
352  template<typename T, qualifier Q>
+
353  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
354 
+
355  template<typename T, qualifier Q>
+
356  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(T scalar, vec<2, T, Q> const& v);
+
357 
+
358  template<typename T, qualifier Q>
+
359  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
360 
+
361  template<typename T, qualifier Q>
+
362  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator<<(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
363 
+
364  template<typename T, qualifier Q>
+
365  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v, T scalar);
+
366 
+
367  template<typename T, qualifier Q>
+
368  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v1, vec<1, T, Q> const& v2);
+
369 
+
370  template<typename T, qualifier Q>
+
371  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(T scalar, vec<2, T, Q> const& v);
+
372 
+
373  template<typename T, qualifier Q>
+
374  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<1, T, Q> const& v1, vec<2, T, Q> const& v2);
+
375 
+
376  template<typename T, qualifier Q>
+
377  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator>>(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
378 
+
379  template<typename T, qualifier Q>
+
380  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, T, Q> operator~(vec<2, T, Q> const& v);
+
381 
+
382  // -- Boolean operators --
+
383 
+
384  template<typename T, qualifier Q>
+
385  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
386 
+
387  template<typename T, qualifier Q>
+
388  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<2, T, Q> const& v1, vec<2, T, Q> const& v2);
+
389 
+
390  template<qualifier Q>
+
391  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, bool, Q> operator&&(vec<2, bool, Q> const& v1, vec<2, bool, Q> const& v2);
+
392 
+
393  template<qualifier Q>
+
394  GLM_FUNC_DECL GLM_CONSTEXPR vec<2, bool, Q> operator||(vec<2, bool, Q> const& v1, vec<2, bool, Q> const& v2);
+
395 }//namespace glm
+
396 
+
397 #ifndef GLM_EXTERNAL_TEMPLATE
+
398 #include "type_vec2.inl"
+
399 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00180.html b/external/include/glm-0.9.9.8/doc/api/a00180.html index 9add36db1f..b159177e66 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00180.html +++ b/external/include/glm-0.9.9.8/doc/api/a00180.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_vec3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_vec3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_vec3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_vec3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00180_source.html b/external/include/glm-0.9.9.8/doc/api/a00180_source.html index 70f7fd6eff..face129dd0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00180_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00180_source.html @@ -1,523 +1,523 @@ - - - - - - -0.9.9 API documentation: type_vec3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "qualifier.hpp"
-
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
8 # include "_swizzle.hpp"
-
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
10 # include "_swizzle_func.hpp"
-
11 #endif
-
12 #include <cstddef>
-
13 
-
14 namespace glm
-
15 {
-
16  template<typename T, qualifier Q>
-
17  struct vec<3, T, Q>
-
18  {
-
19  // -- Implementation detail --
-
20 
-
21  typedef T value_type;
-
22  typedef vec<3, T, Q> type;
-
23  typedef vec<3, bool, Q> bool_type;
-
24 
-
25  // -- Data --
-
26 
-
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
28 # if GLM_COMPILER & GLM_COMPILER_GCC
-
29 # pragma GCC diagnostic push
-
30 # pragma GCC diagnostic ignored "-Wpedantic"
-
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
32 # pragma clang diagnostic push
-
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
-
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
-
35 # elif GLM_COMPILER & GLM_COMPILER_VC
-
36 # pragma warning(push)
-
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-
38 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
-
39 # pragma warning(disable: 4324) // structure was padded due to alignment specifier
-
40 # endif
-
41 # endif
-
42 # endif
-
43 
-
44 # if GLM_CONFIG_XYZW_ONLY
-
45  T x, y, z;
-
46 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
-
47  union
-
48  {
-
49  struct{ T x, y, z; };
-
50  struct{ T r, g, b; };
-
51  struct{ T s, t, p; };
-
52 
-
53  typename detail::storage<3, T, detail::is_aligned<Q>::value>::type data;
-
54 
-
55 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
56  GLM_SWIZZLE3_2_MEMBERS(T, Q, x, y, z)
-
57  GLM_SWIZZLE3_2_MEMBERS(T, Q, r, g, b)
-
58  GLM_SWIZZLE3_2_MEMBERS(T, Q, s, t, p)
-
59  GLM_SWIZZLE3_3_MEMBERS(T, Q, x, y, z)
-
60  GLM_SWIZZLE3_3_MEMBERS(T, Q, r, g, b)
-
61  GLM_SWIZZLE3_3_MEMBERS(T, Q, s, t, p)
-
62  GLM_SWIZZLE3_4_MEMBERS(T, Q, x, y, z)
-
63  GLM_SWIZZLE3_4_MEMBERS(T, Q, r, g, b)
-
64  GLM_SWIZZLE3_4_MEMBERS(T, Q, s, t, p)
-
65 # endif
-
66  };
-
67 # else
-
68  union { T x, r, s; };
-
69  union { T y, g, t; };
-
70  union { T z, b, p; };
-
71 
-
72 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
73  GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, Q)
-
74 # endif//GLM_CONFIG_SWIZZLE
-
75 # endif//GLM_LANG
-
76 
-
77 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
78 # if GLM_COMPILER & GLM_COMPILER_CLANG
-
79 # pragma clang diagnostic pop
-
80 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
81 # pragma GCC diagnostic pop
-
82 # elif GLM_COMPILER & GLM_COMPILER_VC
-
83 # pragma warning(pop)
-
84 # endif
-
85 # endif
-
86 
-
87  // -- Component accesses --
-
88 
-
90  typedef length_t length_type;
-
91  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 3;}
-
92 
-
93  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
-
94  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
-
95 
-
96  // -- Implicit basic constructors --
-
97 
-
98  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
-
99  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
-
100  template<qualifier P>
-
101  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, T, P> const& v);
-
102 
-
103  // -- Explicit basic constructors --
-
104 
-
105  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
-
106  GLM_FUNC_DECL GLM_CONSTEXPR vec(T a, T b, T c);
-
107 
-
108  // -- Conversion scalar constructors --
-
109 
-
110  template<typename U, qualifier P>
-
111  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
-
112 
-
114  template<typename X, typename Y, typename Z>
-
115  GLM_FUNC_DECL GLM_CONSTEXPR vec(X x, Y y, Z z);
-
116  template<typename X, typename Y, typename Z>
-
117  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z);
-
118  template<typename X, typename Y, typename Z>
-
119  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z);
-
120  template<typename X, typename Y, typename Z>
-
121  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z);
-
122  template<typename X, typename Y, typename Z>
-
123  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z);
-
124  template<typename X, typename Y, typename Z>
-
125  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z);
-
126  template<typename X, typename Y, typename Z>
-
127  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z);
-
128  template<typename X, typename Y, typename Z>
-
129  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z);
-
130 
-
131  // -- Conversion vector constructors --
-
132 
-
134  template<typename A, typename B, qualifier P>
-
135  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z);
-
137  template<typename A, typename B, qualifier P>
-
138  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z);
-
140  template<typename A, typename B, qualifier P>
-
141  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz);
-
143  template<typename A, typename B, qualifier P>
-
144  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz);
-
146  template<typename U, qualifier P>
-
147  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
-
148 
-
150  template<typename U, qualifier P>
-
151  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
-
152 
-
153  // -- Swizzle constructors --
-
154 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
155  template<int E0, int E1, int E2>
-
156  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& that)
-
157  {
-
158  *this = that();
-
159  }
-
160 
-
161  template<int E0, int E1>
-
162  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& scalar)
-
163  {
-
164  *this = vec(v(), scalar);
-
165  }
-
166 
-
167  template<int E0, int E1>
-
168  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& scalar, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v)
-
169  {
-
170  *this = vec(scalar, v());
-
171  }
-
172 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
173 
-
174  // -- Unary arithmetic operators --
-
175 
-
176  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q>& operator=(vec<3, T, Q> const& v) GLM_DEFAULT;
-
177 
-
178  template<typename U>
-
179  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator=(vec<3, U, Q> const& v);
-
180  template<typename U>
-
181  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(U scalar);
-
182  template<typename U>
-
183  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(vec<1, U, Q> const& v);
-
184  template<typename U>
-
185  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(vec<3, U, Q> const& v);
-
186  template<typename U>
-
187  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(U scalar);
-
188  template<typename U>
-
189  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(vec<1, U, Q> const& v);
-
190  template<typename U>
-
191  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(vec<3, U, Q> const& v);
-
192  template<typename U>
-
193  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(U scalar);
-
194  template<typename U>
-
195  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(vec<1, U, Q> const& v);
-
196  template<typename U>
-
197  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(vec<3, U, Q> const& v);
-
198  template<typename U>
-
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(U scalar);
-
200  template<typename U>
-
201  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(vec<1, U, Q> const& v);
-
202  template<typename U>
-
203  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(vec<3, U, Q> const& v);
-
204 
-
205  // -- Increment and decrement operators --
-
206 
-
207  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator++();
-
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator--();
-
209  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator++(int);
-
210  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator--(int);
-
211 
-
212  // -- Unary bit operators --
-
213 
-
214  template<typename U>
-
215  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(U scalar);
-
216  template<typename U>
-
217  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(vec<1, U, Q> const& v);
-
218  template<typename U>
-
219  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(vec<3, U, Q> const& v);
-
220  template<typename U>
-
221  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(U scalar);
-
222  template<typename U>
-
223  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(vec<1, U, Q> const& v);
-
224  template<typename U>
-
225  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(vec<3, U, Q> const& v);
-
226  template<typename U>
-
227  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(U scalar);
-
228  template<typename U>
-
229  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(vec<1, U, Q> const& v);
-
230  template<typename U>
-
231  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(vec<3, U, Q> const& v);
-
232  template<typename U>
-
233  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(U scalar);
-
234  template<typename U>
-
235  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(vec<1, U, Q> const& v);
-
236  template<typename U>
-
237  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(vec<3, U, Q> const& v);
-
238  template<typename U>
-
239  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(U scalar);
-
240  template<typename U>
-
241  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(vec<1, U, Q> const& v);
-
242  template<typename U>
-
243  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(vec<3, U, Q> const& v);
-
244  template<typename U>
-
245  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(U scalar);
-
246  template<typename U>
-
247  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(vec<1, U, Q> const& v);
-
248  template<typename U>
-
249  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(vec<3, U, Q> const& v);
-
250  };
-
251 
-
252  // -- Unary operators --
-
253 
-
254  template<typename T, qualifier Q>
-
255  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v);
-
256 
-
257  template<typename T, qualifier Q>
-
258  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v);
-
259 
-
260  // -- Binary operators --
-
261 
-
262  template<typename T, qualifier Q>
-
263  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v, T scalar);
-
264 
-
265  template<typename T, qualifier Q>
-
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v, vec<1, T, Q> const& scalar);
-
267 
-
268  template<typename T, qualifier Q>
-
269  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(T scalar, vec<3, T, Q> const& v);
-
270 
-
271  template<typename T, qualifier Q>
-
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
273 
-
274  template<typename T, qualifier Q>
-
275  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
276 
-
277  template<typename T, qualifier Q>
-
278  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v, T scalar);
-
279 
-
280  template<typename T, qualifier Q>
-
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
282 
-
283  template<typename T, qualifier Q>
-
284  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(T scalar, vec<3, T, Q> const& v);
-
285 
-
286  template<typename T, qualifier Q>
-
287  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
288 
-
289  template<typename T, qualifier Q>
-
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
291 
-
292  template<typename T, qualifier Q>
-
293  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v, T scalar);
-
294 
-
295  template<typename T, qualifier Q>
-
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
297 
-
298  template<typename T, qualifier Q>
-
299  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(T scalar, vec<3, T, Q> const& v);
-
300 
-
301  template<typename T, qualifier Q>
-
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
303 
-
304  template<typename T, qualifier Q>
-
305  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
306 
-
307  template<typename T, qualifier Q>
-
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v, T scalar);
-
309 
-
310  template<typename T, qualifier Q>
-
311  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
312 
-
313  template<typename T, qualifier Q>
-
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(T scalar, vec<3, T, Q> const& v);
-
315 
-
316  template<typename T, qualifier Q>
-
317  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
318 
-
319  template<typename T, qualifier Q>
-
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
321 
-
322  template<typename T, qualifier Q>
-
323  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v, T scalar);
-
324 
-
325  template<typename T, qualifier Q>
-
326  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
327 
-
328  template<typename T, qualifier Q>
-
329  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(T scalar, vec<3, T, Q> const& v);
-
330 
-
331  template<typename T, qualifier Q>
-
332  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
333 
-
334  template<typename T, qualifier Q>
-
335  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
336 
-
337  template<typename T, qualifier Q>
-
338  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, T scalar);
-
339 
-
340  template<typename T, qualifier Q>
-
341  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
342 
-
343  template<typename T, qualifier Q>
-
344  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(T scalar, vec<3, T, Q> const& v);
-
345 
-
346  template<typename T, qualifier Q>
-
347  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
348 
-
349  template<typename T, qualifier Q>
-
350  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
351 
-
352  template<typename T, qualifier Q>
-
353  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v, T scalar);
-
354 
-
355  template<typename T, qualifier Q>
-
356  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
357 
-
358  template<typename T, qualifier Q>
-
359  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(T scalar, vec<3, T, Q> const& v);
-
360 
-
361  template<typename T, qualifier Q>
-
362  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
363 
-
364  template<typename T, qualifier Q>
-
365  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
366 
-
367  template<typename T, qualifier Q>
-
368  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v, T scalar);
-
369 
-
370  template<typename T, qualifier Q>
-
371  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
372 
-
373  template<typename T, qualifier Q>
-
374  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(T scalar, vec<3, T, Q> const& v);
-
375 
-
376  template<typename T, qualifier Q>
-
377  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
378 
-
379  template<typename T, qualifier Q>
-
380  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
381 
-
382  template<typename T, qualifier Q>
-
383  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v, T scalar);
-
384 
-
385  template<typename T, qualifier Q>
-
386  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
387 
-
388  template<typename T, qualifier Q>
-
389  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(T scalar, vec<3, T, Q> const& v);
-
390 
-
391  template<typename T, qualifier Q>
-
392  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
393 
-
394  template<typename T, qualifier Q>
-
395  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
396 
-
397  template<typename T, qualifier Q>
-
398  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v, T scalar);
-
399 
-
400  template<typename T, qualifier Q>
-
401  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
-
402 
-
403  template<typename T, qualifier Q>
-
404  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(T scalar, vec<3, T, Q> const& v);
-
405 
-
406  template<typename T, qualifier Q>
-
407  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
-
408 
-
409  template<typename T, qualifier Q>
-
410  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
411 
-
412  template<typename T, qualifier Q>
-
413  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator~(vec<3, T, Q> const& v);
-
414 
-
415  // -- Boolean operators --
-
416 
-
417  template<typename T, qualifier Q>
-
418  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
419 
-
420  template<typename T, qualifier Q>
-
421  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
-
422 
-
423  template<qualifier Q>
-
424  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, bool, Q> operator&&(vec<3, bool, Q> const& v1, vec<3, bool, Q> const& v2);
-
425 
-
426  template<qualifier Q>
-
427  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, bool, Q> operator||(vec<3, bool, Q> const& v1, vec<3, bool, Q> const& v2);
-
428 }//namespace glm
-
429 
-
430 #ifndef GLM_EXTERNAL_TEMPLATE
-
431 #include "type_vec3.inl"
-
432 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_vec3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "qualifier.hpp"
+
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
8 # include "_swizzle.hpp"
+
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
10 # include "_swizzle_func.hpp"
+
11 #endif
+
12 #include <cstddef>
+
13 
+
14 namespace glm
+
15 {
+
16  template<typename T, qualifier Q>
+
17  struct vec<3, T, Q>
+
18  {
+
19  // -- Implementation detail --
+
20 
+
21  typedef T value_type;
+
22  typedef vec<3, T, Q> type;
+
23  typedef vec<3, bool, Q> bool_type;
+
24 
+
25  // -- Data --
+
26 
+
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
28 # if GLM_COMPILER & GLM_COMPILER_GCC
+
29 # pragma GCC diagnostic push
+
30 # pragma GCC diagnostic ignored "-Wpedantic"
+
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
32 # pragma clang diagnostic push
+
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
+
35 # elif GLM_COMPILER & GLM_COMPILER_VC
+
36 # pragma warning(push)
+
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+
38 # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
+
39 # pragma warning(disable: 4324) // structure was padded due to alignment specifier
+
40 # endif
+
41 # endif
+
42 # endif
+
43 
+
44 # if GLM_CONFIG_XYZW_ONLY
+
45  T x, y, z;
+
46 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
+
47  union
+
48  {
+
49  struct{ T x, y, z; };
+
50  struct{ T r, g, b; };
+
51  struct{ T s, t, p; };
+
52 
+
53  typename detail::storage<3, T, detail::is_aligned<Q>::value>::type data;
+
54 
+
55 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
56  GLM_SWIZZLE3_2_MEMBERS(T, Q, x, y, z)
+
57  GLM_SWIZZLE3_2_MEMBERS(T, Q, r, g, b)
+
58  GLM_SWIZZLE3_2_MEMBERS(T, Q, s, t, p)
+
59  GLM_SWIZZLE3_3_MEMBERS(T, Q, x, y, z)
+
60  GLM_SWIZZLE3_3_MEMBERS(T, Q, r, g, b)
+
61  GLM_SWIZZLE3_3_MEMBERS(T, Q, s, t, p)
+
62  GLM_SWIZZLE3_4_MEMBERS(T, Q, x, y, z)
+
63  GLM_SWIZZLE3_4_MEMBERS(T, Q, r, g, b)
+
64  GLM_SWIZZLE3_4_MEMBERS(T, Q, s, t, p)
+
65 # endif
+
66  };
+
67 # else
+
68  union { T x, r, s; };
+
69  union { T y, g, t; };
+
70  union { T z, b, p; };
+
71 
+
72 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
73  GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, Q)
+
74 # endif//GLM_CONFIG_SWIZZLE
+
75 # endif//GLM_LANG
+
76 
+
77 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
78 # if GLM_COMPILER & GLM_COMPILER_CLANG
+
79 # pragma clang diagnostic pop
+
80 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
81 # pragma GCC diagnostic pop
+
82 # elif GLM_COMPILER & GLM_COMPILER_VC
+
83 # pragma warning(pop)
+
84 # endif
+
85 # endif
+
86 
+
87  // -- Component accesses --
+
88 
+
90  typedef length_t length_type;
+
91  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 3;}
+
92 
+
93  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
+
94  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
+
95 
+
96  // -- Implicit basic constructors --
+
97 
+
98  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
+
99  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec const& v) GLM_DEFAULT;
+
100  template<qualifier P>
+
101  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, T, P> const& v);
+
102 
+
103  // -- Explicit basic constructors --
+
104 
+
105  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
+
106  GLM_FUNC_DECL GLM_CONSTEXPR vec(T a, T b, T c);
+
107 
+
108  // -- Conversion scalar constructors --
+
109 
+
110  template<typename U, qualifier P>
+
111  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
+
112 
+
114  template<typename X, typename Y, typename Z>
+
115  GLM_FUNC_DECL GLM_CONSTEXPR vec(X x, Y y, Z z);
+
116  template<typename X, typename Y, typename Z>
+
117  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z);
+
118  template<typename X, typename Y, typename Z>
+
119  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z);
+
120  template<typename X, typename Y, typename Z>
+
121  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z);
+
122  template<typename X, typename Y, typename Z>
+
123  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z);
+
124  template<typename X, typename Y, typename Z>
+
125  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z);
+
126  template<typename X, typename Y, typename Z>
+
127  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z);
+
128  template<typename X, typename Y, typename Z>
+
129  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z);
+
130 
+
131  // -- Conversion vector constructors --
+
132 
+
134  template<typename A, typename B, qualifier P>
+
135  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z);
+
137  template<typename A, typename B, qualifier P>
+
138  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z);
+
140  template<typename A, typename B, qualifier P>
+
141  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz);
+
143  template<typename A, typename B, qualifier P>
+
144  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz);
+
146  template<typename U, qualifier P>
+
147  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
+
148 
+
150  template<typename U, qualifier P>
+
151  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<3, U, P> const& v);
+
152 
+
153  // -- Swizzle constructors --
+
154 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
155  template<int E0, int E1, int E2>
+
156  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& that)
+
157  {
+
158  *this = that();
+
159  }
+
160 
+
161  template<int E0, int E1>
+
162  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& scalar)
+
163  {
+
164  *this = vec(v(), scalar);
+
165  }
+
166 
+
167  template<int E0, int E1>
+
168  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& scalar, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v)
+
169  {
+
170  *this = vec(scalar, v());
+
171  }
+
172 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
173 
+
174  // -- Unary arithmetic operators --
+
175 
+
176  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q>& operator=(vec<3, T, Q> const& v) GLM_DEFAULT;
+
177 
+
178  template<typename U>
+
179  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator=(vec<3, U, Q> const& v);
+
180  template<typename U>
+
181  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(U scalar);
+
182  template<typename U>
+
183  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(vec<1, U, Q> const& v);
+
184  template<typename U>
+
185  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator+=(vec<3, U, Q> const& v);
+
186  template<typename U>
+
187  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(U scalar);
+
188  template<typename U>
+
189  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(vec<1, U, Q> const& v);
+
190  template<typename U>
+
191  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator-=(vec<3, U, Q> const& v);
+
192  template<typename U>
+
193  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(U scalar);
+
194  template<typename U>
+
195  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(vec<1, U, Q> const& v);
+
196  template<typename U>
+
197  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator*=(vec<3, U, Q> const& v);
+
198  template<typename U>
+
199  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(U scalar);
+
200  template<typename U>
+
201  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(vec<1, U, Q> const& v);
+
202  template<typename U>
+
203  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator/=(vec<3, U, Q> const& v);
+
204 
+
205  // -- Increment and decrement operators --
+
206 
+
207  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator++();
+
208  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator--();
+
209  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator++(int);
+
210  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator--(int);
+
211 
+
212  // -- Unary bit operators --
+
213 
+
214  template<typename U>
+
215  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(U scalar);
+
216  template<typename U>
+
217  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(vec<1, U, Q> const& v);
+
218  template<typename U>
+
219  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator%=(vec<3, U, Q> const& v);
+
220  template<typename U>
+
221  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(U scalar);
+
222  template<typename U>
+
223  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(vec<1, U, Q> const& v);
+
224  template<typename U>
+
225  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator&=(vec<3, U, Q> const& v);
+
226  template<typename U>
+
227  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(U scalar);
+
228  template<typename U>
+
229  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(vec<1, U, Q> const& v);
+
230  template<typename U>
+
231  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator|=(vec<3, U, Q> const& v);
+
232  template<typename U>
+
233  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(U scalar);
+
234  template<typename U>
+
235  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(vec<1, U, Q> const& v);
+
236  template<typename U>
+
237  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator^=(vec<3, U, Q> const& v);
+
238  template<typename U>
+
239  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(U scalar);
+
240  template<typename U>
+
241  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(vec<1, U, Q> const& v);
+
242  template<typename U>
+
243  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator<<=(vec<3, U, Q> const& v);
+
244  template<typename U>
+
245  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(U scalar);
+
246  template<typename U>
+
247  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(vec<1, U, Q> const& v);
+
248  template<typename U>
+
249  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> & operator>>=(vec<3, U, Q> const& v);
+
250  };
+
251 
+
252  // -- Unary operators --
+
253 
+
254  template<typename T, qualifier Q>
+
255  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v);
+
256 
+
257  template<typename T, qualifier Q>
+
258  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v);
+
259 
+
260  // -- Binary operators --
+
261 
+
262  template<typename T, qualifier Q>
+
263  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v, T scalar);
+
264 
+
265  template<typename T, qualifier Q>
+
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v, vec<1, T, Q> const& scalar);
+
267 
+
268  template<typename T, qualifier Q>
+
269  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(T scalar, vec<3, T, Q> const& v);
+
270 
+
271  template<typename T, qualifier Q>
+
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
273 
+
274  template<typename T, qualifier Q>
+
275  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator+(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
276 
+
277  template<typename T, qualifier Q>
+
278  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v, T scalar);
+
279 
+
280  template<typename T, qualifier Q>
+
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
282 
+
283  template<typename T, qualifier Q>
+
284  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(T scalar, vec<3, T, Q> const& v);
+
285 
+
286  template<typename T, qualifier Q>
+
287  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
288 
+
289  template<typename T, qualifier Q>
+
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator-(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
291 
+
292  template<typename T, qualifier Q>
+
293  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v, T scalar);
+
294 
+
295  template<typename T, qualifier Q>
+
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
297 
+
298  template<typename T, qualifier Q>
+
299  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(T scalar, vec<3, T, Q> const& v);
+
300 
+
301  template<typename T, qualifier Q>
+
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
303 
+
304  template<typename T, qualifier Q>
+
305  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator*(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
306 
+
307  template<typename T, qualifier Q>
+
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v, T scalar);
+
309 
+
310  template<typename T, qualifier Q>
+
311  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
312 
+
313  template<typename T, qualifier Q>
+
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(T scalar, vec<3, T, Q> const& v);
+
315 
+
316  template<typename T, qualifier Q>
+
317  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
318 
+
319  template<typename T, qualifier Q>
+
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator/(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
321 
+
322  template<typename T, qualifier Q>
+
323  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v, T scalar);
+
324 
+
325  template<typename T, qualifier Q>
+
326  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
327 
+
328  template<typename T, qualifier Q>
+
329  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(T scalar, vec<3, T, Q> const& v);
+
330 
+
331  template<typename T, qualifier Q>
+
332  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
333 
+
334  template<typename T, qualifier Q>
+
335  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator%(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
336 
+
337  template<typename T, qualifier Q>
+
338  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, T scalar);
+
339 
+
340  template<typename T, qualifier Q>
+
341  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
342 
+
343  template<typename T, qualifier Q>
+
344  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(T scalar, vec<3, T, Q> const& v);
+
345 
+
346  template<typename T, qualifier Q>
+
347  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
348 
+
349  template<typename T, qualifier Q>
+
350  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator&(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
351 
+
352  template<typename T, qualifier Q>
+
353  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v, T scalar);
+
354 
+
355  template<typename T, qualifier Q>
+
356  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
357 
+
358  template<typename T, qualifier Q>
+
359  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(T scalar, vec<3, T, Q> const& v);
+
360 
+
361  template<typename T, qualifier Q>
+
362  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
363 
+
364  template<typename T, qualifier Q>
+
365  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator|(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
366 
+
367  template<typename T, qualifier Q>
+
368  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v, T scalar);
+
369 
+
370  template<typename T, qualifier Q>
+
371  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
372 
+
373  template<typename T, qualifier Q>
+
374  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(T scalar, vec<3, T, Q> const& v);
+
375 
+
376  template<typename T, qualifier Q>
+
377  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
378 
+
379  template<typename T, qualifier Q>
+
380  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator^(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
381 
+
382  template<typename T, qualifier Q>
+
383  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v, T scalar);
+
384 
+
385  template<typename T, qualifier Q>
+
386  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
387 
+
388  template<typename T, qualifier Q>
+
389  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(T scalar, vec<3, T, Q> const& v);
+
390 
+
391  template<typename T, qualifier Q>
+
392  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
393 
+
394  template<typename T, qualifier Q>
+
395  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator<<(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
396 
+
397  template<typename T, qualifier Q>
+
398  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v, T scalar);
+
399 
+
400  template<typename T, qualifier Q>
+
401  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v1, vec<1, T, Q> const& v2);
+
402 
+
403  template<typename T, qualifier Q>
+
404  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(T scalar, vec<3, T, Q> const& v);
+
405 
+
406  template<typename T, qualifier Q>
+
407  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<1, T, Q> const& v1, vec<3, T, Q> const& v2);
+
408 
+
409  template<typename T, qualifier Q>
+
410  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator>>(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
411 
+
412  template<typename T, qualifier Q>
+
413  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, T, Q> operator~(vec<3, T, Q> const& v);
+
414 
+
415  // -- Boolean operators --
+
416 
+
417  template<typename T, qualifier Q>
+
418  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
419 
+
420  template<typename T, qualifier Q>
+
421  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<3, T, Q> const& v1, vec<3, T, Q> const& v2);
+
422 
+
423  template<qualifier Q>
+
424  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, bool, Q> operator&&(vec<3, bool, Q> const& v1, vec<3, bool, Q> const& v2);
+
425 
+
426  template<qualifier Q>
+
427  GLM_FUNC_DECL GLM_CONSTEXPR vec<3, bool, Q> operator||(vec<3, bool, Q> const& v1, vec<3, bool, Q> const& v2);
+
428 }//namespace glm
+
429 
+
430 #ifndef GLM_EXTERNAL_TEMPLATE
+
431 #include "type_vec3.inl"
+
432 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00181.html b/external/include/glm-0.9.9.8/doc/api/a00181.html index 95e0f6ddea..a82e1906c9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00181.html +++ b/external/include/glm-0.9.9.8/doc/api/a00181.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: type_vec4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file type_vec4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: type_vec4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file type_vec4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00181_source.html b/external/include/glm-0.9.9.8/doc/api/a00181_source.html index c14062ebaf..f03ca95a1b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00181_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00181_source.html @@ -1,584 +1,584 @@ - - - - - - -0.9.9 API documentation: type_vec4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
type_vec4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 
-
6 #include "qualifier.hpp"
-
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
8 # include "_swizzle.hpp"
-
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
10 # include "_swizzle_func.hpp"
-
11 #endif
-
12 #include <cstddef>
-
13 
-
14 namespace glm
-
15 {
-
16  template<typename T, qualifier Q>
-
17  struct vec<4, T, Q>
-
18  {
-
19  // -- Implementation detail --
-
20 
-
21  typedef T value_type;
-
22  typedef vec<4, T, Q> type;
-
23  typedef vec<4, bool, Q> bool_type;
-
24 
-
25  // -- Data --
-
26 
-
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
28 # if GLM_COMPILER & GLM_COMPILER_GCC
-
29 # pragma GCC diagnostic push
-
30 # pragma GCC diagnostic ignored "-Wpedantic"
-
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
-
32 # pragma clang diagnostic push
-
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
-
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
-
35 # elif GLM_COMPILER & GLM_COMPILER_VC
-
36 # pragma warning(push)
-
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
-
38 # endif
-
39 # endif
-
40 
-
41 # if GLM_CONFIG_XYZW_ONLY
-
42  T x, y, z, w;
-
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
-
44  union
-
45  {
-
46  struct { T x, y, z, w; };
-
47  struct { T r, g, b, a; };
-
48  struct { T s, t, p, q; };
-
49 
-
50  typename detail::storage<4, T, detail::is_aligned<Q>::value>::type data;
-
51 
-
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
53  GLM_SWIZZLE4_2_MEMBERS(T, Q, x, y, z, w)
-
54  GLM_SWIZZLE4_2_MEMBERS(T, Q, r, g, b, a)
-
55  GLM_SWIZZLE4_2_MEMBERS(T, Q, s, t, p, q)
-
56  GLM_SWIZZLE4_3_MEMBERS(T, Q, x, y, z, w)
-
57  GLM_SWIZZLE4_3_MEMBERS(T, Q, r, g, b, a)
-
58  GLM_SWIZZLE4_3_MEMBERS(T, Q, s, t, p, q)
-
59  GLM_SWIZZLE4_4_MEMBERS(T, Q, x, y, z, w)
-
60  GLM_SWIZZLE4_4_MEMBERS(T, Q, r, g, b, a)
-
61  GLM_SWIZZLE4_4_MEMBERS(T, Q, s, t, p, q)
-
62 # endif
-
63  };
-
64 # else
-
65  union { T x, r, s; };
-
66  union { T y, g, t; };
-
67  union { T z, b, p; };
-
68  union { T w, a, q; };
-
69 
-
70 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
-
71  GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, Q)
-
72 # endif
-
73 # endif
-
74 
-
75 # if GLM_SILENT_WARNINGS == GLM_ENABLE
-
76 # if GLM_COMPILER & GLM_COMPILER_CLANG
-
77 # pragma clang diagnostic pop
-
78 # elif GLM_COMPILER & GLM_COMPILER_GCC
-
79 # pragma GCC diagnostic pop
-
80 # elif GLM_COMPILER & GLM_COMPILER_VC
-
81 # pragma warning(pop)
-
82 # endif
-
83 # endif
-
84 
-
85  // -- Component accesses --
-
86 
-
87  typedef length_t length_type;
-
88 
-
90  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
-
91 
-
92  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
-
93  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
-
94 
-
95  // -- Implicit basic constructors --
-
96 
-
97  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
-
98  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, Q> const& v) GLM_DEFAULT;
-
99  template<qualifier P>
-
100  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, P> const& v);
-
101 
-
102  // -- Explicit basic constructors --
-
103 
-
104  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
-
105  GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y, T z, T w);
-
106 
-
107  // -- Conversion scalar constructors --
-
108 
-
109  template<typename U, qualifier P>
-
110  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
-
111 
-
113  template<typename X, typename Y, typename Z, typename W>
-
114  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, Z _z, W _w);
-
115  template<typename X, typename Y, typename Z, typename W>
-
116  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z, W _w);
-
117  template<typename X, typename Y, typename Z, typename W>
-
118  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z, W _w);
-
119  template<typename X, typename Y, typename Z, typename W>
-
120  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z, W _w);
-
121  template<typename X, typename Y, typename Z, typename W>
-
122  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z, W _w);
-
123  template<typename X, typename Y, typename Z, typename W>
-
124  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z, W _w);
-
125  template<typename X, typename Y, typename Z, typename W>
-
126  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, W _w);
-
127  template<typename X, typename Y, typename Z, typename W>
-
128  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, W _w);
-
129  template<typename X, typename Y, typename Z, typename W>
-
130  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z, vec<1, W, Q> const& _w);
-
131  template<typename X, typename Y, typename Z, typename W>
-
132  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z, vec<1, W, Q> const& _w);
-
133  template<typename X, typename Y, typename Z, typename W>
-
134  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z, vec<1, W, Q> const& _w);
-
135  template<typename X, typename Y, typename Z, typename W>
-
136  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
-
137  template<typename X, typename Y, typename Z, typename W>
-
138  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
-
139  template<typename X, typename Y, typename Z, typename W>
-
140  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
-
141  template<typename X, typename Y, typename Z, typename W>
-
142  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _Y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
-
143 
-
144  // -- Conversion vector constructors --
-
145 
-
147  template<typename A, typename B, typename C, qualifier P>
-
148  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z, C _w);
-
150  template<typename A, typename B, typename C, qualifier P>
-
151  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, C _w);
-
153  template<typename A, typename B, typename C, qualifier P>
-
154  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z, vec<1, C, P> const& _w);
-
156  template<typename A, typename B, typename C, qualifier P>
-
157  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, vec<1, C, P> const& _w);
-
159  template<typename A, typename B, typename C, qualifier P>
-
160  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz, C _w);
-
162  template<typename A, typename B, typename C, qualifier P>
-
163  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, C _w);
-
165  template<typename A, typename B, typename C, qualifier P>
-
166  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
-
168  template<typename A, typename B, typename C, qualifier P>
-
169  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
-
171  template<typename A, typename B, typename C, qualifier P>
-
172  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, B _y, vec<2, C, P> const& _zw);
-
174  template<typename A, typename B, typename C, qualifier P>
-
175  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, B _y, vec<2, C, P> const& _zw);
-
177  template<typename A, typename B, typename C, qualifier P>
-
178  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
-
180  template<typename A, typename B, typename C, qualifier P>
-
181  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
-
183  template<typename A, typename B, qualifier P>
-
184  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, A, P> const& _xyz, B _w);
-
186  template<typename A, typename B, qualifier P>
-
187  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, A, P> const& _xyz, vec<1, B, P> const& _w);
-
189  template<typename A, typename B, qualifier P>
-
190  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<3, B, P> const& _yzw);
-
192  template<typename A, typename B, qualifier P>
-
193  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<3, B, P> const& _yzw);
-
195  template<typename A, typename B, qualifier P>
-
196  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<2, B, P> const& _zw);
-
197 
-
199  template<typename U, qualifier P>
-
200  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
-
201 
-
202  // -- Swizzle constructors --
-
203 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
204  template<int E0, int E1, int E2, int E3>
-
205  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<4, T, Q, E0, E1, E2, E3> const& that)
-
206  {
-
207  *this = that();
-
208  }
-
209 
-
210  template<int E0, int E1, int F0, int F1>
-
211  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, detail::_swizzle<2, T, Q, F0, F1, -1, -2> const& u)
-
212  {
-
213  *this = vec<4, T, Q>(v(), u());
-
214  }
-
215 
-
216  template<int E0, int E1>
-
217  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, T const& y, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v)
-
218  {
-
219  *this = vec<4, T, Q>(x, y, v());
-
220  }
-
221 
-
222  template<int E0, int E1>
-
223  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& w)
-
224  {
-
225  *this = vec<4, T, Q>(x, v(), w);
-
226  }
-
227 
-
228  template<int E0, int E1>
-
229  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& z, T const& w)
-
230  {
-
231  *this = vec<4, T, Q>(v(), z, w);
-
232  }
-
233 
-
234  template<int E0, int E1, int E2>
-
235  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& v, T const& w)
-
236  {
-
237  *this = vec<4, T, Q>(v(), w);
-
238  }
-
239 
-
240  template<int E0, int E1, int E2>
-
241  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& v)
-
242  {
-
243  *this = vec<4, T, Q>(x, v());
-
244  }
-
245 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
-
246 
-
247  // -- Unary arithmetic operators --
-
248 
-
249  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, T, Q> const& v) GLM_DEFAULT;
-
250 
-
251  template<typename U>
-
252  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, U, Q> const& v);
-
253  template<typename U>
-
254  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(U scalar);
-
255  template<typename U>
-
256  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(vec<1, U, Q> const& v);
-
257  template<typename U>
-
258  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(vec<4, U, Q> const& v);
-
259  template<typename U>
-
260  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(U scalar);
-
261  template<typename U>
-
262  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(vec<1, U, Q> const& v);
-
263  template<typename U>
-
264  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(vec<4, U, Q> const& v);
-
265  template<typename U>
-
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(U scalar);
-
267  template<typename U>
-
268  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(vec<1, U, Q> const& v);
-
269  template<typename U>
-
270  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(vec<4, U, Q> const& v);
-
271  template<typename U>
-
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(U scalar);
-
273  template<typename U>
-
274  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(vec<1, U, Q> const& v);
-
275  template<typename U>
-
276  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(vec<4, U, Q> const& v);
-
277 
-
278  // -- Increment and decrement operators --
-
279 
-
280  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator++();
-
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator--();
-
282  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator++(int);
-
283  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator--(int);
-
284 
-
285  // -- Unary bit operators --
-
286 
-
287  template<typename U>
-
288  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(U scalar);
-
289  template<typename U>
-
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(vec<1, U, Q> const& v);
-
291  template<typename U>
-
292  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(vec<4, U, Q> const& v);
-
293  template<typename U>
-
294  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(U scalar);
-
295  template<typename U>
-
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(vec<1, U, Q> const& v);
-
297  template<typename U>
-
298  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(vec<4, U, Q> const& v);
-
299  template<typename U>
-
300  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(U scalar);
-
301  template<typename U>
-
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(vec<1, U, Q> const& v);
-
303  template<typename U>
-
304  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(vec<4, U, Q> const& v);
-
305  template<typename U>
-
306  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(U scalar);
-
307  template<typename U>
-
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(vec<1, U, Q> const& v);
-
309  template<typename U>
-
310  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(vec<4, U, Q> const& v);
-
311  template<typename U>
-
312  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(U scalar);
-
313  template<typename U>
-
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(vec<1, U, Q> const& v);
-
315  template<typename U>
-
316  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(vec<4, U, Q> const& v);
-
317  template<typename U>
-
318  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(U scalar);
-
319  template<typename U>
-
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(vec<1, U, Q> const& v);
-
321  template<typename U>
-
322  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(vec<4, U, Q> const& v);
-
323  };
-
324 
-
325  // -- Unary operators --
-
326 
-
327  template<typename T, qualifier Q>
-
328  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v);
-
329 
-
330  template<typename T, qualifier Q>
-
331  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v);
-
332 
-
333  // -- Binary operators --
-
334 
-
335  template<typename T, qualifier Q>
-
336  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v, T const & scalar);
-
337 
-
338  template<typename T, qualifier Q>
-
339  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
-
340 
-
341  template<typename T, qualifier Q>
-
342  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(T scalar, vec<4, T, Q> const& v);
-
343 
-
344  template<typename T, qualifier Q>
-
345  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
-
346 
-
347  template<typename T, qualifier Q>
-
348  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
349 
-
350  template<typename T, qualifier Q>
-
351  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v, T const & scalar);
-
352 
-
353  template<typename T, qualifier Q>
-
354  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
-
355 
-
356  template<typename T, qualifier Q>
-
357  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(T scalar, vec<4, T, Q> const& v);
-
358 
-
359  template<typename T, qualifier Q>
-
360  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
-
361 
-
362  template<typename T, qualifier Q>
-
363  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
364 
-
365  template<typename T, qualifier Q>
-
366  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v, T const & scalar);
-
367 
-
368  template<typename T, qualifier Q>
-
369  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
-
370 
-
371  template<typename T, qualifier Q>
-
372  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(T scalar, vec<4, T, Q> const& v);
-
373 
-
374  template<typename T, qualifier Q>
-
375  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
-
376 
-
377  template<typename T, qualifier Q>
-
378  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
379 
-
380  template<typename T, qualifier Q>
-
381  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v, T const & scalar);
-
382 
-
383  template<typename T, qualifier Q>
-
384  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
-
385 
-
386  template<typename T, qualifier Q>
-
387  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(T scalar, vec<4, T, Q> const& v);
-
388 
-
389  template<typename T, qualifier Q>
-
390  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
-
391 
-
392  template<typename T, qualifier Q>
-
393  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
394 
-
395  template<typename T, qualifier Q>
-
396  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v, T scalar);
-
397 
-
398  template<typename T, qualifier Q>
-
399  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
400 
-
401  template<typename T, qualifier Q>
-
402  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(T scalar, vec<4, T, Q> const& v);
-
403 
-
404  template<typename T, qualifier Q>
-
405  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
406 
-
407  template<typename T, qualifier Q>
-
408  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
409 
-
410  template<typename T, qualifier Q>
-
411  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v, T scalar);
-
412 
-
413  template<typename T, qualifier Q>
-
414  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
415 
-
416  template<typename T, qualifier Q>
-
417  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(T scalar, vec<4, T, Q> const& v);
-
418 
-
419  template<typename T, qualifier Q>
-
420  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
421 
-
422  template<typename T, qualifier Q>
-
423  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
424 
-
425  template<typename T, qualifier Q>
-
426  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v, T scalar);
-
427 
-
428  template<typename T, qualifier Q>
-
429  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
430 
-
431  template<typename T, qualifier Q>
-
432  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(T scalar, vec<4, T, Q> const& v);
-
433 
-
434  template<typename T, qualifier Q>
-
435  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
436 
-
437  template<typename T, qualifier Q>
-
438  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
439 
-
440  template<typename T, qualifier Q>
-
441  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v, T scalar);
-
442 
-
443  template<typename T, qualifier Q>
-
444  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
445 
-
446  template<typename T, qualifier Q>
-
447  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(T scalar, vec<4, T, Q> const& v);
-
448 
-
449  template<typename T, qualifier Q>
-
450  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
451 
-
452  template<typename T, qualifier Q>
-
453  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
454 
-
455  template<typename T, qualifier Q>
-
456  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v, T scalar);
-
457 
-
458  template<typename T, qualifier Q>
-
459  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
460 
-
461  template<typename T, qualifier Q>
-
462  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(T scalar, vec<4, T, Q> const& v);
-
463 
-
464  template<typename T, qualifier Q>
-
465  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
466 
-
467  template<typename T, qualifier Q>
-
468  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
469 
-
470  template<typename T, qualifier Q>
-
471  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v, T scalar);
-
472 
-
473  template<typename T, qualifier Q>
-
474  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
-
475 
-
476  template<typename T, qualifier Q>
-
477  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(T scalar, vec<4, T, Q> const& v);
-
478 
-
479  template<typename T, qualifier Q>
-
480  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
-
481 
-
482  template<typename T, qualifier Q>
-
483  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
484 
-
485  template<typename T, qualifier Q>
-
486  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator~(vec<4, T, Q> const& v);
-
487 
-
488  // -- Boolean operators --
-
489 
-
490  template<typename T, qualifier Q>
-
491  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
492 
-
493  template<typename T, qualifier Q>
-
494  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
-
495 
-
496  template<qualifier Q>
-
497  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> operator&&(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2);
-
498 
-
499  template<qualifier Q>
-
500  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> operator||(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2);
-
501 }//namespace glm
-
502 
-
503 #ifndef GLM_EXTERNAL_TEMPLATE
-
504 #include "type_vec4.inl"
-
505 #endif//GLM_EXTERNAL_TEMPLATE
-
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: type_vec4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
type_vec4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 
+
6 #include "qualifier.hpp"
+
7 #if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
8 # include "_swizzle.hpp"
+
9 #elif GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
10 # include "_swizzle_func.hpp"
+
11 #endif
+
12 #include <cstddef>
+
13 
+
14 namespace glm
+
15 {
+
16  template<typename T, qualifier Q>
+
17  struct vec<4, T, Q>
+
18  {
+
19  // -- Implementation detail --
+
20 
+
21  typedef T value_type;
+
22  typedef vec<4, T, Q> type;
+
23  typedef vec<4, bool, Q> bool_type;
+
24 
+
25  // -- Data --
+
26 
+
27 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
28 # if GLM_COMPILER & GLM_COMPILER_GCC
+
29 # pragma GCC diagnostic push
+
30 # pragma GCC diagnostic ignored "-Wpedantic"
+
31 # elif GLM_COMPILER & GLM_COMPILER_CLANG
+
32 # pragma clang diagnostic push
+
33 # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
+
34 # pragma clang diagnostic ignored "-Wnested-anon-types"
+
35 # elif GLM_COMPILER & GLM_COMPILER_VC
+
36 # pragma warning(push)
+
37 # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
+
38 # endif
+
39 # endif
+
40 
+
41 # if GLM_CONFIG_XYZW_ONLY
+
42  T x, y, z, w;
+
43 # elif GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
+
44  union
+
45  {
+
46  struct { T x, y, z, w; };
+
47  struct { T r, g, b, a; };
+
48  struct { T s, t, p, q; };
+
49 
+
50  typename detail::storage<4, T, detail::is_aligned<Q>::value>::type data;
+
51 
+
52 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
53  GLM_SWIZZLE4_2_MEMBERS(T, Q, x, y, z, w)
+
54  GLM_SWIZZLE4_2_MEMBERS(T, Q, r, g, b, a)
+
55  GLM_SWIZZLE4_2_MEMBERS(T, Q, s, t, p, q)
+
56  GLM_SWIZZLE4_3_MEMBERS(T, Q, x, y, z, w)
+
57  GLM_SWIZZLE4_3_MEMBERS(T, Q, r, g, b, a)
+
58  GLM_SWIZZLE4_3_MEMBERS(T, Q, s, t, p, q)
+
59  GLM_SWIZZLE4_4_MEMBERS(T, Q, x, y, z, w)
+
60  GLM_SWIZZLE4_4_MEMBERS(T, Q, r, g, b, a)
+
61  GLM_SWIZZLE4_4_MEMBERS(T, Q, s, t, p, q)
+
62 # endif
+
63  };
+
64 # else
+
65  union { T x, r, s; };
+
66  union { T y, g, t; };
+
67  union { T z, b, p; };
+
68  union { T w, a, q; };
+
69 
+
70 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_FUNCTION
+
71  GLM_SWIZZLE_GEN_VEC_FROM_VEC4(T, Q)
+
72 # endif
+
73 # endif
+
74 
+
75 # if GLM_SILENT_WARNINGS == GLM_ENABLE
+
76 # if GLM_COMPILER & GLM_COMPILER_CLANG
+
77 # pragma clang diagnostic pop
+
78 # elif GLM_COMPILER & GLM_COMPILER_GCC
+
79 # pragma GCC diagnostic pop
+
80 # elif GLM_COMPILER & GLM_COMPILER_VC
+
81 # pragma warning(pop)
+
82 # endif
+
83 # endif
+
84 
+
85  // -- Component accesses --
+
86 
+
87  typedef length_t length_type;
+
88 
+
90  GLM_FUNC_DECL static GLM_CONSTEXPR length_type length(){return 4;}
+
91 
+
92  GLM_FUNC_DECL GLM_CONSTEXPR T & operator[](length_type i);
+
93  GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
+
94 
+
95  // -- Implicit basic constructors --
+
96 
+
97  GLM_FUNC_DECL GLM_CONSTEXPR vec() GLM_DEFAULT;
+
98  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, Q> const& v) GLM_DEFAULT;
+
99  template<qualifier P>
+
100  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<4, T, P> const& v);
+
101 
+
102  // -- Explicit basic constructors --
+
103 
+
104  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(T scalar);
+
105  GLM_FUNC_DECL GLM_CONSTEXPR vec(T x, T y, T z, T w);
+
106 
+
107  // -- Conversion scalar constructors --
+
108 
+
109  template<typename U, qualifier P>
+
110  GLM_FUNC_DECL GLM_CONSTEXPR explicit vec(vec<1, U, P> const& v);
+
111 
+
113  template<typename X, typename Y, typename Z, typename W>
+
114  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, Z _z, W _w);
+
115  template<typename X, typename Y, typename Z, typename W>
+
116  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z, W _w);
+
117  template<typename X, typename Y, typename Z, typename W>
+
118  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z, W _w);
+
119  template<typename X, typename Y, typename Z, typename W>
+
120  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z, W _w);
+
121  template<typename X, typename Y, typename Z, typename W>
+
122  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z, W _w);
+
123  template<typename X, typename Y, typename Z, typename W>
+
124  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z, W _w);
+
125  template<typename X, typename Y, typename Z, typename W>
+
126  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, W _w);
+
127  template<typename X, typename Y, typename Z, typename W>
+
128  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, W _w);
+
129  template<typename X, typename Y, typename Z, typename W>
+
130  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, Z _z, vec<1, W, Q> const& _w);
+
131  template<typename X, typename Y, typename Z, typename W>
+
132  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, Z _z, vec<1, W, Q> const& _w);
+
133  template<typename X, typename Y, typename Z, typename W>
+
134  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _y, Z _z, vec<1, W, Q> const& _w);
+
135  template<typename X, typename Y, typename Z, typename W>
+
136  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, Y _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
+
137  template<typename X, typename Y, typename Z, typename W>
+
138  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, Y _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
+
139  template<typename X, typename Y, typename Z, typename W>
+
140  GLM_FUNC_DECL GLM_CONSTEXPR vec(X _x, vec<1, Y, Q> const& _y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
+
141  template<typename X, typename Y, typename Z, typename W>
+
142  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, X, Q> const& _x, vec<1, Y, Q> const& _Y, vec<1, Z, Q> const& _z, vec<1, W, Q> const& _w);
+
143 
+
144  // -- Conversion vector constructors --
+
145 
+
147  template<typename A, typename B, typename C, qualifier P>
+
148  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z, C _w);
+
150  template<typename A, typename B, typename C, qualifier P>
+
151  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, C _w);
+
153  template<typename A, typename B, typename C, qualifier P>
+
154  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, B _z, vec<1, C, P> const& _w);
+
156  template<typename A, typename B, typename C, qualifier P>
+
157  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<1, B, P> const& _z, vec<1, C, P> const& _w);
+
159  template<typename A, typename B, typename C, qualifier P>
+
160  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz, C _w);
+
162  template<typename A, typename B, typename C, qualifier P>
+
163  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, C _w);
+
165  template<typename A, typename B, typename C, qualifier P>
+
166  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
+
168  template<typename A, typename B, typename C, qualifier P>
+
169  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<2, B, P> const& _yz, vec<1, C, P> const& _w);
+
171  template<typename A, typename B, typename C, qualifier P>
+
172  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, B _y, vec<2, C, P> const& _zw);
+
174  template<typename A, typename B, typename C, qualifier P>
+
175  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, B _y, vec<2, C, P> const& _zw);
+
177  template<typename A, typename B, typename C, qualifier P>
+
178  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
+
180  template<typename A, typename B, typename C, qualifier P>
+
181  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<1, B, P> const& _y, vec<2, C, P> const& _zw);
+
183  template<typename A, typename B, qualifier P>
+
184  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, A, P> const& _xyz, B _w);
+
186  template<typename A, typename B, qualifier P>
+
187  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<3, A, P> const& _xyz, vec<1, B, P> const& _w);
+
189  template<typename A, typename B, qualifier P>
+
190  GLM_FUNC_DECL GLM_CONSTEXPR vec(A _x, vec<3, B, P> const& _yzw);
+
192  template<typename A, typename B, qualifier P>
+
193  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<1, A, P> const& _x, vec<3, B, P> const& _yzw);
+
195  template<typename A, typename B, qualifier P>
+
196  GLM_FUNC_DECL GLM_CONSTEXPR vec(vec<2, A, P> const& _xy, vec<2, B, P> const& _zw);
+
197 
+
199  template<typename U, qualifier P>
+
200  GLM_FUNC_DECL GLM_CONSTEXPR GLM_EXPLICIT vec(vec<4, U, P> const& v);
+
201 
+
202  // -- Swizzle constructors --
+
203 # if GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
204  template<int E0, int E1, int E2, int E3>
+
205  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<4, T, Q, E0, E1, E2, E3> const& that)
+
206  {
+
207  *this = that();
+
208  }
+
209 
+
210  template<int E0, int E1, int F0, int F1>
+
211  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, detail::_swizzle<2, T, Q, F0, F1, -1, -2> const& u)
+
212  {
+
213  *this = vec<4, T, Q>(v(), u());
+
214  }
+
215 
+
216  template<int E0, int E1>
+
217  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, T const& y, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v)
+
218  {
+
219  *this = vec<4, T, Q>(x, y, v());
+
220  }
+
221 
+
222  template<int E0, int E1>
+
223  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& w)
+
224  {
+
225  *this = vec<4, T, Q>(x, v(), w);
+
226  }
+
227 
+
228  template<int E0, int E1>
+
229  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<2, T, Q, E0, E1, -1, -2> const& v, T const& z, T const& w)
+
230  {
+
231  *this = vec<4, T, Q>(v(), z, w);
+
232  }
+
233 
+
234  template<int E0, int E1, int E2>
+
235  GLM_FUNC_DECL GLM_CONSTEXPR vec(detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& v, T const& w)
+
236  {
+
237  *this = vec<4, T, Q>(v(), w);
+
238  }
+
239 
+
240  template<int E0, int E1, int E2>
+
241  GLM_FUNC_DECL GLM_CONSTEXPR vec(T const& x, detail::_swizzle<3, T, Q, E0, E1, E2, -1> const& v)
+
242  {
+
243  *this = vec<4, T, Q>(x, v());
+
244  }
+
245 # endif//GLM_CONFIG_SWIZZLE == GLM_SWIZZLE_OPERATOR
+
246 
+
247  // -- Unary arithmetic operators --
+
248 
+
249  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, T, Q> const& v) GLM_DEFAULT;
+
250 
+
251  template<typename U>
+
252  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator=(vec<4, U, Q> const& v);
+
253  template<typename U>
+
254  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(U scalar);
+
255  template<typename U>
+
256  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(vec<1, U, Q> const& v);
+
257  template<typename U>
+
258  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator+=(vec<4, U, Q> const& v);
+
259  template<typename U>
+
260  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(U scalar);
+
261  template<typename U>
+
262  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(vec<1, U, Q> const& v);
+
263  template<typename U>
+
264  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator-=(vec<4, U, Q> const& v);
+
265  template<typename U>
+
266  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(U scalar);
+
267  template<typename U>
+
268  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(vec<1, U, Q> const& v);
+
269  template<typename U>
+
270  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator*=(vec<4, U, Q> const& v);
+
271  template<typename U>
+
272  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(U scalar);
+
273  template<typename U>
+
274  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(vec<1, U, Q> const& v);
+
275  template<typename U>
+
276  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q>& operator/=(vec<4, U, Q> const& v);
+
277 
+
278  // -- Increment and decrement operators --
+
279 
+
280  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator++();
+
281  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator--();
+
282  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator++(int);
+
283  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator--(int);
+
284 
+
285  // -- Unary bit operators --
+
286 
+
287  template<typename U>
+
288  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(U scalar);
+
289  template<typename U>
+
290  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(vec<1, U, Q> const& v);
+
291  template<typename U>
+
292  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator%=(vec<4, U, Q> const& v);
+
293  template<typename U>
+
294  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(U scalar);
+
295  template<typename U>
+
296  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(vec<1, U, Q> const& v);
+
297  template<typename U>
+
298  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator&=(vec<4, U, Q> const& v);
+
299  template<typename U>
+
300  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(U scalar);
+
301  template<typename U>
+
302  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(vec<1, U, Q> const& v);
+
303  template<typename U>
+
304  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator|=(vec<4, U, Q> const& v);
+
305  template<typename U>
+
306  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(U scalar);
+
307  template<typename U>
+
308  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(vec<1, U, Q> const& v);
+
309  template<typename U>
+
310  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator^=(vec<4, U, Q> const& v);
+
311  template<typename U>
+
312  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(U scalar);
+
313  template<typename U>
+
314  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(vec<1, U, Q> const& v);
+
315  template<typename U>
+
316  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator<<=(vec<4, U, Q> const& v);
+
317  template<typename U>
+
318  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(U scalar);
+
319  template<typename U>
+
320  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(vec<1, U, Q> const& v);
+
321  template<typename U>
+
322  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> & operator>>=(vec<4, U, Q> const& v);
+
323  };
+
324 
+
325  // -- Unary operators --
+
326 
+
327  template<typename T, qualifier Q>
+
328  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v);
+
329 
+
330  template<typename T, qualifier Q>
+
331  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v);
+
332 
+
333  // -- Binary operators --
+
334 
+
335  template<typename T, qualifier Q>
+
336  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v, T const & scalar);
+
337 
+
338  template<typename T, qualifier Q>
+
339  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
+
340 
+
341  template<typename T, qualifier Q>
+
342  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(T scalar, vec<4, T, Q> const& v);
+
343 
+
344  template<typename T, qualifier Q>
+
345  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
+
346 
+
347  template<typename T, qualifier Q>
+
348  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator+(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
349 
+
350  template<typename T, qualifier Q>
+
351  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v, T const & scalar);
+
352 
+
353  template<typename T, qualifier Q>
+
354  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
+
355 
+
356  template<typename T, qualifier Q>
+
357  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(T scalar, vec<4, T, Q> const& v);
+
358 
+
359  template<typename T, qualifier Q>
+
360  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
+
361 
+
362  template<typename T, qualifier Q>
+
363  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator-(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
364 
+
365  template<typename T, qualifier Q>
+
366  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v, T const & scalar);
+
367 
+
368  template<typename T, qualifier Q>
+
369  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
+
370 
+
371  template<typename T, qualifier Q>
+
372  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(T scalar, vec<4, T, Q> const& v);
+
373 
+
374  template<typename T, qualifier Q>
+
375  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
+
376 
+
377  template<typename T, qualifier Q>
+
378  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator*(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
379 
+
380  template<typename T, qualifier Q>
+
381  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v, T const & scalar);
+
382 
+
383  template<typename T, qualifier Q>
+
384  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v1, vec<1, T, Q> const& v2);
+
385 
+
386  template<typename T, qualifier Q>
+
387  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(T scalar, vec<4, T, Q> const& v);
+
388 
+
389  template<typename T, qualifier Q>
+
390  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<1, T, Q> const& v1, vec<4, T, Q> const& v2);
+
391 
+
392  template<typename T, qualifier Q>
+
393  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator/(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
394 
+
395  template<typename T, qualifier Q>
+
396  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v, T scalar);
+
397 
+
398  template<typename T, qualifier Q>
+
399  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
400 
+
401  template<typename T, qualifier Q>
+
402  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(T scalar, vec<4, T, Q> const& v);
+
403 
+
404  template<typename T, qualifier Q>
+
405  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
406 
+
407  template<typename T, qualifier Q>
+
408  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator%(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
409 
+
410  template<typename T, qualifier Q>
+
411  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v, T scalar);
+
412 
+
413  template<typename T, qualifier Q>
+
414  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
415 
+
416  template<typename T, qualifier Q>
+
417  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(T scalar, vec<4, T, Q> const& v);
+
418 
+
419  template<typename T, qualifier Q>
+
420  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
421 
+
422  template<typename T, qualifier Q>
+
423  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator&(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
424 
+
425  template<typename T, qualifier Q>
+
426  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v, T scalar);
+
427 
+
428  template<typename T, qualifier Q>
+
429  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
430 
+
431  template<typename T, qualifier Q>
+
432  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(T scalar, vec<4, T, Q> const& v);
+
433 
+
434  template<typename T, qualifier Q>
+
435  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
436 
+
437  template<typename T, qualifier Q>
+
438  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator|(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
439 
+
440  template<typename T, qualifier Q>
+
441  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v, T scalar);
+
442 
+
443  template<typename T, qualifier Q>
+
444  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
445 
+
446  template<typename T, qualifier Q>
+
447  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(T scalar, vec<4, T, Q> const& v);
+
448 
+
449  template<typename T, qualifier Q>
+
450  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
451 
+
452  template<typename T, qualifier Q>
+
453  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator^(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
454 
+
455  template<typename T, qualifier Q>
+
456  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v, T scalar);
+
457 
+
458  template<typename T, qualifier Q>
+
459  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
460 
+
461  template<typename T, qualifier Q>
+
462  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(T scalar, vec<4, T, Q> const& v);
+
463 
+
464  template<typename T, qualifier Q>
+
465  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
466 
+
467  template<typename T, qualifier Q>
+
468  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator<<(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
469 
+
470  template<typename T, qualifier Q>
+
471  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v, T scalar);
+
472 
+
473  template<typename T, qualifier Q>
+
474  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v, vec<1, T, Q> const& scalar);
+
475 
+
476  template<typename T, qualifier Q>
+
477  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(T scalar, vec<4, T, Q> const& v);
+
478 
+
479  template<typename T, qualifier Q>
+
480  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<1, T, Q> const& scalar, vec<4, T, Q> const& v);
+
481 
+
482  template<typename T, qualifier Q>
+
483  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator>>(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
484 
+
485  template<typename T, qualifier Q>
+
486  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, T, Q> operator~(vec<4, T, Q> const& v);
+
487 
+
488  // -- Boolean operators --
+
489 
+
490  template<typename T, qualifier Q>
+
491  GLM_FUNC_DECL GLM_CONSTEXPR bool operator==(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
492 
+
493  template<typename T, qualifier Q>
+
494  GLM_FUNC_DECL GLM_CONSTEXPR bool operator!=(vec<4, T, Q> const& v1, vec<4, T, Q> const& v2);
+
495 
+
496  template<qualifier Q>
+
497  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> operator&&(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2);
+
498 
+
499  template<qualifier Q>
+
500  GLM_FUNC_DECL GLM_CONSTEXPR vec<4, bool, Q> operator||(vec<4, bool, Q> const& v1, vec<4, bool, Q> const& v2);
+
501 }//namespace glm
+
502 
+
503 #ifndef GLM_EXTERNAL_TEMPLATE
+
504 #include "type_vec4.inl"
+
505 #endif//GLM_EXTERNAL_TEMPLATE
+
GLM_FUNC_DECL T length(qua< T, Q > const &q)
Returns the norm of a quaternions.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00182.html b/external/include/glm-0.9.9.8/doc/api/a00182.html index 449b000056..27bfbbe4e7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00182.html +++ b/external/include/glm-0.9.9.8/doc/api/a00182.html @@ -1,169 +1,169 @@ - - - - - - -0.9.9 API documentation: ulp.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ulp.hpp File Reference
-
-
- -

GLM_GTC_ulp -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL int float_distance (float x, float y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
GLM_FUNC_DECL int64 float_distance (double x, double y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > float_distance (vec< L, float, Q > const &x, vec< L, float, Q > const &y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int64, Q > float_distance (vec< L, double, Q > const &x, vec< L, double, Q > const &y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType x)
 Return the next ULP value(s) after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x)
 Return the next ULP value(s) after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
-

Detailed Description

-

GLM_GTC_ulp

-
See also
Core features (dependence)
- -

Definition in file ulp.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: ulp.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ulp.hpp File Reference
+
+
+ +

GLM_GTC_ulp +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL int float_distance (float x, float y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
GLM_FUNC_DECL int64 float_distance (double x, double y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > float_distance (vec< L, float, Q > const &x, vec< L, float, Q > const &y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int64, Q > float_distance (vec< L, double, Q > const &x, vec< L, double, Q > const &y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType x)
 Return the next ULP value(s) after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType next_float (genType x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x)
 Return the next ULP value(s) after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > next_float (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<typename genType >
GLM_FUNC_DECL genType prev_float (genType x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prev_float (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
+

Detailed Description

+

GLM_GTC_ulp

+
See also
Core features (dependence)
+ +

Definition in file ulp.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00182_source.html b/external/include/glm-0.9.9.8/doc/api/a00182_source.html index 94ff2b688c..260b29e25f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00182_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00182_source.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: ulp.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ulp.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependencies
-
18 #include "../detail/setup.hpp"
-
19 #include "../detail/qualifier.hpp"
-
20 #include "../detail/_vectorize.hpp"
-
21 #include "../ext/scalar_int_sized.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # pragma message("GLM: GLM_GTC_ulp extension included")
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
34  template<typename genType>
-
35  GLM_FUNC_DECL genType next_float(genType x);
-
36 
-
42  template<typename genType>
-
43  GLM_FUNC_DECL genType prev_float(genType x);
-
44 
-
50  template<typename genType>
-
51  GLM_FUNC_DECL genType next_float(genType x, int ULPs);
-
52 
-
58  template<typename genType>
-
59  GLM_FUNC_DECL genType prev_float(genType x, int ULPs);
-
60 
-
64  GLM_FUNC_DECL int float_distance(float x, float y);
-
65 
-
69  GLM_FUNC_DECL int64 float_distance(double x, double y);
-
70 
-
78  template<length_t L, typename T, qualifier Q>
-
79  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x);
-
80 
-
88  template<length_t L, typename T, qualifier Q>
-
89  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x, int ULPs);
-
90 
-
98  template<length_t L, typename T, qualifier Q>
-
99  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
-
100 
-
108  template<length_t L, typename T, qualifier Q>
-
109  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x);
-
110 
-
118  template<length_t L, typename T, qualifier Q>
-
119  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x, int ULPs);
-
120 
-
128  template<length_t L, typename T, qualifier Q>
-
129  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
-
130 
-
137  template<length_t L, typename T, qualifier Q>
-
138  GLM_FUNC_DECL vec<L, int, Q> float_distance(vec<L, float, Q> const& x, vec<L, float, Q> const& y);
-
139 
-
146  template<length_t L, typename T, qualifier Q>
-
147  GLM_FUNC_DECL vec<L, int64, Q> float_distance(vec<L, double, Q> const& x, vec<L, double, Q> const& y);
-
148 
-
150 }//namespace glm
-
151 
-
152 #include "ulp.inl"
-
detail::int64 int64
64 bit signed integer type.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: ulp.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ulp.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependencies
+
18 #include "../detail/setup.hpp"
+
19 #include "../detail/qualifier.hpp"
+
20 #include "../detail/_vectorize.hpp"
+
21 #include "../ext/scalar_int_sized.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # pragma message("GLM: GLM_GTC_ulp extension included")
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
34  template<typename genType>
+
35  GLM_FUNC_DECL genType next_float(genType x);
+
36 
+
42  template<typename genType>
+
43  GLM_FUNC_DECL genType prev_float(genType x);
+
44 
+
50  template<typename genType>
+
51  GLM_FUNC_DECL genType next_float(genType x, int ULPs);
+
52 
+
58  template<typename genType>
+
59  GLM_FUNC_DECL genType prev_float(genType x, int ULPs);
+
60 
+
64  GLM_FUNC_DECL int float_distance(float x, float y);
+
65 
+
69  GLM_FUNC_DECL int64 float_distance(double x, double y);
+
70 
+
78  template<length_t L, typename T, qualifier Q>
+
79  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x);
+
80 
+
88  template<length_t L, typename T, qualifier Q>
+
89  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x, int ULPs);
+
90 
+
98  template<length_t L, typename T, qualifier Q>
+
99  GLM_FUNC_DECL vec<L, T, Q> next_float(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
+
100 
+
108  template<length_t L, typename T, qualifier Q>
+
109  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x);
+
110 
+
118  template<length_t L, typename T, qualifier Q>
+
119  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x, int ULPs);
+
120 
+
128  template<length_t L, typename T, qualifier Q>
+
129  GLM_FUNC_DECL vec<L, T, Q> prev_float(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
+
130 
+
137  template<length_t L, typename T, qualifier Q>
+
138  GLM_FUNC_DECL vec<L, int, Q> float_distance(vec<L, float, Q> const& x, vec<L, float, Q> const& y);
+
139 
+
146  template<length_t L, typename T, qualifier Q>
+
147  GLM_FUNC_DECL vec<L, int64, Q> float_distance(vec<L, double, Q> const& x, vec<L, double, Q> const& y);
+
148 
+
150 }//namespace glm
+
151 
+
152 #include "ulp.inl"
+
detail::int64 int64
64 bit signed integer type.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00183.html b/external/include/glm-0.9.9.8/doc/api/a00183.html index d96ae917e2..37c918e76a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00183.html +++ b/external/include/glm-0.9.9.8/doc/api/a00183.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: vec1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec1.hpp File Reference
-
-
- -

GLM_GTC_vec1 -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTC_vec1

-
See also
Core features (dependence)
- -

Definition in file vec1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vec1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec1.hpp File Reference
+
+
+ +

GLM_GTC_vec1 +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTC_vec1

+
See also
Core features (dependence)
+ +

Definition in file vec1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00183_source.html b/external/include/glm-0.9.9.8/doc/api/a00183_source.html index 51aeb83957..0917812b82 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00183_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00183_source.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vec1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec1.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../ext/vector_bool1.hpp"
-
17 #include "../ext/vector_bool1_precision.hpp"
-
18 #include "../ext/vector_float1.hpp"
-
19 #include "../ext/vector_float1_precision.hpp"
-
20 #include "../ext/vector_double1.hpp"
-
21 #include "../ext/vector_double1_precision.hpp"
-
22 #include "../ext/vector_int1.hpp"
-
23 #include "../ext/vector_int1_precision.hpp"
-
24 #include "../ext/vector_uint1.hpp"
-
25 #include "../ext/vector_uint1_precision.hpp"
-
26 
-
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
28 # pragma message("GLM: GLM_GTC_vec1 extension included")
-
29 #endif
-
30 
-
- - - - + + + + + + +0.9.9 API documentation: vec1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec1.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../ext/vector_bool1.hpp"
+
17 #include "../ext/vector_bool1_precision.hpp"
+
18 #include "../ext/vector_float1.hpp"
+
19 #include "../ext/vector_float1_precision.hpp"
+
20 #include "../ext/vector_double1.hpp"
+
21 #include "../ext/vector_double1_precision.hpp"
+
22 #include "../ext/vector_int1.hpp"
+
23 #include "../ext/vector_int1_precision.hpp"
+
24 #include "../ext/vector_uint1.hpp"
+
25 #include "../ext/vector_uint1_precision.hpp"
+
26 
+
27 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
28 # pragma message("GLM: GLM_GTC_vec1 extension included")
+
29 #endif
+
30 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00184.html b/external/include/glm-0.9.9.8/doc/api/a00184.html index 80ea53ea6e..559184ba66 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00184.html +++ b/external/include/glm-0.9.9.8/doc/api/a00184.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: vec2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file vec2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vec2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file vec2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00184_source.html b/external/include/glm-0.9.9.8/doc/api/a00184_source.html index 8ab82bfacc..845e0dfc28 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00184_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00184_source.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: vec2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "./ext/vector_bool2.hpp"
- - - - - -
11 #include "./ext/vector_int2.hpp"
- -
13 #include "./ext/vector_uint2.hpp"
- -
Core features
- - -
Core features
- - -
Core features
- -
Core features
-
Core features
-
- - - - + + + + + + +0.9.9 API documentation: vec2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "./ext/vector_bool2.hpp"
+ + + + + +
11 #include "./ext/vector_int2.hpp"
+ +
13 #include "./ext/vector_uint2.hpp"
+ +
Core features
+ + +
Core features
+ + +
Core features
+ +
Core features
+
Core features
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00185.html b/external/include/glm-0.9.9.8/doc/api/a00185.html index a1cccfa027..4f92c3ab80 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00185.html +++ b/external/include/glm-0.9.9.8/doc/api/a00185.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: vec3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file vec3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vec3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file vec3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00185_source.html b/external/include/glm-0.9.9.8/doc/api/a00185_source.html index 96062c8d5c..4b2fac1f70 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00185_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00185_source.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: vec3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "./ext/vector_bool3.hpp"
- - - - - -
11 #include "./ext/vector_int3.hpp"
- -
13 #include "./ext/vector_uint3.hpp"
- -
Core features
-
Core features
- -
Core features
-
Core features
- - - -
Core features
- -
- - - - + + + + + + +0.9.9 API documentation: vec3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "./ext/vector_bool3.hpp"
+ + + + + +
11 #include "./ext/vector_int3.hpp"
+ +
13 #include "./ext/vector_uint3.hpp"
+ +
Core features
+
Core features
+ +
Core features
+
Core features
+ + + +
Core features
+ +
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00186.html b/external/include/glm-0.9.9.8/doc/api/a00186.html index 8ac27b7dc7..424ef27f2c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00186.html +++ b/external/include/glm-0.9.9.8/doc/api/a00186.html @@ -1,108 +1,108 @@ - - - - - - -0.9.9 API documentation: vec4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

-

Detailed Description

-

Core features

- -

Definition in file vec4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vec4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

Core features

+ +

Definition in file vec4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00186_source.html b/external/include/glm-0.9.9.8/doc/api/a00186_source.html index d1b62a8b52..2f15fc597c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00186_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00186_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vec4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "./ext/vector_bool4.hpp"
- - - - - -
11 #include "./ext/vector_int4.hpp"
- -
13 #include "./ext/vector_uint4.hpp"
- -
15 
- - -
Core features
-
Core features
- -
Core features
-
Core features
- - -
Core features
-
- - - - + + + + + + +0.9.9 API documentation: vec4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "./ext/vector_bool4.hpp"
+ + + + + +
11 #include "./ext/vector_int4.hpp"
+ +
13 #include "./ext/vector_uint4.hpp"
+ +
15 
+ + +
Core features
+
Core features
+ +
Core features
+
Core features
+ + +
Core features
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00187.html b/external/include/glm-0.9.9.8/doc/api/a00187.html index f25bed3e5b..76c3b2ec8e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00187.html +++ b/external/include/glm-0.9.9.8/doc/api/a00187.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: vec_swizzle.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec_swizzle.hpp File Reference
-
-
- -

GLM_GTX_vec_swizzle -More...

- -

Go to the source code of this file.

-

Detailed Description

-

GLM_GTX_vec_swizzle

-
See also
Core features (dependence)
- -

Definition in file vec_swizzle.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vec_swizzle.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec_swizzle.hpp File Reference
+
+
+ +

GLM_GTX_vec_swizzle +More...

+ +

Go to the source code of this file.

+

Detailed Description

+

GLM_GTX_vec_swizzle

+
See also
Core features (dependence)
+ +

Definition in file vec_swizzle.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00187_source.html b/external/include/glm-0.9.9.8/doc/api/a00187_source.html index 11118d1e29..4760447dd2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00187_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00187_source.html @@ -1,2871 +1,2871 @@ - - - - - - -0.9.9 API documentation: vec_swizzle.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vec_swizzle.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../glm.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # ifndef GLM_ENABLE_EXPERIMENTAL
-
19 # pragma message("GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
20 # else
-
21 # pragma message("GLM: GLM_GTX_vec_swizzle extension included")
-
22 # endif
-
23 #endif
-
24 
-
25 namespace glm {
-
26  // xx
-
27  template<typename T, qualifier Q>
-
28  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<1, T, Q> &v) {
-
29  return glm::vec<2, T, Q>(v.x, v.x);
-
30  }
-
31 
-
32  template<typename T, qualifier Q>
-
33  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<2, T, Q> &v) {
-
34  return glm::vec<2, T, Q>(v.x, v.x);
-
35  }
-
36 
-
37  template<typename T, qualifier Q>
-
38  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<3, T, Q> &v) {
-
39  return glm::vec<2, T, Q>(v.x, v.x);
-
40  }
-
41 
-
42  template<typename T, qualifier Q>
-
43  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<4, T, Q> &v) {
-
44  return glm::vec<2, T, Q>(v.x, v.x);
-
45  }
-
46 
-
47  // xy
-
48  template<typename T, qualifier Q>
-
49  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<2, T, Q> &v) {
-
50  return glm::vec<2, T, Q>(v.x, v.y);
-
51  }
-
52 
-
53  template<typename T, qualifier Q>
-
54  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<3, T, Q> &v) {
-
55  return glm::vec<2, T, Q>(v.x, v.y);
-
56  }
-
57 
-
58  template<typename T, qualifier Q>
-
59  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<4, T, Q> &v) {
-
60  return glm::vec<2, T, Q>(v.x, v.y);
-
61  }
-
62 
-
63  // xz
-
64  template<typename T, qualifier Q>
-
65  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<3, T, Q> &v) {
-
66  return glm::vec<2, T, Q>(v.x, v.z);
-
67  }
-
68 
-
69  template<typename T, qualifier Q>
-
70  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<4, T, Q> &v) {
-
71  return glm::vec<2, T, Q>(v.x, v.z);
-
72  }
-
73 
-
74  // xw
-
75  template<typename T, qualifier Q>
-
76  GLM_INLINE glm::vec<2, T, Q> xw(const glm::vec<4, T, Q> &v) {
-
77  return glm::vec<2, T, Q>(v.x, v.w);
-
78  }
-
79 
-
80  // yx
-
81  template<typename T, qualifier Q>
-
82  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<2, T, Q> &v) {
-
83  return glm::vec<2, T, Q>(v.y, v.x);
-
84  }
-
85 
-
86  template<typename T, qualifier Q>
-
87  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<3, T, Q> &v) {
-
88  return glm::vec<2, T, Q>(v.y, v.x);
-
89  }
-
90 
-
91  template<typename T, qualifier Q>
-
92  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<4, T, Q> &v) {
-
93  return glm::vec<2, T, Q>(v.y, v.x);
-
94  }
-
95 
-
96  // yy
-
97  template<typename T, qualifier Q>
-
98  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<2, T, Q> &v) {
-
99  return glm::vec<2, T, Q>(v.y, v.y);
-
100  }
-
101 
-
102  template<typename T, qualifier Q>
-
103  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<3, T, Q> &v) {
-
104  return glm::vec<2, T, Q>(v.y, v.y);
-
105  }
-
106 
-
107  template<typename T, qualifier Q>
-
108  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<4, T, Q> &v) {
-
109  return glm::vec<2, T, Q>(v.y, v.y);
-
110  }
-
111 
-
112  // yz
-
113  template<typename T, qualifier Q>
-
114  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<3, T, Q> &v) {
-
115  return glm::vec<2, T, Q>(v.y, v.z);
-
116  }
-
117 
-
118  template<typename T, qualifier Q>
-
119  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<4, T, Q> &v) {
-
120  return glm::vec<2, T, Q>(v.y, v.z);
-
121  }
-
122 
-
123  // yw
-
124  template<typename T, qualifier Q>
-
125  GLM_INLINE glm::vec<2, T, Q> yw(const glm::vec<4, T, Q> &v) {
-
126  return glm::vec<2, T, Q>(v.y, v.w);
-
127  }
-
128 
-
129  // zx
-
130  template<typename T, qualifier Q>
-
131  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<3, T, Q> &v) {
-
132  return glm::vec<2, T, Q>(v.z, v.x);
-
133  }
-
134 
-
135  template<typename T, qualifier Q>
-
136  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<4, T, Q> &v) {
-
137  return glm::vec<2, T, Q>(v.z, v.x);
-
138  }
-
139 
-
140  // zy
-
141  template<typename T, qualifier Q>
-
142  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<3, T, Q> &v) {
-
143  return glm::vec<2, T, Q>(v.z, v.y);
-
144  }
-
145 
-
146  template<typename T, qualifier Q>
-
147  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<4, T, Q> &v) {
-
148  return glm::vec<2, T, Q>(v.z, v.y);
-
149  }
-
150 
-
151  // zz
-
152  template<typename T, qualifier Q>
-
153  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<3, T, Q> &v) {
-
154  return glm::vec<2, T, Q>(v.z, v.z);
-
155  }
-
156 
-
157  template<typename T, qualifier Q>
-
158  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<4, T, Q> &v) {
-
159  return glm::vec<2, T, Q>(v.z, v.z);
-
160  }
-
161 
-
162  // zw
-
163  template<typename T, qualifier Q>
-
164  GLM_INLINE glm::vec<2, T, Q> zw(const glm::vec<4, T, Q> &v) {
-
165  return glm::vec<2, T, Q>(v.z, v.w);
-
166  }
-
167 
-
168  // wx
-
169  template<typename T, qualifier Q>
-
170  GLM_INLINE glm::vec<2, T, Q> wx(const glm::vec<4, T, Q> &v) {
-
171  return glm::vec<2, T, Q>(v.w, v.x);
-
172  }
-
173 
-
174  // wy
-
175  template<typename T, qualifier Q>
-
176  GLM_INLINE glm::vec<2, T, Q> wy(const glm::vec<4, T, Q> &v) {
-
177  return glm::vec<2, T, Q>(v.w, v.y);
-
178  }
-
179 
-
180  // wz
-
181  template<typename T, qualifier Q>
-
182  GLM_INLINE glm::vec<2, T, Q> wz(const glm::vec<4, T, Q> &v) {
-
183  return glm::vec<2, T, Q>(v.w, v.z);
-
184  }
-
185 
-
186  // ww
-
187  template<typename T, qualifier Q>
-
188  GLM_INLINE glm::vec<2, T, Q> ww(const glm::vec<4, T, Q> &v) {
-
189  return glm::vec<2, T, Q>(v.w, v.w);
-
190  }
-
191 
-
192  // xxx
-
193  template<typename T, qualifier Q>
-
194  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<1, T, Q> &v) {
-
195  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
196  }
-
197 
-
198  template<typename T, qualifier Q>
-
199  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<2, T, Q> &v) {
-
200  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
201  }
-
202 
-
203  template<typename T, qualifier Q>
-
204  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<3, T, Q> &v) {
-
205  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
206  }
-
207 
-
208  template<typename T, qualifier Q>
-
209  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<4, T, Q> &v) {
-
210  return glm::vec<3, T, Q>(v.x, v.x, v.x);
-
211  }
-
212 
-
213  // xxy
-
214  template<typename T, qualifier Q>
-
215  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<2, T, Q> &v) {
-
216  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
217  }
-
218 
-
219  template<typename T, qualifier Q>
-
220  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<3, T, Q> &v) {
-
221  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
222  }
-
223 
-
224  template<typename T, qualifier Q>
-
225  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<4, T, Q> &v) {
-
226  return glm::vec<3, T, Q>(v.x, v.x, v.y);
-
227  }
-
228 
-
229  // xxz
-
230  template<typename T, qualifier Q>
-
231  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<3, T, Q> &v) {
-
232  return glm::vec<3, T, Q>(v.x, v.x, v.z);
-
233  }
-
234 
-
235  template<typename T, qualifier Q>
-
236  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<4, T, Q> &v) {
-
237  return glm::vec<3, T, Q>(v.x, v.x, v.z);
-
238  }
-
239 
-
240  // xxw
-
241  template<typename T, qualifier Q>
-
242  GLM_INLINE glm::vec<3, T, Q> xxw(const glm::vec<4, T, Q> &v) {
-
243  return glm::vec<3, T, Q>(v.x, v.x, v.w);
-
244  }
-
245 
-
246  // xyx
-
247  template<typename T, qualifier Q>
-
248  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<2, T, Q> &v) {
-
249  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
250  }
-
251 
-
252  template<typename T, qualifier Q>
-
253  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<3, T, Q> &v) {
-
254  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
255  }
-
256 
-
257  template<typename T, qualifier Q>
-
258  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<4, T, Q> &v) {
-
259  return glm::vec<3, T, Q>(v.x, v.y, v.x);
-
260  }
-
261 
-
262  // xyy
-
263  template<typename T, qualifier Q>
-
264  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<2, T, Q> &v) {
-
265  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
266  }
-
267 
-
268  template<typename T, qualifier Q>
-
269  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<3, T, Q> &v) {
-
270  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
271  }
-
272 
-
273  template<typename T, qualifier Q>
-
274  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<4, T, Q> &v) {
-
275  return glm::vec<3, T, Q>(v.x, v.y, v.y);
-
276  }
-
277 
-
278  // xyz
-
279  template<typename T, qualifier Q>
-
280  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<3, T, Q> &v) {
-
281  return glm::vec<3, T, Q>(v.x, v.y, v.z);
-
282  }
-
283 
-
284  template<typename T, qualifier Q>
-
285  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<4, T, Q> &v) {
-
286  return glm::vec<3, T, Q>(v.x, v.y, v.z);
-
287  }
-
288 
-
289  // xyw
-
290  template<typename T, qualifier Q>
-
291  GLM_INLINE glm::vec<3, T, Q> xyw(const glm::vec<4, T, Q> &v) {
-
292  return glm::vec<3, T, Q>(v.x, v.y, v.w);
-
293  }
-
294 
-
295  // xzx
-
296  template<typename T, qualifier Q>
-
297  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<3, T, Q> &v) {
-
298  return glm::vec<3, T, Q>(v.x, v.z, v.x);
-
299  }
-
300 
-
301  template<typename T, qualifier Q>
-
302  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<4, T, Q> &v) {
-
303  return glm::vec<3, T, Q>(v.x, v.z, v.x);
-
304  }
-
305 
-
306  // xzy
-
307  template<typename T, qualifier Q>
-
308  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<3, T, Q> &v) {
-
309  return glm::vec<3, T, Q>(v.x, v.z, v.y);
-
310  }
-
311 
-
312  template<typename T, qualifier Q>
-
313  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<4, T, Q> &v) {
-
314  return glm::vec<3, T, Q>(v.x, v.z, v.y);
-
315  }
-
316 
-
317  // xzz
-
318  template<typename T, qualifier Q>
-
319  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<3, T, Q> &v) {
-
320  return glm::vec<3, T, Q>(v.x, v.z, v.z);
-
321  }
-
322 
-
323  template<typename T, qualifier Q>
-
324  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<4, T, Q> &v) {
-
325  return glm::vec<3, T, Q>(v.x, v.z, v.z);
-
326  }
-
327 
-
328  // xzw
-
329  template<typename T, qualifier Q>
-
330  GLM_INLINE glm::vec<3, T, Q> xzw(const glm::vec<4, T, Q> &v) {
-
331  return glm::vec<3, T, Q>(v.x, v.z, v.w);
-
332  }
-
333 
-
334  // xwx
-
335  template<typename T, qualifier Q>
-
336  GLM_INLINE glm::vec<3, T, Q> xwx(const glm::vec<4, T, Q> &v) {
-
337  return glm::vec<3, T, Q>(v.x, v.w, v.x);
-
338  }
-
339 
-
340  // xwy
-
341  template<typename T, qualifier Q>
-
342  GLM_INLINE glm::vec<3, T, Q> xwy(const glm::vec<4, T, Q> &v) {
-
343  return glm::vec<3, T, Q>(v.x, v.w, v.y);
-
344  }
-
345 
-
346  // xwz
-
347  template<typename T, qualifier Q>
-
348  GLM_INLINE glm::vec<3, T, Q> xwz(const glm::vec<4, T, Q> &v) {
-
349  return glm::vec<3, T, Q>(v.x, v.w, v.z);
-
350  }
-
351 
-
352  // xww
-
353  template<typename T, qualifier Q>
-
354  GLM_INLINE glm::vec<3, T, Q> xww(const glm::vec<4, T, Q> &v) {
-
355  return glm::vec<3, T, Q>(v.x, v.w, v.w);
-
356  }
-
357 
-
358  // yxx
-
359  template<typename T, qualifier Q>
-
360  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<2, T, Q> &v) {
-
361  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
362  }
-
363 
-
364  template<typename T, qualifier Q>
-
365  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<3, T, Q> &v) {
-
366  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
367  }
-
368 
-
369  template<typename T, qualifier Q>
-
370  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<4, T, Q> &v) {
-
371  return glm::vec<3, T, Q>(v.y, v.x, v.x);
-
372  }
-
373 
-
374  // yxy
-
375  template<typename T, qualifier Q>
-
376  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<2, T, Q> &v) {
-
377  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
378  }
-
379 
-
380  template<typename T, qualifier Q>
-
381  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<3, T, Q> &v) {
-
382  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
383  }
-
384 
-
385  template<typename T, qualifier Q>
-
386  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<4, T, Q> &v) {
-
387  return glm::vec<3, T, Q>(v.y, v.x, v.y);
-
388  }
-
389 
-
390  // yxz
-
391  template<typename T, qualifier Q>
-
392  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<3, T, Q> &v) {
-
393  return glm::vec<3, T, Q>(v.y, v.x, v.z);
-
394  }
-
395 
-
396  template<typename T, qualifier Q>
-
397  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<4, T, Q> &v) {
-
398  return glm::vec<3, T, Q>(v.y, v.x, v.z);
-
399  }
-
400 
-
401  // yxw
-
402  template<typename T, qualifier Q>
-
403  GLM_INLINE glm::vec<3, T, Q> yxw(const glm::vec<4, T, Q> &v) {
-
404  return glm::vec<3, T, Q>(v.y, v.x, v.w);
-
405  }
-
406 
-
407  // yyx
-
408  template<typename T, qualifier Q>
-
409  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<2, T, Q> &v) {
-
410  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
411  }
-
412 
-
413  template<typename T, qualifier Q>
-
414  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<3, T, Q> &v) {
-
415  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
416  }
-
417 
-
418  template<typename T, qualifier Q>
-
419  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<4, T, Q> &v) {
-
420  return glm::vec<3, T, Q>(v.y, v.y, v.x);
-
421  }
-
422 
-
423  // yyy
-
424  template<typename T, qualifier Q>
-
425  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<2, T, Q> &v) {
-
426  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
427  }
-
428 
-
429  template<typename T, qualifier Q>
-
430  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<3, T, Q> &v) {
-
431  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
432  }
-
433 
-
434  template<typename T, qualifier Q>
-
435  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<4, T, Q> &v) {
-
436  return glm::vec<3, T, Q>(v.y, v.y, v.y);
-
437  }
-
438 
-
439  // yyz
-
440  template<typename T, qualifier Q>
-
441  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<3, T, Q> &v) {
-
442  return glm::vec<3, T, Q>(v.y, v.y, v.z);
-
443  }
-
444 
-
445  template<typename T, qualifier Q>
-
446  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<4, T, Q> &v) {
-
447  return glm::vec<3, T, Q>(v.y, v.y, v.z);
-
448  }
-
449 
-
450  // yyw
-
451  template<typename T, qualifier Q>
-
452  GLM_INLINE glm::vec<3, T, Q> yyw(const glm::vec<4, T, Q> &v) {
-
453  return glm::vec<3, T, Q>(v.y, v.y, v.w);
-
454  }
-
455 
-
456  // yzx
-
457  template<typename T, qualifier Q>
-
458  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<3, T, Q> &v) {
-
459  return glm::vec<3, T, Q>(v.y, v.z, v.x);
-
460  }
-
461 
-
462  template<typename T, qualifier Q>
-
463  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<4, T, Q> &v) {
-
464  return glm::vec<3, T, Q>(v.y, v.z, v.x);
-
465  }
-
466 
-
467  // yzy
-
468  template<typename T, qualifier Q>
-
469  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<3, T, Q> &v) {
-
470  return glm::vec<3, T, Q>(v.y, v.z, v.y);
-
471  }
-
472 
-
473  template<typename T, qualifier Q>
-
474  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<4, T, Q> &v) {
-
475  return glm::vec<3, T, Q>(v.y, v.z, v.y);
-
476  }
-
477 
-
478  // yzz
-
479  template<typename T, qualifier Q>
-
480  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<3, T, Q> &v) {
-
481  return glm::vec<3, T, Q>(v.y, v.z, v.z);
-
482  }
-
483 
-
484  template<typename T, qualifier Q>
-
485  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<4, T, Q> &v) {
-
486  return glm::vec<3, T, Q>(v.y, v.z, v.z);
-
487  }
-
488 
-
489  // yzw
-
490  template<typename T, qualifier Q>
-
491  GLM_INLINE glm::vec<3, T, Q> yzw(const glm::vec<4, T, Q> &v) {
-
492  return glm::vec<3, T, Q>(v.y, v.z, v.w);
-
493  }
-
494 
-
495  // ywx
-
496  template<typename T, qualifier Q>
-
497  GLM_INLINE glm::vec<3, T, Q> ywx(const glm::vec<4, T, Q> &v) {
-
498  return glm::vec<3, T, Q>(v.y, v.w, v.x);
-
499  }
-
500 
-
501  // ywy
-
502  template<typename T, qualifier Q>
-
503  GLM_INLINE glm::vec<3, T, Q> ywy(const glm::vec<4, T, Q> &v) {
-
504  return glm::vec<3, T, Q>(v.y, v.w, v.y);
-
505  }
-
506 
-
507  // ywz
-
508  template<typename T, qualifier Q>
-
509  GLM_INLINE glm::vec<3, T, Q> ywz(const glm::vec<4, T, Q> &v) {
-
510  return glm::vec<3, T, Q>(v.y, v.w, v.z);
-
511  }
-
512 
-
513  // yww
-
514  template<typename T, qualifier Q>
-
515  GLM_INLINE glm::vec<3, T, Q> yww(const glm::vec<4, T, Q> &v) {
-
516  return glm::vec<3, T, Q>(v.y, v.w, v.w);
-
517  }
-
518 
-
519  // zxx
-
520  template<typename T, qualifier Q>
-
521  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<3, T, Q> &v) {
-
522  return glm::vec<3, T, Q>(v.z, v.x, v.x);
-
523  }
-
524 
-
525  template<typename T, qualifier Q>
-
526  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<4, T, Q> &v) {
-
527  return glm::vec<3, T, Q>(v.z, v.x, v.x);
-
528  }
-
529 
-
530  // zxy
-
531  template<typename T, qualifier Q>
-
532  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<3, T, Q> &v) {
-
533  return glm::vec<3, T, Q>(v.z, v.x, v.y);
-
534  }
-
535 
-
536  template<typename T, qualifier Q>
-
537  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<4, T, Q> &v) {
-
538  return glm::vec<3, T, Q>(v.z, v.x, v.y);
-
539  }
-
540 
-
541  // zxz
-
542  template<typename T, qualifier Q>
-
543  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<3, T, Q> &v) {
-
544  return glm::vec<3, T, Q>(v.z, v.x, v.z);
-
545  }
-
546 
-
547  template<typename T, qualifier Q>
-
548  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<4, T, Q> &v) {
-
549  return glm::vec<3, T, Q>(v.z, v.x, v.z);
-
550  }
-
551 
-
552  // zxw
-
553  template<typename T, qualifier Q>
-
554  GLM_INLINE glm::vec<3, T, Q> zxw(const glm::vec<4, T, Q> &v) {
-
555  return glm::vec<3, T, Q>(v.z, v.x, v.w);
-
556  }
-
557 
-
558  // zyx
-
559  template<typename T, qualifier Q>
-
560  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<3, T, Q> &v) {
-
561  return glm::vec<3, T, Q>(v.z, v.y, v.x);
-
562  }
-
563 
-
564  template<typename T, qualifier Q>
-
565  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<4, T, Q> &v) {
-
566  return glm::vec<3, T, Q>(v.z, v.y, v.x);
-
567  }
-
568 
-
569  // zyy
-
570  template<typename T, qualifier Q>
-
571  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<3, T, Q> &v) {
-
572  return glm::vec<3, T, Q>(v.z, v.y, v.y);
-
573  }
-
574 
-
575  template<typename T, qualifier Q>
-
576  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<4, T, Q> &v) {
-
577  return glm::vec<3, T, Q>(v.z, v.y, v.y);
-
578  }
-
579 
-
580  // zyz
-
581  template<typename T, qualifier Q>
-
582  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<3, T, Q> &v) {
-
583  return glm::vec<3, T, Q>(v.z, v.y, v.z);
-
584  }
-
585 
-
586  template<typename T, qualifier Q>
-
587  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<4, T, Q> &v) {
-
588  return glm::vec<3, T, Q>(v.z, v.y, v.z);
-
589  }
-
590 
-
591  // zyw
-
592  template<typename T, qualifier Q>
-
593  GLM_INLINE glm::vec<3, T, Q> zyw(const glm::vec<4, T, Q> &v) {
-
594  return glm::vec<3, T, Q>(v.z, v.y, v.w);
-
595  }
-
596 
-
597  // zzx
-
598  template<typename T, qualifier Q>
-
599  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<3, T, Q> &v) {
-
600  return glm::vec<3, T, Q>(v.z, v.z, v.x);
-
601  }
-
602 
-
603  template<typename T, qualifier Q>
-
604  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<4, T, Q> &v) {
-
605  return glm::vec<3, T, Q>(v.z, v.z, v.x);
-
606  }
-
607 
-
608  // zzy
-
609  template<typename T, qualifier Q>
-
610  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<3, T, Q> &v) {
-
611  return glm::vec<3, T, Q>(v.z, v.z, v.y);
-
612  }
-
613 
-
614  template<typename T, qualifier Q>
-
615  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<4, T, Q> &v) {
-
616  return glm::vec<3, T, Q>(v.z, v.z, v.y);
-
617  }
-
618 
-
619  // zzz
-
620  template<typename T, qualifier Q>
-
621  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<3, T, Q> &v) {
-
622  return glm::vec<3, T, Q>(v.z, v.z, v.z);
-
623  }
-
624 
-
625  template<typename T, qualifier Q>
-
626  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<4, T, Q> &v) {
-
627  return glm::vec<3, T, Q>(v.z, v.z, v.z);
-
628  }
-
629 
-
630  // zzw
-
631  template<typename T, qualifier Q>
-
632  GLM_INLINE glm::vec<3, T, Q> zzw(const glm::vec<4, T, Q> &v) {
-
633  return glm::vec<3, T, Q>(v.z, v.z, v.w);
-
634  }
-
635 
-
636  // zwx
-
637  template<typename T, qualifier Q>
-
638  GLM_INLINE glm::vec<3, T, Q> zwx(const glm::vec<4, T, Q> &v) {
-
639  return glm::vec<3, T, Q>(v.z, v.w, v.x);
-
640  }
-
641 
-
642  // zwy
-
643  template<typename T, qualifier Q>
-
644  GLM_INLINE glm::vec<3, T, Q> zwy(const glm::vec<4, T, Q> &v) {
-
645  return glm::vec<3, T, Q>(v.z, v.w, v.y);
-
646  }
-
647 
-
648  // zwz
-
649  template<typename T, qualifier Q>
-
650  GLM_INLINE glm::vec<3, T, Q> zwz(const glm::vec<4, T, Q> &v) {
-
651  return glm::vec<3, T, Q>(v.z, v.w, v.z);
-
652  }
-
653 
-
654  // zww
-
655  template<typename T, qualifier Q>
-
656  GLM_INLINE glm::vec<3, T, Q> zww(const glm::vec<4, T, Q> &v) {
-
657  return glm::vec<3, T, Q>(v.z, v.w, v.w);
-
658  }
-
659 
-
660  // wxx
-
661  template<typename T, qualifier Q>
-
662  GLM_INLINE glm::vec<3, T, Q> wxx(const glm::vec<4, T, Q> &v) {
-
663  return glm::vec<3, T, Q>(v.w, v.x, v.x);
-
664  }
-
665 
-
666  // wxy
-
667  template<typename T, qualifier Q>
-
668  GLM_INLINE glm::vec<3, T, Q> wxy(const glm::vec<4, T, Q> &v) {
-
669  return glm::vec<3, T, Q>(v.w, v.x, v.y);
-
670  }
-
671 
-
672  // wxz
-
673  template<typename T, qualifier Q>
-
674  GLM_INLINE glm::vec<3, T, Q> wxz(const glm::vec<4, T, Q> &v) {
-
675  return glm::vec<3, T, Q>(v.w, v.x, v.z);
-
676  }
-
677 
-
678  // wxw
-
679  template<typename T, qualifier Q>
-
680  GLM_INLINE glm::vec<3, T, Q> wxw(const glm::vec<4, T, Q> &v) {
-
681  return glm::vec<3, T, Q>(v.w, v.x, v.w);
-
682  }
-
683 
-
684  // wyx
-
685  template<typename T, qualifier Q>
-
686  GLM_INLINE glm::vec<3, T, Q> wyx(const glm::vec<4, T, Q> &v) {
-
687  return glm::vec<3, T, Q>(v.w, v.y, v.x);
-
688  }
-
689 
-
690  // wyy
-
691  template<typename T, qualifier Q>
-
692  GLM_INLINE glm::vec<3, T, Q> wyy(const glm::vec<4, T, Q> &v) {
-
693  return glm::vec<3, T, Q>(v.w, v.y, v.y);
-
694  }
-
695 
-
696  // wyz
-
697  template<typename T, qualifier Q>
-
698  GLM_INLINE glm::vec<3, T, Q> wyz(const glm::vec<4, T, Q> &v) {
-
699  return glm::vec<3, T, Q>(v.w, v.y, v.z);
-
700  }
-
701 
-
702  // wyw
-
703  template<typename T, qualifier Q>
-
704  GLM_INLINE glm::vec<3, T, Q> wyw(const glm::vec<4, T, Q> &v) {
-
705  return glm::vec<3, T, Q>(v.w, v.y, v.w);
-
706  }
-
707 
-
708  // wzx
-
709  template<typename T, qualifier Q>
-
710  GLM_INLINE glm::vec<3, T, Q> wzx(const glm::vec<4, T, Q> &v) {
-
711  return glm::vec<3, T, Q>(v.w, v.z, v.x);
-
712  }
-
713 
-
714  // wzy
-
715  template<typename T, qualifier Q>
-
716  GLM_INLINE glm::vec<3, T, Q> wzy(const glm::vec<4, T, Q> &v) {
-
717  return glm::vec<3, T, Q>(v.w, v.z, v.y);
-
718  }
-
719 
-
720  // wzz
-
721  template<typename T, qualifier Q>
-
722  GLM_INLINE glm::vec<3, T, Q> wzz(const glm::vec<4, T, Q> &v) {
-
723  return glm::vec<3, T, Q>(v.w, v.z, v.z);
-
724  }
-
725 
-
726  // wzw
-
727  template<typename T, qualifier Q>
-
728  GLM_INLINE glm::vec<3, T, Q> wzw(const glm::vec<4, T, Q> &v) {
-
729  return glm::vec<3, T, Q>(v.w, v.z, v.w);
-
730  }
-
731 
-
732  // wwx
-
733  template<typename T, qualifier Q>
-
734  GLM_INLINE glm::vec<3, T, Q> wwx(const glm::vec<4, T, Q> &v) {
-
735  return glm::vec<3, T, Q>(v.w, v.w, v.x);
-
736  }
-
737 
-
738  // wwy
-
739  template<typename T, qualifier Q>
-
740  GLM_INLINE glm::vec<3, T, Q> wwy(const glm::vec<4, T, Q> &v) {
-
741  return glm::vec<3, T, Q>(v.w, v.w, v.y);
-
742  }
-
743 
-
744  // wwz
-
745  template<typename T, qualifier Q>
-
746  GLM_INLINE glm::vec<3, T, Q> wwz(const glm::vec<4, T, Q> &v) {
-
747  return glm::vec<3, T, Q>(v.w, v.w, v.z);
-
748  }
-
749 
-
750  // www
-
751  template<typename T, qualifier Q>
-
752  GLM_INLINE glm::vec<3, T, Q> www(const glm::vec<4, T, Q> &v) {
-
753  return glm::vec<3, T, Q>(v.w, v.w, v.w);
-
754  }
-
755 
-
756  // xxxx
-
757  template<typename T, qualifier Q>
-
758  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<1, T, Q> &v) {
-
759  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
760  }
-
761 
-
762  template<typename T, qualifier Q>
-
763  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<2, T, Q> &v) {
-
764  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
765  }
-
766 
-
767  template<typename T, qualifier Q>
-
768  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<3, T, Q> &v) {
-
769  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
770  }
-
771 
-
772  template<typename T, qualifier Q>
-
773  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<4, T, Q> &v) {
-
774  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
-
775  }
-
776 
-
777  // xxxy
-
778  template<typename T, qualifier Q>
-
779  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<2, T, Q> &v) {
-
780  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
781  }
-
782 
-
783  template<typename T, qualifier Q>
-
784  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<3, T, Q> &v) {
-
785  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
786  }
-
787 
-
788  template<typename T, qualifier Q>
-
789  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<4, T, Q> &v) {
-
790  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
-
791  }
-
792 
-
793  // xxxz
-
794  template<typename T, qualifier Q>
-
795  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<3, T, Q> &v) {
-
796  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
-
797  }
-
798 
-
799  template<typename T, qualifier Q>
-
800  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<4, T, Q> &v) {
-
801  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
-
802  }
-
803 
-
804  // xxxw
-
805  template<typename T, qualifier Q>
-
806  GLM_INLINE glm::vec<4, T, Q> xxxw(const glm::vec<4, T, Q> &v) {
-
807  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.w);
-
808  }
-
809 
-
810  // xxyx
-
811  template<typename T, qualifier Q>
-
812  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<2, T, Q> &v) {
-
813  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
814  }
-
815 
-
816  template<typename T, qualifier Q>
-
817  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<3, T, Q> &v) {
-
818  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
819  }
-
820 
-
821  template<typename T, qualifier Q>
-
822  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<4, T, Q> &v) {
-
823  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
-
824  }
-
825 
-
826  // xxyy
-
827  template<typename T, qualifier Q>
-
828  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<2, T, Q> &v) {
-
829  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
830  }
-
831 
-
832  template<typename T, qualifier Q>
-
833  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<3, T, Q> &v) {
-
834  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
835  }
-
836 
-
837  template<typename T, qualifier Q>
-
838  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<4, T, Q> &v) {
-
839  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
-
840  }
-
841 
-
842  // xxyz
-
843  template<typename T, qualifier Q>
-
844  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<3, T, Q> &v) {
-
845  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
-
846  }
-
847 
-
848  template<typename T, qualifier Q>
-
849  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<4, T, Q> &v) {
-
850  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
-
851  }
-
852 
-
853  // xxyw
-
854  template<typename T, qualifier Q>
-
855  GLM_INLINE glm::vec<4, T, Q> xxyw(const glm::vec<4, T, Q> &v) {
-
856  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.w);
-
857  }
-
858 
-
859  // xxzx
-
860  template<typename T, qualifier Q>
-
861  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<3, T, Q> &v) {
-
862  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
-
863  }
-
864 
-
865  template<typename T, qualifier Q>
-
866  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<4, T, Q> &v) {
-
867  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
-
868  }
-
869 
-
870  // xxzy
-
871  template<typename T, qualifier Q>
-
872  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<3, T, Q> &v) {
-
873  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
-
874  }
-
875 
-
876  template<typename T, qualifier Q>
-
877  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<4, T, Q> &v) {
-
878  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
-
879  }
-
880 
-
881  // xxzz
-
882  template<typename T, qualifier Q>
-
883  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<3, T, Q> &v) {
-
884  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
-
885  }
-
886 
-
887  template<typename T, qualifier Q>
-
888  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<4, T, Q> &v) {
-
889  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
-
890  }
-
891 
-
892  // xxzw
-
893  template<typename T, qualifier Q>
-
894  GLM_INLINE glm::vec<4, T, Q> xxzw(const glm::vec<4, T, Q> &v) {
-
895  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.w);
-
896  }
-
897 
-
898  // xxwx
-
899  template<typename T, qualifier Q>
-
900  GLM_INLINE glm::vec<4, T, Q> xxwx(const glm::vec<4, T, Q> &v) {
-
901  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.x);
-
902  }
-
903 
-
904  // xxwy
-
905  template<typename T, qualifier Q>
-
906  GLM_INLINE glm::vec<4, T, Q> xxwy(const glm::vec<4, T, Q> &v) {
-
907  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.y);
-
908  }
-
909 
-
910  // xxwz
-
911  template<typename T, qualifier Q>
-
912  GLM_INLINE glm::vec<4, T, Q> xxwz(const glm::vec<4, T, Q> &v) {
-
913  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.z);
-
914  }
-
915 
-
916  // xxww
-
917  template<typename T, qualifier Q>
-
918  GLM_INLINE glm::vec<4, T, Q> xxww(const glm::vec<4, T, Q> &v) {
-
919  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.w);
-
920  }
-
921 
-
922  // xyxx
-
923  template<typename T, qualifier Q>
-
924  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<2, T, Q> &v) {
-
925  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
926  }
-
927 
-
928  template<typename T, qualifier Q>
-
929  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<3, T, Q> &v) {
-
930  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
931  }
-
932 
-
933  template<typename T, qualifier Q>
-
934  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<4, T, Q> &v) {
-
935  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
-
936  }
-
937 
-
938  // xyxy
-
939  template<typename T, qualifier Q>
-
940  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<2, T, Q> &v) {
-
941  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
942  }
-
943 
-
944  template<typename T, qualifier Q>
-
945  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<3, T, Q> &v) {
-
946  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
947  }
-
948 
-
949  template<typename T, qualifier Q>
-
950  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<4, T, Q> &v) {
-
951  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
-
952  }
-
953 
-
954  // xyxz
-
955  template<typename T, qualifier Q>
-
956  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<3, T, Q> &v) {
-
957  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
-
958  }
-
959 
-
960  template<typename T, qualifier Q>
-
961  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<4, T, Q> &v) {
-
962  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
-
963  }
-
964 
-
965  // xyxw
-
966  template<typename T, qualifier Q>
-
967  GLM_INLINE glm::vec<4, T, Q> xyxw(const glm::vec<4, T, Q> &v) {
-
968  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.w);
-
969  }
-
970 
-
971  // xyyx
-
972  template<typename T, qualifier Q>
-
973  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<2, T, Q> &v) {
-
974  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
975  }
-
976 
-
977  template<typename T, qualifier Q>
-
978  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<3, T, Q> &v) {
-
979  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
980  }
-
981 
-
982  template<typename T, qualifier Q>
-
983  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<4, T, Q> &v) {
-
984  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
-
985  }
-
986 
-
987  // xyyy
-
988  template<typename T, qualifier Q>
-
989  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<2, T, Q> &v) {
-
990  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
991  }
-
992 
-
993  template<typename T, qualifier Q>
-
994  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<3, T, Q> &v) {
-
995  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
996  }
-
997 
-
998  template<typename T, qualifier Q>
-
999  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<4, T, Q> &v) {
-
1000  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
-
1001  }
-
1002 
-
1003  // xyyz
-
1004  template<typename T, qualifier Q>
-
1005  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<3, T, Q> &v) {
-
1006  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
-
1007  }
-
1008 
-
1009  template<typename T, qualifier Q>
-
1010  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<4, T, Q> &v) {
-
1011  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
-
1012  }
-
1013 
-
1014  // xyyw
-
1015  template<typename T, qualifier Q>
-
1016  GLM_INLINE glm::vec<4, T, Q> xyyw(const glm::vec<4, T, Q> &v) {
-
1017  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.w);
-
1018  }
-
1019 
-
1020  // xyzx
-
1021  template<typename T, qualifier Q>
-
1022  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<3, T, Q> &v) {
-
1023  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
-
1024  }
-
1025 
-
1026  template<typename T, qualifier Q>
-
1027  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<4, T, Q> &v) {
-
1028  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
-
1029  }
-
1030 
-
1031  // xyzy
-
1032  template<typename T, qualifier Q>
-
1033  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<3, T, Q> &v) {
-
1034  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
-
1035  }
-
1036 
-
1037  template<typename T, qualifier Q>
-
1038  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<4, T, Q> &v) {
-
1039  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
-
1040  }
-
1041 
-
1042  // xyzz
-
1043  template<typename T, qualifier Q>
-
1044  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<3, T, Q> &v) {
-
1045  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
-
1046  }
-
1047 
-
1048  template<typename T, qualifier Q>
-
1049  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<4, T, Q> &v) {
-
1050  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
-
1051  }
-
1052 
-
1053  // xyzw
-
1054  template<typename T, qualifier Q>
-
1055  GLM_INLINE glm::vec<4, T, Q> xyzw(const glm::vec<4, T, Q> &v) {
-
1056  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.w);
-
1057  }
-
1058 
-
1059  // xywx
-
1060  template<typename T, qualifier Q>
-
1061  GLM_INLINE glm::vec<4, T, Q> xywx(const glm::vec<4, T, Q> &v) {
-
1062  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.x);
-
1063  }
-
1064 
-
1065  // xywy
-
1066  template<typename T, qualifier Q>
-
1067  GLM_INLINE glm::vec<4, T, Q> xywy(const glm::vec<4, T, Q> &v) {
-
1068  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.y);
-
1069  }
-
1070 
-
1071  // xywz
-
1072  template<typename T, qualifier Q>
-
1073  GLM_INLINE glm::vec<4, T, Q> xywz(const glm::vec<4, T, Q> &v) {
-
1074  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.z);
-
1075  }
-
1076 
-
1077  // xyww
-
1078  template<typename T, qualifier Q>
-
1079  GLM_INLINE glm::vec<4, T, Q> xyww(const glm::vec<4, T, Q> &v) {
-
1080  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.w);
-
1081  }
-
1082 
-
1083  // xzxx
-
1084  template<typename T, qualifier Q>
-
1085  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<3, T, Q> &v) {
-
1086  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
-
1087  }
-
1088 
-
1089  template<typename T, qualifier Q>
-
1090  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<4, T, Q> &v) {
-
1091  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
-
1092  }
-
1093 
-
1094  // xzxy
-
1095  template<typename T, qualifier Q>
-
1096  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<3, T, Q> &v) {
-
1097  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
-
1098  }
-
1099 
-
1100  template<typename T, qualifier Q>
-
1101  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<4, T, Q> &v) {
-
1102  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
-
1103  }
-
1104 
-
1105  // xzxz
-
1106  template<typename T, qualifier Q>
-
1107  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<3, T, Q> &v) {
-
1108  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
-
1109  }
-
1110 
-
1111  template<typename T, qualifier Q>
-
1112  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<4, T, Q> &v) {
-
1113  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
-
1114  }
-
1115 
-
1116  // xzxw
-
1117  template<typename T, qualifier Q>
-
1118  GLM_INLINE glm::vec<4, T, Q> xzxw(const glm::vec<4, T, Q> &v) {
-
1119  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.w);
-
1120  }
-
1121 
-
1122  // xzyx
-
1123  template<typename T, qualifier Q>
-
1124  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<3, T, Q> &v) {
-
1125  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
-
1126  }
-
1127 
-
1128  template<typename T, qualifier Q>
-
1129  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<4, T, Q> &v) {
-
1130  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
-
1131  }
-
1132 
-
1133  // xzyy
-
1134  template<typename T, qualifier Q>
-
1135  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<3, T, Q> &v) {
-
1136  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
-
1137  }
-
1138 
-
1139  template<typename T, qualifier Q>
-
1140  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<4, T, Q> &v) {
-
1141  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
-
1142  }
-
1143 
-
1144  // xzyz
-
1145  template<typename T, qualifier Q>
-
1146  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<3, T, Q> &v) {
-
1147  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
-
1148  }
-
1149 
-
1150  template<typename T, qualifier Q>
-
1151  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<4, T, Q> &v) {
-
1152  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
-
1153  }
-
1154 
-
1155  // xzyw
-
1156  template<typename T, qualifier Q>
-
1157  GLM_INLINE glm::vec<4, T, Q> xzyw(const glm::vec<4, T, Q> &v) {
-
1158  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.w);
-
1159  }
-
1160 
-
1161  // xzzx
-
1162  template<typename T, qualifier Q>
-
1163  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<3, T, Q> &v) {
-
1164  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
-
1165  }
-
1166 
-
1167  template<typename T, qualifier Q>
-
1168  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<4, T, Q> &v) {
-
1169  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
-
1170  }
-
1171 
-
1172  // xzzy
-
1173  template<typename T, qualifier Q>
-
1174  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<3, T, Q> &v) {
-
1175  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
-
1176  }
-
1177 
-
1178  template<typename T, qualifier Q>
-
1179  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<4, T, Q> &v) {
-
1180  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
-
1181  }
-
1182 
-
1183  // xzzz
-
1184  template<typename T, qualifier Q>
-
1185  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<3, T, Q> &v) {
-
1186  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
-
1187  }
-
1188 
-
1189  template<typename T, qualifier Q>
-
1190  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<4, T, Q> &v) {
-
1191  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
-
1192  }
-
1193 
-
1194  // xzzw
-
1195  template<typename T, qualifier Q>
-
1196  GLM_INLINE glm::vec<4, T, Q> xzzw(const glm::vec<4, T, Q> &v) {
-
1197  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.w);
-
1198  }
-
1199 
-
1200  // xzwx
-
1201  template<typename T, qualifier Q>
-
1202  GLM_INLINE glm::vec<4, T, Q> xzwx(const glm::vec<4, T, Q> &v) {
-
1203  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.x);
-
1204  }
-
1205 
-
1206  // xzwy
-
1207  template<typename T, qualifier Q>
-
1208  GLM_INLINE glm::vec<4, T, Q> xzwy(const glm::vec<4, T, Q> &v) {
-
1209  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.y);
-
1210  }
-
1211 
-
1212  // xzwz
-
1213  template<typename T, qualifier Q>
-
1214  GLM_INLINE glm::vec<4, T, Q> xzwz(const glm::vec<4, T, Q> &v) {
-
1215  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.z);
-
1216  }
-
1217 
-
1218  // xzww
-
1219  template<typename T, qualifier Q>
-
1220  GLM_INLINE glm::vec<4, T, Q> xzww(const glm::vec<4, T, Q> &v) {
-
1221  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.w);
-
1222  }
-
1223 
-
1224  // xwxx
-
1225  template<typename T, qualifier Q>
-
1226  GLM_INLINE glm::vec<4, T, Q> xwxx(const glm::vec<4, T, Q> &v) {
-
1227  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.x);
-
1228  }
-
1229 
-
1230  // xwxy
-
1231  template<typename T, qualifier Q>
-
1232  GLM_INLINE glm::vec<4, T, Q> xwxy(const glm::vec<4, T, Q> &v) {
-
1233  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.y);
-
1234  }
-
1235 
-
1236  // xwxz
-
1237  template<typename T, qualifier Q>
-
1238  GLM_INLINE glm::vec<4, T, Q> xwxz(const glm::vec<4, T, Q> &v) {
-
1239  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.z);
-
1240  }
-
1241 
-
1242  // xwxw
-
1243  template<typename T, qualifier Q>
-
1244  GLM_INLINE glm::vec<4, T, Q> xwxw(const glm::vec<4, T, Q> &v) {
-
1245  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.w);
-
1246  }
-
1247 
-
1248  // xwyx
-
1249  template<typename T, qualifier Q>
-
1250  GLM_INLINE glm::vec<4, T, Q> xwyx(const glm::vec<4, T, Q> &v) {
-
1251  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.x);
-
1252  }
-
1253 
-
1254  // xwyy
-
1255  template<typename T, qualifier Q>
-
1256  GLM_INLINE glm::vec<4, T, Q> xwyy(const glm::vec<4, T, Q> &v) {
-
1257  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.y);
-
1258  }
-
1259 
-
1260  // xwyz
-
1261  template<typename T, qualifier Q>
-
1262  GLM_INLINE glm::vec<4, T, Q> xwyz(const glm::vec<4, T, Q> &v) {
-
1263  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.z);
-
1264  }
-
1265 
-
1266  // xwyw
-
1267  template<typename T, qualifier Q>
-
1268  GLM_INLINE glm::vec<4, T, Q> xwyw(const glm::vec<4, T, Q> &v) {
-
1269  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.w);
-
1270  }
-
1271 
-
1272  // xwzx
-
1273  template<typename T, qualifier Q>
-
1274  GLM_INLINE glm::vec<4, T, Q> xwzx(const glm::vec<4, T, Q> &v) {
-
1275  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.x);
-
1276  }
-
1277 
-
1278  // xwzy
-
1279  template<typename T, qualifier Q>
-
1280  GLM_INLINE glm::vec<4, T, Q> xwzy(const glm::vec<4, T, Q> &v) {
-
1281  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.y);
-
1282  }
-
1283 
-
1284  // xwzz
-
1285  template<typename T, qualifier Q>
-
1286  GLM_INLINE glm::vec<4, T, Q> xwzz(const glm::vec<4, T, Q> &v) {
-
1287  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.z);
-
1288  }
-
1289 
-
1290  // xwzw
-
1291  template<typename T, qualifier Q>
-
1292  GLM_INLINE glm::vec<4, T, Q> xwzw(const glm::vec<4, T, Q> &v) {
-
1293  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.w);
-
1294  }
-
1295 
-
1296  // xwwx
-
1297  template<typename T, qualifier Q>
-
1298  GLM_INLINE glm::vec<4, T, Q> xwwx(const glm::vec<4, T, Q> &v) {
-
1299  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.x);
-
1300  }
-
1301 
-
1302  // xwwy
-
1303  template<typename T, qualifier Q>
-
1304  GLM_INLINE glm::vec<4, T, Q> xwwy(const glm::vec<4, T, Q> &v) {
-
1305  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.y);
-
1306  }
-
1307 
-
1308  // xwwz
-
1309  template<typename T, qualifier Q>
-
1310  GLM_INLINE glm::vec<4, T, Q> xwwz(const glm::vec<4, T, Q> &v) {
-
1311  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.z);
-
1312  }
-
1313 
-
1314  // xwww
-
1315  template<typename T, qualifier Q>
-
1316  GLM_INLINE glm::vec<4, T, Q> xwww(const glm::vec<4, T, Q> &v) {
-
1317  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.w);
-
1318  }
-
1319 
-
1320  // yxxx
-
1321  template<typename T, qualifier Q>
-
1322  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<2, T, Q> &v) {
-
1323  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1324  }
-
1325 
-
1326  template<typename T, qualifier Q>
-
1327  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<3, T, Q> &v) {
-
1328  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1329  }
-
1330 
-
1331  template<typename T, qualifier Q>
-
1332  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<4, T, Q> &v) {
-
1333  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
-
1334  }
-
1335 
-
1336  // yxxy
-
1337  template<typename T, qualifier Q>
-
1338  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<2, T, Q> &v) {
-
1339  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1340  }
-
1341 
-
1342  template<typename T, qualifier Q>
-
1343  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<3, T, Q> &v) {
-
1344  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1345  }
-
1346 
-
1347  template<typename T, qualifier Q>
-
1348  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<4, T, Q> &v) {
-
1349  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
-
1350  }
-
1351 
-
1352  // yxxz
-
1353  template<typename T, qualifier Q>
-
1354  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<3, T, Q> &v) {
-
1355  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
-
1356  }
-
1357 
-
1358  template<typename T, qualifier Q>
-
1359  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<4, T, Q> &v) {
-
1360  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
-
1361  }
-
1362 
-
1363  // yxxw
-
1364  template<typename T, qualifier Q>
-
1365  GLM_INLINE glm::vec<4, T, Q> yxxw(const glm::vec<4, T, Q> &v) {
-
1366  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.w);
-
1367  }
-
1368 
-
1369  // yxyx
-
1370  template<typename T, qualifier Q>
-
1371  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<2, T, Q> &v) {
-
1372  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1373  }
-
1374 
-
1375  template<typename T, qualifier Q>
-
1376  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<3, T, Q> &v) {
-
1377  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1378  }
-
1379 
-
1380  template<typename T, qualifier Q>
-
1381  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<4, T, Q> &v) {
-
1382  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
-
1383  }
-
1384 
-
1385  // yxyy
-
1386  template<typename T, qualifier Q>
-
1387  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<2, T, Q> &v) {
-
1388  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1389  }
-
1390 
-
1391  template<typename T, qualifier Q>
-
1392  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<3, T, Q> &v) {
-
1393  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1394  }
-
1395 
-
1396  template<typename T, qualifier Q>
-
1397  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<4, T, Q> &v) {
-
1398  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
-
1399  }
-
1400 
-
1401  // yxyz
-
1402  template<typename T, qualifier Q>
-
1403  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<3, T, Q> &v) {
-
1404  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
-
1405  }
-
1406 
-
1407  template<typename T, qualifier Q>
-
1408  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<4, T, Q> &v) {
-
1409  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
-
1410  }
-
1411 
-
1412  // yxyw
-
1413  template<typename T, qualifier Q>
-
1414  GLM_INLINE glm::vec<4, T, Q> yxyw(const glm::vec<4, T, Q> &v) {
-
1415  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.w);
-
1416  }
-
1417 
-
1418  // yxzx
-
1419  template<typename T, qualifier Q>
-
1420  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<3, T, Q> &v) {
-
1421  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
-
1422  }
-
1423 
-
1424  template<typename T, qualifier Q>
-
1425  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<4, T, Q> &v) {
-
1426  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
-
1427  }
-
1428 
-
1429  // yxzy
-
1430  template<typename T, qualifier Q>
-
1431  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<3, T, Q> &v) {
-
1432  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
-
1433  }
-
1434 
-
1435  template<typename T, qualifier Q>
-
1436  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<4, T, Q> &v) {
-
1437  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
-
1438  }
-
1439 
-
1440  // yxzz
-
1441  template<typename T, qualifier Q>
-
1442  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<3, T, Q> &v) {
-
1443  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
-
1444  }
-
1445 
-
1446  template<typename T, qualifier Q>
-
1447  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<4, T, Q> &v) {
-
1448  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
-
1449  }
-
1450 
-
1451  // yxzw
-
1452  template<typename T, qualifier Q>
-
1453  GLM_INLINE glm::vec<4, T, Q> yxzw(const glm::vec<4, T, Q> &v) {
-
1454  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.w);
-
1455  }
-
1456 
-
1457  // yxwx
-
1458  template<typename T, qualifier Q>
-
1459  GLM_INLINE glm::vec<4, T, Q> yxwx(const glm::vec<4, T, Q> &v) {
-
1460  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.x);
-
1461  }
-
1462 
-
1463  // yxwy
-
1464  template<typename T, qualifier Q>
-
1465  GLM_INLINE glm::vec<4, T, Q> yxwy(const glm::vec<4, T, Q> &v) {
-
1466  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.y);
-
1467  }
-
1468 
-
1469  // yxwz
-
1470  template<typename T, qualifier Q>
-
1471  GLM_INLINE glm::vec<4, T, Q> yxwz(const glm::vec<4, T, Q> &v) {
-
1472  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.z);
-
1473  }
-
1474 
-
1475  // yxww
-
1476  template<typename T, qualifier Q>
-
1477  GLM_INLINE glm::vec<4, T, Q> yxww(const glm::vec<4, T, Q> &v) {
-
1478  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.w);
-
1479  }
-
1480 
-
1481  // yyxx
-
1482  template<typename T, qualifier Q>
-
1483  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<2, T, Q> &v) {
-
1484  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1485  }
-
1486 
-
1487  template<typename T, qualifier Q>
-
1488  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<3, T, Q> &v) {
-
1489  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1490  }
-
1491 
-
1492  template<typename T, qualifier Q>
-
1493  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<4, T, Q> &v) {
-
1494  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
-
1495  }
-
1496 
-
1497  // yyxy
-
1498  template<typename T, qualifier Q>
-
1499  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<2, T, Q> &v) {
-
1500  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1501  }
-
1502 
-
1503  template<typename T, qualifier Q>
-
1504  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<3, T, Q> &v) {
-
1505  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1506  }
-
1507 
-
1508  template<typename T, qualifier Q>
-
1509  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<4, T, Q> &v) {
-
1510  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
-
1511  }
-
1512 
-
1513  // yyxz
-
1514  template<typename T, qualifier Q>
-
1515  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<3, T, Q> &v) {
-
1516  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
-
1517  }
-
1518 
-
1519  template<typename T, qualifier Q>
-
1520  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<4, T, Q> &v) {
-
1521  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
-
1522  }
-
1523 
-
1524  // yyxw
-
1525  template<typename T, qualifier Q>
-
1526  GLM_INLINE glm::vec<4, T, Q> yyxw(const glm::vec<4, T, Q> &v) {
-
1527  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.w);
-
1528  }
-
1529 
-
1530  // yyyx
-
1531  template<typename T, qualifier Q>
-
1532  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<2, T, Q> &v) {
-
1533  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1534  }
-
1535 
-
1536  template<typename T, qualifier Q>
-
1537  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<3, T, Q> &v) {
-
1538  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1539  }
-
1540 
-
1541  template<typename T, qualifier Q>
-
1542  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<4, T, Q> &v) {
-
1543  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
-
1544  }
-
1545 
-
1546  // yyyy
-
1547  template<typename T, qualifier Q>
-
1548  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<2, T, Q> &v) {
-
1549  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1550  }
-
1551 
-
1552  template<typename T, qualifier Q>
-
1553  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<3, T, Q> &v) {
-
1554  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1555  }
-
1556 
-
1557  template<typename T, qualifier Q>
-
1558  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<4, T, Q> &v) {
-
1559  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
-
1560  }
-
1561 
-
1562  // yyyz
-
1563  template<typename T, qualifier Q>
-
1564  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<3, T, Q> &v) {
-
1565  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
-
1566  }
-
1567 
-
1568  template<typename T, qualifier Q>
-
1569  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<4, T, Q> &v) {
-
1570  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
-
1571  }
-
1572 
-
1573  // yyyw
-
1574  template<typename T, qualifier Q>
-
1575  GLM_INLINE glm::vec<4, T, Q> yyyw(const glm::vec<4, T, Q> &v) {
-
1576  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.w);
-
1577  }
-
1578 
-
1579  // yyzx
-
1580  template<typename T, qualifier Q>
-
1581  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<3, T, Q> &v) {
-
1582  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
-
1583  }
-
1584 
-
1585  template<typename T, qualifier Q>
-
1586  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<4, T, Q> &v) {
-
1587  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
-
1588  }
-
1589 
-
1590  // yyzy
-
1591  template<typename T, qualifier Q>
-
1592  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<3, T, Q> &v) {
-
1593  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
-
1594  }
-
1595 
-
1596  template<typename T, qualifier Q>
-
1597  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<4, T, Q> &v) {
-
1598  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
-
1599  }
-
1600 
-
1601  // yyzz
-
1602  template<typename T, qualifier Q>
-
1603  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<3, T, Q> &v) {
-
1604  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
-
1605  }
-
1606 
-
1607  template<typename T, qualifier Q>
-
1608  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<4, T, Q> &v) {
-
1609  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
-
1610  }
-
1611 
-
1612  // yyzw
-
1613  template<typename T, qualifier Q>
-
1614  GLM_INLINE glm::vec<4, T, Q> yyzw(const glm::vec<4, T, Q> &v) {
-
1615  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.w);
-
1616  }
-
1617 
-
1618  // yywx
-
1619  template<typename T, qualifier Q>
-
1620  GLM_INLINE glm::vec<4, T, Q> yywx(const glm::vec<4, T, Q> &v) {
-
1621  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.x);
-
1622  }
-
1623 
-
1624  // yywy
-
1625  template<typename T, qualifier Q>
-
1626  GLM_INLINE glm::vec<4, T, Q> yywy(const glm::vec<4, T, Q> &v) {
-
1627  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.y);
-
1628  }
-
1629 
-
1630  // yywz
-
1631  template<typename T, qualifier Q>
-
1632  GLM_INLINE glm::vec<4, T, Q> yywz(const glm::vec<4, T, Q> &v) {
-
1633  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.z);
-
1634  }
-
1635 
-
1636  // yyww
-
1637  template<typename T, qualifier Q>
-
1638  GLM_INLINE glm::vec<4, T, Q> yyww(const glm::vec<4, T, Q> &v) {
-
1639  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.w);
-
1640  }
-
1641 
-
1642  // yzxx
-
1643  template<typename T, qualifier Q>
-
1644  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<3, T, Q> &v) {
-
1645  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
-
1646  }
-
1647 
-
1648  template<typename T, qualifier Q>
-
1649  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<4, T, Q> &v) {
-
1650  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
-
1651  }
-
1652 
-
1653  // yzxy
-
1654  template<typename T, qualifier Q>
-
1655  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<3, T, Q> &v) {
-
1656  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
-
1657  }
-
1658 
-
1659  template<typename T, qualifier Q>
-
1660  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<4, T, Q> &v) {
-
1661  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
-
1662  }
-
1663 
-
1664  // yzxz
-
1665  template<typename T, qualifier Q>
-
1666  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<3, T, Q> &v) {
-
1667  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
-
1668  }
-
1669 
-
1670  template<typename T, qualifier Q>
-
1671  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<4, T, Q> &v) {
-
1672  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
-
1673  }
-
1674 
-
1675  // yzxw
-
1676  template<typename T, qualifier Q>
-
1677  GLM_INLINE glm::vec<4, T, Q> yzxw(const glm::vec<4, T, Q> &v) {
-
1678  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.w);
-
1679  }
-
1680 
-
1681  // yzyx
-
1682  template<typename T, qualifier Q>
-
1683  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<3, T, Q> &v) {
-
1684  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
-
1685  }
-
1686 
-
1687  template<typename T, qualifier Q>
-
1688  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<4, T, Q> &v) {
-
1689  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
-
1690  }
-
1691 
-
1692  // yzyy
-
1693  template<typename T, qualifier Q>
-
1694  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<3, T, Q> &v) {
-
1695  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
-
1696  }
-
1697 
-
1698  template<typename T, qualifier Q>
-
1699  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<4, T, Q> &v) {
-
1700  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
-
1701  }
-
1702 
-
1703  // yzyz
-
1704  template<typename T, qualifier Q>
-
1705  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<3, T, Q> &v) {
-
1706  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
-
1707  }
-
1708 
-
1709  template<typename T, qualifier Q>
-
1710  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<4, T, Q> &v) {
-
1711  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
-
1712  }
-
1713 
-
1714  // yzyw
-
1715  template<typename T, qualifier Q>
-
1716  GLM_INLINE glm::vec<4, T, Q> yzyw(const glm::vec<4, T, Q> &v) {
-
1717  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.w);
-
1718  }
-
1719 
-
1720  // yzzx
-
1721  template<typename T, qualifier Q>
-
1722  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<3, T, Q> &v) {
-
1723  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
-
1724  }
-
1725 
-
1726  template<typename T, qualifier Q>
-
1727  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<4, T, Q> &v) {
-
1728  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
-
1729  }
-
1730 
-
1731  // yzzy
-
1732  template<typename T, qualifier Q>
-
1733  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<3, T, Q> &v) {
-
1734  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
-
1735  }
-
1736 
-
1737  template<typename T, qualifier Q>
-
1738  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<4, T, Q> &v) {
-
1739  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
-
1740  }
-
1741 
-
1742  // yzzz
-
1743  template<typename T, qualifier Q>
-
1744  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<3, T, Q> &v) {
-
1745  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
-
1746  }
-
1747 
-
1748  template<typename T, qualifier Q>
-
1749  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<4, T, Q> &v) {
-
1750  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
-
1751  }
-
1752 
-
1753  // yzzw
-
1754  template<typename T, qualifier Q>
-
1755  GLM_INLINE glm::vec<4, T, Q> yzzw(const glm::vec<4, T, Q> &v) {
-
1756  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.w);
-
1757  }
-
1758 
-
1759  // yzwx
-
1760  template<typename T, qualifier Q>
-
1761  GLM_INLINE glm::vec<4, T, Q> yzwx(const glm::vec<4, T, Q> &v) {
-
1762  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.x);
-
1763  }
-
1764 
-
1765  // yzwy
-
1766  template<typename T, qualifier Q>
-
1767  GLM_INLINE glm::vec<4, T, Q> yzwy(const glm::vec<4, T, Q> &v) {
-
1768  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.y);
-
1769  }
-
1770 
-
1771  // yzwz
-
1772  template<typename T, qualifier Q>
-
1773  GLM_INLINE glm::vec<4, T, Q> yzwz(const glm::vec<4, T, Q> &v) {
-
1774  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.z);
-
1775  }
-
1776 
-
1777  // yzww
-
1778  template<typename T, qualifier Q>
-
1779  GLM_INLINE glm::vec<4, T, Q> yzww(const glm::vec<4, T, Q> &v) {
-
1780  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.w);
-
1781  }
-
1782 
-
1783  // ywxx
-
1784  template<typename T, qualifier Q>
-
1785  GLM_INLINE glm::vec<4, T, Q> ywxx(const glm::vec<4, T, Q> &v) {
-
1786  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.x);
-
1787  }
-
1788 
-
1789  // ywxy
-
1790  template<typename T, qualifier Q>
-
1791  GLM_INLINE glm::vec<4, T, Q> ywxy(const glm::vec<4, T, Q> &v) {
-
1792  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.y);
-
1793  }
-
1794 
-
1795  // ywxz
-
1796  template<typename T, qualifier Q>
-
1797  GLM_INLINE glm::vec<4, T, Q> ywxz(const glm::vec<4, T, Q> &v) {
-
1798  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.z);
-
1799  }
-
1800 
-
1801  // ywxw
-
1802  template<typename T, qualifier Q>
-
1803  GLM_INLINE glm::vec<4, T, Q> ywxw(const glm::vec<4, T, Q> &v) {
-
1804  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.w);
-
1805  }
-
1806 
-
1807  // ywyx
-
1808  template<typename T, qualifier Q>
-
1809  GLM_INLINE glm::vec<4, T, Q> ywyx(const glm::vec<4, T, Q> &v) {
-
1810  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.x);
-
1811  }
-
1812 
-
1813  // ywyy
-
1814  template<typename T, qualifier Q>
-
1815  GLM_INLINE glm::vec<4, T, Q> ywyy(const glm::vec<4, T, Q> &v) {
-
1816  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.y);
-
1817  }
-
1818 
-
1819  // ywyz
-
1820  template<typename T, qualifier Q>
-
1821  GLM_INLINE glm::vec<4, T, Q> ywyz(const glm::vec<4, T, Q> &v) {
-
1822  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.z);
-
1823  }
-
1824 
-
1825  // ywyw
-
1826  template<typename T, qualifier Q>
-
1827  GLM_INLINE glm::vec<4, T, Q> ywyw(const glm::vec<4, T, Q> &v) {
-
1828  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.w);
-
1829  }
-
1830 
-
1831  // ywzx
-
1832  template<typename T, qualifier Q>
-
1833  GLM_INLINE glm::vec<4, T, Q> ywzx(const glm::vec<4, T, Q> &v) {
-
1834  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.x);
-
1835  }
-
1836 
-
1837  // ywzy
-
1838  template<typename T, qualifier Q>
-
1839  GLM_INLINE glm::vec<4, T, Q> ywzy(const glm::vec<4, T, Q> &v) {
-
1840  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.y);
-
1841  }
-
1842 
-
1843  // ywzz
-
1844  template<typename T, qualifier Q>
-
1845  GLM_INLINE glm::vec<4, T, Q> ywzz(const glm::vec<4, T, Q> &v) {
-
1846  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.z);
-
1847  }
-
1848 
-
1849  // ywzw
-
1850  template<typename T, qualifier Q>
-
1851  GLM_INLINE glm::vec<4, T, Q> ywzw(const glm::vec<4, T, Q> &v) {
-
1852  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.w);
-
1853  }
-
1854 
-
1855  // ywwx
-
1856  template<typename T, qualifier Q>
-
1857  GLM_INLINE glm::vec<4, T, Q> ywwx(const glm::vec<4, T, Q> &v) {
-
1858  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.x);
-
1859  }
-
1860 
-
1861  // ywwy
-
1862  template<typename T, qualifier Q>
-
1863  GLM_INLINE glm::vec<4, T, Q> ywwy(const glm::vec<4, T, Q> &v) {
-
1864  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.y);
-
1865  }
-
1866 
-
1867  // ywwz
-
1868  template<typename T, qualifier Q>
-
1869  GLM_INLINE glm::vec<4, T, Q> ywwz(const glm::vec<4, T, Q> &v) {
-
1870  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.z);
-
1871  }
-
1872 
-
1873  // ywww
-
1874  template<typename T, qualifier Q>
-
1875  GLM_INLINE glm::vec<4, T, Q> ywww(const glm::vec<4, T, Q> &v) {
-
1876  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.w);
-
1877  }
-
1878 
-
1879  // zxxx
-
1880  template<typename T, qualifier Q>
-
1881  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<3, T, Q> &v) {
-
1882  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
-
1883  }
-
1884 
-
1885  template<typename T, qualifier Q>
-
1886  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<4, T, Q> &v) {
-
1887  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
-
1888  }
-
1889 
-
1890  // zxxy
-
1891  template<typename T, qualifier Q>
-
1892  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<3, T, Q> &v) {
-
1893  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
-
1894  }
-
1895 
-
1896  template<typename T, qualifier Q>
-
1897  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<4, T, Q> &v) {
-
1898  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
-
1899  }
-
1900 
-
1901  // zxxz
-
1902  template<typename T, qualifier Q>
-
1903  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<3, T, Q> &v) {
-
1904  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
-
1905  }
-
1906 
-
1907  template<typename T, qualifier Q>
-
1908  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<4, T, Q> &v) {
-
1909  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
-
1910  }
-
1911 
-
1912  // zxxw
-
1913  template<typename T, qualifier Q>
-
1914  GLM_INLINE glm::vec<4, T, Q> zxxw(const glm::vec<4, T, Q> &v) {
-
1915  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.w);
-
1916  }
-
1917 
-
1918  // zxyx
-
1919  template<typename T, qualifier Q>
-
1920  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<3, T, Q> &v) {
-
1921  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
-
1922  }
-
1923 
-
1924  template<typename T, qualifier Q>
-
1925  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<4, T, Q> &v) {
-
1926  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
-
1927  }
-
1928 
-
1929  // zxyy
-
1930  template<typename T, qualifier Q>
-
1931  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<3, T, Q> &v) {
-
1932  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
-
1933  }
-
1934 
-
1935  template<typename T, qualifier Q>
-
1936  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<4, T, Q> &v) {
-
1937  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
-
1938  }
-
1939 
-
1940  // zxyz
-
1941  template<typename T, qualifier Q>
-
1942  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<3, T, Q> &v) {
-
1943  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
-
1944  }
-
1945 
-
1946  template<typename T, qualifier Q>
-
1947  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<4, T, Q> &v) {
-
1948  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
-
1949  }
-
1950 
-
1951  // zxyw
-
1952  template<typename T, qualifier Q>
-
1953  GLM_INLINE glm::vec<4, T, Q> zxyw(const glm::vec<4, T, Q> &v) {
-
1954  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.w);
-
1955  }
-
1956 
-
1957  // zxzx
-
1958  template<typename T, qualifier Q>
-
1959  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<3, T, Q> &v) {
-
1960  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
-
1961  }
-
1962 
-
1963  template<typename T, qualifier Q>
-
1964  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<4, T, Q> &v) {
-
1965  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
-
1966  }
-
1967 
-
1968  // zxzy
-
1969  template<typename T, qualifier Q>
-
1970  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<3, T, Q> &v) {
-
1971  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
-
1972  }
-
1973 
-
1974  template<typename T, qualifier Q>
-
1975  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<4, T, Q> &v) {
-
1976  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
-
1977  }
-
1978 
-
1979  // zxzz
-
1980  template<typename T, qualifier Q>
-
1981  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<3, T, Q> &v) {
-
1982  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
-
1983  }
-
1984 
-
1985  template<typename T, qualifier Q>
-
1986  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<4, T, Q> &v) {
-
1987  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
-
1988  }
-
1989 
-
1990  // zxzw
-
1991  template<typename T, qualifier Q>
-
1992  GLM_INLINE glm::vec<4, T, Q> zxzw(const glm::vec<4, T, Q> &v) {
-
1993  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.w);
-
1994  }
-
1995 
-
1996  // zxwx
-
1997  template<typename T, qualifier Q>
-
1998  GLM_INLINE glm::vec<4, T, Q> zxwx(const glm::vec<4, T, Q> &v) {
-
1999  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.x);
-
2000  }
-
2001 
-
2002  // zxwy
-
2003  template<typename T, qualifier Q>
-
2004  GLM_INLINE glm::vec<4, T, Q> zxwy(const glm::vec<4, T, Q> &v) {
-
2005  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.y);
-
2006  }
-
2007 
-
2008  // zxwz
-
2009  template<typename T, qualifier Q>
-
2010  GLM_INLINE glm::vec<4, T, Q> zxwz(const glm::vec<4, T, Q> &v) {
-
2011  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.z);
-
2012  }
-
2013 
-
2014  // zxww
-
2015  template<typename T, qualifier Q>
-
2016  GLM_INLINE glm::vec<4, T, Q> zxww(const glm::vec<4, T, Q> &v) {
-
2017  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.w);
-
2018  }
-
2019 
-
2020  // zyxx
-
2021  template<typename T, qualifier Q>
-
2022  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<3, T, Q> &v) {
-
2023  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
-
2024  }
-
2025 
-
2026  template<typename T, qualifier Q>
-
2027  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<4, T, Q> &v) {
-
2028  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
-
2029  }
-
2030 
-
2031  // zyxy
-
2032  template<typename T, qualifier Q>
-
2033  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<3, T, Q> &v) {
-
2034  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
-
2035  }
-
2036 
-
2037  template<typename T, qualifier Q>
-
2038  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<4, T, Q> &v) {
-
2039  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
-
2040  }
-
2041 
-
2042  // zyxz
-
2043  template<typename T, qualifier Q>
-
2044  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<3, T, Q> &v) {
-
2045  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
-
2046  }
-
2047 
-
2048  template<typename T, qualifier Q>
-
2049  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<4, T, Q> &v) {
-
2050  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
-
2051  }
-
2052 
-
2053  // zyxw
-
2054  template<typename T, qualifier Q>
-
2055  GLM_INLINE glm::vec<4, T, Q> zyxw(const glm::vec<4, T, Q> &v) {
-
2056  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.w);
-
2057  }
-
2058 
-
2059  // zyyx
-
2060  template<typename T, qualifier Q>
-
2061  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<3, T, Q> &v) {
-
2062  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
-
2063  }
-
2064 
-
2065  template<typename T, qualifier Q>
-
2066  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<4, T, Q> &v) {
-
2067  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
-
2068  }
-
2069 
-
2070  // zyyy
-
2071  template<typename T, qualifier Q>
-
2072  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<3, T, Q> &v) {
-
2073  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
-
2074  }
-
2075 
-
2076  template<typename T, qualifier Q>
-
2077  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<4, T, Q> &v) {
-
2078  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
-
2079  }
-
2080 
-
2081  // zyyz
-
2082  template<typename T, qualifier Q>
-
2083  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<3, T, Q> &v) {
-
2084  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
-
2085  }
-
2086 
-
2087  template<typename T, qualifier Q>
-
2088  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<4, T, Q> &v) {
-
2089  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
-
2090  }
-
2091 
-
2092  // zyyw
-
2093  template<typename T, qualifier Q>
-
2094  GLM_INLINE glm::vec<4, T, Q> zyyw(const glm::vec<4, T, Q> &v) {
-
2095  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.w);
-
2096  }
-
2097 
-
2098  // zyzx
-
2099  template<typename T, qualifier Q>
-
2100  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<3, T, Q> &v) {
-
2101  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
-
2102  }
-
2103 
-
2104  template<typename T, qualifier Q>
-
2105  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<4, T, Q> &v) {
-
2106  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
-
2107  }
-
2108 
-
2109  // zyzy
-
2110  template<typename T, qualifier Q>
-
2111  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<3, T, Q> &v) {
-
2112  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
-
2113  }
-
2114 
-
2115  template<typename T, qualifier Q>
-
2116  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<4, T, Q> &v) {
-
2117  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
-
2118  }
-
2119 
-
2120  // zyzz
-
2121  template<typename T, qualifier Q>
-
2122  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<3, T, Q> &v) {
-
2123  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
-
2124  }
-
2125 
-
2126  template<typename T, qualifier Q>
-
2127  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<4, T, Q> &v) {
-
2128  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
-
2129  }
-
2130 
-
2131  // zyzw
-
2132  template<typename T, qualifier Q>
-
2133  GLM_INLINE glm::vec<4, T, Q> zyzw(const glm::vec<4, T, Q> &v) {
-
2134  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.w);
-
2135  }
-
2136 
-
2137  // zywx
-
2138  template<typename T, qualifier Q>
-
2139  GLM_INLINE glm::vec<4, T, Q> zywx(const glm::vec<4, T, Q> &v) {
-
2140  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.x);
-
2141  }
-
2142 
-
2143  // zywy
-
2144  template<typename T, qualifier Q>
-
2145  GLM_INLINE glm::vec<4, T, Q> zywy(const glm::vec<4, T, Q> &v) {
-
2146  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.y);
-
2147  }
-
2148 
-
2149  // zywz
-
2150  template<typename T, qualifier Q>
-
2151  GLM_INLINE glm::vec<4, T, Q> zywz(const glm::vec<4, T, Q> &v) {
-
2152  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.z);
-
2153  }
-
2154 
-
2155  // zyww
-
2156  template<typename T, qualifier Q>
-
2157  GLM_INLINE glm::vec<4, T, Q> zyww(const glm::vec<4, T, Q> &v) {
-
2158  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.w);
-
2159  }
-
2160 
-
2161  // zzxx
-
2162  template<typename T, qualifier Q>
-
2163  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<3, T, Q> &v) {
-
2164  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
-
2165  }
-
2166 
-
2167  template<typename T, qualifier Q>
-
2168  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<4, T, Q> &v) {
-
2169  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
-
2170  }
-
2171 
-
2172  // zzxy
-
2173  template<typename T, qualifier Q>
-
2174  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<3, T, Q> &v) {
-
2175  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
-
2176  }
-
2177 
-
2178  template<typename T, qualifier Q>
-
2179  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<4, T, Q> &v) {
-
2180  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
-
2181  }
-
2182 
-
2183  // zzxz
-
2184  template<typename T, qualifier Q>
-
2185  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<3, T, Q> &v) {
-
2186  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
-
2187  }
-
2188 
-
2189  template<typename T, qualifier Q>
-
2190  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<4, T, Q> &v) {
-
2191  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
-
2192  }
-
2193 
-
2194  // zzxw
-
2195  template<typename T, qualifier Q>
-
2196  GLM_INLINE glm::vec<4, T, Q> zzxw(const glm::vec<4, T, Q> &v) {
-
2197  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.w);
-
2198  }
-
2199 
-
2200  // zzyx
-
2201  template<typename T, qualifier Q>
-
2202  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<3, T, Q> &v) {
-
2203  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
-
2204  }
-
2205 
-
2206  template<typename T, qualifier Q>
-
2207  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<4, T, Q> &v) {
-
2208  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
-
2209  }
-
2210 
-
2211  // zzyy
-
2212  template<typename T, qualifier Q>
-
2213  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<3, T, Q> &v) {
-
2214  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
-
2215  }
-
2216 
-
2217  template<typename T, qualifier Q>
-
2218  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<4, T, Q> &v) {
-
2219  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
-
2220  }
-
2221 
-
2222  // zzyz
-
2223  template<typename T, qualifier Q>
-
2224  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<3, T, Q> &v) {
-
2225  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
-
2226  }
-
2227 
-
2228  template<typename T, qualifier Q>
-
2229  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<4, T, Q> &v) {
-
2230  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
-
2231  }
-
2232 
-
2233  // zzyw
-
2234  template<typename T, qualifier Q>
-
2235  GLM_INLINE glm::vec<4, T, Q> zzyw(const glm::vec<4, T, Q> &v) {
-
2236  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.w);
-
2237  }
-
2238 
-
2239  // zzzx
-
2240  template<typename T, qualifier Q>
-
2241  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<3, T, Q> &v) {
-
2242  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
-
2243  }
-
2244 
-
2245  template<typename T, qualifier Q>
-
2246  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<4, T, Q> &v) {
-
2247  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
-
2248  }
-
2249 
-
2250  // zzzy
-
2251  template<typename T, qualifier Q>
-
2252  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<3, T, Q> &v) {
-
2253  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
-
2254  }
-
2255 
-
2256  template<typename T, qualifier Q>
-
2257  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<4, T, Q> &v) {
-
2258  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
-
2259  }
-
2260 
-
2261  // zzzz
-
2262  template<typename T, qualifier Q>
-
2263  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<3, T, Q> &v) {
-
2264  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
-
2265  }
-
2266 
-
2267  template<typename T, qualifier Q>
-
2268  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<4, T, Q> &v) {
-
2269  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
-
2270  }
-
2271 
-
2272  // zzzw
-
2273  template<typename T, qualifier Q>
-
2274  GLM_INLINE glm::vec<4, T, Q> zzzw(const glm::vec<4, T, Q> &v) {
-
2275  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.w);
-
2276  }
-
2277 
-
2278  // zzwx
-
2279  template<typename T, qualifier Q>
-
2280  GLM_INLINE glm::vec<4, T, Q> zzwx(const glm::vec<4, T, Q> &v) {
-
2281  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.x);
-
2282  }
-
2283 
-
2284  // zzwy
-
2285  template<typename T, qualifier Q>
-
2286  GLM_INLINE glm::vec<4, T, Q> zzwy(const glm::vec<4, T, Q> &v) {
-
2287  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.y);
-
2288  }
-
2289 
-
2290  // zzwz
-
2291  template<typename T, qualifier Q>
-
2292  GLM_INLINE glm::vec<4, T, Q> zzwz(const glm::vec<4, T, Q> &v) {
-
2293  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.z);
-
2294  }
-
2295 
-
2296  // zzww
-
2297  template<typename T, qualifier Q>
-
2298  GLM_INLINE glm::vec<4, T, Q> zzww(const glm::vec<4, T, Q> &v) {
-
2299  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.w);
-
2300  }
-
2301 
-
2302  // zwxx
-
2303  template<typename T, qualifier Q>
-
2304  GLM_INLINE glm::vec<4, T, Q> zwxx(const glm::vec<4, T, Q> &v) {
-
2305  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.x);
-
2306  }
-
2307 
-
2308  // zwxy
-
2309  template<typename T, qualifier Q>
-
2310  GLM_INLINE glm::vec<4, T, Q> zwxy(const glm::vec<4, T, Q> &v) {
-
2311  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.y);
-
2312  }
-
2313 
-
2314  // zwxz
-
2315  template<typename T, qualifier Q>
-
2316  GLM_INLINE glm::vec<4, T, Q> zwxz(const glm::vec<4, T, Q> &v) {
-
2317  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.z);
-
2318  }
-
2319 
-
2320  // zwxw
-
2321  template<typename T, qualifier Q>
-
2322  GLM_INLINE glm::vec<4, T, Q> zwxw(const glm::vec<4, T, Q> &v) {
-
2323  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.w);
-
2324  }
-
2325 
-
2326  // zwyx
-
2327  template<typename T, qualifier Q>
-
2328  GLM_INLINE glm::vec<4, T, Q> zwyx(const glm::vec<4, T, Q> &v) {
-
2329  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.x);
-
2330  }
-
2331 
-
2332  // zwyy
-
2333  template<typename T, qualifier Q>
-
2334  GLM_INLINE glm::vec<4, T, Q> zwyy(const glm::vec<4, T, Q> &v) {
-
2335  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.y);
-
2336  }
-
2337 
-
2338  // zwyz
-
2339  template<typename T, qualifier Q>
-
2340  GLM_INLINE glm::vec<4, T, Q> zwyz(const glm::vec<4, T, Q> &v) {
-
2341  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.z);
-
2342  }
-
2343 
-
2344  // zwyw
-
2345  template<typename T, qualifier Q>
-
2346  GLM_INLINE glm::vec<4, T, Q> zwyw(const glm::vec<4, T, Q> &v) {
-
2347  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.w);
-
2348  }
-
2349 
-
2350  // zwzx
-
2351  template<typename T, qualifier Q>
-
2352  GLM_INLINE glm::vec<4, T, Q> zwzx(const glm::vec<4, T, Q> &v) {
-
2353  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.x);
-
2354  }
-
2355 
-
2356  // zwzy
-
2357  template<typename T, qualifier Q>
-
2358  GLM_INLINE glm::vec<4, T, Q> zwzy(const glm::vec<4, T, Q> &v) {
-
2359  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.y);
-
2360  }
-
2361 
-
2362  // zwzz
-
2363  template<typename T, qualifier Q>
-
2364  GLM_INLINE glm::vec<4, T, Q> zwzz(const glm::vec<4, T, Q> &v) {
-
2365  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.z);
-
2366  }
-
2367 
-
2368  // zwzw
-
2369  template<typename T, qualifier Q>
-
2370  GLM_INLINE glm::vec<4, T, Q> zwzw(const glm::vec<4, T, Q> &v) {
-
2371  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.w);
-
2372  }
-
2373 
-
2374  // zwwx
-
2375  template<typename T, qualifier Q>
-
2376  GLM_INLINE glm::vec<4, T, Q> zwwx(const glm::vec<4, T, Q> &v) {
-
2377  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.x);
-
2378  }
-
2379 
-
2380  // zwwy
-
2381  template<typename T, qualifier Q>
-
2382  GLM_INLINE glm::vec<4, T, Q> zwwy(const glm::vec<4, T, Q> &v) {
-
2383  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.y);
-
2384  }
-
2385 
-
2386  // zwwz
-
2387  template<typename T, qualifier Q>
-
2388  GLM_INLINE glm::vec<4, T, Q> zwwz(const glm::vec<4, T, Q> &v) {
-
2389  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.z);
-
2390  }
-
2391 
-
2392  // zwww
-
2393  template<typename T, qualifier Q>
-
2394  GLM_INLINE glm::vec<4, T, Q> zwww(const glm::vec<4, T, Q> &v) {
-
2395  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.w);
-
2396  }
-
2397 
-
2398  // wxxx
-
2399  template<typename T, qualifier Q>
-
2400  GLM_INLINE glm::vec<4, T, Q> wxxx(const glm::vec<4, T, Q> &v) {
-
2401  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.x);
-
2402  }
-
2403 
-
2404  // wxxy
-
2405  template<typename T, qualifier Q>
-
2406  GLM_INLINE glm::vec<4, T, Q> wxxy(const glm::vec<4, T, Q> &v) {
-
2407  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.y);
-
2408  }
-
2409 
-
2410  // wxxz
-
2411  template<typename T, qualifier Q>
-
2412  GLM_INLINE glm::vec<4, T, Q> wxxz(const glm::vec<4, T, Q> &v) {
-
2413  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.z);
-
2414  }
-
2415 
-
2416  // wxxw
-
2417  template<typename T, qualifier Q>
-
2418  GLM_INLINE glm::vec<4, T, Q> wxxw(const glm::vec<4, T, Q> &v) {
-
2419  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.w);
-
2420  }
-
2421 
-
2422  // wxyx
-
2423  template<typename T, qualifier Q>
-
2424  GLM_INLINE glm::vec<4, T, Q> wxyx(const glm::vec<4, T, Q> &v) {
-
2425  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.x);
-
2426  }
-
2427 
-
2428  // wxyy
-
2429  template<typename T, qualifier Q>
-
2430  GLM_INLINE glm::vec<4, T, Q> wxyy(const glm::vec<4, T, Q> &v) {
-
2431  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.y);
-
2432  }
-
2433 
-
2434  // wxyz
-
2435  template<typename T, qualifier Q>
-
2436  GLM_INLINE glm::vec<4, T, Q> wxyz(const glm::vec<4, T, Q> &v) {
-
2437  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.z);
-
2438  }
-
2439 
-
2440  // wxyw
-
2441  template<typename T, qualifier Q>
-
2442  GLM_INLINE glm::vec<4, T, Q> wxyw(const glm::vec<4, T, Q> &v) {
-
2443  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.w);
-
2444  }
-
2445 
-
2446  // wxzx
-
2447  template<typename T, qualifier Q>
-
2448  GLM_INLINE glm::vec<4, T, Q> wxzx(const glm::vec<4, T, Q> &v) {
-
2449  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.x);
-
2450  }
-
2451 
-
2452  // wxzy
-
2453  template<typename T, qualifier Q>
-
2454  GLM_INLINE glm::vec<4, T, Q> wxzy(const glm::vec<4, T, Q> &v) {
-
2455  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.y);
-
2456  }
-
2457 
-
2458  // wxzz
-
2459  template<typename T, qualifier Q>
-
2460  GLM_INLINE glm::vec<4, T, Q> wxzz(const glm::vec<4, T, Q> &v) {
-
2461  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.z);
-
2462  }
-
2463 
-
2464  // wxzw
-
2465  template<typename T, qualifier Q>
-
2466  GLM_INLINE glm::vec<4, T, Q> wxzw(const glm::vec<4, T, Q> &v) {
-
2467  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.w);
-
2468  }
-
2469 
-
2470  // wxwx
-
2471  template<typename T, qualifier Q>
-
2472  GLM_INLINE glm::vec<4, T, Q> wxwx(const glm::vec<4, T, Q> &v) {
-
2473  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.x);
-
2474  }
-
2475 
-
2476  // wxwy
-
2477  template<typename T, qualifier Q>
-
2478  GLM_INLINE glm::vec<4, T, Q> wxwy(const glm::vec<4, T, Q> &v) {
-
2479  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.y);
-
2480  }
-
2481 
-
2482  // wxwz
-
2483  template<typename T, qualifier Q>
-
2484  GLM_INLINE glm::vec<4, T, Q> wxwz(const glm::vec<4, T, Q> &v) {
-
2485  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.z);
-
2486  }
-
2487 
-
2488  // wxww
-
2489  template<typename T, qualifier Q>
-
2490  GLM_INLINE glm::vec<4, T, Q> wxww(const glm::vec<4, T, Q> &v) {
-
2491  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.w);
-
2492  }
-
2493 
-
2494  // wyxx
-
2495  template<typename T, qualifier Q>
-
2496  GLM_INLINE glm::vec<4, T, Q> wyxx(const glm::vec<4, T, Q> &v) {
-
2497  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.x);
-
2498  }
-
2499 
-
2500  // wyxy
-
2501  template<typename T, qualifier Q>
-
2502  GLM_INLINE glm::vec<4, T, Q> wyxy(const glm::vec<4, T, Q> &v) {
-
2503  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.y);
-
2504  }
-
2505 
-
2506  // wyxz
-
2507  template<typename T, qualifier Q>
-
2508  GLM_INLINE glm::vec<4, T, Q> wyxz(const glm::vec<4, T, Q> &v) {
-
2509  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.z);
-
2510  }
-
2511 
-
2512  // wyxw
-
2513  template<typename T, qualifier Q>
-
2514  GLM_INLINE glm::vec<4, T, Q> wyxw(const glm::vec<4, T, Q> &v) {
-
2515  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.w);
-
2516  }
-
2517 
-
2518  // wyyx
-
2519  template<typename T, qualifier Q>
-
2520  GLM_INLINE glm::vec<4, T, Q> wyyx(const glm::vec<4, T, Q> &v) {
-
2521  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.x);
-
2522  }
-
2523 
-
2524  // wyyy
-
2525  template<typename T, qualifier Q>
-
2526  GLM_INLINE glm::vec<4, T, Q> wyyy(const glm::vec<4, T, Q> &v) {
-
2527  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.y);
-
2528  }
-
2529 
-
2530  // wyyz
-
2531  template<typename T, qualifier Q>
-
2532  GLM_INLINE glm::vec<4, T, Q> wyyz(const glm::vec<4, T, Q> &v) {
-
2533  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.z);
-
2534  }
-
2535 
-
2536  // wyyw
-
2537  template<typename T, qualifier Q>
-
2538  GLM_INLINE glm::vec<4, T, Q> wyyw(const glm::vec<4, T, Q> &v) {
-
2539  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.w);
-
2540  }
-
2541 
-
2542  // wyzx
-
2543  template<typename T, qualifier Q>
-
2544  GLM_INLINE glm::vec<4, T, Q> wyzx(const glm::vec<4, T, Q> &v) {
-
2545  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.x);
-
2546  }
-
2547 
-
2548  // wyzy
-
2549  template<typename T, qualifier Q>
-
2550  GLM_INLINE glm::vec<4, T, Q> wyzy(const glm::vec<4, T, Q> &v) {
-
2551  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.y);
-
2552  }
-
2553 
-
2554  // wyzz
-
2555  template<typename T, qualifier Q>
-
2556  GLM_INLINE glm::vec<4, T, Q> wyzz(const glm::vec<4, T, Q> &v) {
-
2557  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.z);
-
2558  }
-
2559 
-
2560  // wyzw
-
2561  template<typename T, qualifier Q>
-
2562  GLM_INLINE glm::vec<4, T, Q> wyzw(const glm::vec<4, T, Q> &v) {
-
2563  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.w);
-
2564  }
-
2565 
-
2566  // wywx
-
2567  template<typename T, qualifier Q>
-
2568  GLM_INLINE glm::vec<4, T, Q> wywx(const glm::vec<4, T, Q> &v) {
-
2569  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.x);
-
2570  }
-
2571 
-
2572  // wywy
-
2573  template<typename T, qualifier Q>
-
2574  GLM_INLINE glm::vec<4, T, Q> wywy(const glm::vec<4, T, Q> &v) {
-
2575  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.y);
-
2576  }
-
2577 
-
2578  // wywz
-
2579  template<typename T, qualifier Q>
-
2580  GLM_INLINE glm::vec<4, T, Q> wywz(const glm::vec<4, T, Q> &v) {
-
2581  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.z);
-
2582  }
-
2583 
-
2584  // wyww
-
2585  template<typename T, qualifier Q>
-
2586  GLM_INLINE glm::vec<4, T, Q> wyww(const glm::vec<4, T, Q> &v) {
-
2587  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.w);
-
2588  }
-
2589 
-
2590  // wzxx
-
2591  template<typename T, qualifier Q>
-
2592  GLM_INLINE glm::vec<4, T, Q> wzxx(const glm::vec<4, T, Q> &v) {
-
2593  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.x);
-
2594  }
-
2595 
-
2596  // wzxy
-
2597  template<typename T, qualifier Q>
-
2598  GLM_INLINE glm::vec<4, T, Q> wzxy(const glm::vec<4, T, Q> &v) {
-
2599  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.y);
-
2600  }
-
2601 
-
2602  // wzxz
-
2603  template<typename T, qualifier Q>
-
2604  GLM_INLINE glm::vec<4, T, Q> wzxz(const glm::vec<4, T, Q> &v) {
-
2605  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.z);
-
2606  }
-
2607 
-
2608  // wzxw
-
2609  template<typename T, qualifier Q>
-
2610  GLM_INLINE glm::vec<4, T, Q> wzxw(const glm::vec<4, T, Q> &v) {
-
2611  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.w);
-
2612  }
-
2613 
-
2614  // wzyx
-
2615  template<typename T, qualifier Q>
-
2616  GLM_INLINE glm::vec<4, T, Q> wzyx(const glm::vec<4, T, Q> &v) {
-
2617  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.x);
-
2618  }
-
2619 
-
2620  // wzyy
-
2621  template<typename T, qualifier Q>
-
2622  GLM_INLINE glm::vec<4, T, Q> wzyy(const glm::vec<4, T, Q> &v) {
-
2623  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.y);
-
2624  }
-
2625 
-
2626  // wzyz
-
2627  template<typename T, qualifier Q>
-
2628  GLM_INLINE glm::vec<4, T, Q> wzyz(const glm::vec<4, T, Q> &v) {
-
2629  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.z);
-
2630  }
-
2631 
-
2632  // wzyw
-
2633  template<typename T, qualifier Q>
-
2634  GLM_INLINE glm::vec<4, T, Q> wzyw(const glm::vec<4, T, Q> &v) {
-
2635  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.w);
-
2636  }
-
2637 
-
2638  // wzzx
-
2639  template<typename T, qualifier Q>
-
2640  GLM_INLINE glm::vec<4, T, Q> wzzx(const glm::vec<4, T, Q> &v) {
-
2641  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.x);
-
2642  }
-
2643 
-
2644  // wzzy
-
2645  template<typename T, qualifier Q>
-
2646  GLM_INLINE glm::vec<4, T, Q> wzzy(const glm::vec<4, T, Q> &v) {
-
2647  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.y);
-
2648  }
-
2649 
-
2650  // wzzz
-
2651  template<typename T, qualifier Q>
-
2652  GLM_INLINE glm::vec<4, T, Q> wzzz(const glm::vec<4, T, Q> &v) {
-
2653  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.z);
-
2654  }
-
2655 
-
2656  // wzzw
-
2657  template<typename T, qualifier Q>
-
2658  GLM_INLINE glm::vec<4, T, Q> wzzw(const glm::vec<4, T, Q> &v) {
-
2659  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.w);
-
2660  }
-
2661 
-
2662  // wzwx
-
2663  template<typename T, qualifier Q>
-
2664  GLM_INLINE glm::vec<4, T, Q> wzwx(const glm::vec<4, T, Q> &v) {
-
2665  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.x);
-
2666  }
-
2667 
-
2668  // wzwy
-
2669  template<typename T, qualifier Q>
-
2670  GLM_INLINE glm::vec<4, T, Q> wzwy(const glm::vec<4, T, Q> &v) {
-
2671  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.y);
-
2672  }
-
2673 
-
2674  // wzwz
-
2675  template<typename T, qualifier Q>
-
2676  GLM_INLINE glm::vec<4, T, Q> wzwz(const glm::vec<4, T, Q> &v) {
-
2677  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.z);
-
2678  }
-
2679 
-
2680  // wzww
-
2681  template<typename T, qualifier Q>
-
2682  GLM_INLINE glm::vec<4, T, Q> wzww(const glm::vec<4, T, Q> &v) {
-
2683  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.w);
-
2684  }
-
2685 
-
2686  // wwxx
-
2687  template<typename T, qualifier Q>
-
2688  GLM_INLINE glm::vec<4, T, Q> wwxx(const glm::vec<4, T, Q> &v) {
-
2689  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.x);
-
2690  }
-
2691 
-
2692  // wwxy
-
2693  template<typename T, qualifier Q>
-
2694  GLM_INLINE glm::vec<4, T, Q> wwxy(const glm::vec<4, T, Q> &v) {
-
2695  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.y);
-
2696  }
-
2697 
-
2698  // wwxz
-
2699  template<typename T, qualifier Q>
-
2700  GLM_INLINE glm::vec<4, T, Q> wwxz(const glm::vec<4, T, Q> &v) {
-
2701  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.z);
-
2702  }
-
2703 
-
2704  // wwxw
-
2705  template<typename T, qualifier Q>
-
2706  GLM_INLINE glm::vec<4, T, Q> wwxw(const glm::vec<4, T, Q> &v) {
-
2707  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.w);
-
2708  }
-
2709 
-
2710  // wwyx
-
2711  template<typename T, qualifier Q>
-
2712  GLM_INLINE glm::vec<4, T, Q> wwyx(const glm::vec<4, T, Q> &v) {
-
2713  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.x);
-
2714  }
-
2715 
-
2716  // wwyy
-
2717  template<typename T, qualifier Q>
-
2718  GLM_INLINE glm::vec<4, T, Q> wwyy(const glm::vec<4, T, Q> &v) {
-
2719  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.y);
-
2720  }
-
2721 
-
2722  // wwyz
-
2723  template<typename T, qualifier Q>
-
2724  GLM_INLINE glm::vec<4, T, Q> wwyz(const glm::vec<4, T, Q> &v) {
-
2725  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.z);
-
2726  }
-
2727 
-
2728  // wwyw
-
2729  template<typename T, qualifier Q>
-
2730  GLM_INLINE glm::vec<4, T, Q> wwyw(const glm::vec<4, T, Q> &v) {
-
2731  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.w);
-
2732  }
-
2733 
-
2734  // wwzx
-
2735  template<typename T, qualifier Q>
-
2736  GLM_INLINE glm::vec<4, T, Q> wwzx(const glm::vec<4, T, Q> &v) {
-
2737  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.x);
-
2738  }
-
2739 
-
2740  // wwzy
-
2741  template<typename T, qualifier Q>
-
2742  GLM_INLINE glm::vec<4, T, Q> wwzy(const glm::vec<4, T, Q> &v) {
-
2743  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.y);
-
2744  }
-
2745 
-
2746  // wwzz
-
2747  template<typename T, qualifier Q>
-
2748  GLM_INLINE glm::vec<4, T, Q> wwzz(const glm::vec<4, T, Q> &v) {
-
2749  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.z);
-
2750  }
-
2751 
-
2752  // wwzw
-
2753  template<typename T, qualifier Q>
-
2754  GLM_INLINE glm::vec<4, T, Q> wwzw(const glm::vec<4, T, Q> &v) {
-
2755  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.w);
-
2756  }
-
2757 
-
2758  // wwwx
-
2759  template<typename T, qualifier Q>
-
2760  GLM_INLINE glm::vec<4, T, Q> wwwx(const glm::vec<4, T, Q> &v) {
-
2761  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.x);
-
2762  }
-
2763 
-
2764  // wwwy
-
2765  template<typename T, qualifier Q>
-
2766  GLM_INLINE glm::vec<4, T, Q> wwwy(const glm::vec<4, T, Q> &v) {
-
2767  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.y);
-
2768  }
-
2769 
-
2770  // wwwz
-
2771  template<typename T, qualifier Q>
-
2772  GLM_INLINE glm::vec<4, T, Q> wwwz(const glm::vec<4, T, Q> &v) {
-
2773  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.z);
-
2774  }
-
2775 
-
2776  // wwww
-
2777  template<typename T, qualifier Q>
-
2778  GLM_INLINE glm::vec<4, T, Q> wwww(const glm::vec<4, T, Q> &v) {
-
2779  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.w);
-
2780  }
-
2781 
-
2782 }
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vec_swizzle.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vec_swizzle.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../glm.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # ifndef GLM_ENABLE_EXPERIMENTAL
+
19 # pragma message("GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
20 # else
+
21 # pragma message("GLM: GLM_GTX_vec_swizzle extension included")
+
22 # endif
+
23 #endif
+
24 
+
25 namespace glm {
+
26  // xx
+
27  template<typename T, qualifier Q>
+
28  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<1, T, Q> &v) {
+
29  return glm::vec<2, T, Q>(v.x, v.x);
+
30  }
+
31 
+
32  template<typename T, qualifier Q>
+
33  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<2, T, Q> &v) {
+
34  return glm::vec<2, T, Q>(v.x, v.x);
+
35  }
+
36 
+
37  template<typename T, qualifier Q>
+
38  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<3, T, Q> &v) {
+
39  return glm::vec<2, T, Q>(v.x, v.x);
+
40  }
+
41 
+
42  template<typename T, qualifier Q>
+
43  GLM_INLINE glm::vec<2, T, Q> xx(const glm::vec<4, T, Q> &v) {
+
44  return glm::vec<2, T, Q>(v.x, v.x);
+
45  }
+
46 
+
47  // xy
+
48  template<typename T, qualifier Q>
+
49  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<2, T, Q> &v) {
+
50  return glm::vec<2, T, Q>(v.x, v.y);
+
51  }
+
52 
+
53  template<typename T, qualifier Q>
+
54  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<3, T, Q> &v) {
+
55  return glm::vec<2, T, Q>(v.x, v.y);
+
56  }
+
57 
+
58  template<typename T, qualifier Q>
+
59  GLM_INLINE glm::vec<2, T, Q> xy(const glm::vec<4, T, Q> &v) {
+
60  return glm::vec<2, T, Q>(v.x, v.y);
+
61  }
+
62 
+
63  // xz
+
64  template<typename T, qualifier Q>
+
65  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<3, T, Q> &v) {
+
66  return glm::vec<2, T, Q>(v.x, v.z);
+
67  }
+
68 
+
69  template<typename T, qualifier Q>
+
70  GLM_INLINE glm::vec<2, T, Q> xz(const glm::vec<4, T, Q> &v) {
+
71  return glm::vec<2, T, Q>(v.x, v.z);
+
72  }
+
73 
+
74  // xw
+
75  template<typename T, qualifier Q>
+
76  GLM_INLINE glm::vec<2, T, Q> xw(const glm::vec<4, T, Q> &v) {
+
77  return glm::vec<2, T, Q>(v.x, v.w);
+
78  }
+
79 
+
80  // yx
+
81  template<typename T, qualifier Q>
+
82  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<2, T, Q> &v) {
+
83  return glm::vec<2, T, Q>(v.y, v.x);
+
84  }
+
85 
+
86  template<typename T, qualifier Q>
+
87  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<3, T, Q> &v) {
+
88  return glm::vec<2, T, Q>(v.y, v.x);
+
89  }
+
90 
+
91  template<typename T, qualifier Q>
+
92  GLM_INLINE glm::vec<2, T, Q> yx(const glm::vec<4, T, Q> &v) {
+
93  return glm::vec<2, T, Q>(v.y, v.x);
+
94  }
+
95 
+
96  // yy
+
97  template<typename T, qualifier Q>
+
98  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<2, T, Q> &v) {
+
99  return glm::vec<2, T, Q>(v.y, v.y);
+
100  }
+
101 
+
102  template<typename T, qualifier Q>
+
103  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<3, T, Q> &v) {
+
104  return glm::vec<2, T, Q>(v.y, v.y);
+
105  }
+
106 
+
107  template<typename T, qualifier Q>
+
108  GLM_INLINE glm::vec<2, T, Q> yy(const glm::vec<4, T, Q> &v) {
+
109  return glm::vec<2, T, Q>(v.y, v.y);
+
110  }
+
111 
+
112  // yz
+
113  template<typename T, qualifier Q>
+
114  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<3, T, Q> &v) {
+
115  return glm::vec<2, T, Q>(v.y, v.z);
+
116  }
+
117 
+
118  template<typename T, qualifier Q>
+
119  GLM_INLINE glm::vec<2, T, Q> yz(const glm::vec<4, T, Q> &v) {
+
120  return glm::vec<2, T, Q>(v.y, v.z);
+
121  }
+
122 
+
123  // yw
+
124  template<typename T, qualifier Q>
+
125  GLM_INLINE glm::vec<2, T, Q> yw(const glm::vec<4, T, Q> &v) {
+
126  return glm::vec<2, T, Q>(v.y, v.w);
+
127  }
+
128 
+
129  // zx
+
130  template<typename T, qualifier Q>
+
131  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<3, T, Q> &v) {
+
132  return glm::vec<2, T, Q>(v.z, v.x);
+
133  }
+
134 
+
135  template<typename T, qualifier Q>
+
136  GLM_INLINE glm::vec<2, T, Q> zx(const glm::vec<4, T, Q> &v) {
+
137  return glm::vec<2, T, Q>(v.z, v.x);
+
138  }
+
139 
+
140  // zy
+
141  template<typename T, qualifier Q>
+
142  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<3, T, Q> &v) {
+
143  return glm::vec<2, T, Q>(v.z, v.y);
+
144  }
+
145 
+
146  template<typename T, qualifier Q>
+
147  GLM_INLINE glm::vec<2, T, Q> zy(const glm::vec<4, T, Q> &v) {
+
148  return glm::vec<2, T, Q>(v.z, v.y);
+
149  }
+
150 
+
151  // zz
+
152  template<typename T, qualifier Q>
+
153  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<3, T, Q> &v) {
+
154  return glm::vec<2, T, Q>(v.z, v.z);
+
155  }
+
156 
+
157  template<typename T, qualifier Q>
+
158  GLM_INLINE glm::vec<2, T, Q> zz(const glm::vec<4, T, Q> &v) {
+
159  return glm::vec<2, T, Q>(v.z, v.z);
+
160  }
+
161 
+
162  // zw
+
163  template<typename T, qualifier Q>
+
164  GLM_INLINE glm::vec<2, T, Q> zw(const glm::vec<4, T, Q> &v) {
+
165  return glm::vec<2, T, Q>(v.z, v.w);
+
166  }
+
167 
+
168  // wx
+
169  template<typename T, qualifier Q>
+
170  GLM_INLINE glm::vec<2, T, Q> wx(const glm::vec<4, T, Q> &v) {
+
171  return glm::vec<2, T, Q>(v.w, v.x);
+
172  }
+
173 
+
174  // wy
+
175  template<typename T, qualifier Q>
+
176  GLM_INLINE glm::vec<2, T, Q> wy(const glm::vec<4, T, Q> &v) {
+
177  return glm::vec<2, T, Q>(v.w, v.y);
+
178  }
+
179 
+
180  // wz
+
181  template<typename T, qualifier Q>
+
182  GLM_INLINE glm::vec<2, T, Q> wz(const glm::vec<4, T, Q> &v) {
+
183  return glm::vec<2, T, Q>(v.w, v.z);
+
184  }
+
185 
+
186  // ww
+
187  template<typename T, qualifier Q>
+
188  GLM_INLINE glm::vec<2, T, Q> ww(const glm::vec<4, T, Q> &v) {
+
189  return glm::vec<2, T, Q>(v.w, v.w);
+
190  }
+
191 
+
192  // xxx
+
193  template<typename T, qualifier Q>
+
194  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<1, T, Q> &v) {
+
195  return glm::vec<3, T, Q>(v.x, v.x, v.x);
+
196  }
+
197 
+
198  template<typename T, qualifier Q>
+
199  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<2, T, Q> &v) {
+
200  return glm::vec<3, T, Q>(v.x, v.x, v.x);
+
201  }
+
202 
+
203  template<typename T, qualifier Q>
+
204  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<3, T, Q> &v) {
+
205  return glm::vec<3, T, Q>(v.x, v.x, v.x);
+
206  }
+
207 
+
208  template<typename T, qualifier Q>
+
209  GLM_INLINE glm::vec<3, T, Q> xxx(const glm::vec<4, T, Q> &v) {
+
210  return glm::vec<3, T, Q>(v.x, v.x, v.x);
+
211  }
+
212 
+
213  // xxy
+
214  template<typename T, qualifier Q>
+
215  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<2, T, Q> &v) {
+
216  return glm::vec<3, T, Q>(v.x, v.x, v.y);
+
217  }
+
218 
+
219  template<typename T, qualifier Q>
+
220  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<3, T, Q> &v) {
+
221  return glm::vec<3, T, Q>(v.x, v.x, v.y);
+
222  }
+
223 
+
224  template<typename T, qualifier Q>
+
225  GLM_INLINE glm::vec<3, T, Q> xxy(const glm::vec<4, T, Q> &v) {
+
226  return glm::vec<3, T, Q>(v.x, v.x, v.y);
+
227  }
+
228 
+
229  // xxz
+
230  template<typename T, qualifier Q>
+
231  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<3, T, Q> &v) {
+
232  return glm::vec<3, T, Q>(v.x, v.x, v.z);
+
233  }
+
234 
+
235  template<typename T, qualifier Q>
+
236  GLM_INLINE glm::vec<3, T, Q> xxz(const glm::vec<4, T, Q> &v) {
+
237  return glm::vec<3, T, Q>(v.x, v.x, v.z);
+
238  }
+
239 
+
240  // xxw
+
241  template<typename T, qualifier Q>
+
242  GLM_INLINE glm::vec<3, T, Q> xxw(const glm::vec<4, T, Q> &v) {
+
243  return glm::vec<3, T, Q>(v.x, v.x, v.w);
+
244  }
+
245 
+
246  // xyx
+
247  template<typename T, qualifier Q>
+
248  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<2, T, Q> &v) {
+
249  return glm::vec<3, T, Q>(v.x, v.y, v.x);
+
250  }
+
251 
+
252  template<typename T, qualifier Q>
+
253  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<3, T, Q> &v) {
+
254  return glm::vec<3, T, Q>(v.x, v.y, v.x);
+
255  }
+
256 
+
257  template<typename T, qualifier Q>
+
258  GLM_INLINE glm::vec<3, T, Q> xyx(const glm::vec<4, T, Q> &v) {
+
259  return glm::vec<3, T, Q>(v.x, v.y, v.x);
+
260  }
+
261 
+
262  // xyy
+
263  template<typename T, qualifier Q>
+
264  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<2, T, Q> &v) {
+
265  return glm::vec<3, T, Q>(v.x, v.y, v.y);
+
266  }
+
267 
+
268  template<typename T, qualifier Q>
+
269  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<3, T, Q> &v) {
+
270  return glm::vec<3, T, Q>(v.x, v.y, v.y);
+
271  }
+
272 
+
273  template<typename T, qualifier Q>
+
274  GLM_INLINE glm::vec<3, T, Q> xyy(const glm::vec<4, T, Q> &v) {
+
275  return glm::vec<3, T, Q>(v.x, v.y, v.y);
+
276  }
+
277 
+
278  // xyz
+
279  template<typename T, qualifier Q>
+
280  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<3, T, Q> &v) {
+
281  return glm::vec<3, T, Q>(v.x, v.y, v.z);
+
282  }
+
283 
+
284  template<typename T, qualifier Q>
+
285  GLM_INLINE glm::vec<3, T, Q> xyz(const glm::vec<4, T, Q> &v) {
+
286  return glm::vec<3, T, Q>(v.x, v.y, v.z);
+
287  }
+
288 
+
289  // xyw
+
290  template<typename T, qualifier Q>
+
291  GLM_INLINE glm::vec<3, T, Q> xyw(const glm::vec<4, T, Q> &v) {
+
292  return glm::vec<3, T, Q>(v.x, v.y, v.w);
+
293  }
+
294 
+
295  // xzx
+
296  template<typename T, qualifier Q>
+
297  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<3, T, Q> &v) {
+
298  return glm::vec<3, T, Q>(v.x, v.z, v.x);
+
299  }
+
300 
+
301  template<typename T, qualifier Q>
+
302  GLM_INLINE glm::vec<3, T, Q> xzx(const glm::vec<4, T, Q> &v) {
+
303  return glm::vec<3, T, Q>(v.x, v.z, v.x);
+
304  }
+
305 
+
306  // xzy
+
307  template<typename T, qualifier Q>
+
308  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<3, T, Q> &v) {
+
309  return glm::vec<3, T, Q>(v.x, v.z, v.y);
+
310  }
+
311 
+
312  template<typename T, qualifier Q>
+
313  GLM_INLINE glm::vec<3, T, Q> xzy(const glm::vec<4, T, Q> &v) {
+
314  return glm::vec<3, T, Q>(v.x, v.z, v.y);
+
315  }
+
316 
+
317  // xzz
+
318  template<typename T, qualifier Q>
+
319  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<3, T, Q> &v) {
+
320  return glm::vec<3, T, Q>(v.x, v.z, v.z);
+
321  }
+
322 
+
323  template<typename T, qualifier Q>
+
324  GLM_INLINE glm::vec<3, T, Q> xzz(const glm::vec<4, T, Q> &v) {
+
325  return glm::vec<3, T, Q>(v.x, v.z, v.z);
+
326  }
+
327 
+
328  // xzw
+
329  template<typename T, qualifier Q>
+
330  GLM_INLINE glm::vec<3, T, Q> xzw(const glm::vec<4, T, Q> &v) {
+
331  return glm::vec<3, T, Q>(v.x, v.z, v.w);
+
332  }
+
333 
+
334  // xwx
+
335  template<typename T, qualifier Q>
+
336  GLM_INLINE glm::vec<3, T, Q> xwx(const glm::vec<4, T, Q> &v) {
+
337  return glm::vec<3, T, Q>(v.x, v.w, v.x);
+
338  }
+
339 
+
340  // xwy
+
341  template<typename T, qualifier Q>
+
342  GLM_INLINE glm::vec<3, T, Q> xwy(const glm::vec<4, T, Q> &v) {
+
343  return glm::vec<3, T, Q>(v.x, v.w, v.y);
+
344  }
+
345 
+
346  // xwz
+
347  template<typename T, qualifier Q>
+
348  GLM_INLINE glm::vec<3, T, Q> xwz(const glm::vec<4, T, Q> &v) {
+
349  return glm::vec<3, T, Q>(v.x, v.w, v.z);
+
350  }
+
351 
+
352  // xww
+
353  template<typename T, qualifier Q>
+
354  GLM_INLINE glm::vec<3, T, Q> xww(const glm::vec<4, T, Q> &v) {
+
355  return glm::vec<3, T, Q>(v.x, v.w, v.w);
+
356  }
+
357 
+
358  // yxx
+
359  template<typename T, qualifier Q>
+
360  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<2, T, Q> &v) {
+
361  return glm::vec<3, T, Q>(v.y, v.x, v.x);
+
362  }
+
363 
+
364  template<typename T, qualifier Q>
+
365  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<3, T, Q> &v) {
+
366  return glm::vec<3, T, Q>(v.y, v.x, v.x);
+
367  }
+
368 
+
369  template<typename T, qualifier Q>
+
370  GLM_INLINE glm::vec<3, T, Q> yxx(const glm::vec<4, T, Q> &v) {
+
371  return glm::vec<3, T, Q>(v.y, v.x, v.x);
+
372  }
+
373 
+
374  // yxy
+
375  template<typename T, qualifier Q>
+
376  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<2, T, Q> &v) {
+
377  return glm::vec<3, T, Q>(v.y, v.x, v.y);
+
378  }
+
379 
+
380  template<typename T, qualifier Q>
+
381  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<3, T, Q> &v) {
+
382  return glm::vec<3, T, Q>(v.y, v.x, v.y);
+
383  }
+
384 
+
385  template<typename T, qualifier Q>
+
386  GLM_INLINE glm::vec<3, T, Q> yxy(const glm::vec<4, T, Q> &v) {
+
387  return glm::vec<3, T, Q>(v.y, v.x, v.y);
+
388  }
+
389 
+
390  // yxz
+
391  template<typename T, qualifier Q>
+
392  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<3, T, Q> &v) {
+
393  return glm::vec<3, T, Q>(v.y, v.x, v.z);
+
394  }
+
395 
+
396  template<typename T, qualifier Q>
+
397  GLM_INLINE glm::vec<3, T, Q> yxz(const glm::vec<4, T, Q> &v) {
+
398  return glm::vec<3, T, Q>(v.y, v.x, v.z);
+
399  }
+
400 
+
401  // yxw
+
402  template<typename T, qualifier Q>
+
403  GLM_INLINE glm::vec<3, T, Q> yxw(const glm::vec<4, T, Q> &v) {
+
404  return glm::vec<3, T, Q>(v.y, v.x, v.w);
+
405  }
+
406 
+
407  // yyx
+
408  template<typename T, qualifier Q>
+
409  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<2, T, Q> &v) {
+
410  return glm::vec<3, T, Q>(v.y, v.y, v.x);
+
411  }
+
412 
+
413  template<typename T, qualifier Q>
+
414  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<3, T, Q> &v) {
+
415  return glm::vec<3, T, Q>(v.y, v.y, v.x);
+
416  }
+
417 
+
418  template<typename T, qualifier Q>
+
419  GLM_INLINE glm::vec<3, T, Q> yyx(const glm::vec<4, T, Q> &v) {
+
420  return glm::vec<3, T, Q>(v.y, v.y, v.x);
+
421  }
+
422 
+
423  // yyy
+
424  template<typename T, qualifier Q>
+
425  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<2, T, Q> &v) {
+
426  return glm::vec<3, T, Q>(v.y, v.y, v.y);
+
427  }
+
428 
+
429  template<typename T, qualifier Q>
+
430  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<3, T, Q> &v) {
+
431  return glm::vec<3, T, Q>(v.y, v.y, v.y);
+
432  }
+
433 
+
434  template<typename T, qualifier Q>
+
435  GLM_INLINE glm::vec<3, T, Q> yyy(const glm::vec<4, T, Q> &v) {
+
436  return glm::vec<3, T, Q>(v.y, v.y, v.y);
+
437  }
+
438 
+
439  // yyz
+
440  template<typename T, qualifier Q>
+
441  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<3, T, Q> &v) {
+
442  return glm::vec<3, T, Q>(v.y, v.y, v.z);
+
443  }
+
444 
+
445  template<typename T, qualifier Q>
+
446  GLM_INLINE glm::vec<3, T, Q> yyz(const glm::vec<4, T, Q> &v) {
+
447  return glm::vec<3, T, Q>(v.y, v.y, v.z);
+
448  }
+
449 
+
450  // yyw
+
451  template<typename T, qualifier Q>
+
452  GLM_INLINE glm::vec<3, T, Q> yyw(const glm::vec<4, T, Q> &v) {
+
453  return glm::vec<3, T, Q>(v.y, v.y, v.w);
+
454  }
+
455 
+
456  // yzx
+
457  template<typename T, qualifier Q>
+
458  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<3, T, Q> &v) {
+
459  return glm::vec<3, T, Q>(v.y, v.z, v.x);
+
460  }
+
461 
+
462  template<typename T, qualifier Q>
+
463  GLM_INLINE glm::vec<3, T, Q> yzx(const glm::vec<4, T, Q> &v) {
+
464  return glm::vec<3, T, Q>(v.y, v.z, v.x);
+
465  }
+
466 
+
467  // yzy
+
468  template<typename T, qualifier Q>
+
469  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<3, T, Q> &v) {
+
470  return glm::vec<3, T, Q>(v.y, v.z, v.y);
+
471  }
+
472 
+
473  template<typename T, qualifier Q>
+
474  GLM_INLINE glm::vec<3, T, Q> yzy(const glm::vec<4, T, Q> &v) {
+
475  return glm::vec<3, T, Q>(v.y, v.z, v.y);
+
476  }
+
477 
+
478  // yzz
+
479  template<typename T, qualifier Q>
+
480  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<3, T, Q> &v) {
+
481  return glm::vec<3, T, Q>(v.y, v.z, v.z);
+
482  }
+
483 
+
484  template<typename T, qualifier Q>
+
485  GLM_INLINE glm::vec<3, T, Q> yzz(const glm::vec<4, T, Q> &v) {
+
486  return glm::vec<3, T, Q>(v.y, v.z, v.z);
+
487  }
+
488 
+
489  // yzw
+
490  template<typename T, qualifier Q>
+
491  GLM_INLINE glm::vec<3, T, Q> yzw(const glm::vec<4, T, Q> &v) {
+
492  return glm::vec<3, T, Q>(v.y, v.z, v.w);
+
493  }
+
494 
+
495  // ywx
+
496  template<typename T, qualifier Q>
+
497  GLM_INLINE glm::vec<3, T, Q> ywx(const glm::vec<4, T, Q> &v) {
+
498  return glm::vec<3, T, Q>(v.y, v.w, v.x);
+
499  }
+
500 
+
501  // ywy
+
502  template<typename T, qualifier Q>
+
503  GLM_INLINE glm::vec<3, T, Q> ywy(const glm::vec<4, T, Q> &v) {
+
504  return glm::vec<3, T, Q>(v.y, v.w, v.y);
+
505  }
+
506 
+
507  // ywz
+
508  template<typename T, qualifier Q>
+
509  GLM_INLINE glm::vec<3, T, Q> ywz(const glm::vec<4, T, Q> &v) {
+
510  return glm::vec<3, T, Q>(v.y, v.w, v.z);
+
511  }
+
512 
+
513  // yww
+
514  template<typename T, qualifier Q>
+
515  GLM_INLINE glm::vec<3, T, Q> yww(const glm::vec<4, T, Q> &v) {
+
516  return glm::vec<3, T, Q>(v.y, v.w, v.w);
+
517  }
+
518 
+
519  // zxx
+
520  template<typename T, qualifier Q>
+
521  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<3, T, Q> &v) {
+
522  return glm::vec<3, T, Q>(v.z, v.x, v.x);
+
523  }
+
524 
+
525  template<typename T, qualifier Q>
+
526  GLM_INLINE glm::vec<3, T, Q> zxx(const glm::vec<4, T, Q> &v) {
+
527  return glm::vec<3, T, Q>(v.z, v.x, v.x);
+
528  }
+
529 
+
530  // zxy
+
531  template<typename T, qualifier Q>
+
532  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<3, T, Q> &v) {
+
533  return glm::vec<3, T, Q>(v.z, v.x, v.y);
+
534  }
+
535 
+
536  template<typename T, qualifier Q>
+
537  GLM_INLINE glm::vec<3, T, Q> zxy(const glm::vec<4, T, Q> &v) {
+
538  return glm::vec<3, T, Q>(v.z, v.x, v.y);
+
539  }
+
540 
+
541  // zxz
+
542  template<typename T, qualifier Q>
+
543  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<3, T, Q> &v) {
+
544  return glm::vec<3, T, Q>(v.z, v.x, v.z);
+
545  }
+
546 
+
547  template<typename T, qualifier Q>
+
548  GLM_INLINE glm::vec<3, T, Q> zxz(const glm::vec<4, T, Q> &v) {
+
549  return glm::vec<3, T, Q>(v.z, v.x, v.z);
+
550  }
+
551 
+
552  // zxw
+
553  template<typename T, qualifier Q>
+
554  GLM_INLINE glm::vec<3, T, Q> zxw(const glm::vec<4, T, Q> &v) {
+
555  return glm::vec<3, T, Q>(v.z, v.x, v.w);
+
556  }
+
557 
+
558  // zyx
+
559  template<typename T, qualifier Q>
+
560  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<3, T, Q> &v) {
+
561  return glm::vec<3, T, Q>(v.z, v.y, v.x);
+
562  }
+
563 
+
564  template<typename T, qualifier Q>
+
565  GLM_INLINE glm::vec<3, T, Q> zyx(const glm::vec<4, T, Q> &v) {
+
566  return glm::vec<3, T, Q>(v.z, v.y, v.x);
+
567  }
+
568 
+
569  // zyy
+
570  template<typename T, qualifier Q>
+
571  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<3, T, Q> &v) {
+
572  return glm::vec<3, T, Q>(v.z, v.y, v.y);
+
573  }
+
574 
+
575  template<typename T, qualifier Q>
+
576  GLM_INLINE glm::vec<3, T, Q> zyy(const glm::vec<4, T, Q> &v) {
+
577  return glm::vec<3, T, Q>(v.z, v.y, v.y);
+
578  }
+
579 
+
580  // zyz
+
581  template<typename T, qualifier Q>
+
582  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<3, T, Q> &v) {
+
583  return glm::vec<3, T, Q>(v.z, v.y, v.z);
+
584  }
+
585 
+
586  template<typename T, qualifier Q>
+
587  GLM_INLINE glm::vec<3, T, Q> zyz(const glm::vec<4, T, Q> &v) {
+
588  return glm::vec<3, T, Q>(v.z, v.y, v.z);
+
589  }
+
590 
+
591  // zyw
+
592  template<typename T, qualifier Q>
+
593  GLM_INLINE glm::vec<3, T, Q> zyw(const glm::vec<4, T, Q> &v) {
+
594  return glm::vec<3, T, Q>(v.z, v.y, v.w);
+
595  }
+
596 
+
597  // zzx
+
598  template<typename T, qualifier Q>
+
599  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<3, T, Q> &v) {
+
600  return glm::vec<3, T, Q>(v.z, v.z, v.x);
+
601  }
+
602 
+
603  template<typename T, qualifier Q>
+
604  GLM_INLINE glm::vec<3, T, Q> zzx(const glm::vec<4, T, Q> &v) {
+
605  return glm::vec<3, T, Q>(v.z, v.z, v.x);
+
606  }
+
607 
+
608  // zzy
+
609  template<typename T, qualifier Q>
+
610  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<3, T, Q> &v) {
+
611  return glm::vec<3, T, Q>(v.z, v.z, v.y);
+
612  }
+
613 
+
614  template<typename T, qualifier Q>
+
615  GLM_INLINE glm::vec<3, T, Q> zzy(const glm::vec<4, T, Q> &v) {
+
616  return glm::vec<3, T, Q>(v.z, v.z, v.y);
+
617  }
+
618 
+
619  // zzz
+
620  template<typename T, qualifier Q>
+
621  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<3, T, Q> &v) {
+
622  return glm::vec<3, T, Q>(v.z, v.z, v.z);
+
623  }
+
624 
+
625  template<typename T, qualifier Q>
+
626  GLM_INLINE glm::vec<3, T, Q> zzz(const glm::vec<4, T, Q> &v) {
+
627  return glm::vec<3, T, Q>(v.z, v.z, v.z);
+
628  }
+
629 
+
630  // zzw
+
631  template<typename T, qualifier Q>
+
632  GLM_INLINE glm::vec<3, T, Q> zzw(const glm::vec<4, T, Q> &v) {
+
633  return glm::vec<3, T, Q>(v.z, v.z, v.w);
+
634  }
+
635 
+
636  // zwx
+
637  template<typename T, qualifier Q>
+
638  GLM_INLINE glm::vec<3, T, Q> zwx(const glm::vec<4, T, Q> &v) {
+
639  return glm::vec<3, T, Q>(v.z, v.w, v.x);
+
640  }
+
641 
+
642  // zwy
+
643  template<typename T, qualifier Q>
+
644  GLM_INLINE glm::vec<3, T, Q> zwy(const glm::vec<4, T, Q> &v) {
+
645  return glm::vec<3, T, Q>(v.z, v.w, v.y);
+
646  }
+
647 
+
648  // zwz
+
649  template<typename T, qualifier Q>
+
650  GLM_INLINE glm::vec<3, T, Q> zwz(const glm::vec<4, T, Q> &v) {
+
651  return glm::vec<3, T, Q>(v.z, v.w, v.z);
+
652  }
+
653 
+
654  // zww
+
655  template<typename T, qualifier Q>
+
656  GLM_INLINE glm::vec<3, T, Q> zww(const glm::vec<4, T, Q> &v) {
+
657  return glm::vec<3, T, Q>(v.z, v.w, v.w);
+
658  }
+
659 
+
660  // wxx
+
661  template<typename T, qualifier Q>
+
662  GLM_INLINE glm::vec<3, T, Q> wxx(const glm::vec<4, T, Q> &v) {
+
663  return glm::vec<3, T, Q>(v.w, v.x, v.x);
+
664  }
+
665 
+
666  // wxy
+
667  template<typename T, qualifier Q>
+
668  GLM_INLINE glm::vec<3, T, Q> wxy(const glm::vec<4, T, Q> &v) {
+
669  return glm::vec<3, T, Q>(v.w, v.x, v.y);
+
670  }
+
671 
+
672  // wxz
+
673  template<typename T, qualifier Q>
+
674  GLM_INLINE glm::vec<3, T, Q> wxz(const glm::vec<4, T, Q> &v) {
+
675  return glm::vec<3, T, Q>(v.w, v.x, v.z);
+
676  }
+
677 
+
678  // wxw
+
679  template<typename T, qualifier Q>
+
680  GLM_INLINE glm::vec<3, T, Q> wxw(const glm::vec<4, T, Q> &v) {
+
681  return glm::vec<3, T, Q>(v.w, v.x, v.w);
+
682  }
+
683 
+
684  // wyx
+
685  template<typename T, qualifier Q>
+
686  GLM_INLINE glm::vec<3, T, Q> wyx(const glm::vec<4, T, Q> &v) {
+
687  return glm::vec<3, T, Q>(v.w, v.y, v.x);
+
688  }
+
689 
+
690  // wyy
+
691  template<typename T, qualifier Q>
+
692  GLM_INLINE glm::vec<3, T, Q> wyy(const glm::vec<4, T, Q> &v) {
+
693  return glm::vec<3, T, Q>(v.w, v.y, v.y);
+
694  }
+
695 
+
696  // wyz
+
697  template<typename T, qualifier Q>
+
698  GLM_INLINE glm::vec<3, T, Q> wyz(const glm::vec<4, T, Q> &v) {
+
699  return glm::vec<3, T, Q>(v.w, v.y, v.z);
+
700  }
+
701 
+
702  // wyw
+
703  template<typename T, qualifier Q>
+
704  GLM_INLINE glm::vec<3, T, Q> wyw(const glm::vec<4, T, Q> &v) {
+
705  return glm::vec<3, T, Q>(v.w, v.y, v.w);
+
706  }
+
707 
+
708  // wzx
+
709  template<typename T, qualifier Q>
+
710  GLM_INLINE glm::vec<3, T, Q> wzx(const glm::vec<4, T, Q> &v) {
+
711  return glm::vec<3, T, Q>(v.w, v.z, v.x);
+
712  }
+
713 
+
714  // wzy
+
715  template<typename T, qualifier Q>
+
716  GLM_INLINE glm::vec<3, T, Q> wzy(const glm::vec<4, T, Q> &v) {
+
717  return glm::vec<3, T, Q>(v.w, v.z, v.y);
+
718  }
+
719 
+
720  // wzz
+
721  template<typename T, qualifier Q>
+
722  GLM_INLINE glm::vec<3, T, Q> wzz(const glm::vec<4, T, Q> &v) {
+
723  return glm::vec<3, T, Q>(v.w, v.z, v.z);
+
724  }
+
725 
+
726  // wzw
+
727  template<typename T, qualifier Q>
+
728  GLM_INLINE glm::vec<3, T, Q> wzw(const glm::vec<4, T, Q> &v) {
+
729  return glm::vec<3, T, Q>(v.w, v.z, v.w);
+
730  }
+
731 
+
732  // wwx
+
733  template<typename T, qualifier Q>
+
734  GLM_INLINE glm::vec<3, T, Q> wwx(const glm::vec<4, T, Q> &v) {
+
735  return glm::vec<3, T, Q>(v.w, v.w, v.x);
+
736  }
+
737 
+
738  // wwy
+
739  template<typename T, qualifier Q>
+
740  GLM_INLINE glm::vec<3, T, Q> wwy(const glm::vec<4, T, Q> &v) {
+
741  return glm::vec<3, T, Q>(v.w, v.w, v.y);
+
742  }
+
743 
+
744  // wwz
+
745  template<typename T, qualifier Q>
+
746  GLM_INLINE glm::vec<3, T, Q> wwz(const glm::vec<4, T, Q> &v) {
+
747  return glm::vec<3, T, Q>(v.w, v.w, v.z);
+
748  }
+
749 
+
750  // www
+
751  template<typename T, qualifier Q>
+
752  GLM_INLINE glm::vec<3, T, Q> www(const glm::vec<4, T, Q> &v) {
+
753  return glm::vec<3, T, Q>(v.w, v.w, v.w);
+
754  }
+
755 
+
756  // xxxx
+
757  template<typename T, qualifier Q>
+
758  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<1, T, Q> &v) {
+
759  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
+
760  }
+
761 
+
762  template<typename T, qualifier Q>
+
763  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<2, T, Q> &v) {
+
764  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
+
765  }
+
766 
+
767  template<typename T, qualifier Q>
+
768  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<3, T, Q> &v) {
+
769  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
+
770  }
+
771 
+
772  template<typename T, qualifier Q>
+
773  GLM_INLINE glm::vec<4, T, Q> xxxx(const glm::vec<4, T, Q> &v) {
+
774  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.x);
+
775  }
+
776 
+
777  // xxxy
+
778  template<typename T, qualifier Q>
+
779  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<2, T, Q> &v) {
+
780  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
+
781  }
+
782 
+
783  template<typename T, qualifier Q>
+
784  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<3, T, Q> &v) {
+
785  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
+
786  }
+
787 
+
788  template<typename T, qualifier Q>
+
789  GLM_INLINE glm::vec<4, T, Q> xxxy(const glm::vec<4, T, Q> &v) {
+
790  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.y);
+
791  }
+
792 
+
793  // xxxz
+
794  template<typename T, qualifier Q>
+
795  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<3, T, Q> &v) {
+
796  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
+
797  }
+
798 
+
799  template<typename T, qualifier Q>
+
800  GLM_INLINE glm::vec<4, T, Q> xxxz(const glm::vec<4, T, Q> &v) {
+
801  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.z);
+
802  }
+
803 
+
804  // xxxw
+
805  template<typename T, qualifier Q>
+
806  GLM_INLINE glm::vec<4, T, Q> xxxw(const glm::vec<4, T, Q> &v) {
+
807  return glm::vec<4, T, Q>(v.x, v.x, v.x, v.w);
+
808  }
+
809 
+
810  // xxyx
+
811  template<typename T, qualifier Q>
+
812  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<2, T, Q> &v) {
+
813  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
+
814  }
+
815 
+
816  template<typename T, qualifier Q>
+
817  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<3, T, Q> &v) {
+
818  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
+
819  }
+
820 
+
821  template<typename T, qualifier Q>
+
822  GLM_INLINE glm::vec<4, T, Q> xxyx(const glm::vec<4, T, Q> &v) {
+
823  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.x);
+
824  }
+
825 
+
826  // xxyy
+
827  template<typename T, qualifier Q>
+
828  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<2, T, Q> &v) {
+
829  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
+
830  }
+
831 
+
832  template<typename T, qualifier Q>
+
833  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<3, T, Q> &v) {
+
834  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
+
835  }
+
836 
+
837  template<typename T, qualifier Q>
+
838  GLM_INLINE glm::vec<4, T, Q> xxyy(const glm::vec<4, T, Q> &v) {
+
839  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.y);
+
840  }
+
841 
+
842  // xxyz
+
843  template<typename T, qualifier Q>
+
844  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<3, T, Q> &v) {
+
845  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
+
846  }
+
847 
+
848  template<typename T, qualifier Q>
+
849  GLM_INLINE glm::vec<4, T, Q> xxyz(const glm::vec<4, T, Q> &v) {
+
850  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.z);
+
851  }
+
852 
+
853  // xxyw
+
854  template<typename T, qualifier Q>
+
855  GLM_INLINE glm::vec<4, T, Q> xxyw(const glm::vec<4, T, Q> &v) {
+
856  return glm::vec<4, T, Q>(v.x, v.x, v.y, v.w);
+
857  }
+
858 
+
859  // xxzx
+
860  template<typename T, qualifier Q>
+
861  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<3, T, Q> &v) {
+
862  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
+
863  }
+
864 
+
865  template<typename T, qualifier Q>
+
866  GLM_INLINE glm::vec<4, T, Q> xxzx(const glm::vec<4, T, Q> &v) {
+
867  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.x);
+
868  }
+
869 
+
870  // xxzy
+
871  template<typename T, qualifier Q>
+
872  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<3, T, Q> &v) {
+
873  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
+
874  }
+
875 
+
876  template<typename T, qualifier Q>
+
877  GLM_INLINE glm::vec<4, T, Q> xxzy(const glm::vec<4, T, Q> &v) {
+
878  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.y);
+
879  }
+
880 
+
881  // xxzz
+
882  template<typename T, qualifier Q>
+
883  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<3, T, Q> &v) {
+
884  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
+
885  }
+
886 
+
887  template<typename T, qualifier Q>
+
888  GLM_INLINE glm::vec<4, T, Q> xxzz(const glm::vec<4, T, Q> &v) {
+
889  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.z);
+
890  }
+
891 
+
892  // xxzw
+
893  template<typename T, qualifier Q>
+
894  GLM_INLINE glm::vec<4, T, Q> xxzw(const glm::vec<4, T, Q> &v) {
+
895  return glm::vec<4, T, Q>(v.x, v.x, v.z, v.w);
+
896  }
+
897 
+
898  // xxwx
+
899  template<typename T, qualifier Q>
+
900  GLM_INLINE glm::vec<4, T, Q> xxwx(const glm::vec<4, T, Q> &v) {
+
901  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.x);
+
902  }
+
903 
+
904  // xxwy
+
905  template<typename T, qualifier Q>
+
906  GLM_INLINE glm::vec<4, T, Q> xxwy(const glm::vec<4, T, Q> &v) {
+
907  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.y);
+
908  }
+
909 
+
910  // xxwz
+
911  template<typename T, qualifier Q>
+
912  GLM_INLINE glm::vec<4, T, Q> xxwz(const glm::vec<4, T, Q> &v) {
+
913  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.z);
+
914  }
+
915 
+
916  // xxww
+
917  template<typename T, qualifier Q>
+
918  GLM_INLINE glm::vec<4, T, Q> xxww(const glm::vec<4, T, Q> &v) {
+
919  return glm::vec<4, T, Q>(v.x, v.x, v.w, v.w);
+
920  }
+
921 
+
922  // xyxx
+
923  template<typename T, qualifier Q>
+
924  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<2, T, Q> &v) {
+
925  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
+
926  }
+
927 
+
928  template<typename T, qualifier Q>
+
929  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<3, T, Q> &v) {
+
930  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
+
931  }
+
932 
+
933  template<typename T, qualifier Q>
+
934  GLM_INLINE glm::vec<4, T, Q> xyxx(const glm::vec<4, T, Q> &v) {
+
935  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.x);
+
936  }
+
937 
+
938  // xyxy
+
939  template<typename T, qualifier Q>
+
940  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<2, T, Q> &v) {
+
941  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
+
942  }
+
943 
+
944  template<typename T, qualifier Q>
+
945  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<3, T, Q> &v) {
+
946  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
+
947  }
+
948 
+
949  template<typename T, qualifier Q>
+
950  GLM_INLINE glm::vec<4, T, Q> xyxy(const glm::vec<4, T, Q> &v) {
+
951  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.y);
+
952  }
+
953 
+
954  // xyxz
+
955  template<typename T, qualifier Q>
+
956  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<3, T, Q> &v) {
+
957  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
+
958  }
+
959 
+
960  template<typename T, qualifier Q>
+
961  GLM_INLINE glm::vec<4, T, Q> xyxz(const glm::vec<4, T, Q> &v) {
+
962  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.z);
+
963  }
+
964 
+
965  // xyxw
+
966  template<typename T, qualifier Q>
+
967  GLM_INLINE glm::vec<4, T, Q> xyxw(const glm::vec<4, T, Q> &v) {
+
968  return glm::vec<4, T, Q>(v.x, v.y, v.x, v.w);
+
969  }
+
970 
+
971  // xyyx
+
972  template<typename T, qualifier Q>
+
973  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<2, T, Q> &v) {
+
974  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
+
975  }
+
976 
+
977  template<typename T, qualifier Q>
+
978  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<3, T, Q> &v) {
+
979  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
+
980  }
+
981 
+
982  template<typename T, qualifier Q>
+
983  GLM_INLINE glm::vec<4, T, Q> xyyx(const glm::vec<4, T, Q> &v) {
+
984  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.x);
+
985  }
+
986 
+
987  // xyyy
+
988  template<typename T, qualifier Q>
+
989  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<2, T, Q> &v) {
+
990  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
+
991  }
+
992 
+
993  template<typename T, qualifier Q>
+
994  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<3, T, Q> &v) {
+
995  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
+
996  }
+
997 
+
998  template<typename T, qualifier Q>
+
999  GLM_INLINE glm::vec<4, T, Q> xyyy(const glm::vec<4, T, Q> &v) {
+
1000  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.y);
+
1001  }
+
1002 
+
1003  // xyyz
+
1004  template<typename T, qualifier Q>
+
1005  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<3, T, Q> &v) {
+
1006  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
+
1007  }
+
1008 
+
1009  template<typename T, qualifier Q>
+
1010  GLM_INLINE glm::vec<4, T, Q> xyyz(const glm::vec<4, T, Q> &v) {
+
1011  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.z);
+
1012  }
+
1013 
+
1014  // xyyw
+
1015  template<typename T, qualifier Q>
+
1016  GLM_INLINE glm::vec<4, T, Q> xyyw(const glm::vec<4, T, Q> &v) {
+
1017  return glm::vec<4, T, Q>(v.x, v.y, v.y, v.w);
+
1018  }
+
1019 
+
1020  // xyzx
+
1021  template<typename T, qualifier Q>
+
1022  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<3, T, Q> &v) {
+
1023  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
+
1024  }
+
1025 
+
1026  template<typename T, qualifier Q>
+
1027  GLM_INLINE glm::vec<4, T, Q> xyzx(const glm::vec<4, T, Q> &v) {
+
1028  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.x);
+
1029  }
+
1030 
+
1031  // xyzy
+
1032  template<typename T, qualifier Q>
+
1033  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<3, T, Q> &v) {
+
1034  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
+
1035  }
+
1036 
+
1037  template<typename T, qualifier Q>
+
1038  GLM_INLINE glm::vec<4, T, Q> xyzy(const glm::vec<4, T, Q> &v) {
+
1039  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.y);
+
1040  }
+
1041 
+
1042  // xyzz
+
1043  template<typename T, qualifier Q>
+
1044  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<3, T, Q> &v) {
+
1045  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
+
1046  }
+
1047 
+
1048  template<typename T, qualifier Q>
+
1049  GLM_INLINE glm::vec<4, T, Q> xyzz(const glm::vec<4, T, Q> &v) {
+
1050  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.z);
+
1051  }
+
1052 
+
1053  // xyzw
+
1054  template<typename T, qualifier Q>
+
1055  GLM_INLINE glm::vec<4, T, Q> xyzw(const glm::vec<4, T, Q> &v) {
+
1056  return glm::vec<4, T, Q>(v.x, v.y, v.z, v.w);
+
1057  }
+
1058 
+
1059  // xywx
+
1060  template<typename T, qualifier Q>
+
1061  GLM_INLINE glm::vec<4, T, Q> xywx(const glm::vec<4, T, Q> &v) {
+
1062  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.x);
+
1063  }
+
1064 
+
1065  // xywy
+
1066  template<typename T, qualifier Q>
+
1067  GLM_INLINE glm::vec<4, T, Q> xywy(const glm::vec<4, T, Q> &v) {
+
1068  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.y);
+
1069  }
+
1070 
+
1071  // xywz
+
1072  template<typename T, qualifier Q>
+
1073  GLM_INLINE glm::vec<4, T, Q> xywz(const glm::vec<4, T, Q> &v) {
+
1074  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.z);
+
1075  }
+
1076 
+
1077  // xyww
+
1078  template<typename T, qualifier Q>
+
1079  GLM_INLINE glm::vec<4, T, Q> xyww(const glm::vec<4, T, Q> &v) {
+
1080  return glm::vec<4, T, Q>(v.x, v.y, v.w, v.w);
+
1081  }
+
1082 
+
1083  // xzxx
+
1084  template<typename T, qualifier Q>
+
1085  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<3, T, Q> &v) {
+
1086  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
+
1087  }
+
1088 
+
1089  template<typename T, qualifier Q>
+
1090  GLM_INLINE glm::vec<4, T, Q> xzxx(const glm::vec<4, T, Q> &v) {
+
1091  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.x);
+
1092  }
+
1093 
+
1094  // xzxy
+
1095  template<typename T, qualifier Q>
+
1096  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<3, T, Q> &v) {
+
1097  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
+
1098  }
+
1099 
+
1100  template<typename T, qualifier Q>
+
1101  GLM_INLINE glm::vec<4, T, Q> xzxy(const glm::vec<4, T, Q> &v) {
+
1102  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.y);
+
1103  }
+
1104 
+
1105  // xzxz
+
1106  template<typename T, qualifier Q>
+
1107  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<3, T, Q> &v) {
+
1108  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
+
1109  }
+
1110 
+
1111  template<typename T, qualifier Q>
+
1112  GLM_INLINE glm::vec<4, T, Q> xzxz(const glm::vec<4, T, Q> &v) {
+
1113  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.z);
+
1114  }
+
1115 
+
1116  // xzxw
+
1117  template<typename T, qualifier Q>
+
1118  GLM_INLINE glm::vec<4, T, Q> xzxw(const glm::vec<4, T, Q> &v) {
+
1119  return glm::vec<4, T, Q>(v.x, v.z, v.x, v.w);
+
1120  }
+
1121 
+
1122  // xzyx
+
1123  template<typename T, qualifier Q>
+
1124  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<3, T, Q> &v) {
+
1125  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
+
1126  }
+
1127 
+
1128  template<typename T, qualifier Q>
+
1129  GLM_INLINE glm::vec<4, T, Q> xzyx(const glm::vec<4, T, Q> &v) {
+
1130  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.x);
+
1131  }
+
1132 
+
1133  // xzyy
+
1134  template<typename T, qualifier Q>
+
1135  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<3, T, Q> &v) {
+
1136  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
+
1137  }
+
1138 
+
1139  template<typename T, qualifier Q>
+
1140  GLM_INLINE glm::vec<4, T, Q> xzyy(const glm::vec<4, T, Q> &v) {
+
1141  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.y);
+
1142  }
+
1143 
+
1144  // xzyz
+
1145  template<typename T, qualifier Q>
+
1146  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<3, T, Q> &v) {
+
1147  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
+
1148  }
+
1149 
+
1150  template<typename T, qualifier Q>
+
1151  GLM_INLINE glm::vec<4, T, Q> xzyz(const glm::vec<4, T, Q> &v) {
+
1152  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.z);
+
1153  }
+
1154 
+
1155  // xzyw
+
1156  template<typename T, qualifier Q>
+
1157  GLM_INLINE glm::vec<4, T, Q> xzyw(const glm::vec<4, T, Q> &v) {
+
1158  return glm::vec<4, T, Q>(v.x, v.z, v.y, v.w);
+
1159  }
+
1160 
+
1161  // xzzx
+
1162  template<typename T, qualifier Q>
+
1163  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<3, T, Q> &v) {
+
1164  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
+
1165  }
+
1166 
+
1167  template<typename T, qualifier Q>
+
1168  GLM_INLINE glm::vec<4, T, Q> xzzx(const glm::vec<4, T, Q> &v) {
+
1169  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.x);
+
1170  }
+
1171 
+
1172  // xzzy
+
1173  template<typename T, qualifier Q>
+
1174  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<3, T, Q> &v) {
+
1175  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
+
1176  }
+
1177 
+
1178  template<typename T, qualifier Q>
+
1179  GLM_INLINE glm::vec<4, T, Q> xzzy(const glm::vec<4, T, Q> &v) {
+
1180  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.y);
+
1181  }
+
1182 
+
1183  // xzzz
+
1184  template<typename T, qualifier Q>
+
1185  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<3, T, Q> &v) {
+
1186  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
+
1187  }
+
1188 
+
1189  template<typename T, qualifier Q>
+
1190  GLM_INLINE glm::vec<4, T, Q> xzzz(const glm::vec<4, T, Q> &v) {
+
1191  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.z);
+
1192  }
+
1193 
+
1194  // xzzw
+
1195  template<typename T, qualifier Q>
+
1196  GLM_INLINE glm::vec<4, T, Q> xzzw(const glm::vec<4, T, Q> &v) {
+
1197  return glm::vec<4, T, Q>(v.x, v.z, v.z, v.w);
+
1198  }
+
1199 
+
1200  // xzwx
+
1201  template<typename T, qualifier Q>
+
1202  GLM_INLINE glm::vec<4, T, Q> xzwx(const glm::vec<4, T, Q> &v) {
+
1203  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.x);
+
1204  }
+
1205 
+
1206  // xzwy
+
1207  template<typename T, qualifier Q>
+
1208  GLM_INLINE glm::vec<4, T, Q> xzwy(const glm::vec<4, T, Q> &v) {
+
1209  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.y);
+
1210  }
+
1211 
+
1212  // xzwz
+
1213  template<typename T, qualifier Q>
+
1214  GLM_INLINE glm::vec<4, T, Q> xzwz(const glm::vec<4, T, Q> &v) {
+
1215  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.z);
+
1216  }
+
1217 
+
1218  // xzww
+
1219  template<typename T, qualifier Q>
+
1220  GLM_INLINE glm::vec<4, T, Q> xzww(const glm::vec<4, T, Q> &v) {
+
1221  return glm::vec<4, T, Q>(v.x, v.z, v.w, v.w);
+
1222  }
+
1223 
+
1224  // xwxx
+
1225  template<typename T, qualifier Q>
+
1226  GLM_INLINE glm::vec<4, T, Q> xwxx(const glm::vec<4, T, Q> &v) {
+
1227  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.x);
+
1228  }
+
1229 
+
1230  // xwxy
+
1231  template<typename T, qualifier Q>
+
1232  GLM_INLINE glm::vec<4, T, Q> xwxy(const glm::vec<4, T, Q> &v) {
+
1233  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.y);
+
1234  }
+
1235 
+
1236  // xwxz
+
1237  template<typename T, qualifier Q>
+
1238  GLM_INLINE glm::vec<4, T, Q> xwxz(const glm::vec<4, T, Q> &v) {
+
1239  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.z);
+
1240  }
+
1241 
+
1242  // xwxw
+
1243  template<typename T, qualifier Q>
+
1244  GLM_INLINE glm::vec<4, T, Q> xwxw(const glm::vec<4, T, Q> &v) {
+
1245  return glm::vec<4, T, Q>(v.x, v.w, v.x, v.w);
+
1246  }
+
1247 
+
1248  // xwyx
+
1249  template<typename T, qualifier Q>
+
1250  GLM_INLINE glm::vec<4, T, Q> xwyx(const glm::vec<4, T, Q> &v) {
+
1251  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.x);
+
1252  }
+
1253 
+
1254  // xwyy
+
1255  template<typename T, qualifier Q>
+
1256  GLM_INLINE glm::vec<4, T, Q> xwyy(const glm::vec<4, T, Q> &v) {
+
1257  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.y);
+
1258  }
+
1259 
+
1260  // xwyz
+
1261  template<typename T, qualifier Q>
+
1262  GLM_INLINE glm::vec<4, T, Q> xwyz(const glm::vec<4, T, Q> &v) {
+
1263  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.z);
+
1264  }
+
1265 
+
1266  // xwyw
+
1267  template<typename T, qualifier Q>
+
1268  GLM_INLINE glm::vec<4, T, Q> xwyw(const glm::vec<4, T, Q> &v) {
+
1269  return glm::vec<4, T, Q>(v.x, v.w, v.y, v.w);
+
1270  }
+
1271 
+
1272  // xwzx
+
1273  template<typename T, qualifier Q>
+
1274  GLM_INLINE glm::vec<4, T, Q> xwzx(const glm::vec<4, T, Q> &v) {
+
1275  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.x);
+
1276  }
+
1277 
+
1278  // xwzy
+
1279  template<typename T, qualifier Q>
+
1280  GLM_INLINE glm::vec<4, T, Q> xwzy(const glm::vec<4, T, Q> &v) {
+
1281  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.y);
+
1282  }
+
1283 
+
1284  // xwzz
+
1285  template<typename T, qualifier Q>
+
1286  GLM_INLINE glm::vec<4, T, Q> xwzz(const glm::vec<4, T, Q> &v) {
+
1287  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.z);
+
1288  }
+
1289 
+
1290  // xwzw
+
1291  template<typename T, qualifier Q>
+
1292  GLM_INLINE glm::vec<4, T, Q> xwzw(const glm::vec<4, T, Q> &v) {
+
1293  return glm::vec<4, T, Q>(v.x, v.w, v.z, v.w);
+
1294  }
+
1295 
+
1296  // xwwx
+
1297  template<typename T, qualifier Q>
+
1298  GLM_INLINE glm::vec<4, T, Q> xwwx(const glm::vec<4, T, Q> &v) {
+
1299  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.x);
+
1300  }
+
1301 
+
1302  // xwwy
+
1303  template<typename T, qualifier Q>
+
1304  GLM_INLINE glm::vec<4, T, Q> xwwy(const glm::vec<4, T, Q> &v) {
+
1305  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.y);
+
1306  }
+
1307 
+
1308  // xwwz
+
1309  template<typename T, qualifier Q>
+
1310  GLM_INLINE glm::vec<4, T, Q> xwwz(const glm::vec<4, T, Q> &v) {
+
1311  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.z);
+
1312  }
+
1313 
+
1314  // xwww
+
1315  template<typename T, qualifier Q>
+
1316  GLM_INLINE glm::vec<4, T, Q> xwww(const glm::vec<4, T, Q> &v) {
+
1317  return glm::vec<4, T, Q>(v.x, v.w, v.w, v.w);
+
1318  }
+
1319 
+
1320  // yxxx
+
1321  template<typename T, qualifier Q>
+
1322  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<2, T, Q> &v) {
+
1323  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
+
1324  }
+
1325 
+
1326  template<typename T, qualifier Q>
+
1327  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<3, T, Q> &v) {
+
1328  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
+
1329  }
+
1330 
+
1331  template<typename T, qualifier Q>
+
1332  GLM_INLINE glm::vec<4, T, Q> yxxx(const glm::vec<4, T, Q> &v) {
+
1333  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.x);
+
1334  }
+
1335 
+
1336  // yxxy
+
1337  template<typename T, qualifier Q>
+
1338  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<2, T, Q> &v) {
+
1339  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
+
1340  }
+
1341 
+
1342  template<typename T, qualifier Q>
+
1343  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<3, T, Q> &v) {
+
1344  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
+
1345  }
+
1346 
+
1347  template<typename T, qualifier Q>
+
1348  GLM_INLINE glm::vec<4, T, Q> yxxy(const glm::vec<4, T, Q> &v) {
+
1349  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.y);
+
1350  }
+
1351 
+
1352  // yxxz
+
1353  template<typename T, qualifier Q>
+
1354  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<3, T, Q> &v) {
+
1355  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
+
1356  }
+
1357 
+
1358  template<typename T, qualifier Q>
+
1359  GLM_INLINE glm::vec<4, T, Q> yxxz(const glm::vec<4, T, Q> &v) {
+
1360  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.z);
+
1361  }
+
1362 
+
1363  // yxxw
+
1364  template<typename T, qualifier Q>
+
1365  GLM_INLINE glm::vec<4, T, Q> yxxw(const glm::vec<4, T, Q> &v) {
+
1366  return glm::vec<4, T, Q>(v.y, v.x, v.x, v.w);
+
1367  }
+
1368 
+
1369  // yxyx
+
1370  template<typename T, qualifier Q>
+
1371  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<2, T, Q> &v) {
+
1372  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
+
1373  }
+
1374 
+
1375  template<typename T, qualifier Q>
+
1376  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<3, T, Q> &v) {
+
1377  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
+
1378  }
+
1379 
+
1380  template<typename T, qualifier Q>
+
1381  GLM_INLINE glm::vec<4, T, Q> yxyx(const glm::vec<4, T, Q> &v) {
+
1382  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.x);
+
1383  }
+
1384 
+
1385  // yxyy
+
1386  template<typename T, qualifier Q>
+
1387  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<2, T, Q> &v) {
+
1388  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
+
1389  }
+
1390 
+
1391  template<typename T, qualifier Q>
+
1392  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<3, T, Q> &v) {
+
1393  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
+
1394  }
+
1395 
+
1396  template<typename T, qualifier Q>
+
1397  GLM_INLINE glm::vec<4, T, Q> yxyy(const glm::vec<4, T, Q> &v) {
+
1398  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.y);
+
1399  }
+
1400 
+
1401  // yxyz
+
1402  template<typename T, qualifier Q>
+
1403  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<3, T, Q> &v) {
+
1404  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
+
1405  }
+
1406 
+
1407  template<typename T, qualifier Q>
+
1408  GLM_INLINE glm::vec<4, T, Q> yxyz(const glm::vec<4, T, Q> &v) {
+
1409  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.z);
+
1410  }
+
1411 
+
1412  // yxyw
+
1413  template<typename T, qualifier Q>
+
1414  GLM_INLINE glm::vec<4, T, Q> yxyw(const glm::vec<4, T, Q> &v) {
+
1415  return glm::vec<4, T, Q>(v.y, v.x, v.y, v.w);
+
1416  }
+
1417 
+
1418  // yxzx
+
1419  template<typename T, qualifier Q>
+
1420  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<3, T, Q> &v) {
+
1421  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
+
1422  }
+
1423 
+
1424  template<typename T, qualifier Q>
+
1425  GLM_INLINE glm::vec<4, T, Q> yxzx(const glm::vec<4, T, Q> &v) {
+
1426  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.x);
+
1427  }
+
1428 
+
1429  // yxzy
+
1430  template<typename T, qualifier Q>
+
1431  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<3, T, Q> &v) {
+
1432  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
+
1433  }
+
1434 
+
1435  template<typename T, qualifier Q>
+
1436  GLM_INLINE glm::vec<4, T, Q> yxzy(const glm::vec<4, T, Q> &v) {
+
1437  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.y);
+
1438  }
+
1439 
+
1440  // yxzz
+
1441  template<typename T, qualifier Q>
+
1442  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<3, T, Q> &v) {
+
1443  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
+
1444  }
+
1445 
+
1446  template<typename T, qualifier Q>
+
1447  GLM_INLINE glm::vec<4, T, Q> yxzz(const glm::vec<4, T, Q> &v) {
+
1448  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.z);
+
1449  }
+
1450 
+
1451  // yxzw
+
1452  template<typename T, qualifier Q>
+
1453  GLM_INLINE glm::vec<4, T, Q> yxzw(const glm::vec<4, T, Q> &v) {
+
1454  return glm::vec<4, T, Q>(v.y, v.x, v.z, v.w);
+
1455  }
+
1456 
+
1457  // yxwx
+
1458  template<typename T, qualifier Q>
+
1459  GLM_INLINE glm::vec<4, T, Q> yxwx(const glm::vec<4, T, Q> &v) {
+
1460  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.x);
+
1461  }
+
1462 
+
1463  // yxwy
+
1464  template<typename T, qualifier Q>
+
1465  GLM_INLINE glm::vec<4, T, Q> yxwy(const glm::vec<4, T, Q> &v) {
+
1466  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.y);
+
1467  }
+
1468 
+
1469  // yxwz
+
1470  template<typename T, qualifier Q>
+
1471  GLM_INLINE glm::vec<4, T, Q> yxwz(const glm::vec<4, T, Q> &v) {
+
1472  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.z);
+
1473  }
+
1474 
+
1475  // yxww
+
1476  template<typename T, qualifier Q>
+
1477  GLM_INLINE glm::vec<4, T, Q> yxww(const glm::vec<4, T, Q> &v) {
+
1478  return glm::vec<4, T, Q>(v.y, v.x, v.w, v.w);
+
1479  }
+
1480 
+
1481  // yyxx
+
1482  template<typename T, qualifier Q>
+
1483  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<2, T, Q> &v) {
+
1484  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
+
1485  }
+
1486 
+
1487  template<typename T, qualifier Q>
+
1488  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<3, T, Q> &v) {
+
1489  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
+
1490  }
+
1491 
+
1492  template<typename T, qualifier Q>
+
1493  GLM_INLINE glm::vec<4, T, Q> yyxx(const glm::vec<4, T, Q> &v) {
+
1494  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.x);
+
1495  }
+
1496 
+
1497  // yyxy
+
1498  template<typename T, qualifier Q>
+
1499  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<2, T, Q> &v) {
+
1500  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
+
1501  }
+
1502 
+
1503  template<typename T, qualifier Q>
+
1504  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<3, T, Q> &v) {
+
1505  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
+
1506  }
+
1507 
+
1508  template<typename T, qualifier Q>
+
1509  GLM_INLINE glm::vec<4, T, Q> yyxy(const glm::vec<4, T, Q> &v) {
+
1510  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.y);
+
1511  }
+
1512 
+
1513  // yyxz
+
1514  template<typename T, qualifier Q>
+
1515  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<3, T, Q> &v) {
+
1516  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
+
1517  }
+
1518 
+
1519  template<typename T, qualifier Q>
+
1520  GLM_INLINE glm::vec<4, T, Q> yyxz(const glm::vec<4, T, Q> &v) {
+
1521  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.z);
+
1522  }
+
1523 
+
1524  // yyxw
+
1525  template<typename T, qualifier Q>
+
1526  GLM_INLINE glm::vec<4, T, Q> yyxw(const glm::vec<4, T, Q> &v) {
+
1527  return glm::vec<4, T, Q>(v.y, v.y, v.x, v.w);
+
1528  }
+
1529 
+
1530  // yyyx
+
1531  template<typename T, qualifier Q>
+
1532  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<2, T, Q> &v) {
+
1533  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
+
1534  }
+
1535 
+
1536  template<typename T, qualifier Q>
+
1537  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<3, T, Q> &v) {
+
1538  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
+
1539  }
+
1540 
+
1541  template<typename T, qualifier Q>
+
1542  GLM_INLINE glm::vec<4, T, Q> yyyx(const glm::vec<4, T, Q> &v) {
+
1543  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.x);
+
1544  }
+
1545 
+
1546  // yyyy
+
1547  template<typename T, qualifier Q>
+
1548  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<2, T, Q> &v) {
+
1549  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
+
1550  }
+
1551 
+
1552  template<typename T, qualifier Q>
+
1553  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<3, T, Q> &v) {
+
1554  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
+
1555  }
+
1556 
+
1557  template<typename T, qualifier Q>
+
1558  GLM_INLINE glm::vec<4, T, Q> yyyy(const glm::vec<4, T, Q> &v) {
+
1559  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.y);
+
1560  }
+
1561 
+
1562  // yyyz
+
1563  template<typename T, qualifier Q>
+
1564  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<3, T, Q> &v) {
+
1565  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
+
1566  }
+
1567 
+
1568  template<typename T, qualifier Q>
+
1569  GLM_INLINE glm::vec<4, T, Q> yyyz(const glm::vec<4, T, Q> &v) {
+
1570  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.z);
+
1571  }
+
1572 
+
1573  // yyyw
+
1574  template<typename T, qualifier Q>
+
1575  GLM_INLINE glm::vec<4, T, Q> yyyw(const glm::vec<4, T, Q> &v) {
+
1576  return glm::vec<4, T, Q>(v.y, v.y, v.y, v.w);
+
1577  }
+
1578 
+
1579  // yyzx
+
1580  template<typename T, qualifier Q>
+
1581  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<3, T, Q> &v) {
+
1582  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
+
1583  }
+
1584 
+
1585  template<typename T, qualifier Q>
+
1586  GLM_INLINE glm::vec<4, T, Q> yyzx(const glm::vec<4, T, Q> &v) {
+
1587  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.x);
+
1588  }
+
1589 
+
1590  // yyzy
+
1591  template<typename T, qualifier Q>
+
1592  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<3, T, Q> &v) {
+
1593  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
+
1594  }
+
1595 
+
1596  template<typename T, qualifier Q>
+
1597  GLM_INLINE glm::vec<4, T, Q> yyzy(const glm::vec<4, T, Q> &v) {
+
1598  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.y);
+
1599  }
+
1600 
+
1601  // yyzz
+
1602  template<typename T, qualifier Q>
+
1603  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<3, T, Q> &v) {
+
1604  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
+
1605  }
+
1606 
+
1607  template<typename T, qualifier Q>
+
1608  GLM_INLINE glm::vec<4, T, Q> yyzz(const glm::vec<4, T, Q> &v) {
+
1609  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.z);
+
1610  }
+
1611 
+
1612  // yyzw
+
1613  template<typename T, qualifier Q>
+
1614  GLM_INLINE glm::vec<4, T, Q> yyzw(const glm::vec<4, T, Q> &v) {
+
1615  return glm::vec<4, T, Q>(v.y, v.y, v.z, v.w);
+
1616  }
+
1617 
+
1618  // yywx
+
1619  template<typename T, qualifier Q>
+
1620  GLM_INLINE glm::vec<4, T, Q> yywx(const glm::vec<4, T, Q> &v) {
+
1621  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.x);
+
1622  }
+
1623 
+
1624  // yywy
+
1625  template<typename T, qualifier Q>
+
1626  GLM_INLINE glm::vec<4, T, Q> yywy(const glm::vec<4, T, Q> &v) {
+
1627  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.y);
+
1628  }
+
1629 
+
1630  // yywz
+
1631  template<typename T, qualifier Q>
+
1632  GLM_INLINE glm::vec<4, T, Q> yywz(const glm::vec<4, T, Q> &v) {
+
1633  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.z);
+
1634  }
+
1635 
+
1636  // yyww
+
1637  template<typename T, qualifier Q>
+
1638  GLM_INLINE glm::vec<4, T, Q> yyww(const glm::vec<4, T, Q> &v) {
+
1639  return glm::vec<4, T, Q>(v.y, v.y, v.w, v.w);
+
1640  }
+
1641 
+
1642  // yzxx
+
1643  template<typename T, qualifier Q>
+
1644  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<3, T, Q> &v) {
+
1645  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
+
1646  }
+
1647 
+
1648  template<typename T, qualifier Q>
+
1649  GLM_INLINE glm::vec<4, T, Q> yzxx(const glm::vec<4, T, Q> &v) {
+
1650  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.x);
+
1651  }
+
1652 
+
1653  // yzxy
+
1654  template<typename T, qualifier Q>
+
1655  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<3, T, Q> &v) {
+
1656  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
+
1657  }
+
1658 
+
1659  template<typename T, qualifier Q>
+
1660  GLM_INLINE glm::vec<4, T, Q> yzxy(const glm::vec<4, T, Q> &v) {
+
1661  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.y);
+
1662  }
+
1663 
+
1664  // yzxz
+
1665  template<typename T, qualifier Q>
+
1666  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<3, T, Q> &v) {
+
1667  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
+
1668  }
+
1669 
+
1670  template<typename T, qualifier Q>
+
1671  GLM_INLINE glm::vec<4, T, Q> yzxz(const glm::vec<4, T, Q> &v) {
+
1672  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.z);
+
1673  }
+
1674 
+
1675  // yzxw
+
1676  template<typename T, qualifier Q>
+
1677  GLM_INLINE glm::vec<4, T, Q> yzxw(const glm::vec<4, T, Q> &v) {
+
1678  return glm::vec<4, T, Q>(v.y, v.z, v.x, v.w);
+
1679  }
+
1680 
+
1681  // yzyx
+
1682  template<typename T, qualifier Q>
+
1683  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<3, T, Q> &v) {
+
1684  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
+
1685  }
+
1686 
+
1687  template<typename T, qualifier Q>
+
1688  GLM_INLINE glm::vec<4, T, Q> yzyx(const glm::vec<4, T, Q> &v) {
+
1689  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.x);
+
1690  }
+
1691 
+
1692  // yzyy
+
1693  template<typename T, qualifier Q>
+
1694  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<3, T, Q> &v) {
+
1695  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
+
1696  }
+
1697 
+
1698  template<typename T, qualifier Q>
+
1699  GLM_INLINE glm::vec<4, T, Q> yzyy(const glm::vec<4, T, Q> &v) {
+
1700  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.y);
+
1701  }
+
1702 
+
1703  // yzyz
+
1704  template<typename T, qualifier Q>
+
1705  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<3, T, Q> &v) {
+
1706  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
+
1707  }
+
1708 
+
1709  template<typename T, qualifier Q>
+
1710  GLM_INLINE glm::vec<4, T, Q> yzyz(const glm::vec<4, T, Q> &v) {
+
1711  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.z);
+
1712  }
+
1713 
+
1714  // yzyw
+
1715  template<typename T, qualifier Q>
+
1716  GLM_INLINE glm::vec<4, T, Q> yzyw(const glm::vec<4, T, Q> &v) {
+
1717  return glm::vec<4, T, Q>(v.y, v.z, v.y, v.w);
+
1718  }
+
1719 
+
1720  // yzzx
+
1721  template<typename T, qualifier Q>
+
1722  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<3, T, Q> &v) {
+
1723  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
+
1724  }
+
1725 
+
1726  template<typename T, qualifier Q>
+
1727  GLM_INLINE glm::vec<4, T, Q> yzzx(const glm::vec<4, T, Q> &v) {
+
1728  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.x);
+
1729  }
+
1730 
+
1731  // yzzy
+
1732  template<typename T, qualifier Q>
+
1733  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<3, T, Q> &v) {
+
1734  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
+
1735  }
+
1736 
+
1737  template<typename T, qualifier Q>
+
1738  GLM_INLINE glm::vec<4, T, Q> yzzy(const glm::vec<4, T, Q> &v) {
+
1739  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.y);
+
1740  }
+
1741 
+
1742  // yzzz
+
1743  template<typename T, qualifier Q>
+
1744  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<3, T, Q> &v) {
+
1745  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
+
1746  }
+
1747 
+
1748  template<typename T, qualifier Q>
+
1749  GLM_INLINE glm::vec<4, T, Q> yzzz(const glm::vec<4, T, Q> &v) {
+
1750  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.z);
+
1751  }
+
1752 
+
1753  // yzzw
+
1754  template<typename T, qualifier Q>
+
1755  GLM_INLINE glm::vec<4, T, Q> yzzw(const glm::vec<4, T, Q> &v) {
+
1756  return glm::vec<4, T, Q>(v.y, v.z, v.z, v.w);
+
1757  }
+
1758 
+
1759  // yzwx
+
1760  template<typename T, qualifier Q>
+
1761  GLM_INLINE glm::vec<4, T, Q> yzwx(const glm::vec<4, T, Q> &v) {
+
1762  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.x);
+
1763  }
+
1764 
+
1765  // yzwy
+
1766  template<typename T, qualifier Q>
+
1767  GLM_INLINE glm::vec<4, T, Q> yzwy(const glm::vec<4, T, Q> &v) {
+
1768  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.y);
+
1769  }
+
1770 
+
1771  // yzwz
+
1772  template<typename T, qualifier Q>
+
1773  GLM_INLINE glm::vec<4, T, Q> yzwz(const glm::vec<4, T, Q> &v) {
+
1774  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.z);
+
1775  }
+
1776 
+
1777  // yzww
+
1778  template<typename T, qualifier Q>
+
1779  GLM_INLINE glm::vec<4, T, Q> yzww(const glm::vec<4, T, Q> &v) {
+
1780  return glm::vec<4, T, Q>(v.y, v.z, v.w, v.w);
+
1781  }
+
1782 
+
1783  // ywxx
+
1784  template<typename T, qualifier Q>
+
1785  GLM_INLINE glm::vec<4, T, Q> ywxx(const glm::vec<4, T, Q> &v) {
+
1786  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.x);
+
1787  }
+
1788 
+
1789  // ywxy
+
1790  template<typename T, qualifier Q>
+
1791  GLM_INLINE glm::vec<4, T, Q> ywxy(const glm::vec<4, T, Q> &v) {
+
1792  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.y);
+
1793  }
+
1794 
+
1795  // ywxz
+
1796  template<typename T, qualifier Q>
+
1797  GLM_INLINE glm::vec<4, T, Q> ywxz(const glm::vec<4, T, Q> &v) {
+
1798  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.z);
+
1799  }
+
1800 
+
1801  // ywxw
+
1802  template<typename T, qualifier Q>
+
1803  GLM_INLINE glm::vec<4, T, Q> ywxw(const glm::vec<4, T, Q> &v) {
+
1804  return glm::vec<4, T, Q>(v.y, v.w, v.x, v.w);
+
1805  }
+
1806 
+
1807  // ywyx
+
1808  template<typename T, qualifier Q>
+
1809  GLM_INLINE glm::vec<4, T, Q> ywyx(const glm::vec<4, T, Q> &v) {
+
1810  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.x);
+
1811  }
+
1812 
+
1813  // ywyy
+
1814  template<typename T, qualifier Q>
+
1815  GLM_INLINE glm::vec<4, T, Q> ywyy(const glm::vec<4, T, Q> &v) {
+
1816  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.y);
+
1817  }
+
1818 
+
1819  // ywyz
+
1820  template<typename T, qualifier Q>
+
1821  GLM_INLINE glm::vec<4, T, Q> ywyz(const glm::vec<4, T, Q> &v) {
+
1822  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.z);
+
1823  }
+
1824 
+
1825  // ywyw
+
1826  template<typename T, qualifier Q>
+
1827  GLM_INLINE glm::vec<4, T, Q> ywyw(const glm::vec<4, T, Q> &v) {
+
1828  return glm::vec<4, T, Q>(v.y, v.w, v.y, v.w);
+
1829  }
+
1830 
+
1831  // ywzx
+
1832  template<typename T, qualifier Q>
+
1833  GLM_INLINE glm::vec<4, T, Q> ywzx(const glm::vec<4, T, Q> &v) {
+
1834  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.x);
+
1835  }
+
1836 
+
1837  // ywzy
+
1838  template<typename T, qualifier Q>
+
1839  GLM_INLINE glm::vec<4, T, Q> ywzy(const glm::vec<4, T, Q> &v) {
+
1840  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.y);
+
1841  }
+
1842 
+
1843  // ywzz
+
1844  template<typename T, qualifier Q>
+
1845  GLM_INLINE glm::vec<4, T, Q> ywzz(const glm::vec<4, T, Q> &v) {
+
1846  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.z);
+
1847  }
+
1848 
+
1849  // ywzw
+
1850  template<typename T, qualifier Q>
+
1851  GLM_INLINE glm::vec<4, T, Q> ywzw(const glm::vec<4, T, Q> &v) {
+
1852  return glm::vec<4, T, Q>(v.y, v.w, v.z, v.w);
+
1853  }
+
1854 
+
1855  // ywwx
+
1856  template<typename T, qualifier Q>
+
1857  GLM_INLINE glm::vec<4, T, Q> ywwx(const glm::vec<4, T, Q> &v) {
+
1858  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.x);
+
1859  }
+
1860 
+
1861  // ywwy
+
1862  template<typename T, qualifier Q>
+
1863  GLM_INLINE glm::vec<4, T, Q> ywwy(const glm::vec<4, T, Q> &v) {
+
1864  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.y);
+
1865  }
+
1866 
+
1867  // ywwz
+
1868  template<typename T, qualifier Q>
+
1869  GLM_INLINE glm::vec<4, T, Q> ywwz(const glm::vec<4, T, Q> &v) {
+
1870  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.z);
+
1871  }
+
1872 
+
1873  // ywww
+
1874  template<typename T, qualifier Q>
+
1875  GLM_INLINE glm::vec<4, T, Q> ywww(const glm::vec<4, T, Q> &v) {
+
1876  return glm::vec<4, T, Q>(v.y, v.w, v.w, v.w);
+
1877  }
+
1878 
+
1879  // zxxx
+
1880  template<typename T, qualifier Q>
+
1881  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<3, T, Q> &v) {
+
1882  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
+
1883  }
+
1884 
+
1885  template<typename T, qualifier Q>
+
1886  GLM_INLINE glm::vec<4, T, Q> zxxx(const glm::vec<4, T, Q> &v) {
+
1887  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.x);
+
1888  }
+
1889 
+
1890  // zxxy
+
1891  template<typename T, qualifier Q>
+
1892  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<3, T, Q> &v) {
+
1893  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
+
1894  }
+
1895 
+
1896  template<typename T, qualifier Q>
+
1897  GLM_INLINE glm::vec<4, T, Q> zxxy(const glm::vec<4, T, Q> &v) {
+
1898  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.y);
+
1899  }
+
1900 
+
1901  // zxxz
+
1902  template<typename T, qualifier Q>
+
1903  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<3, T, Q> &v) {
+
1904  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
+
1905  }
+
1906 
+
1907  template<typename T, qualifier Q>
+
1908  GLM_INLINE glm::vec<4, T, Q> zxxz(const glm::vec<4, T, Q> &v) {
+
1909  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.z);
+
1910  }
+
1911 
+
1912  // zxxw
+
1913  template<typename T, qualifier Q>
+
1914  GLM_INLINE glm::vec<4, T, Q> zxxw(const glm::vec<4, T, Q> &v) {
+
1915  return glm::vec<4, T, Q>(v.z, v.x, v.x, v.w);
+
1916  }
+
1917 
+
1918  // zxyx
+
1919  template<typename T, qualifier Q>
+
1920  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<3, T, Q> &v) {
+
1921  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
+
1922  }
+
1923 
+
1924  template<typename T, qualifier Q>
+
1925  GLM_INLINE glm::vec<4, T, Q> zxyx(const glm::vec<4, T, Q> &v) {
+
1926  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.x);
+
1927  }
+
1928 
+
1929  // zxyy
+
1930  template<typename T, qualifier Q>
+
1931  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<3, T, Q> &v) {
+
1932  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
+
1933  }
+
1934 
+
1935  template<typename T, qualifier Q>
+
1936  GLM_INLINE glm::vec<4, T, Q> zxyy(const glm::vec<4, T, Q> &v) {
+
1937  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.y);
+
1938  }
+
1939 
+
1940  // zxyz
+
1941  template<typename T, qualifier Q>
+
1942  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<3, T, Q> &v) {
+
1943  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
+
1944  }
+
1945 
+
1946  template<typename T, qualifier Q>
+
1947  GLM_INLINE glm::vec<4, T, Q> zxyz(const glm::vec<4, T, Q> &v) {
+
1948  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.z);
+
1949  }
+
1950 
+
1951  // zxyw
+
1952  template<typename T, qualifier Q>
+
1953  GLM_INLINE glm::vec<4, T, Q> zxyw(const glm::vec<4, T, Q> &v) {
+
1954  return glm::vec<4, T, Q>(v.z, v.x, v.y, v.w);
+
1955  }
+
1956 
+
1957  // zxzx
+
1958  template<typename T, qualifier Q>
+
1959  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<3, T, Q> &v) {
+
1960  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
+
1961  }
+
1962 
+
1963  template<typename T, qualifier Q>
+
1964  GLM_INLINE glm::vec<4, T, Q> zxzx(const glm::vec<4, T, Q> &v) {
+
1965  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.x);
+
1966  }
+
1967 
+
1968  // zxzy
+
1969  template<typename T, qualifier Q>
+
1970  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<3, T, Q> &v) {
+
1971  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
+
1972  }
+
1973 
+
1974  template<typename T, qualifier Q>
+
1975  GLM_INLINE glm::vec<4, T, Q> zxzy(const glm::vec<4, T, Q> &v) {
+
1976  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.y);
+
1977  }
+
1978 
+
1979  // zxzz
+
1980  template<typename T, qualifier Q>
+
1981  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<3, T, Q> &v) {
+
1982  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
+
1983  }
+
1984 
+
1985  template<typename T, qualifier Q>
+
1986  GLM_INLINE glm::vec<4, T, Q> zxzz(const glm::vec<4, T, Q> &v) {
+
1987  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.z);
+
1988  }
+
1989 
+
1990  // zxzw
+
1991  template<typename T, qualifier Q>
+
1992  GLM_INLINE glm::vec<4, T, Q> zxzw(const glm::vec<4, T, Q> &v) {
+
1993  return glm::vec<4, T, Q>(v.z, v.x, v.z, v.w);
+
1994  }
+
1995 
+
1996  // zxwx
+
1997  template<typename T, qualifier Q>
+
1998  GLM_INLINE glm::vec<4, T, Q> zxwx(const glm::vec<4, T, Q> &v) {
+
1999  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.x);
+
2000  }
+
2001 
+
2002  // zxwy
+
2003  template<typename T, qualifier Q>
+
2004  GLM_INLINE glm::vec<4, T, Q> zxwy(const glm::vec<4, T, Q> &v) {
+
2005  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.y);
+
2006  }
+
2007 
+
2008  // zxwz
+
2009  template<typename T, qualifier Q>
+
2010  GLM_INLINE glm::vec<4, T, Q> zxwz(const glm::vec<4, T, Q> &v) {
+
2011  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.z);
+
2012  }
+
2013 
+
2014  // zxww
+
2015  template<typename T, qualifier Q>
+
2016  GLM_INLINE glm::vec<4, T, Q> zxww(const glm::vec<4, T, Q> &v) {
+
2017  return glm::vec<4, T, Q>(v.z, v.x, v.w, v.w);
+
2018  }
+
2019 
+
2020  // zyxx
+
2021  template<typename T, qualifier Q>
+
2022  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<3, T, Q> &v) {
+
2023  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
+
2024  }
+
2025 
+
2026  template<typename T, qualifier Q>
+
2027  GLM_INLINE glm::vec<4, T, Q> zyxx(const glm::vec<4, T, Q> &v) {
+
2028  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.x);
+
2029  }
+
2030 
+
2031  // zyxy
+
2032  template<typename T, qualifier Q>
+
2033  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<3, T, Q> &v) {
+
2034  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
+
2035  }
+
2036 
+
2037  template<typename T, qualifier Q>
+
2038  GLM_INLINE glm::vec<4, T, Q> zyxy(const glm::vec<4, T, Q> &v) {
+
2039  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.y);
+
2040  }
+
2041 
+
2042  // zyxz
+
2043  template<typename T, qualifier Q>
+
2044  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<3, T, Q> &v) {
+
2045  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
+
2046  }
+
2047 
+
2048  template<typename T, qualifier Q>
+
2049  GLM_INLINE glm::vec<4, T, Q> zyxz(const glm::vec<4, T, Q> &v) {
+
2050  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.z);
+
2051  }
+
2052 
+
2053  // zyxw
+
2054  template<typename T, qualifier Q>
+
2055  GLM_INLINE glm::vec<4, T, Q> zyxw(const glm::vec<4, T, Q> &v) {
+
2056  return glm::vec<4, T, Q>(v.z, v.y, v.x, v.w);
+
2057  }
+
2058 
+
2059  // zyyx
+
2060  template<typename T, qualifier Q>
+
2061  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<3, T, Q> &v) {
+
2062  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
+
2063  }
+
2064 
+
2065  template<typename T, qualifier Q>
+
2066  GLM_INLINE glm::vec<4, T, Q> zyyx(const glm::vec<4, T, Q> &v) {
+
2067  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.x);
+
2068  }
+
2069 
+
2070  // zyyy
+
2071  template<typename T, qualifier Q>
+
2072  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<3, T, Q> &v) {
+
2073  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
+
2074  }
+
2075 
+
2076  template<typename T, qualifier Q>
+
2077  GLM_INLINE glm::vec<4, T, Q> zyyy(const glm::vec<4, T, Q> &v) {
+
2078  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.y);
+
2079  }
+
2080 
+
2081  // zyyz
+
2082  template<typename T, qualifier Q>
+
2083  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<3, T, Q> &v) {
+
2084  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
+
2085  }
+
2086 
+
2087  template<typename T, qualifier Q>
+
2088  GLM_INLINE glm::vec<4, T, Q> zyyz(const glm::vec<4, T, Q> &v) {
+
2089  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.z);
+
2090  }
+
2091 
+
2092  // zyyw
+
2093  template<typename T, qualifier Q>
+
2094  GLM_INLINE glm::vec<4, T, Q> zyyw(const glm::vec<4, T, Q> &v) {
+
2095  return glm::vec<4, T, Q>(v.z, v.y, v.y, v.w);
+
2096  }
+
2097 
+
2098  // zyzx
+
2099  template<typename T, qualifier Q>
+
2100  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<3, T, Q> &v) {
+
2101  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
+
2102  }
+
2103 
+
2104  template<typename T, qualifier Q>
+
2105  GLM_INLINE glm::vec<4, T, Q> zyzx(const glm::vec<4, T, Q> &v) {
+
2106  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.x);
+
2107  }
+
2108 
+
2109  // zyzy
+
2110  template<typename T, qualifier Q>
+
2111  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<3, T, Q> &v) {
+
2112  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
+
2113  }
+
2114 
+
2115  template<typename T, qualifier Q>
+
2116  GLM_INLINE glm::vec<4, T, Q> zyzy(const glm::vec<4, T, Q> &v) {
+
2117  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.y);
+
2118  }
+
2119 
+
2120  // zyzz
+
2121  template<typename T, qualifier Q>
+
2122  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<3, T, Q> &v) {
+
2123  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
+
2124  }
+
2125 
+
2126  template<typename T, qualifier Q>
+
2127  GLM_INLINE glm::vec<4, T, Q> zyzz(const glm::vec<4, T, Q> &v) {
+
2128  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.z);
+
2129  }
+
2130 
+
2131  // zyzw
+
2132  template<typename T, qualifier Q>
+
2133  GLM_INLINE glm::vec<4, T, Q> zyzw(const glm::vec<4, T, Q> &v) {
+
2134  return glm::vec<4, T, Q>(v.z, v.y, v.z, v.w);
+
2135  }
+
2136 
+
2137  // zywx
+
2138  template<typename T, qualifier Q>
+
2139  GLM_INLINE glm::vec<4, T, Q> zywx(const glm::vec<4, T, Q> &v) {
+
2140  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.x);
+
2141  }
+
2142 
+
2143  // zywy
+
2144  template<typename T, qualifier Q>
+
2145  GLM_INLINE glm::vec<4, T, Q> zywy(const glm::vec<4, T, Q> &v) {
+
2146  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.y);
+
2147  }
+
2148 
+
2149  // zywz
+
2150  template<typename T, qualifier Q>
+
2151  GLM_INLINE glm::vec<4, T, Q> zywz(const glm::vec<4, T, Q> &v) {
+
2152  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.z);
+
2153  }
+
2154 
+
2155  // zyww
+
2156  template<typename T, qualifier Q>
+
2157  GLM_INLINE glm::vec<4, T, Q> zyww(const glm::vec<4, T, Q> &v) {
+
2158  return glm::vec<4, T, Q>(v.z, v.y, v.w, v.w);
+
2159  }
+
2160 
+
2161  // zzxx
+
2162  template<typename T, qualifier Q>
+
2163  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<3, T, Q> &v) {
+
2164  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
+
2165  }
+
2166 
+
2167  template<typename T, qualifier Q>
+
2168  GLM_INLINE glm::vec<4, T, Q> zzxx(const glm::vec<4, T, Q> &v) {
+
2169  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.x);
+
2170  }
+
2171 
+
2172  // zzxy
+
2173  template<typename T, qualifier Q>
+
2174  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<3, T, Q> &v) {
+
2175  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
+
2176  }
+
2177 
+
2178  template<typename T, qualifier Q>
+
2179  GLM_INLINE glm::vec<4, T, Q> zzxy(const glm::vec<4, T, Q> &v) {
+
2180  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.y);
+
2181  }
+
2182 
+
2183  // zzxz
+
2184  template<typename T, qualifier Q>
+
2185  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<3, T, Q> &v) {
+
2186  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
+
2187  }
+
2188 
+
2189  template<typename T, qualifier Q>
+
2190  GLM_INLINE glm::vec<4, T, Q> zzxz(const glm::vec<4, T, Q> &v) {
+
2191  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.z);
+
2192  }
+
2193 
+
2194  // zzxw
+
2195  template<typename T, qualifier Q>
+
2196  GLM_INLINE glm::vec<4, T, Q> zzxw(const glm::vec<4, T, Q> &v) {
+
2197  return glm::vec<4, T, Q>(v.z, v.z, v.x, v.w);
+
2198  }
+
2199 
+
2200  // zzyx
+
2201  template<typename T, qualifier Q>
+
2202  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<3, T, Q> &v) {
+
2203  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
+
2204  }
+
2205 
+
2206  template<typename T, qualifier Q>
+
2207  GLM_INLINE glm::vec<4, T, Q> zzyx(const glm::vec<4, T, Q> &v) {
+
2208  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.x);
+
2209  }
+
2210 
+
2211  // zzyy
+
2212  template<typename T, qualifier Q>
+
2213  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<3, T, Q> &v) {
+
2214  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
+
2215  }
+
2216 
+
2217  template<typename T, qualifier Q>
+
2218  GLM_INLINE glm::vec<4, T, Q> zzyy(const glm::vec<4, T, Q> &v) {
+
2219  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.y);
+
2220  }
+
2221 
+
2222  // zzyz
+
2223  template<typename T, qualifier Q>
+
2224  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<3, T, Q> &v) {
+
2225  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
+
2226  }
+
2227 
+
2228  template<typename T, qualifier Q>
+
2229  GLM_INLINE glm::vec<4, T, Q> zzyz(const glm::vec<4, T, Q> &v) {
+
2230  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.z);
+
2231  }
+
2232 
+
2233  // zzyw
+
2234  template<typename T, qualifier Q>
+
2235  GLM_INLINE glm::vec<4, T, Q> zzyw(const glm::vec<4, T, Q> &v) {
+
2236  return glm::vec<4, T, Q>(v.z, v.z, v.y, v.w);
+
2237  }
+
2238 
+
2239  // zzzx
+
2240  template<typename T, qualifier Q>
+
2241  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<3, T, Q> &v) {
+
2242  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
+
2243  }
+
2244 
+
2245  template<typename T, qualifier Q>
+
2246  GLM_INLINE glm::vec<4, T, Q> zzzx(const glm::vec<4, T, Q> &v) {
+
2247  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.x);
+
2248  }
+
2249 
+
2250  // zzzy
+
2251  template<typename T, qualifier Q>
+
2252  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<3, T, Q> &v) {
+
2253  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
+
2254  }
+
2255 
+
2256  template<typename T, qualifier Q>
+
2257  GLM_INLINE glm::vec<4, T, Q> zzzy(const glm::vec<4, T, Q> &v) {
+
2258  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.y);
+
2259  }
+
2260 
+
2261  // zzzz
+
2262  template<typename T, qualifier Q>
+
2263  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<3, T, Q> &v) {
+
2264  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
+
2265  }
+
2266 
+
2267  template<typename T, qualifier Q>
+
2268  GLM_INLINE glm::vec<4, T, Q> zzzz(const glm::vec<4, T, Q> &v) {
+
2269  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.z);
+
2270  }
+
2271 
+
2272  // zzzw
+
2273  template<typename T, qualifier Q>
+
2274  GLM_INLINE glm::vec<4, T, Q> zzzw(const glm::vec<4, T, Q> &v) {
+
2275  return glm::vec<4, T, Q>(v.z, v.z, v.z, v.w);
+
2276  }
+
2277 
+
2278  // zzwx
+
2279  template<typename T, qualifier Q>
+
2280  GLM_INLINE glm::vec<4, T, Q> zzwx(const glm::vec<4, T, Q> &v) {
+
2281  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.x);
+
2282  }
+
2283 
+
2284  // zzwy
+
2285  template<typename T, qualifier Q>
+
2286  GLM_INLINE glm::vec<4, T, Q> zzwy(const glm::vec<4, T, Q> &v) {
+
2287  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.y);
+
2288  }
+
2289 
+
2290  // zzwz
+
2291  template<typename T, qualifier Q>
+
2292  GLM_INLINE glm::vec<4, T, Q> zzwz(const glm::vec<4, T, Q> &v) {
+
2293  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.z);
+
2294  }
+
2295 
+
2296  // zzww
+
2297  template<typename T, qualifier Q>
+
2298  GLM_INLINE glm::vec<4, T, Q> zzww(const glm::vec<4, T, Q> &v) {
+
2299  return glm::vec<4, T, Q>(v.z, v.z, v.w, v.w);
+
2300  }
+
2301 
+
2302  // zwxx
+
2303  template<typename T, qualifier Q>
+
2304  GLM_INLINE glm::vec<4, T, Q> zwxx(const glm::vec<4, T, Q> &v) {
+
2305  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.x);
+
2306  }
+
2307 
+
2308  // zwxy
+
2309  template<typename T, qualifier Q>
+
2310  GLM_INLINE glm::vec<4, T, Q> zwxy(const glm::vec<4, T, Q> &v) {
+
2311  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.y);
+
2312  }
+
2313 
+
2314  // zwxz
+
2315  template<typename T, qualifier Q>
+
2316  GLM_INLINE glm::vec<4, T, Q> zwxz(const glm::vec<4, T, Q> &v) {
+
2317  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.z);
+
2318  }
+
2319 
+
2320  // zwxw
+
2321  template<typename T, qualifier Q>
+
2322  GLM_INLINE glm::vec<4, T, Q> zwxw(const glm::vec<4, T, Q> &v) {
+
2323  return glm::vec<4, T, Q>(v.z, v.w, v.x, v.w);
+
2324  }
+
2325 
+
2326  // zwyx
+
2327  template<typename T, qualifier Q>
+
2328  GLM_INLINE glm::vec<4, T, Q> zwyx(const glm::vec<4, T, Q> &v) {
+
2329  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.x);
+
2330  }
+
2331 
+
2332  // zwyy
+
2333  template<typename T, qualifier Q>
+
2334  GLM_INLINE glm::vec<4, T, Q> zwyy(const glm::vec<4, T, Q> &v) {
+
2335  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.y);
+
2336  }
+
2337 
+
2338  // zwyz
+
2339  template<typename T, qualifier Q>
+
2340  GLM_INLINE glm::vec<4, T, Q> zwyz(const glm::vec<4, T, Q> &v) {
+
2341  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.z);
+
2342  }
+
2343 
+
2344  // zwyw
+
2345  template<typename T, qualifier Q>
+
2346  GLM_INLINE glm::vec<4, T, Q> zwyw(const glm::vec<4, T, Q> &v) {
+
2347  return glm::vec<4, T, Q>(v.z, v.w, v.y, v.w);
+
2348  }
+
2349 
+
2350  // zwzx
+
2351  template<typename T, qualifier Q>
+
2352  GLM_INLINE glm::vec<4, T, Q> zwzx(const glm::vec<4, T, Q> &v) {
+
2353  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.x);
+
2354  }
+
2355 
+
2356  // zwzy
+
2357  template<typename T, qualifier Q>
+
2358  GLM_INLINE glm::vec<4, T, Q> zwzy(const glm::vec<4, T, Q> &v) {
+
2359  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.y);
+
2360  }
+
2361 
+
2362  // zwzz
+
2363  template<typename T, qualifier Q>
+
2364  GLM_INLINE glm::vec<4, T, Q> zwzz(const glm::vec<4, T, Q> &v) {
+
2365  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.z);
+
2366  }
+
2367 
+
2368  // zwzw
+
2369  template<typename T, qualifier Q>
+
2370  GLM_INLINE glm::vec<4, T, Q> zwzw(const glm::vec<4, T, Q> &v) {
+
2371  return glm::vec<4, T, Q>(v.z, v.w, v.z, v.w);
+
2372  }
+
2373 
+
2374  // zwwx
+
2375  template<typename T, qualifier Q>
+
2376  GLM_INLINE glm::vec<4, T, Q> zwwx(const glm::vec<4, T, Q> &v) {
+
2377  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.x);
+
2378  }
+
2379 
+
2380  // zwwy
+
2381  template<typename T, qualifier Q>
+
2382  GLM_INLINE glm::vec<4, T, Q> zwwy(const glm::vec<4, T, Q> &v) {
+
2383  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.y);
+
2384  }
+
2385 
+
2386  // zwwz
+
2387  template<typename T, qualifier Q>
+
2388  GLM_INLINE glm::vec<4, T, Q> zwwz(const glm::vec<4, T, Q> &v) {
+
2389  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.z);
+
2390  }
+
2391 
+
2392  // zwww
+
2393  template<typename T, qualifier Q>
+
2394  GLM_INLINE glm::vec<4, T, Q> zwww(const glm::vec<4, T, Q> &v) {
+
2395  return glm::vec<4, T, Q>(v.z, v.w, v.w, v.w);
+
2396  }
+
2397 
+
2398  // wxxx
+
2399  template<typename T, qualifier Q>
+
2400  GLM_INLINE glm::vec<4, T, Q> wxxx(const glm::vec<4, T, Q> &v) {
+
2401  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.x);
+
2402  }
+
2403 
+
2404  // wxxy
+
2405  template<typename T, qualifier Q>
+
2406  GLM_INLINE glm::vec<4, T, Q> wxxy(const glm::vec<4, T, Q> &v) {
+
2407  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.y);
+
2408  }
+
2409 
+
2410  // wxxz
+
2411  template<typename T, qualifier Q>
+
2412  GLM_INLINE glm::vec<4, T, Q> wxxz(const glm::vec<4, T, Q> &v) {
+
2413  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.z);
+
2414  }
+
2415 
+
2416  // wxxw
+
2417  template<typename T, qualifier Q>
+
2418  GLM_INLINE glm::vec<4, T, Q> wxxw(const glm::vec<4, T, Q> &v) {
+
2419  return glm::vec<4, T, Q>(v.w, v.x, v.x, v.w);
+
2420  }
+
2421 
+
2422  // wxyx
+
2423  template<typename T, qualifier Q>
+
2424  GLM_INLINE glm::vec<4, T, Q> wxyx(const glm::vec<4, T, Q> &v) {
+
2425  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.x);
+
2426  }
+
2427 
+
2428  // wxyy
+
2429  template<typename T, qualifier Q>
+
2430  GLM_INLINE glm::vec<4, T, Q> wxyy(const glm::vec<4, T, Q> &v) {
+
2431  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.y);
+
2432  }
+
2433 
+
2434  // wxyz
+
2435  template<typename T, qualifier Q>
+
2436  GLM_INLINE glm::vec<4, T, Q> wxyz(const glm::vec<4, T, Q> &v) {
+
2437  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.z);
+
2438  }
+
2439 
+
2440  // wxyw
+
2441  template<typename T, qualifier Q>
+
2442  GLM_INLINE glm::vec<4, T, Q> wxyw(const glm::vec<4, T, Q> &v) {
+
2443  return glm::vec<4, T, Q>(v.w, v.x, v.y, v.w);
+
2444  }
+
2445 
+
2446  // wxzx
+
2447  template<typename T, qualifier Q>
+
2448  GLM_INLINE glm::vec<4, T, Q> wxzx(const glm::vec<4, T, Q> &v) {
+
2449  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.x);
+
2450  }
+
2451 
+
2452  // wxzy
+
2453  template<typename T, qualifier Q>
+
2454  GLM_INLINE glm::vec<4, T, Q> wxzy(const glm::vec<4, T, Q> &v) {
+
2455  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.y);
+
2456  }
+
2457 
+
2458  // wxzz
+
2459  template<typename T, qualifier Q>
+
2460  GLM_INLINE glm::vec<4, T, Q> wxzz(const glm::vec<4, T, Q> &v) {
+
2461  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.z);
+
2462  }
+
2463 
+
2464  // wxzw
+
2465  template<typename T, qualifier Q>
+
2466  GLM_INLINE glm::vec<4, T, Q> wxzw(const glm::vec<4, T, Q> &v) {
+
2467  return glm::vec<4, T, Q>(v.w, v.x, v.z, v.w);
+
2468  }
+
2469 
+
2470  // wxwx
+
2471  template<typename T, qualifier Q>
+
2472  GLM_INLINE glm::vec<4, T, Q> wxwx(const glm::vec<4, T, Q> &v) {
+
2473  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.x);
+
2474  }
+
2475 
+
2476  // wxwy
+
2477  template<typename T, qualifier Q>
+
2478  GLM_INLINE glm::vec<4, T, Q> wxwy(const glm::vec<4, T, Q> &v) {
+
2479  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.y);
+
2480  }
+
2481 
+
2482  // wxwz
+
2483  template<typename T, qualifier Q>
+
2484  GLM_INLINE glm::vec<4, T, Q> wxwz(const glm::vec<4, T, Q> &v) {
+
2485  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.z);
+
2486  }
+
2487 
+
2488  // wxww
+
2489  template<typename T, qualifier Q>
+
2490  GLM_INLINE glm::vec<4, T, Q> wxww(const glm::vec<4, T, Q> &v) {
+
2491  return glm::vec<4, T, Q>(v.w, v.x, v.w, v.w);
+
2492  }
+
2493 
+
2494  // wyxx
+
2495  template<typename T, qualifier Q>
+
2496  GLM_INLINE glm::vec<4, T, Q> wyxx(const glm::vec<4, T, Q> &v) {
+
2497  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.x);
+
2498  }
+
2499 
+
2500  // wyxy
+
2501  template<typename T, qualifier Q>
+
2502  GLM_INLINE glm::vec<4, T, Q> wyxy(const glm::vec<4, T, Q> &v) {
+
2503  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.y);
+
2504  }
+
2505 
+
2506  // wyxz
+
2507  template<typename T, qualifier Q>
+
2508  GLM_INLINE glm::vec<4, T, Q> wyxz(const glm::vec<4, T, Q> &v) {
+
2509  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.z);
+
2510  }
+
2511 
+
2512  // wyxw
+
2513  template<typename T, qualifier Q>
+
2514  GLM_INLINE glm::vec<4, T, Q> wyxw(const glm::vec<4, T, Q> &v) {
+
2515  return glm::vec<4, T, Q>(v.w, v.y, v.x, v.w);
+
2516  }
+
2517 
+
2518  // wyyx
+
2519  template<typename T, qualifier Q>
+
2520  GLM_INLINE glm::vec<4, T, Q> wyyx(const glm::vec<4, T, Q> &v) {
+
2521  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.x);
+
2522  }
+
2523 
+
2524  // wyyy
+
2525  template<typename T, qualifier Q>
+
2526  GLM_INLINE glm::vec<4, T, Q> wyyy(const glm::vec<4, T, Q> &v) {
+
2527  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.y);
+
2528  }
+
2529 
+
2530  // wyyz
+
2531  template<typename T, qualifier Q>
+
2532  GLM_INLINE glm::vec<4, T, Q> wyyz(const glm::vec<4, T, Q> &v) {
+
2533  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.z);
+
2534  }
+
2535 
+
2536  // wyyw
+
2537  template<typename T, qualifier Q>
+
2538  GLM_INLINE glm::vec<4, T, Q> wyyw(const glm::vec<4, T, Q> &v) {
+
2539  return glm::vec<4, T, Q>(v.w, v.y, v.y, v.w);
+
2540  }
+
2541 
+
2542  // wyzx
+
2543  template<typename T, qualifier Q>
+
2544  GLM_INLINE glm::vec<4, T, Q> wyzx(const glm::vec<4, T, Q> &v) {
+
2545  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.x);
+
2546  }
+
2547 
+
2548  // wyzy
+
2549  template<typename T, qualifier Q>
+
2550  GLM_INLINE glm::vec<4, T, Q> wyzy(const glm::vec<4, T, Q> &v) {
+
2551  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.y);
+
2552  }
+
2553 
+
2554  // wyzz
+
2555  template<typename T, qualifier Q>
+
2556  GLM_INLINE glm::vec<4, T, Q> wyzz(const glm::vec<4, T, Q> &v) {
+
2557  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.z);
+
2558  }
+
2559 
+
2560  // wyzw
+
2561  template<typename T, qualifier Q>
+
2562  GLM_INLINE glm::vec<4, T, Q> wyzw(const glm::vec<4, T, Q> &v) {
+
2563  return glm::vec<4, T, Q>(v.w, v.y, v.z, v.w);
+
2564  }
+
2565 
+
2566  // wywx
+
2567  template<typename T, qualifier Q>
+
2568  GLM_INLINE glm::vec<4, T, Q> wywx(const glm::vec<4, T, Q> &v) {
+
2569  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.x);
+
2570  }
+
2571 
+
2572  // wywy
+
2573  template<typename T, qualifier Q>
+
2574  GLM_INLINE glm::vec<4, T, Q> wywy(const glm::vec<4, T, Q> &v) {
+
2575  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.y);
+
2576  }
+
2577 
+
2578  // wywz
+
2579  template<typename T, qualifier Q>
+
2580  GLM_INLINE glm::vec<4, T, Q> wywz(const glm::vec<4, T, Q> &v) {
+
2581  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.z);
+
2582  }
+
2583 
+
2584  // wyww
+
2585  template<typename T, qualifier Q>
+
2586  GLM_INLINE glm::vec<4, T, Q> wyww(const glm::vec<4, T, Q> &v) {
+
2587  return glm::vec<4, T, Q>(v.w, v.y, v.w, v.w);
+
2588  }
+
2589 
+
2590  // wzxx
+
2591  template<typename T, qualifier Q>
+
2592  GLM_INLINE glm::vec<4, T, Q> wzxx(const glm::vec<4, T, Q> &v) {
+
2593  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.x);
+
2594  }
+
2595 
+
2596  // wzxy
+
2597  template<typename T, qualifier Q>
+
2598  GLM_INLINE glm::vec<4, T, Q> wzxy(const glm::vec<4, T, Q> &v) {
+
2599  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.y);
+
2600  }
+
2601 
+
2602  // wzxz
+
2603  template<typename T, qualifier Q>
+
2604  GLM_INLINE glm::vec<4, T, Q> wzxz(const glm::vec<4, T, Q> &v) {
+
2605  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.z);
+
2606  }
+
2607 
+
2608  // wzxw
+
2609  template<typename T, qualifier Q>
+
2610  GLM_INLINE glm::vec<4, T, Q> wzxw(const glm::vec<4, T, Q> &v) {
+
2611  return glm::vec<4, T, Q>(v.w, v.z, v.x, v.w);
+
2612  }
+
2613 
+
2614  // wzyx
+
2615  template<typename T, qualifier Q>
+
2616  GLM_INLINE glm::vec<4, T, Q> wzyx(const glm::vec<4, T, Q> &v) {
+
2617  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.x);
+
2618  }
+
2619 
+
2620  // wzyy
+
2621  template<typename T, qualifier Q>
+
2622  GLM_INLINE glm::vec<4, T, Q> wzyy(const glm::vec<4, T, Q> &v) {
+
2623  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.y);
+
2624  }
+
2625 
+
2626  // wzyz
+
2627  template<typename T, qualifier Q>
+
2628  GLM_INLINE glm::vec<4, T, Q> wzyz(const glm::vec<4, T, Q> &v) {
+
2629  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.z);
+
2630  }
+
2631 
+
2632  // wzyw
+
2633  template<typename T, qualifier Q>
+
2634  GLM_INLINE glm::vec<4, T, Q> wzyw(const glm::vec<4, T, Q> &v) {
+
2635  return glm::vec<4, T, Q>(v.w, v.z, v.y, v.w);
+
2636  }
+
2637 
+
2638  // wzzx
+
2639  template<typename T, qualifier Q>
+
2640  GLM_INLINE glm::vec<4, T, Q> wzzx(const glm::vec<4, T, Q> &v) {
+
2641  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.x);
+
2642  }
+
2643 
+
2644  // wzzy
+
2645  template<typename T, qualifier Q>
+
2646  GLM_INLINE glm::vec<4, T, Q> wzzy(const glm::vec<4, T, Q> &v) {
+
2647  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.y);
+
2648  }
+
2649 
+
2650  // wzzz
+
2651  template<typename T, qualifier Q>
+
2652  GLM_INLINE glm::vec<4, T, Q> wzzz(const glm::vec<4, T, Q> &v) {
+
2653  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.z);
+
2654  }
+
2655 
+
2656  // wzzw
+
2657  template<typename T, qualifier Q>
+
2658  GLM_INLINE glm::vec<4, T, Q> wzzw(const glm::vec<4, T, Q> &v) {
+
2659  return glm::vec<4, T, Q>(v.w, v.z, v.z, v.w);
+
2660  }
+
2661 
+
2662  // wzwx
+
2663  template<typename T, qualifier Q>
+
2664  GLM_INLINE glm::vec<4, T, Q> wzwx(const glm::vec<4, T, Q> &v) {
+
2665  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.x);
+
2666  }
+
2667 
+
2668  // wzwy
+
2669  template<typename T, qualifier Q>
+
2670  GLM_INLINE glm::vec<4, T, Q> wzwy(const glm::vec<4, T, Q> &v) {
+
2671  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.y);
+
2672  }
+
2673 
+
2674  // wzwz
+
2675  template<typename T, qualifier Q>
+
2676  GLM_INLINE glm::vec<4, T, Q> wzwz(const glm::vec<4, T, Q> &v) {
+
2677  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.z);
+
2678  }
+
2679 
+
2680  // wzww
+
2681  template<typename T, qualifier Q>
+
2682  GLM_INLINE glm::vec<4, T, Q> wzww(const glm::vec<4, T, Q> &v) {
+
2683  return glm::vec<4, T, Q>(v.w, v.z, v.w, v.w);
+
2684  }
+
2685 
+
2686  // wwxx
+
2687  template<typename T, qualifier Q>
+
2688  GLM_INLINE glm::vec<4, T, Q> wwxx(const glm::vec<4, T, Q> &v) {
+
2689  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.x);
+
2690  }
+
2691 
+
2692  // wwxy
+
2693  template<typename T, qualifier Q>
+
2694  GLM_INLINE glm::vec<4, T, Q> wwxy(const glm::vec<4, T, Q> &v) {
+
2695  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.y);
+
2696  }
+
2697 
+
2698  // wwxz
+
2699  template<typename T, qualifier Q>
+
2700  GLM_INLINE glm::vec<4, T, Q> wwxz(const glm::vec<4, T, Q> &v) {
+
2701  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.z);
+
2702  }
+
2703 
+
2704  // wwxw
+
2705  template<typename T, qualifier Q>
+
2706  GLM_INLINE glm::vec<4, T, Q> wwxw(const glm::vec<4, T, Q> &v) {
+
2707  return glm::vec<4, T, Q>(v.w, v.w, v.x, v.w);
+
2708  }
+
2709 
+
2710  // wwyx
+
2711  template<typename T, qualifier Q>
+
2712  GLM_INLINE glm::vec<4, T, Q> wwyx(const glm::vec<4, T, Q> &v) {
+
2713  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.x);
+
2714  }
+
2715 
+
2716  // wwyy
+
2717  template<typename T, qualifier Q>
+
2718  GLM_INLINE glm::vec<4, T, Q> wwyy(const glm::vec<4, T, Q> &v) {
+
2719  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.y);
+
2720  }
+
2721 
+
2722  // wwyz
+
2723  template<typename T, qualifier Q>
+
2724  GLM_INLINE glm::vec<4, T, Q> wwyz(const glm::vec<4, T, Q> &v) {
+
2725  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.z);
+
2726  }
+
2727 
+
2728  // wwyw
+
2729  template<typename T, qualifier Q>
+
2730  GLM_INLINE glm::vec<4, T, Q> wwyw(const glm::vec<4, T, Q> &v) {
+
2731  return glm::vec<4, T, Q>(v.w, v.w, v.y, v.w);
+
2732  }
+
2733 
+
2734  // wwzx
+
2735  template<typename T, qualifier Q>
+
2736  GLM_INLINE glm::vec<4, T, Q> wwzx(const glm::vec<4, T, Q> &v) {
+
2737  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.x);
+
2738  }
+
2739 
+
2740  // wwzy
+
2741  template<typename T, qualifier Q>
+
2742  GLM_INLINE glm::vec<4, T, Q> wwzy(const glm::vec<4, T, Q> &v) {
+
2743  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.y);
+
2744  }
+
2745 
+
2746  // wwzz
+
2747  template<typename T, qualifier Q>
+
2748  GLM_INLINE glm::vec<4, T, Q> wwzz(const glm::vec<4, T, Q> &v) {
+
2749  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.z);
+
2750  }
+
2751 
+
2752  // wwzw
+
2753  template<typename T, qualifier Q>
+
2754  GLM_INLINE glm::vec<4, T, Q> wwzw(const glm::vec<4, T, Q> &v) {
+
2755  return glm::vec<4, T, Q>(v.w, v.w, v.z, v.w);
+
2756  }
+
2757 
+
2758  // wwwx
+
2759  template<typename T, qualifier Q>
+
2760  GLM_INLINE glm::vec<4, T, Q> wwwx(const glm::vec<4, T, Q> &v) {
+
2761  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.x);
+
2762  }
+
2763 
+
2764  // wwwy
+
2765  template<typename T, qualifier Q>
+
2766  GLM_INLINE glm::vec<4, T, Q> wwwy(const glm::vec<4, T, Q> &v) {
+
2767  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.y);
+
2768  }
+
2769 
+
2770  // wwwz
+
2771  template<typename T, qualifier Q>
+
2772  GLM_INLINE glm::vec<4, T, Q> wwwz(const glm::vec<4, T, Q> &v) {
+
2773  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.z);
+
2774  }
+
2775 
+
2776  // wwww
+
2777  template<typename T, qualifier Q>
+
2778  GLM_INLINE glm::vec<4, T, Q> wwww(const glm::vec<4, T, Q> &v) {
+
2779  return glm::vec<4, T, Q>(v.w, v.w, v.w, v.w);
+
2780  }
+
2781 
+
2782 }
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00188.html b/external/include/glm-0.9.9.8/doc/api/a00188.html index 2435a441b2..71d4ce3323 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00188.html +++ b/external/include/glm-0.9.9.8/doc/api/a00188.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: vector_angle.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_angle.hpp File Reference
-
-
- -

GLM_GTX_vector_angle -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T angle (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the absolute angle between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)
 Returns the oriented angle between two 2d vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
 Returns the oriented angle between two 3d vectors based from a reference axis. More...
 
-

Detailed Description

-

GLM_GTX_vector_angle

-
See also
Core features (dependence)
-
-GLM_GTX_quaternion (dependence)
-
-gtx_epsilon (dependence)
- -

Definition in file vector_angle.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_angle.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_angle.hpp File Reference
+
+
+ +

GLM_GTX_vector_angle +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T angle (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the absolute angle between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)
 Returns the oriented angle between two 2d vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
 Returns the oriented angle between two 3d vectors based from a reference axis. More...
 
+

Detailed Description

+

GLM_GTX_vector_angle

+
See also
Core features (dependence)
+
+GLM_GTX_quaternion (dependence)
+
+gtx_epsilon (dependence)
+ +

Definition in file vector_angle.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00188_source.html b/external/include/glm-0.9.9.8/doc/api/a00188_source.html index 628d8fb203..e22f1d22fc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00188_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00188_source.html @@ -1,134 +1,134 @@ - - - - - - -0.9.9 API documentation: vector_angle.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_angle.hpp
-
-
-Go to the documentation of this file.
1 
-
15 #pragma once
-
16 
-
17 // Dependency:
-
18 #include "../glm.hpp"
-
19 #include "../gtc/epsilon.hpp"
-
20 #include "../gtx/quaternion.hpp"
-
21 #include "../gtx/rotate_vector.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # ifndef GLM_ENABLE_EXPERIMENTAL
-
25 # pragma message("GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
26 # else
-
27 # pragma message("GLM: GLM_GTX_vector_angle extension included")
-
28 # endif
-
29 #endif
-
30 
-
31 namespace glm
-
32 {
-
35 
-
39  template<length_t L, typename T, qualifier Q>
-
40  GLM_FUNC_DECL T angle(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
41 
-
45  template<typename T, qualifier Q>
-
46  GLM_FUNC_DECL T orientedAngle(vec<2, T, Q> const& x, vec<2, T, Q> const& y);
-
47 
-
51  template<typename T, qualifier Q>
-
52  GLM_FUNC_DECL T orientedAngle(vec<3, T, Q> const& x, vec<3, T, Q> const& y, vec<3, T, Q> const& ref);
-
53 
-
55 }// namespace glm
-
56 
-
57 #include "vector_angle.inl"
-
GLM_FUNC_DECL T orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
Returns the oriented angle between two 3d vectors based from a reference axis.
-
GLM_FUNC_DECL T angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the absolute angle between two vectors.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_angle.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_angle.hpp
+
+
+Go to the documentation of this file.
1 
+
15 #pragma once
+
16 
+
17 // Dependency:
+
18 #include "../glm.hpp"
+
19 #include "../gtc/epsilon.hpp"
+
20 #include "../gtx/quaternion.hpp"
+
21 #include "../gtx/rotate_vector.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # ifndef GLM_ENABLE_EXPERIMENTAL
+
25 # pragma message("GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
26 # else
+
27 # pragma message("GLM: GLM_GTX_vector_angle extension included")
+
28 # endif
+
29 #endif
+
30 
+
31 namespace glm
+
32 {
+
35 
+
39  template<length_t L, typename T, qualifier Q>
+
40  GLM_FUNC_DECL T angle(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
41 
+
45  template<typename T, qualifier Q>
+
46  GLM_FUNC_DECL T orientedAngle(vec<2, T, Q> const& x, vec<2, T, Q> const& y);
+
47 
+
51  template<typename T, qualifier Q>
+
52  GLM_FUNC_DECL T orientedAngle(vec<3, T, Q> const& x, vec<3, T, Q> const& y, vec<3, T, Q> const& ref);
+
53 
+
55 }// namespace glm
+
56 
+
57 #include "vector_angle.inl"
+
GLM_FUNC_DECL T orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
Returns the oriented angle between two 3d vectors based from a reference axis.
+
GLM_FUNC_DECL T angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the absolute angle between two vectors.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00189.html b/external/include/glm-0.9.9.8/doc/api/a00189.html index 18e3c68b17..94850f77c4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00189.html +++ b/external/include/glm-0.9.9.8/doc/api/a00189.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_bool1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool1.hpp File Reference
-
-
- -

GLM_EXT_vector_bool1 -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef vec< 1, bool, defaultp > bvec1
 1 components vector of boolean.
 
-

Detailed Description

-

GLM_EXT_vector_bool1

- -

Definition in file vector_bool1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool1.hpp File Reference
+
+
+ +

GLM_EXT_vector_bool1 +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef vec< 1, bool, defaultp > bvec1
 1 components vector of boolean.
 
+

Detailed Description

+

GLM_EXT_vector_bool1

+ +

Definition in file vector_bool1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00189_source.html b/external/include/glm-0.9.9.8/doc/api/a00189_source.html index 6059ff935b..778805d721 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00189_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00189_source.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: vector_bool1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool1.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/type_vec1.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # pragma message("GLM: GLM_EXT_vector_bool1 extension included")
-
19 #endif
-
20 
-
21 namespace glm
-
22 {
-
25 
-
27  typedef vec<1, bool, defaultp> bvec1;
-
28 
-
30 }//namespace glm
-
vec< 1, bool, defaultp > bvec1
1 components vector of boolean.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool1.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/type_vec1.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # pragma message("GLM: GLM_EXT_vector_bool1 extension included")
+
19 #endif
+
20 
+
21 namespace glm
+
22 {
+
25 
+
27  typedef vec<1, bool, defaultp> bvec1;
+
28 
+
30 }//namespace glm
+
vec< 1, bool, defaultp > bvec1
1 components vector of boolean.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00190.html b/external/include/glm-0.9.9.8/doc/api/a00190.html index bcb671992f..24e2f1bfbe 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00190.html +++ b/external/include/glm-0.9.9.8/doc/api/a00190.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: vector_bool1_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool1_precision.hpp File Reference
-
-
- -

GLM_EXT_vector_bool1_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, bool, highp > highp_bvec1
 1 component vector of bool values.
 
-typedef vec< 1, bool, lowp > lowp_bvec1
 1 component vector of bool values.
 
-typedef vec< 1, bool, mediump > mediump_bvec1
 1 component vector of bool values.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool1_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool1_precision.hpp File Reference
+
+
+ +

GLM_EXT_vector_bool1_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, bool, highp > highp_bvec1
 1 component vector of bool values.
 
+typedef vec< 1, bool, lowp > lowp_bvec1
 1 component vector of bool values.
 
+typedef vec< 1, bool, mediump > mediump_bvec1
 1 component vector of bool values.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00190_source.html b/external/include/glm-0.9.9.8/doc/api/a00190_source.html index b1038902fe..e72e08c50f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00190_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00190_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vector_bool1_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool1_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 #include "../detail/type_vec1.hpp"
-
14 
-
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
16 # pragma message("GLM: GLM_EXT_vector_bool1_precision extension included")
-
17 #endif
-
18 
-
19 namespace glm
-
20 {
-
23 
-
25  typedef vec<1, bool, highp> highp_bvec1;
-
26 
-
28  typedef vec<1, bool, mediump> mediump_bvec1;
-
29 
-
31  typedef vec<1, bool, lowp> lowp_bvec1;
-
32 
-
34 }//namespace glm
-
vec< 1, bool, highp > highp_bvec1
1 component vector of bool values.
-
vec< 1, bool, mediump > mediump_bvec1
1 component vector of bool values.
-
vec< 1, bool, lowp > lowp_bvec1
1 component vector of bool values.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool1_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool1_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 #include "../detail/type_vec1.hpp"
+
14 
+
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
16 # pragma message("GLM: GLM_EXT_vector_bool1_precision extension included")
+
17 #endif
+
18 
+
19 namespace glm
+
20 {
+
23 
+
25  typedef vec<1, bool, highp> highp_bvec1;
+
26 
+
28  typedef vec<1, bool, mediump> mediump_bvec1;
+
29 
+
31  typedef vec<1, bool, lowp> lowp_bvec1;
+
32 
+
34 }//namespace glm
+
vec< 1, bool, highp > highp_bvec1
1 component vector of bool values.
+
vec< 1, bool, mediump > mediump_bvec1
1 component vector of bool values.
+
vec< 1, bool, lowp > lowp_bvec1
1 component vector of bool values.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00191.html b/external/include/glm-0.9.9.8/doc/api/a00191.html index 82efdfb25d..9acc92d2da 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00191.html +++ b/external/include/glm-0.9.9.8/doc/api/a00191.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 2, bool, defaultp > bvec2
 2 components vector of boolean. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 2, bool, defaultp > bvec2
 2 components vector of boolean. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00191_source.html b/external/include/glm-0.9.9.8/doc/api/a00191_source.html index 04ea5bc119..99f0500bee 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00191_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00191_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_bool2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<2, bool, defaultp> bvec2;
-
16 
-
18 }//namespace glm
-
vec< 2, bool, defaultp > bvec2
2 components vector of boolean.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<2, bool, defaultp> bvec2;
+
16 
+
18 }//namespace glm
+
vec< 2, bool, defaultp > bvec2
2 components vector of boolean.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00192.html b/external/include/glm-0.9.9.8/doc/api/a00192.html index efc1241cf0..6e88bf0f9d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00192.html +++ b/external/include/glm-0.9.9.8/doc/api/a00192.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_bool2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 2, bool, highp > highp_bvec2
 2 components vector of high qualifier bool numbers. More...
 
typedef vec< 2, bool, lowp > lowp_bvec2
 2 components vector of low qualifier bool numbers. More...
 
typedef vec< 2, bool, mediump > mediump_bvec2
 2 components vector of medium qualifier bool numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool2_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 2, bool, highp > highp_bvec2
 2 components vector of high qualifier bool numbers. More...
 
typedef vec< 2, bool, lowp > lowp_bvec2
 2 components vector of low qualifier bool numbers. More...
 
typedef vec< 2, bool, mediump > mediump_bvec2
 2 components vector of medium qualifier bool numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool2_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00192_source.html b/external/include/glm-0.9.9.8/doc/api/a00192_source.html index faabec4cc3..5948879433 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00192_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00192_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<2, bool, highp> highp_bvec2;
-
17 
-
22  typedef vec<2, bool, mediump> mediump_bvec2;
-
23 
-
28  typedef vec<2, bool, lowp> lowp_bvec2;
-
29 
-
31 }//namespace glm
-
vec< 2, bool, highp > highp_bvec2
2 components vector of high qualifier bool numbers.
-
vec< 2, bool, mediump > mediump_bvec2
2 components vector of medium qualifier bool numbers.
-
vec< 2, bool, lowp > lowp_bvec2
2 components vector of low qualifier bool numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<2, bool, highp> highp_bvec2;
+
17 
+
22  typedef vec<2, bool, mediump> mediump_bvec2;
+
23 
+
28  typedef vec<2, bool, lowp> lowp_bvec2;
+
29 
+
31 }//namespace glm
+
vec< 2, bool, highp > highp_bvec2
2 components vector of high qualifier bool numbers.
+
vec< 2, bool, mediump > mediump_bvec2
2 components vector of medium qualifier bool numbers.
+
vec< 2, bool, lowp > lowp_bvec2
2 components vector of low qualifier bool numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00193.html b/external/include/glm-0.9.9.8/doc/api/a00193.html index bebf208d8c..5b14f839bd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00193.html +++ b/external/include/glm-0.9.9.8/doc/api/a00193.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 3, bool, defaultp > bvec3
 3 components vector of boolean. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 3, bool, defaultp > bvec3
 3 components vector of boolean. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00193_source.html b/external/include/glm-0.9.9.8/doc/api/a00193_source.html index def35afef4..0b12589917 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00193_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00193_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_bool3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<3, bool, defaultp> bvec3;
-
16 
-
18 }//namespace glm
-
vec< 3, bool, defaultp > bvec3
3 components vector of boolean.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<3, bool, defaultp> bvec3;
+
16 
+
18 }//namespace glm
+
vec< 3, bool, defaultp > bvec3
3 components vector of boolean.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00194.html b/external/include/glm-0.9.9.8/doc/api/a00194.html index 5e44e9346a..f35c6e09b4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00194.html +++ b/external/include/glm-0.9.9.8/doc/api/a00194.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_bool3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 3, bool, highp > highp_bvec3
 3 components vector of high qualifier bool numbers. More...
 
typedef vec< 3, bool, lowp > lowp_bvec3
 3 components vector of low qualifier bool numbers. More...
 
typedef vec< 3, bool, mediump > mediump_bvec3
 3 components vector of medium qualifier bool numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool3_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 3, bool, highp > highp_bvec3
 3 components vector of high qualifier bool numbers. More...
 
typedef vec< 3, bool, lowp > lowp_bvec3
 3 components vector of low qualifier bool numbers. More...
 
typedef vec< 3, bool, mediump > mediump_bvec3
 3 components vector of medium qualifier bool numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool3_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00194_source.html b/external/include/glm-0.9.9.8/doc/api/a00194_source.html index 6a1e3cb099..dc749889f6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00194_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00194_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<3, bool, highp> highp_bvec3;
-
17 
-
22  typedef vec<3, bool, mediump> mediump_bvec3;
-
23 
-
28  typedef vec<3, bool, lowp> lowp_bvec3;
-
29 
-
31 }//namespace glm
-
vec< 3, bool, mediump > mediump_bvec3
3 components vector of medium qualifier bool numbers.
-
vec< 3, bool, highp > highp_bvec3
3 components vector of high qualifier bool numbers.
-
vec< 3, bool, lowp > lowp_bvec3
3 components vector of low qualifier bool numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<3, bool, highp> highp_bvec3;
+
17 
+
22  typedef vec<3, bool, mediump> mediump_bvec3;
+
23 
+
28  typedef vec<3, bool, lowp> lowp_bvec3;
+
29 
+
31 }//namespace glm
+
vec< 3, bool, mediump > mediump_bvec3
3 components vector of medium qualifier bool numbers.
+
vec< 3, bool, highp > highp_bvec3
3 components vector of high qualifier bool numbers.
+
vec< 3, bool, lowp > lowp_bvec3
3 components vector of low qualifier bool numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00195.html b/external/include/glm-0.9.9.8/doc/api/a00195.html index 9c493ab0c7..26aa735f27 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00195.html +++ b/external/include/glm-0.9.9.8/doc/api/a00195.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 4, bool, defaultp > bvec4
 4 components vector of boolean. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 4, bool, defaultp > bvec4
 4 components vector of boolean. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00195_source.html b/external/include/glm-0.9.9.8/doc/api/a00195_source.html index d7dc35b449..438a8fef61 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00195_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00195_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_bool4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<4, bool, defaultp> bvec4;
-
16 
-
18 }//namespace glm
-
vec< 4, bool, defaultp > bvec4
4 components vector of boolean.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<4, bool, defaultp> bvec4;
+
16 
+
18 }//namespace glm
+
vec< 4, bool, defaultp > bvec4
4 components vector of boolean.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00196.html b/external/include/glm-0.9.9.8/doc/api/a00196.html index b8d12ba06d..3c1d91bc32 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00196.html +++ b/external/include/glm-0.9.9.8/doc/api/a00196.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_bool4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_bool4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 4, bool, highp > highp_bvec4
 4 components vector of high qualifier bool numbers. More...
 
typedef vec< 4, bool, lowp > lowp_bvec4
 4 components vector of low qualifier bool numbers. More...
 
typedef vec< 4, bool, mediump > mediump_bvec4
 4 components vector of medium qualifier bool numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_bool4_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_bool4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_bool4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 4, bool, highp > highp_bvec4
 4 components vector of high qualifier bool numbers. More...
 
typedef vec< 4, bool, lowp > lowp_bvec4
 4 components vector of low qualifier bool numbers. More...
 
typedef vec< 4, bool, mediump > mediump_bvec4
 4 components vector of medium qualifier bool numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_bool4_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00196_source.html b/external/include/glm-0.9.9.8/doc/api/a00196_source.html index edcc6f29e8..6319b4d398 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00196_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00196_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_bool4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_bool4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<4, bool, highp> highp_bvec4;
-
17 
-
22  typedef vec<4, bool, mediump> mediump_bvec4;
-
23 
-
28  typedef vec<4, bool, lowp> lowp_bvec4;
-
29 
-
31 }//namespace glm
-
vec< 4, bool, lowp > lowp_bvec4
4 components vector of low qualifier bool numbers.
-
vec< 4, bool, mediump > mediump_bvec4
4 components vector of medium qualifier bool numbers.
-
vec< 4, bool, highp > highp_bvec4
4 components vector of high qualifier bool numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_bool4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_bool4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<4, bool, highp> highp_bvec4;
+
17 
+
22  typedef vec<4, bool, mediump> mediump_bvec4;
+
23 
+
28  typedef vec<4, bool, lowp> lowp_bvec4;
+
29 
+
31 }//namespace glm
+
vec< 4, bool, lowp > lowp_bvec4
4 components vector of low qualifier bool numbers.
+
vec< 4, bool, mediump > mediump_bvec4
4 components vector of medium qualifier bool numbers.
+
vec< 4, bool, highp > highp_bvec4
4 components vector of high qualifier bool numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00197.html b/external/include/glm-0.9.9.8/doc/api/a00197.html index 2352c1d8e3..b658eb81c3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00197.html +++ b/external/include/glm-0.9.9.8/doc/api/a00197.html @@ -1,162 +1,162 @@ - - - - - - -0.9.9 API documentation: vector_common.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_common.hpp File Reference
-
-
- -

GLM_EXT_vector_common -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, T b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Return the minimum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Return the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

GLM_EXT_vector_common

- -

Definition in file vector_common.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_common.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_common.hpp File Reference
+
+
+ +

GLM_EXT_vector_common +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, T b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Return the minimum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Return the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

GLM_EXT_vector_common

+ +

Definition in file vector_common.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00197_source.html b/external/include/glm-0.9.9.8/doc/api/a00197_source.html index 9746652ff4..31b776b7fa 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00197_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00197_source.html @@ -1,157 +1,157 @@ - - - - - - -0.9.9 API documentation: vector_common.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_common.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 // Dependency:
-
17 #include "../ext/scalar_common.hpp"
-
18 #include "../common.hpp"
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # pragma message("GLM: GLM_EXT_vector_common extension included")
-
22 #endif
-
23 
-
24 namespace glm
-
25 {
-
28 
-
34  template<length_t L, typename T, qualifier Q>
-
35  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
-
36 
-
42  template<length_t L, typename T, qualifier Q>
-
43  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
-
44 
-
50  template<length_t L, typename T, qualifier Q>
-
51  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& z);
-
52 
-
58  template<length_t L, typename T, qualifier Q>
-
59  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max( vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& z, vec<L, T, Q> const& w);
-
60 
-
68  template<length_t L, typename T, qualifier Q>
-
69  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& x, T y);
-
70 
-
78  template<length_t L, typename T, qualifier Q>
-
79  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
80 
-
88  template<length_t L, typename T, qualifier Q>
-
89  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
-
90 
-
98  template<length_t L, typename T, qualifier Q>
-
99  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
-
100 
-
108  template<length_t L, typename T, qualifier Q>
-
109  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, T b);
-
110 
-
118  template<length_t L, typename T, qualifier Q>
-
119  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b);
-
120 
-
128  template<length_t L, typename T, qualifier Q>
-
129  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
-
130 
-
138  template<length_t L, typename T, qualifier Q>
-
139  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
-
140 
-
142 }//namespace glm
-
143 
-
144 #include "vector_common.inl"
-
GLM_FUNC_DECL vec< L, T, Q > fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Returns y if x < y; otherwise, it returns x.
-
GLM_FUNC_DECL vec< L, T, Q > fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Returns y if y < x; otherwise, it returns x.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
Return the maximum component-wise values of 4 inputs.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Return the minimum component-wise values of 4 inputs.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_common.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_common.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 // Dependency:
+
17 #include "../ext/scalar_common.hpp"
+
18 #include "../common.hpp"
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # pragma message("GLM: GLM_EXT_vector_common extension included")
+
22 #endif
+
23 
+
24 namespace glm
+
25 {
+
28 
+
34  template<length_t L, typename T, qualifier Q>
+
35  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
+
36 
+
42  template<length_t L, typename T, qualifier Q>
+
43  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> min(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
+
44 
+
50  template<length_t L, typename T, qualifier Q>
+
51  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& z);
+
52 
+
58  template<length_t L, typename T, qualifier Q>
+
59  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> max( vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& z, vec<L, T, Q> const& w);
+
60 
+
68  template<length_t L, typename T, qualifier Q>
+
69  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& x, T y);
+
70 
+
78  template<length_t L, typename T, qualifier Q>
+
79  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
80 
+
88  template<length_t L, typename T, qualifier Q>
+
89  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
+
90 
+
98  template<length_t L, typename T, qualifier Q>
+
99  GLM_FUNC_DECL vec<L, T, Q> fmin(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
+
100 
+
108  template<length_t L, typename T, qualifier Q>
+
109  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, T b);
+
110 
+
118  template<length_t L, typename T, qualifier Q>
+
119  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b);
+
120 
+
128  template<length_t L, typename T, qualifier Q>
+
129  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c);
+
130 
+
138  template<length_t L, typename T, qualifier Q>
+
139  GLM_FUNC_DECL vec<L, T, Q> fmax(vec<L, T, Q> const& a, vec<L, T, Q> const& b, vec<L, T, Q> const& c, vec<L, T, Q> const& d);
+
140 
+
142 }//namespace glm
+
143 
+
144 #include "vector_common.inl"
+
GLM_FUNC_DECL vec< L, T, Q > fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Returns y if x < y; otherwise, it returns x.
+
GLM_FUNC_DECL vec< L, T, Q > fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Returns y if y < x; otherwise, it returns x.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
Return the maximum component-wise values of 4 inputs.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
Return the minimum component-wise values of 4 inputs.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00198.html b/external/include/glm-0.9.9.8/doc/api/a00198.html index 90c5fbac0b..cf13fd0d87 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00198.html +++ b/external/include/glm-0.9.9.8/doc/api/a00198.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_double1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double1.hpp File Reference
-
-
- -

GLM_EXT_vector_double1 -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef vec< 1, double, defaultp > dvec1
 1 components vector of double-precision floating-point numbers.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_double1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double1.hpp File Reference
+
+
+ +

GLM_EXT_vector_double1 +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef vec< 1, double, defaultp > dvec1
 1 components vector of double-precision floating-point numbers.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00198_source.html b/external/include/glm-0.9.9.8/doc/api/a00198_source.html index 4416ac8812..ff04a10f21 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00198_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00198_source.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: vector_double1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double1.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 #include "../detail/type_vec1.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_EXT_vector_double1 extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
28  typedef vec<1, double, defaultp> dvec1;
-
29 
-
31 }//namespace glm
-
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double1.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 #include "../detail/type_vec1.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_EXT_vector_double1 extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
28  typedef vec<1, double, defaultp> dvec1;
+
29 
+
31 }//namespace glm
+
vec< 1, double, defaultp > dvec1
1 components vector of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00199.html b/external/include/glm-0.9.9.8/doc/api/a00199.html index d04f73fe34..8fbf40ed0b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00199.html +++ b/external/include/glm-0.9.9.8/doc/api/a00199.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: vector_double1_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double1_precision.hpp File Reference
-
-
- -

GLM_EXT_vector_double1_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, double, highp > highp_dvec1
 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, lowp > lowp_dvec1
 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, mediump > mediump_dvec1
 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_double1_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double1_precision.hpp File Reference
+
+
+ +

GLM_EXT_vector_double1_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, double, highp > highp_dvec1
 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, lowp > lowp_dvec1
 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, mediump > mediump_dvec1
 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00199_source.html b/external/include/glm-0.9.9.8/doc/api/a00199_source.html index 8dd0deba05..193b125d2b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00199_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00199_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vector_double1_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double1_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/type_vec1.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # pragma message("GLM: GLM_EXT_vector_double1_precision extension included")
-
19 #endif
-
20 
-
21 namespace glm
-
22 {
-
25 
-
27  typedef vec<1, double, highp> highp_dvec1;
-
28 
-
30  typedef vec<1, double, mediump> mediump_dvec1;
-
31 
-
33  typedef vec<1, double, lowp> lowp_dvec1;
-
34 
-
36 }//namespace glm
-
vec< 1, double, lowp > lowp_dvec1
1 component vector of double-precision floating-point numbers using low precision arithmetic in term ...
-
vec< 1, double, highp > highp_dvec1
1 component vector of double-precision floating-point numbers using high precision arithmetic in term...
-
vec< 1, double, mediump > mediump_dvec1
1 component vector of double-precision floating-point numbers using medium precision arithmetic in te...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double1_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double1_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/type_vec1.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # pragma message("GLM: GLM_EXT_vector_double1_precision extension included")
+
19 #endif
+
20 
+
21 namespace glm
+
22 {
+
25 
+
27  typedef vec<1, double, highp> highp_dvec1;
+
28 
+
30  typedef vec<1, double, mediump> mediump_dvec1;
+
31 
+
33  typedef vec<1, double, lowp> lowp_dvec1;
+
34 
+
36 }//namespace glm
+
vec< 1, double, lowp > lowp_dvec1
1 component vector of double-precision floating-point numbers using low precision arithmetic in term ...
+
vec< 1, double, highp > highp_dvec1
1 component vector of double-precision floating-point numbers using high precision arithmetic in term...
+
vec< 1, double, mediump > mediump_dvec1
1 component vector of double-precision floating-point numbers using medium precision arithmetic in te...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00200.html b/external/include/glm-0.9.9.8/doc/api/a00200.html index f98419e39e..7c7d4f302e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00200.html +++ b/external/include/glm-0.9.9.8/doc/api/a00200.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_double2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 2, double, defaultp > dvec2
 2 components vector of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_double2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_double2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 2, double, defaultp > dvec2
 2 components vector of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_double2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00200_source.html b/external/include/glm-0.9.9.8/doc/api/a00200_source.html index 89cd2859e5..8fb43a5683 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00200_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00200_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_double2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<2, double, defaultp> dvec2;
-
16 
-
18 }//namespace glm
-
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<2, double, defaultp> dvec2;
+
16 
+
18 }//namespace glm
+
vec< 2, double, defaultp > dvec2
2 components vector of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00201.html b/external/include/glm-0.9.9.8/doc/api/a00201.html index fb310d17bc..846107e469 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00201.html +++ b/external/include/glm-0.9.9.8/doc/api/a00201.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_double2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 2, double, highp > highp_dvec2
 2 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 2, double, lowp > lowp_dvec2
 2 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 2, double, mediump > mediump_dvec2
 2 components vector of medium double-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_double2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 2, double, highp > highp_dvec2
 2 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 2, double, lowp > lowp_dvec2
 2 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 2, double, mediump > mediump_dvec2
 2 components vector of medium double-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00201_source.html b/external/include/glm-0.9.9.8/doc/api/a00201_source.html index 2fe5af7726..53cd4fda22 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00201_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00201_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_double2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<2, double, highp> highp_dvec2;
-
17 
-
22  typedef vec<2, double, mediump> mediump_dvec2;
-
23 
-
28  typedef vec<2, double, lowp> lowp_dvec2;
-
29 
-
31 }//namespace glm
-
vec< 2, double, lowp > lowp_dvec2
2 components vector of low double-qualifier floating-point numbers.
-
vec< 2, double, mediump > mediump_dvec2
2 components vector of medium double-qualifier floating-point numbers.
-
vec< 2, double, highp > highp_dvec2
2 components vector of high double-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<2, double, highp> highp_dvec2;
+
17 
+
22  typedef vec<2, double, mediump> mediump_dvec2;
+
23 
+
28  typedef vec<2, double, lowp> lowp_dvec2;
+
29 
+
31 }//namespace glm
+
vec< 2, double, lowp > lowp_dvec2
2 components vector of low double-qualifier floating-point numbers.
+
vec< 2, double, mediump > mediump_dvec2
2 components vector of medium double-qualifier floating-point numbers.
+
vec< 2, double, highp > highp_dvec2
2 components vector of high double-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00202.html b/external/include/glm-0.9.9.8/doc/api/a00202.html index 76f7bcb295..6d556f271e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00202.html +++ b/external/include/glm-0.9.9.8/doc/api/a00202.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_double3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 3, double, defaultp > dvec3
 3 components vector of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_double3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_double3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 3, double, defaultp > dvec3
 3 components vector of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_double3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00202_source.html b/external/include/glm-0.9.9.8/doc/api/a00202_source.html index ec3fe4d4f5..29f8ac5e8f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00202_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00202_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_double3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<3, double, defaultp> dvec3;
-
16 
-
18 }//namespace glm
-
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<3, double, defaultp> dvec3;
+
16 
+
18 }//namespace glm
+
vec< 3, double, defaultp > dvec3
3 components vector of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00203.html b/external/include/glm-0.9.9.8/doc/api/a00203.html index 75e9da7ae8..ca4158b76d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00203.html +++ b/external/include/glm-0.9.9.8/doc/api/a00203.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_double3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 3, double, highp > highp_dvec3
 3 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, lowp > lowp_dvec3
 3 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, mediump > mediump_dvec3
 3 components vector of medium double-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_double3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 3, double, highp > highp_dvec3
 3 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, lowp > lowp_dvec3
 3 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, mediump > mediump_dvec3
 3 components vector of medium double-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00203_source.html b/external/include/glm-0.9.9.8/doc/api/a00203_source.html index 1e097f20cd..f80f926ffd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00203_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00203_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_double3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
17  typedef vec<3, double, highp> highp_dvec3;
-
18 
-
24  typedef vec<3, double, mediump> mediump_dvec3;
-
25 
-
31  typedef vec<3, double, lowp> lowp_dvec3;
-
32 
-
34 }//namespace glm
-
vec< 3, double, mediump > mediump_dvec3
3 components vector of medium double-qualifier floating-point numbers.
-
vec< 3, double, lowp > lowp_dvec3
3 components vector of low double-qualifier floating-point numbers.
-
vec< 3, double, highp > highp_dvec3
3 components vector of high double-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
17  typedef vec<3, double, highp> highp_dvec3;
+
18 
+
24  typedef vec<3, double, mediump> mediump_dvec3;
+
25 
+
31  typedef vec<3, double, lowp> lowp_dvec3;
+
32 
+
34 }//namespace glm
+
vec< 3, double, mediump > mediump_dvec3
3 components vector of medium double-qualifier floating-point numbers.
+
vec< 3, double, lowp > lowp_dvec3
3 components vector of low double-qualifier floating-point numbers.
+
vec< 3, double, highp > highp_dvec3
3 components vector of high double-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00204.html b/external/include/glm-0.9.9.8/doc/api/a00204.html index ffa7d7a45b..0eaf6c673a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00204.html +++ b/external/include/glm-0.9.9.8/doc/api/a00204.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_double4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 4, double, defaultp > dvec4
 4 components vector of double-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_double4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_double4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 4, double, defaultp > dvec4
 4 components vector of double-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_double4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00204_source.html b/external/include/glm-0.9.9.8/doc/api/a00204_source.html index cd011959e7..c97118341a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00204_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00204_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_double4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<4, double, defaultp> dvec4;
-
16 
-
18 }//namespace glm
-
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<4, double, defaultp> dvec4;
+
16 
+
18 }//namespace glm
+
vec< 4, double, defaultp > dvec4
4 components vector of double-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00205.html b/external/include/glm-0.9.9.8/doc/api/a00205.html index f99ee75a03..55ea8884c5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00205.html +++ b/external/include/glm-0.9.9.8/doc/api/a00205.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_double4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_double4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 4, double, highp > highp_dvec4
 4 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, lowp > lowp_dvec4
 4 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, mediump > mediump_dvec4
 4 components vector of medium double-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_double4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_double4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 4, double, highp > highp_dvec4
 4 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, lowp > lowp_dvec4
 4 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, mediump > mediump_dvec4
 4 components vector of medium double-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00205_source.html b/external/include/glm-0.9.9.8/doc/api/a00205_source.html index b2f9e0db59..a3277e572e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00205_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00205_source.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_double4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_double4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/setup.hpp"
-
6 #include "../detail/type_vec4.hpp"
-
7 
-
8 namespace glm
-
9 {
-
12 
-
18  typedef vec<4, double, highp> highp_dvec4;
-
19 
-
25  typedef vec<4, double, mediump> mediump_dvec4;
-
26 
-
32  typedef vec<4, double, lowp> lowp_dvec4;
-
33 
-
35 }//namespace glm
-
vec< 4, double, mediump > mediump_dvec4
4 components vector of medium double-qualifier floating-point numbers.
-
vec< 4, double, highp > highp_dvec4
4 components vector of high double-qualifier floating-point numbers.
-
vec< 4, double, lowp > lowp_dvec4
4 components vector of low double-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_double4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_double4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/setup.hpp"
+
6 #include "../detail/type_vec4.hpp"
+
7 
+
8 namespace glm
+
9 {
+
12 
+
18  typedef vec<4, double, highp> highp_dvec4;
+
19 
+
25  typedef vec<4, double, mediump> mediump_dvec4;
+
26 
+
32  typedef vec<4, double, lowp> lowp_dvec4;
+
33 
+
35 }//namespace glm
+
vec< 4, double, mediump > mediump_dvec4
4 components vector of medium double-qualifier floating-point numbers.
+
vec< 4, double, highp > highp_dvec4
4 components vector of high double-qualifier floating-point numbers.
+
vec< 4, double, lowp > lowp_dvec4
4 components vector of low double-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00206.html b/external/include/glm-0.9.9.8/doc/api/a00206.html index 6c1d51975f..c11ff9a332 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00206.html +++ b/external/include/glm-0.9.9.8/doc/api/a00206.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_float1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float1.hpp File Reference
-
-
- -

GLM_EXT_vector_float1 -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef vec< 1, float, defaultp > vec1
 1 components vector of single-precision floating-point numbers.
 
-

Detailed Description

-

GLM_EXT_vector_float1

- -

Definition in file vector_float1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_float1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float1.hpp File Reference
+
+
+ +

GLM_EXT_vector_float1 +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef vec< 1, float, defaultp > vec1
 1 components vector of single-precision floating-point numbers.
 
+

Detailed Description

+

GLM_EXT_vector_float1

+ +

Definition in file vector_float1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00206_source.html b/external/include/glm-0.9.9.8/doc/api/a00206_source.html index a4559f811d..05d9166454 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00206_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00206_source.html @@ -1,116 +1,116 @@ - - - - - - -0.9.9 API documentation: vector_float1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float1.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 #include "../detail/type_vec1.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_EXT_vector_float1 extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
28  typedef vec<1, float, defaultp> vec1;
-
29 
-
31 }//namespace glm
-
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float1.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 #include "../detail/type_vec1.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_EXT_vector_float1 extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
28  typedef vec<1, float, defaultp> vec1;
+
29 
+
31 }//namespace glm
+
vec< 1, float, defaultp > vec1
1 components vector of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00207.html b/external/include/glm-0.9.9.8/doc/api/a00207.html index 279e90d5c2..785f3f3e92 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00207.html +++ b/external/include/glm-0.9.9.8/doc/api/a00207.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: vector_float1_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float1_precision.hpp File Reference
-
-
- -

GLM_EXT_vector_float1_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, float, highp > highp_vec1
 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, float, lowp > lowp_vec1
 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, float, mediump > mediump_vec1
 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_float1_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float1_precision.hpp File Reference
+
+
+ +

GLM_EXT_vector_float1_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, float, highp > highp_vec1
 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, float, lowp > lowp_vec1
 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, float, mediump > mediump_vec1
 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00207_source.html b/external/include/glm-0.9.9.8/doc/api/a00207_source.html index 6b7ad60be1..cd28660dfc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00207_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00207_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vector_float1_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float1_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 #include "../detail/type_vec1.hpp"
-
16 
-
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
18 # pragma message("GLM: GLM_EXT_vector_float1_precision extension included")
-
19 #endif
-
20 
-
21 namespace glm
-
22 {
-
25 
-
27  typedef vec<1, float, highp> highp_vec1;
-
28 
-
30  typedef vec<1, float, mediump> mediump_vec1;
-
31 
-
33  typedef vec<1, float, lowp> lowp_vec1;
-
34 
-
36 }//namespace glm
-
vec< 1, float, lowp > lowp_vec1
1 component vector of single-precision floating-point numbers using low precision arithmetic in term ...
-
vec< 1, float, mediump > mediump_vec1
1 component vector of single-precision floating-point numbers using medium precision arithmetic in te...
-
vec< 1, float, highp > highp_vec1
1 component vector of single-precision floating-point numbers using high precision arithmetic in term...
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float1_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float1_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 #include "../detail/type_vec1.hpp"
+
16 
+
17 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
18 # pragma message("GLM: GLM_EXT_vector_float1_precision extension included")
+
19 #endif
+
20 
+
21 namespace glm
+
22 {
+
25 
+
27  typedef vec<1, float, highp> highp_vec1;
+
28 
+
30  typedef vec<1, float, mediump> mediump_vec1;
+
31 
+
33  typedef vec<1, float, lowp> lowp_vec1;
+
34 
+
36 }//namespace glm
+
vec< 1, float, lowp > lowp_vec1
1 component vector of single-precision floating-point numbers using low precision arithmetic in term ...
+
vec< 1, float, mediump > mediump_vec1
1 component vector of single-precision floating-point numbers using medium precision arithmetic in te...
+
vec< 1, float, highp > highp_vec1
1 component vector of single-precision floating-point numbers using high precision arithmetic in term...
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00208.html b/external/include/glm-0.9.9.8/doc/api/a00208.html index 5c5e2dd44c..29111fd18c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00208.html +++ b/external/include/glm-0.9.9.8/doc/api/a00208.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 2, float, defaultp > vec2
 2 components vector of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_float2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_float2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 2, float, defaultp > vec2
 2 components vector of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_float2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00208_source.html b/external/include/glm-0.9.9.8/doc/api/a00208_source.html index 5d0ae47ea3..3eb292629b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00208_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00208_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_float2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<2, float, defaultp> vec2;
-
16 
-
18 }//namespace glm
-
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<2, float, defaultp> vec2;
+
16 
+
18 }//namespace glm
+
vec< 2, float, defaultp > vec2
2 components vector of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00209.html b/external/include/glm-0.9.9.8/doc/api/a00209.html index d354885170..ab2d9985d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00209.html +++ b/external/include/glm-0.9.9.8/doc/api/a00209.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_float2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 2, float, highp > highp_vec2
 2 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 2, float, lowp > lowp_vec2
 2 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 2, float, mediump > mediump_vec2
 2 components vector of medium single-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_float2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 2, float, highp > highp_vec2
 2 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 2, float, lowp > lowp_vec2
 2 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 2, float, mediump > mediump_vec2
 2 components vector of medium single-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00209_source.html b/external/include/glm-0.9.9.8/doc/api/a00209_source.html index 2854751dae..b93c0d4313 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00209_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00209_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<2, float, highp> highp_vec2;
-
17 
-
22  typedef vec<2, float, mediump> mediump_vec2;
-
23 
-
28  typedef vec<2, float, lowp> lowp_vec2;
-
29 
-
31 }//namespace glm
-
vec< 2, float, highp > highp_vec2
2 components vector of high single-qualifier floating-point numbers.
-
vec< 2, float, lowp > lowp_vec2
2 components vector of low single-qualifier floating-point numbers.
-
vec< 2, float, mediump > mediump_vec2
2 components vector of medium single-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<2, float, highp> highp_vec2;
+
17 
+
22  typedef vec<2, float, mediump> mediump_vec2;
+
23 
+
28  typedef vec<2, float, lowp> lowp_vec2;
+
29 
+
31 }//namespace glm
+
vec< 2, float, highp > highp_vec2
2 components vector of high single-qualifier floating-point numbers.
+
vec< 2, float, lowp > lowp_vec2
2 components vector of low single-qualifier floating-point numbers.
+
vec< 2, float, mediump > mediump_vec2
2 components vector of medium single-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00210.html b/external/include/glm-0.9.9.8/doc/api/a00210.html index 580da525d9..2b60bb4def 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00210.html +++ b/external/include/glm-0.9.9.8/doc/api/a00210.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 3, float, defaultp > vec3
 3 components vector of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_float3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_float3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 3, float, defaultp > vec3
 3 components vector of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_float3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00210_source.html b/external/include/glm-0.9.9.8/doc/api/a00210_source.html index ec29c3fdad..48aa1a9bfb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00210_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00210_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_float3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<3, float, defaultp> vec3;
-
16 
-
18 }//namespace glm
-
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<3, float, defaultp> vec3;
+
16 
+
18 }//namespace glm
+
vec< 3, float, defaultp > vec3
3 components vector of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00211.html b/external/include/glm-0.9.9.8/doc/api/a00211.html index 8d6d73af01..c5ca77ed27 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00211.html +++ b/external/include/glm-0.9.9.8/doc/api/a00211.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_float3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 3, float, highp > highp_vec3
 3 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, lowp > lowp_vec3
 3 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, mediump > mediump_vec3
 3 components vector of medium single-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_float3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 3, float, highp > highp_vec3
 3 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, lowp > lowp_vec3
 3 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, mediump > mediump_vec3
 3 components vector of medium single-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00211_source.html b/external/include/glm-0.9.9.8/doc/api/a00211_source.html index dbd7a4de83..a4eb1e7582 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00211_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00211_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<3, float, highp> highp_vec3;
-
17 
-
22  typedef vec<3, float, mediump> mediump_vec3;
-
23 
-
28  typedef vec<3, float, lowp> lowp_vec3;
-
29 
-
31 }//namespace glm
-
vec< 3, float, highp > highp_vec3
3 components vector of high single-qualifier floating-point numbers.
-
vec< 3, float, lowp > lowp_vec3
3 components vector of low single-qualifier floating-point numbers.
-
vec< 3, float, mediump > mediump_vec3
3 components vector of medium single-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<3, float, highp> highp_vec3;
+
17 
+
22  typedef vec<3, float, mediump> mediump_vec3;
+
23 
+
28  typedef vec<3, float, lowp> lowp_vec3;
+
29 
+
31 }//namespace glm
+
vec< 3, float, highp > highp_vec3
3 components vector of high single-qualifier floating-point numbers.
+
vec< 3, float, lowp > lowp_vec3
3 components vector of low single-qualifier floating-point numbers.
+
vec< 3, float, mediump > mediump_vec3
3 components vector of medium single-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00212.html b/external/include/glm-0.9.9.8/doc/api/a00212.html index f935350aff..94e655b03b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00212.html +++ b/external/include/glm-0.9.9.8/doc/api/a00212.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 4, float, defaultp > vec4
 4 components vector of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_float4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_float4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 4, float, defaultp > vec4
 4 components vector of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_float4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00212_source.html b/external/include/glm-0.9.9.8/doc/api/a00212_source.html index b7b08d9eab..cd4a352f26 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00212_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00212_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_float4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<4, float, defaultp> vec4;
-
16 
-
18 }//namespace glm
-
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<4, float, defaultp> vec4;
+
16 
+
18 }//namespace glm
+
vec< 4, float, defaultp > vec4
4 components vector of single-precision floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00213.html b/external/include/glm-0.9.9.8/doc/api/a00213.html index a5a872fcbc..9938b0e30a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00213.html +++ b/external/include/glm-0.9.9.8/doc/api/a00213.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_float4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_float4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 4, float, highp > highp_vec4
 4 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, lowp > lowp_vec4
 4 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, mediump > mediump_vec4
 4 components vector of medium single-qualifier floating-point numbers. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_float4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_float4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 4, float, highp > highp_vec4
 4 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, lowp > lowp_vec4
 4 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, mediump > mediump_vec4
 4 components vector of medium single-qualifier floating-point numbers. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00213_source.html b/external/include/glm-0.9.9.8/doc/api/a00213_source.html index 24ddd1135a..2495eac316 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00213_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00213_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_float4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_float4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<4, float, highp> highp_vec4;
-
17 
-
22  typedef vec<4, float, mediump> mediump_vec4;
-
23 
-
28  typedef vec<4, float, lowp> lowp_vec4;
-
29 
-
31 }//namespace glm
-
vec< 4, float, lowp > lowp_vec4
4 components vector of low single-qualifier floating-point numbers.
-
vec< 4, float, mediump > mediump_vec4
4 components vector of medium single-qualifier floating-point numbers.
-
vec< 4, float, highp > highp_vec4
4 components vector of high single-qualifier floating-point numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_float4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_float4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<4, float, highp> highp_vec4;
+
17 
+
22  typedef vec<4, float, mediump> mediump_vec4;
+
23 
+
28  typedef vec<4, float, lowp> lowp_vec4;
+
29 
+
31 }//namespace glm
+
vec< 4, float, lowp > lowp_vec4
4 components vector of low single-qualifier floating-point numbers.
+
vec< 4, float, mediump > mediump_vec4
4 components vector of medium single-qualifier floating-point numbers.
+
vec< 4, float, highp > highp_vec4
4 components vector of high single-qualifier floating-point numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00214.html b/external/include/glm-0.9.9.8/doc/api/a00214.html index cab9bd9e6e..41749ac627 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00214.html +++ b/external/include/glm-0.9.9.8/doc/api/a00214.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_int1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int1.hpp File Reference
-
-
- -

GLM_EXT_vector_int1 -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef vec< 1, int, defaultp > ivec1
 1 component vector of signed integer numbers.
 
-

Detailed Description

-

GLM_EXT_vector_int1

- -

Definition in file vector_int1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int1.hpp File Reference
+
+
+ +

GLM_EXT_vector_int1 +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef vec< 1, int, defaultp > ivec1
 1 component vector of signed integer numbers.
 
+

Detailed Description

+

GLM_EXT_vector_int1

+ +

Definition in file vector_int1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00214_source.html b/external/include/glm-0.9.9.8/doc/api/a00214_source.html index 59a3635496..483592eeb2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00214_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00214_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int1.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 #include "../detail/type_vec1.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_EXT_vector_int1 extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
28  typedef vec<1, int, defaultp> ivec1;
-
29 
-
31 }//namespace glm
-
32 
-
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int1.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 #include "../detail/type_vec1.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_EXT_vector_int1 extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
28  typedef vec<1, int, defaultp> ivec1;
+
29 
+
31 }//namespace glm
+
32 
+
vec< 1, int, defaultp > ivec1
1 component vector of signed integer numbers.
Definition: vector_int1.hpp:28
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00215.html b/external/include/glm-0.9.9.8/doc/api/a00215.html index c1ae7defe8..643f864231 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00215.html +++ b/external/include/glm-0.9.9.8/doc/api/a00215.html @@ -1,126 +1,126 @@ - - - - - - -0.9.9 API documentation: vector_int1_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int1_precision.hpp File Reference
-
-
- -

GLM_EXT_vector_int1_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, int, highp > highp_ivec1
 1 component vector of signed integer values.
 
-typedef vec< 1, int, lowp > lowp_ivec1
 1 component vector of signed integer values.
 
-typedef vec< 1, int, mediump > mediump_ivec1
 1 component vector of signed integer values.
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_int1_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int1_precision.hpp File Reference
+
+
+ +

GLM_EXT_vector_int1_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, int, highp > highp_ivec1
 1 component vector of signed integer values.
 
+typedef vec< 1, int, lowp > lowp_ivec1
 1 component vector of signed integer values.
 
+typedef vec< 1, int, mediump > mediump_ivec1
 1 component vector of signed integer values.
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00215_source.html b/external/include/glm-0.9.9.8/doc/api/a00215_source.html index c5e2c2e7d9..48ac834c7d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00215_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00215_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vector_int1_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int1_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 #include "../detail/type_vec1.hpp"
-
14 
-
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
16 # pragma message("GLM: GLM_EXT_vector_int1_precision extension included")
-
17 #endif
-
18 
-
19 namespace glm
-
20 {
-
23 
-
25  typedef vec<1, int, highp> highp_ivec1;
-
26 
-
28  typedef vec<1, int, mediump> mediump_ivec1;
-
29 
-
31  typedef vec<1, int, lowp> lowp_ivec1;
-
32 
-
34 }//namespace glm
-
vec< 1, int, mediump > mediump_ivec1
1 component vector of signed integer values.
-
vec< 1, int, highp > highp_ivec1
1 component vector of signed integer values.
-
vec< 1, int, lowp > lowp_ivec1
1 component vector of signed integer values.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int1_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int1_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 #include "../detail/type_vec1.hpp"
+
14 
+
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
16 # pragma message("GLM: GLM_EXT_vector_int1_precision extension included")
+
17 #endif
+
18 
+
19 namespace glm
+
20 {
+
23 
+
25  typedef vec<1, int, highp> highp_ivec1;
+
26 
+
28  typedef vec<1, int, mediump> mediump_ivec1;
+
29 
+
31  typedef vec<1, int, lowp> lowp_ivec1;
+
32 
+
34 }//namespace glm
+
vec< 1, int, mediump > mediump_ivec1
1 component vector of signed integer values.
+
vec< 1, int, highp > highp_ivec1
1 component vector of signed integer values.
+
vec< 1, int, lowp > lowp_ivec1
1 component vector of signed integer values.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00216.html b/external/include/glm-0.9.9.8/doc/api/a00216.html index 9a7689cb15..542ab059ed 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00216.html +++ b/external/include/glm-0.9.9.8/doc/api/a00216.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 2, int, defaultp > ivec2
 2 components vector of signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 2, int, defaultp > ivec2
 2 components vector of signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00216_source.html b/external/include/glm-0.9.9.8/doc/api/a00216_source.html index e2b463c9c3..4d507bcb7e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00216_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00216_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_int2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<2, int, defaultp> ivec2;
-
16 
-
18 }//namespace glm
-
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<2, int, defaultp> ivec2;
+
16 
+
18 }//namespace glm
+
vec< 2, int, defaultp > ivec2
2 components vector of signed integer numbers.
Definition: vector_int2.hpp:15
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00217.html b/external/include/glm-0.9.9.8/doc/api/a00217.html index f5ce25834c..4f939134a9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00217.html +++ b/external/include/glm-0.9.9.8/doc/api/a00217.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_int2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 2, int, highp > highp_ivec2
 2 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 2, int, lowp > lowp_ivec2
 2 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 2, int, mediump > mediump_ivec2
 2 components vector of medium qualifier signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int2_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 2, int, highp > highp_ivec2
 2 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 2, int, lowp > lowp_ivec2
 2 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 2, int, mediump > mediump_ivec2
 2 components vector of medium qualifier signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int2_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00217_source.html b/external/include/glm-0.9.9.8/doc/api/a00217_source.html index eabef99995..d84a2fc2a4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00217_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00217_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<2, int, highp> highp_ivec2;
-
17 
-
22  typedef vec<2, int, mediump> mediump_ivec2;
-
23 
-
28  typedef vec<2, int, lowp> lowp_ivec2;
-
29 
-
31 }//namespace glm
-
vec< 2, int, highp > highp_ivec2
2 components vector of high qualifier signed integer numbers.
-
vec< 2, int, mediump > mediump_ivec2
2 components vector of medium qualifier signed integer numbers.
-
vec< 2, int, lowp > lowp_ivec2
2 components vector of low qualifier signed integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<2, int, highp> highp_ivec2;
+
17 
+
22  typedef vec<2, int, mediump> mediump_ivec2;
+
23 
+
28  typedef vec<2, int, lowp> lowp_ivec2;
+
29 
+
31 }//namespace glm
+
vec< 2, int, highp > highp_ivec2
2 components vector of high qualifier signed integer numbers.
+
vec< 2, int, mediump > mediump_ivec2
2 components vector of medium qualifier signed integer numbers.
+
vec< 2, int, lowp > lowp_ivec2
2 components vector of low qualifier signed integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00218.html b/external/include/glm-0.9.9.8/doc/api/a00218.html index c9e858eb70..fd0917bd3f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00218.html +++ b/external/include/glm-0.9.9.8/doc/api/a00218.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 3, int, defaultp > ivec3
 3 components vector of signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 3, int, defaultp > ivec3
 3 components vector of signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00218_source.html b/external/include/glm-0.9.9.8/doc/api/a00218_source.html index cfc6dd5e1c..89898ad743 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00218_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00218_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_int3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<3, int, defaultp> ivec3;
-
16 
-
18 }//namespace glm
-
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<3, int, defaultp> ivec3;
+
16 
+
18 }//namespace glm
+
vec< 3, int, defaultp > ivec3
3 components vector of signed integer numbers.
Definition: vector_int3.hpp:15
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00219.html b/external/include/glm-0.9.9.8/doc/api/a00219.html index ef47973fd4..c30ee4317d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00219.html +++ b/external/include/glm-0.9.9.8/doc/api/a00219.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_int3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 3, int, highp > highp_ivec3
 3 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 3, int, lowp > lowp_ivec3
 3 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 3, int, mediump > mediump_ivec3
 3 components vector of medium qualifier signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int3_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 3, int, highp > highp_ivec3
 3 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 3, int, lowp > lowp_ivec3
 3 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 3, int, mediump > mediump_ivec3
 3 components vector of medium qualifier signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int3_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00219_source.html b/external/include/glm-0.9.9.8/doc/api/a00219_source.html index ccc138574d..d6692beac2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00219_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00219_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<3, int, highp> highp_ivec3;
-
17 
-
22  typedef vec<3, int, mediump> mediump_ivec3;
-
23 
-
28  typedef vec<3, int, lowp> lowp_ivec3;
-
29 
-
31 }//namespace glm
-
vec< 3, int, lowp > lowp_ivec3
3 components vector of low qualifier signed integer numbers.
-
vec< 3, int, mediump > mediump_ivec3
3 components vector of medium qualifier signed integer numbers.
-
vec< 3, int, highp > highp_ivec3
3 components vector of high qualifier signed integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<3, int, highp> highp_ivec3;
+
17 
+
22  typedef vec<3, int, mediump> mediump_ivec3;
+
23 
+
28  typedef vec<3, int, lowp> lowp_ivec3;
+
29 
+
31 }//namespace glm
+
vec< 3, int, lowp > lowp_ivec3
3 components vector of low qualifier signed integer numbers.
+
vec< 3, int, mediump > mediump_ivec3
3 components vector of medium qualifier signed integer numbers.
+
vec< 3, int, highp > highp_ivec3
3 components vector of high qualifier signed integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00220.html b/external/include/glm-0.9.9.8/doc/api/a00220.html index 8a994255fa..534c9c137e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00220.html +++ b/external/include/glm-0.9.9.8/doc/api/a00220.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 4, int, defaultp > ivec4
 4 components vector of signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 4, int, defaultp > ivec4
 4 components vector of signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00220_source.html b/external/include/glm-0.9.9.8/doc/api/a00220_source.html index 58a03d3a1e..1a04d1b079 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00220_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00220_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_int4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<4, int, defaultp> ivec4;
-
16 
-
18 }//namespace glm
-
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<4, int, defaultp> ivec4;
+
16 
+
18 }//namespace glm
+
vec< 4, int, defaultp > ivec4
4 components vector of signed integer numbers.
Definition: vector_int4.hpp:15
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00221.html b/external/include/glm-0.9.9.8/doc/api/a00221.html index 254cafd3f4..8b3a48c52b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00221.html +++ b/external/include/glm-0.9.9.8/doc/api/a00221.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_int4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_int4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 4, int, highp > highp_ivec4
 4 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 4, int, lowp > lowp_ivec4
 4 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 4, int, mediump > mediump_ivec4
 4 components vector of medium qualifier signed integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_int4_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_int4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_int4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 4, int, highp > highp_ivec4
 4 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 4, int, lowp > lowp_ivec4
 4 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 4, int, mediump > mediump_ivec4
 4 components vector of medium qualifier signed integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_int4_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00221_source.html b/external/include/glm-0.9.9.8/doc/api/a00221_source.html index 8d51750187..db681038c2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00221_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00221_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_int4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_int4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<4, int, highp> highp_ivec4;
-
17 
-
22  typedef vec<4, int, mediump> mediump_ivec4;
-
23 
-
28  typedef vec<4, int, lowp> lowp_ivec4;
-
29 
-
31 }//namespace glm
-
vec< 4, int, lowp > lowp_ivec4
4 components vector of low qualifier signed integer numbers.
-
vec< 4, int, highp > highp_ivec4
4 components vector of high qualifier signed integer numbers.
-
vec< 4, int, mediump > mediump_ivec4
4 components vector of medium qualifier signed integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_int4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_int4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<4, int, highp> highp_ivec4;
+
17 
+
22  typedef vec<4, int, mediump> mediump_ivec4;
+
23 
+
28  typedef vec<4, int, lowp> lowp_ivec4;
+
29 
+
31 }//namespace glm
+
vec< 4, int, lowp > lowp_ivec4
4 components vector of low qualifier signed integer numbers.
+
vec< 4, int, highp > highp_ivec4
4 components vector of high qualifier signed integer numbers.
+
vec< 4, int, mediump > mediump_ivec4
4 components vector of medium qualifier signed integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00222.html b/external/include/glm-0.9.9.8/doc/api/a00222.html index aebfeae087..a9db42291c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00222.html +++ b/external/include/glm-0.9.9.8/doc/api/a00222.html @@ -1,157 +1,157 @@ - - - - - - -0.9.9 API documentation: vector_integer.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_integer.hpp File Reference
-
-
- -

GLM_EXT_vector_integer -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findNSB (vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, T Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo (vec< L, T, Q > const &v)
 Return true if the value is a power of two number. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, T Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, T Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
-

Detailed Description

-

GLM_EXT_vector_integer

-
See also
Core features (dependence)
-
-GLM_EXT_vector_integer (dependence)
- -

Definition in file vector_integer.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_integer.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_integer.hpp File Reference
+
+
+ +

GLM_EXT_vector_integer +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findNSB (vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, T Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo (vec< L, T, Q > const &v)
 Return true if the value is a power of two number. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, T Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, T Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
+

Detailed Description

+

GLM_EXT_vector_integer

+
See also
Core features (dependence)
+
+GLM_EXT_vector_integer (dependence)
+ +

Definition in file vector_integer.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00222_source.html b/external/include/glm-0.9.9.8/doc/api/a00222_source.html index 38efae300b..7579f70045 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00222_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00222_source.html @@ -1,158 +1,158 @@ - - - - - - -0.9.9 API documentation: vector_integer.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_integer.hpp
-
-
-Go to the documentation of this file.
1 
-
12 #pragma once
-
13 
-
14 // Dependencies
-
15 #include "../detail/setup.hpp"
-
16 #include "../detail/qualifier.hpp"
-
17 #include "../detail/_vectorize.hpp"
-
18 #include "../vector_relational.hpp"
-
19 #include "../common.hpp"
-
20 #include <limits>
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_EXT_vector_integer extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
30 
-
38  template<length_t L, typename T, qualifier Q>
-
39  GLM_FUNC_DECL vec<L, bool, Q> isPowerOfTwo(vec<L, T, Q> const& v);
-
40 
-
49  template<length_t L, typename T, qualifier Q>
-
50  GLM_FUNC_DECL vec<L, T, Q> nextPowerOfTwo(vec<L, T, Q> const& v);
-
51 
-
60  template<length_t L, typename T, qualifier Q>
-
61  GLM_FUNC_DECL vec<L, T, Q> prevPowerOfTwo(vec<L, T, Q> const& v);
-
62 
-
70  template<length_t L, typename T, qualifier Q>
-
71  GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, T Multiple);
-
72 
-
80  template<length_t L, typename T, qualifier Q>
-
81  GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
82 
-
93  template<length_t L, typename T, qualifier Q>
-
94  GLM_FUNC_DECL vec<L, T, Q> nextMultiple(vec<L, T, Q> const& v, T Multiple);
-
95 
-
106  template<length_t L, typename T, qualifier Q>
-
107  GLM_FUNC_DECL vec<L, T, Q> nextMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
108 
-
119  template<length_t L, typename T, qualifier Q>
-
120  GLM_FUNC_DECL vec<L, T, Q> prevMultiple(vec<L, T, Q> const& v, T Multiple);
-
121 
-
132  template<length_t L, typename T, qualifier Q>
-
133  GLM_FUNC_DECL vec<L, T, Q> prevMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
-
134 
-
143  template<length_t L, typename T, qualifier Q>
-
144  GLM_FUNC_DECL vec<L, int, Q> findNSB(vec<L, T, Q> const& Source, vec<L, int, Q> SignificantBitCount);
-
145 
-
147 } //namespace glm
-
148 
-
149 #include "vector_integer.inl"
-
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo(vec< L, T, Q > const &v)
Return true if the value is a power of two number.
-
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just higher the input value, round up to a power of two...
-
GLM_FUNC_DECL vec< L, T, Q > nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Higher multiple number of Source.
-
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
-
GLM_FUNC_DECL vec< L, int, Q > findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
Returns the bit number of the Nth significant bit set to 1 in the binary representation of value...
-
GLM_FUNC_DECL vec< L, T, Q > prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
-
GLM_FUNC_DECL vec< L, bool, Q > isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Return true if the 'Value' is a multiple of 'Multiple'.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_integer.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_integer.hpp
+
+
+Go to the documentation of this file.
1 
+
12 #pragma once
+
13 
+
14 // Dependencies
+
15 #include "../detail/setup.hpp"
+
16 #include "../detail/qualifier.hpp"
+
17 #include "../detail/_vectorize.hpp"
+
18 #include "../vector_relational.hpp"
+
19 #include "../common.hpp"
+
20 #include <limits>
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_EXT_vector_integer extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
30 
+
38  template<length_t L, typename T, qualifier Q>
+
39  GLM_FUNC_DECL vec<L, bool, Q> isPowerOfTwo(vec<L, T, Q> const& v);
+
40 
+
49  template<length_t L, typename T, qualifier Q>
+
50  GLM_FUNC_DECL vec<L, T, Q> nextPowerOfTwo(vec<L, T, Q> const& v);
+
51 
+
60  template<length_t L, typename T, qualifier Q>
+
61  GLM_FUNC_DECL vec<L, T, Q> prevPowerOfTwo(vec<L, T, Q> const& v);
+
62 
+
70  template<length_t L, typename T, qualifier Q>
+
71  GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, T Multiple);
+
72 
+
80  template<length_t L, typename T, qualifier Q>
+
81  GLM_FUNC_DECL vec<L, bool, Q> isMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
82 
+
93  template<length_t L, typename T, qualifier Q>
+
94  GLM_FUNC_DECL vec<L, T, Q> nextMultiple(vec<L, T, Q> const& v, T Multiple);
+
95 
+
106  template<length_t L, typename T, qualifier Q>
+
107  GLM_FUNC_DECL vec<L, T, Q> nextMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
108 
+
119  template<length_t L, typename T, qualifier Q>
+
120  GLM_FUNC_DECL vec<L, T, Q> prevMultiple(vec<L, T, Q> const& v, T Multiple);
+
121 
+
132  template<length_t L, typename T, qualifier Q>
+
133  GLM_FUNC_DECL vec<L, T, Q> prevMultiple(vec<L, T, Q> const& v, vec<L, T, Q> const& Multiple);
+
134 
+
143  template<length_t L, typename T, qualifier Q>
+
144  GLM_FUNC_DECL vec<L, int, Q> findNSB(vec<L, T, Q> const& Source, vec<L, int, Q> SignificantBitCount);
+
145 
+
147 } //namespace glm
+
148 
+
149 #include "vector_integer.inl"
+
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo(vec< L, T, Q > const &v)
Return true if the value is a power of two number.
+
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just higher the input value, round up to a power of two...
+
GLM_FUNC_DECL vec< L, T, Q > nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Higher multiple number of Source.
+
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo(vec< L, T, Q > const &v)
Return the power of two number which value is just lower the input value, round down to a power of tw...
+
GLM_FUNC_DECL vec< L, int, Q > findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
Returns the bit number of the Nth significant bit set to 1 in the binary representation of value...
+
GLM_FUNC_DECL vec< L, T, Q > prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Lower multiple number of Source.
+
GLM_FUNC_DECL vec< L, bool, Q > isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
Return true if the 'Value' is a multiple of 'Multiple'.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00223.html b/external/include/glm-0.9.9.8/doc/api/a00223.html index 551a93d889..de1ec5f5a8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00223.html +++ b/external/include/glm-0.9.9.8/doc/api/a00223.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: vector_query.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_query.hpp File Reference
-
-
- -

GLM_GTX_vector_query -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areCollinear (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are collinears. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthogonal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthogonals. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthonormal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthonormal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isCompNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a each component of a vector is null. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is normalized. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is null. More...
 
-

Detailed Description

-

GLM_GTX_vector_query

-
See also
Core features (dependence)
- -

Definition in file vector_query.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_query.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_query.hpp File Reference
+
+
+ +

GLM_GTX_vector_query +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areCollinear (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are collinears. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthogonal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthogonals. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthonormal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthonormal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isCompNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a each component of a vector is null. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is normalized. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is null. More...
 
+

Detailed Description

+

GLM_GTX_vector_query

+
See also
Core features (dependence)
+ +

Definition in file vector_query.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00223_source.html b/external/include/glm-0.9.9.8/doc/api/a00223_source.html index 6c83d36ded..6f7a03f8d8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00223_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00223_source.html @@ -1,147 +1,147 @@ - - - - - - -0.9.9 API documentation: vector_query.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_query.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include <cfloat>
-
18 #include <limits>
-
19 
-
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
21 # ifndef GLM_ENABLE_EXPERIMENTAL
-
22 # pragma message("GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
23 # else
-
24 # pragma message("GLM: GLM_GTX_vector_query extension included")
-
25 # endif
-
26 #endif
-
27 
-
28 namespace glm
-
29 {
-
32 
-
35  template<length_t L, typename T, qualifier Q>
-
36  GLM_FUNC_DECL bool areCollinear(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
-
37 
-
40  template<length_t L, typename T, qualifier Q>
-
41  GLM_FUNC_DECL bool areOrthogonal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
-
42 
-
45  template<length_t L, typename T, qualifier Q>
-
46  GLM_FUNC_DECL bool isNormalized(vec<L, T, Q> const& v, T const& epsilon);
-
47 
-
50  template<length_t L, typename T, qualifier Q>
-
51  GLM_FUNC_DECL bool isNull(vec<L, T, Q> const& v, T const& epsilon);
-
52 
-
55  template<length_t L, typename T, qualifier Q>
-
56  GLM_FUNC_DECL vec<L, bool, Q> isCompNull(vec<L, T, Q> const& v, T const& epsilon);
-
57 
-
60  template<length_t L, typename T, qualifier Q>
-
61  GLM_FUNC_DECL bool areOrthonormal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
-
62 
-
64 }// namespace glm
-
65 
-
66 #include "vector_query.inl"
-
GLM_FUNC_DECL bool isNull(vec< L, T, Q > const &v, T const &epsilon)
Check whether a vector is null.
-
GLM_FUNC_DECL bool areCollinear(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are collinears.
-
GLM_FUNC_DECL bool isNormalized(vec< L, T, Q > const &v, T const &epsilon)
Check whether a vector is normalized.
-
GLM_FUNC_DECL bool areOrthonormal(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are orthonormal.
-
GLM_FUNC_DECL vec< L, bool, Q > isCompNull(vec< L, T, Q > const &v, T const &epsilon)
Check whether a each component of a vector is null.
-
GLM_FUNC_DECL bool areOrthogonal(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are orthogonals.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_query.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_query.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include <cfloat>
+
18 #include <limits>
+
19 
+
20 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
21 # ifndef GLM_ENABLE_EXPERIMENTAL
+
22 # pragma message("GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
23 # else
+
24 # pragma message("GLM: GLM_GTX_vector_query extension included")
+
25 # endif
+
26 #endif
+
27 
+
28 namespace glm
+
29 {
+
32 
+
35  template<length_t L, typename T, qualifier Q>
+
36  GLM_FUNC_DECL bool areCollinear(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
+
37 
+
40  template<length_t L, typename T, qualifier Q>
+
41  GLM_FUNC_DECL bool areOrthogonal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
+
42 
+
45  template<length_t L, typename T, qualifier Q>
+
46  GLM_FUNC_DECL bool isNormalized(vec<L, T, Q> const& v, T const& epsilon);
+
47 
+
50  template<length_t L, typename T, qualifier Q>
+
51  GLM_FUNC_DECL bool isNull(vec<L, T, Q> const& v, T const& epsilon);
+
52 
+
55  template<length_t L, typename T, qualifier Q>
+
56  GLM_FUNC_DECL vec<L, bool, Q> isCompNull(vec<L, T, Q> const& v, T const& epsilon);
+
57 
+
60  template<length_t L, typename T, qualifier Q>
+
61  GLM_FUNC_DECL bool areOrthonormal(vec<L, T, Q> const& v0, vec<L, T, Q> const& v1, T const& epsilon);
+
62 
+
64 }// namespace glm
+
65 
+
66 #include "vector_query.inl"
+
GLM_FUNC_DECL bool isNull(vec< L, T, Q > const &v, T const &epsilon)
Check whether a vector is null.
+
GLM_FUNC_DECL bool areCollinear(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are collinears.
+
GLM_FUNC_DECL bool isNormalized(vec< L, T, Q > const &v, T const &epsilon)
Check whether a vector is normalized.
+
GLM_FUNC_DECL bool areOrthonormal(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are orthonormal.
+
GLM_FUNC_DECL vec< L, bool, Q > isCompNull(vec< L, T, Q > const &v, T const &epsilon)
Check whether a each component of a vector is null.
+
GLM_FUNC_DECL bool areOrthogonal(vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
Check whether two vectors are orthogonals.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00224.html b/external/include/glm-0.9.9.8/doc/api/a00224.html index 5aadee88eb..9396a9289b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00224.html +++ b/external/include/glm-0.9.9.8/doc/api/a00224.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: vector_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ext/vector_relational.hpp File Reference
-
-
- -

GLM_EXT_vector_relational -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
-

Detailed Description

-

GLM_EXT_vector_relational

-
See also
Core features (dependence)
-
-GLM_EXT_scalar_integer (dependence)
- -

Definition in file ext/vector_relational.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ext/vector_relational.hpp File Reference
+
+
+ +

GLM_EXT_vector_relational +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
+

Detailed Description

+

GLM_EXT_vector_relational

+
See also
Core features (dependence)
+
+GLM_EXT_scalar_integer (dependence)
+ +

Definition in file ext/vector_relational.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00224_source.html b/external/include/glm-0.9.9.8/doc/api/a00224_source.html index 168e51ff27..d99e1d1da6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00224_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00224_source.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: vector_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
ext/vector_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
18 #pragma once
-
19 
-
20 // Dependencies
-
21 #include "../detail/qualifier.hpp"
-
22 
-
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
24 # pragma message("GLM: GLM_EXT_vector_relational extension included")
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
38  template<length_t L, typename T, qualifier Q>
-
39  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T epsilon);
-
40 
-
47  template<length_t L, typename T, qualifier Q>
-
48  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon);
-
49 
-
56  template<length_t L, typename T, qualifier Q>
-
57  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T epsilon);
-
58 
-
65  template<length_t L, typename T, qualifier Q>
-
66  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon);
-
67 
-
74  template<length_t L, typename T, qualifier Q>
-
75  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int ULPs);
-
76 
-
83  template<length_t L, typename T, qualifier Q>
-
84  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& ULPs);
-
85 
-
92  template<length_t L, typename T, qualifier Q>
-
93  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int ULPs);
-
94 
-
101  template<length_t L, typename T, qualifier Q>
-
102  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& ULPs);
-
103 
-
105 }//namespace glm
-
106 
-
107 #include "vector_relational.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
-
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext/vector_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
18 #pragma once
+
19 
+
20 // Dependencies
+
21 #include "../detail/qualifier.hpp"
+
22 
+
23 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
24 # pragma message("GLM: GLM_EXT_vector_relational extension included")
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
38  template<length_t L, typename T, qualifier Q>
+
39  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T epsilon);
+
40 
+
47  template<length_t L, typename T, qualifier Q>
+
48  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon);
+
49 
+
56  template<length_t L, typename T, qualifier Q>
+
57  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, T epsilon);
+
58 
+
65  template<length_t L, typename T, qualifier Q>
+
66  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, T, Q> const& epsilon);
+
67 
+
74  template<length_t L, typename T, qualifier Q>
+
75  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int ULPs);
+
76 
+
83  template<length_t L, typename T, qualifier Q>
+
84  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& ULPs);
+
85 
+
92  template<length_t L, typename T, qualifier Q>
+
93  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, int ULPs);
+
94 
+
101  template<length_t L, typename T, qualifier Q>
+
102  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y, vec<L, int, Q> const& ULPs);
+
103 
+
105 }//namespace glm
+
106 
+
107 #include "vector_relational.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
Returns the component-wise comparison between two vectors in term of ULPs.
+
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon()
Return the epsilon constant for floating point types.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00225.html b/external/include/glm-0.9.9.8/doc/api/a00225.html index 84fe241dda..d4eee753ac 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00225.html +++ b/external/include/glm-0.9.9.8/doc/api/a00225.html @@ -1,151 +1,151 @@ - - - - - - -0.9.9 API documentation: vector_relational.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_relational.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool all (vec< L, bool, Q > const &v)
 Returns true if all components of x are true. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool any (vec< L, bool, Q > const &v)
 Returns true if any component of x is true. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_ (vec< L, bool, Q > const &v)
 Returns the component-wise logical complement of x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_relational.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_relational.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool all (vec< L, bool, Q > const &v)
 Returns true if all components of x are true. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool any (vec< L, bool, Q > const &v)
 Returns true if any component of x is true. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_ (vec< L, bool, Q > const &v)
 Returns the component-wise logical complement of x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00225_source.html b/external/include/glm-0.9.9.8/doc/api/a00225_source.html index a737766840..1399390bef 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00225_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00225_source.html @@ -1,148 +1,148 @@ - - - - - - -0.9.9 API documentation: vector_relational.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_relational.hpp
-
-
-Go to the documentation of this file.
1 
-
20 #pragma once
-
21 
-
22 #include "detail/qualifier.hpp"
-
23 #include "detail/setup.hpp"
-
24 
-
25 namespace glm
-
26 {
-
29 
-
37  template<length_t L, typename T, qualifier Q>
-
38  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> lessThan(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
39 
-
47  template<length_t L, typename T, qualifier Q>
-
48  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> lessThanEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
49 
-
57  template<length_t L, typename T, qualifier Q>
-
58  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> greaterThan(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
59 
-
67  template<length_t L, typename T, qualifier Q>
-
68  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> greaterThanEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
69 
-
77  template<length_t L, typename T, qualifier Q>
-
78  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
79 
-
87  template<length_t L, typename T, qualifier Q>
-
88  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
-
89 
-
96  template<length_t L, qualifier Q>
-
97  GLM_FUNC_DECL GLM_CONSTEXPR bool any(vec<L, bool, Q> const& v);
-
98 
-
105  template<length_t L, qualifier Q>
-
106  GLM_FUNC_DECL GLM_CONSTEXPR bool all(vec<L, bool, Q> const& v);
-
107 
-
115  template<length_t L, qualifier Q>
-
116  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> not_(vec<L, bool, Q> const& v);
-
117 
-
119 }//namespace glm
-
120 
-
121 #include "detail/func_vector_relational.inl"
-
GLM_FUNC_DECL GLM_CONSTEXPR bool all(vec< L, bool, Q > const &v)
Returns true if all components of x are true.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x > y.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x != y.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x <= y.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_(vec< L, bool, Q > const &v)
Returns the component-wise logical complement of x.
-
GLM_FUNC_DECL GLM_CONSTEXPR bool any(vec< L, bool, Q > const &v)
Returns true if any component of x is true.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x == y.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x >= y.
-
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison result of x < y.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_relational.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_relational.hpp
+
+
+Go to the documentation of this file.
1 
+
20 #pragma once
+
21 
+
22 #include "detail/qualifier.hpp"
+
23 #include "detail/setup.hpp"
+
24 
+
25 namespace glm
+
26 {
+
29 
+
37  template<length_t L, typename T, qualifier Q>
+
38  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> lessThan(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
39 
+
47  template<length_t L, typename T, qualifier Q>
+
48  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> lessThanEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
49 
+
57  template<length_t L, typename T, qualifier Q>
+
58  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> greaterThan(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
59 
+
67  template<length_t L, typename T, qualifier Q>
+
68  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> greaterThanEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
69 
+
77  template<length_t L, typename T, qualifier Q>
+
78  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> equal(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
79 
+
87  template<length_t L, typename T, qualifier Q>
+
88  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> notEqual(vec<L, T, Q> const& x, vec<L, T, Q> const& y);
+
89 
+
96  template<length_t L, qualifier Q>
+
97  GLM_FUNC_DECL GLM_CONSTEXPR bool any(vec<L, bool, Q> const& v);
+
98 
+
105  template<length_t L, qualifier Q>
+
106  GLM_FUNC_DECL GLM_CONSTEXPR bool all(vec<L, bool, Q> const& v);
+
107 
+
115  template<length_t L, qualifier Q>
+
116  GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> not_(vec<L, bool, Q> const& v);
+
117 
+
119 }//namespace glm
+
120 
+
121 #include "detail/func_vector_relational.inl"
+
GLM_FUNC_DECL GLM_CONSTEXPR bool all(vec< L, bool, Q > const &v)
Returns true if all components of x are true.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x > y.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x != y.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x <= y.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_(vec< L, bool, Q > const &v)
Returns the component-wise logical complement of x.
+
GLM_FUNC_DECL GLM_CONSTEXPR bool any(vec< L, bool, Q > const &v)
Returns true if any component of x is true.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x == y.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison of result x >= y.
+
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)
Returns the component-wise comparison result of x < y.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00226.html b/external/include/glm-0.9.9.8/doc/api/a00226.html index aac49f3cdf..faf34357a9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00226.html +++ b/external/include/glm-0.9.9.8/doc/api/a00226.html @@ -1,118 +1,118 @@ - - - - - - -0.9.9 API documentation: vector_uint1.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint1.hpp File Reference
-
-
- -

GLM_EXT_vector_uint1 -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

-typedef vec< 1, unsigned int, defaultp > uvec1
 1 component vector of unsigned integer numbers.
 
-

Detailed Description

-

GLM_EXT_vector_uint1

- -

Definition in file vector_uint1.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint1.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint1.hpp File Reference
+
+
+ +

GLM_EXT_vector_uint1 +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

+typedef vec< 1, unsigned int, defaultp > uvec1
 1 component vector of unsigned integer numbers.
 
+

Detailed Description

+

GLM_EXT_vector_uint1

+ +

Definition in file vector_uint1.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00226_source.html b/external/include/glm-0.9.9.8/doc/api/a00226_source.html index 7ce1e20891..ddbf4176df 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00226_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00226_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint1.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint1.hpp
-
-
-Go to the documentation of this file.
1 
-
14 #pragma once
-
15 
-
16 #include "../detail/type_vec1.hpp"
-
17 
-
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
19 # pragma message("GLM: GLM_EXT_vector_uint1 extension included")
-
20 #endif
-
21 
-
22 namespace glm
-
23 {
-
26 
-
28  typedef vec<1, unsigned int, defaultp> uvec1;
-
29 
-
31 }//namespace glm
-
32 
-
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint1.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint1.hpp
+
+
+Go to the documentation of this file.
1 
+
14 #pragma once
+
15 
+
16 #include "../detail/type_vec1.hpp"
+
17 
+
18 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
19 # pragma message("GLM: GLM_EXT_vector_uint1 extension included")
+
20 #endif
+
21 
+
22 namespace glm
+
23 {
+
26 
+
28  typedef vec<1, unsigned int, defaultp> uvec1;
+
29 
+
31 }//namespace glm
+
32 
+
vec< 1, unsigned int, defaultp > uvec1
1 component vector of unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00227.html b/external/include/glm-0.9.9.8/doc/api/a00227.html index a8e5eeb512..ef7f56de9b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00227.html +++ b/external/include/glm-0.9.9.8/doc/api/a00227.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_uint1_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint1_precision.hpp File Reference
-
-
- -

GLM_EXT_vector_uint1_precision -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 1, unsigned int, highp > highp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, lowp > lowp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, mediump > mediump_uvec1
 1 component vector of unsigned integer values. More...
 
-

Detailed Description

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint1_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint1_precision.hpp File Reference
+
+
+ +

GLM_EXT_vector_uint1_precision +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 1, unsigned int, highp > highp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, lowp > lowp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, mediump > mediump_uvec1
 1 component vector of unsigned integer values. More...
 
+

Detailed Description

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00227_source.html b/external/include/glm-0.9.9.8/doc/api/a00227_source.html index 3ca787ea13..d731352363 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00227_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00227_source.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: vector_uint1_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint1_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
11 #pragma once
-
12 
-
13 #include "../detail/type_vec1.hpp"
-
14 
-
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
16 # pragma message("GLM: GLM_EXT_vector_uint1_precision extension included")
-
17 #endif
-
18 
-
19 namespace glm
-
20 {
-
23 
-
27  typedef vec<1, unsigned int, highp> highp_uvec1;
-
28 
-
32  typedef vec<1, unsigned int, mediump> mediump_uvec1;
-
33 
-
37  typedef vec<1, unsigned int, lowp> lowp_uvec1;
-
38 
-
40 }//namespace glm
-
vec< 1, unsigned int, mediump > mediump_uvec1
1 component vector of unsigned integer values.
-
vec< 1, unsigned int, highp > highp_uvec1
1 component vector of unsigned integer values.
-
vec< 1, unsigned int, lowp > lowp_uvec1
1 component vector of unsigned integer values.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint1_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint1_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
11 #pragma once
+
12 
+
13 #include "../detail/type_vec1.hpp"
+
14 
+
15 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
16 # pragma message("GLM: GLM_EXT_vector_uint1_precision extension included")
+
17 #endif
+
18 
+
19 namespace glm
+
20 {
+
23 
+
27  typedef vec<1, unsigned int, highp> highp_uvec1;
+
28 
+
32  typedef vec<1, unsigned int, mediump> mediump_uvec1;
+
33 
+
37  typedef vec<1, unsigned int, lowp> lowp_uvec1;
+
38 
+
40 }//namespace glm
+
vec< 1, unsigned int, mediump > mediump_uvec1
1 component vector of unsigned integer values.
+
vec< 1, unsigned int, highp > highp_uvec1
1 component vector of unsigned integer values.
+
vec< 1, unsigned int, lowp > lowp_uvec1
1 component vector of unsigned integer values.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00228.html b/external/include/glm-0.9.9.8/doc/api/a00228.html index 9742dbbb88..ee04a7a402 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00228.html +++ b/external/include/glm-0.9.9.8/doc/api/a00228.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint2.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint2.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 2, unsigned int, defaultp > uvec2
 2 components vector of unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint2.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint2.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint2.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 2, unsigned int, defaultp > uvec2
 2 components vector of unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint2.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00228_source.html b/external/include/glm-0.9.9.8/doc/api/a00228_source.html index 90dd3fde61..88a97e3035 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00228_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00228_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_uint2.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint2.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<2, unsigned int, defaultp> uvec2;
-
16 
-
18 }//namespace glm
-
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint2.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint2.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<2, unsigned int, defaultp> uvec2;
+
16 
+
18 }//namespace glm
+
vec< 2, unsigned int, defaultp > uvec2
2 components vector of unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00229.html b/external/include/glm-0.9.9.8/doc/api/a00229.html index 5eb4a729f0..6171f3090a 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00229.html +++ b/external/include/glm-0.9.9.8/doc/api/a00229.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_uint2_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint2_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 2, unsigned int, highp > highp_uvec2
 2 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 2, unsigned int, lowp > lowp_uvec2
 2 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 2, unsigned int, mediump > mediump_uvec2
 2 components vector of medium qualifier unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint2_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint2_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint2_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 2, unsigned int, highp > highp_uvec2
 2 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 2, unsigned int, lowp > lowp_uvec2
 2 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 2, unsigned int, mediump > mediump_uvec2
 2 components vector of medium qualifier unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint2_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00229_source.html b/external/include/glm-0.9.9.8/doc/api/a00229_source.html index 6124c4a561..d35275a984 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00229_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00229_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint2_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint2_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec2.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<2, unsigned int, highp> highp_uvec2;
-
17 
-
22  typedef vec<2, unsigned int, mediump> mediump_uvec2;
-
23 
-
28  typedef vec<2, unsigned int, lowp> lowp_uvec2;
-
29 
-
31 }//namespace glm
-
vec< 2, unsigned int, lowp > lowp_uvec2
2 components vector of low qualifier unsigned integer numbers.
-
vec< 2, unsigned int, highp > highp_uvec2
2 components vector of high qualifier unsigned integer numbers.
-
vec< 2, unsigned int, mediump > mediump_uvec2
2 components vector of medium qualifier unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint2_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint2_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec2.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<2, unsigned int, highp> highp_uvec2;
+
17 
+
22  typedef vec<2, unsigned int, mediump> mediump_uvec2;
+
23 
+
28  typedef vec<2, unsigned int, lowp> lowp_uvec2;
+
29 
+
31 }//namespace glm
+
vec< 2, unsigned int, lowp > lowp_uvec2
2 components vector of low qualifier unsigned integer numbers.
+
vec< 2, unsigned int, highp > highp_uvec2
2 components vector of high qualifier unsigned integer numbers.
+
vec< 2, unsigned int, mediump > mediump_uvec2
2 components vector of medium qualifier unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00230.html b/external/include/glm-0.9.9.8/doc/api/a00230.html index 29a9533515..49dc86e5ce 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00230.html +++ b/external/include/glm-0.9.9.8/doc/api/a00230.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint3.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint3.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 3, unsigned int, defaultp > uvec3
 3 components vector of unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint3.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint3.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint3.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 3, unsigned int, defaultp > uvec3
 3 components vector of unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint3.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00230_source.html b/external/include/glm-0.9.9.8/doc/api/a00230_source.html index 88598d4906..b51143638d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00230_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00230_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_uint3.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint3.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<3, unsigned int, defaultp> uvec3;
-
16 
-
18 }//namespace glm
-
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint3.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint3.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<3, unsigned int, defaultp> uvec3;
+
16 
+
18 }//namespace glm
+
vec< 3, unsigned int, defaultp > uvec3
3 components vector of unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00231.html b/external/include/glm-0.9.9.8/doc/api/a00231.html index 03c004b93e..1b0174b085 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00231.html +++ b/external/include/glm-0.9.9.8/doc/api/a00231.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_uint3_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint3_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 3, unsigned int, highp > highp_uvec3
 3 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, lowp > lowp_uvec3
 3 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, mediump > mediump_uvec3
 3 components vector of medium qualifier unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint3_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint3_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint3_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 3, unsigned int, highp > highp_uvec3
 3 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, lowp > lowp_uvec3
 3 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, mediump > mediump_uvec3
 3 components vector of medium qualifier unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint3_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00231_source.html b/external/include/glm-0.9.9.8/doc/api/a00231_source.html index f010b1602d..7e61a1f98e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00231_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00231_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint3_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint3_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec3.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<3, unsigned int, highp> highp_uvec3;
-
17 
-
22  typedef vec<3, unsigned int, mediump> mediump_uvec3;
-
23 
-
28  typedef vec<3, unsigned int, lowp> lowp_uvec3;
-
29 
-
31 }//namespace glm
-
vec< 3, unsigned int, mediump > mediump_uvec3
3 components vector of medium qualifier unsigned integer numbers.
-
vec< 3, unsigned int, highp > highp_uvec3
3 components vector of high qualifier unsigned integer numbers.
-
vec< 3, unsigned int, lowp > lowp_uvec3
3 components vector of low qualifier unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint3_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint3_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec3.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<3, unsigned int, highp> highp_uvec3;
+
17 
+
22  typedef vec<3, unsigned int, mediump> mediump_uvec3;
+
23 
+
28  typedef vec<3, unsigned int, lowp> lowp_uvec3;
+
29 
+
31 }//namespace glm
+
vec< 3, unsigned int, mediump > mediump_uvec3
3 components vector of medium qualifier unsigned integer numbers.
+
vec< 3, unsigned int, highp > highp_uvec3
3 components vector of high qualifier unsigned integer numbers.
+
vec< 3, unsigned int, lowp > lowp_uvec3
3 components vector of low qualifier unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00232.html b/external/include/glm-0.9.9.8/doc/api/a00232.html index f5dea75068..db8effcb9e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00232.html +++ b/external/include/glm-0.9.9.8/doc/api/a00232.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint4.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint4.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - -

-Typedefs

typedef vec< 4, unsigned int, defaultp > uvec4
 4 components vector of unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint4.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint4.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint4.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + +

+Typedefs

typedef vec< 4, unsigned int, defaultp > uvec4
 4 components vector of unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint4.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00232_source.html b/external/include/glm-0.9.9.8/doc/api/a00232_source.html index 5fb3934aa3..e7a754f76f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00232_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00232_source.html @@ -1,111 +1,111 @@ - - - - - - -0.9.9 API documentation: vector_uint4.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint4.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
15  typedef vec<4, unsigned int, defaultp> uvec4;
-
16 
-
18 }//namespace glm
-
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint4.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint4.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
15  typedef vec<4, unsigned int, defaultp> uvec4;
+
16 
+
18 }//namespace glm
+
vec< 4, unsigned int, defaultp > uvec4
4 components vector of unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00233.html b/external/include/glm-0.9.9.8/doc/api/a00233.html index 0e1cf58d94..23e89c4703 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00233.html +++ b/external/include/glm-0.9.9.8/doc/api/a00233.html @@ -1,123 +1,123 @@ - - - - - - -0.9.9 API documentation: vector_uint4_precision.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_uint4_precision.hpp File Reference
-
-
- -

Core features -More...

- -

Go to the source code of this file.

- - - - - - - - - - - -

-Typedefs

typedef vec< 4, unsigned int, highp > highp_uvec4
 4 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, lowp > lowp_uvec4
 4 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, mediump > mediump_uvec4
 4 components vector of medium qualifier unsigned integer numbers. More...
 
-

Detailed Description

-

Core features

- -

Definition in file vector_uint4_precision.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_uint4_precision.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_uint4_precision.hpp File Reference
+
+
+ +

Core features +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + +

+Typedefs

typedef vec< 4, unsigned int, highp > highp_uvec4
 4 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, lowp > lowp_uvec4
 4 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, mediump > mediump_uvec4
 4 components vector of medium qualifier unsigned integer numbers. More...
 
+

Detailed Description

+

Core features

+ +

Definition in file vector_uint4_precision.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00233_source.html b/external/include/glm-0.9.9.8/doc/api/a00233_source.html index d340089ca2..553b9b78c9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00233_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00233_source.html @@ -1,117 +1,117 @@ - - - - - - -0.9.9 API documentation: vector_uint4_precision.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_uint4_precision.hpp
-
-
-Go to the documentation of this file.
1 
-
4 #pragma once
-
5 #include "../detail/type_vec4.hpp"
-
6 
-
7 namespace glm
-
8 {
-
11 
-
16  typedef vec<4, unsigned int, highp> highp_uvec4;
-
17 
-
22  typedef vec<4, unsigned int, mediump> mediump_uvec4;
-
23 
-
28  typedef vec<4, unsigned int, lowp> lowp_uvec4;
-
29 
-
31 }//namespace glm
-
vec< 4, unsigned int, mediump > mediump_uvec4
4 components vector of medium qualifier unsigned integer numbers.
-
vec< 4, unsigned int, highp > highp_uvec4
4 components vector of high qualifier unsigned integer numbers.
-
vec< 4, unsigned int, lowp > lowp_uvec4
4 components vector of low qualifier unsigned integer numbers.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_uint4_precision.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_uint4_precision.hpp
+
+
+Go to the documentation of this file.
1 
+
4 #pragma once
+
5 #include "../detail/type_vec4.hpp"
+
6 
+
7 namespace glm
+
8 {
+
11 
+
16  typedef vec<4, unsigned int, highp> highp_uvec4;
+
17 
+
22  typedef vec<4, unsigned int, mediump> mediump_uvec4;
+
23 
+
28  typedef vec<4, unsigned int, lowp> lowp_uvec4;
+
29 
+
31 }//namespace glm
+
vec< 4, unsigned int, mediump > mediump_uvec4
4 components vector of medium qualifier unsigned integer numbers.
+
vec< 4, unsigned int, highp > highp_uvec4
4 components vector of high qualifier unsigned integer numbers.
+
vec< 4, unsigned int, lowp > lowp_uvec4
4 components vector of low qualifier unsigned integer numbers.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00234.html b/external/include/glm-0.9.9.8/doc/api/a00234.html index 2e406bda69..358df214fa 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00234.html +++ b/external/include/glm-0.9.9.8/doc/api/a00234.html @@ -1,146 +1,146 @@ - - - - - - -0.9.9 API documentation: vector_ulp.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
vector_ulp.hpp File Reference
-
-
- -

GLM_EXT_vector_ulp -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatDistance (vec< L, float, Q > const &x, vec< L, float, Q > const &y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int64, Q > floatDistance (vec< L, double, Q > const &x, vec< L, double, Q > const &y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x)
 Return the next ULP value(s) after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
-

Detailed Description

-

GLM_EXT_vector_ulp

- -

Definition in file vector_ulp.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: vector_ulp.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
vector_ulp.hpp File Reference
+
+
+ +

GLM_EXT_vector_ulp +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatDistance (vec< L, float, Q > const &x, vec< L, float, Q > const &y)
 Return the distance in the number of ULP between 2 single-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int64, Q > floatDistance (vec< L, double, Q > const &x, vec< L, double, Q > const &y)
 Return the distance in the number of ULP between 2 double-precision floating-point scalars. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x)
 Return the next ULP value(s) after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextFloat (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance after the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x)
 Return the previous ULP value(s) before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x, int ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevFloat (vec< L, T, Q > const &x, vec< L, int, Q > const &ULPs)
 Return the value(s) ULP distance before the input value(s). More...
 
+

Detailed Description

+

GLM_EXT_vector_ulp

+ +

Definition in file vector_ulp.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00234_source.html b/external/include/glm-0.9.9.8/doc/api/a00234_source.html index 6aef8b2d0a..38f60eee19 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00234_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00234_source.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: vector_ulp.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
vector_ulp.hpp
-
-
-Go to the documentation of this file.
1 
-
17 #pragma once
-
18 
-
19 // Dependencies
-
20 #include "../ext/scalar_ulp.hpp"
-
21 
-
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
23 # pragma message("GLM: GLM_EXT_vector_ulp extension included")
-
24 #endif
-
25 
-
26 namespace glm
-
27 {
-
35  template<length_t L, typename T, qualifier Q>
-
36  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x);
-
37 
-
45  template<length_t L, typename T, qualifier Q>
-
46  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x, int ULPs);
-
47 
-
55  template<length_t L, typename T, qualifier Q>
-
56  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
-
57 
-
65  template<length_t L, typename T, qualifier Q>
-
66  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x);
-
67 
-
75  template<length_t L, typename T, qualifier Q>
-
76  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x, int ULPs);
-
77 
-
85  template<length_t L, typename T, qualifier Q>
-
86  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
-
87 
-
94  template<length_t L, typename T, qualifier Q>
-
95  GLM_FUNC_DECL vec<L, int, Q> floatDistance(vec<L, float, Q> const& x, vec<L, float, Q> const& y);
-
96 
-
103  template<length_t L, typename T, qualifier Q>
-
104  GLM_FUNC_DECL vec<L, int64, Q> floatDistance(vec<L, double, Q> const& x, vec<L, double, Q> const& y);
-
105 
-
107 }//namespace glm
-
108 
-
109 #include "vector_ulp.inl"
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: vector_ulp.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
vector_ulp.hpp
+
+
+Go to the documentation of this file.
1 
+
17 #pragma once
+
18 
+
19 // Dependencies
+
20 #include "../ext/scalar_ulp.hpp"
+
21 
+
22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
23 # pragma message("GLM: GLM_EXT_vector_ulp extension included")
+
24 #endif
+
25 
+
26 namespace glm
+
27 {
+
35  template<length_t L, typename T, qualifier Q>
+
36  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x);
+
37 
+
45  template<length_t L, typename T, qualifier Q>
+
46  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x, int ULPs);
+
47 
+
55  template<length_t L, typename T, qualifier Q>
+
56  GLM_FUNC_DECL vec<L, T, Q> nextFloat(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
+
57 
+
65  template<length_t L, typename T, qualifier Q>
+
66  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x);
+
67 
+
75  template<length_t L, typename T, qualifier Q>
+
76  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x, int ULPs);
+
77 
+
85  template<length_t L, typename T, qualifier Q>
+
86  GLM_FUNC_DECL vec<L, T, Q> prevFloat(vec<L, T, Q> const& x, vec<L, int, Q> const& ULPs);
+
87 
+
94  template<length_t L, typename T, qualifier Q>
+
95  GLM_FUNC_DECL vec<L, int, Q> floatDistance(vec<L, float, Q> const& x, vec<L, float, Q> const& y);
+
96 
+
103  template<length_t L, typename T, qualifier Q>
+
104  GLM_FUNC_DECL vec<L, int64, Q> floatDistance(vec<L, double, Q> const& x, vec<L, double, Q> const& y);
+
105 
+
107 }//namespace glm
+
108 
+
109 #include "vector_ulp.inl"
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00235.html b/external/include/glm-0.9.9.8/doc/api/a00235.html index 72c0a4c76e..f63dbaa1e6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00235.html +++ b/external/include/glm-0.9.9.8/doc/api/a00235.html @@ -1,131 +1,131 @@ - - - - - - -0.9.9 API documentation: wrap.hpp File Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
wrap.hpp File Reference
-
-
- -

GLM_GTX_wrap -More...

- -

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 Simulate GL_CLAMP OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorClamp (genType const &Texcoord)
 Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 Simulate GL_MIRROR_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 Simulate GL_REPEAT OpenGL wrap mode. More...
 
-

Detailed Description

-

GLM_GTX_wrap

-
See also
Core features (dependence)
- -

Definition in file wrap.hpp.

-
- - - - + + + + + + +0.9.9 API documentation: wrap.hpp File Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
wrap.hpp File Reference
+
+
+ +

GLM_GTX_wrap +More...

+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 Simulate GL_CLAMP OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorClamp (genType const &Texcoord)
 Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 Simulate GL_MIRROR_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 Simulate GL_REPEAT OpenGL wrap mode. More...
 
+

Detailed Description

+

GLM_GTX_wrap

+
See also
Core features (dependence)
+ +

Definition in file wrap.hpp.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00235_source.html b/external/include/glm-0.9.9.8/doc/api/a00235_source.html index e9f13f96c2..0a669d7e2e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00235_source.html +++ b/external/include/glm-0.9.9.8/doc/api/a00235_source.html @@ -1,137 +1,137 @@ - - - - - - -0.9.9 API documentation: wrap.hpp Source File - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - - -
-
- - -
- -
- - -
-
-
-
wrap.hpp
-
-
-Go to the documentation of this file.
1 
-
13 #pragma once
-
14 
-
15 // Dependency:
-
16 #include "../glm.hpp"
-
17 #include "../gtc/vec1.hpp"
-
18 
-
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
-
20 # ifndef GLM_ENABLE_EXPERIMENTAL
-
21 # pragma message("GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
-
22 # else
-
23 # pragma message("GLM: GLM_GTX_wrap extension included")
-
24 # endif
-
25 #endif
-
26 
-
27 namespace glm
-
28 {
-
31 
-
34  template<typename genType>
-
35  GLM_FUNC_DECL genType clamp(genType const& Texcoord);
-
36 
-
39  template<typename genType>
-
40  GLM_FUNC_DECL genType repeat(genType const& Texcoord);
-
41 
-
44  template<typename genType>
-
45  GLM_FUNC_DECL genType mirrorClamp(genType const& Texcoord);
-
46 
-
49  template<typename genType>
-
50  GLM_FUNC_DECL genType mirrorRepeat(genType const& Texcoord);
-
51 
-
53 }// namespace glm
-
54 
-
55 #include "wrap.inl"
-
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Simulate GL_MIRROR_REPEAT OpenGL wrap mode.
-
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Simulate GL_REPEAT OpenGL wrap mode.
-
GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)
Simulate GL_MIRRORED_REPEAT OpenGL wrap mode.
-
GLM_FUNC_DECL genType clamp(genType const &Texcoord)
Simulate GL_CLAMP OpenGL wrap mode.
-
Definition: common.hpp:20
-
- - - - + + + + + + +0.9.9 API documentation: wrap.hpp Source File + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
wrap.hpp
+
+
+Go to the documentation of this file.
1 
+
13 #pragma once
+
14 
+
15 // Dependency:
+
16 #include "../glm.hpp"
+
17 #include "../gtc/vec1.hpp"
+
18 
+
19 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
+
20 # ifndef GLM_ENABLE_EXPERIMENTAL
+
21 # pragma message("GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
+
22 # else
+
23 # pragma message("GLM: GLM_GTX_wrap extension included")
+
24 # endif
+
25 #endif
+
26 
+
27 namespace glm
+
28 {
+
31 
+
34  template<typename genType>
+
35  GLM_FUNC_DECL genType clamp(genType const& Texcoord);
+
36 
+
39  template<typename genType>
+
40  GLM_FUNC_DECL genType repeat(genType const& Texcoord);
+
41 
+
44  template<typename genType>
+
45  GLM_FUNC_DECL genType mirrorClamp(genType const& Texcoord);
+
46 
+
49  template<typename genType>
+
50  GLM_FUNC_DECL genType mirrorRepeat(genType const& Texcoord);
+
51 
+
53 }// namespace glm
+
54 
+
55 #include "wrap.inl"
+
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Simulate GL_MIRROR_REPEAT OpenGL wrap mode.
+
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Simulate GL_REPEAT OpenGL wrap mode.
+
GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)
Simulate GL_MIRRORED_REPEAT OpenGL wrap mode.
+
GLM_FUNC_DECL genType clamp(genType const &Texcoord)
Simulate GL_CLAMP OpenGL wrap mode.
+
Definition: common.hpp:20
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00241.html b/external/include/glm-0.9.9.8/doc/api/a00241.html index a22be8bca2..c986838358 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00241.html +++ b/external/include/glm-0.9.9.8/doc/api/a00241.html @@ -1,1595 +1,1595 @@ - - - - - - -0.9.9 API documentation: Common functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Common functions
-
-
- -

Provides GLSL common functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType abs (genType x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs (vec< L, T, Q > const &x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceil (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is greater than or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt (vec< L, float, Q > const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint (vec< L, float, Q > const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floor (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is less then or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 Computes and returns a * b + c. More...
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 Return x - floor(x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fract (vec< L, T, Q > const &x)
 Return x - floor(x). More...
 
template<typename genType >
GLM_FUNC_DECL genType frexp (genType x, int &exp)
 Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) More...
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat (vec< L, int, Q > const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isinf (vec< L, T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isnan (vec< L, T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename genType >
GLM_FUNC_DECL genType ldexp (genType const &x, int const &exp)
 Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType max (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, T y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType min (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT x, genTypeT y, genTypeU a)
 If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mod (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Modulus. More...
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > round (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundEven (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x)
 Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. More...
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. More...
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (T edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > trunc (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. More...
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat (vec< L, uint, Q > const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
-

Detailed Description

-

Provides GLSL common functions.

-

These all operate component-wise. The description is per component.

-

Include <glm/common.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::abs (genType x)
-
- -

Returns x if x >= 0; otherwise, it returns -x.

-
Template Parameters
- - -
genTypefloating-point or signed integer; scalar or vector types.
-
-
-
See also
GLSL abs man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::abs (vec< L, T, Q > const & x)
-
- -

Returns x if x >= 0; otherwise, it returns -x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL abs man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::ceil (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer that is greater than or equal to x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL ceil man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::clamp (genType x,
genType minVal,
genType maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See also
GLSL clamp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -

Referenced by glm::saturate().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::clamp (vec< L, T, Q > const & x,
T minVal,
T maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL clamp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::clamp (vec< L, T, Q > const & x,
vec< L, T, Q > const & minVal,
vec< L, T, Q > const & maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL clamp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::floatBitsToInt (float const & v)
-
- -

Returns a signed integer value representing the encoding of a floating-point value.

-

The floating-point value's bit-level representation is preserved.

-
See also
GLSL floatBitsToInt man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::floatBitsToInt (vec< L, float, Q > const & v)
-
- -

Returns a signed integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
Template Parameters
- - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
-
-
-
See also
GLSL floatBitsToInt man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::floatBitsToUint (float const & v)
-
- -

Returns a unsigned integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
See also
GLSL floatBitsToUint man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, uint, Q> glm::floatBitsToUint (vec< L, float, Q > const & v)
-
- -

Returns a unsigned integer value representing the encoding of a floating-point value.

-

The floatingpoint value's bit-level representation is preserved.

-
Template Parameters
- - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
-
-
-
See also
GLSL floatBitsToUint man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::floor (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer that is less then or equal to x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL floor man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fma (genType const & a,
genType const & b,
genType const & c 
)
-
- -

Computes and returns a * b + c.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL fma man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fract (genType x)
-
- -

Return x - floor(x).

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL fract man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fract (vec< L, T, Q > const & x)
-
- -

Return x - floor(x).

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL fract man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::frexp (genType x,
int & exp 
)
-
- -

Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent)

-

The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL frexp man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::intBitsToFloat (int const & v)
-
- -

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See also
GLSL intBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, float, Q> glm::intBitsToFloat (vec< L, int, Q > const & v)
-
- -

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
Template Parameters
- - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
-
-
-
See also
GLSL intBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isinf (vec< L, T, Q > const & x)
-
- -

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no infinity representations.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL isinf man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isnan (vec< L, T, Q > const & x)
-
- -

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no NaN representations.

-

/!\ When using compiler fast math, this function may fail.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL isnan man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::ldexp (genType const & x,
int const & exp 
)
-
- -

Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)

-

If this product is too large to be represented in the floating-point type, the result is undefined.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL ldexp man page;
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::max (genType x,
genType y 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See also
GLSL max man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
T y 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL max man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL max man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::min (genType x,
genType y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See also
GLSL min man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & x,
T y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL min man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL min man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genTypeT glm::mix (genTypeT x,
genTypeT y,
genTypeU a 
)
-
- -

If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.

-

The value for a is not restricted to the range [0, 1].

-

If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of 'a' that is false, the corresponding component of 'x' is returned. For a component of 'a' that is true, the corresponding component of 'y' is returned. Components of 'x' and 'y' that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.

-
See also
GLSL mix man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
-
Parameters
- - - - -
[in]xValue to interpolate.
[in]yValue to interpolate.
[in]aInterpolant.
-
-
-
Template Parameters
- - - -
genTypeTFloating point scalar or vector.
genTypeUFloating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
-
-
-
#include <glm/glm.hpp>
-
...
-
float a;
-
bool b;
- - - - -
...
-
glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors.
-
glm::vec4 s = glm::mix(g, h, b); // Returns g or h;
-
glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
-
glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
-
-

Referenced by glm::lerp().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::mod (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types, include glm/gtc/integer for integer scalar types support
QValue from qualifier enum
-
-
-
See also
GLSL mod man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::modf (genType x,
genType & i 
)
-
- -

Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).

-

Both the return value and the output parameter will have the same sign as x.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL modf man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::round (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL round man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::roundEven (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL roundEven man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
-
-New round to even technique
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::sign (vec< L, T, Q > const & x)
-
- -

Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL sign man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::smoothstep (genType edge0,
genType edge1,
genType x 
)
-
- -

Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.

-

This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 >= edge1.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL smoothstep man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::step (genType edge,
genType x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.

-
See also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::step (T edge,
vec< L, T, Q > const & x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::step (vec< L, T, Q > const & edge,
vec< L, T, Q > const & x 
)
-
- -

Returns 0.0 if x < edge, otherwise it returns 1.0.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL step man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::trunc (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL trunc man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::uintBitsToFloat (uint const & v)
-
- -

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
See also
GLSL uintBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, float, Q> glm::uintBitsToFloat (vec< L, uint, Q > const & v)
-
- -

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

-

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

-
Template Parameters
- - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
-
-
-
See also
GLSL uintBitsToFloat man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Common functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Common functions
+
+
+ +

Provides GLSL common functions. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType abs (genType x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > abs (vec< L, T, Q > const &x)
 Returns x if x >= 0; otherwise, it returns -x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceil (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is greater than or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > clamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. More...
 
GLM_FUNC_DECL int floatBitsToInt (float const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > floatBitsToInt (vec< L, float, Q > const &v)
 Returns a signed integer value representing the encoding of a floating-point value. More...
 
GLM_FUNC_DECL uint floatBitsToUint (float const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > floatBitsToUint (vec< L, float, Q > const &v)
 Returns a unsigned integer value representing the encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floor (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer that is less then or equal to x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fma (genType const &a, genType const &b, genType const &c)
 Computes and returns a * b + c. More...
 
template<typename genType >
GLM_FUNC_DECL genType fract (genType x)
 Return x - floor(x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fract (vec< L, T, Q > const &x)
 Return x - floor(x). More...
 
template<typename genType >
GLM_FUNC_DECL genType frexp (genType x, int &exp)
 Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) More...
 
GLM_FUNC_DECL float intBitsToFloat (int const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > intBitsToFloat (vec< L, int, Q > const &v)
 Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isinf (vec< L, T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isnan (vec< L, T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename genType >
GLM_FUNC_DECL genType ldexp (genType const &x, int const &exp)
 Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType max (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, T y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType min (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT mix (genTypeT x, genTypeT y, genTypeU a)
 If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mod (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Modulus. More...
 
template<typename genType >
GLM_FUNC_DECL genType modf (genType x, genType &i)
 Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > round (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundEven (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x)
 Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. More...
 
template<typename genType >
GLM_FUNC_DECL genType smoothstep (genType edge0, genType edge1, genType x)
 Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. More...
 
template<typename genType >
GLM_FUNC_DECL genType step (genType edge, genType x)
 Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (T edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > step (vec< L, T, Q > const &edge, vec< L, T, Q > const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > trunc (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. More...
 
GLM_FUNC_DECL float uintBitsToFloat (uint const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > uintBitsToFloat (vec< L, uint, Q > const &v)
 Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. More...
 
+

Detailed Description

+

Provides GLSL common functions.

+

These all operate component-wise. The description is per component.

+

Include <glm/common.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::abs (genType x)
+
+ +

Returns x if x >= 0; otherwise, it returns -x.

+
Template Parameters
+ + +
genTypefloating-point or signed integer; scalar or vector types.
+
+
+
See also
GLSL abs man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::abs (vec< L, T, Q > const & x)
+
+ +

Returns x if x >= 0; otherwise, it returns -x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL abs man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::ceil (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer that is greater than or equal to x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL ceil man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::clamp (genType x,
genType minVal,
genType maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL clamp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +

Referenced by glm::saturate().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::clamp (vec< L, T, Q > const & x,
T minVal,
T maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL clamp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::clamp (vec< L, T, Q > const & x,
vec< L, T, Q > const & minVal,
vec< L, T, Q > const & maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL clamp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::floatBitsToInt (float const & v)
+
+ +

Returns a signed integer value representing the encoding of a floating-point value.

+

The floating-point value's bit-level representation is preserved.

+
See also
GLSL floatBitsToInt man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::floatBitsToInt (vec< L, float, Q > const & v)
+
+ +

Returns a signed integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
Template Parameters
+ + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
+
+
+
See also
GLSL floatBitsToInt man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::floatBitsToUint (float const & v)
+
+ +

Returns a unsigned integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
See also
GLSL floatBitsToUint man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, uint, Q> glm::floatBitsToUint (vec< L, float, Q > const & v)
+
+ +

Returns a unsigned integer value representing the encoding of a floating-point value.

+

The floatingpoint value's bit-level representation is preserved.

+
Template Parameters
+ + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
+
+
+
See also
GLSL floatBitsToUint man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::floor (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer that is less then or equal to x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL floor man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fma (genType const & a,
genType const & b,
genType const & c 
)
+
+ +

Computes and returns a * b + c.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL fma man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fract (genType x)
+
+ +

Return x - floor(x).

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL fract man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fract (vec< L, T, Q > const & x)
+
+ +

Return x - floor(x).

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL fract man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::frexp (genType x,
int & exp 
)
+
+ +

Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent)

+

The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL frexp man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::intBitsToFloat (int const & v)
+
+ +

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL intBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, float, Q> glm::intBitsToFloat (vec< L, int, Q > const & v)
+
+ +

Returns a floating-point value corresponding to a signed integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
Template Parameters
+ + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
+
+
+
See also
GLSL intBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isinf (vec< L, T, Q > const & x)
+
+ +

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no infinity representations.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL isinf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isnan (vec< L, T, Q > const & x)
+
+ +

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no NaN representations.

+

/!\ When using compiler fast math, this function may fail.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL isnan man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ldexp (genType const & x,
int const & exp 
)
+
+ +

Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent)

+

If this product is too large to be represented in the floating-point type, the result is undefined.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL ldexp man page;
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::max (genType x,
genType y 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL max man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
T y 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL max man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL max man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::min (genType x,
genType y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
GLSL min man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & x,
T y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL min man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL min man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genTypeT glm::mix (genTypeT x,
genTypeT y,
genTypeU a 
)
+
+ +

If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a.

+

The value for a is not restricted to the range [0, 1].

+

If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of 'a' that is false, the corresponding component of 'x' is returned. For a component of 'a' that is true, the corresponding component of 'y' is returned. Components of 'x' and 'y' that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.

+
See also
GLSL mix man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
Parameters
+ + + + +
[in]xValue to interpolate.
[in]yValue to interpolate.
[in]aInterpolant.
+
+
+
Template Parameters
+ + + +
genTypeTFloating point scalar or vector.
genTypeUFloating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT.
+
+
+
#include <glm/glm.hpp>
+
...
+
float a;
+
bool b;
+ + + + +
...
+
glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors.
+
glm::vec4 s = glm::mix(g, h, b); // Returns g or h;
+
glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second.
+
glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
+
+

Referenced by glm::lerp().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::mod (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types, include glm/gtc/integer for integer scalar types support
QValue from qualifier enum
+
+
+
See also
GLSL mod man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::modf (genType x,
genType & i 
)
+
+ +

Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).

+

Both the return value and the output parameter will have the same sign as x.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL modf man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::round (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL round man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::roundEven (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.)

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL roundEven man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+
+New round to even technique
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::sign (vec< L, T, Q > const & x)
+
+ +

Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL sign man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::smoothstep (genType edge0,
genType edge1,
genType x 
)
+
+ +

Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.

+

This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); return t * t * (3 - 2 * t); Results are undefined if edge0 >= edge1.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL smoothstep man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::step (genType edge,
genType x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0 for each component of a genType.

+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::step (T edge,
vec< L, T, Q > const & x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::step (vec< L, T, Q > const & edge,
vec< L, T, Q > const & x 
)
+
+ +

Returns 0.0 if x < edge, otherwise it returns 1.0.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL step man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::trunc (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL trunc man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::uintBitsToFloat (uint const & v)
+
+ +

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
See also
GLSL uintBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, float, Q> glm::uintBitsToFloat (vec< L, uint, Q > const & v)
+
+ +

Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value.

+

If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

+
Template Parameters
+ + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
QValue from qualifier enum
+
+
+
See also
GLSL uintBitsToFloat man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00242.html b/external/include/glm-0.9.9.8/doc/api/a00242.html index b3bcdd5499..3cead978ff 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00242.html +++ b/external/include/glm-0.9.9.8/doc/api/a00242.html @@ -1,375 +1,375 @@ - - - - - - -0.9.9 API documentation: Exponential functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Exponential functions
-
-
- -

Provides GLSL exponential functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp (vec< L, T, Q > const &v)
 Returns the natural exponentiation of x, i.e., e^x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp2 (vec< L, T, Q > const &v)
 Returns 2 raised to the v power. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > inversesqrt (vec< L, T, Q > const &v)
 Returns the reciprocal of the positive square root of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log (vec< L, T, Q > const &v)
 Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log2 (vec< L, T, Q > const &v)
 Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > pow (vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
 Returns 'base' raised to the power 'exponent'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sqrt (vec< L, T, Q > const &v)
 Returns the positive square root of v. More...
 
-

Detailed Description

-

Provides GLSL exponential functions.

-

These all operate component-wise. The description is per component.

-

Include <glm/exponential.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::exp (vec< L, T, Q > const & v)
-
- -

Returns the natural exponentiation of x, i.e., e^x.

-
Parameters
- - -
vexp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL exp man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::exp2 (vec< L, T, Q > const & v)
-
- -

Returns 2 raised to the v power.

-
Parameters
- - -
vexp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL exp2 man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::inversesqrt (vec< L, T, Q > const & v)
-
- -

Returns the reciprocal of the positive square root of v.

-
Parameters
- - -
vinversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL inversesqrt man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::log (vec< L, T, Q > const & v)
-
- -

Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.

-

Results are undefined if v <= 0.

-
Parameters
- - -
vlog function is defined for input values of v defined in the range (0, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL log man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::log2 (vec< L, T, Q > const & v)
-
- -

Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.

-
Parameters
- - -
vlog2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL log2 man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::pow (vec< L, T, Q > const & base,
vec< L, T, Q > const & exponent 
)
-
- -

Returns 'base' raised to the power 'exponent'.

-
Parameters
- - - -
baseFloating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type qualifier.
exponentFloating point value representing the 'exponent'.
-
-
-
See also
GLSL pow man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::sqrt (vec< L, T, Q > const & v)
-
- -

Returns the positive square root of v.

-
Parameters
- - -
vsqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type qualifier.
-
-
-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL sqrt man page
-
-GLSL 4.20.8 specification, section 8.2 Exponential Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Exponential functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Exponential functions
+
+
+ +

Provides GLSL exponential functions. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp (vec< L, T, Q > const &v)
 Returns the natural exponentiation of x, i.e., e^x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > exp2 (vec< L, T, Q > const &v)
 Returns 2 raised to the v power. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > inversesqrt (vec< L, T, Q > const &v)
 Returns the reciprocal of the positive square root of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log (vec< L, T, Q > const &v)
 Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > log2 (vec< L, T, Q > const &v)
 Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > pow (vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)
 Returns 'base' raised to the power 'exponent'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sqrt (vec< L, T, Q > const &v)
 Returns the positive square root of v. More...
 
+

Detailed Description

+

Provides GLSL exponential functions.

+

These all operate component-wise. The description is per component.

+

Include <glm/exponential.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::exp (vec< L, T, Q > const & v)
+
+ +

Returns the natural exponentiation of x, i.e., e^x.

+
Parameters
+ + +
vexp function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL exp man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::exp2 (vec< L, T, Q > const & v)
+
+ +

Returns 2 raised to the v power.

+
Parameters
+ + +
vexp2 function is defined for input values of v defined in the range (inf-, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL exp2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::inversesqrt (vec< L, T, Q > const & v)
+
+ +

Returns the reciprocal of the positive square root of v.

+
Parameters
+ + +
vinversesqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL inversesqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::log (vec< L, T, Q > const & v)
+
+ +

Returns the natural logarithm of v, i.e., returns the value y which satisfies the equation x = e^y.

+

Results are undefined if v <= 0.

+
Parameters
+ + +
vlog function is defined for input values of v defined in the range (0, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL log man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::log2 (vec< L, T, Q > const & v)
+
+ +

Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.

+
Parameters
+ + +
vlog2 function is defined for input values of v defined in the range (0, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL log2 man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::pow (vec< L, T, Q > const & base,
vec< L, T, Q > const & exponent 
)
+
+ +

Returns 'base' raised to the power 'exponent'.

+
Parameters
+ + + +
baseFloating point value. pow function is defined for input values of 'base' defined in the range (inf-, inf+) in the limit of the type qualifier.
exponentFloating point value representing the 'exponent'.
+
+
+
See also
GLSL pow man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::sqrt (vec< L, T, Q > const & v)
+
+ +

Returns the positive square root of v.

+
Parameters
+ + +
vsqrt function is defined for input values of v defined in the range [0, inf+) in the limit of the type qualifier.
+
+
+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL sqrt man page
+
+GLSL 4.20.8 specification, section 8.2 Exponential Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00243.html b/external/include/glm-0.9.9.8/doc/api/a00243.html index 5db7c79a6e..834d89cb2f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00243.html +++ b/external/include/glm-0.9.9.8/doc/api/a00243.html @@ -1,2717 +1,2717 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_matrix_clip_space - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_matrix_clip_space
-
-
- -

Defines functions that generate clip space transformation matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH (T fovy, T aspect, T near)
 Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH (T fovy, T aspect, T near)
 Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top)
 Creates a matrix for projecting two-dimensional coordinates onto the screen. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH (T fov, T width, T height, T near, T far)
 Builds a left handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH (T fov, T width, T height, T near, T far)
 Builds a right handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
-

Detailed Description

-

Defines functions that generate clip space transformation matrices.

-

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

-

Include <glm/ext/matrix_clip_space.hpp> to use the features of this extension.

-
See also
GLM_EXT_matrix_transform
-
-GLM_EXT_matrix_projection
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustum (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.

-

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
glFrustum man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a left handed frustum matrix.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_NO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a left handed frustum matrix.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_ZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a left handed frustum matrix.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumNO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a right handed frustum matrix.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_NO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a right handed frustum matrix.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_ZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a right handed frustum matrix.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
-
- -

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspective (T fovy,
T aspect,
T near 
)
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.

-
Parameters
- - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveLH (T fovy,
T aspect,
T near 
)
-
- -

Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite.

-
Parameters
- - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveRH (T fovy,
T aspect,
T near 
)
-
- -

Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite.

-
Parameters
- - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho (T left,
T right,
T bottom,
T top 
)
-
- -

Creates a matrix for projecting two-dimensional coordinates onto the screen.

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
-
-gluOrtho2D man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.

-

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
-
-glOrtho man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_NO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_ZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoNO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_NO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_ZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
-
- -

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspective (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition.

-

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Parameters
- - - - - -
fovySpecifies the field of view angle in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
-
See also
gluPerspective man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFov (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition.

-

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a left handed perspective projection matrix based on a field of view.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_NO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_ZO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovNO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a right handed perspective projection matrix based on a field of view.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_NO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_ZO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovZO (T fov,
T width,
T height,
T near,
T far 
)
-
- -

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - - -
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a left handed, symetric perspective-view frustum.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_NO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a left handed, symetric perspective-view frustum.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_ZO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a left handed, symetric perspective-view frustum.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveNO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a right handed, symetric perspective-view frustum.

-

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_NO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a right handed, symetric perspective-view frustum.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_ZO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a right handed, symetric perspective-view frustum.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveZO (T fovy,
T aspect,
T near,
T far 
)
-
- -

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective (T fovy,
T aspect,
T near 
)
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

-
Parameters
- - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective (T fovy,
T aspect,
T near,
T ep 
)
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

-
Parameters
- - - - - -
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
epEpsilon
-
-
-
Template Parameters
- - -
TA floating-point scalar type
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_matrix_clip_space + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_matrix_clip_space
+
+
+ +

Defines functions that generate clip space transformation matrices. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustum (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumLH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a left handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumNO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_NO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumRH_ZO (T left, T right, T bottom, T top, T near, T far)
 Creates a right handed frustum matrix. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > frustumZO (T left, T right, T bottom, T top, T near, T far)
 Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveLH (T fovy, T aspect, T near)
 Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > infinitePerspectiveRH (T fovy, T aspect, T near)
 Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top)
 Creates a matrix for projecting two-dimensional coordinates onto the screen. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > ortho (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoLH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoNO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_NO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoRH_ZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > orthoZO (T left, T right, T bottom, T top, T zNear, T zFar)
 Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspective (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFov (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH (T fov, T width, T height, T near, T far)
 Builds a left handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovLH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovNO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH (T fov, T width, T height, T near, T far)
 Builds a right handed perspective projection matrix based on a field of view. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_NO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovRH_ZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using right-handed coordinates. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveFovZO (T fov, T width, T height, T near, T far)
 Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveLH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a left handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveNO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_NO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveRH_ZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a right handed, symetric perspective-view frustum. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > perspectiveZO (T fovy, T aspect, T near, T far)
 Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > tweakedInfinitePerspective (T fovy, T aspect, T near, T ep)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping. More...
 
+

Detailed Description

+

Defines functions that generate clip space transformation matrices.

+

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

+

Include <glm/ext/matrix_clip_space.hpp> to use the features of this extension.

+
See also
GLM_EXT_matrix_transform
+
+GLM_EXT_matrix_projection
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustum (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a frustum matrix with default handedness, using the default handedness and default near and far clip planes definition.

+

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
glFrustum man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a left handed frustum matrix.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_NO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a left handed frustum matrix.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumLH_ZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a left handed frustum matrix.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumNO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a right handed frustum matrix.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_NO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a right handed frustum matrix.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumRH_ZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a right handed frustum matrix.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::frustumZO (T left,
T right,
T bottom,
T top,
T near,
T far 
)
+
+ +

Creates a frustum matrix using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspective (T fovy,
T aspect,
T near 
)
+
+ +

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite with default handedness.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveLH (T fovy,
T aspect,
T near 
)
+
+ +

Creates a matrix for a left handed, symmetric perspective-view frustum with far plane at infinite.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::infinitePerspectiveRH (T fovy,
T aspect,
T near 
)
+
+ +

Creates a matrix for a right handed, symmetric perspective-view frustum with far plane at infinite.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho (T left,
T right,
T bottom,
T top 
)
+
+ +

Creates a matrix for projecting two-dimensional coordinates onto the screen.

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top, T const& zNear, T const& zFar)
+
+gluOrtho2D man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::ortho (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using the default handedness and default near and far clip planes definition.

+

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+
+glOrtho man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_NO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume using right-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoLH_ZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoNO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_NO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using right-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoRH_ZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::orthoZO (T left,
T right,
T bottom,
T top,
T zNear,
T zFar 
)
+
+ +

Creates a matrix for an orthographic parallel viewing volume, using left-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
- glm::ortho(T const& left, T const& right, T const& bottom, T const& top)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspective (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition.

+

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Parameters
+ + + + + +
fovySpecifies the field of view angle in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+
See also
gluPerspective man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFov (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view and the default handedness and default near and far clip planes definition.

+

To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a left handed perspective projection matrix based on a field of view.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_NO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovLH_ZO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using left-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovNO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a right handed perspective projection matrix based on a field of view.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_NO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovRH_ZO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using right-handed coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveFovZO (T fov,
T width,
T height,
T near,
T far 
)
+
+ +

Builds a perspective projection matrix based on a field of view using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + + +
fovExpressed in radians.
widthWidth of the viewport
heightHeight of the viewport
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a left handed, symetric perspective-view frustum.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_NO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a left handed, symetric perspective-view frustum.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveLH_ZO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a left handed, symetric perspective-view frustum.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveNO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a right handed, symetric perspective-view frustum.

+

If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition) Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_NO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a right handed, symetric perspective-view frustum.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveRH_ZO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a right handed, symetric perspective-view frustum.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::perspectiveZO (T fovy,
T aspect,
T near,
T far 
)
+
+ +

Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
farSpecifies the distance from the viewer to the far clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective (T fovy,
T aspect,
T near 
)
+
+ +

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

+
Parameters
+ + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::tweakedInfinitePerspective (T fovy,
T aspect,
T near,
T ep 
)
+
+ +

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

+
Parameters
+ + + + + +
fovySpecifies the field of view angle, in degrees, in the y direction. Expressed in radians.
aspectSpecifies the aspect ratio that determines the field of view in the x direction. The aspect ratio is the ratio of x (width) to y (height).
nearSpecifies the distance from the viewer to the near clipping plane (always positive).
epEpsilon
+
+
+
Template Parameters
+ + +
TA floating-point scalar type
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00244.html b/external/include/glm-0.9.9.8/doc/api/a00244.html index e3831653c5..968de61bc0 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00244.html +++ b/external/include/glm-0.9.9.8/doc/api/a00244.html @@ -1,97 +1,97 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_matrix_common - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_EXT_matrix_common
-
-
- -

Defines functions for common matrix operations. -More...

-

Detailed Description

-

Defines functions for common matrix operations.

-

Include <glm/ext/matrix_common.hpp> to use the features of this extension.

-
See also
GLM_EXT_matrix_common
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_matrix_common + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_EXT_matrix_common
+
+
+ +

Defines functions for common matrix operations. +More...

+

Detailed Description

+

Defines functions for common matrix operations.

+

Include <glm/ext/matrix_common.hpp> to use the features of this extension.

+
See also
GLM_EXT_matrix_common
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00245.html b/external/include/glm-0.9.9.8/doc/api/a00245.html index edd3e9aeea..04801c0eba 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00245.html +++ b/external/include/glm-0.9.9.8/doc/api/a00245.html @@ -1,539 +1,539 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_matrix_projection - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_matrix_projection
-
-
- -

Functions that generate common projection transformation matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q, typename U >
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix (vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
 Define a picking region. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > project (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectNO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectZO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProject (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
-

Detailed Description

-

Functions that generate common projection transformation matrices.

-

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

-

Include <glm/ext/matrix_projection.hpp> to use the features of this extension.

-
See also
GLM_EXT_matrix_transform
-
-GLM_EXT_matrix_clip_space
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::pickMatrix (vec< 2, T, Q > const & center,
vec< 2, T, Q > const & delta,
vec< 4, U, Q > const & viewport 
)
-
- -

Define a picking region.

-
Parameters
- - - - -
centerSpecify the center of a picking region in window coordinates.
deltaSpecify the width and height, respectively, of the picking region in window coordinates.
viewportRendering viewport
-
-
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluPickMatrix man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::project (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition.

-

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Parameters
- - - - - -
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
-
-
-
Returns
Return the computed window coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluProject man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::projectNO (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
-
-
-
Returns
Return the computed window coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluProject man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::projectZO (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - -
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
-
-
-
Returns
Return the computed window coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluProject man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::unProject (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition.

-

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

-
Parameters
- - - - - -
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
-
-
-
Returns
Returns the computed object coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluUnProject man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::unProjectNO (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

-
Parameters
- - - - - -
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
-
-
-
Returns
Returns the computed object coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluUnProject man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::unProjectZO (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
-
- -

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

-

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

-
Parameters
- - - - - -
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
-
-
-
Returns
Returns the computed object coordinates.
-
Template Parameters
- - - -
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
-
-
-
See also
gluUnProject man page
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_matrix_projection + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_matrix_projection
+
+
+ +

Functions that generate common projection transformation matrices. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q, typename U >
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix (vec< 2, T, Q > const &center, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
 Define a picking region. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > project (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectNO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > projectZO (vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProject (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO (vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates. More...
 
+

Detailed Description

+

Functions that generate common projection transformation matrices.

+

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

+

Include <glm/ext/matrix_projection.hpp> to use the features of this extension.

+
See also
GLM_EXT_matrix_transform
+
+GLM_EXT_matrix_clip_space
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::pickMatrix (vec< 2, T, Q > const & center,
vec< 2, T, Q > const & delta,
vec< 4, U, Q > const & viewport 
)
+
+ +

Define a picking region.

+
Parameters
+ + + + +
centerSpecify the center of a picking region in window coordinates.
deltaSpecify the width and height, respectively, of the picking region in window coordinates.
viewportRendering viewport
+
+
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluPickMatrix man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::project (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates using default near and far clip planes definition.

+

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Parameters
+ + + + + +
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
+
+
+
Returns
Return the computed window coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluProject man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::projectNO (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
+
+
+
Returns
Return the computed window coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluProject man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::projectZO (vec< 3, T, Q > const & obj,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + +
objSpecify the object coordinates.
modelSpecifies the current modelview matrix
projSpecifies the current projection matrix
viewportSpecifies the current viewport
+
+
+
Returns
Return the computed window coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluProject man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::unProject (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates using default near and far clip planes definition.

+

To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.

+
Parameters
+ + + + + +
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
+
+
+
Returns
Returns the computed object coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluUnProject man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::unProjectNO (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)

+
Parameters
+ + + + + +
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
+
+
+
Returns
Returns the computed object coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluUnProject man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::unProjectZO (vec< 3, T, Q > const & win,
mat< 4, 4, T, Q > const & model,
mat< 4, 4, T, Q > const & proj,
vec< 4, U, Q > const & viewport 
)
+
+ +

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

+

The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)

+
Parameters
+ + + + + +
winSpecify the window coordinates to be mapped.
modelSpecifies the modelview matrix
projSpecifies the projection matrix
viewportSpecifies the viewport
+
+
+
Returns
Returns the computed object coordinates.
+
Template Parameters
+ + + +
TNative type used for the computation. Currently supported: half (not recommended), float or double.
UCurrently supported: Floating-point types and integer types.
+
+
+
See also
gluUnProject man page
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00246.html b/external/include/glm-0.9.9.8/doc/api/a00246.html index 16c8b2c65e..64b3af4030 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00246.html +++ b/external/include/glm-0.9.9.8/doc/api/a00246.html @@ -1,576 +1,576 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_matrix_relational - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_matrix_relational
-
-
- -

Exposes comparison functions for matrix types that take a user defined epsilon values. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise not-equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
-

Detailed Description

-

Exposes comparison functions for matrix types that take a user defined epsilon values.

-

Include <glm/ext/matrix_relational.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_relational
-
-GLM_EXT_scalar_relational
-
-GLM_EXT_quaternion_relational
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
-
- -

Perform a component-wise equal-to comparison of two matrices.

-

Return a boolean vector which components value is True if this expression is satisfied per column of the matrices.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, T, Q > const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
int ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, int, Q > const & ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
-
- -

Perform a component-wise not-equal-to comparison of two matrices.

-

Return a boolean vector which components value is True if this expression is satisfied per column of the matrices.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, T, Q > const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
int ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, int, Q > const & ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_matrix_relational + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_matrix_relational
+
+
+ +

Exposes comparison functions for matrix types that take a user defined epsilon values. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > equal (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Perform a component-wise not-equal-to comparison of two matrices. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< C, bool, Q > notEqual (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
+

Detailed Description

+

Exposes comparison functions for matrix types that take a user defined epsilon values.

+

Include <glm/ext/matrix_relational.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_relational
+
+GLM_EXT_scalar_relational
+
+GLM_EXT_quaternion_relational
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
+
+ +

Perform a component-wise equal-to comparison of two matrices.

+

Return a boolean vector which components value is True if this expression is satisfied per column of the matrices.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, T, Q > const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
int ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::equal (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, int, Q > const & ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
+
+ +

Perform a component-wise not-equal-to comparison of two matrices.

+

Return a boolean vector which components value is True if this expression is satisfied per column of the matrices.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, T, Q > const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
int ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<C, bool, Q> glm::notEqual (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y,
vec< C, int, Q > const & ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number of columns of the matrix
RInteger between 1 and 4 included that qualify the number of rows of the matrix
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00247.html b/external/include/glm-0.9.9.8/doc/api/a00247.html index c355f9aef5..f83bd3c5f8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00247.html +++ b/external/include/glm-0.9.9.8/doc/api/a00247.html @@ -1,444 +1,444 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_matrix_transform - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_matrix_transform
-
-
- -

Defines functions that generate common transformation matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType identity ()
 Builds an identity matrix.
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a look at view matrix based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a left handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a right handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from an axis vector and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a scale 4 * 4 matrix created from 3 scalars. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a translation 4 * 4 matrix created from a vector of 3 components. More...
 
-

Detailed Description

-

Defines functions that generate common transformation matrices.

-

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

-

Include <glm/ext/matrix_transform.hpp> to use the features of this extension.

-
See also
GLM_EXT_matrix_projection
-
-GLM_EXT_matrix_clip_space
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAt (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
-
- -

Build a look at view matrix based on the default handedness.

-
Parameters
- - - - -
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
-
-gluLookAt man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAtLH (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
-
- -

Build a left handed look at view matrix.

-
Parameters
- - - - -
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAtRH (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
-
- -

Build a right handed look at view matrix.

-
Parameters
- - - - -
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotate (mat< 4, 4, T, Q > const & m,
T angle,
vec< 3, T, Q > const & axis 
)
-
- -

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

-
Parameters
- - - - -
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, recommended to be normalized.
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
-
-- rotate(T angle, vec<3, T, Q> const& v)
-
-glRotate man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scale (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & v 
)
-
- -

Builds a scale 4 * 4 matrix created from 3 scalars.

-
Parameters
- - - -
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- scale(mat<4, 4, T, Q> const& m, T x, T y, T z)
-
-- scale(vec<3, T, Q> const& v)
-
-glScale man page
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::translate (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & v 
)
-
- -

Builds a translation 4 * 4 matrix created from a vector of 3 components.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
#include <glm/glm.hpp>
- -
...
-
glm::mat4 m = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
-
// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
-
// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
-
// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
-
// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
-
See also
- translate(mat<4, 4, T, Q> const& m, T x, T y, T z)
-
-- translate(vec<3, T, Q> const& v)
-
-glTranslate man page
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_matrix_transform + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_matrix_transform
+
+
+ +

Defines functions that generate common transformation matrices. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType identity ()
 Builds an identity matrix.
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAt (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a look at view matrix based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtLH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a left handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > lookAtRH (vec< 3, T, Q > const &eye, vec< 3, T, Q > const &center, vec< 3, T, Q > const &up)
 Build a right handed look at view matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from an axis vector and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a scale 4 * 4 matrix created from 3 scalars. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)
 Builds a translation 4 * 4 matrix created from a vector of 3 components. More...
 
+

Detailed Description

+

Defines functions that generate common transformation matrices.

+

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

+

Include <glm/ext/matrix_transform.hpp> to use the features of this extension.

+
See also
GLM_EXT_matrix_projection
+
+GLM_EXT_matrix_clip_space
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAt (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
+
+ +

Build a look at view matrix based on the default handedness.

+
Parameters
+ + + + +
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
+
+gluLookAt man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAtLH (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
+
+ +

Build a left handed look at view matrix.

+
Parameters
+ + + + +
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::lookAtRH (vec< 3, T, Q > const & eye,
vec< 3, T, Q > const & center,
vec< 3, T, Q > const & up 
)
+
+ +

Build a right handed look at view matrix.

+
Parameters
+ + + + +
eyePosition of the camera
centerPosition where the camera is looking at
upNormalized up vector, how the camera is oriented. Typically (0, 0, 1)
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal) frustum(T const& left, T const& right, T const& bottom, T const& top, T const& nearVal, T const& farVal)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotate (mat< 4, 4, T, Q > const & m,
T angle,
vec< 3, T, Q > const & axis 
)
+
+ +

Builds a rotation 4 * 4 matrix created from an axis vector and an angle.

+
Parameters
+ + + + +
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, recommended to be normalized.
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
+
+- rotate(T angle, vec<3, T, Q> const& v)
+
+glRotate man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scale (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & v 
)
+
+ +

Builds a scale 4 * 4 matrix created from 3 scalars.

+
Parameters
+ + + +
mInput matrix multiplied by this scale matrix.
vRatio of scaling for each axis.
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- scale(mat<4, 4, T, Q> const& m, T x, T y, T z)
+
+- scale(vec<3, T, Q> const& v)
+
+glScale man page
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::translate (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & v 
)
+
+ +

Builds a translation 4 * 4 matrix created from a vector of 3 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
#include <glm/glm.hpp>
+ +
...
+
glm::mat4 m = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
+
// m[0][0] == 1.0f, m[0][1] == 0.0f, m[0][2] == 0.0f, m[0][3] == 0.0f
+
// m[1][0] == 0.0f, m[1][1] == 1.0f, m[1][2] == 0.0f, m[1][3] == 0.0f
+
// m[2][0] == 0.0f, m[2][1] == 0.0f, m[2][2] == 1.0f, m[2][3] == 0.0f
+
// m[3][0] == 1.0f, m[3][1] == 1.0f, m[3][2] == 1.0f, m[3][3] == 1.0f
+
See also
- translate(mat<4, 4, T, Q> const& m, T x, T y, T z)
+
+- translate(vec<3, T, Q> const& v)
+
+glTranslate man page
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00248.html b/external/include/glm-0.9.9.8/doc/api/a00248.html index f9c13d234d..99cec01efc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00248.html +++ b/external/include/glm-0.9.9.8/doc/api/a00248.html @@ -1,402 +1,402 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_common - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_common
-
-
- -

Provides common functions for quaternion types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > conjugate (qua< T, Q > const &q)
 Returns the q conjugate. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > inverse (qua< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isinf (qua< T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isnan (qua< T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > lerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > mix (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
-

Detailed Description

-

Provides common functions for quaternion types.

-

Include <glm/ext/quaternion_common.hpp> to use the features of this extension.

-
See also
GLM_EXT_scalar_common
-
-GLM_EXT_vector_common
-
-GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-
-GLM_EXT_quaternion_exponential
-
-GLM_EXT_quaternion_geometric
-
-GLM_EXT_quaternion_relational
-
-GLM_EXT_quaternion_trigonometric
-
-GLM_EXT_quaternion_transform
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::conjugate (qua< T, Q > const & q)
-
- -

Returns the q conjugate.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::inverse (qua< T, Q > const & q)
-
- -

Returns the q inverse.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::isinf (qua< T, Q > const & x)
-
- -

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no infinity representations.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::isnan (qua< T, Q > const & x)
-
- -

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

-

Returns false otherwise, including for implementations with no NaN representations.

-

/!\ When using compiler fast math, this function may fail.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::lerp (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
-
- -

Linear interpolation of two quaternions.

-

The interpolation is oriented.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::mix (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
-
See also
- slerp(qua<T, Q> const& x, qua<T, Q> const& y, T const& a)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::slerp (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
-
- -

Spherical linear interpolation of two quaternions.

-

The interpolation always take the short path and the rotation is performed at constant speed.

-
Parameters
- - - - -
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_common + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_common
+
+
+ +

Provides common functions for quaternion types. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > conjugate (qua< T, Q > const &q)
 Returns the q conjugate. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > inverse (qua< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isinf (qua< T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isnan (qua< T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > lerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > mix (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
+

Detailed Description

+

Provides common functions for quaternion types.

+

Include <glm/ext/quaternion_common.hpp> to use the features of this extension.

+
See also
GLM_EXT_scalar_common
+
+GLM_EXT_vector_common
+
+GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+
+GLM_EXT_quaternion_exponential
+
+GLM_EXT_quaternion_geometric
+
+GLM_EXT_quaternion_relational
+
+GLM_EXT_quaternion_trigonometric
+
+GLM_EXT_quaternion_transform
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::conjugate (qua< T, Q > const & q)
+
+ +

Returns the q conjugate.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::inverse (qua< T, Q > const & q)
+
+ +

Returns the q inverse.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::isinf (qua< T, Q > const & x)
+
+ +

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no infinity representations.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::isnan (qua< T, Q > const & x)
+
+ +

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

+

Returns false otherwise, including for implementations with no NaN representations.

+

/!\ When using compiler fast math, this function may fail.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::lerp (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
+
+ +

Linear interpolation of two quaternions.

+

The interpolation is oriented.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::mix (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
+
+ +

Spherical linear interpolation of two quaternions.

+

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+
See also
- slerp(qua<T, Q> const& x, qua<T, Q> const& y, T const& a)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::slerp (qua< T, Q > const & x,
qua< T, Q > const & y,
T a 
)
+
+ +

Spherical linear interpolation of two quaternions.

+

The interpolation always take the short path and the rotation is performed at constant speed.

+
Parameters
+ + + + +
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00249.html b/external/include/glm-0.9.9.8/doc/api/a00249.html index 9c3d3ceb9c..3a3aa361c9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00249.html +++ b/external/include/glm-0.9.9.8/doc/api/a00249.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_double - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_double
-
-
- -

Exposes double-precision floating point quaternion type. -More...

- - - - - -

-Typedefs

-typedef qua< double, defaultp > dquat
 Quaternion of double-precision floating-point numbers.
 
-

Detailed Description

-

Exposes double-precision floating point quaternion type.

-

Include <glm/ext/quaternion_double.hpp> to use the features of this extension.

-
See also
GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double_precision
-
-GLM_EXT_quaternion_common
-
-GLM_EXT_quaternion_exponential
-
-GLM_EXT_quaternion_geometric
-
-GLM_EXT_quaternion_relational
-
-GLM_EXT_quaternion_transform
-
-GLM_EXT_quaternion_trigonometric
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_double + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_double
+
+
+ +

Exposes double-precision floating point quaternion type. +More...

+ + + + + +

+Typedefs

+typedef qua< double, defaultp > dquat
 Quaternion of double-precision floating-point numbers.
 
+

Detailed Description

+

Exposes double-precision floating point quaternion type.

+

Include <glm/ext/quaternion_double.hpp> to use the features of this extension.

+
See also
GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double_precision
+
+GLM_EXT_quaternion_common
+
+GLM_EXT_quaternion_exponential
+
+GLM_EXT_quaternion_geometric
+
+GLM_EXT_quaternion_relational
+
+GLM_EXT_quaternion_transform
+
+GLM_EXT_quaternion_trigonometric
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00250.html b/external/include/glm-0.9.9.8/doc/api/a00250.html index 653596ba33..c82b3f6400 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00250.html +++ b/external/include/glm-0.9.9.8/doc/api/a00250.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_double_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_double_precision
-
-
- -

Exposes double-precision floating point quaternion type with various precision in term of ULPs. -More...

- - - - - - - - - - - -

-Typedefs

typedef qua< double, highp > highp_dquat
 Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, lowp > lowp_dquat
 Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, mediump > mediump_dquat
 Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-

Exposes double-precision floating point quaternion type with various precision in term of ULPs.

-

Include <glm/ext/quaternion_double_precision.hpp> to use the features of this extension.

-

Typedef Documentation

- -
-
- - - - -
typedef qua< double, highp > highp_dquat
-
- -

Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLM_EXT_quaternion_double_precision
- -

Definition at line 38 of file quaternion_double_precision.hpp.

- -
-
- -
-
- - - - -
typedef qua< double, lowp > lowp_dquat
-
- -

Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLM_EXT_quaternion_double_precision
- -

Definition at line 28 of file quaternion_double_precision.hpp.

- -
-
- -
-
- - - - -
typedef qua< double, mediump > mediump_dquat
-
- -

Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLM_EXT_quaternion_double_precision
- -

Definition at line 33 of file quaternion_double_precision.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_double_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_double_precision
+
+
+ +

Exposes double-precision floating point quaternion type with various precision in term of ULPs. +More...

+ + + + + + + + + + + +

+Typedefs

typedef qua< double, highp > highp_dquat
 Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, lowp > lowp_dquat
 Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef qua< double, mediump > mediump_dquat
 Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+

Exposes double-precision floating point quaternion type with various precision in term of ULPs.

+

Include <glm/ext/quaternion_double_precision.hpp> to use the features of this extension.

+

Typedef Documentation

+ +
+
+ + + + +
typedef qua< double, highp > highp_dquat
+
+ +

Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLM_EXT_quaternion_double_precision
+ +

Definition at line 38 of file quaternion_double_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< double, lowp > lowp_dquat
+
+ +

Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLM_EXT_quaternion_double_precision
+ +

Definition at line 28 of file quaternion_double_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< double, mediump > mediump_dquat
+
+ +

Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLM_EXT_quaternion_double_precision
+ +

Definition at line 33 of file quaternion_double_precision.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00251.html b/external/include/glm-0.9.9.8/doc/api/a00251.html index 38c349d748..7f58a3e873 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00251.html +++ b/external/include/glm-0.9.9.8/doc/api/a00251.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_exponential - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_EXT_quaternion_exponential
-
-
- -

Provides exponential functions for quaternion types. -More...

-

Provides exponential functions for quaternion types.

-

Include <glm/ext/quaternion_exponential.hpp> to use the features of this extension.

-
See also
core_exponential
-
-GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_exponential + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_EXT_quaternion_exponential
+
+
+ +

Provides exponential functions for quaternion types. +More...

+

Provides exponential functions for quaternion types.

+

Include <glm/ext/quaternion_exponential.hpp> to use the features of this extension.

+
See also
core_exponential
+
+GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00252.html b/external/include/glm-0.9.9.8/doc/api/a00252.html index 7df0acba17..902bd318a7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00252.html +++ b/external/include/glm-0.9.9.8/doc/api/a00252.html @@ -1,121 +1,121 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_float - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_float
-
-
- -

Exposes single-precision floating point quaternion type. -More...

- - - - - -

-Typedefs

-typedef qua< float, defaultp > quat
 Quaternion of single-precision floating-point numbers.
 
-

Detailed Description

-

Exposes single-precision floating point quaternion type.

-

Include <glm/ext/quaternion_float.hpp> to use the features of this extension.

-
See also
GLM_EXT_quaternion_double
-
-GLM_EXT_quaternion_float_precision
-
-GLM_EXT_quaternion_common
-
-GLM_EXT_quaternion_exponential
-
-GLM_EXT_quaternion_geometric
-
-GLM_EXT_quaternion_relational
-
-GLM_EXT_quaternion_transform
-
-GLM_EXT_quaternion_trigonometric
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_float + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_float
+
+
+ +

Exposes single-precision floating point quaternion type. +More...

+ + + + + +

+Typedefs

+typedef qua< float, defaultp > quat
 Quaternion of single-precision floating-point numbers.
 
+

Detailed Description

+

Exposes single-precision floating point quaternion type.

+

Include <glm/ext/quaternion_float.hpp> to use the features of this extension.

+
See also
GLM_EXT_quaternion_double
+
+GLM_EXT_quaternion_float_precision
+
+GLM_EXT_quaternion_common
+
+GLM_EXT_quaternion_exponential
+
+GLM_EXT_quaternion_geometric
+
+GLM_EXT_quaternion_relational
+
+GLM_EXT_quaternion_transform
+
+GLM_EXT_quaternion_trigonometric
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00253.html b/external/include/glm-0.9.9.8/doc/api/a00253.html index c0632b31e3..8b283481e2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00253.html +++ b/external/include/glm-0.9.9.8/doc/api/a00253.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_float_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_float_precision
-
-
- -

Exposes single-precision floating point quaternion type with various precision in term of ULPs. -More...

- - - - - - - - - - - -

-Typedefs

-typedef qua< float, highp > highp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef qua< float, lowp > lowp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef qua< float, mediump > mediump_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-

Detailed Description

-

Exposes single-precision floating point quaternion type with various precision in term of ULPs.

-

Include <glm/ext/quaternion_float_precision.hpp> to use the features of this extension.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_float_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_float_precision
+
+
+ +

Exposes single-precision floating point quaternion type with various precision in term of ULPs. +More...

+ + + + + + + + + + + +

+Typedefs

+typedef qua< float, highp > highp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef qua< float, lowp > lowp_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef qua< float, mediump > mediump_quat
 Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+

Detailed Description

+

Exposes single-precision floating point quaternion type with various precision in term of ULPs.

+

Include <glm/ext/quaternion_float_precision.hpp> to use the features of this extension.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00254.html b/external/include/glm-0.9.9.8/doc/api/a00254.html index 6f6bfd89ec..7290e3aa1f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00254.html +++ b/external/include/glm-0.9.9.8/doc/api/a00254.html @@ -1,248 +1,248 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_geometric - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_geometric
-
-
- -

Provides geometric functions for quaternion types. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER qua< T, Q > cross (qua< T, Q > const &q1, qua< T, Q > const &q2)
 Compute a cross product. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T dot (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length (qua< T, Q > const &q)
 Returns the norm of a quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > normalize (qua< T, Q > const &q)
 Returns the normalized quaternion. More...
 
-

Detailed Description

-

Provides geometric functions for quaternion types.

-

Include <glm/ext/quaternion_geometric.hpp> to use the features of this extension.

-
See also
core_geometric
-
-GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER qua<T, Q> glm::cross (qua< T, Q > const & q1,
qua< T, Q > const & q2 
)
-
- -

Compute a cross product.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_geometric
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::dot (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

-
Template Parameters
- - - -
TFloating-point scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_geometric
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::length (qua< T, Q > const & q)
-
- -

Returns the norm of a quaternions.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_geometric
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::normalize (qua< T, Q > const & q)
-
- -

Returns the normalized quaternion.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_geometric
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_geometric + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_geometric
+
+
+ +

Provides geometric functions for quaternion types. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER qua< T, Q > cross (qua< T, Q > const &q1, qua< T, Q > const &q2)
 Compute a cross product. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T dot (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ... More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length (qua< T, Q > const &q)
 Returns the norm of a quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > normalize (qua< T, Q > const &q)
 Returns the normalized quaternion. More...
 
+

Detailed Description

+

Provides geometric functions for quaternion types.

+

Include <glm/ext/quaternion_geometric.hpp> to use the features of this extension.

+
See also
core_geometric
+
+GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER qua<T, Q> glm::cross (qua< T, Q > const & q1,
qua< T, Q > const & q2 
)
+
+ +

Compute a cross product.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_geometric
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::dot (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...

+
Template Parameters
+ + + +
TFloating-point scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_geometric
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length (qua< T, Q > const & q)
+
+ +

Returns the norm of a quaternions.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_geometric
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::normalize (qua< T, Q > const & q)
+
+ +

Returns the normalized quaternion.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_geometric
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00255.html b/external/include/glm-0.9.9.8/doc/api/a00255.html index ec4dc8ade8..9894367379 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00255.html +++ b/external/include/glm-0.9.9.8/doc/api/a00255.html @@ -1,280 +1,280 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_relational - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_relational
-
-
- -

Exposes comparison functions for quaternion types that take a user defined epsilon values. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
-

Detailed Description

-

Exposes comparison functions for quaternion types that take a user defined epsilon values.

-

Include <glm/ext/quaternion_relational.hpp> to use the features of this extension.

-
See also
core_vector_relational
-
-GLM_EXT_vector_relational
-
-GLM_EXT_matrix_relational
-
-GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::equal (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x == y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::equal (qua< T, Q > const & x,
qua< T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::notEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x != y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::notEqual (qua< T, Q > const & x,
qua< T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_relational + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_relational
+
+
+ +

Exposes comparison functions for quaternion types that take a user defined epsilon values. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > equal (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > notEqual (qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
+

Detailed Description

+

Exposes comparison functions for quaternion types that take a user defined epsilon values.

+

Include <glm/ext/quaternion_relational.hpp> to use the features of this extension.

+
See also
core_vector_relational
+
+GLM_EXT_vector_relational
+
+GLM_EXT_matrix_relational
+
+GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::equal (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x == y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::equal (qua< T, Q > const & x,
qua< T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::notEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x != y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::notEqual (qua< T, Q > const & x,
qua< T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00256.html b/external/include/glm-0.9.9.8/doc/api/a00256.html index 9cdacbd1eb..73bbcd5555 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00256.html +++ b/external/include/glm-0.9.9.8/doc/api/a00256.html @@ -1,293 +1,293 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_transform - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_transform
-
-
- -

Provides transformation functions for quaternion types. -More...

- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > exp (qua< T, Q > const &q)
 Returns a exponential of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > log (qua< T, Q > const &q)
 Returns a logarithm of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > pow (qua< T, Q > const &q, T y)
 Returns a quaternion raised to a power. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotate (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > sqrt (qua< T, Q > const &q)
 Returns the square root of a quaternion. More...
 
-

Detailed Description

-

Provides transformation functions for quaternion types.

-

Include <glm/ext/quaternion_transform.hpp> to use the features of this extension.

-
See also
GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-
-GLM_EXT_quaternion_exponential
-
-GLM_EXT_quaternion_geometric
-
-GLM_EXT_quaternion_relational
-
-GLM_EXT_quaternion_trigonometric
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::exp (qua< T, Q > const & q)
-
- -

Returns a exponential of a quaternion.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::log (qua< T, Q > const & q)
-
- -

Returns a logarithm of a quaternion.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::pow (qua< T, Q > const & q,
T y 
)
-
- -

Returns a quaternion raised to a power.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::rotate (qua< T, Q > const & q,
T const & angle,
vec< 3, T, Q > const & axis 
)
-
- -

Rotates a quaternion from a vector of 3 components axis and an angle.

-
Parameters
- - - - -
qSource orientation
angleAngle expressed in radians.
axisAxis of the rotation
-
-
-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::sqrt (qua< T, Q > const & q)
-
- -

Returns the square root of a quaternion.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_transform + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_transform
+
+
+ +

Provides transformation functions for quaternion types. +More...

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > exp (qua< T, Q > const &q)
 Returns a exponential of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > log (qua< T, Q > const &q)
 Returns a logarithm of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > pow (qua< T, Q > const &q, T y)
 Returns a quaternion raised to a power. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotate (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > sqrt (qua< T, Q > const &q)
 Returns the square root of a quaternion. More...
 
+

Detailed Description

+

Provides transformation functions for quaternion types.

+

Include <glm/ext/quaternion_transform.hpp> to use the features of this extension.

+
See also
GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+
+GLM_EXT_quaternion_exponential
+
+GLM_EXT_quaternion_geometric
+
+GLM_EXT_quaternion_relational
+
+GLM_EXT_quaternion_trigonometric
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::exp (qua< T, Q > const & q)
+
+ +

Returns a exponential of a quaternion.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::log (qua< T, Q > const & q)
+
+ +

Returns a logarithm of a quaternion.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::pow (qua< T, Q > const & q,
T y 
)
+
+ +

Returns a quaternion raised to a power.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::rotate (qua< T, Q > const & q,
T const & angle,
vec< 3, T, Q > const & axis 
)
+
+ +

Rotates a quaternion from a vector of 3 components axis and an angle.

+
Parameters
+ + + + +
qSource orientation
angleAngle expressed in radians.
axisAxis of the rotation
+
+
+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::sqrt (qua< T, Q > const & q)
+
+ +

Returns the square root of a quaternion.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00257.html b/external/include/glm-0.9.9.8/doc/api/a00257.html index df4639eef4..486375f459 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00257.html +++ b/external/include/glm-0.9.9.8/doc/api/a00257.html @@ -1,218 +1,218 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_quaternion_trigonometric - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_quaternion_trigonometric
-
-
- -

Provides trigonometric functions for quaternion types. -More...

- - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T angle (qua< T, Q > const &x)
 Returns the quaternion rotation angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > angleAxis (T const &angle, vec< 3, T, Q > const &axis)
 Build a quaternion from an angle and a normalized axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > axis (qua< T, Q > const &x)
 Returns the q rotation axis. More...
 
-

Detailed Description

-

Provides trigonometric functions for quaternion types.

-

Include <glm/ext/quaternion_trigonometric.hpp> to use the features of this extension.

-
See also
GLM_EXT_quaternion_float
-
-GLM_EXT_quaternion_double
-
-GLM_EXT_quaternion_exponential
-
-GLM_EXT_quaternion_geometric
-
-GLM_EXT_quaternion_relational
-
-GLM_EXT_quaternion_transform
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::angle (qua< T, Q > const & x)
-
- -

Returns the quaternion rotation angle.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::angleAxis (T const & angle,
vec< 3, T, Q > const & axis 
)
-
- -

Build a quaternion from an angle and a normalized axis.

-
Parameters
- - - -
angleAngle expressed in radians.
axisAxis of the quaternion, must be normalized.
-
-
-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::axis (qua< T, Q > const & x)
-
- -

Returns the q rotation axis.

-
Template Parameters
- - - -
TA floating-point scalar type
QA value from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_quaternion_trigonometric + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_quaternion_trigonometric
+
+
+ +

Provides trigonometric functions for quaternion types. +More...

+ + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T angle (qua< T, Q > const &x)
 Returns the quaternion rotation angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > angleAxis (T const &angle, vec< 3, T, Q > const &axis)
 Build a quaternion from an angle and a normalized axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > axis (qua< T, Q > const &x)
 Returns the q rotation axis. More...
 
+

Detailed Description

+

Provides trigonometric functions for quaternion types.

+

Include <glm/ext/quaternion_trigonometric.hpp> to use the features of this extension.

+
See also
GLM_EXT_quaternion_float
+
+GLM_EXT_quaternion_double
+
+GLM_EXT_quaternion_exponential
+
+GLM_EXT_quaternion_geometric
+
+GLM_EXT_quaternion_relational
+
+GLM_EXT_quaternion_transform
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::angle (qua< T, Q > const & x)
+
+ +

Returns the quaternion rotation angle.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::angleAxis (T const & angle,
vec< 3, T, Q > const & axis 
)
+
+ +

Build a quaternion from an angle and a normalized axis.

+
Parameters
+ + + +
angleAngle expressed in radians.
axisAxis of the quaternion, must be normalized.
+
+
+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::axis (qua< T, Q > const & x)
+
+ +

Returns the q rotation axis.

+
Template Parameters
+ + + +
TA floating-point scalar type
QA value from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00258.html b/external/include/glm-0.9.9.8/doc/api/a00258.html index 8777405989..532bab8250 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00258.html +++ b/external/include/glm-0.9.9.8/doc/api/a00258.html @@ -1,570 +1,570 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_common - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_scalar_common
-
-
- -

Exposes min and max functions for 3 to 4 scalar parameters. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fmax (T a, T b)
 Returns the maximum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C, T D)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b)
 Returns the minimum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c, T d)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

Exposes min and max functions for 3 to 4 scalar parameters.

-

Include <glm/ext/scalar_common.hpp> to use the features of this extension.

-
See also
Common functions
-
-GLM_EXT_vector_common
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmax (T a,
T b 
)
-
- -

Returns the maximum component-wise values of 2 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmax (T a,
T b,
T C 
)
-
- -

Returns the maximum component-wise values of 3 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmax (T a,
T b,
T C,
T D 
)
-
- -

Returns the maximum component-wise values of 4 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmin (T a,
T b 
)
-
- -

Returns the minimum component-wise values of 2 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmin (T a,
T b,
T c 
)
-
- -

Returns the minimum component-wise values of 3 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fmin (T a,
T b,
T c,
T d 
)
-
- -

Returns the minimum component-wise values of 4 inputs.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::max (T a,
T b,
T c 
)
-
- -

Returns the maximum component-wise values of 3 inputs.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::max (T a,
T b,
T c,
T d 
)
-
- -

Returns the maximum component-wise values of 4 inputs.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::min (T a,
T b,
T c 
)
-
- -

Returns the minimum component-wise values of 3 inputs.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::min (T a,
T b,
T c,
T d 
)
-
- -

Returns the minimum component-wise values of 4 inputs.

-
Template Parameters
- - -
TA floating-point scalar type.
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_common + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_scalar_common
+
+
+ +

Exposes min and max functions for 3 to 4 scalar parameters. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fmax (T a, T b)
 Returns the maximum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmax (T a, T b, T C, T D)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b)
 Returns the minimum component-wise values of 2 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T fmin (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c)
 Returns the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T a, T b, T c, T d)
 Returns the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c)
 Returns the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T a, T b, T c, T d)
 Returns the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

Exposes min and max functions for 3 to 4 scalar parameters.

+

Include <glm/ext/scalar_common.hpp> to use the features of this extension.

+
See also
Common functions
+
+GLM_EXT_vector_common
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmax (T a,
T b 
)
+
+ +

Returns the maximum component-wise values of 2 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmax (T a,
T b,
T C 
)
+
+ +

Returns the maximum component-wise values of 3 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmax (T a,
T b,
T C,
T D 
)
+
+ +

Returns the maximum component-wise values of 4 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmin (T a,
T b 
)
+
+ +

Returns the minimum component-wise values of 2 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmin (T a,
T b,
T c 
)
+
+ +

Returns the minimum component-wise values of 3 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fmin (T a,
T b,
T c,
T d 
)
+
+ +

Returns the minimum component-wise values of 4 inputs.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::max (T a,
T b,
T c 
)
+
+ +

Returns the maximum component-wise values of 3 inputs.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::max (T a,
T b,
T c,
T d 
)
+
+ +

Returns the maximum component-wise values of 4 inputs.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::min (T a,
T b,
T c 
)
+
+ +

Returns the minimum component-wise values of 3 inputs.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::min (T a,
T b,
T c,
T d 
)
+
+ +

Returns the minimum component-wise values of 4 inputs.

+
Template Parameters
+ + +
TA floating-point scalar type.
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00259.html b/external/include/glm-0.9.9.8/doc/api/a00259.html index daa503ede3..c34c059927 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00259.html +++ b/external/include/glm-0.9.9.8/doc/api/a00259.html @@ -1,112 +1,112 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_constants - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_scalar_constants
-
-
- -

Provides a list of constants and precomputed useful values. -More...

- - - - - - - - - - -

-Functions

-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon ()
 Return the epsilon constant for floating point types.
 
-template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType pi ()
 Return the pi constant for floating point types.
 
-

Detailed Description

-

Provides a list of constants and precomputed useful values.

-

Include <glm/ext/scalar_constants.hpp> to use the features of this extension.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_constants + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_scalar_constants
+
+
+ +

Provides a list of constants and precomputed useful values. +More...

+ + + + + + + + + + +

+Functions

+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon ()
 Return the epsilon constant for floating point types.
 
+template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType pi ()
 Return the pi constant for floating point types.
 
+

Detailed Description

+

Provides a list of constants and precomputed useful values.

+

Include <glm/ext/scalar_constants.hpp> to use the features of this extension.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00260.html b/external/include/glm-0.9.9.8/doc/api/a00260.html index d61e288b5e..256c6f51db 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00260.html +++ b/external/include/glm-0.9.9.8/doc/api/a00260.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_int_sized - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_scalar_int_sized
-
-
- -

Exposes sized signed integer scalar types. -More...

- - - - - - - - - - - - - - -

-Typedefs

-typedef detail::int16 int16
 16 bit signed integer type.
 
-typedef detail::int32 int32
 32 bit signed integer type.
 
-typedef detail::int64 int64
 64 bit signed integer type.
 
-typedef detail::int8 int8
 8 bit signed integer type.
 
-

Detailed Description

-

Exposes sized signed integer scalar types.

-

Include <glm/ext/scalar_int_sized.hpp> to use the features of this extension.

-
See also
GLM_EXT_scalar_uint_sized
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_int_sized + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_scalar_int_sized
+
+
+ +

Exposes sized signed integer scalar types. +More...

+ + + + + + + + + + + + + + +

+Typedefs

+typedef detail::int16 int16
 16 bit signed integer type.
 
+typedef detail::int32 int32
 32 bit signed integer type.
 
+typedef detail::int64 int64
 64 bit signed integer type.
 
+typedef detail::int8 int8
 8 bit signed integer type.
 
+

Detailed Description

+

Exposes sized signed integer scalar types.

+

Include <glm/ext/scalar_int_sized.hpp> to use the features of this extension.

+
See also
GLM_EXT_scalar_uint_sized
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00261.html b/external/include/glm-0.9.9.8/doc/api/a00261.html index d73b3d4896..9772b95437 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00261.html +++ b/external/include/glm-0.9.9.8/doc/api/a00261.html @@ -1,336 +1,336 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_integer - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_scalar_integer
-
-
- -

Include <glm/ext/scalar_integer.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genIUType >
GLM_FUNC_DECL int findNSB (genIUType x, int significantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType v, genIUType Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType v)
 Return true if the value is a power of two number. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextMultiple (genIUType v, genIUType Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevMultiple (genIUType v, genIUType Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
-

Detailed Description

-

Include <glm/ext/scalar_integer.hpp> to use the features of this extension.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int glm::findNSB (genIUType x,
int significantBitCount 
)
-
- -

Returns the bit number of the Nth significant bit set to 1 in the binary representation of value.

-

If value bitcount is less than the Nth significant bit, -1 will be returned.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar types.
-
-
-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isMultiple (genIUType v,
genIUType Multiple 
)
-
- -

Return true if the 'Value' is a multiple of 'Multiple'.

-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL bool glm::isPowerOfTwo (genIUType v)
-
- -

Return true if the value is a power of two number.

-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::nextMultiple (genIUType v,
genIUType Multiple 
)
-
- -

Higher multiple number of Source.

-
Template Parameters
- - -
genIUTypeInteger scalar or vector types.
-
-
-
Parameters
- - - -
vSource value to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::nextPowerOfTwo (genIUType v)
-
- -

Return the power of two number which value is just higher the input value, round up to a power of two.

-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::prevMultiple (genIUType v,
genIUType Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - -
genIUTypeInteger scalar or vector types.
-
-
-
Parameters
- - - -
vSource value to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_scalar_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::prevPowerOfTwo (genIUType v)
-
- -

Return the power of two number which value is just lower the input value, round down to a power of two.

-
See also
GLM_EXT_scalar_integer
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_integer + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_scalar_integer
+
+
+ +

Include <glm/ext/scalar_integer.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL int findNSB (genIUType x, int significantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isMultiple (genIUType v, genIUType Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<typename genIUType >
GLM_FUNC_DECL bool isPowerOfTwo (genIUType v)
 Return true if the value is a power of two number. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextMultiple (genIUType v, genIUType Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType nextPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevMultiple (genIUType v, genIUType Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType prevPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
+

Detailed Description

+

Include <glm/ext/scalar_integer.hpp> to use the features of this extension.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int glm::findNSB (genIUType x,
int significantBitCount 
)
+
+ +

Returns the bit number of the Nth significant bit set to 1 in the binary representation of value.

+

If value bitcount is less than the Nth significant bit, -1 will be returned.

+
Template Parameters
+ + +
genIUTypeSigned or unsigned integer scalar types.
+
+
+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isMultiple (genIUType v,
genIUType Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL bool glm::isPowerOfTwo (genIUType v)
+
+ +

Return true if the value is a power of two number.

+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::nextMultiple (genIUType v,
genIUType Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + +
genIUTypeInteger scalar or vector types.
+
+
+
Parameters
+ + + +
vSource value to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::nextPowerOfTwo (genIUType v)
+
+ +

Return the power of two number which value is just higher the input value, round up to a power of two.

+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::prevMultiple (genIUType v,
genIUType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genIUTypeInteger scalar or vector types.
+
+
+
Parameters
+ + + +
vSource value to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_scalar_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::prevPowerOfTwo (genIUType v)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
See also
GLM_EXT_scalar_integer
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00262.html b/external/include/glm-0.9.9.8/doc/api/a00262.html index 429cef78f4..fa299f3103 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00262.html +++ b/external/include/glm-0.9.9.8/doc/api/a00262.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_relational - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_EXT_scalar_relational
-
-
- -

Exposes comparison functions for scalar types that take a user defined epsilon values. -More...

-

Exposes comparison functions for scalar types that take a user defined epsilon values.

-

Include <glm/ext/scalar_relational.hpp> to use the features of this extension.

-
See also
core_vector_relational
-
-GLM_EXT_vector_relational
-
-GLM_EXT_matrix_relational
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_relational + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_EXT_scalar_relational
+
+
+ +

Exposes comparison functions for scalar types that take a user defined epsilon values. +More...

+

Exposes comparison functions for scalar types that take a user defined epsilon values.

+

Include <glm/ext/scalar_relational.hpp> to use the features of this extension.

+
See also
core_vector_relational
+
+GLM_EXT_vector_relational
+
+GLM_EXT_matrix_relational
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00263.html b/external/include/glm-0.9.9.8/doc/api/a00263.html index dedea00c06..8a4cbfca88 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00263.html +++ b/external/include/glm-0.9.9.8/doc/api/a00263.html @@ -1,119 +1,119 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_uint_sized - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_scalar_uint_sized
-
-
- -

Exposes sized unsigned integer scalar types. -More...

- - - - - - - - - - - - - - -

-Typedefs

-typedef detail::uint16 uint16
 16 bit unsigned integer type.
 
-typedef detail::uint32 uint32
 32 bit unsigned integer type.
 
-typedef detail::uint64 uint64
 64 bit unsigned integer type.
 
-typedef detail::uint8 uint8
 8 bit unsigned integer type.
 
-

Detailed Description

-

Exposes sized unsigned integer scalar types.

-

Include <glm/ext/scalar_uint_sized.hpp> to use the features of this extension.

-
See also
GLM_EXT_scalar_int_sized
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_uint_sized + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_scalar_uint_sized
+
+
+ +

Exposes sized unsigned integer scalar types. +More...

+ + + + + + + + + + + + + + +

+Typedefs

+typedef detail::uint16 uint16
 16 bit unsigned integer type.
 
+typedef detail::uint32 uint32
 32 bit unsigned integer type.
 
+typedef detail::uint64 uint64
 64 bit unsigned integer type.
 
+typedef detail::uint8 uint8
 8 bit unsigned integer type.
 
+

Detailed Description

+

Exposes sized unsigned integer scalar types.

+

Include <glm/ext/scalar_uint_sized.hpp> to use the features of this extension.

+
See also
GLM_EXT_scalar_int_sized
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00264.html b/external/include/glm-0.9.9.8/doc/api/a00264.html index b4b4077cf5..69fc2f915c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00264.html +++ b/external/include/glm-0.9.9.8/doc/api/a00264.html @@ -1,99 +1,99 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_scalar_ulp - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_EXT_scalar_ulp
-
-
- -

Allow the measurement of the accuracy of a function against a reference implementation. -More...

-

Allow the measurement of the accuracy of a function against a reference implementation.

-

This extension works on floating-point data and provide results in ULP.

-

Include <glm/ext/scalar_ulp.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_ulp
-
-GLM_EXT_scalar_relational
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_scalar_ulp + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_EXT_scalar_ulp
+
+
+ +

Allow the measurement of the accuracy of a function against a reference implementation. +More...

+

Allow the measurement of the accuracy of a function against a reference implementation.

+

This extension works on floating-point data and provide results in ULP.

+

Include <glm/ext/scalar_ulp.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_ulp
+
+GLM_EXT_scalar_relational
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00265.html b/external/include/glm-0.9.9.8/doc/api/a00265.html index 56bc893c43..0daa238f08 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00265.html +++ b/external/include/glm-0.9.9.8/doc/api/a00265.html @@ -1,107 +1,107 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_bool1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_bool1
-
-
- -

Exposes bvec1 vector type. -More...

- - - - - -

-Typedefs

-typedef vec< 1, bool, defaultp > bvec1
 1 components vector of boolean.
 
-

Detailed Description

-

Exposes bvec1 vector type.

-

Include <glm/ext/vector_bool1.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_bool1_precision extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_bool1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_bool1
+
+
+ +

Exposes bvec1 vector type. +More...

+ + + + + +

+Typedefs

+typedef vec< 1, bool, defaultp > bvec1
 1 components vector of boolean.
 
+

Detailed Description

+

Exposes bvec1 vector type.

+

Include <glm/ext/vector_bool1.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_bool1_precision extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00266.html b/external/include/glm-0.9.9.8/doc/api/a00266.html index 646598596d..77a77f2d2d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00266.html +++ b/external/include/glm-0.9.9.8/doc/api/a00266.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_bool1_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_bool1_precision
-
-
- -

Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types. -More...

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, bool, highp > highp_bvec1
 1 component vector of bool values.
 
-typedef vec< 1, bool, lowp > lowp_bvec1
 1 component vector of bool values.
 
-typedef vec< 1, bool, mediump > mediump_bvec1
 1 component vector of bool values.
 
-

Detailed Description

-

Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.

-

Include <glm/ext/vector_bool1_precision.hpp> to use the features of this extension.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_bool1_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_bool1_precision
+
+
+ +

Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types. +More...

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, bool, highp > highp_bvec1
 1 component vector of bool values.
 
+typedef vec< 1, bool, lowp > lowp_bvec1
 1 component vector of bool values.
 
+typedef vec< 1, bool, mediump > mediump_bvec1
 1 component vector of bool values.
 
+

Detailed Description

+

Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.

+

Include <glm/ext/vector_bool1_precision.hpp> to use the features of this extension.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00267.html b/external/include/glm-0.9.9.8/doc/api/a00267.html index 75f51e8f82..d7b3e507e4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00267.html +++ b/external/include/glm-0.9.9.8/doc/api/a00267.html @@ -1,674 +1,674 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_common - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_common
-
-
- -

Exposes min and max functions for 3 to 4 vector parameters. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, T b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Return the minimum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Return the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

Exposes min and max functions for 3 to 4 vector parameters.

-

Include <glm/ext/vector_common.hpp> to use the features of this extension.

-
See also
core_common
-
-GLM_EXT_scalar_common
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
T b 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & x,
T y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
std::fmin documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & z 
)
-
- -

Return the maximum component-wise values of 3 inputs.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & z,
vec< L, T, Q > const & w 
)
-
- -

Return the maximum component-wise values of 4 inputs.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
-
- -

Return the minimum component-wise values of 3 inputs.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_common + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_common
+
+
+ +

Exposes min and max functions for 3 to 4 vector parameters. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, T b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmax (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if x < y; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, T y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmin (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Returns y if y < x; otherwise, it returns x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > max (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)
 Return the minimum component-wise values of 3 inputs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > min (vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)
 Return the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

Exposes min and max functions for 3 to 4 vector parameters.

+

Include <glm/ext/vector_common.hpp> to use the features of this extension.

+
See also
core_common
+
+GLM_EXT_scalar_common
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
T b 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmax (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & x,
T y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmin (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
std::fmin documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & z 
)
+
+ +

Return the maximum component-wise values of 3 inputs.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::max (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & z,
vec< L, T, Q > const & w 
)
+
+ +

Return the maximum component-wise values of 4 inputs.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c 
)
+
+ +

Return the minimum component-wise values of 3 inputs.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::min (vec< L, T, Q > const & a,
vec< L, T, Q > const & b,
vec< L, T, Q > const & c,
vec< L, T, Q > const & d 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00268.html b/external/include/glm-0.9.9.8/doc/api/a00268.html index 22acfca030..b4c4b4e96e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00268.html +++ b/external/include/glm-0.9.9.8/doc/api/a00268.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_double1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_double1
-
-
- -

Exposes double-precision floating point vector type with one component. -More...

- - - - - -

-Typedefs

-typedef vec< 1, double, defaultp > dvec1
 1 components vector of double-precision floating-point numbers.
 
-

Detailed Description

-

Exposes double-precision floating point vector type with one component.

-

Include <glm/ext/vector_double1.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_double1_precision extension.
-
-GLM_EXT_vector_float1 extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_double1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_double1
+
+
+ +

Exposes double-precision floating point vector type with one component. +More...

+ + + + + +

+Typedefs

+typedef vec< 1, double, defaultp > dvec1
 1 components vector of double-precision floating-point numbers.
 
+

Detailed Description

+

Exposes double-precision floating point vector type with one component.

+

Include <glm/ext/vector_double1.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_double1_precision extension.
+
+GLM_EXT_vector_float1 extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00269.html b/external/include/glm-0.9.9.8/doc/api/a00269.html index 4ed2d00300..14aa0c429c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00269.html +++ b/external/include/glm-0.9.9.8/doc/api/a00269.html @@ -1,115 +1,115 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_double1_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_double1_precision
-
-
- -

Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types. -More...

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, double, highp > highp_dvec1
 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, lowp > lowp_dvec1
 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, mediump > mediump_dvec1
 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-

Detailed Description

-

Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.

-

Include <glm/ext/vector_double1_precision.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_double1
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_double1_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_double1_precision
+
+
+ +

Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types. +More...

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, double, highp > highp_dvec1
 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, lowp > lowp_dvec1
 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, mediump > mediump_dvec1
 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+

Detailed Description

+

Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.

+

Include <glm/ext/vector_double1_precision.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_double1
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00270.html b/external/include/glm-0.9.9.8/doc/api/a00270.html index cc6544ae08..89ebe04e97 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00270.html +++ b/external/include/glm-0.9.9.8/doc/api/a00270.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_float1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_float1
-
-
- -

Exposes single-precision floating point vector type with one component. -More...

- - - - - -

-Typedefs

-typedef vec< 1, float, defaultp > vec1
 1 components vector of single-precision floating-point numbers.
 
-

Detailed Description

-

Exposes single-precision floating point vector type with one component.

-

Include <glm/ext/vector_float1.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_float1_precision extension.
-
-GLM_EXT_vector_double1 extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_float1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_float1
+
+
+ +

Exposes single-precision floating point vector type with one component. +More...

+ + + + + +

+Typedefs

+typedef vec< 1, float, defaultp > vec1
 1 components vector of single-precision floating-point numbers.
 
+

Detailed Description

+

Exposes single-precision floating point vector type with one component.

+

Include <glm/ext/vector_float1.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_float1_precision extension.
+
+GLM_EXT_vector_double1 extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00271.html b/external/include/glm-0.9.9.8/doc/api/a00271.html index 97996ec446..abfca2ae3c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00271.html +++ b/external/include/glm-0.9.9.8/doc/api/a00271.html @@ -1,115 +1,115 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_float1_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_float1_precision
-
-
- -

Exposes highp_vec1, mediump_vec1 and lowp_vec1 types. -More...

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, float, highp > highp_vec1
 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, float, lowp > lowp_vec1
 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, float, mediump > mediump_vec1
 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-

Detailed Description

-

Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.

-

Include <glm/ext/vector_float1_precision.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_float1 extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_float1_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_float1_precision
+
+
+ +

Exposes highp_vec1, mediump_vec1 and lowp_vec1 types. +More...

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, float, highp > highp_vec1
 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, float, lowp > lowp_vec1
 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, float, mediump > mediump_vec1
 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+

Detailed Description

+

Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.

+

Include <glm/ext/vector_float1_precision.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_float1 extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00272.html b/external/include/glm-0.9.9.8/doc/api/a00272.html index 7cc3eedd58..ef08fcfef1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00272.html +++ b/external/include/glm-0.9.9.8/doc/api/a00272.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_int1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_int1
-
-
- -

Exposes ivec1 vector type. -More...

- - - - - -

-Typedefs

-typedef vec< 1, int, defaultp > ivec1
 1 component vector of signed integer numbers.
 
-

Detailed Description

-

Exposes ivec1 vector type.

-

Include <glm/ext/vector_int1.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_uint1 extension.
-
-GLM_EXT_vector_int1_precision extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_int1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_int1
+
+
+ +

Exposes ivec1 vector type. +More...

+ + + + + +

+Typedefs

+typedef vec< 1, int, defaultp > ivec1
 1 component vector of signed integer numbers.
 
+

Detailed Description

+

Exposes ivec1 vector type.

+

Include <glm/ext/vector_int1.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_uint1 extension.
+
+GLM_EXT_vector_int1_precision extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00273.html b/external/include/glm-0.9.9.8/doc/api/a00273.html index b5d18b7788..6d53604fdc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00273.html +++ b/external/include/glm-0.9.9.8/doc/api/a00273.html @@ -1,114 +1,114 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_int1_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_int1_precision
-
-
- -

Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types. -More...

- - - - - - - - - - - -

-Typedefs

-typedef vec< 1, int, highp > highp_ivec1
 1 component vector of signed integer values.
 
-typedef vec< 1, int, lowp > lowp_ivec1
 1 component vector of signed integer values.
 
-typedef vec< 1, int, mediump > mediump_ivec1
 1 component vector of signed integer values.
 
-

Detailed Description

-

Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types.

-

Include <glm/ext/vector_int1_precision.hpp> to use the features of this extension.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_int1_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_int1_precision
+
+
+ +

Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types. +More...

+ + + + + + + + + + + +

+Typedefs

+typedef vec< 1, int, highp > highp_ivec1
 1 component vector of signed integer values.
 
+typedef vec< 1, int, lowp > lowp_ivec1
 1 component vector of signed integer values.
 
+typedef vec< 1, int, mediump > mediump_ivec1
 1 component vector of signed integer values.
 
+

Detailed Description

+

Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types.

+

Include <glm/ext/vector_int1_precision.hpp> to use the features of this extension.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00274.html b/external/include/glm-0.9.9.8/doc/api/a00274.html index 19c51315eb..77b13eecce 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00274.html +++ b/external/include/glm-0.9.9.8/doc/api/a00274.html @@ -1,510 +1,510 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_integer - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_integer
-
-
- -

Include <glm/ext/vector_integer.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findNSB (vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, T Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo (vec< L, T, Q > const &v)
 Return true if the value is a power of two number. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, T Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, T Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
-

Detailed Description

-

Include <glm/ext/vector_integer.hpp> to use the features of this extension.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::findNSB (vec< L, T, Q > const & Source,
vec< L, int, Q > SignificantBitCount 
)
-
- -

Returns the bit number of the Nth significant bit set to 1 in the binary representation of value.

-

If value bitcount is less than the Nth significant bit, -1 will be returned.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isMultiple (vec< L, T, Q > const & v,
T Multiple 
)
-
- -

Return true if the 'Value' is a multiple of 'Multiple'.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Return true if the 'Value' is a multiple of 'Multiple'.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return true if the value is a power of two number.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::nextMultiple (vec< L, T, Q > const & v,
T Multiple 
)
-
- -

Higher multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::nextMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Higher multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::nextPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return the power of two number which value is just higher the input value, round up to a power of two.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::prevMultiple (vec< L, T, Q > const & v,
T Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::prevMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_EXT_vector_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::prevPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return the power of two number which value is just lower the input value, round down to a power of two.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_integer
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_integer + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_integer
+
+
+ +

Include <glm/ext/vector_integer.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findNSB (vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)
 Returns the bit number of the Nth significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, T Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Return true if the 'Value' is a multiple of 'Multiple'. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isPowerOfTwo (vec< L, T, Q > const &v)
 Return true if the value is a power of two number. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, T Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > nextPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, T Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > prevPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
+

Detailed Description

+

Include <glm/ext/vector_integer.hpp> to use the features of this extension.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::findNSB (vec< L, T, Q > const & Source,
vec< L, int, Q > SignificantBitCount 
)
+
+ +

Returns the bit number of the Nth significant bit set to 1 in the binary representation of value.

+

If value bitcount is less than the Nth significant bit, -1 will be returned.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isMultiple (vec< L, T, Q > const & v,
T Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Return true if the 'Value' is a multiple of 'Multiple'.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return true if the value is a power of two number.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::nextMultiple (vec< L, T, Q > const & v,
T Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::nextMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::nextPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return the power of two number which value is just higher the input value, round up to a power of two.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::prevMultiple (vec< L, T, Q > const & v,
T Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::prevMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::prevPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned or unsigned integer scalar types.
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_integer
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00275.html b/external/include/glm-0.9.9.8/doc/api/a00275.html index c7f53abdc6..ef39496192 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00275.html +++ b/external/include/glm-0.9.9.8/doc/api/a00275.html @@ -1,484 +1,484 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_relational - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_relational
-
-
- -

Exposes comparison functions for vector types that take a user defined epsilon values. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
-

Detailed Description

-

Exposes comparison functions for vector types that take a user defined epsilon values.

-

Include <glm/ext/vector_relational.hpp> to use the features of this extension.

-
See also
core_vector_relational
-
-GLM_EXT_scalar_relational
-
-GLM_EXT_matrix_relational
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
int ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, int, Q > const & ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
int ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, int, Q > const & ULPs 
)
-
- -

Returns the component-wise comparison between two vectors in term of ULPs.

-

True if this expression is not satisfied.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_relational + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_relational
+
+
+ +

Exposes comparison functions for vector types that take a user defined epsilon values. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)
 Returns the component-wise comparison between two vectors in term of ULPs. More...
 
+

Detailed Description

+

Exposes comparison functions for vector types that take a user defined epsilon values.

+

Include <glm/ext/vector_relational.hpp> to use the features of this extension.

+
See also
core_vector_relational
+
+GLM_EXT_scalar_relational
+
+GLM_EXT_matrix_relational
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
int ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, int, Q > const & ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, T, Q > const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
int ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
vec< L, int, Q > const & ULPs 
)
+
+ +

Returns the component-wise comparison between two vectors in term of ULPs.

+

True if this expression is not satisfied.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point
QValue from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00276.html b/external/include/glm-0.9.9.8/doc/api/a00276.html index 5bd1dde9c2..ab33a07b29 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00276.html +++ b/external/include/glm-0.9.9.8/doc/api/a00276.html @@ -1,109 +1,109 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_uint1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_uint1
-
-
- -

Exposes uvec1 vector type. -More...

- - - - - -

-Typedefs

-typedef vec< 1, unsigned int, defaultp > uvec1
 1 component vector of unsigned integer numbers.
 
-

Detailed Description

-

Exposes uvec1 vector type.

-

Include <glm/ext/vector_uvec1.hpp> to use the features of this extension.

-
See also
GLM_EXT_vector_int1 extension.
-
-GLM_EXT_vector_uint1_precision extension.
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_uint1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_uint1
+
+
+ +

Exposes uvec1 vector type. +More...

+ + + + + +

+Typedefs

+typedef vec< 1, unsigned int, defaultp > uvec1
 1 component vector of unsigned integer numbers.
 
+

Detailed Description

+

Exposes uvec1 vector type.

+

Include <glm/ext/vector_uvec1.hpp> to use the features of this extension.

+
See also
GLM_EXT_vector_int1 extension.
+
+GLM_EXT_vector_uint1_precision extension.
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00277.html b/external/include/glm-0.9.9.8/doc/api/a00277.html index c141bf164e..21ec743569 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00277.html +++ b/external/include/glm-0.9.9.8/doc/api/a00277.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_uint1_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_EXT_vector_uint1_precision
-
-
- -

Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types. -More...

- - - - - - - - - - - -

-Typedefs

typedef vec< 1, unsigned int, highp > highp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, lowp > lowp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, mediump > mediump_uvec1
 1 component vector of unsigned integer values. More...
 
-

Detailed Description

-

Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types.

-

Include <glm/ext/vector_uint1_precision.hpp> to use the features of this extension.

-

Typedef Documentation

- -
-
- - - - -
typedef vec< 1, u32, highp > highp_uvec1
-
- -

1 component vector of unsigned integer values.

-
See also
GLM_EXT_vector_uint1_precision
- -

Definition at line 27 of file vector_uint1_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, lowp > lowp_uvec1
-
- -

1 component vector of unsigned integer values.

-
See also
GLM_EXT_vector_uint1_precision
- -

Definition at line 37 of file vector_uint1_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, mediump > mediump_uvec1
-
- -

1 component vector of unsigned integer values.

-
See also
GLM_EXT_vector_uint1_precision
- -

Definition at line 32 of file vector_uint1_precision.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_uint1_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_EXT_vector_uint1_precision
+
+
+ +

Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types. +More...

+ + + + + + + + + + + +

+Typedefs

typedef vec< 1, unsigned int, highp > highp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, lowp > lowp_uvec1
 1 component vector of unsigned integer values. More...
 
typedef vec< 1, unsigned int, mediump > mediump_uvec1
 1 component vector of unsigned integer values. More...
 
+

Detailed Description

+

Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types.

+

Include <glm/ext/vector_uint1_precision.hpp> to use the features of this extension.

+

Typedef Documentation

+ +
+
+ + + + +
typedef vec< 1, u32, highp > highp_uvec1
+
+ +

1 component vector of unsigned integer values.

+
See also
GLM_EXT_vector_uint1_precision
+ +

Definition at line 27 of file vector_uint1_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, lowp > lowp_uvec1
+
+ +

1 component vector of unsigned integer values.

+
See also
GLM_EXT_vector_uint1_precision
+ +

Definition at line 37 of file vector_uint1_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, mediump > mediump_uvec1
+
+ +

1 component vector of unsigned integer values.

+
See also
GLM_EXT_vector_uint1_precision
+ +

Definition at line 32 of file vector_uint1_precision.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00278.html b/external/include/glm-0.9.9.8/doc/api/a00278.html index 951806da00..3537ed9a83 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00278.html +++ b/external/include/glm-0.9.9.8/doc/api/a00278.html @@ -1,101 +1,101 @@ - - - - - - -0.9.9 API documentation: GLM_EXT_vector_ulp - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_EXT_vector_ulp
-
-
- -

Allow the measurement of the accuracy of a function against a reference implementation. -More...

-

Allow the measurement of the accuracy of a function against a reference implementation.

-

This extension works on floating-point data and provide results in ULP.

-

Include <glm/ext/vector_ulp.hpp> to use the features of this extension.

-
See also
GLM_EXT_scalar_ulp
-
-GLM_EXT_scalar_relational
-
-GLM_EXT_vector_relational
-
- - - - + + + + + + +0.9.9 API documentation: GLM_EXT_vector_ulp + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_EXT_vector_ulp
+
+
+ +

Allow the measurement of the accuracy of a function against a reference implementation. +More...

+

Allow the measurement of the accuracy of a function against a reference implementation.

+

This extension works on floating-point data and provide results in ULP.

+

Include <glm/ext/vector_ulp.hpp> to use the features of this extension.

+
See also
GLM_EXT_scalar_ulp
+
+GLM_EXT_scalar_relational
+
+GLM_EXT_vector_relational
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00279.html b/external/include/glm-0.9.9.8/doc/api/a00279.html index 502ab4d29c..f4fe42a4d4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00279.html +++ b/external/include/glm-0.9.9.8/doc/api/a00279.html @@ -1,431 +1,431 @@ - - - - - - -0.9.9 API documentation: Geometric functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Geometric functions
-
-
- -

These operate on vectors as vectors, not component-wise. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the cross product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T dot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the dot product of x and y, i.e., result = x * y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > faceforward (vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
 If dot(Nref, I) < 0.0, return N, otherwise, return -N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length (vec< L, T, Q > const &x)
 Returns the length of x, i.e., sqrt(x * x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > normalize (vec< L, T, Q > const &x)
 Returns a vector in the same direction as x but with length of 1. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > reflect (vec< L, T, Q > const &I, vec< L, T, Q > const &N)
 For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > refract (vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. More...
 
-

Detailed Description

-

These operate on vectors as vectors, not component-wise.

-

Include <glm/geometric.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::cross (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
-
- -

Returns the cross product of x and y.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLSL cross man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::distance (vec< L, T, Q > const & p0,
vec< L, T, Q > const & p1 
)
-
- -

Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL distance man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::dot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the dot product of x and y, i.e., result = x * y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL dot man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::faceforward (vec< L, T, Q > const & N,
vec< L, T, Q > const & I,
vec< L, T, Q > const & Nref 
)
-
- -

If dot(Nref, I) < 0.0, return N, otherwise, return -N.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL faceforward man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::length (vec< L, T, Q > const & x)
-
- -

Returns the length of x, i.e., sqrt(x * x).

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL length man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::normalize (vec< L, T, Q > const & x)
-
- -

Returns a vector in the same direction as x but with length of 1.

-

According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL normalize man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::reflect (vec< L, T, Q > const & I,
vec< L, T, Q > const & N 
)
-
- -

For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL reflect man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::refract (vec< L, T, Q > const & I,
vec< L, T, Q > const & N,
T eta 
)
-
- -

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
-
-
-
See also
GLSL refract man page
-
-GLSL 4.20.8 specification, section 8.5 Geometric Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Geometric functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Geometric functions
+
+
+ +

These operate on vectors as vectors, not component-wise. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the cross product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T dot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the dot product of x and y, i.e., result = x * y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > faceforward (vec< L, T, Q > const &N, vec< L, T, Q > const &I, vec< L, T, Q > const &Nref)
 If dot(Nref, I) < 0.0, return N, otherwise, return -N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length (vec< L, T, Q > const &x)
 Returns the length of x, i.e., sqrt(x * x). More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > normalize (vec< L, T, Q > const &x)
 Returns a vector in the same direction as x but with length of 1. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > reflect (vec< L, T, Q > const &I, vec< L, T, Q > const &N)
 For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > refract (vec< L, T, Q > const &I, vec< L, T, Q > const &N, T eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector. More...
 
+

Detailed Description

+

These operate on vectors as vectors, not component-wise.

+

Include <glm/geometric.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::cross (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
+
+ +

Returns the cross product of x and y.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLSL cross man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::distance (vec< L, T, Q > const & p0,
vec< L, T, Q > const & p1 
)
+
+ +

Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL distance man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::dot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the dot product of x and y, i.e., result = x * y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL dot man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::faceforward (vec< L, T, Q > const & N,
vec< L, T, Q > const & I,
vec< L, T, Q > const & Nref 
)
+
+ +

If dot(Nref, I) < 0.0, return N, otherwise, return -N.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL faceforward man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length (vec< L, T, Q > const & x)
+
+ +

Returns the length of x, i.e., sqrt(x * x).

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL length man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::normalize (vec< L, T, Q > const & x)
+
+ +

Returns a vector in the same direction as x but with length of 1.

+

According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefined and generate an error.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL normalize man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::reflect (vec< L, T, Q > const & I,
vec< L, T, Q > const & N 
)
+
+ +

For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL reflect man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::refract (vec< L, T, Q > const & I,
vec< L, T, Q > const & N,
T eta 
)
+
+ +

For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TFloating-point scalar types.
+
+
+
See also
GLSL refract man page
+
+GLSL 4.20.8 specification, section 8.5 Geometric Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00280.html b/external/include/glm-0.9.9.8/doc/api/a00280.html index f37dc8d0fc..30a1bb5653 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00280.html +++ b/external/include/glm-0.9.9.8/doc/api/a00280.html @@ -1,165 +1,165 @@ - - - - - - -0.9.9 API documentation: Core features - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Core features
-
-
- -

Features that implement in C++ the GLSL specification as closely as possible. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 Common functions
 Provides GLSL common functions.
 
 Exponential functions
 Provides GLSL exponential functions.
 
 Geometric functions
 These operate on vectors as vectors, not component-wise.
 
 Vector types
 Vector types of two to four components with an exhaustive set of operators.
 
 Vector types with precision qualifiers
 Vector types with precision qualifiers which may result in various precision in term of ULPs.
 
 Matrix types
 Matrix types of with C columns and R rows where C and R are values between 2 to 4 included.
 
 Matrix types with precision qualifiers
 Matrix types with precision qualifiers which may result in various precision in term of ULPs.
 
 Integer functions
 Provides GLSL functions on integer types.
 
 Matrix functions
 Provides GLSL matrix functions.
 
 Floating-Point Pack and Unpack Functions
 Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types.
 
 Angle and Trigonometry Functions
 Function parameters specified as angle are assumed to be in units of radians.
 
 Vector Relational Functions
 Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.
 
- - - - -

-Typedefs

typedef mat< 3, 2, float, defaultp > mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Features that implement in C++ the GLSL specification as closely as possible.

-

The GLM core consists of C++ types that mirror GLSL types and C++ functions that mirror the GLSL functions.

-

The best documentation for GLM Core is the current GLSL specification, version 4.2 (pdf file).

-

GLM core functionalities require <glm/glm.hpp> to be included to be used.

-

Typedef Documentation

- -
-
- - - - -
typedef mat< 3, 2, f32, defaultp > mat3x2
-
- -

3 columns of 2 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float3x2.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Core features + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Core features
+
+
+ +

Features that implement in C++ the GLSL specification as closely as possible. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 Common functions
 Provides GLSL common functions.
 
 Exponential functions
 Provides GLSL exponential functions.
 
 Geometric functions
 These operate on vectors as vectors, not component-wise.
 
 Vector types
 Vector types of two to four components with an exhaustive set of operators.
 
 Vector types with precision qualifiers
 Vector types with precision qualifiers which may result in various precision in term of ULPs.
 
 Matrix types
 Matrix types of with C columns and R rows where C and R are values between 2 to 4 included.
 
 Matrix types with precision qualifiers
 Matrix types with precision qualifiers which may result in various precision in term of ULPs.
 
 Integer functions
 Provides GLSL functions on integer types.
 
 Matrix functions
 Provides GLSL matrix functions.
 
 Floating-Point Pack and Unpack Functions
 Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types.
 
 Angle and Trigonometry Functions
 Function parameters specified as angle are assumed to be in units of radians.
 
 Vector Relational Functions
 Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.
 
+ + + + +

+Typedefs

typedef mat< 3, 2, float, defaultp > mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Features that implement in C++ the GLSL specification as closely as possible.

+

The GLM core consists of C++ types that mirror GLSL types and C++ functions that mirror the GLSL functions.

+

The best documentation for GLM Core is the current GLSL specification, version 4.2 (pdf file).

+

GLM core functionalities require <glm/glm.hpp> to be included to be used.

+

Typedef Documentation

+ +
+
+ + + + +
typedef mat< 3, 2, f32, defaultp > mat3x2
+
+ +

3 columns of 2 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float3x2.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00281.html b/external/include/glm-0.9.9.8/doc/api/a00281.html index 563b776402..694bcc153c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00281.html +++ b/external/include/glm-0.9.9.8/doc/api/a00281.html @@ -1,402 +1,402 @@ - - - - - - -0.9.9 API documentation: Vector types - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Vector types
-
-
- -

Vector types of two to four components with an exhaustive set of operators. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef vec< 2, bool, defaultp > bvec2
 2 components vector of boolean. More...
 
typedef vec< 3, bool, defaultp > bvec3
 3 components vector of boolean. More...
 
typedef vec< 4, bool, defaultp > bvec4
 4 components vector of boolean. More...
 
typedef vec< 2, double, defaultp > dvec2
 2 components vector of double-precision floating-point numbers. More...
 
typedef vec< 3, double, defaultp > dvec3
 3 components vector of double-precision floating-point numbers. More...
 
typedef vec< 4, double, defaultp > dvec4
 4 components vector of double-precision floating-point numbers. More...
 
typedef vec< 2, int, defaultp > ivec2
 2 components vector of signed integer numbers. More...
 
typedef vec< 3, int, defaultp > ivec3
 3 components vector of signed integer numbers. More...
 
typedef vec< 4, int, defaultp > ivec4
 4 components vector of signed integer numbers. More...
 
typedef vec< 2, unsigned int, defaultp > uvec2
 2 components vector of unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, defaultp > uvec3
 3 components vector of unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, defaultp > uvec4
 4 components vector of unsigned integer numbers. More...
 
typedef vec< 2, float, defaultp > vec2
 2 components vector of single-precision floating-point numbers. More...
 
typedef vec< 3, float, defaultp > vec3
 3 components vector of single-precision floating-point numbers. More...
 
typedef vec< 4, float, defaultp > vec4
 4 components vector of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Vector types of two to four components with an exhaustive set of operators.

-

Typedef Documentation

- -
-
- - - - -
typedef vec< 2, bool, defaultp > bvec2
-
- -

2 components vector of boolean.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_bool2.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, bool, defaultp > bvec3
-
- -

3 components vector of boolean.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_bool3.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, bool, defaultp > bvec4
-
- -

4 components vector of boolean.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_bool4.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, defaultp > dvec2
-
- -

2 components vector of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_double2.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, defaultp > dvec3
-
- -

3 components vector of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_double3.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, defaultp > dvec4
-
- -

4 components vector of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_double4.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, defaultp > ivec2
-
- -

2 components vector of signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_int2.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, defaultp > ivec3
-
- -

3 components vector of signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_int3.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, defaultp > ivec4
-
- -

4 components vector of signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_int4.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, defaultp > uvec2
-
- -

2 components vector of unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_uint2.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, defaultp > uvec3
-
- -

3 components vector of unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_uint3.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, defaultp > uvec4
-
- -

4 components vector of unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_uint4.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, defaultp > vec2
-
- -

2 components vector of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_float2.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, defaultp > vec3
-
- -

3 components vector of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_float3.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, defaultp > vec4
-
- -

4 components vector of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
- -

Definition at line 15 of file vector_float4.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Vector types + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Vector types
+
+
+ +

Vector types of two to four components with an exhaustive set of operators. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef vec< 2, bool, defaultp > bvec2
 2 components vector of boolean. More...
 
typedef vec< 3, bool, defaultp > bvec3
 3 components vector of boolean. More...
 
typedef vec< 4, bool, defaultp > bvec4
 4 components vector of boolean. More...
 
typedef vec< 2, double, defaultp > dvec2
 2 components vector of double-precision floating-point numbers. More...
 
typedef vec< 3, double, defaultp > dvec3
 3 components vector of double-precision floating-point numbers. More...
 
typedef vec< 4, double, defaultp > dvec4
 4 components vector of double-precision floating-point numbers. More...
 
typedef vec< 2, int, defaultp > ivec2
 2 components vector of signed integer numbers. More...
 
typedef vec< 3, int, defaultp > ivec3
 3 components vector of signed integer numbers. More...
 
typedef vec< 4, int, defaultp > ivec4
 4 components vector of signed integer numbers. More...
 
typedef vec< 2, unsigned int, defaultp > uvec2
 2 components vector of unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, defaultp > uvec3
 3 components vector of unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, defaultp > uvec4
 4 components vector of unsigned integer numbers. More...
 
typedef vec< 2, float, defaultp > vec2
 2 components vector of single-precision floating-point numbers. More...
 
typedef vec< 3, float, defaultp > vec3
 3 components vector of single-precision floating-point numbers. More...
 
typedef vec< 4, float, defaultp > vec4
 4 components vector of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Vector types of two to four components with an exhaustive set of operators.

+

Typedef Documentation

+ +
+
+ + + + +
typedef vec< 2, bool, defaultp > bvec2
+
+ +

2 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_bool2.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, bool, defaultp > bvec3
+
+ +

3 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_bool3.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, bool, defaultp > bvec4
+
+ +

4 components vector of boolean.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_bool4.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, defaultp > dvec2
+
+ +

2 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_double2.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, defaultp > dvec3
+
+ +

3 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_double3.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, defaultp > dvec4
+
+ +

4 components vector of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_double4.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, defaultp > ivec2
+
+ +

2 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_int2.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, defaultp > ivec3
+
+ +

3 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_int3.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, defaultp > ivec4
+
+ +

4 components vector of signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_int4.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, defaultp > uvec2
+
+ +

2 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_uint2.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, defaultp > uvec3
+
+ +

3 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_uint3.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, defaultp > uvec4
+
+ +

4 components vector of unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_uint4.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, defaultp > vec2
+
+ +

2 components vector of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_float2.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, defaultp > vec3
+
+ +

3 components vector of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_float3.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, defaultp > vec4
+
+ +

4 components vector of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+ +

Definition at line 15 of file vector_float4.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00282.html b/external/include/glm-0.9.9.8/doc/api/a00282.html index c0e06f8a6d..38a2d43c0f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00282.html +++ b/external/include/glm-0.9.9.8/doc/api/a00282.html @@ -1,1101 +1,1101 @@ - - - - - - -0.9.9 API documentation: Vector types with precision qualifiers - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Vector types with precision qualifiers
-
-
- -

Vector types with precision qualifiers which may result in various precision in term of ULPs. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef vec< 2, bool, highp > highp_bvec2
 2 components vector of high qualifier bool numbers. More...
 
typedef vec< 3, bool, highp > highp_bvec3
 3 components vector of high qualifier bool numbers. More...
 
typedef vec< 4, bool, highp > highp_bvec4
 4 components vector of high qualifier bool numbers. More...
 
typedef vec< 2, double, highp > highp_dvec2
 2 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, highp > highp_dvec3
 3 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, highp > highp_dvec4
 4 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, highp > highp_ivec2
 2 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 3, int, highp > highp_ivec3
 3 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 4, int, highp > highp_ivec4
 4 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, highp > highp_uvec2
 2 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, highp > highp_uvec3
 3 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, highp > highp_uvec4
 4 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, highp > highp_vec2
 2 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, highp > highp_vec3
 3 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, highp > highp_vec4
 4 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 2, bool, lowp > lowp_bvec2
 2 components vector of low qualifier bool numbers. More...
 
typedef vec< 3, bool, lowp > lowp_bvec3
 3 components vector of low qualifier bool numbers. More...
 
typedef vec< 4, bool, lowp > lowp_bvec4
 4 components vector of low qualifier bool numbers. More...
 
typedef vec< 2, double, lowp > lowp_dvec2
 2 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, lowp > lowp_dvec3
 3 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, lowp > lowp_dvec4
 4 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, lowp > lowp_ivec2
 2 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 3, int, lowp > lowp_ivec3
 3 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 4, int, lowp > lowp_ivec4
 4 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, lowp > lowp_uvec2
 2 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, lowp > lowp_uvec3
 3 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, lowp > lowp_uvec4
 4 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, lowp > lowp_vec2
 2 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, lowp > lowp_vec3
 3 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, lowp > lowp_vec4
 4 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 2, bool, mediump > mediump_bvec2
 2 components vector of medium qualifier bool numbers. More...
 
typedef vec< 3, bool, mediump > mediump_bvec3
 3 components vector of medium qualifier bool numbers. More...
 
typedef vec< 4, bool, mediump > mediump_bvec4
 4 components vector of medium qualifier bool numbers. More...
 
typedef vec< 2, double, mediump > mediump_dvec2
 2 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, mediump > mediump_dvec3
 3 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, mediump > mediump_dvec4
 4 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, mediump > mediump_ivec2
 2 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 3, int, mediump > mediump_ivec3
 3 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 4, int, mediump > mediump_ivec4
 4 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, mediump > mediump_uvec2
 2 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, mediump > mediump_uvec3
 3 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, mediump > mediump_uvec4
 4 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, mediump > mediump_vec2
 2 components vector of medium single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, mediump > mediump_vec3
 3 components vector of medium single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, mediump > mediump_vec4
 4 components vector of medium single-qualifier floating-point numbers. More...
 
-

Detailed Description

-

Vector types with precision qualifiers which may result in various precision in term of ULPs.

-

GLSL allows defining qualifiers for particular variables. With OpenGL's GLSL, these qualifiers have no effect; they are there for compatibility, with OpenGL ES's GLSL, these qualifiers do have an effect.

-

C++ has no language equivalent to qualifier qualifiers. So GLM provides the next-best thing: a number of typedefs that use a particular qualifier.

-

None of these types make any guarantees about the actual qualifier used.

-

Typedef Documentation

- -
-
- - - - -
typedef vec< 2, bool, highp > highp_bvec2
-
- -

2 components vector of high qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_bool2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, bool, highp > highp_bvec3
-
- -

3 components vector of high qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_bool3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, bool, highp > highp_bvec4
-
- -

4 components vector of high qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_bool4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, highp > highp_dvec2
-
- -

2 components vector of high double-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_double2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, highp > highp_dvec3
-
- -

3 components vector of high double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 17 of file vector_double3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, highp > highp_dvec4
-
- -

4 components vector of high double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 18 of file vector_double4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, highp > highp_ivec2
-
- -

2 components vector of high qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_int2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, highp > highp_ivec3
-
- -

3 components vector of high qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_int3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, highp > highp_ivec4
-
- -

4 components vector of high qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_int4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, highp > highp_uvec2
-
- -

2 components vector of high qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_uint2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, highp > highp_uvec3
-
- -

3 components vector of high qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_uint3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, highp > highp_uvec4
-
- -

4 components vector of high qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_uint4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, highp > highp_vec2
-
- -

2 components vector of high single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_float2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, highp > highp_vec3
-
- -

3 components vector of high single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_float3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, highp > highp_vec4
-
- -

4 components vector of high single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file vector_float4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, bool, lowp > lowp_bvec2
-
- -

2 components vector of low qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_bool2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, bool, lowp > lowp_bvec3
-
- -

3 components vector of low qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_bool3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, bool, lowp > lowp_bvec4
-
- -

4 components vector of low qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_bool4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, lowp > lowp_dvec2
-
- -

2 components vector of low double-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_double2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, lowp > lowp_dvec3
-
- -

3 components vector of low double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 31 of file vector_double3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, lowp > lowp_dvec4
-
- -

4 components vector of low double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 32 of file vector_double4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, lowp > lowp_ivec2
-
- -

2 components vector of low qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_int2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, lowp > lowp_ivec3
-
- -

3 components vector of low qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_int3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, lowp > lowp_ivec4
-
- -

4 components vector of low qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_int4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, lowp > lowp_uvec2
-
- -

2 components vector of low qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_uint2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, lowp > lowp_uvec3
-
- -

3 components vector of low qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_uint3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, lowp > lowp_uvec4
-
- -

4 components vector of low qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_uint4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, lowp > lowp_vec2
-
- -

2 components vector of low single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_float2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, lowp > lowp_vec3
-
- -

3 components vector of low single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_float3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, lowp > lowp_vec4
-
- -

4 components vector of low single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file vector_float4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, bool, mediump > mediump_bvec2
-
- -

2 components vector of medium qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_bool2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, bool, mediump > mediump_bvec3
-
- -

3 components vector of medium qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_bool3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, bool, mediump > mediump_bvec4
-
- -

4 components vector of medium qualifier bool numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_bool4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, mediump > mediump_dvec2
-
- -

2 components vector of medium double-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_double2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, mediump > mediump_dvec3
-
- -

3 components vector of medium double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 24 of file vector_double3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, mediump > mediump_dvec4
-
- -

4 components vector of medium double-qualifier floating-point numbers.

-

There is no guarantee on the actual qualifier.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 25 of file vector_double4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, mediump > mediump_ivec2
-
- -

2 components vector of medium qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_int2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, mediump > mediump_ivec3
-
- -

3 components vector of medium qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_int3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, mediump > mediump_ivec4
-
- -

4 components vector of medium qualifier signed integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_int4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, mediump > mediump_uvec2
-
- -

2 components vector of medium qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_uint2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, mediump > mediump_uvec3
-
- -

3 components vector of medium qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_uint3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, mediump > mediump_uvec4
-
- -

4 components vector of medium qualifier unsigned integer numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_uint4_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, mediump > mediump_vec2
-
- -

2 components vector of medium single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_float2_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, mediump > mediump_vec3
-
- -

3 components vector of medium single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_float3_precision.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, mediump > mediump_vec4
-
- -

4 components vector of medium single-qualifier floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file vector_float4_precision.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Vector types with precision qualifiers + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Vector types with precision qualifiers
+
+
+ +

Vector types with precision qualifiers which may result in various precision in term of ULPs. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef vec< 2, bool, highp > highp_bvec2
 2 components vector of high qualifier bool numbers. More...
 
typedef vec< 3, bool, highp > highp_bvec3
 3 components vector of high qualifier bool numbers. More...
 
typedef vec< 4, bool, highp > highp_bvec4
 4 components vector of high qualifier bool numbers. More...
 
typedef vec< 2, double, highp > highp_dvec2
 2 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, highp > highp_dvec3
 3 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, highp > highp_dvec4
 4 components vector of high double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, highp > highp_ivec2
 2 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 3, int, highp > highp_ivec3
 3 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 4, int, highp > highp_ivec4
 4 components vector of high qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, highp > highp_uvec2
 2 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, highp > highp_uvec3
 3 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, highp > highp_uvec4
 4 components vector of high qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, highp > highp_vec2
 2 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, highp > highp_vec3
 3 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, highp > highp_vec4
 4 components vector of high single-qualifier floating-point numbers. More...
 
typedef vec< 2, bool, lowp > lowp_bvec2
 2 components vector of low qualifier bool numbers. More...
 
typedef vec< 3, bool, lowp > lowp_bvec3
 3 components vector of low qualifier bool numbers. More...
 
typedef vec< 4, bool, lowp > lowp_bvec4
 4 components vector of low qualifier bool numbers. More...
 
typedef vec< 2, double, lowp > lowp_dvec2
 2 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, lowp > lowp_dvec3
 3 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, lowp > lowp_dvec4
 4 components vector of low double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, lowp > lowp_ivec2
 2 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 3, int, lowp > lowp_ivec3
 3 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 4, int, lowp > lowp_ivec4
 4 components vector of low qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, lowp > lowp_uvec2
 2 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, lowp > lowp_uvec3
 3 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, lowp > lowp_uvec4
 4 components vector of low qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, lowp > lowp_vec2
 2 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, lowp > lowp_vec3
 3 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, lowp > lowp_vec4
 4 components vector of low single-qualifier floating-point numbers. More...
 
typedef vec< 2, bool, mediump > mediump_bvec2
 2 components vector of medium qualifier bool numbers. More...
 
typedef vec< 3, bool, mediump > mediump_bvec3
 3 components vector of medium qualifier bool numbers. More...
 
typedef vec< 4, bool, mediump > mediump_bvec4
 4 components vector of medium qualifier bool numbers. More...
 
typedef vec< 2, double, mediump > mediump_dvec2
 2 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 3, double, mediump > mediump_dvec3
 3 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 4, double, mediump > mediump_dvec4
 4 components vector of medium double-qualifier floating-point numbers. More...
 
typedef vec< 2, int, mediump > mediump_ivec2
 2 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 3, int, mediump > mediump_ivec3
 3 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 4, int, mediump > mediump_ivec4
 4 components vector of medium qualifier signed integer numbers. More...
 
typedef vec< 2, unsigned int, mediump > mediump_uvec2
 2 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 3, unsigned int, mediump > mediump_uvec3
 3 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 4, unsigned int, mediump > mediump_uvec4
 4 components vector of medium qualifier unsigned integer numbers. More...
 
typedef vec< 2, float, mediump > mediump_vec2
 2 components vector of medium single-qualifier floating-point numbers. More...
 
typedef vec< 3, float, mediump > mediump_vec3
 3 components vector of medium single-qualifier floating-point numbers. More...
 
typedef vec< 4, float, mediump > mediump_vec4
 4 components vector of medium single-qualifier floating-point numbers. More...
 
+

Detailed Description

+

Vector types with precision qualifiers which may result in various precision in term of ULPs.

+

GLSL allows defining qualifiers for particular variables. With OpenGL's GLSL, these qualifiers have no effect; they are there for compatibility, with OpenGL ES's GLSL, these qualifiers do have an effect.

+

C++ has no language equivalent to qualifier qualifiers. So GLM provides the next-best thing: a number of typedefs that use a particular qualifier.

+

None of these types make any guarantees about the actual qualifier used.

+

Typedef Documentation

+ +
+
+ + + + +
typedef vec< 2, bool, highp > highp_bvec2
+
+ +

2 components vector of high qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_bool2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, bool, highp > highp_bvec3
+
+ +

3 components vector of high qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_bool3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, bool, highp > highp_bvec4
+
+ +

4 components vector of high qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_bool4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, highp > highp_dvec2
+
+ +

2 components vector of high double-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_double2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, highp > highp_dvec3
+
+ +

3 components vector of high double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 17 of file vector_double3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, highp > highp_dvec4
+
+ +

4 components vector of high double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 18 of file vector_double4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, highp > highp_ivec2
+
+ +

2 components vector of high qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_int2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, highp > highp_ivec3
+
+ +

3 components vector of high qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_int3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, highp > highp_ivec4
+
+ +

4 components vector of high qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_int4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, highp > highp_uvec2
+
+ +

2 components vector of high qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_uint2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, highp > highp_uvec3
+
+ +

3 components vector of high qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_uint3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, highp > highp_uvec4
+
+ +

4 components vector of high qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_uint4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, highp > highp_vec2
+
+ +

2 components vector of high single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_float2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, highp > highp_vec3
+
+ +

3 components vector of high single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_float3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, highp > highp_vec4
+
+ +

4 components vector of high single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file vector_float4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, bool, lowp > lowp_bvec2
+
+ +

2 components vector of low qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_bool2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, bool, lowp > lowp_bvec3
+
+ +

3 components vector of low qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_bool3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, bool, lowp > lowp_bvec4
+
+ +

4 components vector of low qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_bool4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, lowp > lowp_dvec2
+
+ +

2 components vector of low double-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_double2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, lowp > lowp_dvec3
+
+ +

3 components vector of low double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 31 of file vector_double3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, lowp > lowp_dvec4
+
+ +

4 components vector of low double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 32 of file vector_double4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, lowp > lowp_ivec2
+
+ +

2 components vector of low qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_int2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, lowp > lowp_ivec3
+
+ +

3 components vector of low qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_int3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, lowp > lowp_ivec4
+
+ +

4 components vector of low qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_int4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, lowp > lowp_uvec2
+
+ +

2 components vector of low qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_uint2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, lowp > lowp_uvec3
+
+ +

3 components vector of low qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_uint3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, lowp > lowp_uvec4
+
+ +

4 components vector of low qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_uint4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, lowp > lowp_vec2
+
+ +

2 components vector of low single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_float2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, lowp > lowp_vec3
+
+ +

3 components vector of low single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_float3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, lowp > lowp_vec4
+
+ +

4 components vector of low single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file vector_float4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, bool, mediump > mediump_bvec2
+
+ +

2 components vector of medium qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_bool2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, bool, mediump > mediump_bvec3
+
+ +

3 components vector of medium qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_bool3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, bool, mediump > mediump_bvec4
+
+ +

4 components vector of medium qualifier bool numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_bool4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, mediump > mediump_dvec2
+
+ +

2 components vector of medium double-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_double2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, mediump > mediump_dvec3
+
+ +

3 components vector of medium double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 24 of file vector_double3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, mediump > mediump_dvec4
+
+ +

4 components vector of medium double-qualifier floating-point numbers.

+

There is no guarantee on the actual qualifier.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 25 of file vector_double4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, mediump > mediump_ivec2
+
+ +

2 components vector of medium qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_int2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, mediump > mediump_ivec3
+
+ +

3 components vector of medium qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_int3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, mediump > mediump_ivec4
+
+ +

4 components vector of medium qualifier signed integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_int4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, mediump > mediump_uvec2
+
+ +

2 components vector of medium qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_uint2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, mediump > mediump_uvec3
+
+ +

3 components vector of medium qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_uint3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, mediump > mediump_uvec4
+
+ +

4 components vector of medium qualifier unsigned integer numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_uint4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, mediump > mediump_vec2
+
+ +

2 components vector of medium single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_float2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, mediump > mediump_vec3
+
+ +

3 components vector of medium single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_float3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, mediump > mediump_vec4
+
+ +

4 components vector of medium single-qualifier floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.5 Vectors
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file vector_float4_precision.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00283.html b/external/include/glm-0.9.9.8/doc/api/a00283.html index 1783211aac..117eb82391 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00283.html +++ b/external/include/glm-0.9.9.8/doc/api/a00283.html @@ -1,563 +1,563 @@ - - - - - - -0.9.9 API documentation: Matrix types - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Matrix types
-
-
- -

Matrix types of with C columns and R rows where C and R are values between 2 to 4 included. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, double, defaultp > dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, double, defaultp > dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 3, double, defaultp > dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 4, double, defaultp > dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 2, double, defaultp > dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 4, double, defaultp > dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 2, double, defaultp > dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 3, double, defaultp > dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 3, float, defaultp > mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 4, float, defaultp > mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 4, float, defaultp > mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 2, float, defaultp > mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 3, float, defaultp > mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
-

Detailed Description

-

Matrix types of with C columns and R rows where C and R are values between 2 to 4 included.

-

These types have exhaustive sets of operators.

-

Typedef Documentation

- -
-
- - - - -
typedef mat< 2, 2, f64, defaultp > dmat2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_double2x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, double, defaultp > dmat2x2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double2x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, double, defaultp > dmat2x3
-
- -

2 columns of 3 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double2x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, double, defaultp > dmat2x4
-
- -

2 columns of 4 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double2x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, defaultp > dmat3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_double3x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, double, defaultp > dmat3x2
-
- -

3 columns of 2 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double3x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, double, defaultp > dmat3x3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double3x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, double, defaultp > dmat3x4
-
- -

3 columns of 4 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double3x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, defaultp > dmat4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_double4x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, double, defaultp > dmat4x2
-
- -

4 columns of 2 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double4x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, double, defaultp > dmat4x3
-
- -

4 columns of 3 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double4x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, double, defaultp > dmat4x4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_double4x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > mat2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_float2x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > mat2x2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float2x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, defaultp > mat2x3
-
- -

2 columns of 3 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float2x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, defaultp > mat2x4
-
- -

2 columns of 4 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float2x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > mat3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_float3x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > mat3x3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float3x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, defaultp > mat3x4
-
- -

3 columns of 4 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float3x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > mat4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 20 of file matrix_float4x4.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, defaultp > mat4x2
-
- -

4 columns of 2 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float4x2.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, defaultp > mat4x3
-
- -

4 columns of 3 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float4x3.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > mat4x4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
- -

Definition at line 15 of file matrix_float4x4.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Matrix types + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Matrix types
+
+
+ +

Matrix types of with C columns and R rows where C and R are values between 2 to 4 included. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, double, defaultp > dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, double, defaultp > dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 3, double, defaultp > dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 4, double, defaultp > dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 2, double, defaultp > dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 3, double, defaultp > dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 3, 4, double, defaultp > dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 2, double, defaultp > dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 3, double, defaultp > dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 4, 4, double, defaultp > dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 2, float, defaultp > mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 3, float, defaultp > mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 2, 4, float, defaultp > mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 3, float, defaultp > mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 3, 4, float, defaultp > mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 2, float, defaultp > mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 3, float, defaultp > mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
typedef mat< 4, 4, float, defaultp > mat4
 4 columns of 4 components matrix of single-precision floating-point numbers. More...
 
+

Detailed Description

+

Matrix types of with C columns and R rows where C and R are values between 2 to 4 included.

+

These types have exhaustive sets of operators.

+

Typedef Documentation

+ +
+
+ + + + +
typedef mat< 2, 2, f64, defaultp > dmat2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_double2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, double, defaultp > dmat2x2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, double, defaultp > dmat2x3
+
+ +

2 columns of 3 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double2x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, double, defaultp > dmat2x4
+
+ +

2 columns of 4 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double2x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, defaultp > dmat3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_double3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, double, defaultp > dmat3x2
+
+ +

3 columns of 2 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double3x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, double, defaultp > dmat3x3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, double, defaultp > dmat3x4
+
+ +

3 columns of 4 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double3x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, defaultp > dmat4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_double4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, double, defaultp > dmat4x2
+
+ +

4 columns of 2 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double4x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, double, defaultp > dmat4x3
+
+ +

4 columns of 3 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double4x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, double, defaultp > dmat4x4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_double4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > mat2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_float2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > mat2x2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float2x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, defaultp > mat2x3
+
+ +

2 columns of 3 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float2x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, defaultp > mat2x4
+
+ +

2 columns of 4 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float2x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > mat3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_float3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > mat3x3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float3x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, defaultp > mat3x4
+
+ +

3 columns of 4 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float3x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > mat4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 20 of file matrix_float4x4.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, defaultp > mat4x2
+
+ +

4 columns of 2 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float4x2.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, defaultp > mat4x3
+
+ +

4 columns of 3 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float4x3.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > mat4x4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+ +

Definition at line 15 of file matrix_float4x4.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00284.html b/external/include/glm-0.9.9.8/doc/api/a00284.html index e84ed1c6f9..d18a44669f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00284.html +++ b/external/include/glm-0.9.9.8/doc/api/a00284.html @@ -1,1689 +1,1689 @@ - - - - - - -0.9.9 API documentation: Matrix types with precision qualifiers - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Matrix types with precision qualifiers
-
-
- -

Matrix types with precision qualifiers which may result in various precision in term of ULPs. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, double, highp > highp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, highp > highp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, highp > highp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, highp > highp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, highp > highp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, highp > highp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, highp > highp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, highp > highp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, highp > highp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, highp > highp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, highp > highp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, highp > highp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, highp > highp_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, highp > highp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, lowp > lowp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, lowp > lowp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, lowp > lowp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, lowp > lowp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, lowp > lowp_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, lowp > lowp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, mediump > mediump_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, mediump > mediump_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, mediump > mediump_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, mediump > mediump_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, mediump > mediump_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, mediump > mediump_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
-

Detailed Description

-

Matrix types with precision qualifiers which may result in various precision in term of ULPs.

-

GLSL allows defining qualifiers for particular variables. With OpenGL's GLSL, these qualifiers have no effect; they are there for compatibility, with OpenGL ES's GLSL, these qualifiers do have an effect.

-

C++ has no language equivalent to qualifier qualifiers. So GLM provides the next-best thing: a number of typedefs that use a particular qualifier.

-

None of these types make any guarantees about the actual qualifier used.

-

Typedef Documentation

- -
-
- - - - -
typedef mat< 2, 2, f64, highp > highp_dmat2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, double, highp > highp_dmat2x2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, double, highp > highp_dmat2x3
-
- -

2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, double, highp > highp_dmat2x4
-
- -

2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, highp > highp_dmat3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, double, highp > highp_dmat3x2
-
- -

3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, double, highp > highp_dmat3x3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, double, highp > highp_dmat3x4
-
- -

3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, highp > highp_dmat4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, double, highp > highp_dmat4x2
-
- -

4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, double, highp > highp_dmat4x3
-
- -

4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_double4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, double, highp > highp_dmat4x4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, highp > highp_mat2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, highp > highp_mat2x2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, highp > highp_mat2x3
-
- -

2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, highp > highp_mat2x4
-
- -

2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, highp > highp_mat3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, highp > highp_mat3x2
-
- -

3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, highp > highp_mat3x3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, highp > highp_mat3x4
-
- -

3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, highp > highp_mat4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, highp > highp_mat4x2
-
- -

4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, highp > highp_mat4x3
-
- -

4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 28 of file matrix_float4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, highp > highp_mat4x4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 46 of file matrix_float4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, lowp > lowp_dmat2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
-
- -

2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
-
- -

2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, lowp > lowp_dmat3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
-
- -

3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
-
- -

3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, lowp > lowp_dmat4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
-
- -

4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
-
- -

4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_double4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, lowp > lowp_mat2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, lowp > lowp_mat2x2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, lowp > lowp_mat2x3
-
- -

2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, lowp > lowp_mat2x4
-
- -

2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, lowp > lowp_mat3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, lowp > lowp_mat3x2
-
- -

3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, lowp > lowp_mat3x3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, lowp > lowp_mat3x4
-
- -

3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, lowp > lowp_mat4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, lowp > lowp_mat4x2
-
- -

4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, lowp > lowp_mat4x3
-
- -

4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 16 of file matrix_float4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, lowp > lowp_mat4x4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 34 of file matrix_float4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, mediump > mediump_dmat2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
-
- -

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_double2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
-
- -

2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
-
- -

2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, mediump > mediump_dmat3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
-
- -

3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
-
- -

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_double3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
-
- -

3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, mediump > mediump_dmat4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
-
- -

4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
-
- -

4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_double4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
-
- -

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_double4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, mediump > mediump_mat2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, mediump > mediump_mat2x2
-
- -

2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_float2x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, mediump > mediump_mat2x3
-
- -

2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float2x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, mediump > mediump_mat2x4
-
- -

2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float2x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, mediump > mediump_mat3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, mediump > mediump_mat3x2
-
- -

3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float3x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, mediump > mediump_mat3x3
-
- -

3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_float3x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, mediump > mediump_mat3x4
-
- -

3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float3x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, mediump > mediump_mat4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float4x4_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, mediump > mediump_mat4x2
-
- -

4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float4x2_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, mediump > mediump_mat4x3
-
- -

4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 22 of file matrix_float4x3_precision.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, mediump > mediump_mat4x4
-
- -

4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

-
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
-
-GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
- -

Definition at line 40 of file matrix_float4x4_precision.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Matrix types with precision qualifiers + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Matrix types with precision qualifiers
+
+
+ +

Matrix types with precision qualifiers which may result in various precision in term of ULPs. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, double, highp > highp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, highp > highp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, highp > highp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, highp > highp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, highp > highp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, highp > highp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, highp > highp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, highp > highp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, highp > highp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, highp > highp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, highp > highp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, highp > highp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, highp > highp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, highp > highp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, highp > highp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, highp > highp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, highp > highp_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, highp > highp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, highp > highp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, lowp > lowp_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, lowp > lowp_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, lowp > lowp_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, lowp > lowp_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, lowp > lowp_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, lowp > lowp_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, lowp > lowp_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, lowp > lowp_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, lowp > lowp_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
 2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
 3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
 4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 2, float, mediump > mediump_mat2x2
 2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 3, float, mediump > mediump_mat2x3
 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 2, 4, float, mediump > mediump_mat2x4
 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 2, float, mediump > mediump_mat3x2
 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 3, float, mediump > mediump_mat3x3
 3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 3, 4, float, mediump > mediump_mat3x4
 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 2, float, mediump > mediump_mat4x2
 4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 3, float, mediump > mediump_mat4x3
 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
typedef mat< 4, 4, float, mediump > mediump_mat4x4
 4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs. More...
 
+

Detailed Description

+

Matrix types with precision qualifiers which may result in various precision in term of ULPs.

+

GLSL allows defining qualifiers for particular variables. With OpenGL's GLSL, these qualifiers have no effect; they are there for compatibility, with OpenGL ES's GLSL, these qualifiers do have an effect.

+

C++ has no language equivalent to qualifier qualifiers. So GLM provides the next-best thing: a number of typedefs that use a particular qualifier.

+

None of these types make any guarantees about the actual qualifier used.

+

Typedef Documentation

+ +
+
+ + + + +
typedef mat< 2, 2, f64, highp > highp_dmat2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, double, highp > highp_dmat2x2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, double, highp > highp_dmat2x3
+
+ +

2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, double, highp > highp_dmat2x4
+
+ +

2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, highp > highp_dmat3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, double, highp > highp_dmat3x2
+
+ +

3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, double, highp > highp_dmat3x3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, double, highp > highp_dmat3x4
+
+ +

3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, highp > highp_dmat4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, double, highp > highp_dmat4x2
+
+ +

4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, double, highp > highp_dmat4x3
+
+ +

4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_double4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, double, highp > highp_dmat4x4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, highp > highp_mat2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, highp > highp_mat2x2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, highp > highp_mat2x3
+
+ +

2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, highp > highp_mat2x4
+
+ +

2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, highp > highp_mat3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, highp > highp_mat3x2
+
+ +

3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, highp > highp_mat3x3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, highp > highp_mat3x4
+
+ +

3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, highp > highp_mat4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, highp > highp_mat4x2
+
+ +

4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, highp > highp_mat4x3
+
+ +

4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 28 of file matrix_float4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, highp > highp_mat4x4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 46 of file matrix_float4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, lowp > lowp_dmat2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, double, lowp > lowp_dmat2x2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, double, lowp > lowp_dmat2x3
+
+ +

2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, double, lowp > lowp_dmat2x4
+
+ +

2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, lowp > lowp_dmat3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, double, lowp > lowp_dmat3x2
+
+ +

3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, double, lowp > lowp_dmat3x3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, double, lowp > lowp_dmat3x4
+
+ +

3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, lowp > lowp_dmat4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, double, lowp > lowp_dmat4x2
+
+ +

4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, double, lowp > lowp_dmat4x3
+
+ +

4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_double4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, double, lowp > lowp_dmat4x4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, lowp > lowp_mat2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, lowp > lowp_mat2x2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, lowp > lowp_mat2x3
+
+ +

2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, lowp > lowp_mat2x4
+
+ +

2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, lowp > lowp_mat3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, lowp > lowp_mat3x2
+
+ +

3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, lowp > lowp_mat3x3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, lowp > lowp_mat3x4
+
+ +

3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, lowp > lowp_mat4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, lowp > lowp_mat4x2
+
+ +

4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, lowp > lowp_mat4x3
+
+ +

4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 16 of file matrix_float4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, lowp > lowp_mat4x4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 34 of file matrix_float4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, mediump > mediump_dmat2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, double, mediump > mediump_dmat2x2
+
+ +

2 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_double2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, double, mediump > mediump_dmat2x3
+
+ +

2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, double, mediump > mediump_dmat2x4
+
+ +

2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, mediump > mediump_dmat3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, double, mediump > mediump_dmat3x2
+
+ +

3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, double, mediump > mediump_dmat3x3
+
+ +

3 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_double3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, double, mediump > mediump_dmat3x4
+
+ +

3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, mediump > mediump_dmat4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, double, mediump > mediump_dmat4x2
+
+ +

4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, double, mediump > mediump_dmat4x3
+
+ +

4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_double4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, double, mediump > mediump_dmat4x4
+
+ +

4 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_double4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, mediump > mediump_mat2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, mediump > mediump_mat2x2
+
+ +

2 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_float2x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, mediump > mediump_mat2x3
+
+ +

2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float2x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, mediump > mediump_mat2x4
+
+ +

2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float2x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, mediump > mediump_mat3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, mediump > mediump_mat3x2
+
+ +

3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float3x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, mediump > mediump_mat3x3
+
+ +

3 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_float3x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, mediump > mediump_mat3x4
+
+ +

3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float3x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, mediump > mediump_mat4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float4x4_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, mediump > mediump_mat4x2
+
+ +

4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float4x2_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, mediump > mediump_mat4x3
+
+ +

4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 22 of file matrix_float4x3_precision.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, mediump > mediump_mat4x4
+
+ +

4 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.

+
See also
GLSL 4.20.8 specification, section 4.1.6 Matrices
+
+GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
+ +

Definition at line 40 of file matrix_float4x4_precision.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00285.html b/external/include/glm-0.9.9.8/doc/api/a00285.html index af79a142e8..b9333026b3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00285.html +++ b/external/include/glm-0.9.9.8/doc/api/a00285.html @@ -1,211 +1,211 @@ - - - - - - -0.9.9 API documentation: Stable extensions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Stable extensions
-
-
- -

Additional features not specified by GLSL specification. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 GLM_EXT_matrix_clip_space
 Defines functions that generate clip space transformation matrices.
 
 GLM_EXT_matrix_common
 Defines functions for common matrix operations.
 
 GLM_EXT_matrix_projection
 Functions that generate common projection transformation matrices.
 
 GLM_EXT_matrix_relational
 Exposes comparison functions for matrix types that take a user defined epsilon values.
 
 GLM_EXT_matrix_transform
 Defines functions that generate common transformation matrices.
 
 GLM_EXT_quaternion_common
 Provides common functions for quaternion types.
 
 GLM_EXT_quaternion_double
 Exposes double-precision floating point quaternion type.
 
 GLM_EXT_quaternion_double_precision
 Exposes double-precision floating point quaternion type with various precision in term of ULPs.
 
 GLM_EXT_quaternion_exponential
 Provides exponential functions for quaternion types.
 
 GLM_EXT_quaternion_float
 Exposes single-precision floating point quaternion type.
 
 GLM_EXT_quaternion_float_precision
 Exposes single-precision floating point quaternion type with various precision in term of ULPs.
 
 GLM_EXT_quaternion_geometric
 Provides geometric functions for quaternion types.
 
 GLM_EXT_quaternion_relational
 Exposes comparison functions for quaternion types that take a user defined epsilon values.
 
 GLM_EXT_quaternion_transform
 Provides transformation functions for quaternion types.
 
 GLM_EXT_quaternion_trigonometric
 Provides trigonometric functions for quaternion types.
 
 GLM_EXT_scalar_common
 Exposes min and max functions for 3 to 4 scalar parameters.
 
 GLM_EXT_scalar_constants
 Provides a list of constants and precomputed useful values.
 
 GLM_EXT_scalar_int_sized
 Exposes sized signed integer scalar types.
 
 GLM_EXT_scalar_integer
 Include <glm/ext/scalar_integer.hpp> to use the features of this extension.
 
 GLM_EXT_scalar_relational
 Exposes comparison functions for scalar types that take a user defined epsilon values.
 
 GLM_EXT_scalar_uint_sized
 Exposes sized unsigned integer scalar types.
 
 GLM_EXT_scalar_ulp
 Allow the measurement of the accuracy of a function against a reference implementation.
 
 GLM_EXT_vector_bool1
 Exposes bvec1 vector type.
 
 GLM_EXT_vector_bool1_precision
 Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.
 
 GLM_EXT_vector_common
 Exposes min and max functions for 3 to 4 vector parameters.
 
 GLM_EXT_vector_double1
 Exposes double-precision floating point vector type with one component.
 
 GLM_EXT_vector_double1_precision
 Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.
 
 GLM_EXT_vector_float1
 Exposes single-precision floating point vector type with one component.
 
 GLM_EXT_vector_float1_precision
 Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.
 
 GLM_EXT_vector_int1
 Exposes ivec1 vector type.
 
 GLM_EXT_vector_int1_precision
 Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types.
 
 GLM_EXT_vector_integer
 Include <glm/ext/vector_integer.hpp> to use the features of this extension.
 
 GLM_EXT_vector_relational
 Exposes comparison functions for vector types that take a user defined epsilon values.
 
 GLM_EXT_vector_uint1
 Exposes uvec1 vector type.
 
 GLM_EXT_vector_uint1_precision
 Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types.
 
 GLM_EXT_vector_ulp
 Allow the measurement of the accuracy of a function against a reference implementation.
 
-

Detailed Description

-

Additional features not specified by GLSL specification.

-

EXT extensions are fully tested and documented.

-

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

-
- - - - + + + + + + +0.9.9 API documentation: Stable extensions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Stable extensions
+
+
+ +

Additional features not specified by GLSL specification. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 GLM_EXT_matrix_clip_space
 Defines functions that generate clip space transformation matrices.
 
 GLM_EXT_matrix_common
 Defines functions for common matrix operations.
 
 GLM_EXT_matrix_projection
 Functions that generate common projection transformation matrices.
 
 GLM_EXT_matrix_relational
 Exposes comparison functions for matrix types that take a user defined epsilon values.
 
 GLM_EXT_matrix_transform
 Defines functions that generate common transformation matrices.
 
 GLM_EXT_quaternion_common
 Provides common functions for quaternion types.
 
 GLM_EXT_quaternion_double
 Exposes double-precision floating point quaternion type.
 
 GLM_EXT_quaternion_double_precision
 Exposes double-precision floating point quaternion type with various precision in term of ULPs.
 
 GLM_EXT_quaternion_exponential
 Provides exponential functions for quaternion types.
 
 GLM_EXT_quaternion_float
 Exposes single-precision floating point quaternion type.
 
 GLM_EXT_quaternion_float_precision
 Exposes single-precision floating point quaternion type with various precision in term of ULPs.
 
 GLM_EXT_quaternion_geometric
 Provides geometric functions for quaternion types.
 
 GLM_EXT_quaternion_relational
 Exposes comparison functions for quaternion types that take a user defined epsilon values.
 
 GLM_EXT_quaternion_transform
 Provides transformation functions for quaternion types.
 
 GLM_EXT_quaternion_trigonometric
 Provides trigonometric functions for quaternion types.
 
 GLM_EXT_scalar_common
 Exposes min and max functions for 3 to 4 scalar parameters.
 
 GLM_EXT_scalar_constants
 Provides a list of constants and precomputed useful values.
 
 GLM_EXT_scalar_int_sized
 Exposes sized signed integer scalar types.
 
 GLM_EXT_scalar_integer
 Include <glm/ext/scalar_integer.hpp> to use the features of this extension.
 
 GLM_EXT_scalar_relational
 Exposes comparison functions for scalar types that take a user defined epsilon values.
 
 GLM_EXT_scalar_uint_sized
 Exposes sized unsigned integer scalar types.
 
 GLM_EXT_scalar_ulp
 Allow the measurement of the accuracy of a function against a reference implementation.
 
 GLM_EXT_vector_bool1
 Exposes bvec1 vector type.
 
 GLM_EXT_vector_bool1_precision
 Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.
 
 GLM_EXT_vector_common
 Exposes min and max functions for 3 to 4 vector parameters.
 
 GLM_EXT_vector_double1
 Exposes double-precision floating point vector type with one component.
 
 GLM_EXT_vector_double1_precision
 Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.
 
 GLM_EXT_vector_float1
 Exposes single-precision floating point vector type with one component.
 
 GLM_EXT_vector_float1_precision
 Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.
 
 GLM_EXT_vector_int1
 Exposes ivec1 vector type.
 
 GLM_EXT_vector_int1_precision
 Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types.
 
 GLM_EXT_vector_integer
 Include <glm/ext/vector_integer.hpp> to use the features of this extension.
 
 GLM_EXT_vector_relational
 Exposes comparison functions for vector types that take a user defined epsilon values.
 
 GLM_EXT_vector_uint1
 Exposes uvec1 vector type.
 
 GLM_EXT_vector_uint1_precision
 Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types.
 
 GLM_EXT_vector_ulp
 Allow the measurement of the accuracy of a function against a reference implementation.
 
+

Detailed Description

+

Additional features not specified by GLSL specification.

+

EXT extensions are fully tested and documented.

+

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00286.html b/external/include/glm-0.9.9.8/doc/api/a00286.html index add382f632..262daad594 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00286.html +++ b/external/include/glm-0.9.9.8/doc/api/a00286.html @@ -1,163 +1,163 @@ - - - - - - -0.9.9 API documentation: Recommended extensions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Recommended extensions
-
-
- -

Additional features not specified by GLSL specification. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 GLM_GTC_bitfield
 Include <glm/gtc/bitfield.hpp> to use the features of this extension.
 
 GLM_GTC_color_space
 Include <glm/gtc/color_space.hpp> to use the features of this extension.
 
 GLM_GTC_constants
 Include <glm/gtc/constants.hpp> to use the features of this extension.
 
 GLM_GTC_epsilon
 Include <glm/gtc/epsilon.hpp> to use the features of this extension.
 
 GLM_GTC_integer
 Include <glm/gtc/integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_access
 Include <glm/gtc/matrix_access.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_integer
 Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_inverse
 Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_transform
 Include <glm/gtc/matrix_transform.hpp> to use the features of this extension.
 
 GLM_GTC_noise
 Include <glm/gtc/noise.hpp> to use the features of this extension.
 
 GLM_GTC_packing
 Include <glm/gtc/packing.hpp> to use the features of this extension.
 
 GLM_GTC_quaternion
 Include <glm/gtc/quaternion.hpp> to use the features of this extension.
 
 GLM_GTC_random
 Include <glm/gtc/random.hpp> to use the features of this extension.
 
 GLM_GTC_reciprocal
 Include <glm/gtc/reciprocal.hpp> to use the features of this extension.
 
 GLM_GTC_round
 Include <glm/gtc/round.hpp> to use the features of this extension.
 
 GLM_GTC_type_aligned
 Include <glm/gtc/type_aligned.hpp> to use the features of this extension.
 
 GLM_GTC_type_precision
 Include <glm/gtc/type_precision.hpp> to use the features of this extension.
 
 GLM_GTC_type_ptr
 Include <glm/gtc/type_ptr.hpp> to use the features of this extension.
 
 GLM_GTC_ulp
 Include <glm/gtc/ulp.hpp> to use the features of this extension.
 
 GLM_GTC_vec1
 Include <glm/gtc/vec1.hpp> to use the features of this extension.
 
-

Detailed Description

-

Additional features not specified by GLSL specification.

-

GTC extensions aim to be stable with tests and documentation.

-

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

-
- - - - + + + + + + +0.9.9 API documentation: Recommended extensions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Recommended extensions
+
+
+ +

Additional features not specified by GLSL specification. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 GLM_GTC_bitfield
 Include <glm/gtc/bitfield.hpp> to use the features of this extension.
 
 GLM_GTC_color_space
 Include <glm/gtc/color_space.hpp> to use the features of this extension.
 
 GLM_GTC_constants
 Include <glm/gtc/constants.hpp> to use the features of this extension.
 
 GLM_GTC_epsilon
 Include <glm/gtc/epsilon.hpp> to use the features of this extension.
 
 GLM_GTC_integer
 Include <glm/gtc/integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_access
 Include <glm/gtc/matrix_access.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_integer
 Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_inverse
 Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.
 
 GLM_GTC_matrix_transform
 Include <glm/gtc/matrix_transform.hpp> to use the features of this extension.
 
 GLM_GTC_noise
 Include <glm/gtc/noise.hpp> to use the features of this extension.
 
 GLM_GTC_packing
 Include <glm/gtc/packing.hpp> to use the features of this extension.
 
 GLM_GTC_quaternion
 Include <glm/gtc/quaternion.hpp> to use the features of this extension.
 
 GLM_GTC_random
 Include <glm/gtc/random.hpp> to use the features of this extension.
 
 GLM_GTC_reciprocal
 Include <glm/gtc/reciprocal.hpp> to use the features of this extension.
 
 GLM_GTC_round
 Include <glm/gtc/round.hpp> to use the features of this extension.
 
 GLM_GTC_type_aligned
 Include <glm/gtc/type_aligned.hpp> to use the features of this extension.
 
 GLM_GTC_type_precision
 Include <glm/gtc/type_precision.hpp> to use the features of this extension.
 
 GLM_GTC_type_ptr
 Include <glm/gtc/type_ptr.hpp> to use the features of this extension.
 
 GLM_GTC_ulp
 Include <glm/gtc/ulp.hpp> to use the features of this extension.
 
 GLM_GTC_vec1
 Include <glm/gtc/vec1.hpp> to use the features of this extension.
 
+

Detailed Description

+

Additional features not specified by GLSL specification.

+

GTC extensions aim to be stable with tests and documentation.

+

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00287.html b/external/include/glm-0.9.9.8/doc/api/a00287.html index 840aab7f52..765dc34e8f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00287.html +++ b/external/include/glm-0.9.9.8/doc/api/a00287.html @@ -1,289 +1,289 @@ - - - - - - -0.9.9 API documentation: Experimental extensions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Experimental extensions
-
-
- -

Experimental features not specified by GLSL specification. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Modules

 GLM_GTX_associated_min_max
 Include <glm/gtx/associated_min_max.hpp> to use the features of this extension.
 
 GLM_GTX_bit
 Include <glm/gtx/bit.hpp> to use the features of this extension.
 
 GLM_GTX_closest_point
 Include <glm/gtx/closest_point.hpp> to use the features of this extension.
 
 GLM_GTX_color_encoding
 Include <glm/gtx/color_encoding.hpp> to use the features of this extension.
 
 GLM_GTX_color_space
 Include <glm/gtx/color_space.hpp> to use the features of this extension.
 
 GLM_GTX_color_space_YCoCg
 Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension.
 
 GLM_GTX_common
 Include <glm/gtx/common.hpp> to use the features of this extension.
 
 GLM_GTX_compatibility
 Include <glm/gtx/compatibility.hpp> to use the features of this extension.
 
 GLM_GTX_component_wise
 Include <glm/gtx/component_wise.hpp> to use the features of this extension.
 
 GLM_GTX_dual_quaternion
 Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension.
 
 GLM_GTX_easing
 Include <glm/gtx/easing.hpp> to use the features of this extension.
 
 GLM_GTX_euler_angles
 Include <glm/gtx/euler_angles.hpp> to use the features of this extension.
 
 GLM_GTX_extend
 Include <glm/gtx/extend.hpp> to use the features of this extension.
 
 GLM_GTX_extented_min_max
 Include <glm/gtx/extented_min_max.hpp> to use the features of this extension.
 
 GLM_GTX_exterior_product
 Include <glm/gtx/exterior_product.hpp> to use the features of this extension.
 
 GLM_GTX_fast_exponential
 Include <glm/gtx/fast_exponential.hpp> to use the features of this extension.
 
 GLM_GTX_fast_square_root
 Include <glm/gtx/fast_square_root.hpp> to use the features of this extension.
 
 GLM_GTX_fast_trigonometry
 Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension.
 
 GLM_GTX_functions
 Include <glm/gtx/functions.hpp> to use the features of this extension.
 
 GLM_GTX_gradient_paint
 Include <glm/gtx/gradient_paint.hpp> to use the features of this extension.
 
 GLM_GTX_handed_coordinate_space
 Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension.
 
 GLM_GTX_hash
 Include <glm/gtx/hash.hpp> to use the features of this extension.
 
 GLM_GTX_integer
 Include <glm/gtx/integer.hpp> to use the features of this extension.
 
 GLM_GTX_intersect
 Include <glm/gtx/intersect.hpp> to use the features of this extension.
 
 GLM_GTX_io
 Include <glm/gtx/io.hpp> to use the features of this extension.
 
 GLM_GTX_log_base
 Include <glm/gtx/log_base.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_cross_product
 Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_decompose
 Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_factorisation
 Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_interpolation
 Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_major_storage
 Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_operation
 Include <glm/gtx/matrix_operation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_query
 Include <glm/gtx/matrix_query.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_transform_2d
 Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension.
 
 GLM_GTX_mixed_producte
 Include <glm/gtx/mixed_product.hpp> to use the features of this extension.
 
 GLM_GTX_norm
 Include <glm/gtx/norm.hpp> to use the features of this extension.
 
 GLM_GTX_normal
 Include <glm/gtx/normal.hpp> to use the features of this extension.
 
 GLM_GTX_normalize_dot
 Include <glm/gtx/normalized_dot.hpp> to use the features of this extension.
 
 GLM_GTX_number_precision
 Include <glm/gtx/number_precision.hpp> to use the features of this extension.
 
 GLM_GTX_optimum_pow
 Include <glm/gtx/optimum_pow.hpp> to use the features of this extension.
 
 GLM_GTX_orthonormalize
 Include <glm/gtx/orthonormalize.hpp> to use the features of this extension.
 
 GLM_GTX_perpendicular
 Include <glm/gtx/perpendicular.hpp> to use the features of this extension.
 
 GLM_GTX_polar_coordinates
 Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension.
 
 GLM_GTX_projection
 Include <glm/gtx/projection.hpp> to use the features of this extension.
 
 GLM_GTX_quaternion
 Include <glm/gtx/quaternion.hpp> to use the features of this extension.
 
 GLM_GTX_range
 Include <glm/gtx/range.hpp> to use the features of this extension.
 
 GLM_GTX_raw_data
 Include <glm/gtx/raw_data.hpp> to use the features of this extension.
 
 GLM_GTX_rotate_normalized_axis
 Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension.
 
 GLM_GTX_rotate_vector
 Include <glm/gtx/rotate_vector.hpp> to use the features of this extension.
 
 GLM_GTX_scalar_relational
 Include <glm/gtx/scalar_relational.hpp> to use the features of this extension.
 
 GLM_GTX_spline
 Include <glm/gtx/spline.hpp> to use the features of this extension.
 
 GLM_GTX_std_based_type
 Include <glm/gtx/std_based_type.hpp> to use the features of this extension.
 
 GLM_GTX_string_cast
 Include <glm/gtx/string_cast.hpp> to use the features of this extension.
 
 GLM_GTX_texture
 Include <glm/gtx/texture.hpp> to use the features of this extension.
 
 GLM_GTX_transform
 Include <glm/gtx/transform.hpp> to use the features of this extension.
 
 GLM_GTX_transform2
 Include <glm/gtx/transform2.hpp> to use the features of this extension.
 
 GLM_GTX_type_aligned
 Include <glm/gtx/type_aligned.hpp> to use the features of this extension.
 
 GLM_GTX_type_trait
 Include <glm/gtx/type_trait.hpp> to use the features of this extension.
 
 GLM_GTX_vec_swizzle
 Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.
 
 GLM_GTX_vector_angle
 Include <glm/gtx/vector_angle.hpp> to use the features of this extension.
 
 GLM_GTX_vector_query
 Include <glm/gtx/vector_query.hpp> to use the features of this extension.
 
 GLM_GTX_wrap
 Include <glm/gtx/wrap.hpp> to use the features of this extension.
 
-

Detailed Description

-

Experimental features not specified by GLSL specification.

-

Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

-

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

-
- - - - + + + + + + +0.9.9 API documentation: Experimental extensions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Experimental extensions
+
+
+ +

Experimental features not specified by GLSL specification. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 GLM_GTX_associated_min_max
 Include <glm/gtx/associated_min_max.hpp> to use the features of this extension.
 
 GLM_GTX_bit
 Include <glm/gtx/bit.hpp> to use the features of this extension.
 
 GLM_GTX_closest_point
 Include <glm/gtx/closest_point.hpp> to use the features of this extension.
 
 GLM_GTX_color_encoding
 Include <glm/gtx/color_encoding.hpp> to use the features of this extension.
 
 GLM_GTX_color_space
 Include <glm/gtx/color_space.hpp> to use the features of this extension.
 
 GLM_GTX_color_space_YCoCg
 Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension.
 
 GLM_GTX_common
 Include <glm/gtx/common.hpp> to use the features of this extension.
 
 GLM_GTX_compatibility
 Include <glm/gtx/compatibility.hpp> to use the features of this extension.
 
 GLM_GTX_component_wise
 Include <glm/gtx/component_wise.hpp> to use the features of this extension.
 
 GLM_GTX_dual_quaternion
 Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension.
 
 GLM_GTX_easing
 Include <glm/gtx/easing.hpp> to use the features of this extension.
 
 GLM_GTX_euler_angles
 Include <glm/gtx/euler_angles.hpp> to use the features of this extension.
 
 GLM_GTX_extend
 Include <glm/gtx/extend.hpp> to use the features of this extension.
 
 GLM_GTX_extented_min_max
 Include <glm/gtx/extented_min_max.hpp> to use the features of this extension.
 
 GLM_GTX_exterior_product
 Include <glm/gtx/exterior_product.hpp> to use the features of this extension.
 
 GLM_GTX_fast_exponential
 Include <glm/gtx/fast_exponential.hpp> to use the features of this extension.
 
 GLM_GTX_fast_square_root
 Include <glm/gtx/fast_square_root.hpp> to use the features of this extension.
 
 GLM_GTX_fast_trigonometry
 Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension.
 
 GLM_GTX_functions
 Include <glm/gtx/functions.hpp> to use the features of this extension.
 
 GLM_GTX_gradient_paint
 Include <glm/gtx/gradient_paint.hpp> to use the features of this extension.
 
 GLM_GTX_handed_coordinate_space
 Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension.
 
 GLM_GTX_hash
 Include <glm/gtx/hash.hpp> to use the features of this extension.
 
 GLM_GTX_integer
 Include <glm/gtx/integer.hpp> to use the features of this extension.
 
 GLM_GTX_intersect
 Include <glm/gtx/intersect.hpp> to use the features of this extension.
 
 GLM_GTX_io
 Include <glm/gtx/io.hpp> to use the features of this extension.
 
 GLM_GTX_log_base
 Include <glm/gtx/log_base.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_cross_product
 Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_decompose
 Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_factorisation
 Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_interpolation
 Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_major_storage
 Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_operation
 Include <glm/gtx/matrix_operation.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_query
 Include <glm/gtx/matrix_query.hpp> to use the features of this extension.
 
 GLM_GTX_matrix_transform_2d
 Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension.
 
 GLM_GTX_mixed_producte
 Include <glm/gtx/mixed_product.hpp> to use the features of this extension.
 
 GLM_GTX_norm
 Include <glm/gtx/norm.hpp> to use the features of this extension.
 
 GLM_GTX_normal
 Include <glm/gtx/normal.hpp> to use the features of this extension.
 
 GLM_GTX_normalize_dot
 Include <glm/gtx/normalized_dot.hpp> to use the features of this extension.
 
 GLM_GTX_number_precision
 Include <glm/gtx/number_precision.hpp> to use the features of this extension.
 
 GLM_GTX_optimum_pow
 Include <glm/gtx/optimum_pow.hpp> to use the features of this extension.
 
 GLM_GTX_orthonormalize
 Include <glm/gtx/orthonormalize.hpp> to use the features of this extension.
 
 GLM_GTX_perpendicular
 Include <glm/gtx/perpendicular.hpp> to use the features of this extension.
 
 GLM_GTX_polar_coordinates
 Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension.
 
 GLM_GTX_projection
 Include <glm/gtx/projection.hpp> to use the features of this extension.
 
 GLM_GTX_quaternion
 Include <glm/gtx/quaternion.hpp> to use the features of this extension.
 
 GLM_GTX_range
 Include <glm/gtx/range.hpp> to use the features of this extension.
 
 GLM_GTX_raw_data
 Include <glm/gtx/raw_data.hpp> to use the features of this extension.
 
 GLM_GTX_rotate_normalized_axis
 Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension.
 
 GLM_GTX_rotate_vector
 Include <glm/gtx/rotate_vector.hpp> to use the features of this extension.
 
 GLM_GTX_scalar_relational
 Include <glm/gtx/scalar_relational.hpp> to use the features of this extension.
 
 GLM_GTX_spline
 Include <glm/gtx/spline.hpp> to use the features of this extension.
 
 GLM_GTX_std_based_type
 Include <glm/gtx/std_based_type.hpp> to use the features of this extension.
 
 GLM_GTX_string_cast
 Include <glm/gtx/string_cast.hpp> to use the features of this extension.
 
 GLM_GTX_texture
 Include <glm/gtx/texture.hpp> to use the features of this extension.
 
 GLM_GTX_transform
 Include <glm/gtx/transform.hpp> to use the features of this extension.
 
 GLM_GTX_transform2
 Include <glm/gtx/transform2.hpp> to use the features of this extension.
 
 GLM_GTX_type_aligned
 Include <glm/gtx/type_aligned.hpp> to use the features of this extension.
 
 GLM_GTX_type_trait
 Include <glm/gtx/type_trait.hpp> to use the features of this extension.
 
 GLM_GTX_vec_swizzle
 Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.
 
 GLM_GTX_vector_angle
 Include <glm/gtx/vector_angle.hpp> to use the features of this extension.
 
 GLM_GTX_vector_query
 Include <glm/gtx/vector_query.hpp> to use the features of this extension.
 
 GLM_GTX_wrap
 Include <glm/gtx/wrap.hpp> to use the features of this extension.
 
+

Detailed Description

+

Experimental features not specified by GLSL specification.

+

Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

+

Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00288.html b/external/include/glm-0.9.9.8/doc/api/a00288.html index 4b76a0023c..ebebbdc9a8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00288.html +++ b/external/include/glm-0.9.9.8/doc/api/a00288.html @@ -1,1228 +1,1228 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_bitfield - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_bitfield
-
-
- -

Include <glm/gtc/bitfield.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL glm::u8vec2 bitfieldDeinterleave (glm::uint16 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u16vec2 bitfieldDeinterleave (glm::uint32 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave (glm::uint64 x)
 Deinterleaves the bits of x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (u8vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (u16vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (u32vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 Interleaves the bits of x, y, z and w. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 Rotate all bits to the left. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the left. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 Rotate all bits to the right. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the right. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 Build a mask of 'count' bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mask (vec< L, T, Q > const &v)
 Build a mask of 'count' bits. More...
 
-

Detailed Description

-

Include <glm/gtc/bitfield.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL glm::u8vec2 glm::bitfieldDeinterleave (glm::uint16 x)
-
- -

Deinterleaves the bits of x.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL glm::u16vec2 glm::bitfieldDeinterleave (glm::uint32 x)
-
- -

Deinterleaves the bits of x.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL glm::u32vec2 glm::bitfieldDeinterleave (glm::uint64 x)
-
- -

Deinterleaves the bits of x.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldFillOne (genIUType Value,
int FirstBit,
int BitCount 
)
-
- -

Set to 1 a range of bits.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldFillOne (vec< L, T, Q > const & Value,
int FirstBit,
int BitCount 
)
-
- -

Set to 1 a range of bits.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldFillZero (genIUType Value,
int FirstBit,
int BitCount 
)
-
- -

Set to 0 a range of bits.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldFillZero (vec< L, T, Q > const & Value,
int FirstBit,
int BitCount 
)
-
- -

Set to 0 a range of bits.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int16 glm::bitfieldInterleave (int8 x,
int8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (uint8 x,
uint8 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (u8vec2 const & v)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int16 x,
int16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint16 x,
uint16 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (u16vec2 const & v)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y 
)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (u32vec2 const & v)
-
- -

Interleaves the bits of x and y.

-

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y,
int32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y,
uint32 z 
)
-
- -

Interleaves the bits of x, y and z.

-

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z,
int8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z,
uint8 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z,
int16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z,
uint16 w 
)
-
- -

Interleaves the bits of x, y, z and w.

-

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft (genIUType In,
int Shift 
)
-
- -

Rotate all bits to the left.

-

All the bits dropped in the left side are inserted back on the right side.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldRotateLeft (vec< L, T, Q > const & In,
int Shift 
)
-
- -

Rotate all bits to the left.

-

All the bits dropped in the left side are inserted back on the right side.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genIUType glm::bitfieldRotateRight (genIUType In,
int Shift 
)
-
- -

Rotate all bits to the right.

-

All the bits dropped in the right side are inserted back on the left side.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldRotateRight (vec< L, T, Q > const & In,
int Shift 
)
-
- -

Rotate all bits to the right.

-

All the bits dropped in the right side are inserted back on the left side.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::mask (genIUType Bits)
-
- -

Build a mask of 'count' bits.

-
See also
GLM_GTC_bitfield
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::mask (vec< L, T, Q > const & v)
-
- -

Build a mask of 'count' bits.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_bitfield
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_bitfield + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_bitfield
+
+
+ +

Include <glm/gtc/bitfield.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL glm::u8vec2 bitfieldDeinterleave (glm::uint16 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u16vec2 bitfieldDeinterleave (glm::uint32 x)
 Deinterleaves the bits of x. More...
 
GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave (glm::uint64 x)
 Deinterleaves the bits of x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillOne (genIUType Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillOne (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 1 a range of bits. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldFillZero (genIUType Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldFillZero (vec< L, T, Q > const &Value, int FirstBit, int BitCount)
 Set to 0 a range of bits. More...
 
GLM_FUNC_DECL int16 bitfieldInterleave (int8 x, int8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (uint8 x, uint8 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint16 bitfieldInterleave (u8vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int16 x, int16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint16 x, uint16 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (u16vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (u32vec2 const &v)
 Interleaves the bits of x and y. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int32 x, int32 y, int32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint32 x, uint32 y, uint32 z)
 Interleaves the bits of x, y and z. More...
 
GLM_FUNC_DECL int32 bitfieldInterleave (int8 x, int8 y, int8 z, int8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint32 bitfieldInterleave (uint8 x, uint8 y, uint8 z, uint8 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL int64 bitfieldInterleave (int16 x, int16 y, int16 z, int16 w)
 Interleaves the bits of x, y, z and w. More...
 
GLM_FUNC_DECL uint64 bitfieldInterleave (uint16 x, uint16 y, uint16 z, uint16 w)
 Interleaves the bits of x, y, z and w. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateLeft (genIUType In, int Shift)
 Rotate all bits to the left. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateLeft (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the left. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType bitfieldRotateRight (genIUType In, int Shift)
 Rotate all bits to the right. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldRotateRight (vec< L, T, Q > const &In, int Shift)
 Rotate all bits to the right. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType mask (genIUType Bits)
 Build a mask of 'count' bits. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > mask (vec< L, T, Q > const &v)
 Build a mask of 'count' bits. More...
 
+

Detailed Description

+

Include <glm/gtc/bitfield.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL glm::u8vec2 glm::bitfieldDeinterleave (glm::uint16 x)
+
+ +

Deinterleaves the bits of x.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL glm::u16vec2 glm::bitfieldDeinterleave (glm::uint32 x)
+
+ +

Deinterleaves the bits of x.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL glm::u32vec2 glm::bitfieldDeinterleave (glm::uint64 x)
+
+ +

Deinterleaves the bits of x.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldFillOne (genIUType Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 1 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldFillOne (vec< L, T, Q > const & Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 1 a range of bits.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldFillZero (genIUType Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 0 a range of bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldFillZero (vec< L, T, Q > const & Value,
int FirstBit,
int BitCount 
)
+
+ +

Set to 0 a range of bits.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int16 glm::bitfieldInterleave (int8 x,
int8 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (uint8 x,
uint8 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::bitfieldInterleave (u8vec2 const & v)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int16 x,
int16 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint16 x,
uint16 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (u16vec2 const & v)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y 
)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of x followed by the first bit of y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (u32vec2 const & v)
+
+ +

Interleaves the bits of x and y.

+

The first bit is the first bit of v.x followed by the first bit of v.y. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int32 x,
int32 y,
int32 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint32 x,
uint32 y,
uint32 z 
)
+
+ +

Interleaves the bits of x, y and z.

+

The first bit is the first bit of x followed by the first bit of y and the first bit of z. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int32 glm::bitfieldInterleave (int8 x,
int8 y,
int8 z,
int8 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint32 glm::bitfieldInterleave (uint8 x,
uint8 y,
uint8 z,
uint8 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int64 glm::bitfieldInterleave (int16 x,
int16 y,
int16 z,
int16 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint64 glm::bitfieldInterleave (uint16 x,
uint16 y,
uint16 z,
uint16 w 
)
+
+ +

Interleaves the bits of x, y, z and w.

+

The first bit is the first bit of x followed by the first bit of y, the first bit of z and finally the first bit of w. The other bits are interleaved following the previous sequence.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldRotateLeft (genIUType In,
int Shift 
)
+
+ +

Rotate all bits to the left.

+

All the bits dropped in the left side are inserted back on the right side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldRotateLeft (vec< L, T, Q > const & In,
int Shift 
)
+
+ +

Rotate all bits to the left.

+

All the bits dropped in the left side are inserted back on the right side.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genIUType glm::bitfieldRotateRight (genIUType In,
int Shift 
)
+
+ +

Rotate all bits to the right.

+

All the bits dropped in the right side are inserted back on the left side.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldRotateRight (vec< L, T, Q > const & In,
int Shift 
)
+
+ +

Rotate all bits to the right.

+

All the bits dropped in the right side are inserted back on the left side.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::mask (genIUType Bits)
+
+ +

Build a mask of 'count' bits.

+
See also
GLM_GTC_bitfield
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::mask (vec< L, T, Q > const & v)
+
+ +

Build a mask of 'count' bits.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TSigned and unsigned integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_bitfield
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00289.html b/external/include/glm-0.9.9.8/doc/api/a00289.html index 1d685156be..29e665882f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00289.html +++ b/external/include/glm-0.9.9.8/doc/api/a00289.html @@ -1,187 +1,187 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_color_space - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_color_space
-
-
- -

Include <glm/gtc/color_space.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear)
 Convert a linear color to sRGB color using a standard gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear, T Gamma)
 Convert a linear color to sRGB color using a custom gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB)
 Convert a sRGB color to linear color using a standard gamma correction. More...
 
-template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB, T Gamma)
 Convert a sRGB color to linear color using a custom gamma correction.
 
-

Detailed Description

-

Include <glm/gtc/color_space.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::convertLinearToSRGB (vec< L, T, Q > const & ColorLinear)
-
- -

Convert a linear color to sRGB color using a standard gamma correction.

-

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::convertLinearToSRGB (vec< L, T, Q > const & ColorLinear,
T Gamma 
)
-
- -

Convert a linear color to sRGB color using a custom gamma correction.

-

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::convertSRGBToLinear (vec< L, T, Q > const & ColorSRGB)
-
- -

Convert a sRGB color to linear color using a standard gamma correction.

-

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_color_space + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_color_space
+
+
+ +

Include <glm/gtc/color_space.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear)
 Convert a linear color to sRGB color using a standard gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertLinearToSRGB (vec< L, T, Q > const &ColorLinear, T Gamma)
 Convert a linear color to sRGB color using a custom gamma correction. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB)
 Convert a sRGB color to linear color using a standard gamma correction. More...
 
+template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > convertSRGBToLinear (vec< L, T, Q > const &ColorSRGB, T Gamma)
 Convert a sRGB color to linear color using a custom gamma correction.
 
+

Detailed Description

+

Include <glm/gtc/color_space.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::convertLinearToSRGB (vec< L, T, Q > const & ColorLinear)
+
+ +

Convert a linear color to sRGB color using a standard gamma correction.

+

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::convertLinearToSRGB (vec< L, T, Q > const & ColorLinear,
T Gamma 
)
+
+ +

Convert a linear color to sRGB color using a custom gamma correction.

+

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::convertSRGBToLinear (vec< L, T, Q > const & ColorSRGB)
+
+ +

Convert a sRGB color to linear color using a standard gamma correction.

+

IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00290.html b/external/include/glm-0.9.9.8/doc/api/a00290.html index bb29fe3533..f4bafa150e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00290.html +++ b/external/include/glm-0.9.9.8/doc/api/a00290.html @@ -1,697 +1,697 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_constants - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_constants
-
-
- -

Include <glm/gtc/constants.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType e ()
 Return e constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType euler ()
 Return Euler's constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi ()
 Return 4 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio ()
 Return the golden ratio constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi ()
 Return pi / 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two ()
 Return ln(ln(2)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten ()
 Return ln(10). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two ()
 Return ln(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one ()
 Return 1. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi ()
 Return 1 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two ()
 Return 1 / sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi ()
 Return 1 / (pi * 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi ()
 Return pi / 4. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five ()
 Return sqrt(5). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi ()
 Return sqrt(pi / 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four ()
 Return sqrt(ln(4)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi ()
 Return square root of pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three ()
 Return sqrt(3). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two ()
 Return sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi ()
 Return sqrt(2 * pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType third ()
 Return 1 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi ()
 Return pi / 2 * 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi ()
 Return 2 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi ()
 Return 2 / sqrt(pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi ()
 Return pi * 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds ()
 Return 2 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType zero ()
 Return 0. More...
 
-

Detailed Description

-

Include <glm/gtc/constants.hpp> to use the features of this extension.

-

Provide a list of constants and precomputed useful values.

-

Function Documentation

- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::e ()
-
- -

Return e constant.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::euler ()
-
- -

Return Euler's constant.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::four_over_pi ()
-
- -

Return 4 / pi.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::golden_ratio ()
-
- -

Return the golden ratio constant.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::half_pi ()
-
- -

Return pi / 2.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ln_two ()
-
- -

Return ln(ln(2)).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ten ()
-
- -

Return ln(10).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_two ()
-
- -

Return ln(2).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one ()
-
- -

Return 1.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_pi ()
-
- -

Return 1 / pi.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_root_two ()
-
- -

Return 1 / sqrt(2).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_two_pi ()
-
- -

Return 1 / (pi * 2).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::quarter_pi ()
-
- -

Return pi / 4.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_five ()
-
- -

Return sqrt(5).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_half_pi ()
-
- -

Return sqrt(pi / 2).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_ln_four ()
-
- -

Return sqrt(ln(4)).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_pi ()
-
- -

Return square root of pi.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_three ()
-
- -

Return sqrt(3).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two ()
-
- -

Return sqrt(2).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two_pi ()
-
- -

Return sqrt(2 * pi).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::third ()
-
- -

Return 1 / 3.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::three_over_two_pi ()
-
- -

Return pi / 2 * 3.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_pi ()
-
- -

Return 2 / pi.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_root_pi ()
-
- -

Return 2 / sqrt(pi).

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_pi ()
-
- -

Return pi * 2.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_thirds ()
-
- -

Return 2 / 3.

-
See also
GLM_GTC_constants
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::zero ()
-
- -

Return 0.

-
See also
GLM_GTC_constants
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_constants + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_constants
+
+
+ +

Include <glm/gtc/constants.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType e ()
 Return e constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType euler ()
 Return Euler's constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType four_over_pi ()
 Return 4 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType golden_ratio ()
 Return the golden ratio constant. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType half_pi ()
 Return pi / 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ln_two ()
 Return ln(ln(2)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_ten ()
 Return ln(10). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType ln_two ()
 Return ln(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one ()
 Return 1. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_pi ()
 Return 1 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_root_two ()
 Return 1 / sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType one_over_two_pi ()
 Return 1 / (pi * 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType quarter_pi ()
 Return pi / 4. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_five ()
 Return sqrt(5). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_half_pi ()
 Return sqrt(pi / 2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_ln_four ()
 Return sqrt(ln(4)). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_pi ()
 Return square root of pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_three ()
 Return sqrt(3). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two ()
 Return sqrt(2). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType root_two_pi ()
 Return sqrt(2 * pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType third ()
 Return 1 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType three_over_two_pi ()
 Return pi / 2 * 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_pi ()
 Return 2 / pi. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_over_root_pi ()
 Return 2 / sqrt(pi). More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_pi ()
 Return pi * 2. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType two_thirds ()
 Return 2 / 3. More...
 
template<typename genType >
GLM_FUNC_DECL GLM_CONSTEXPR genType zero ()
 Return 0. More...
 
+

Detailed Description

+

Include <glm/gtc/constants.hpp> to use the features of this extension.

+

Provide a list of constants and precomputed useful values.

+

Function Documentation

+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::e ()
+
+ +

Return e constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::euler ()
+
+ +

Return Euler's constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::four_over_pi ()
+
+ +

Return 4 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::golden_ratio ()
+
+ +

Return the golden ratio constant.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::half_pi ()
+
+ +

Return pi / 2.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ln_two ()
+
+ +

Return ln(ln(2)).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_ten ()
+
+ +

Return ln(10).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::ln_two ()
+
+ +

Return ln(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one ()
+
+ +

Return 1.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_pi ()
+
+ +

Return 1 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_root_two ()
+
+ +

Return 1 / sqrt(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::one_over_two_pi ()
+
+ +

Return 1 / (pi * 2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::quarter_pi ()
+
+ +

Return pi / 4.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_five ()
+
+ +

Return sqrt(5).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_half_pi ()
+
+ +

Return sqrt(pi / 2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_ln_four ()
+
+ +

Return sqrt(ln(4)).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_pi ()
+
+ +

Return square root of pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_three ()
+
+ +

Return sqrt(3).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two ()
+
+ +

Return sqrt(2).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::root_two_pi ()
+
+ +

Return sqrt(2 * pi).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::third ()
+
+ +

Return 1 / 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::three_over_two_pi ()
+
+ +

Return pi / 2 * 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_pi ()
+
+ +

Return 2 / pi.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_over_root_pi ()
+
+ +

Return 2 / sqrt(pi).

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_pi ()
+
+ +

Return pi * 2.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::two_thirds ()
+
+ +

Return 2 / 3.

+
See also
GLM_GTC_constants
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR genType glm::zero ()
+
+ +

Return 0.

+
See also
GLM_GTC_constants
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00291.html b/external/include/glm-0.9.9.8/doc/api/a00291.html index d53cd821e5..8a951ece9c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00291.html +++ b/external/include/glm-0.9.9.8/doc/api/a00291.html @@ -1,263 +1,263 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_epsilon - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_epsilon
-
-
- -

Include <glm/gtc/epsilon.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonNotEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
-

Detailed Description

-

Include <glm/gtc/epsilon.hpp> to use the features of this extension.

-

Comparison functions for a user defined epsilon values.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::epsilonEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is satisfied.

-
See also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::epsilonNotEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| < epsilon.

-

True if this expression is not satisfied.

-
See also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::epsilonNotEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
-
- -

Returns the component-wise comparison of |x - y| >= epsilon.

-

True if this expression is not satisfied.

-
See also
GLM_GTC_epsilon
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_epsilon + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_epsilon
+
+
+ +

Include <glm/gtc/epsilon.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > epsilonNotEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)
 Returns the component-wise comparison of |x - y| < epsilon. More...
 
template<typename genType >
GLM_FUNC_DECL bool epsilonNotEqual (genType const &x, genType const &y, genType const &epsilon)
 Returns the component-wise comparison of |x - y| >= epsilon. More...
 
+

Detailed Description

+

Include <glm/gtc/epsilon.hpp> to use the features of this extension.

+

Comparison functions for a user defined epsilon values.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::epsilonEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::epsilonEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::epsilonNotEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y,
T const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| < epsilon.

+

True if this expression is not satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::epsilonNotEqual (genType const & x,
genType const & y,
genType const & epsilon 
)
+
+ +

Returns the component-wise comparison of |x - y| >= epsilon.

+

True if this expression is not satisfied.

+
See also
GLM_GTC_epsilon
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00292.html b/external/include/glm-0.9.9.8/doc/api/a00292.html index 7a75114c2e..14ee5af233 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00292.html +++ b/external/include/glm-0.9.9.8/doc/api/a00292.html @@ -1,202 +1,202 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_integer - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_integer
-
-
- -

Include <glm/gtc/integer.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > iround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 Returns the log2 of x for integer values. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
-

Detailed Description

-

Include <glm/gtc/integer.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::iround (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.

-
Parameters
- - -
xThe values of the argument must be greater or equal to zero.
-
-
-
Template Parameters
- - -
Tfloating point scalar types.
-
-
-
See also
GLSL round man page
-
-GLM_GTC_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::log2 (genIUType x)
-
- -

Returns the log2 of x for integer values.

-

Usefull to compute mipmap count from the texture size.

See also
GLM_GTC_integer
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, uint, Q> glm::uround (vec< L, T, Q > const & x)
-
- -

Returns a value equal to the nearest integer to x.

-

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.

-
Parameters
- - -
xThe values of the argument must be greater or equal to zero.
-
-
-
Template Parameters
- - -
Tfloating point scalar types.
-
-
-
See also
GLSL round man page
-
-GLM_GTC_integer
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_integer + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_integer
+
+
+ +

Include <glm/gtc/integer.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > iround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType log2 (genIUType x)
 Returns the log2 of x for integer values. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uround (vec< L, T, Q > const &x)
 Returns a value equal to the nearest integer to x. More...
 
+

Detailed Description

+

Include <glm/gtc/integer.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::iround (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.

+
Parameters
+ + +
xThe values of the argument must be greater or equal to zero.
+
+
+
Template Parameters
+ + +
Tfloating point scalar types.
+
+
+
See also
GLSL round man page
+
+GLM_GTC_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::log2 (genIUType x)
+
+ +

Returns the log2 of x for integer values.

+

Usefull to compute mipmap count from the texture size.

See also
GLM_GTC_integer
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, uint, Q> glm::uround (vec< L, T, Q > const & x)
+
+ +

Returns a value equal to the nearest integer to x.

+

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest.

+
Parameters
+ + +
xThe values of the argument must be greater or equal to zero.
+
+
+
Template Parameters
+ + +
Tfloating point scalar types.
+
+
+
See also
GLSL round man page
+
+GLM_GTC_integer
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00293.html b/external/include/glm-0.9.9.8/doc/api/a00293.html index 8ba0fbb31e..b8f3c844a3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00293.html +++ b/external/include/glm-0.9.9.8/doc/api/a00293.html @@ -1,247 +1,247 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_matrix_access - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_matrix_access
-
-
- -

Include <glm/gtc/matrix_access.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 Get a specific column of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 Set a specific column to a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 Get a specific row of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 Set a specific row to a matrix. More...
 
-

Detailed Description

-

Include <glm/gtc/matrix_access.hpp> to use the features of this extension.

-

Defines functions to access rows or columns of a matrix easily.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType::col_type glm::column (genType const & m,
length_t index 
)
-
- -

Get a specific column of a matrix.

-
See also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::column (genType const & m,
length_t index,
typename genType::col_type const & x 
)
-
- -

Set a specific column to a matrix.

-
See also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType::row_type glm::row (genType const & m,
length_t index 
)
-
- -

Get a specific row of a matrix.

-
See also
GLM_GTC_matrix_access
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::row (genType const & m,
length_t index,
typename genType::row_type const & x 
)
-
- -

Set a specific row to a matrix.

-
See also
GLM_GTC_matrix_access
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_matrix_access + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_matrix_access
+
+
+ +

Include <glm/gtc/matrix_access.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::col_type column (genType const &m, length_t index)
 Get a specific column of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType column (genType const &m, length_t index, typename genType::col_type const &x)
 Set a specific column to a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType::row_type row (genType const &m, length_t index)
 Get a specific row of a matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType row (genType const &m, length_t index, typename genType::row_type const &x)
 Set a specific row to a matrix. More...
 
+

Detailed Description

+

Include <glm/gtc/matrix_access.hpp> to use the features of this extension.

+

Defines functions to access rows or columns of a matrix easily.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType::col_type glm::column (genType const & m,
length_t index 
)
+
+ +

Get a specific column of a matrix.

+
See also
GLM_GTC_matrix_access
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::column (genType const & m,
length_t index,
typename genType::col_type const & x 
)
+
+ +

Set a specific column to a matrix.

+
See also
GLM_GTC_matrix_access
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType::row_type glm::row (genType const & m,
length_t index 
)
+
+ +

Get a specific row of a matrix.

+
See also
GLM_GTC_matrix_access
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::row (genType const & m,
length_t index,
typename genType::row_type const & x 
)
+
+ +

Set a specific row to a matrix.

+
See also
GLM_GTC_matrix_access
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00294.html b/external/include/glm-0.9.9.8/doc/api/a00294.html index 3a30fb2333..fc333a6094 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00294.html +++ b/external/include/glm-0.9.9.8/doc/api/a00294.html @@ -1,2023 +1,2023 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_matrix_integer - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_matrix_integer
-
-
- -

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef mat< 2, 2, int, highp > highp_imat2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, highp > highp_imat2x2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, highp > highp_imat2x3
 High-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, highp > highp_imat2x4
 High-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, highp > highp_imat3x2
 High-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3x3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, highp > highp_imat3x4
 High-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, highp > highp_imat4x2
 High-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, highp > highp_imat4x3
 High-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4x4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2x2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, highp > highp_umat2x3
 High-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, highp > highp_umat2x4
 High-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, highp > highp_umat3x2
 High-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3x3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, highp > highp_umat3x4
 High-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, highp > highp_umat4x2
 High-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, highp > highp_umat4x3
 High-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4x4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_imat2 imat2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x2 imat2x2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x3 imat2x3
 Signed integer 2x3 matrix. More...
 
typedef mediump_imat2x4 imat2x4
 Signed integer 2x4 matrix. More...
 
typedef mediump_imat3 imat3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x2 imat3x2
 Signed integer 3x2 matrix. More...
 
typedef mediump_imat3x3 imat3x3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x4 imat3x4
 Signed integer 3x4 matrix. More...
 
typedef mediump_imat4 imat4
 Signed integer 4x4 matrix. More...
 
typedef mediump_imat4x2 imat4x2
 Signed integer 4x2 matrix. More...
 
typedef mediump_imat4x3 imat4x3
 Signed integer 4x3 matrix. More...
 
typedef mediump_imat4x4 imat4x4
 Signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2x2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, lowp > lowp_imat2x3
 Low-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, lowp > lowp_imat2x4
 Low-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, lowp > lowp_imat3x2
 Low-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3x3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, lowp > lowp_imat3x4
 Low-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, lowp > lowp_imat4x2
 Low-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, lowp > lowp_imat4x3
 Low-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4x4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2x2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, lowp > lowp_umat2x3
 Low-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, lowp > lowp_umat2x4
 Low-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, lowp > lowp_umat3x2
 Low-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3x3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, lowp > lowp_umat3x4
 Low-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, lowp > lowp_umat4x2
 Low-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, lowp > lowp_umat4x3
 Low-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4x4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2x2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, mediump > mediump_imat2x3
 Medium-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, mediump > mediump_imat2x4
 Medium-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, mediump > mediump_imat3x2
 Medium-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3x3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, mediump > mediump_imat3x4
 Medium-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, mediump > mediump_imat4x2
 Medium-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, mediump > mediump_imat4x3
 Medium-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4x4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2x2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, mediump > mediump_umat2x3
 Medium-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, mediump > mediump_umat2x4
 Medium-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, mediump > mediump_umat3x2
 Medium-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3x3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, mediump > mediump_umat3x4
 Medium-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, mediump > mediump_umat4x2
 Medium-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, mediump > mediump_umat4x3
 Medium-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4x4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_umat2 umat2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x2 umat2x2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x3 umat2x3
 Unsigned integer 2x3 matrix. More...
 
typedef mediump_umat2x4 umat2x4
 Unsigned integer 2x4 matrix. More...
 
typedef mediump_umat3 umat3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x2 umat3x2
 Unsigned integer 3x2 matrix. More...
 
typedef mediump_umat3x3 umat3x3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x4 umat3x4
 Unsigned integer 3x4 matrix. More...
 
typedef mediump_umat4 umat4
 Unsigned integer 4x4 matrix. More...
 
typedef mediump_umat4x2 umat4x2
 Unsigned integer 4x2 matrix. More...
 
typedef mediump_umat4x3 umat4x3
 Unsigned integer 4x3 matrix. More...
 
typedef mediump_umat4x4 umat4x4
 Unsigned integer 4x4 matrix. More...
 
-

Detailed Description

-

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.

-

Defines a number of matrices with integer types.

-

Typedef Documentation

- -
-
- - - - -
typedef mat<2, 2, int, highp> highp_imat2
-
- -

High-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 37 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, int, highp> highp_imat2x2
-
- -

High-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 49 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, int, highp> highp_imat2x3
-
- -

High-qualifier signed integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 53 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, int, highp> highp_imat2x4
-
- -

High-qualifier signed integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 57 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, highp> highp_imat3
-
- -

High-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 41 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, int, highp> highp_imat3x2
-
- -

High-qualifier signed integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 61 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, highp> highp_imat3x3
-
- -

High-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 65 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, int, highp> highp_imat3x4
-
- -

High-qualifier signed integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 69 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, highp> highp_imat4
-
- -

High-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 45 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, int, highp> highp_imat4x2
-
- -

High-qualifier signed integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 73 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, int, highp> highp_imat4x3
-
- -

High-qualifier signed integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 77 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, highp> highp_imat4x4
-
- -

High-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 81 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, highp> highp_umat2
-
- -

High-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 186 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, highp> highp_umat2x2
-
- -

High-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 198 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, uint, highp> highp_umat2x3
-
- -

High-qualifier unsigned integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 202 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, uint, highp> highp_umat2x4
-
- -

High-qualifier unsigned integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 206 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, highp> highp_umat3
-
- -

High-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 190 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, uint, highp> highp_umat3x2
-
- -

High-qualifier unsigned integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 210 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, highp> highp_umat3x3
-
- -

High-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 214 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, uint, highp> highp_umat3x4
-
- -

High-qualifier unsigned integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 218 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, highp> highp_umat4
-
- -

High-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 194 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, uint, highp> highp_umat4x2
-
- -

High-qualifier unsigned integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 222 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, uint, highp> highp_umat4x3
-
- -

High-qualifier unsigned integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 226 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, highp> highp_umat4x4
-
- -

High-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 230 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2 imat2
-
- -

Signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 362 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x2 imat2x2
-
- -

Signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 374 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x3 imat2x3
-
- -

Signed integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 378 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat2x4 imat2x4
-
- -

Signed integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 382 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3 imat3
-
- -

Signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 366 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x2 imat3x2
-
- -

Signed integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 386 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x3 imat3x3
-
- -

Signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 390 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat3x4 imat3x4
-
- -

Signed integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 394 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4 imat4
-
- -

Signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 370 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x2 imat4x2
-
- -

Signed integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 398 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x3 imat4x3
-
- -

Signed integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 402 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_imat4x4 imat4x4
-
- -

Signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 406 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, int, lowp> lowp_imat2
-
- -

Low-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 136 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, int, lowp> lowp_imat2x2
-
- -

Low-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 149 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, int, lowp> lowp_imat2x3
-
- -

Low-qualifier signed integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 153 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, int, lowp> lowp_imat2x4
-
- -

Low-qualifier signed integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 157 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, lowp> lowp_imat3
-
- -

Low-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 140 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, int, lowp> lowp_imat3x2
-
- -

Low-qualifier signed integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 161 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, lowp> lowp_imat3x3
-
- -

Low-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 165 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, int, lowp> lowp_imat3x4
-
- -

Low-qualifier signed integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 169 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, lowp> lowp_imat4
-
- -

Low-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 144 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, int, lowp> lowp_imat4x2
-
- -

Low-qualifier signed integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 173 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, int, lowp> lowp_imat4x3
-
- -

Low-qualifier signed integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 177 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, lowp> lowp_imat4x4
-
- -

Low-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 181 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, lowp> lowp_umat2
-
- -

Low-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 285 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, lowp> lowp_umat2x2
-
- -

Low-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 298 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, uint, lowp> lowp_umat2x3
-
- -

Low-qualifier unsigned integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 302 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, uint, lowp> lowp_umat2x4
-
- -

Low-qualifier unsigned integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 306 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, lowp> lowp_umat3
-
- -

Low-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 289 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, uint, lowp> lowp_umat3x2
-
- -

Low-qualifier unsigned integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 310 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, lowp> lowp_umat3x3
-
- -

Low-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 314 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, uint, lowp> lowp_umat3x4
-
- -

Low-qualifier unsigned integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 318 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, lowp> lowp_umat4
-
- -

Low-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 293 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, uint, lowp> lowp_umat4x2
-
- -

Low-qualifier unsigned integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 322 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, uint, lowp> lowp_umat4x3
-
- -

Low-qualifier unsigned integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 326 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, lowp> lowp_umat4x4
-
- -

Low-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 330 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, int, mediump> mediump_imat2
-
- -

Medium-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 86 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, int, mediump> mediump_imat2x2
-
- -

Medium-qualifier signed integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 99 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, int, mediump> mediump_imat2x3
-
- -

Medium-qualifier signed integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 103 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, int, mediump> mediump_imat2x4
-
- -

Medium-qualifier signed integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 107 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, mediump> mediump_imat3
-
- -

Medium-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 90 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, int, mediump> mediump_imat3x2
-
- -

Medium-qualifier signed integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 111 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, int, mediump> mediump_imat3x3
-
- -

Medium-qualifier signed integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 115 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, int, mediump> mediump_imat3x4
-
- -

Medium-qualifier signed integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 119 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, mediump> mediump_imat4
-
- -

Medium-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 94 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, int, mediump> mediump_imat4x2
-
- -

Medium-qualifier signed integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 123 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, int, mediump> mediump_imat4x3
-
- -

Medium-qualifier signed integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 127 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, int, mediump> mediump_imat4x4
-
- -

Medium-qualifier signed integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 131 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, mediump> mediump_umat2
-
- -

Medium-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 235 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 2, uint, mediump> mediump_umat2x2
-
- -

Medium-qualifier unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 248 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 3, uint, mediump> mediump_umat2x3
-
- -

Medium-qualifier unsigned integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 252 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<2, 4, uint, mediump> mediump_umat2x4
-
- -

Medium-qualifier unsigned integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 256 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, mediump> mediump_umat3
-
- -

Medium-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 239 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 2, uint, mediump> mediump_umat3x2
-
- -

Medium-qualifier unsigned integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 260 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 3, uint, mediump> mediump_umat3x3
-
- -

Medium-qualifier unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 264 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<3, 4, uint, mediump> mediump_umat3x4
-
- -

Medium-qualifier unsigned integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 268 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, mediump> mediump_umat4
-
- -

Medium-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 243 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 2, uint, mediump> mediump_umat4x2
-
- -

Medium-qualifier unsigned integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 272 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 3, uint, mediump> mediump_umat4x3
-
- -

Medium-qualifier unsigned integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 276 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mat<4, 4, uint, mediump> mediump_umat4x4
-
- -

Medium-qualifier unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 280 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2 umat2
-
- -

Unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 439 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x2 umat2x2
-
- -

Unsigned integer 2x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 451 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x3 umat2x3
-
- -

Unsigned integer 2x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 455 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat2x4 umat2x4
-
- -

Unsigned integer 2x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 459 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3 umat3
-
- -

Unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 443 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x2 umat3x2
-
- -

Unsigned integer 3x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 463 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x3 umat3x3
-
- -

Unsigned integer 3x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 467 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat3x4 umat3x4
-
- -

Unsigned integer 3x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 471 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4 umat4
-
- -

Unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 447 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x2 umat4x2
-
- -

Unsigned integer 4x2 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 475 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x3 umat4x3
-
- -

Unsigned integer 4x3 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 479 of file matrix_integer.hpp.

- -
-
- -
-
- - - - -
typedef mediump_umat4x4 umat4x4
-
- -

Unsigned integer 4x4 matrix.

-
See also
GLM_GTC_matrix_integer
- -

Definition at line 483 of file matrix_integer.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_matrix_integer + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_matrix_integer
+
+
+ +

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef mat< 2, 2, int, highp > highp_imat2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, highp > highp_imat2x2
 High-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, highp > highp_imat2x3
 High-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, highp > highp_imat2x4
 High-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, highp > highp_imat3x2
 High-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, highp > highp_imat3x3
 High-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, highp > highp_imat3x4
 High-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, highp > highp_imat4x2
 High-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, highp > highp_imat4x3
 High-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, highp > highp_imat4x4
 High-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, highp > highp_umat2x2
 High-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, highp > highp_umat2x3
 High-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, highp > highp_umat2x4
 High-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, highp > highp_umat3x2
 High-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, highp > highp_umat3x3
 High-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, highp > highp_umat3x4
 High-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, highp > highp_umat4x2
 High-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, highp > highp_umat4x3
 High-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, highp > highp_umat4x4
 High-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_imat2 imat2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x2 imat2x2
 Signed integer 2x2 matrix. More...
 
typedef mediump_imat2x3 imat2x3
 Signed integer 2x3 matrix. More...
 
typedef mediump_imat2x4 imat2x4
 Signed integer 2x4 matrix. More...
 
typedef mediump_imat3 imat3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x2 imat3x2
 Signed integer 3x2 matrix. More...
 
typedef mediump_imat3x3 imat3x3
 Signed integer 3x3 matrix. More...
 
typedef mediump_imat3x4 imat3x4
 Signed integer 3x4 matrix. More...
 
typedef mediump_imat4 imat4
 Signed integer 4x4 matrix. More...
 
typedef mediump_imat4x2 imat4x2
 Signed integer 4x2 matrix. More...
 
typedef mediump_imat4x3 imat4x3
 Signed integer 4x3 matrix. More...
 
typedef mediump_imat4x4 imat4x4
 Signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, lowp > lowp_imat2x2
 Low-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, lowp > lowp_imat2x3
 Low-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, lowp > lowp_imat2x4
 Low-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, lowp > lowp_imat3x2
 Low-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, lowp > lowp_imat3x3
 Low-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, lowp > lowp_imat3x4
 Low-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, lowp > lowp_imat4x2
 Low-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, lowp > lowp_imat4x3
 Low-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, lowp > lowp_imat4x4
 Low-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, lowp > lowp_umat2x2
 Low-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, lowp > lowp_umat2x3
 Low-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, lowp > lowp_umat2x4
 Low-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, lowp > lowp_umat3x2
 Low-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, lowp > lowp_umat3x3
 Low-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, lowp > lowp_umat3x4
 Low-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, lowp > lowp_umat4x2
 Low-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, lowp > lowp_umat4x3
 Low-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, lowp > lowp_umat4x4
 Low-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 2, int, mediump > mediump_imat2x2
 Medium-qualifier signed integer 2x2 matrix. More...
 
typedef mat< 2, 3, int, mediump > mediump_imat2x3
 Medium-qualifier signed integer 2x3 matrix. More...
 
typedef mat< 2, 4, int, mediump > mediump_imat2x4
 Medium-qualifier signed integer 2x4 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 2, int, mediump > mediump_imat3x2
 Medium-qualifier signed integer 3x2 matrix. More...
 
typedef mat< 3, 3, int, mediump > mediump_imat3x3
 Medium-qualifier signed integer 3x3 matrix. More...
 
typedef mat< 3, 4, int, mediump > mediump_imat3x4
 Medium-qualifier signed integer 3x4 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 4, 2, int, mediump > mediump_imat4x2
 Medium-qualifier signed integer 4x2 matrix. More...
 
typedef mat< 4, 3, int, mediump > mediump_imat4x3
 Medium-qualifier signed integer 4x3 matrix. More...
 
typedef mat< 4, 4, int, mediump > mediump_imat4x4
 Medium-qualifier signed integer 4x4 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 2, uint, mediump > mediump_umat2x2
 Medium-qualifier unsigned integer 2x2 matrix. More...
 
typedef mat< 2, 3, uint, mediump > mediump_umat2x3
 Medium-qualifier unsigned integer 2x3 matrix. More...
 
typedef mat< 2, 4, uint, mediump > mediump_umat2x4
 Medium-qualifier unsigned integer 2x4 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 2, uint, mediump > mediump_umat3x2
 Medium-qualifier unsigned integer 3x2 matrix. More...
 
typedef mat< 3, 3, uint, mediump > mediump_umat3x3
 Medium-qualifier unsigned integer 3x3 matrix. More...
 
typedef mat< 3, 4, uint, mediump > mediump_umat3x4
 Medium-qualifier unsigned integer 3x4 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mat< 4, 2, uint, mediump > mediump_umat4x2
 Medium-qualifier unsigned integer 4x2 matrix. More...
 
typedef mat< 4, 3, uint, mediump > mediump_umat4x3
 Medium-qualifier unsigned integer 4x3 matrix. More...
 
typedef mat< 4, 4, uint, mediump > mediump_umat4x4
 Medium-qualifier unsigned integer 4x4 matrix. More...
 
typedef mediump_umat2 umat2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x2 umat2x2
 Unsigned integer 2x2 matrix. More...
 
typedef mediump_umat2x3 umat2x3
 Unsigned integer 2x3 matrix. More...
 
typedef mediump_umat2x4 umat2x4
 Unsigned integer 2x4 matrix. More...
 
typedef mediump_umat3 umat3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x2 umat3x2
 Unsigned integer 3x2 matrix. More...
 
typedef mediump_umat3x3 umat3x3
 Unsigned integer 3x3 matrix. More...
 
typedef mediump_umat3x4 umat3x4
 Unsigned integer 3x4 matrix. More...
 
typedef mediump_umat4 umat4
 Unsigned integer 4x4 matrix. More...
 
typedef mediump_umat4x2 umat4x2
 Unsigned integer 4x2 matrix. More...
 
typedef mediump_umat4x3 umat4x3
 Unsigned integer 4x3 matrix. More...
 
typedef mediump_umat4x4 umat4x4
 Unsigned integer 4x4 matrix. More...
 
+

Detailed Description

+

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.

+

Defines a number of matrices with integer types.

+

Typedef Documentation

+ +
+
+ + + + +
typedef mat<2, 2, int, highp> highp_imat2
+
+ +

High-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 37 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, int, highp> highp_imat2x2
+
+ +

High-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 49 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, int, highp> highp_imat2x3
+
+ +

High-qualifier signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 53 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, int, highp> highp_imat2x4
+
+ +

High-qualifier signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 57 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, highp> highp_imat3
+
+ +

High-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 41 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, int, highp> highp_imat3x2
+
+ +

High-qualifier signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 61 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, highp> highp_imat3x3
+
+ +

High-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 65 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, int, highp> highp_imat3x4
+
+ +

High-qualifier signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 69 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, highp> highp_imat4
+
+ +

High-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 45 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, int, highp> highp_imat4x2
+
+ +

High-qualifier signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 73 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, int, highp> highp_imat4x3
+
+ +

High-qualifier signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 77 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, highp> highp_imat4x4
+
+ +

High-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 81 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, highp> highp_umat2
+
+ +

High-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 186 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, highp> highp_umat2x2
+
+ +

High-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 198 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, uint, highp> highp_umat2x3
+
+ +

High-qualifier unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 202 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, uint, highp> highp_umat2x4
+
+ +

High-qualifier unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 206 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, highp> highp_umat3
+
+ +

High-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 190 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, uint, highp> highp_umat3x2
+
+ +

High-qualifier unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 210 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, highp> highp_umat3x3
+
+ +

High-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 214 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, uint, highp> highp_umat3x4
+
+ +

High-qualifier unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 218 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, highp> highp_umat4
+
+ +

High-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 194 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, uint, highp> highp_umat4x2
+
+ +

High-qualifier unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 222 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, uint, highp> highp_umat4x3
+
+ +

High-qualifier unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 226 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, highp> highp_umat4x4
+
+ +

High-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 230 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2 imat2
+
+ +

Signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 362 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x2 imat2x2
+
+ +

Signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 374 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x3 imat2x3
+
+ +

Signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 378 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat2x4 imat2x4
+
+ +

Signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 382 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3 imat3
+
+ +

Signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 366 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x2 imat3x2
+
+ +

Signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 386 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x3 imat3x3
+
+ +

Signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 390 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat3x4 imat3x4
+
+ +

Signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 394 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4 imat4
+
+ +

Signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 370 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x2 imat4x2
+
+ +

Signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 398 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x3 imat4x3
+
+ +

Signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 402 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_imat4x4 imat4x4
+
+ +

Signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 406 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, int, lowp> lowp_imat2
+
+ +

Low-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 136 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, int, lowp> lowp_imat2x2
+
+ +

Low-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 149 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, int, lowp> lowp_imat2x3
+
+ +

Low-qualifier signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 153 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, int, lowp> lowp_imat2x4
+
+ +

Low-qualifier signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 157 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, lowp> lowp_imat3
+
+ +

Low-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 140 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, int, lowp> lowp_imat3x2
+
+ +

Low-qualifier signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 161 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, lowp> lowp_imat3x3
+
+ +

Low-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 165 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, int, lowp> lowp_imat3x4
+
+ +

Low-qualifier signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 169 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, lowp> lowp_imat4
+
+ +

Low-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 144 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, int, lowp> lowp_imat4x2
+
+ +

Low-qualifier signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 173 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, int, lowp> lowp_imat4x3
+
+ +

Low-qualifier signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 177 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, lowp> lowp_imat4x4
+
+ +

Low-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 181 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, lowp> lowp_umat2
+
+ +

Low-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 285 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, lowp> lowp_umat2x2
+
+ +

Low-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 298 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, uint, lowp> lowp_umat2x3
+
+ +

Low-qualifier unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 302 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, uint, lowp> lowp_umat2x4
+
+ +

Low-qualifier unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 306 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, lowp> lowp_umat3
+
+ +

Low-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 289 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, uint, lowp> lowp_umat3x2
+
+ +

Low-qualifier unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 310 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, lowp> lowp_umat3x3
+
+ +

Low-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 314 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, uint, lowp> lowp_umat3x4
+
+ +

Low-qualifier unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 318 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, lowp> lowp_umat4
+
+ +

Low-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 293 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, uint, lowp> lowp_umat4x2
+
+ +

Low-qualifier unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 322 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, uint, lowp> lowp_umat4x3
+
+ +

Low-qualifier unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 326 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, lowp> lowp_umat4x4
+
+ +

Low-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 330 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, int, mediump> mediump_imat2
+
+ +

Medium-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 86 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, int, mediump> mediump_imat2x2
+
+ +

Medium-qualifier signed integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 99 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, int, mediump> mediump_imat2x3
+
+ +

Medium-qualifier signed integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 103 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, int, mediump> mediump_imat2x4
+
+ +

Medium-qualifier signed integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 107 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, mediump> mediump_imat3
+
+ +

Medium-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 90 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, int, mediump> mediump_imat3x2
+
+ +

Medium-qualifier signed integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 111 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, int, mediump> mediump_imat3x3
+
+ +

Medium-qualifier signed integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 115 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, int, mediump> mediump_imat3x4
+
+ +

Medium-qualifier signed integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 119 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, mediump> mediump_imat4
+
+ +

Medium-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 94 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, int, mediump> mediump_imat4x2
+
+ +

Medium-qualifier signed integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 123 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, int, mediump> mediump_imat4x3
+
+ +

Medium-qualifier signed integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 127 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, int, mediump> mediump_imat4x4
+
+ +

Medium-qualifier signed integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 131 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, mediump> mediump_umat2
+
+ +

Medium-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 235 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 2, uint, mediump> mediump_umat2x2
+
+ +

Medium-qualifier unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 248 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 3, uint, mediump> mediump_umat2x3
+
+ +

Medium-qualifier unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 252 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<2, 4, uint, mediump> mediump_umat2x4
+
+ +

Medium-qualifier unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 256 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, mediump> mediump_umat3
+
+ +

Medium-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 239 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 2, uint, mediump> mediump_umat3x2
+
+ +

Medium-qualifier unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 260 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 3, uint, mediump> mediump_umat3x3
+
+ +

Medium-qualifier unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 264 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<3, 4, uint, mediump> mediump_umat3x4
+
+ +

Medium-qualifier unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 268 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, mediump> mediump_umat4
+
+ +

Medium-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 243 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 2, uint, mediump> mediump_umat4x2
+
+ +

Medium-qualifier unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 272 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 3, uint, mediump> mediump_umat4x3
+
+ +

Medium-qualifier unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 276 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat<4, 4, uint, mediump> mediump_umat4x4
+
+ +

Medium-qualifier unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 280 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2 umat2
+
+ +

Unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 439 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x2 umat2x2
+
+ +

Unsigned integer 2x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 451 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x3 umat2x3
+
+ +

Unsigned integer 2x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 455 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat2x4 umat2x4
+
+ +

Unsigned integer 2x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 459 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3 umat3
+
+ +

Unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 443 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x2 umat3x2
+
+ +

Unsigned integer 3x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 463 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x3 umat3x3
+
+ +

Unsigned integer 3x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 467 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat3x4 umat3x4
+
+ +

Unsigned integer 3x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 471 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4 umat4
+
+ +

Unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 447 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x2 umat4x2
+
+ +

Unsigned integer 4x2 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 475 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x3 umat4x3
+
+ +

Unsigned integer 4x3 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 479 of file matrix_integer.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_umat4x4 umat4x4
+
+ +

Unsigned integer 4x4 matrix.

+
See also
GLM_GTC_matrix_integer
+ +

Definition at line 483 of file matrix_integer.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00295.html b/external/include/glm-0.9.9.8/doc/api/a00295.html index 756e66b81e..4ddf4f40f4 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00295.html +++ b/external/include/glm-0.9.9.8/doc/api/a00295.html @@ -1,173 +1,173 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_matrix_inverse - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_matrix_inverse
-
-
- -

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 Fast matrix inverse for affine matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 Compute the inverse transpose of a matrix. More...
 
-

Detailed Description

-

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.

-

Defines additional matrix inverting functions.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::affineInverse (genType const & m)
-
- -

Fast matrix inverse for affine matrix.

-
Parameters
- - -
mInput matrix to invert.
-
-
-
Template Parameters
- - -
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
-
-
-
See also
GLM_GTC_matrix_inverse
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::inverseTranspose (genType const & m)
-
- -

Compute the inverse transpose of a matrix.

-
Parameters
- - -
mInput matrix to invert transpose.
-
-
-
Template Parameters
- - -
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
-
-
-
See also
GLM_GTC_matrix_inverse
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_matrix_inverse + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_matrix_inverse
+
+
+ +

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType affineInverse (genType const &m)
 Fast matrix inverse for affine matrix. More...
 
template<typename genType >
GLM_FUNC_DECL genType inverseTranspose (genType const &m)
 Compute the inverse transpose of a matrix. More...
 
+

Detailed Description

+

Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.

+

Defines additional matrix inverting functions.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::affineInverse (genType const & m)
+
+ +

Fast matrix inverse for affine matrix.

+
Parameters
+ + +
mInput matrix to invert.
+
+
+
Template Parameters
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
+
+
+
See also
GLM_GTC_matrix_inverse
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::inverseTranspose (genType const & m)
+
+ +

Compute the inverse transpose of a matrix.

+
Parameters
+ + +
mInput matrix to invert transpose.
+
+
+
Template Parameters
+ + +
genTypeSquared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
+
+
+
See also
GLM_GTC_matrix_inverse
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00296.html b/external/include/glm-0.9.9.8/doc/api/a00296.html index fde763841c..67240afa50 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00296.html +++ b/external/include/glm-0.9.9.8/doc/api/a00296.html @@ -1,96 +1,96 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_matrix_transform - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_GTC_matrix_transform
-
-
- -

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension. -More...

-

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension.

-

Defines functions that generate common transformation matrices.

-

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_matrix_transform + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_GTC_matrix_transform
+
+
+ +

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension. +More...

+

Include <glm/gtc/matrix_transform.hpp> to use the features of this extension.

+

Defines functions that generate common transformation matrices.

+

The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions (perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00297.html b/external/include/glm-0.9.9.8/doc/api/a00297.html index c35d20df7f..c2477d8e96 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00297.html +++ b/external/include/glm-0.9.9.8/doc/api/a00297.html @@ -1,182 +1,182 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_noise - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtc/noise.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p)
 Classic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
 Periodic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T simplex (vec< L, T, Q > const &p)
 Simplex noise. More...
 
-

Detailed Description

-

Include <glm/gtc/noise.hpp> to use the features of this extension.

-

Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::perlin (vec< L, T, Q > const & p)
-
- -

Classic perlin noise.

-
See also
GLM_GTC_noise
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::perlin (vec< L, T, Q > const & p,
vec< L, T, Q > const & rep 
)
-
- -

Periodic perlin noise.

-
See also
GLM_GTC_noise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::simplex (vec< L, T, Q > const & p)
-
- -

Simplex noise.

-
See also
GLM_GTC_noise
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_noise + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtc/noise.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p)
 Classic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T perlin (vec< L, T, Q > const &p, vec< L, T, Q > const &rep)
 Periodic perlin noise. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T simplex (vec< L, T, Q > const &p)
 Simplex noise. More...
 
+

Detailed Description

+

Include <glm/gtc/noise.hpp> to use the features of this extension.

+

Defines 2D, 3D and 4D procedural noise functions Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": https://github.com/ashima/webgl-noise Following Stefan Gustavson's paper "Simplex noise demystified": http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::perlin (vec< L, T, Q > const & p)
+
+ +

Classic perlin noise.

+
See also
GLM_GTC_noise
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::perlin (vec< L, T, Q > const & p,
vec< L, T, Q > const & rep 
)
+
+ +

Periodic perlin noise.

+
See also
GLM_GTC_noise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::simplex (vec< L, T, Q > const & p)
+
+ +

Simplex noise.

+
See also
GLM_GTC_noise
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00298.html b/external/include/glm-0.9.9.8/doc/api/a00298.html index d799db7faf..1c70249c89 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00298.html +++ b/external/include/glm-0.9.9.8/doc/api/a00298.html @@ -1,2034 +1,2034 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_packing - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_packing
-
-
- -

Include <glm/gtc/packing.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
GLM_FUNC_DECL uint32 packF3x9_E1x5 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint16, Q > packHalf (vec< L, float, Q > const &v)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. More...
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. More...
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL int packInt2x16 (i16vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt2x32 (i32vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int16 packInt2x8 (i8vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt4x16 (i16vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int32 packInt4x8 (i8vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > packRGBM (vec< 3, T, Q > const &rgb)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
template<typename intType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, intType, Q > packSnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into signed integer values. More...
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 First, converts the normalized floating-point value v into 16-bit integer value. More...
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 First, converts the normalized floating-point value v into 8-bit integer value. More...
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. More...
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packUint2x16 (u16vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint2x32 (u32vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint16 packUint2x8 (u8vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint4x16 (u16vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint32 packUint4x8 (u8vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
template<typename uintType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 First, converts the normalized floating-point value v into a 16-bit integer value. More...
 
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 First, converts the normalized floating-point value v into a 8-bit integer value. More...
 
GLM_FUNC_DECL uint8 packUnorm2x3_1x2 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm2x4 (vec2 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm3x5_1x1 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm4x4 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
GLM_FUNC_DECL vec3 unpackF3x9_E1x5 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > unpackHalf (vec< L, uint16, Q > const &p)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. More...
 
GLM_FUNC_DECL i16vec2 unpackInt2x16 (int p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i32vec2 unpackInt2x32 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec2 unpackInt2x8 (int16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i16vec4 unpackInt4x16 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec4 unpackInt4x8 (int32 p)
 Convert a packed integer into an integer vector. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM (vec< 4, T, Q > const &rgbm)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
template<typename floatType , length_t L, typename intType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm (vec< L, intType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. More...
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. More...
 
GLM_FUNC_DECL u16vec2 unpackUint2x16 (uint p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u32vec2 unpackUint2x32 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec2 unpackUint2x8 (uint16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u16vec4 unpackUint4x16 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec4 unpackUint4x8 (uint32 p)
 Convert a packed integer into an integer vector. More...
 
template<typename floatType , length_t L, typename uintType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm (vec< L, uintType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 Convert a single 8-bit integer to a normalized floating-point value. More...
 
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x4 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x4 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
-

Detailed Description

-

Include <glm/gtc/packing.hpp> to use the features of this extension.

-

This extension provides a set of function to convert vertors to packed formats.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packF2x11_1x10 (vec3 const & v)
-
- -

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

-

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

-

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

-
See also
GLM_GTC_packing
-
-vec3 unpackF2x11_1x10(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packF3x9_E1x5 (vec3 const & v)
-
- -

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

-

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

-

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

-

packF3x9_E1x5 allows encoding into RGBE / RGB9E5 format

-
See also
GLM_GTC_packing
-
-vec3 unpackF3x9_E1x5(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, uint16, Q> glm::packHalf (vec< L, float, Q > const & v)
-
- -

Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification.

-

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

-
See also
GLM_GTC_packing
-
-vec<L, float, Q> unpackHalf(vec<L, uint16, Q> const& p)
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packHalf1x16 (float v)
-
- -

Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer.

-
See also
GLM_GTC_packing
-
-uint32 packHalf2x16(vec2 const& v)
-
-uint64 packHalf4x16(vec4 const& v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packHalf4x16 (vec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer.

-

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

-
See also
GLM_GTC_packing
-
-uint16 packHalf1x16(float const& v)
-
-uint32 packHalf2x16(vec2 const& v)
-
-GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packI3x10_1x2 (ivec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(uvec4 const& v)
-
-uint32 packSnorm3x10_1x2(vec4 const& v)
-
-uint32 packUnorm3x10_1x2(vec4 const& v)
-
-ivec4 unpackI3x10_1x2(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::packInt2x16 (i16vec2 const & v)
-
- -

Convert each component from an integer vector into a packed integer.

-
See also
GLM_GTC_packing
-
-i16vec2 unpackInt2x16(int p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int64 glm::packInt2x32 (i32vec2 const & v)
-
- -

Convert each component from an integer vector into a packed integer.

-
See also
GLM_GTC_packing
-
-i32vec2 unpackInt2x32(int p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int16 glm::packInt2x8 (i8vec2 const & v)
-
- -

Convert each component from an integer vector into a packed integer.

-
See also
GLM_GTC_packing
-
-i8vec2 unpackInt2x8(int16 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int64 glm::packInt4x16 (i16vec4 const & v)
-
- -

Convert each component from an integer vector into a packed integer.

-
See also
GLM_GTC_packing
-
-i16vec4 unpackInt4x16(int64 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int32 glm::packInt4x8 (i8vec4 const & v)
-
- -

Convert each component from an integer vector into a packed integer.

-
See also
GLM_GTC_packing
-
-i8vec4 unpackInt4x8(int32 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::packRGBM (vec< 3, T, Q > const & rgb)
-
- -

Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification.

-

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

-
See also
GLM_GTC_packing
-
-vec<3, T, Q> unpackRGBM(vec<4, T, Q> const& p)
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, intType, Q> glm::packSnorm (vec< L, floatType, Q > const & v)
-
- -

Convert each component of the normalized floating-point vector into signed integer values.

-
See also
GLM_GTC_packing
-
-vec<L, floatType, Q> unpackSnorm(vec<L, intType, Q> const& p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packSnorm1x16 (float v)
-
- -

First, converts the normalized floating-point value v into 16-bit integer value.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)

-
See also
GLM_GTC_packing
-
-uint32 packSnorm2x16(vec2 const& v)
-
-uint64 packSnorm4x16(vec4 const& v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packSnorm1x8 (float s)
-
- -

First, converts the normalized floating-point value v into 8-bit integer value.

-

Then, the results are packed into the returned 8-bit unsigned integer.

-

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)

-
See also
GLM_GTC_packing
-
-uint16 packSnorm2x8(vec2 const& v)
-
-uint32 packSnorm4x8(vec4 const& v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packSnorm2x8 (vec2 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8-bit integer values.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLM_GTC_packing
-
-uint8 packSnorm1x8(float const& v)
-
-uint32 packSnorm4x8(vec4 const& v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 (vec4 const & v)
-
- -

First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See also
GLM_GTC_packing
-
-vec4 unpackSnorm3x10_1x2(uint32 const& p)
-
-uint32 packUnorm3x10_1x2(vec4 const& v)
-
-uint32 packU3x10_1x2(uvec4 const& v)
-
-uint32 packI3x10_1x2(ivec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packSnorm4x16 (vec4 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 16-bit integer values.

-

Then, the results are packed into the returned 64-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const& v)
-
-uint32 packSnorm2x16(vec2 const& v)
-
-GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packU3x10_1x2 (uvec4 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packI3x10_1x2(ivec4 const& v)
-
-uint32 packSnorm3x10_1x2(vec4 const& v)
-
-uint32 packUnorm3x10_1x2(vec4 const& v)
-
-ivec4 unpackU3x10_1x2(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packUint2x16 (u16vec2 const & v)
-
- -

Convert each component from an integer vector into a packed unsigned integer.

-
See also
GLM_GTC_packing
-
-u16vec2 unpackUint2x16(uint p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packUint2x32 (u32vec2 const & v)
-
- -

Convert each component from an integer vector into a packed unsigned integer.

-
See also
GLM_GTC_packing
-
-u32vec2 unpackUint2x32(int p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUint2x8 (u8vec2 const & v)
-
- -

Convert each component from an integer vector into a packed unsigned integer.

-
See also
GLM_GTC_packing
-
-u8vec2 unpackInt2x8(uint16 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packUint4x16 (u16vec4 const & v)
-
- -

Convert each component from an integer vector into a packed unsigned integer.

-
See also
GLM_GTC_packing
-
-u16vec4 unpackUint4x16(uint64 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packUint4x8 (u8vec4 const & v)
-
- -

Convert each component from an integer vector into a packed unsigned integer.

-
See also
GLM_GTC_packing
-
-u8vec4 unpackUint4x8(uint32 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, uintType, Q> glm::packUnorm (vec< L, floatType, Q > const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec<L, floatType, Q> unpackUnorm(vec<L, intType, Q> const& p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm1x16 (float v)
-
- -

First, converts the normalized floating-point value v into a 16-bit integer value.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)

-
See also
GLM_GTC_packing
-
-uint16 packSnorm1x16(float const& v)
-
-uint64 packSnorm4x16(vec4 const& v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm1x5_1x6_1x5 (vec3 const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packUnorm1x8 (float v)
-
- -

First, converts the normalized floating-point value v into a 8-bit integer value.

-

Then, the results are packed into the returned 8-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)

-
See also
GLM_GTC_packing
-
-uint16 packUnorm2x8(vec2 const& v)
-
-uint32 packUnorm4x8(vec4 const& v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packUnorm2x3_1x2 (vec3 const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec3 unpackUnorm2x3_1x2(uint8 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint8 glm::packUnorm2x4 (vec2 const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec2 unpackUnorm2x4(uint8 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm2x8 (vec2 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8-bit integer values.

-

Then, the results are packed into the returned 16-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLM_GTC_packing
-
-uint8 packUnorm1x8(float const& v)
-
-uint32 packUnorm4x8(vec4 const& v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 (vec4 const & v)
-
- -

First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values.

-

Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)

-

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

-
See also
GLM_GTC_packing
-
-vec4 unpackUnorm3x10_1x2(uint32 const& p)
-
-uint32 packUnorm3x10_1x2(vec4 const& v)
-
-uint32 packU3x10_1x2(uvec4 const& v)
-
-uint32 packI3x10_1x2(ivec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm3x5_1x1 (vec4 const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec4 unpackUnorm3x5_1x1(uint16 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint64 glm::packUnorm4x16 (vec4 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 16-bit integer values.

-

Then, the results are packed into the returned 64-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLM_GTC_packing
-
-uint16 packUnorm1x16(float const& v)
-
-uint32 packUnorm2x16(vec2 const& v)
-
-GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint16 glm::packUnorm4x4 (vec4 const & v)
-
- -

Convert each component of the normalized floating-point vector into unsigned integer values.

-
See also
GLM_GTC_packing
-
-vec4 unpackUnorm4x4(uint16 p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 (uint32 p)
-
- -

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

-

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packF2x11_1x10(vec3 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec3 glm::unpackF3x9_E1x5 (uint32 p)
-
- -

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

-

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-

unpackF3x9_E1x5 allows decoding RGBE / RGB9E5 data

-
See also
GLM_GTC_packing
-
-uint32 packF3x9_E1x5(vec3 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, float, Q> glm::unpackHalf (vec< L, uint16, Q > const & p)
-
- -

Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

-
See also
GLM_GTC_packing
-
-vec<L, uint16, Q> packHalf(vec<L, float, Q> const& v)
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackHalf1x16 (uint16 v)
-
- -

Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values.

-
See also
GLM_GTC_packing
-
-vec2 unpackHalf2x16(uint32 const& v)
-
-vec4 unpackHalf4x16(uint64 const& v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackHalf4x16 (uint64 p)
-
- -

Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

-
See also
GLM_GTC_packing
-
-float unpackHalf1x16(uint16 const& v)
-
-vec2 unpackHalf2x16(uint32 const& v)
-
-GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 (uint32 p)
-
- -

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const& v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const& p);
-
-uvec4 unpackI3x10_1x2(uint32 const& p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL i16vec2 glm::unpackInt2x16 (int p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int packInt2x16(i16vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL i32vec2 glm::unpackInt2x32 (int64 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int packInt2x16(i32vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL i8vec2 glm::unpackInt2x8 (int16 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int16 packInt2x8(i8vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL i16vec4 glm::unpackInt4x16 (int64 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int64 packInt4x16(i16vec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL i8vec4 glm::unpackInt4x8 (int32 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int32 packInt2x8(i8vec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::unpackRGBM (vec< 4, T, Q > const & rgbm)
-
- -

Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

-
See also
GLM_GTC_packing
-
-vec<4, T, Q> packRGBM(vec<3, float, Q> const& v)
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, floatType, Q> glm::unpackSnorm (vec< L, intType, Q > const & v)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-vec<L, intType, Q> packSnorm(vec<L, floatType, Q> const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackSnorm1x16 (uint16 p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)

-
See also
GLM_GTC_packing
-
-vec2 unpackSnorm2x16(uint32 p)
-
-vec4 unpackSnorm4x16(uint64 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackSnorm1x8 (uint8 p)
-
- -

First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)

-
See also
GLM_GTC_packing
-
-vec2 unpackSnorm2x8(uint16 p)
-
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 (uint16 p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-float unpackSnorm1x8(uint8 p)
-
-vec4 unpackSnorm4x8(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 (uint32 p)
-
- -

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const& v)
-
-vec4 unpackUnorm3x10_1x2(uint32 const& p))
-
-uvec4 unpackI3x10_1x2(uint32 const& p)
-
-uvec4 unpackU3x10_1x2(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 (uint64 p)
-
- -

First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-float unpackSnorm1x16(uint16 p)
-
-vec2 unpackSnorm2x16(uint32 p)
-
-GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 (uint32 p)
-
- -

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers.

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packU3x10_1x2(uvec4 const& v)
-
-vec4 unpackSnorm3x10_1x2(uint32 const& p);
-
-uvec4 unpackI3x10_1x2(uint32 const& p);
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL u16vec2 glm::unpackUint2x16 (uint p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-uint packUint2x16(u16vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL u32vec2 glm::unpackUint2x32 (uint64 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-int packUint2x16(u32vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL u8vec2 glm::unpackUint2x8 (uint16 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-uint16 packInt2x8(u8vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL u16vec4 glm::unpackUint4x16 (uint64 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-uint64 packUint4x16(u16vec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL u8vec4 glm::unpackUint4x8 (uint32 p)
-
- -

Convert a packed integer into an integer vector.

-
See also
GLM_GTC_packing
-
-uint32 packUint4x8(u8vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, floatType, Q> glm::unpackUnorm (vec< L, uintType, Q > const & v)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-vec<L, intType, Q> packUnorm(vec<L, floatType, Q> const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackUnorm1x16 (uint16 p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.

-

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0

-
See also
GLM_GTC_packing
-
-vec2 unpackUnorm2x16(uint32 p)
-
-vec4 unpackUnorm4x16(uint64 p)
-
-GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec3 glm::unpackUnorm1x5_1x6_1x5 (uint16 p)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-uint16 packUnorm1x5_1x6_1x5(vec3 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL float glm::unpackUnorm1x8 (uint8 p)
-
- -

Convert a single 8-bit integer to a normalized floating-point value.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-
See also
GLM_GTC_packing
-
-vec2 unpackUnorm2x8(uint16 p)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec3 glm::unpackUnorm2x3_1x2 (uint8 p)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-uint8 packUnorm2x3_1x2(vec3 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackUnorm2x4 (uint8 p)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-uint8 packUnorm2x4(vec2 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 (uint16 p)
-
- -

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-float unpackUnorm1x8(uint8 v)
-
-vec4 unpackUnorm4x8(uint32 p)
-
-GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 (uint32 p)
-
- -

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-uint32 packSnorm3x10_1x2(vec4 const& v)
-
-vec4 unpackInorm3x10_1x2(uint32 const& p))
-
-uvec4 unpackI3x10_1x2(uint32 const& p)
-
-uvec4 unpackU3x10_1x2(uint32 const& p)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm3x5_1x1 (uint16 p)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-uint16 packUnorm3x5_1x1(vec4 const& v)
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 (uint64 p)
-
- -

First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLM_GTC_packing
-
-float unpackUnorm1x16(uint16 p)
-
-vec2 unpackUnorm2x16(uint32 p)
-
-GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm4x4 (uint16 p)
-
- -

Convert a packed integer to a normalized floating-point vector.

-
See also
GLM_GTC_packing
-
-uint16 packUnorm4x4(vec4 const& v)
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_packing + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_packing
+
+
+ +

Include <glm/gtc/packing.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL uint32 packF2x11_1x10 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
GLM_FUNC_DECL uint32 packF3x9_E1x5 (vec3 const &v)
 First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint16, Q > packHalf (vec< L, float, Q > const &v)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
GLM_FUNC_DECL uint16 packHalf1x16 (float v)
 Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer. More...
 
GLM_FUNC_DECL uint64 packHalf4x16 (vec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer. More...
 
GLM_FUNC_DECL uint32 packI3x10_1x2 (ivec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL int packInt2x16 (i16vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt2x32 (i32vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int16 packInt2x8 (i8vec2 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int64 packInt4x16 (i16vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
GLM_FUNC_DECL int32 packInt4x8 (i8vec4 const &v)
 Convert each component from an integer vector into a packed integer. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > packRGBM (vec< 3, T, Q > const &rgb)
 Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification. More...
 
template<typename intType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, intType, Q > packSnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into signed integer values. More...
 
GLM_FUNC_DECL uint16 packSnorm1x16 (float v)
 First, converts the normalized floating-point value v into 16-bit integer value. More...
 
GLM_FUNC_DECL uint8 packSnorm1x8 (float s)
 First, converts the normalized floating-point value v into 8-bit integer value. More...
 
GLM_FUNC_DECL uint16 packSnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packSnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values. More...
 
GLM_FUNC_DECL uint64 packSnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint32 packU3x10_1x2 (uvec4 const &v)
 Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packUint2x16 (u16vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint2x32 (u32vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint16 packUint2x8 (u8vec2 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint64 packUint4x16 (u16vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
GLM_FUNC_DECL uint32 packUint4x8 (u8vec4 const &v)
 Convert each component from an integer vector into a packed unsigned integer. More...
 
template<typename uintType , length_t L, typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, uintType, Q > packUnorm (vec< L, floatType, Q > const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm1x16 (float v)
 First, converts the normalized floating-point value v into a 16-bit integer value. More...
 
GLM_FUNC_DECL uint16 packUnorm1x5_1x6_1x5 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm1x8 (float v)
 First, converts the normalized floating-point value v into a 8-bit integer value. More...
 
GLM_FUNC_DECL uint8 packUnorm2x3_1x2 (vec3 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint8 packUnorm2x4 (vec2 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm2x8 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8-bit integer values. More...
 
GLM_FUNC_DECL uint32 packUnorm3x10_1x2 (vec4 const &v)
 First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm3x5_1x1 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL uint64 packUnorm4x16 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 16-bit integer values. More...
 
GLM_FUNC_DECL uint16 packUnorm4x4 (vec4 const &v)
 Convert each component of the normalized floating-point vector into unsigned integer values. More...
 
GLM_FUNC_DECL vec3 unpackF2x11_1x10 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
GLM_FUNC_DECL vec3 unpackF3x9_E1x5 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value . More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, float, Q > unpackHalf (vec< L, uint16, Q > const &p)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL float unpackHalf1x16 (uint16 v)
 Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec4 unpackHalf4x16 (uint64 p)
 Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL ivec4 unpackI3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers. More...
 
GLM_FUNC_DECL i16vec2 unpackInt2x16 (int p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i32vec2 unpackInt2x32 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec2 unpackInt2x8 (int16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i16vec4 unpackInt4x16 (int64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL i8vec4 unpackInt4x8 (int32 p)
 Convert a packed integer into an integer vector. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > unpackRGBM (vec< 4, T, Q > const &rgbm)
 Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values. More...
 
template<typename floatType , length_t L, typename intType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackSnorm (vec< L, intType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackSnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers. More...
 
GLM_FUNC_DECL float unpackSnorm1x8 (uint8 p)
 First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL uvec4 unpackU3x10_1x2 (uint32 p)
 Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers. More...
 
GLM_FUNC_DECL u16vec2 unpackUint2x16 (uint p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u32vec2 unpackUint2x32 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec2 unpackUint2x8 (uint16 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u16vec4 unpackUint4x16 (uint64 p)
 Convert a packed integer into an integer vector. More...
 
GLM_FUNC_DECL u8vec4 unpackUint4x8 (uint32 p)
 Convert a packed integer into an integer vector. More...
 
template<typename floatType , length_t L, typename uintType , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > unpackUnorm (vec< L, uintType, Q > const &v)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x16 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec3 unpackUnorm1x5_1x6_1x5 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL float unpackUnorm1x8 (uint8 p)
 Convert a single 8-bit integer to a normalized floating-point value. More...
 
GLM_FUNC_DECL vec3 unpackUnorm2x3_1x2 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x4 (uint8 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x8 (uint16 p)
 First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x10_1x2 (uint32 p)
 First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm3x5_1x1 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x16 (uint64 p)
 First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x4 (uint16 p)
 Convert a packed integer to a normalized floating-point vector. More...
 
+

Detailed Description

+

Include <glm/gtc/packing.hpp> to use the features of this extension.

+

This extension provides a set of function to convert vertors to packed formats.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packF2x11_1x10 (vec3 const & v)
+
+ +

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

+

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

+

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec3 unpackF2x11_1x10(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packF3x9_E1x5 (vec3 const & v)
+
+ +

First, converts the first two components of the normalized floating-point value v into 11-bit signless floating-point values.

+

Then, converts the third component of the normalized floating-point value v into a 10-bit signless floating-point value. Then, the results are packed into the returned 32-bit unsigned integer.

+

The first vector component specifies the 11 least-significant bits of the result; the last component specifies the 10 most-significant bits.

+

packF3x9_E1x5 allows encoding into RGBE / RGB9E5 format

+
See also
GLM_GTC_packing
+
+vec3 unpackF3x9_E1x5(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, uint16, Q> glm::packHalf (vec< L, float, Q > const & v)
+
+ +

Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification.

+

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec<L, float, Q> unpackHalf(vec<L, uint16, Q> const& p)
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packHalf1x16 (float v)
+
+ +

Returns an unsigned integer obtained by converting the components of a floating-point scalar to the 16-bit floating-point representation found in the OpenGL Specification, and then packing this 16-bit value into a 16-bit unsigned integer.

+
See also
GLM_GTC_packing
+
+uint32 packHalf2x16(vec2 const& v)
+
+uint64 packHalf4x16(vec4 const& v)
+
+GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packHalf4x16 (vec4 const & v)
+
+ +

Returns an unsigned integer obtained by converting the components of a four-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these four 16-bit values into a 64-bit unsigned integer.

+

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packHalf1x16(float const& v)
+
+uint32 packHalf2x16(vec2 const& v)
+
+GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packI3x10_1x2 (ivec4 const & v)
+
+ +

Returns an unsigned integer obtained by converting the components of a four-component signed integer vector to the 10-10-10-2-bit signed integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packI3x10_1x2(uvec4 const& v)
+
+uint32 packSnorm3x10_1x2(vec4 const& v)
+
+uint32 packUnorm3x10_1x2(vec4 const& v)
+
+ivec4 unpackI3x10_1x2(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::packInt2x16 (i16vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed integer.

+
See also
GLM_GTC_packing
+
+i16vec2 unpackInt2x16(int p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int64 glm::packInt2x32 (i32vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed integer.

+
See also
GLM_GTC_packing
+
+i32vec2 unpackInt2x32(int p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int16 glm::packInt2x8 (i8vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed integer.

+
See also
GLM_GTC_packing
+
+i8vec2 unpackInt2x8(int16 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int64 glm::packInt4x16 (i16vec4 const & v)
+
+ +

Convert each component from an integer vector into a packed integer.

+
See also
GLM_GTC_packing
+
+i16vec4 unpackInt4x16(int64 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int32 glm::packInt4x8 (i8vec4 const & v)
+
+ +

Convert each component from an integer vector into a packed integer.

+
See also
GLM_GTC_packing
+
+i8vec4 unpackInt4x8(int32 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::packRGBM (vec< 3, T, Q > const & rgb)
+
+ +

Returns an unsigned integer vector obtained by converting the components of a floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification.

+

The first vector component specifies the 16 least-significant bits of the result; the forth component specifies the 16 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec<3, T, Q> unpackRGBM(vec<4, T, Q> const& p)
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, intType, Q> glm::packSnorm (vec< L, floatType, Q > const & v)
+
+ +

Convert each component of the normalized floating-point vector into signed integer values.

+
See also
GLM_GTC_packing
+
+vec<L, floatType, Q> unpackSnorm(vec<L, intType, Q> const& p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packSnorm1x16 (float v)
+
+ +

First, converts the normalized floating-point value v into 16-bit integer value.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 32767.0)

+
See also
GLM_GTC_packing
+
+uint32 packSnorm2x16(vec2 const& v)
+
+uint64 packSnorm4x16(vec4 const& v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packSnorm1x8 (float s)
+
+ +

First, converts the normalized floating-point value v into 8-bit integer value.

+

Then, the results are packed into the returned 8-bit unsigned integer.

+

The conversion to fixed point is done as follows: packSnorm1x8: round(clamp(s, -1, +1) * 127.0)

+
See also
GLM_GTC_packing
+
+uint16 packSnorm2x8(vec2 const& v)
+
+uint32 packSnorm4x8(vec4 const& v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packSnorm2x8 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8-bit integer values.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 127.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint8 packSnorm1x8(float const& v)
+
+uint32 packSnorm4x8(vec4 const& v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packSnorm3x10_1x2 (vec4 const & v)
+
+ +

First, converts the first three components of the normalized floating-point value v into 10-bit signed integer values.

+

Then, converts the forth component of the normalized floating-point value v into 2-bit signed integer values. Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm3x10_1x2(xyz): round(clamp(c, -1, +1) * 511.0) packSnorm3x10_1x2(w): round(clamp(c, -1, +1) * 1.0)

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec4 unpackSnorm3x10_1x2(uint32 const& p)
+
+uint32 packUnorm3x10_1x2(vec4 const& v)
+
+uint32 packU3x10_1x2(uvec4 const& v)
+
+uint32 packI3x10_1x2(ivec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packSnorm4x16 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 16-bit integer values.

+

Then, the results are packed into the returned 64-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x8: round(clamp(c, -1, +1) * 32767.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packSnorm1x16(float const& v)
+
+uint32 packSnorm2x16(vec2 const& v)
+
+GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packU3x10_1x2 (uvec4 const & v)
+
+ +

Returns an unsigned integer obtained by converting the components of a four-component unsigned integer vector to the 10-10-10-2-bit unsigned integer representation found in the OpenGL Specification, and then packing these four values into a 32-bit unsigned integer.

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packI3x10_1x2(ivec4 const& v)
+
+uint32 packSnorm3x10_1x2(vec4 const& v)
+
+uint32 packUnorm3x10_1x2(vec4 const& v)
+
+ivec4 unpackU3x10_1x2(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packUint2x16 (u16vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed unsigned integer.

+
See also
GLM_GTC_packing
+
+u16vec2 unpackUint2x16(uint p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packUint2x32 (u32vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed unsigned integer.

+
See also
GLM_GTC_packing
+
+u32vec2 unpackUint2x32(int p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUint2x8 (u8vec2 const & v)
+
+ +

Convert each component from an integer vector into a packed unsigned integer.

+
See also
GLM_GTC_packing
+
+u8vec2 unpackInt2x8(uint16 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packUint4x16 (u16vec4 const & v)
+
+ +

Convert each component from an integer vector into a packed unsigned integer.

+
See also
GLM_GTC_packing
+
+u16vec4 unpackUint4x16(uint64 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packUint4x8 (u8vec4 const & v)
+
+ +

Convert each component from an integer vector into a packed unsigned integer.

+
See also
GLM_GTC_packing
+
+u8vec4 unpackUint4x8(uint32 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, uintType, Q> glm::packUnorm (vec< L, floatType, Q > const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec<L, floatType, Q> unpackUnorm(vec<L, intType, Q> const& p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm1x16 (float v)
+
+ +

First, converts the normalized floating-point value v into a 16-bit integer value.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm1x16: round(clamp(c, 0, +1) * 65535.0)

+
See also
GLM_GTC_packing
+
+uint16 packSnorm1x16(float const& v)
+
+uint64 packSnorm4x16(vec4 const& v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm1x5_1x6_1x5 (vec3 const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec3 unpackUnorm1x5_1x6_1x5(uint16 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packUnorm1x8 (float v)
+
+ +

First, converts the normalized floating-point value v into a 8-bit integer value.

+

Then, the results are packed into the returned 8-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm1x8: round(clamp(c, 0, +1) * 255.0)

+
See also
GLM_GTC_packing
+
+uint16 packUnorm2x8(vec2 const& v)
+
+uint32 packUnorm4x8(vec4 const& v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packUnorm2x3_1x2 (vec3 const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec3 unpackUnorm2x3_1x2(uint8 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint8 glm::packUnorm2x4 (vec2 const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec2 unpackUnorm2x4(uint8 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm2x8 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8-bit integer values.

+

Then, the results are packed into the returned 16-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm2x8: round(clamp(c, 0, +1) * 255.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint8 packUnorm1x8(float const& v)
+
+uint32 packUnorm4x8(vec4 const& v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint32 glm::packUnorm3x10_1x2 (vec4 const & v)
+
+ +

First, converts the first three components of the normalized floating-point value v into 10-bit unsigned integer values.

+

Then, converts the forth component of the normalized floating-point value v into 2-bit signed uninteger values. Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm3x10_1x2(xyz): round(clamp(c, 0, +1) * 1023.0) packUnorm3x10_1x2(w): round(clamp(c, 0, +1) * 3.0)

+

The first vector component specifies the 10 least-significant bits of the result; the forth component specifies the 2 most-significant bits.

+
See also
GLM_GTC_packing
+
+vec4 unpackUnorm3x10_1x2(uint32 const& p)
+
+uint32 packUnorm3x10_1x2(vec4 const& v)
+
+uint32 packU3x10_1x2(uvec4 const& v)
+
+uint32 packI3x10_1x2(ivec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm3x5_1x1 (vec4 const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec4 unpackUnorm3x5_1x1(uint16 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint64 glm::packUnorm4x16 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 16-bit integer values.

+

Then, the results are packed into the returned 64-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm4x16: round(clamp(c, 0, +1) * 65535.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLM_GTC_packing
+
+uint16 packUnorm1x16(float const& v)
+
+uint32 packUnorm2x16(vec2 const& v)
+
+GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint16 glm::packUnorm4x4 (vec4 const & v)
+
+ +

Convert each component of the normalized floating-point vector into unsigned integer values.

+
See also
GLM_GTC_packing
+
+vec4 unpackUnorm4x4(uint16 p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec3 glm::unpackF2x11_1x10 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

+

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packF2x11_1x10(vec3 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec3 glm::unpackF3x9_E1x5 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into two 11-bit signless floating-point values and one 10-bit signless floating-point value .

+

Then, each component is converted to a normalized floating-point value to generate the returned three-component vector.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+

unpackF3x9_E1x5 allows decoding RGBE / RGB9E5 data

+
See also
GLM_GTC_packing
+
+uint32 packF3x9_E1x5(vec3 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, float, Q> glm::unpackHalf (vec< L, uint16, Q > const & p)
+
+ +

Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

+
See also
GLM_GTC_packing
+
+vec<L, uint16, Q> packHalf(vec<L, float, Q> const& v)
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackHalf1x16 (uint16 v)
+
+ +

Returns a floating-point scalar with components obtained by unpacking a 16-bit unsigned integer into a 16-bit value, interpreted as a 16-bit floating-point number according to the OpenGL Specification, and converting it to 32-bit floating-point values.

+
See also
GLM_GTC_packing
+
+vec2 unpackHalf2x16(uint32 const& v)
+
+vec4 unpackHalf4x16(uint64 const& v)
+
+GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackHalf4x16 (uint64 p)
+
+ +

Returns a four-component floating-point vector with components obtained by unpacking a 64-bit unsigned integer into four 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

+
See also
GLM_GTC_packing
+
+float unpackHalf1x16(uint16 const& v)
+
+vec2 unpackHalf2x16(uint32 const& v)
+
+GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL ivec4 glm::unpackI3x10_1x2 (uint32 p)
+
+ +

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit signed integers.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packU3x10_1x2(uvec4 const& v)
+
+vec4 unpackSnorm3x10_1x2(uint32 const& p);
+
+uvec4 unpackI3x10_1x2(uint32 const& p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL i16vec2 glm::unpackInt2x16 (int p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int packInt2x16(i16vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL i32vec2 glm::unpackInt2x32 (int64 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int packInt2x16(i32vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL i8vec2 glm::unpackInt2x8 (int16 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int16 packInt2x8(i8vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL i16vec4 glm::unpackInt4x16 (int64 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int64 packInt4x16(i16vec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL i8vec4 glm::unpackInt4x8 (int32 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int32 packInt2x8(i8vec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::unpackRGBM (vec< 4, T, Q > const & rgbm)
+
+ +

Returns a floating-point vector with components obtained by reinterpreting an integer vector as 16-bit floating-point numbers and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the forth component is obtained from the 16 most-significant bits of v.

+
See also
GLM_GTC_packing
+
+vec<4, T, Q> packRGBM(vec<3, float, Q> const& v)
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, floatType, Q> glm::unpackSnorm (vec< L, intType, Q > const & v)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+vec<L, intType, Q> packSnorm(vec<L, floatType, Q> const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackSnorm1x16 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a single 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x16: clamp(f / 32767.0, -1, +1)

+
See also
GLM_GTC_packing
+
+vec2 unpackSnorm2x16(uint32 p)
+
+vec4 unpackSnorm4x16(uint64 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackSnorm1x8 (uint8 p)
+
+ +

First, unpacks a single 8-bit unsigned integer p into a single 8-bit signed integers.

+

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm1x8: clamp(f / 127.0, -1, +1)

+
See also
GLM_GTC_packing
+
+vec2 unpackSnorm2x8(uint16 p)
+
+vec4 unpackSnorm4x8(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackSnorm2x8 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x8: clamp(f / 127.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackSnorm1x8(uint8 p)
+
+vec4 unpackSnorm4x8(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm3x10_1x2 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 511.0, -1, +1) unpackSnorm3x10_1x2(w): clamp(f / 511.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packSnorm3x10_1x2(vec4 const& v)
+
+vec4 unpackUnorm3x10_1x2(uint32 const& p))
+
+uvec4 unpackI3x10_1x2(uint32 const& p)
+
+uvec4 unpackU3x10_1x2(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x16 (uint64 p)
+
+ +

First, unpacks a single 64-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x16: clamp(f / 32767.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackSnorm1x16(uint16 p)
+
+vec2 unpackSnorm2x16(uint32 p)
+
+GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uvec4 glm::unpackU3x10_1x2 (uint32 p)
+
+ +

Unpacks a single 32-bit unsigned integer p into three 10-bit and one 2-bit unsigned integers.

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packU3x10_1x2(uvec4 const& v)
+
+vec4 unpackSnorm3x10_1x2(uint32 const& p);
+
+uvec4 unpackI3x10_1x2(uint32 const& p);
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL u16vec2 glm::unpackUint2x16 (uint p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+uint packUint2x16(u16vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL u32vec2 glm::unpackUint2x32 (uint64 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+int packUint2x16(u32vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL u8vec2 glm::unpackUint2x8 (uint16 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+uint16 packInt2x8(u8vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL u16vec4 glm::unpackUint4x16 (uint64 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+uint64 packUint4x16(u16vec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL u8vec4 glm::unpackUint4x8 (uint32 p)
+
+ +

Convert a packed integer into an integer vector.

+
See also
GLM_GTC_packing
+
+uint32 packUint4x8(u8vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, floatType, Q> glm::unpackUnorm (vec< L, uintType, Q > const & v)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+vec<L, intType, Q> packUnorm(vec<L, floatType, Q> const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackUnorm1x16 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a of 16-bit unsigned integers.

+

Then, the value is converted to a normalized floating-point value to generate the returned scalar.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm1x16: f / 65535.0

+
See also
GLM_GTC_packing
+
+vec2 unpackUnorm2x16(uint32 p)
+
+vec4 unpackUnorm4x16(uint64 p)
+
+GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec3 glm::unpackUnorm1x5_1x6_1x5 (uint16 p)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+uint16 packUnorm1x5_1x6_1x5(vec3 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL float glm::unpackUnorm1x8 (uint8 p)
+
+ +

Convert a single 8-bit integer to a normalized floating-point value.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+
See also
GLM_GTC_packing
+
+vec2 unpackUnorm2x8(uint16 p)
+
+vec4 unpackUnorm4x8(uint32 p)
+
+GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec3 glm::unpackUnorm2x3_1x2 (uint8 p)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+uint8 packUnorm2x3_1x2(vec3 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x4 (uint8 p)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+uint8 packUnorm2x4(vec2 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x8 (uint16 p)
+
+ +

First, unpacks a single 16-bit unsigned integer p into a pair of 8-bit unsigned integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackUnorm1x8(uint8 v)
+
+vec4 unpackUnorm4x8(uint32 p)
+
+GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm3x10_1x2 (uint32 p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into four 16-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm3x10_1x2(xyz): clamp(f / 1023.0, 0, +1) unpackSnorm3x10_1x2(w): clamp(f / 3.0, 0, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+uint32 packSnorm3x10_1x2(vec4 const& v)
+
+vec4 unpackInorm3x10_1x2(uint32 const& p))
+
+uvec4 unpackI3x10_1x2(uint32 const& p)
+
+uvec4 unpackU3x10_1x2(uint32 const& p)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm3x5_1x1 (uint16 p)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+uint16 packUnorm3x5_1x1(vec4 const& v)
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x16 (uint64 p)
+
+ +

First, unpacks a single 64-bit unsigned integer p into four 16-bit unsigned integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnormx4x16: f / 65535.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLM_GTC_packing
+
+float unpackUnorm1x16(uint16 p)
+
+vec2 unpackUnorm2x16(uint32 p)
+
+GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x4 (uint16 p)
+
+ +

Convert a packed integer to a normalized floating-point vector.

+
See also
GLM_GTC_packing
+
+uint16 packUnorm4x4(vec4 const& v)
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00299.html b/external/include/glm-0.9.9.8/doc/api/a00299.html index d8ef579108..89d49c9980 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00299.html +++ b/external/include/glm-0.9.9.8/doc/api/a00299.html @@ -1,619 +1,619 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_quaternion - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_quaternion
-
-
- -

Include <glm/gtc/quaternion.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles (qua< T, Q > const &x)
 Returns euler angles, pitch as x, yaw as y, roll as z. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T pitch (qua< T, Q > const &x)
 Returns pitch value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 3, 3, T, Q > const &x)
 Converts a pure rotation 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 4, 4, T, Q > const &x)
 Converts a pure rotation 4 * 4 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAt (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a look at quaternion based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtLH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a left-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtRH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a right-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T roll (qua< T, Q > const &x)
 Returns roll value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T yaw (qua< T, Q > const &x)
 Returns yaw value of euler angles expressed in radians. More...
 
-

Detailed Description

-

Include <glm/gtc/quaternion.hpp> to use the features of this extension.

-

Defines a templated quaternion type and several quaternion operations.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::eulerAngles (qua< T, Q > const & x)
-
- -

Returns euler angles, pitch as x, yaw as y, roll as z.

-

The result is expressed in radians.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::greaterThan (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x > y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_relational
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::greaterThanEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x >= y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_relational
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::lessThan (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison result of x < y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_relational
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, bool, Q> glm::lessThanEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x <= y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_quaternion_relational
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::mat3_cast (qua< T, Q > const & x)
-
- -

Converts a quaternion to a 3 * 3 matrix.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -

Referenced by glm::toMat3().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::mat4_cast (qua< T, Q > const & x)
-
- -

Converts a quaternion to a 4 * 4 matrix.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -

Referenced by glm::toMat4().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::pitch (qua< T, Q > const & x)
-
- -

Returns pitch value of euler angles expressed in radians.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quat_cast (mat< 3, 3, T, Q > const & x)
-
- -

Converts a pure rotation 3 * 3 matrix to a quaternion.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -

Referenced by glm::toQuat().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quat_cast (mat< 4, 4, T, Q > const & x)
-
- -

Converts a pure rotation 4 * 4 matrix to a quaternion.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quatLookAt (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
-
- -

Build a look at quaternion based on the default handedness.

-
Parameters
- - - -
directionDesired forward direction. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quatLookAtLH (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
-
- -

Build a left-handed look at quaternion.

-
Parameters
- - - -
directionDesired forward direction onto which the +z-axis gets mapped. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quatLookAtRH (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
-
- -

Build a right-handed look at quaternion.

-
Parameters
- - - -
directionDesired forward direction onto which the -z-axis gets mapped. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
-
-
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::roll (qua< T, Q > const & x)
-
- -

Returns roll value of euler angles expressed in radians.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::yaw (qua< T, Q > const & x)
-
- -

Returns yaw value of euler angles expressed in radians.

-
Template Parameters
- - -
TFloating-point scalar types.
-
-
-
See also
GLM_GTC_quaternion
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_quaternion + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_quaternion
+
+
+ +

Include <glm/gtc/quaternion.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > eulerAngles (qua< T, Q > const &x)
 Returns euler angles, pitch as x, yaw as y, roll as z. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > greaterThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThan (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > lessThanEqual (qua< T, Q > const &x, qua< T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > mat3_cast (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > mat4_cast (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T pitch (qua< T, Q > const &x)
 Returns pitch value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 3, 3, T, Q > const &x)
 Converts a pure rotation 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_cast (mat< 4, 4, T, Q > const &x)
 Converts a pure rotation 4 * 4 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAt (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a look at quaternion based on the default handedness. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtLH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a left-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quatLookAtRH (vec< 3, T, Q > const &direction, vec< 3, T, Q > const &up)
 Build a right-handed look at quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T roll (qua< T, Q > const &x)
 Returns roll value of euler angles expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T yaw (qua< T, Q > const &x)
 Returns yaw value of euler angles expressed in radians. More...
 
+

Detailed Description

+

Include <glm/gtc/quaternion.hpp> to use the features of this extension.

+

Defines a templated quaternion type and several quaternion operations.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::eulerAngles (qua< T, Q > const & x)
+
+ +

Returns euler angles, pitch as x, yaw as y, roll as z.

+

The result is expressed in radians.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::greaterThan (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x > y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_relational
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::greaterThanEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x >= y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_relational
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::lessThan (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison result of x < y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_relational
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, bool, Q> glm::lessThanEqual (qua< T, Q > const & x,
qua< T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x <= y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_quaternion_relational
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::mat3_cast (qua< T, Q > const & x)
+
+ +

Converts a quaternion to a 3 * 3 matrix.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +

Referenced by glm::toMat3().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::mat4_cast (qua< T, Q > const & x)
+
+ +

Converts a quaternion to a 4 * 4 matrix.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +

Referenced by glm::toMat4().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::pitch (qua< T, Q > const & x)
+
+ +

Returns pitch value of euler angles expressed in radians.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quat_cast (mat< 3, 3, T, Q > const & x)
+
+ +

Converts a pure rotation 3 * 3 matrix to a quaternion.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +

Referenced by glm::toQuat().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quat_cast (mat< 4, 4, T, Q > const & x)
+
+ +

Converts a pure rotation 4 * 4 matrix to a quaternion.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quatLookAt (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
+
+ +

Build a look at quaternion based on the default handedness.

+
Parameters
+ + + +
directionDesired forward direction. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quatLookAtLH (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
+
+ +

Build a left-handed look at quaternion.

+
Parameters
+ + + +
directionDesired forward direction onto which the +z-axis gets mapped. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quatLookAtRH (vec< 3, T, Q > const & direction,
vec< 3, T, Q > const & up 
)
+
+ +

Build a right-handed look at quaternion.

+
Parameters
+ + + +
directionDesired forward direction onto which the -z-axis gets mapped. Needs to be normalized.
upUp vector, how the camera is oriented. Typically (0, 1, 0).
+
+
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::roll (qua< T, Q > const & x)
+
+ +

Returns roll value of euler angles expressed in radians.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::yaw (qua< T, Q > const & x)
+
+ +

Returns yaw value of euler angles expressed in radians.

+
Template Parameters
+ + +
TFloating-point scalar types.
+
+
+
See also
GLM_GTC_quaternion
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00300.html b/external/include/glm-0.9.9.8/doc/api/a00300.html index 6007f2beb7..cd7724f499 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00300.html +++ b/external/include/glm-0.9.9.8/doc/api/a00300.html @@ -1,320 +1,320 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_random - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtc/random.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. More...
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 Generate random numbers in the interval [Min, Max], according a gaussian distribution. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType Min, genType Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > linearRand (vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. More...
 
-

Detailed Description

-

Include <glm/gtc/random.hpp> to use the features of this extension.

-

Generate random number from various distribution methods.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, defaultp> glm::ballRand (T Radius)
-
- -

Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius.

-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, defaultp> glm::circularRand (T Radius)
-
- -

Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius.

-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, defaultp> glm::diskRand (T Radius)
-
- -

Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius.

-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::gaussRand (genType Mean,
genType Deviation 
)
-
- -

Generate random numbers in the interval [Min, Max], according a gaussian distribution.

-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::linearRand (genType Min,
genType Max 
)
-
- -

Generate random numbers in the interval [Min, Max], according a linear distribution.

-
Parameters
- - - -
MinMinimum value included in the sampling
MaxMaximum value included in the sampling
-
-
-
Template Parameters
- - -
genTypeValue type. Currently supported: float or double scalars.
-
-
-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::linearRand (vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
-
- -

Generate random numbers in the interval [Min, Max], according a linear distribution.

-
Parameters
- - - -
MinMinimum value included in the sampling
MaxMaximum value included in the sampling
-
-
-
Template Parameters
- - -
TValue type. Currently supported: float or double.
-
-
-
See also
GLM_GTC_random
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, defaultp> glm::sphericalRand (T Radius)
-
- -

Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius.

-
See also
GLM_GTC_random
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_random + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtc/random.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > ballRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > circularRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > diskRand (T Radius)
 Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius. More...
 
template<typename genType >
GLM_FUNC_DECL genType gaussRand (genType Mean, genType Deviation)
 Generate random numbers in the interval [Min, Max], according a gaussian distribution. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearRand (genType Min, genType Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > linearRand (vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Generate random numbers in the interval [Min, Max], according a linear distribution. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > sphericalRand (T Radius)
 Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius. More...
 
+

Detailed Description

+

Include <glm/gtc/random.hpp> to use the features of this extension.

+

Generate random number from various distribution methods.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, defaultp> glm::ballRand (T Radius)
+
+ +

Generate a random 3D vector which coordinates are regulary distributed within the volume of a ball of a given radius.

+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, defaultp> glm::circularRand (T Radius)
+
+ +

Generate a random 2D vector which coordinates are regulary distributed on a circle of a given radius.

+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, defaultp> glm::diskRand (T Radius)
+
+ +

Generate a random 2D vector which coordinates are regulary distributed within the area of a disk of a given radius.

+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::gaussRand (genType Mean,
genType Deviation 
)
+
+ +

Generate random numbers in the interval [Min, Max], according a gaussian distribution.

+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::linearRand (genType Min,
genType Max 
)
+
+ +

Generate random numbers in the interval [Min, Max], according a linear distribution.

+
Parameters
+ + + +
MinMinimum value included in the sampling
MaxMaximum value included in the sampling
+
+
+
Template Parameters
+ + +
genTypeValue type. Currently supported: float or double scalars.
+
+
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::linearRand (vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
+
+ +

Generate random numbers in the interval [Min, Max], according a linear distribution.

+
Parameters
+ + + +
MinMinimum value included in the sampling
MaxMaximum value included in the sampling
+
+
+
Template Parameters
+ + +
TValue type. Currently supported: float or double.
+
+
+
See also
GLM_GTC_random
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, defaultp> glm::sphericalRand (T Radius)
+
+ +

Generate a random 3D vector which coordinates are regulary distributed on a sphere of a given radius.

+
See also
GLM_GTC_random
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00301.html b/external/include/glm-0.9.9.8/doc/api/a00301.html index 355cef8d95..2f882995fb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00301.html +++ b/external/include/glm-0.9.9.8/doc/api/a00301.html @@ -1,460 +1,460 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_reciprocal - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_reciprocal
-
-
- -

Include <glm/gtc/reciprocal.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType x)
 Inverse cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType x)
 Inverse cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType x)
 Inverse cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType x)
 Inverse cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType x)
 Inverse secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType x)
 Inverse secant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType angle)
 Cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType angle)
 Cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType angle)
 Cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType angle)
 Cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType angle)
 Secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType angle)
 Secant hyperbolic function. More...
 
-

Detailed Description

-

Include <glm/gtc/reciprocal.hpp> to use the features of this extension.

-

Define secant, cosecant and cotangent functions.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acot (genType x)
-
- -

Inverse cotangent function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acoth (genType x)
-
- -

Inverse cotangent hyperbolic function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsc (genType x)
-
- -

Inverse cosecant function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::acsch (genType x)
-
- -

Inverse cosecant hyperbolic function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asec (genType x)
-
- -

Inverse secant function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::asech (genType x)
-
- -

Inverse secant hyperbolic function.

-
Returns
Return an angle expressed in radians.
-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::cot (genType angle)
-
- -

Cotangent function.

-

adjacent / opposite or 1 / tan(x)

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::coth (genType angle)
-
- -

Cotangent hyperbolic function.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csc (genType angle)
-
- -

Cosecant function.

-

hypotenuse / opposite or 1 / sin(x)

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::csch (genType angle)
-
- -

Cosecant hyperbolic function.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sec (genType angle)
-
- -

Secant function.

-

hypotenuse / adjacent or 1 / cos(x)

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sech (genType angle)
-
- -

Secant hyperbolic function.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLM_GTC_reciprocal
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_reciprocal + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_reciprocal
+
+
+ +

Include <glm/gtc/reciprocal.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType acot (genType x)
 Inverse cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acoth (genType x)
 Inverse cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsc (genType x)
 Inverse cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType acsch (genType x)
 Inverse cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asec (genType x)
 Inverse secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType asech (genType x)
 Inverse secant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType cot (genType angle)
 Cotangent function. More...
 
template<typename genType >
GLM_FUNC_DECL genType coth (genType angle)
 Cotangent hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csc (genType angle)
 Cosecant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType csch (genType angle)
 Cosecant hyperbolic function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sec (genType angle)
 Secant function. More...
 
template<typename genType >
GLM_FUNC_DECL genType sech (genType angle)
 Secant hyperbolic function. More...
 
+

Detailed Description

+

Include <glm/gtc/reciprocal.hpp> to use the features of this extension.

+

Define secant, cosecant and cotangent functions.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::acot (genType x)
+
+ +

Inverse cotangent function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::acoth (genType x)
+
+ +

Inverse cotangent hyperbolic function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::acsc (genType x)
+
+ +

Inverse cosecant function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::acsch (genType x)
+
+ +

Inverse cosecant hyperbolic function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::asec (genType x)
+
+ +

Inverse secant function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::asech (genType x)
+
+ +

Inverse secant hyperbolic function.

+
Returns
Return an angle expressed in radians.
+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::cot (genType angle)
+
+ +

Cotangent function.

+

adjacent / opposite or 1 / tan(x)

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::coth (genType angle)
+
+ +

Cotangent hyperbolic function.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::csc (genType angle)
+
+ +

Cosecant function.

+

hypotenuse / opposite or 1 / sin(x)

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::csch (genType angle)
+
+ +

Cosecant hyperbolic function.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::sec (genType angle)
+
+ +

Secant function.

+

hypotenuse / adjacent or 1 / cos(x)

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::sech (genType angle)
+
+ +

Secant hyperbolic function.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLM_GTC_reciprocal
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00302.html b/external/include/glm-0.9.9.8/doc/api/a00302.html index ac8508713b..51e4817e74 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00302.html +++ b/external/include/glm-0.9.9.8/doc/api/a00302.html @@ -1,547 +1,547 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_round - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtc/round.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType v, genType Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType v)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is the closet to the input value. More...
 
-

Detailed Description

-

Include <glm/gtc/round.hpp> to use the features of this extension.

-

Rounding value to specific boundings

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::ceilMultiple (genType v,
genType Multiple 
)
-
- -

Higher multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
vSource value to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::ceilMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Higher multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo (genIUType v)
-
- -

Return the power of two number which value is just higher the input value, round up to a power of two.

-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::ceilPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return the power of two number which value is just higher the input value, round up to a power of two.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::floorMultiple (genType v,
genType Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
vSource value to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::floorMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::floorPowerOfTwo (genIUType v)
-
- -

Return the power of two number which value is just lower the input value, round down to a power of two.

-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::floorPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return the power of two number which value is just lower the input value, round down to a power of two.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::roundMultiple (genType v,
genType Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - -
genTypeFloating-point or integer scalar or vector types.
-
-
-
Parameters
- - - -
vSource value to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::roundMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
-
- -

Lower multiple number of Source.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
Parameters
- - - -
vSource values to which is applied the function
MultipleMust be a null or positive value
-
-
-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::roundPowerOfTwo (genIUType v)
-
- -

Return the power of two number which value is the closet to the input value.

-
See also
GLM_GTC_round
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::roundPowerOfTwo (vec< L, T, Q > const & v)
-
- -

Return the power of two number which value is the closet to the input value.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_GTC_round
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_round + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtc/round.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType ceilMultiple (genType v, genType Multiple)
 Higher multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Higher multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType ceilPowerOfTwo (genIUType v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > ceilPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just higher the input value, round up to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType floorMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType floorPowerOfTwo (genIUType v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > floorPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is just lower the input value, round down to a power of two. More...
 
template<typename genType >
GLM_FUNC_DECL genType roundMultiple (genType v, genType Multiple)
 Lower multiple number of Source. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundMultiple (vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)
 Lower multiple number of Source. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType roundPowerOfTwo (genIUType v)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > roundPowerOfTwo (vec< L, T, Q > const &v)
 Return the power of two number which value is the closet to the input value. More...
 
+

Detailed Description

+

Include <glm/gtc/round.hpp> to use the features of this extension.

+

Rounding value to specific boundings

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::ceilMultiple (genType v,
genType Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
vSource value to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::ceilMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Higher multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::ceilPowerOfTwo (genIUType v)
+
+ +

Return the power of two number which value is just higher the input value, round up to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::ceilPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return the power of two number which value is just higher the input value, round up to a power of two.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::floorMultiple (genType v,
genType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
vSource value to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::floorMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::floorPowerOfTwo (genIUType v)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::floorPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return the power of two number which value is just lower the input value, round down to a power of two.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::roundMultiple (genType v,
genType Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + +
genTypeFloating-point or integer scalar or vector types.
+
+
+
Parameters
+ + + +
vSource value to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::roundMultiple (vec< L, T, Q > const & v,
vec< L, T, Q > const & Multiple 
)
+
+ +

Lower multiple number of Source.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
Parameters
+ + + +
vSource values to which is applied the function
MultipleMust be a null or positive value
+
+
+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::roundPowerOfTwo (genIUType v)
+
+ +

Return the power of two number which value is the closet to the input value.

+
See also
GLM_GTC_round
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::roundPowerOfTwo (vec< L, T, Q > const & v)
+
+ +

Return the power of two number which value is the closet to the input value.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_GTC_round
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00303.html b/external/include/glm-0.9.9.8/doc/api/a00303.html index fb7bb629cf..a463e4a579 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00303.html +++ b/external/include/glm-0.9.9.8/doc/api/a00303.html @@ -1,1510 +1,1510 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_type_aligned - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_type_aligned
-
-
- -

Include <glm/gtc/type_aligned.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef aligned_highp_bvec1 aligned_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec2 aligned_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec3 aligned_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef aligned_highp_bvec4 aligned_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef aligned_highp_dmat2 aligned_dmat2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x2 aligned_dmat2x2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x3 aligned_dmat2x3
 2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat2x4 aligned_dmat2x4
 2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3 aligned_dmat3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x2 aligned_dmat3x2
 3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x3 aligned_dmat3x3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat3x4 aligned_dmat3x4
 3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4 aligned_dmat4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x2 aligned_dmat4x2
 4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x3 aligned_dmat4x3
 4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dmat4x4 aligned_dmat4x4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec1 aligned_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec2 aligned_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec3 aligned_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef aligned_highp_dvec4 aligned_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers.
 
-typedef vec< 1, bool, aligned_highp > aligned_highp_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_highp > aligned_highp_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_highp > aligned_highp_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_highp > aligned_highp_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_highp > aligned_highp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_highp > aligned_highp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_highp > aligned_highp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_highp > aligned_highp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_highp > aligned_highp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_highp > aligned_highp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_highp > aligned_highp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_highp > aligned_highp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_highp > aligned_highp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_highp > aligned_highp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_highp > aligned_highp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_highp > aligned_highp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_highp > aligned_highp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_highp > aligned_highp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_highp > aligned_highp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_highp > aligned_highp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef aligned_highp_ivec1 aligned_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec2 aligned_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec3 aligned_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef aligned_highp_ivec4 aligned_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_lowp > aligned_lowp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_lowp > aligned_lowp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_lowp > aligned_lowp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_lowp > aligned_lowp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_lowp > aligned_lowp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_lowp > aligned_lowp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_lowp > aligned_lowp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_lowp > aligned_lowp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_lowp > aligned_lowp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_lowp > aligned_lowp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_lowp > aligned_lowp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_lowp > aligned_lowp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef aligned_highp_mat2 aligned_mat2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x2 aligned_mat2x2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x3 aligned_mat2x3
 2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat2x4 aligned_mat2x4
 2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3 aligned_mat3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x2 aligned_mat3x2
 3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x3 aligned_mat3x3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat3x4 aligned_mat3x4
 3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4 aligned_mat4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x2 aligned_mat4x2
 4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x3 aligned_mat4x3
 4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_mat4x4 aligned_mat4x4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
-typedef vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
 1 component vector aligned in memory of bool values.
 
-typedef vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
 2 components vector aligned in memory of bool values.
 
-typedef vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
 3 components vector aligned in memory of bool values.
 
-typedef vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
 4 components vector aligned in memory of bool values.
 
-typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, aligned_mediump > aligned_mediump_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, aligned_mediump > aligned_mediump_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, aligned_mediump > aligned_mediump_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, aligned_mediump > aligned_mediump_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, aligned_mediump > aligned_mediump_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
-typedef vec< 2, int, aligned_mediump > aligned_mediump_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 3, int, aligned_mediump > aligned_mediump_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
-typedef vec< 4, int, aligned_mediump > aligned_mediump_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef vec< 1, float, aligned_mediump > aligned_mediump_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, aligned_mediump > aligned_mediump_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, aligned_mediump > aligned_mediump_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, aligned_mediump > aligned_mediump_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef aligned_highp_uvec1 aligned_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec2 aligned_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec3 aligned_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_uvec4 aligned_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
-typedef aligned_highp_vec1 aligned_vec1
 1 component vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec2 aligned_vec2
 2 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec3 aligned_vec3
 3 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef aligned_highp_vec4 aligned_vec4
 4 components vector aligned in memory of single-precision floating-point numbers.
 
-typedef packed_highp_bvec1 packed_bvec1
 1 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec2 packed_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec3 packed_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_bvec4 packed_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef packed_highp_dmat2 packed_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x2 packed_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x3 packed_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat2x4 packed_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3 packed_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x2 packed_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x3 packed_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat3x4 packed_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4 packed_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x2 packed_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x3 packed_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dmat4x4 packed_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec1 packed_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec2 packed_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec3 packed_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef packed_highp_dvec4 packed_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers.
 
-typedef vec< 1, bool, packed_highp > packed_highp_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_highp > packed_highp_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_highp > packed_highp_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_highp > packed_highp_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_highp > packed_highp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_highp > packed_highp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_highp > packed_highp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_highp > packed_highp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_highp > packed_highp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_highp > packed_highp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_highp > packed_highp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_highp > packed_highp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_highp > packed_highp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_highp > packed_highp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_highp > packed_highp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_highp > packed_highp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_highp > packed_highp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_highp > packed_highp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_highp > packed_highp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_highp > packed_highp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_highp > packed_highp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_highp > packed_highp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_highp > packed_highp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_highp > packed_highp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_highp > packed_highp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_highp > packed_highp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_highp > packed_highp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_highp > packed_highp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_highp > packed_highp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_highp > packed_highp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_highp > packed_highp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_highp > packed_highp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
-typedef packed_highp_ivec1 packed_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec2 packed_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec3 packed_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef packed_highp_ivec4 packed_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 1, bool, packed_lowp > packed_lowp_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_lowp > packed_lowp_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_lowp > packed_lowp_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_lowp > packed_lowp_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_lowp > packed_lowp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_lowp > packed_lowp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_lowp > packed_lowp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_lowp > packed_lowp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_lowp > packed_lowp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_lowp > packed_lowp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_lowp > packed_lowp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_lowp > packed_lowp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_lowp > packed_lowp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_lowp > packed_lowp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_lowp > packed_lowp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_lowp > packed_lowp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_lowp > packed_lowp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_lowp > packed_lowp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_lowp > packed_lowp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_lowp > packed_lowp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
-typedef packed_highp_mat2 packed_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x2 packed_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x3 packed_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat2x4 packed_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3 packed_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x2 packed_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x3 packed_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat3x4 packed_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4 packed_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x2 packed_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x3 packed_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_mat4x4 packed_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
-typedef vec< 1, bool, packed_mediump > packed_mediump_bvec1
 1 component vector tightly packed in memory of bool values.
 
-typedef vec< 2, bool, packed_mediump > packed_mediump_bvec2
 2 components vector tightly packed in memory of bool values.
 
-typedef vec< 3, bool, packed_mediump > packed_mediump_bvec3
 3 components vector tightly packed in memory of bool values.
 
-typedef vec< 4, bool, packed_mediump > packed_mediump_bvec4
 4 components vector tightly packed in memory of bool values.
 
-typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, double, packed_mediump > packed_mediump_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, double, packed_mediump > packed_mediump_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, double, packed_mediump > packed_mediump_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, double, packed_mediump > packed_mediump_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, int, packed_mediump > packed_mediump_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 2, int, packed_mediump > packed_mediump_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 3, int, packed_mediump > packed_mediump_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
-typedef vec< 4, int, packed_mediump > packed_mediump_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
-typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 1, uint, packed_mediump > packed_mediump_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 2, uint, packed_mediump > packed_mediump_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 3, uint, packed_mediump > packed_mediump_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 4, uint, packed_mediump > packed_mediump_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef vec< 1, float, packed_mediump > packed_mediump_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 2, float, packed_mediump > packed_mediump_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 3, float, packed_mediump > packed_mediump_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef vec< 4, float, packed_mediump > packed_mediump_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
-typedef packed_highp_uvec1 packed_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec2 packed_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec3 packed_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_uvec4 packed_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
-typedef packed_highp_vec1 packed_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec2 packed_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec3 packed_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers.
 
-typedef packed_highp_vec4 packed_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers.
 
-

Detailed Description

-

Include <glm/gtc/type_aligned.hpp> to use the features of this extension.

-

Aligned types allowing SIMD optimizations of vectors and matrices types

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_type_aligned + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_type_aligned
+
+
+ +

Include <glm/gtc/type_aligned.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef aligned_highp_bvec1 aligned_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec2 aligned_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec3 aligned_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef aligned_highp_bvec4 aligned_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef aligned_highp_dmat2 aligned_dmat2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x2 aligned_dmat2x2
 2 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x3 aligned_dmat2x3
 2 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat2x4 aligned_dmat2x4
 2 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3 aligned_dmat3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x2 aligned_dmat3x2
 3 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x3 aligned_dmat3x3
 3 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat3x4 aligned_dmat3x4
 3 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4 aligned_dmat4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x2 aligned_dmat4x2
 4 by 2 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x3 aligned_dmat4x3
 4 by 3 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dmat4x4 aligned_dmat4x4
 4 by 4 matrix tightly aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec1 aligned_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec2 aligned_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec3 aligned_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef aligned_highp_dvec4 aligned_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers.
 
+typedef vec< 1, bool, aligned_highp > aligned_highp_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_highp > aligned_highp_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_highp > aligned_highp_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_highp > aligned_highp_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_highp > aligned_highp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_highp > aligned_highp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_highp > aligned_highp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_highp > aligned_highp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_highp > aligned_highp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_highp > aligned_highp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_highp > aligned_highp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_highp > aligned_highp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_highp > aligned_highp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_highp > aligned_highp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_highp > aligned_highp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_highp > aligned_highp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_highp > aligned_highp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_highp > aligned_highp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_highp > aligned_highp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_highp > aligned_highp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_highp > aligned_highp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_highp > aligned_highp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_highp > aligned_highp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_highp > aligned_highp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_highp > aligned_highp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_highp > aligned_highp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_highp > aligned_highp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_highp > aligned_highp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_highp > aligned_highp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_highp > aligned_highp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_highp > aligned_highp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_highp > aligned_highp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_highp > aligned_highp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_highp > aligned_highp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_highp > aligned_highp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_highp > aligned_highp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_highp > aligned_highp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_highp > aligned_highp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef aligned_highp_ivec1 aligned_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec2 aligned_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec3 aligned_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef aligned_highp_ivec4 aligned_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 1, bool, aligned_lowp > aligned_lowp_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_lowp > aligned_lowp_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_lowp > aligned_lowp_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_lowp > aligned_lowp_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_lowp > aligned_lowp_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_lowp > aligned_lowp_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_lowp > aligned_lowp_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_lowp > aligned_lowp_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_lowp > aligned_lowp_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_lowp > aligned_lowp_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_lowp > aligned_lowp_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_lowp > aligned_lowp_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_lowp > aligned_lowp_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_lowp > aligned_lowp_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_lowp > aligned_lowp_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_lowp > aligned_lowp_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_lowp > aligned_lowp_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_lowp > aligned_lowp_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_lowp > aligned_lowp_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_lowp > aligned_lowp_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_lowp > aligned_lowp_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_lowp > aligned_lowp_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_lowp > aligned_lowp_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_lowp > aligned_lowp_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_lowp > aligned_lowp_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_lowp > aligned_lowp_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_lowp > aligned_lowp_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_lowp > aligned_lowp_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_lowp > aligned_lowp_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_lowp > aligned_lowp_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_lowp > aligned_lowp_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_lowp > aligned_lowp_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_lowp > aligned_lowp_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_lowp > aligned_lowp_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_lowp > aligned_lowp_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_lowp > aligned_lowp_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_lowp > aligned_lowp_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_lowp > aligned_lowp_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef aligned_highp_mat2 aligned_mat2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x2 aligned_mat2x2
 2 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x3 aligned_mat2x3
 2 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat2x4 aligned_mat2x4
 2 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3 aligned_mat3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x2 aligned_mat3x2
 3 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x3 aligned_mat3x3
 3 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat3x4 aligned_mat3x4
 3 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4 aligned_mat4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x2 aligned_mat4x2
 4 by 2 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x3 aligned_mat4x3
 4 by 3 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_mat4x4 aligned_mat4x4
 4 by 4 matrix tightly aligned in memory of single-precision floating-point numbers.
 
+typedef vec< 1, bool, aligned_mediump > aligned_mediump_bvec1
 1 component vector aligned in memory of bool values.
 
+typedef vec< 2, bool, aligned_mediump > aligned_mediump_bvec2
 2 components vector aligned in memory of bool values.
 
+typedef vec< 3, bool, aligned_mediump > aligned_mediump_bvec3
 3 components vector aligned in memory of bool values.
 
+typedef vec< 4, bool, aligned_mediump > aligned_mediump_bvec4
 4 components vector aligned in memory of bool values.
 
+typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, aligned_mediump > aligned_mediump_dmat2x2
 2 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, aligned_mediump > aligned_mediump_dmat2x3
 2 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, aligned_mediump > aligned_mediump_dmat2x4
 2 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, aligned_mediump > aligned_mediump_dmat3x2
 3 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, aligned_mediump > aligned_mediump_dmat3x3
 3 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, aligned_mediump > aligned_mediump_dmat3x4
 3 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, aligned_mediump > aligned_mediump_dmat4x2
 4 by 2 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, aligned_mediump > aligned_mediump_dmat4x3
 4 by 3 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, aligned_mediump > aligned_mediump_dmat4x4
 4 by 4 matrix aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, aligned_mediump > aligned_mediump_dvec1
 1 component vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, aligned_mediump > aligned_mediump_dvec2
 2 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, aligned_mediump > aligned_mediump_dvec3
 3 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, aligned_mediump > aligned_mediump_dvec4
 4 components vector aligned in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, aligned_mediump > aligned_mediump_ivec1
 1 component vector aligned in memory of signed integer numbers.
 
+typedef vec< 2, int, aligned_mediump > aligned_mediump_ivec2
 2 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 3, int, aligned_mediump > aligned_mediump_ivec3
 3 components vector aligned in memory of signed integer numbers.
 
+typedef vec< 4, int, aligned_mediump > aligned_mediump_ivec4
 4 components vector aligned in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, aligned_mediump > aligned_mediump_mat2x2
 2 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, aligned_mediump > aligned_mediump_mat2x3
 2 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, aligned_mediump > aligned_mediump_mat2x4
 2 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, aligned_mediump > aligned_mediump_mat3x2
 3 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, aligned_mediump > aligned_mediump_mat3x3
 3 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, aligned_mediump > aligned_mediump_mat3x4
 3 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, aligned_mediump > aligned_mediump_mat4x2
 4 by 2 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, aligned_mediump > aligned_mediump_mat4x3
 4 by 3 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, aligned_mediump > aligned_mediump_mat4x4
 4 by 4 matrix aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, aligned_mediump > aligned_mediump_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, aligned_mediump > aligned_mediump_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, aligned_mediump > aligned_mediump_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, aligned_mediump > aligned_mediump_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef vec< 1, float, aligned_mediump > aligned_mediump_vec1
 1 component vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, aligned_mediump > aligned_mediump_vec2
 2 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, aligned_mediump > aligned_mediump_vec3
 3 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, aligned_mediump > aligned_mediump_vec4
 4 components vector aligned in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef aligned_highp_uvec1 aligned_uvec1
 1 component vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec2 aligned_uvec2
 2 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec3 aligned_uvec3
 3 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_uvec4 aligned_uvec4
 4 components vector aligned in memory of unsigned integer numbers.
 
+typedef aligned_highp_vec1 aligned_vec1
 1 component vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec2 aligned_vec2
 2 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec3 aligned_vec3
 3 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef aligned_highp_vec4 aligned_vec4
 4 components vector aligned in memory of single-precision floating-point numbers.
 
+typedef packed_highp_bvec1 packed_bvec1
 1 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec2 packed_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec3 packed_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_bvec4 packed_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef packed_highp_dmat2 packed_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x2 packed_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x3 packed_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat2x4 packed_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3 packed_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x2 packed_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x3 packed_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat3x4 packed_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4 packed_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x2 packed_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x3 packed_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dmat4x4 packed_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec1 packed_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec2 packed_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec3 packed_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef packed_highp_dvec4 packed_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers.
 
+typedef vec< 1, bool, packed_highp > packed_highp_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_highp > packed_highp_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_highp > packed_highp_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_highp > packed_highp_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_highp > packed_highp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_highp > packed_highp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_highp > packed_highp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_highp > packed_highp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_highp > packed_highp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_highp > packed_highp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_highp > packed_highp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_highp > packed_highp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_highp > packed_highp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_highp > packed_highp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_highp > packed_highp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_highp > packed_highp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_highp > packed_highp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_highp > packed_highp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_highp > packed_highp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_highp > packed_highp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_highp > packed_highp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_highp > packed_highp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_highp > packed_highp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_highp > packed_highp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_highp > packed_highp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_highp > packed_highp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_highp > packed_highp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_highp > packed_highp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_highp > packed_highp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_highp > packed_highp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_highp > packed_highp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_highp > packed_highp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_highp > packed_highp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_highp > packed_highp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_highp > packed_highp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_highp > packed_highp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_highp > packed_highp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_highp > packed_highp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_highp > packed_highp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_highp > packed_highp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_highp > packed_highp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
 
+typedef packed_highp_ivec1 packed_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec2 packed_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec3 packed_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef packed_highp_ivec4 packed_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 1, bool, packed_lowp > packed_lowp_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_lowp > packed_lowp_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_lowp > packed_lowp_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_lowp > packed_lowp_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_lowp > packed_lowp_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_lowp > packed_lowp_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_lowp > packed_lowp_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_lowp > packed_lowp_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_lowp > packed_lowp_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_lowp > packed_lowp_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_lowp > packed_lowp_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_lowp > packed_lowp_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_lowp > packed_lowp_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_lowp > packed_lowp_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_lowp > packed_lowp_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_lowp > packed_lowp_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_lowp > packed_lowp_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_lowp > packed_lowp_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_lowp > packed_lowp_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_lowp > packed_lowp_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_lowp > packed_lowp_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_lowp > packed_lowp_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_lowp > packed_lowp_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_lowp > packed_lowp_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_lowp > packed_lowp_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_lowp > packed_lowp_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_lowp > packed_lowp_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_lowp > packed_lowp_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_lowp > packed_lowp_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_lowp > packed_lowp_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_lowp > packed_lowp_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_lowp > packed_lowp_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_lowp > packed_lowp_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_lowp > packed_lowp_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_lowp > packed_lowp_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_lowp > packed_lowp_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_lowp > packed_lowp_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_lowp > packed_lowp_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
 
+typedef packed_highp_mat2 packed_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x2 packed_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x3 packed_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat2x4 packed_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3 packed_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x2 packed_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x3 packed_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat3x4 packed_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4 packed_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x2 packed_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x3 packed_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_mat4x4 packed_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers.
 
+typedef vec< 1, bool, packed_mediump > packed_mediump_bvec1
 1 component vector tightly packed in memory of bool values.
 
+typedef vec< 2, bool, packed_mediump > packed_mediump_bvec2
 2 components vector tightly packed in memory of bool values.
 
+typedef vec< 3, bool, packed_mediump > packed_mediump_bvec3
 3 components vector tightly packed in memory of bool values.
 
+typedef vec< 4, bool, packed_mediump > packed_mediump_bvec4
 4 components vector tightly packed in memory of bool values.
 
+typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, double, packed_mediump > packed_mediump_dmat2x2
 2 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, double, packed_mediump > packed_mediump_dmat2x3
 2 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, double, packed_mediump > packed_mediump_dmat2x4
 2 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, double, packed_mediump > packed_mediump_dmat3x2
 3 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, double, packed_mediump > packed_mediump_dmat3x3
 3 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, double, packed_mediump > packed_mediump_dmat3x4
 3 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, double, packed_mediump > packed_mediump_dmat4x2
 4 by 2 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, double, packed_mediump > packed_mediump_dmat4x3
 4 by 3 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, double, packed_mediump > packed_mediump_dmat4x4
 4 by 4 matrix tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, double, packed_mediump > packed_mediump_dvec1
 1 component vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, double, packed_mediump > packed_mediump_dvec2
 2 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, double, packed_mediump > packed_mediump_dvec3
 3 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, double, packed_mediump > packed_mediump_dvec4
 4 components vector tightly packed in memory of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, int, packed_mediump > packed_mediump_ivec1
 1 component vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 2, int, packed_mediump > packed_mediump_ivec2
 2 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 3, int, packed_mediump > packed_mediump_ivec3
 3 components vector tightly packed in memory of signed integer numbers.
 
+typedef vec< 4, int, packed_mediump > packed_mediump_ivec4
 4 components vector tightly packed in memory of signed integer numbers.
 
+typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 2, float, packed_mediump > packed_mediump_mat2x2
 2 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 3, float, packed_mediump > packed_mediump_mat2x3
 2 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 2, 4, float, packed_mediump > packed_mediump_mat2x4
 2 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 2, float, packed_mediump > packed_mediump_mat3x2
 3 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 3, float, packed_mediump > packed_mediump_mat3x3
 3 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 3, 4, float, packed_mediump > packed_mediump_mat3x4
 3 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 2, float, packed_mediump > packed_mediump_mat4x2
 4 by 2 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 3, float, packed_mediump > packed_mediump_mat4x3
 4 by 3 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef mat< 4, 4, float, packed_mediump > packed_mediump_mat4x4
 4 by 4 matrix tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 1, uint, packed_mediump > packed_mediump_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 2, uint, packed_mediump > packed_mediump_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 3, uint, packed_mediump > packed_mediump_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 4, uint, packed_mediump > packed_mediump_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef vec< 1, float, packed_mediump > packed_mediump_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 2, float, packed_mediump > packed_mediump_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 3, float, packed_mediump > packed_mediump_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef vec< 4, float, packed_mediump > packed_mediump_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
 
+typedef packed_highp_uvec1 packed_uvec1
 1 component vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec2 packed_uvec2
 2 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec3 packed_uvec3
 3 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_uvec4 packed_uvec4
 4 components vector tightly packed in memory of unsigned integer numbers.
 
+typedef packed_highp_vec1 packed_vec1
 1 component vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec2 packed_vec2
 2 components vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec3 packed_vec3
 3 components vector tightly packed in memory of single-precision floating-point numbers.
 
+typedef packed_highp_vec4 packed_vec4
 4 components vector tightly packed in memory of single-precision floating-point numbers.
 
+

Detailed Description

+

Include <glm/gtc/type_aligned.hpp> to use the features of this extension.

+

Aligned types allowing SIMD optimizations of vectors and matrices types

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00304.html b/external/include/glm-0.9.9.8/doc/api/a00304.html index febd19ae1f..cd22f35802 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00304.html +++ b/external/include/glm-0.9.9.8/doc/api/a00304.html @@ -1,8955 +1,8955 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_type_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_type_precision
-
-
- -

Include <glm/gtc/type_precision.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef float f32
 Default 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, defaultp > f32mat2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, defaultp > f32mat2x2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, defaultp > f32mat2x3
 Single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, defaultp > f32mat2x4
 Single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > f32mat3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, defaultp > f32mat3x2
 Single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > f32mat3x3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, defaultp > f32mat3x4
 Single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > f32mat4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, defaultp > f32mat4x2
 Single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, defaultp > f32mat4x3
 Single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > f32mat4x4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, defaultp > f32quat
 Single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, defaultp > f32vec1
 Single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, defaultp > f32vec2
 Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, defaultp > f32vec3
 Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, defaultp > f32vec4
 Single-qualifier floating-point vector of 4 components. More...
 
typedef double f64
 Default 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, defaultp > f64mat2
 Double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, defaultp > f64mat2x2
 Double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, defaultp > f64mat2x3
 Double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, defaultp > f64mat2x4
 Double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, defaultp > f64mat3
 Double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, defaultp > f64mat3x2
 Double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, defaultp > f64mat3x3
 Double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, defaultp > f64mat3x4
 Double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, defaultp > f64mat4
 Double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, defaultp > f64mat4x2
 Double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, defaultp > f64mat4x3
 Double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, defaultp > f64mat4x4
 Double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, defaultp > f64quat
 Double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, defaultp > f64vec1
 Double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, defaultp > f64vec2
 Double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, defaultp > f64vec3
 Double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, defaultp > f64vec4
 Double-qualifier floating-point vector of 4 components. More...
 
typedef float float32
 Single-qualifier floating-point scalar. More...
 
typedef float float32_t
 Default 32 bit single-qualifier floating-point scalar. More...
 
typedef double float64
 Double-qualifier floating-point scalar. More...
 
typedef double float64_t
 Default 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, defaultp > fmat2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, defaultp > fmat2x2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, defaultp > fmat2x3
 Single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, defaultp > fmat2x4
 Single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > fmat3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, defaultp > fmat3x2
 Single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > fmat3x3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, defaultp > fmat3x4
 Single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > fmat4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, defaultp > fmat4x2
 Single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, defaultp > fmat4x3
 Single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > fmat4x4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, f32, defaultp > fvec1
 Single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, defaultp > fvec2
 Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, defaultp > fvec3
 Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, defaultp > fvec4
 Single-qualifier floating-point vector of 4 components. More...
 
typedef float highp_f32
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, highp > highp_f32mat2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, highp > highp_f32mat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, highp > highp_f32mat2x3
 High single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, highp > highp_f32mat2x4
 High single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_f32mat3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, highp > highp_f32mat3x2
 High single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_f32mat3x3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, highp > highp_f32mat3x4
 High single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_f32mat4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, highp > highp_f32mat4x2
 High single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, highp > highp_f32mat4x3
 High single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_f32mat4x4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, highp > highp_f32quat
 High single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, highp > highp_f32vec1
 High single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, highp > highp_f32vec2
 High single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, highp > highp_f32vec3
 High single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, highp > highp_f32vec4
 High single-qualifier floating-point vector of 4 components. More...
 
typedef double highp_f64
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, highp > highp_f64mat2
 High double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, highp > highp_f64mat2x2
 High double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, highp > highp_f64mat2x3
 High double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, highp > highp_f64mat2x4
 High double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, highp > highp_f64mat3
 High double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, highp > highp_f64mat3x2
 High double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, highp > highp_f64mat3x3
 High double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, highp > highp_f64mat3x4
 High double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, highp > highp_f64mat4
 High double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, highp > highp_f64mat4x2
 High double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, highp > highp_f64mat4x3
 High double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, highp > highp_f64mat4x4
 High double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, highp > highp_f64quat
 High double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, highp > highp_f64vec1
 High double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, highp > highp_f64vec2
 High double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, highp > highp_f64vec3
 High double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, highp > highp_f64vec4
 High double-qualifier floating-point vector of 4 components. More...
 
typedef float highp_float32
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef float highp_float32_t
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef double highp_float64
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef double highp_float64_t
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, highp > highp_fmat2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, highp > highp_fmat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, highp > highp_fmat2x3
 High single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, highp > highp_fmat2x4
 High single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_fmat3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, highp > highp_fmat3x2
 High single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_fmat3x3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, highp > highp_fmat3x4
 High single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_fmat4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, highp > highp_fmat4x2
 High single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, highp > highp_fmat4x3
 High single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_fmat4x4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, highp > highp_fvec1
 High single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, highp > highp_fvec2
 High Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, highp > highp_fvec3
 High Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, highp > highp_fvec4
 High Single-qualifier floating-point vector of 4 components. More...
 
typedef int16 highp_i16
 High qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, highp > highp_i16vec1
 High qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, highp > highp_i16vec2
 High qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, highp > highp_i16vec3
 High qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, highp > highp_i16vec4
 High qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 highp_i32
 High qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, highp > highp_i32vec1
 High qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, highp > highp_i32vec2
 High qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, highp > highp_i32vec3
 High qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, highp > highp_i32vec4
 High qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 highp_i64
 High qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, highp > highp_i64vec1
 High qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, highp > highp_i64vec2
 High qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, highp > highp_i64vec3
 High qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, highp > highp_i64vec4
 High qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 highp_i8
 High qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, highp > highp_i8vec1
 High qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, highp > highp_i8vec2
 High qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, highp > highp_i8vec3
 High qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, highp > highp_i8vec4
 High qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 highp_int16
 High qualifier 16 bit signed integer type. More...
 
typedef int16 highp_int16_t
 High qualifier 16 bit signed integer type. More...
 
typedef int32 highp_int32
 High qualifier 32 bit signed integer type. More...
 
typedef int32 highp_int32_t
 32 bit signed integer type. More...
 
typedef int64 highp_int64
 High qualifier 64 bit signed integer type. More...
 
typedef int64 highp_int64_t
 High qualifier 64 bit signed integer type. More...
 
typedef int8 highp_int8
 High qualifier 8 bit signed integer type. More...
 
typedef int8 highp_int8_t
 High qualifier 8 bit signed integer type. More...
 
typedef uint16 highp_u16
 High qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, highp > highp_u16vec1
 High qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, highp > highp_u16vec2
 High qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, highp > highp_u16vec3
 High qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, highp > highp_u16vec4
 High qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 highp_u32
 High qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, highp > highp_u32vec1
 High qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, highp > highp_u32vec2
 High qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, highp > highp_u32vec3
 High qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, highp > highp_u32vec4
 High qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 highp_u64
 High qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, highp > highp_u64vec1
 High qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, highp > highp_u64vec2
 High qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, highp > highp_u64vec3
 High qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, highp > highp_u64vec4
 High qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 highp_u8
 High qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, highp > highp_u8vec1
 High qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, highp > highp_u8vec2
 High qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, highp > highp_u8vec3
 High qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, highp > highp_u8vec4
 High qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 highp_uint16
 High qualifier 16 bit unsigned integer type. More...
 
typedef uint16 highp_uint16_t
 High qualifier 16 bit unsigned integer type. More...
 
typedef uint32 highp_uint32
 High qualifier 32 bit unsigned integer type. More...
 
typedef uint32 highp_uint32_t
 High qualifier 32 bit unsigned integer type. More...
 
typedef uint64 highp_uint64
 High qualifier 64 bit unsigned integer type. More...
 
typedef uint64 highp_uint64_t
 High qualifier 64 bit unsigned integer type. More...
 
typedef uint8 highp_uint8
 High qualifier 8 bit unsigned integer type. More...
 
typedef uint8 highp_uint8_t
 High qualifier 8 bit unsigned integer type. More...
 
typedef int16 i16
 16 bit signed integer type. More...
 
typedef vec< 1, i16, defaultp > i16vec1
 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, defaultp > i16vec2
 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, defaultp > i16vec3
 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, defaultp > i16vec4
 16 bit signed integer vector of 4 components type. More...
 
typedef int32 i32
 32 bit signed integer type. More...
 
typedef vec< 1, i32, defaultp > i32vec1
 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, defaultp > i32vec2
 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, defaultp > i32vec3
 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, defaultp > i32vec4
 32 bit signed integer vector of 4 components type. More...
 
typedef int64 i64
 64 bit signed integer type. More...
 
typedef vec< 1, i64, defaultp > i64vec1
 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, defaultp > i64vec2
 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, defaultp > i64vec3
 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, defaultp > i64vec4
 64 bit signed integer vector of 4 components type. More...
 
typedef int8 i8
 8 bit signed integer type. More...
 
typedef vec< 1, i8, defaultp > i8vec1
 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, defaultp > i8vec2
 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, defaultp > i8vec3
 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, defaultp > i8vec4
 8 bit signed integer vector of 4 components type. More...
 
typedef int16 int16_t
 16 bit signed integer type. More...
 
typedef int32 int32_t
 32 bit signed integer type. More...
 
typedef int64 int64_t
 64 bit signed integer type. More...
 
typedef int8 int8_t
 8 bit signed integer type. More...
 
typedef float lowp_f32
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, lowp > lowp_f32mat2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, lowp > lowp_f32mat2x2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, lowp > lowp_f32mat2x3
 Low single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, lowp > lowp_f32mat2x4
 Low single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_f32mat3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, lowp > lowp_f32mat3x2
 Low single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_f32mat3x3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, lowp > lowp_f32mat3x4
 Low single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_f32mat4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, lowp > lowp_f32mat4x2
 Low single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, lowp > lowp_f32mat4x3
 Low single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_f32mat4x4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, lowp > lowp_f32quat
 Low single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, lowp > lowp_f32vec1
 Low single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, lowp > lowp_f32vec2
 Low single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, lowp > lowp_f32vec3
 Low single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, lowp > lowp_f32vec4
 Low single-qualifier floating-point vector of 4 components. More...
 
typedef double lowp_f64
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, lowp > lowp_f64mat2
 Low double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, lowp > lowp_f64mat2x2
 Low double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, lowp > lowp_f64mat2x3
 Low double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, lowp > lowp_f64mat2x4
 Low double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, lowp > lowp_f64mat3
 Low double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, lowp > lowp_f64mat3x2
 Low double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, lowp > lowp_f64mat3x3
 Low double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, lowp > lowp_f64mat3x4
 Low double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, lowp > lowp_f64mat4
 Low double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, lowp > lowp_f64mat4x2
 Low double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, lowp > lowp_f64mat4x3
 Low double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, lowp > lowp_f64mat4x4
 Low double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, lowp > lowp_f64quat
 Low double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, lowp > lowp_f64vec1
 Low double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, lowp > lowp_f64vec2
 Low double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, lowp > lowp_f64vec3
 Low double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, lowp > lowp_f64vec4
 Low double-qualifier floating-point vector of 4 components. More...
 
typedef float lowp_float32
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef float lowp_float32_t
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef double lowp_float64
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef double lowp_float64_t
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, lowp > lowp_fmat2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, lowp > lowp_fmat2x2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, lowp > lowp_fmat2x3
 Low single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, lowp > lowp_fmat2x4
 Low single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_fmat3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, lowp > lowp_fmat3x2
 Low single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_fmat3x3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, lowp > lowp_fmat3x4
 Low single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_fmat4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, lowp > lowp_fmat4x2
 Low single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, lowp > lowp_fmat4x3
 Low single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_fmat4x4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, lowp > lowp_fvec1
 Low single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, lowp > lowp_fvec2
 Low single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, lowp > lowp_fvec3
 Low single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, lowp > lowp_fvec4
 Low single-qualifier floating-point vector of 4 components. More...
 
typedef int16 lowp_i16
 Low qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, lowp > lowp_i16vec1
 Low qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, lowp > lowp_i16vec2
 Low qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, lowp > lowp_i16vec3
 Low qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, lowp > lowp_i16vec4
 Low qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 lowp_i32
 Low qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, lowp > lowp_i32vec1
 Low qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, lowp > lowp_i32vec2
 Low qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, lowp > lowp_i32vec3
 Low qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, lowp > lowp_i32vec4
 Low qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 lowp_i64
 Low qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, lowp > lowp_i64vec1
 Low qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, lowp > lowp_i64vec2
 Low qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, lowp > lowp_i64vec3
 Low qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, lowp > lowp_i64vec4
 Low qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 lowp_i8
 Low qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, lowp > lowp_i8vec1
 Low qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, lowp > lowp_i8vec2
 Low qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, lowp > lowp_i8vec3
 Low qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, lowp > lowp_i8vec4
 Low qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 lowp_int16
 Low qualifier 16 bit signed integer type. More...
 
typedef int16 lowp_int16_t
 Low qualifier 16 bit signed integer type. More...
 
typedef int32 lowp_int32
 Low qualifier 32 bit signed integer type. More...
 
typedef int32 lowp_int32_t
 Low qualifier 32 bit signed integer type. More...
 
typedef int64 lowp_int64
 Low qualifier 64 bit signed integer type. More...
 
typedef int64 lowp_int64_t
 Low qualifier 64 bit signed integer type. More...
 
typedef int8 lowp_int8
 Low qualifier 8 bit signed integer type. More...
 
typedef int8 lowp_int8_t
 Low qualifier 8 bit signed integer type. More...
 
typedef uint16 lowp_u16
 Low qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, lowp > lowp_u16vec1
 Low qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, lowp > lowp_u16vec2
 Low qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, lowp > lowp_u16vec3
 Low qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, lowp > lowp_u16vec4
 Low qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 lowp_u32
 Low qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, lowp > lowp_u32vec1
 Low qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, lowp > lowp_u32vec2
 Low qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, lowp > lowp_u32vec3
 Low qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, lowp > lowp_u32vec4
 Low qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 lowp_u64
 Low qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, lowp > lowp_u64vec1
 Low qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, lowp > lowp_u64vec2
 Low qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, lowp > lowp_u64vec3
 Low qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, lowp > lowp_u64vec4
 Low qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 lowp_u8
 Low qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, lowp > lowp_u8vec1
 Low qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, lowp > lowp_u8vec2
 Low qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, lowp > lowp_u8vec3
 Low qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, lowp > lowp_u8vec4
 Low qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 lowp_uint16
 Low qualifier 16 bit unsigned integer type. More...
 
typedef uint16 lowp_uint16_t
 Low qualifier 16 bit unsigned integer type. More...
 
typedef uint32 lowp_uint32
 Low qualifier 32 bit unsigned integer type. More...
 
typedef uint32 lowp_uint32_t
 Low qualifier 32 bit unsigned integer type. More...
 
typedef uint64 lowp_uint64
 Low qualifier 64 bit unsigned integer type. More...
 
typedef uint64 lowp_uint64_t
 Low qualifier 64 bit unsigned integer type. More...
 
typedef uint8 lowp_uint8
 Low qualifier 8 bit unsigned integer type. More...
 
typedef uint8 lowp_uint8_t
 Low qualifier 8 bit unsigned integer type. More...
 
typedef float mediump_f32
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, mediump > mediump_f32mat2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, mediump > mediump_f32mat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, mediump > mediump_f32mat2x3
 Medium single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, mediump > mediump_f32mat2x4
 Medium single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_f32mat3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, mediump > mediump_f32mat3x2
 Medium single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_f32mat3x3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, mediump > mediump_f32mat3x4
 Medium single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_f32mat4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, mediump > mediump_f32mat4x2
 Medium single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, mediump > mediump_f32mat4x3
 Medium single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_f32mat4x4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, mediump > mediump_f32quat
 Medium single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, mediump > mediump_f32vec1
 Medium single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, mediump > mediump_f32vec2
 Medium single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, mediump > mediump_f32vec3
 Medium single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, mediump > mediump_f32vec4
 Medium single-qualifier floating-point vector of 4 components. More...
 
typedef double mediump_f64
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, mediump > mediump_f64mat2
 Medium double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, mediump > mediump_f64mat2x2
 Medium double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, mediump > mediump_f64mat2x3
 Medium double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, mediump > mediump_f64mat2x4
 Medium double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, mediump > mediump_f64mat3
 Medium double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, mediump > mediump_f64mat3x2
 Medium double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, mediump > mediump_f64mat3x3
 Medium double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, mediump > mediump_f64mat3x4
 Medium double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, mediump > mediump_f64mat4
 Medium double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, mediump > mediump_f64mat4x2
 Medium double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, mediump > mediump_f64mat4x3
 Medium double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, mediump > mediump_f64mat4x4
 Medium double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, mediump > mediump_f64quat
 Medium double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, mediump > mediump_f64vec1
 Medium double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, mediump > mediump_f64vec2
 Medium double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, mediump > mediump_f64vec3
 Medium double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, mediump > mediump_f64vec4
 Medium double-qualifier floating-point vector of 4 components. More...
 
typedef float mediump_float32
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef float mediump_float32_t
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef double mediump_float64
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef double mediump_float64_t
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, mediump > mediump_fmat2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, mediump > mediump_fmat2x2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, mediump > mediump_fmat2x3
 Medium single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, mediump > mediump_fmat2x4
 Medium single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_fmat3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, mediump > mediump_fmat3x2
 Medium single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_fmat3x3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, mediump > mediump_fmat3x4
 Medium single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_fmat4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, mediump > mediump_fmat4x2
 Medium single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, mediump > mediump_fmat4x3
 Medium single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_fmat4x4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, mediump > mediump_fvec1
 Medium single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, mediump > mediump_fvec2
 Medium Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, mediump > mediump_fvec3
 Medium Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, mediump > mediump_fvec4
 Medium Single-qualifier floating-point vector of 4 components. More...
 
typedef int16 mediump_i16
 Medium qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, mediump > mediump_i16vec1
 Medium qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, mediump > mediump_i16vec2
 Medium qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, mediump > mediump_i16vec3
 Medium qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, mediump > mediump_i16vec4
 Medium qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 mediump_i32
 Medium qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, mediump > mediump_i32vec1
 Medium qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, mediump > mediump_i32vec2
 Medium qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, mediump > mediump_i32vec3
 Medium qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, mediump > mediump_i32vec4
 Medium qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 mediump_i64
 Medium qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, mediump > mediump_i64vec1
 Medium qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, mediump > mediump_i64vec2
 Medium qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, mediump > mediump_i64vec3
 Medium qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, mediump > mediump_i64vec4
 Medium qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 mediump_i8
 Medium qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, mediump > mediump_i8vec1
 Medium qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, mediump > mediump_i8vec2
 Medium qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, mediump > mediump_i8vec3
 Medium qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, mediump > mediump_i8vec4
 Medium qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 mediump_int16
 Medium qualifier 16 bit signed integer type. More...
 
typedef int16 mediump_int16_t
 Medium qualifier 16 bit signed integer type. More...
 
typedef int32 mediump_int32
 Medium qualifier 32 bit signed integer type. More...
 
typedef int32 mediump_int32_t
 Medium qualifier 32 bit signed integer type. More...
 
typedef int64 mediump_int64
 Medium qualifier 64 bit signed integer type. More...
 
typedef int64 mediump_int64_t
 Medium qualifier 64 bit signed integer type. More...
 
typedef int8 mediump_int8
 Medium qualifier 8 bit signed integer type. More...
 
typedef int8 mediump_int8_t
 Medium qualifier 8 bit signed integer type. More...
 
typedef uint16 mediump_u16
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, mediump > mediump_u16vec1
 Medium qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, mediump > mediump_u16vec2
 Medium qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, mediump > mediump_u16vec3
 Medium qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, mediump > mediump_u16vec4
 Medium qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 mediump_u32
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, mediump > mediump_u32vec1
 Medium qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, mediump > mediump_u32vec2
 Medium qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, mediump > mediump_u32vec3
 Medium qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, mediump > mediump_u32vec4
 Medium qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 mediump_u64
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, mediump > mediump_u64vec1
 Medium qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, mediump > mediump_u64vec2
 Medium qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, mediump > mediump_u64vec3
 Medium qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, mediump > mediump_u64vec4
 Medium qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 mediump_u8
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, mediump > mediump_u8vec1
 Medium qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, mediump > mediump_u8vec2
 Medium qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, mediump > mediump_u8vec3
 Medium qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, mediump > mediump_u8vec4
 Medium qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 mediump_uint16
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef uint16 mediump_uint16_t
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef uint32 mediump_uint32
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef uint32 mediump_uint32_t
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef uint64 mediump_uint64
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef uint64 mediump_uint64_t
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef uint8 mediump_uint8
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef uint8 mediump_uint8_t
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef uint16 u16
 Default qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, defaultp > u16vec1
 Default qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, defaultp > u16vec2
 Default qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, defaultp > u16vec3
 Default qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, defaultp > u16vec4
 Default qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 u32
 Default qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, defaultp > u32vec1
 Default qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, defaultp > u32vec2
 Default qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, defaultp > u32vec3
 Default qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, defaultp > u32vec4
 Default qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 u64
 Default qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, defaultp > u64vec1
 Default qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, defaultp > u64vec2
 Default qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, defaultp > u64vec3
 Default qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, defaultp > u64vec4
 Default qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 u8
 Default qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, defaultp > u8vec1
 Default qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, defaultp > u8vec2
 Default qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, defaultp > u8vec3
 Default qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, defaultp > u8vec4
 Default qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 uint16_t
 Default qualifier 16 bit unsigned integer type. More...
 
typedef uint32 uint32_t
 Default qualifier 32 bit unsigned integer type. More...
 
typedef uint64 uint64_t
 Default qualifier 64 bit unsigned integer type. More...
 
typedef uint8 uint8_t
 Default qualifier 8 bit unsigned integer type. More...
 
-

Detailed Description

-

Include <glm/gtc/type_precision.hpp> to use the features of this extension.

-

Defines specific C++-based qualifier types.

-

Typedef Documentation

- -
-
- - - - -
typedef float32 f32
-
- -

Default 32 bit single-qualifier floating-point scalar.

-

32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 150 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > f32mat2
-
- -

Single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 552 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > f32mat2x2
-
- -

Single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 700 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, defaultp > f32mat2x3
-
- -

Single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 703 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, defaultp > f32mat2x4
-
- -

Single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 706 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > f32mat3
-
- -

Single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 553 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, defaultp > f32mat3x2
-
- -

Single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 701 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > f32mat3x3
-
- -

Single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 704 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, defaultp > f32mat3x4
-
- -

Single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 707 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > f32mat4
-
- -

Single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 554 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, defaultp > f32mat4x2
-
- -

Single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 702 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, defaultp > f32mat4x3
-
- -

Single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 705 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > f32mat4x4
-
- -

Single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 708 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f32, defaultp > f32quat
-
- -

Single-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 805 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f32, defaultp > f32vec1
-
- -

Single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 461 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f32, defaultp > f32vec2
-
- -

Single-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 462 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f32, defaultp > f32vec3
-
- -

Single-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 463 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f32, defaultp > f32vec4
-
- -

Single-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 464 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 f64
-
- -

Default 64 bit double-qualifier floating-point scalar.

-

64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 166 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, defaultp > f64mat2
-
- -

Double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 584 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, defaultp > f64mat2x2
-
- -

Double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 780 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f64, defaultp > f64mat2x3
-
- -

Double-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 783 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f64, defaultp > f64mat2x4
-
- -

Double-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 786 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, defaultp > f64mat3
-
- -

Double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 585 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f64, defaultp > f64mat3x2
-
- -

Double-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 781 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, defaultp > f64mat3x3
-
- -

Double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 784 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f64, defaultp > f64mat3x4
-
- -

Double-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 787 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, defaultp > f64mat4
-
- -

Double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 586 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f64, defaultp > f64mat4x2
-
- -

Double-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 782 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f64, defaultp > f64mat4x3
-
- -

Double-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 785 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, defaultp > f64mat4x4
-
- -

Double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 788 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f64, defaultp > f64quat
-
- -

Double-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 815 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f64, defaultp > f64vec1
-
- -

Double-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 501 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, defaultp > f64vec2
-
- -

Double-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 502 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, defaultp > f64vec3
-
- -

Double-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 503 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, defaultp > f64vec4
-
- -

Double-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 504 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float float32
-
- -

Single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 155 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 float32_t
-
- -

Default 32 bit single-qualifier floating-point scalar.

-

32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 160 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef double float64
-
- -

Double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 171 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 float64_t
-
- -

Default 64 bit double-qualifier floating-point scalar.

-

64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 176 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > fmat2
-
- -

Single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 536 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, defaultp > fmat2x2
-
- -

Single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 660 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, defaultp > fmat2x3
-
- -

Single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 663 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, defaultp > fmat2x4
-
- -

Single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 666 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > fmat3
-
- -

Single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 537 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, defaultp > fmat3x2
-
- -

Single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 661 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, defaultp > fmat3x3
-
- -

Single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 664 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, defaultp > fmat3x4
-
- -

Single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 667 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > fmat4
-
- -

Single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 538 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, defaultp > fmat4x2
-
- -

Single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 662 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, defaultp > fmat4x3
-
- -

Single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 665 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, defaultp > fmat4x4
-
- -

Single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 668 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, float, defaultp > fvec1
-
- -

Single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 441 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, defaultp > fvec2
-
- -

Single-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 442 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, defaultp > fvec3
-
- -

Single-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 443 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, defaultp > fvec4
-
- -

Single-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 444 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 highp_f32
-
- -

High 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 149 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat2x2 highp_f32mat2
-
- -

High single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 548 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, highp > highp_f32mat2x2
-
- -

High single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 690 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, highp > highp_f32mat2x3
-
- -

High single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 691 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, highp > highp_f32mat2x4
-
- -

High single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 692 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat3x3 highp_f32mat3
-
- -

High single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 549 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, highp > highp_f32mat3x2
-
- -

High single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 693 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, highp > highp_f32mat3x3
-
- -

High single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 694 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, highp > highp_f32mat3x4
-
- -

High single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 695 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f32mat4x4 highp_f32mat4
-
- -

High single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 550 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, highp > highp_f32mat4x2
-
- -

High single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 696 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, highp > highp_f32mat4x3
-
- -

High single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 697 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, highp > highp_f32mat4x4
-
- -

High single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 698 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f32, highp > highp_f32quat
-
- -

High single-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 804 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f32, highp > highp_f32vec1
-
- -

High single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 456 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f32, highp > highp_f32vec2
-
- -

High single-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 457 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f32, highp > highp_f32vec3
-
- -

High single-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 458 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f32, highp > highp_f32vec4
-
- -

High single-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 459 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 highp_f64
-
- -

High 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 165 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat2x2 highp_f64mat2
-
- -

High double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 580 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, highp > highp_f64mat2x2
-
- -

High double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 770 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f64, highp > highp_f64mat2x3
-
- -

High double-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 771 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f64, highp > highp_f64mat2x4
-
- -

High double-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 772 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat3x3 highp_f64mat3
-
- -

High double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 581 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f64, highp > highp_f64mat3x2
-
- -

High double-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 773 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, highp > highp_f64mat3x3
-
- -

High double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 774 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f64, highp > highp_f64mat3x4
-
- -

High double-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 775 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_f64mat4x4 highp_f64mat4
-
- -

High double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 582 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f64, highp > highp_f64mat4x2
-
- -

High double-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 776 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f64, highp > highp_f64mat4x3
-
- -

High double-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 777 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, highp > highp_f64mat4x4
-
- -

High double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 778 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f64, highp > highp_f64quat
-
- -

High double-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 814 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f64, highp > highp_f64vec1
-
- -

High double-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 496 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, highp > highp_f64vec2
-
- -

High double-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 497 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, highp > highp_f64vec3
-
- -

High double-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 498 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, highp > highp_f64vec4
-
- -

High double-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 499 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 highp_float32
-
- -

High 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 154 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 highp_float32_t
-
- -

High 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 159 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 highp_float64
-
- -

High 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 170 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 highp_float64_t
-
- -

High 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 175 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat2x2 highp_fmat2
-
- -

High single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 532 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, highp > highp_fmat2x2
-
- -

High single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 650 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, highp > highp_fmat2x3
-
- -

High single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 651 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, highp > highp_fmat2x4
-
- -

High single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 652 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat3x3 highp_fmat3
-
- -

High single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 533 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, highp > highp_fmat3x2
-
- -

High single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 653 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, highp > highp_fmat3x3
-
- -

High single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 654 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, highp > highp_fmat3x4
-
- -

High single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 655 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef highp_fmat4x4 highp_fmat4
-
- -

High single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 534 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, highp > highp_fmat4x2
-
- -

High single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 656 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, highp > highp_fmat4x3
-
- -

High single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 657 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, highp > highp_fmat4x4
-
- -

High single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 658 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, float, highp > highp_fvec1
-
- -

High single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 436 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, highp > highp_fvec2
-
- -

High Single-qualifier floating-point vector of 2 components.

-
See also
core_precision
- -

Definition at line 437 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, highp > highp_fvec3
-
- -

High Single-qualifier floating-point vector of 3 components.

-
See also
core_precision
- -

Definition at line 438 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, highp > highp_fvec4
-
- -

High Single-qualifier floating-point vector of 4 components.

-
See also
core_precision
- -

Definition at line 439 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_i16
-
- -

High qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 47 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i16, highp > highp_i16vec1
-
- -

High qualifier 16 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 252 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i16, highp > highp_i16vec2
-
- -

High qualifier 16 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 253 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i16, highp > highp_i16vec3
-
- -

High qualifier 16 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 254 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i16, highp > highp_i16vec4
-
- -

High qualifier 16 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 255 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_i32
-
- -

High qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 61 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i32, highp > highp_i32vec1
-
- -

High qualifier 32 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 272 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, highp > highp_i32vec2
-
- -

High qualifier 32 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 273 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, highp > highp_i32vec3
-
- -

High qualifier 32 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 274 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, highp > highp_i32vec4
-
- -

High qualifier 32 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 275 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_i64
-
- -

High qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 75 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i64, highp > highp_i64vec1
-
- -

High qualifier 64 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 292 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i64, highp > highp_i64vec2
-
- -

High qualifier 64 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 293 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i64, highp > highp_i64vec3
-
- -

High qualifier 64 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 294 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i64, highp > highp_i64vec4
-
- -

High qualifier 64 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 295 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_i8
-
- -

High qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 33 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i8, highp > highp_i8vec1
-
- -

High qualifier 8 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 232 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i8, highp > highp_i8vec2
-
- -

High qualifier 8 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 233 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i8, highp > highp_i8vec3
-
- -

High qualifier 8 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 234 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i8, highp > highp_i8vec4
-
- -

High qualifier 8 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 235 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16
-
- -

High qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 52 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 highp_int16_t
-
- -

High qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 56 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32
-
- -

High qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 66 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 highp_int32_t
-
- -

32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 70 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64
-
- -

High qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 80 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 highp_int64_t
-
- -

High qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 84 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8
-
- -

High qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 38 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 highp_int8_t
-
- -

High qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 42 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_u16
-
- -

High qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 105 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u16, highp > highp_u16vec1
-
- -

High qualifier 16 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 354 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u16, highp > highp_u16vec2
-
- -

High qualifier 16 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 355 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u16, highp > highp_u16vec3
-
- -

High qualifier 16 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 356 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u16, highp > highp_u16vec4
-
- -

High qualifier 16 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 357 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_u32
-
- -

High qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 119 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, highp > highp_u32vec1
-
- -

High qualifier 32 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 374 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, highp > highp_u32vec2
-
- -

High qualifier 32 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 375 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, highp > highp_u32vec3
-
- -

High qualifier 32 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 376 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, highp > highp_u32vec4
-
- -

High qualifier 32 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 377 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_u64
-
- -

High qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 133 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u64, highp > highp_u64vec1
-
- -

High qualifier 64 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 394 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u64, highp > highp_u64vec2
-
- -

High qualifier 64 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 395 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u64, highp > highp_u64vec3
-
- -

High qualifier 64 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 396 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u64, highp > highp_u64vec4
-
- -

High qualifier 64 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 397 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_u8
-
- -

High qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 91 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u8, highp > highp_u8vec1
-
- -

High qualifier 8 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 334 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u8, highp > highp_u8vec2
-
- -

High qualifier 8 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 335 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u8, highp > highp_u8vec3
-
- -

High qualifier 8 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 336 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u8, highp > highp_u8vec4
-
- -

High qualifier 8 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 337 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16
-
- -

High qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 110 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 highp_uint16_t
-
- -

High qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 114 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32
-
- -

High qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 124 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 highp_uint32_t
-
- -

High qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 128 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64
-
- -

High qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 138 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 highp_uint64_t
-
- -

High qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 142 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8
-
- -

High qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 96 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 highp_uint8_t
-
- -

High qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 100 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 i16
-
- -

16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 48 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i16, defaultp > i16vec1
-
- -

16 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 257 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i16, defaultp > i16vec2
-
- -

16 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 258 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i16, defaultp > i16vec3
-
- -

16 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 259 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i16, defaultp > i16vec4
-
- -

16 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 260 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 i32
-
- -

32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 62 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i32, defaultp > i32vec1
-
- -

32 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 277 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, defaultp > i32vec2
-
- -

32 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 278 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, defaultp > i32vec3
-
- -

32 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 279 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, defaultp > i32vec4
-
- -

32 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 280 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 i64
-
- -

64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 76 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i64, defaultp > i64vec1
-
- -

64 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 297 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i64, defaultp > i64vec2
-
- -

64 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 298 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i64, defaultp > i64vec3
-
- -

64 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 299 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i64, defaultp > i64vec4
-
- -

64 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 300 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 i8
-
- -

8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 34 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i8, defaultp > i8vec1
-
- -

8 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 237 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i8, defaultp > i8vec2
-
- -

8 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 238 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i8, defaultp > i8vec3
-
- -

8 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 239 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i8, defaultp > i8vec4
-
- -

8 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 240 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 int16_t
-
- -

16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 57 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 int32_t
-
- -

32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 71 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 int64_t
-
- -

64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 85 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 int8_t
-
- -

8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 43 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 lowp_f32
-
- -

Low 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 147 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat2x2 lowp_f32mat2
-
- -

Low single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 540 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, lowp > lowp_f32mat2x2
-
- -

Low single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 670 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, lowp > lowp_f32mat2x3
-
- -

Low single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 671 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, lowp > lowp_f32mat2x4
-
- -

Low single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 672 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat3x3 lowp_f32mat3
-
- -

Low single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 541 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, lowp > lowp_f32mat3x2
-
- -

Low single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 673 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, lowp > lowp_f32mat3x3
-
- -

Low single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 674 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, lowp > lowp_f32mat3x4
-
- -

Low single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 675 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f32mat4x4 lowp_f32mat4
-
- -

Low single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 542 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, lowp > lowp_f32mat4x2
-
- -

Low single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 676 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, lowp > lowp_f32mat4x3
-
- -

Low single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 677 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, lowp > lowp_f32mat4x4
-
- -

Low single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 678 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f32, lowp > lowp_f32quat
-
- -

Low single-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 802 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f32, lowp > lowp_f32vec1
-
- -

Low single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 446 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f32, lowp > lowp_f32vec2
-
- -

Low single-qualifier floating-point vector of 2 components.

-
See also
core_precision
- -

Definition at line 447 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f32, lowp > lowp_f32vec3
-
- -

Low single-qualifier floating-point vector of 3 components.

-
See also
core_precision
- -

Definition at line 448 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f32, lowp > lowp_f32vec4
-
- -

Low single-qualifier floating-point vector of 4 components.

-
See also
core_precision
- -

Definition at line 449 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 lowp_f64
-
- -

Low 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 163 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat2x2 lowp_f64mat2
-
- -

Low double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 572 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, lowp > lowp_f64mat2x2
-
- -

Low double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 750 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f64, lowp > lowp_f64mat2x3
-
- -

Low double-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 751 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f64, lowp > lowp_f64mat2x4
-
- -

Low double-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 752 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat3x3 lowp_f64mat3
-
- -

Low double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 573 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f64, lowp > lowp_f64mat3x2
-
- -

Low double-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 753 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, lowp > lowp_f64mat3x3
-
- -

Low double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 754 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f64, lowp > lowp_f64mat3x4
-
- -

Low double-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 755 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_f64mat4x4 lowp_f64mat4
-
- -

Low double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 574 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f64, lowp > lowp_f64mat4x2
-
- -

Low double-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 756 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f64, lowp > lowp_f64mat4x3
-
- -

Low double-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 757 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, lowp > lowp_f64mat4x4
-
- -

Low double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 758 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f64, lowp > lowp_f64quat
-
- -

Low double-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 812 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f64, lowp > lowp_f64vec1
-
- -

Low double-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 486 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, lowp > lowp_f64vec2
-
- -

Low double-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 487 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, lowp > lowp_f64vec3
-
- -

Low double-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 488 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, lowp > lowp_f64vec4
-
- -

Low double-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 489 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 lowp_float32
-
- -

Low 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 152 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 lowp_float32_t
-
- -

Low 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 157 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 lowp_float64
-
- -

Low 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 168 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 lowp_float64_t
-
- -

Low 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 173 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat2x2 lowp_fmat2
-
- -

Low single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 524 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, lowp > lowp_fmat2x2
-
- -

Low single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 630 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, lowp > lowp_fmat2x3
-
- -

Low single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 631 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, lowp > lowp_fmat2x4
-
- -

Low single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 632 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat3x3 lowp_fmat3
-
- -

Low single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 525 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, lowp > lowp_fmat3x2
-
- -

Low single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 633 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, lowp > lowp_fmat3x3
-
- -

Low single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 634 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, lowp > lowp_fmat3x4
-
- -

Low single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 635 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef lowp_fmat4x4 lowp_fmat4
-
- -

Low single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 526 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, lowp > lowp_fmat4x2
-
- -

Low single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 636 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, lowp > lowp_fmat4x3
-
- -

Low single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 637 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, lowp > lowp_fmat4x4
-
- -

Low single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 638 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, float, lowp > lowp_fvec1
-
- -

Low single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 426 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, lowp > lowp_fvec2
-
- -

Low single-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 427 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, lowp > lowp_fvec3
-
- -

Low single-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 428 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, lowp > lowp_fvec4
-
- -

Low single-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 429 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_i16
-
- -

Low qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 45 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i16, lowp > lowp_i16vec1
-
- -

Low qualifier 16 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 242 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i16, lowp > lowp_i16vec2
-
- -

Low qualifier 16 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 243 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i16, lowp > lowp_i16vec3
-
- -

Low qualifier 16 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 244 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i16, lowp > lowp_i16vec4
-
- -

Low qualifier 16 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 245 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_i32
-
- -

Low qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 59 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i32, lowp > lowp_i32vec1
-
- -

Low qualifier 32 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 262 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, lowp > lowp_i32vec2
-
- -

Low qualifier 32 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 263 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, lowp > lowp_i32vec3
-
- -

Low qualifier 32 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 264 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, lowp > lowp_i32vec4
-
- -

Low qualifier 32 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 265 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_i64
-
- -

Low qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 73 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i64, lowp > lowp_i64vec1
-
- -

Low qualifier 64 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 282 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i64, lowp > lowp_i64vec2
-
- -

Low qualifier 64 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 283 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i64, lowp > lowp_i64vec3
-
- -

Low qualifier 64 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 284 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i64, lowp > lowp_i64vec4
-
- -

Low qualifier 64 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 285 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_i8
-
- -

Low qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 31 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i8, lowp > lowp_i8vec1
-
- -

Low qualifier 8 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 222 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i8, lowp > lowp_i8vec2
-
- -

Low qualifier 8 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 223 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i8, lowp > lowp_i8vec3
-
- -

Low qualifier 8 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 224 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i8, lowp > lowp_i8vec4
-
- -

Low qualifier 8 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 225 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16
-
- -

Low qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 50 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 lowp_int16_t
-
- -

Low qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 54 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32
-
- -

Low qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 64 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 lowp_int32_t
-
- -

Low qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 68 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64
-
- -

Low qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 78 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 lowp_int64_t
-
- -

Low qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 82 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8
-
- -

Low qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 36 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 lowp_int8_t
-
- -

Low qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 40 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_u16
-
- -

Low qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 103 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u16, lowp > lowp_u16vec1
-
- -

Low qualifier 16 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 344 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u16, lowp > lowp_u16vec2
-
- -

Low qualifier 16 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 345 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u16, lowp > lowp_u16vec3
-
- -

Low qualifier 16 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 346 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u16, lowp > lowp_u16vec4
-
- -

Low qualifier 16 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 347 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_u32
-
- -

Low qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 117 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, lowp > lowp_u32vec1
-
- -

Low qualifier 32 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 364 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, lowp > lowp_u32vec2
-
- -

Low qualifier 32 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 365 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, lowp > lowp_u32vec3
-
- -

Low qualifier 32 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 366 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, lowp > lowp_u32vec4
-
- -

Low qualifier 32 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 367 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_u64
-
- -

Low qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 131 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u64, lowp > lowp_u64vec1
-
- -

Low qualifier 64 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 384 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u64, lowp > lowp_u64vec2
-
- -

Low qualifier 64 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 385 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u64, lowp > lowp_u64vec3
-
- -

Low qualifier 64 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 386 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u64, lowp > lowp_u64vec4
-
- -

Low qualifier 64 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 387 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_u8
-
- -

Low qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 89 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u8, lowp > lowp_u8vec1
-
- -

Low qualifier 8 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 324 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u8, lowp > lowp_u8vec2
-
- -

Low qualifier 8 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 325 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u8, lowp > lowp_u8vec3
-
- -

Low qualifier 8 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 326 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u8, lowp > lowp_u8vec4
-
- -

Low qualifier 8 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 327 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16
-
- -

Low qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 108 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 lowp_uint16_t
-
- -

Low qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 112 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32
-
- -

Low qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 122 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 lowp_uint32_t
-
- -

Low qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 126 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64
-
- -

Low qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 136 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 lowp_uint64_t
-
- -

Low qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 140 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8
-
- -

Low qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 94 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 lowp_uint8_t
-
- -

Low qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 98 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 mediump_f32
-
- -

Medium 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 148 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat2x2 mediump_f32mat2
-
- -

Medium single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 544 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, mediump > mediump_f32mat2x2
-
- -

High single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 680 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, mediump > mediump_f32mat2x3
-
- -

Medium single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 681 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, mediump > mediump_f32mat2x4
-
- -

Medium single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 682 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat3x3 mediump_f32mat3
-
- -

Medium single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 545 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, mediump > mediump_f32mat3x2
-
- -

Medium single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 683 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, mediump > mediump_f32mat3x3
-
- -

Medium single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 684 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, mediump > mediump_f32mat3x4
-
- -

Medium single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 685 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f32mat4x4 mediump_f32mat4
-
- -

Medium single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 546 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, mediump > mediump_f32mat4x2
-
- -

Medium single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 686 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, mediump > mediump_f32mat4x3
-
- -

Medium single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 687 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, mediump > mediump_f32mat4x4
-
- -

Medium single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 688 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f32, mediump > mediump_f32quat
-
- -

Medium single-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 803 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f32, mediump > mediump_f32vec1
-
- -

Medium single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 451 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f32, mediump > mediump_f32vec2
-
- -

Medium single-qualifier floating-point vector of 2 components.

-
See also
core_precision
- -

Definition at line 452 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f32, mediump > mediump_f32vec3
-
- -

Medium single-qualifier floating-point vector of 3 components.

-
See also
core_precision
- -

Definition at line 453 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f32, mediump > mediump_f32vec4
-
- -

Medium single-qualifier floating-point vector of 4 components.

-
See also
core_precision
- -

Definition at line 454 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 mediump_f64
-
- -

Medium 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 164 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat2x2 mediump_f64mat2
-
- -

Medium double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Medium double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 576 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f64, mediump > mediump_f64mat2x2
-
- -

Medium double-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Medium double-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 760 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f64, mediump > mediump_f64mat2x3
-
- -

Medium double-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 761 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f64, mediump > mediump_f64mat2x4
-
- -

Medium double-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 762 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat3x3 mediump_f64mat3
-
- -

Medium double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 577 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f64, mediump > mediump_f64mat3x2
-
- -

Medium double-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 763 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f64, mediump > mediump_f64mat3x3
-
- -

Medium double-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 764 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f64, mediump > mediump_f64mat3x4
-
- -

Medium double-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 765 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_f64mat4x4 mediump_f64mat4
-
- -

Medium double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 578 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f64, mediump > mediump_f64mat4x2
-
- -

Medium double-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 766 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f64, mediump > mediump_f64mat4x3
-
- -

Medium double-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 767 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f64, mediump > mediump_f64mat4x4
-
- -

Medium double-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 768 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef qua< f64, mediump > mediump_f64quat
-
- -

Medium double-qualifier floating-point quaternion.

-
See also
GLM_GTC_type_precision
- -

Definition at line 813 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, f64, mediump > mediump_f64vec1
-
- -

Medium double-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 491 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, f64, mediump > mediump_f64vec2
-
- -

Medium double-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 492 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, f64, mediump > mediump_f64vec3
-
- -

Medium double-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 493 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, f64, mediump > mediump_f64vec4
-
- -

Medium double-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 494 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 mediump_float32
-
- -

Medium 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 153 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float32 mediump_float32_t
-
- -

Medium 32 bit single-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 158 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 mediump_float64
-
- -

Medium 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 169 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef float64 mediump_float64_t
-
- -

Medium 64 bit double-qualifier floating-point scalar.

-
See also
GLM_GTC_type_precision
- -

Definition at line 174 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat2x2 mediump_fmat2
-
- -

Medium single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 528 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 2, f32, mediump > mediump_fmat2x2
-
- -

Medium single-qualifier floating-point 1x1 matrix.

-
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
-
-GLM_GTC_type_precision
- -

Definition at line 640 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 3, f32, mediump > mediump_fmat2x3
-
- -

Medium single-qualifier floating-point 2x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 641 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 2, 4, f32, mediump > mediump_fmat2x4
-
- -

Medium single-qualifier floating-point 2x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 642 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat3x3 mediump_fmat3
-
- -

Medium single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 529 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 2, f32, mediump > mediump_fmat3x2
-
- -

Medium single-qualifier floating-point 3x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 643 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 3, f32, mediump > mediump_fmat3x3
-
- -

Medium single-qualifier floating-point 3x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 644 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 3, 4, f32, mediump > mediump_fmat3x4
-
- -

Medium single-qualifier floating-point 3x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 645 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mediump_fmat4x4 mediump_fmat4
-
- -

Medium single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 530 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 2, f32, mediump > mediump_fmat4x2
-
- -

Medium single-qualifier floating-point 4x2 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 646 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 3, f32, mediump > mediump_fmat4x3
-
- -

Medium single-qualifier floating-point 4x3 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 647 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef mat< 4, 4, f32, mediump > mediump_fmat4x4
-
- -

Medium single-qualifier floating-point 4x4 matrix.

-
See also
GLM_GTC_type_precision
- -

Definition at line 648 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, float, mediump > mediump_fvec1
-
- -

Medium single-qualifier floating-point vector of 1 component.

-
See also
GLM_GTC_type_precision
- -

Definition at line 431 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, float, mediump > mediump_fvec2
-
- -

Medium Single-qualifier floating-point vector of 2 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 432 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, float, mediump > mediump_fvec3
-
- -

Medium Single-qualifier floating-point vector of 3 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 433 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, float, mediump > mediump_fvec4
-
- -

Medium Single-qualifier floating-point vector of 4 components.

-
See also
GLM_GTC_type_precision
- -

Definition at line 434 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_i16
-
- -

Medium qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 46 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i16, mediump > mediump_i16vec1
-
- -

Medium qualifier 16 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 247 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i16, mediump > mediump_i16vec2
-
- -

Medium qualifier 16 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 248 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i16, mediump > mediump_i16vec3
-
- -

Medium qualifier 16 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 249 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i16, mediump > mediump_i16vec4
-
- -

Medium qualifier 16 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 250 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_i32
-
- -

Medium qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 60 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i32, mediump > mediump_i32vec1
-
- -

Medium qualifier 32 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 267 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i32, mediump > mediump_i32vec2
-
- -

Medium qualifier 32 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 268 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i32, mediump > mediump_i32vec3
-
- -

Medium qualifier 32 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 269 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i32, mediump > mediump_i32vec4
-
- -

Medium qualifier 32 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 270 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_i64
-
- -

Medium qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 74 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i64, mediump > mediump_i64vec1
-
- -

Medium qualifier 64 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 287 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i64, mediump > mediump_i64vec2
-
- -

Medium qualifier 64 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 288 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i64, mediump > mediump_i64vec3
-
- -

Medium qualifier 64 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 289 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i64, mediump > mediump_i64vec4
-
- -

Medium qualifier 64 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 290 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_i8
-
- -

Medium qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 32 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, i8, mediump > mediump_i8vec1
-
- -

Medium qualifier 8 bit signed integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 227 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, i8, mediump > mediump_i8vec2
-
- -

Medium qualifier 8 bit signed integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 228 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, i8, mediump > mediump_i8vec3
-
- -

Medium qualifier 8 bit signed integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 229 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, i8, mediump > mediump_i8vec4
-
- -

Medium qualifier 8 bit signed integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 230 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16
-
- -

Medium qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 51 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int16 mediump_int16_t
-
- -

Medium qualifier 16 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 55 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32
-
- -

Medium qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 65 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int32 mediump_int32_t
-
- -

Medium qualifier 32 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 69 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64
-
- -

Medium qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 79 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int64 mediump_int64_t
-
- -

Medium qualifier 64 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 83 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8
-
- -

Medium qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 37 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::int8 mediump_int8_t
-
- -

Medium qualifier 8 bit signed integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 41 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_u16
-
- -

Medium qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 104 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u16, mediump > mediump_u16vec1
-
- -

Medium qualifier 16 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 349 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u16, mediump > mediump_u16vec2
-
- -

Medium qualifier 16 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 350 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u16, mediump > mediump_u16vec3
-
- -

Medium qualifier 16 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 351 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u16, mediump > mediump_u16vec4
-
- -

Medium qualifier 16 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 352 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_u32
-
- -

Medium qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 118 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, mediump > mediump_u32vec1
-
- -

Medium qualifier 32 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 369 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, mediump > mediump_u32vec2
-
- -

Medium qualifier 32 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 370 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, mediump > mediump_u32vec3
-
- -

Medium qualifier 32 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 371 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, mediump > mediump_u32vec4
-
- -

Medium qualifier 32 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 372 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_u64
-
- -

Medium qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 132 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u64, mediump > mediump_u64vec1
-
- -

Medium qualifier 64 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 389 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u64, mediump > mediump_u64vec2
-
- -

Medium qualifier 64 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 390 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u64, mediump > mediump_u64vec3
-
- -

Medium qualifier 64 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 391 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u64, mediump > mediump_u64vec4
-
- -

Medium qualifier 64 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 392 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_u8
-
- -

Medium qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 90 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u8, mediump > mediump_u8vec1
-
- -

Medium qualifier 8 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 329 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u8, mediump > mediump_u8vec2
-
- -

Medium qualifier 8 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 330 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u8, mediump > mediump_u8vec3
-
- -

Medium qualifier 8 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 331 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u8, mediump > mediump_u8vec4
-
- -

Medium qualifier 8 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 332 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16
-
- -

Medium qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 109 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 mediump_uint16_t
-
- -

Medium qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 113 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32
-
- -

Medium qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 123 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 mediump_uint32_t
-
- -

Medium qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 127 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64
-
- -

Medium qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 137 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 mediump_uint64_t
-
- -

Medium qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 141 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8
-
- -

Medium qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 95 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 mediump_uint8_t
-
- -

Medium qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 99 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 u16
-
- -

Default qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 106 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u16, defaultp > u16vec1
-
- -

Default qualifier 16 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 359 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u16, defaultp > u16vec2
-
- -

Default qualifier 16 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 360 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u16, defaultp > u16vec3
-
- -

Default qualifier 16 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 361 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u16, defaultp > u16vec4
-
- -

Default qualifier 16 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 362 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 u32
-
- -

Default qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 120 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u32, defaultp > u32vec1
-
- -

Default qualifier 32 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 379 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u32, defaultp > u32vec2
-
- -

Default qualifier 32 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 380 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u32, defaultp > u32vec3
-
- -

Default qualifier 32 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 381 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u32, defaultp > u32vec4
-
- -

Default qualifier 32 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 382 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 u64
-
- -

Default qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 134 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u64, defaultp > u64vec1
-
- -

Default qualifier 64 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 399 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u64, defaultp > u64vec2
-
- -

Default qualifier 64 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 400 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u64, defaultp > u64vec3
-
- -

Default qualifier 64 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 401 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u64, defaultp > u64vec4
-
- -

Default qualifier 64 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 402 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 u8
-
- -

Default qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 92 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 1, u8, defaultp > u8vec1
-
- -

Default qualifier 8 bit unsigned integer scalar type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 339 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 2, u8, defaultp > u8vec2
-
- -

Default qualifier 8 bit unsigned integer vector of 2 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 340 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 3, u8, defaultp > u8vec3
-
- -

Default qualifier 8 bit unsigned integer vector of 3 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 341 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef vec< 4, u8, defaultp > u8vec4
-
- -

Default qualifier 8 bit unsigned integer vector of 4 components type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 342 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 uint16_t
-
- -

Default qualifier 16 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 115 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 uint32_t
-
- -

Default qualifier 32 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 129 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 uint64_t
-
- -

Default qualifier 64 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 143 of file fwd.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint8 uint8_t
-
- -

Default qualifier 8 bit unsigned integer type.

-
See also
GLM_GTC_type_precision
- -

Definition at line 101 of file fwd.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_type_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_type_precision
+
+
+ +

Include <glm/gtc/type_precision.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef float f32
 Default 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, defaultp > f32mat2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, defaultp > f32mat2x2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, defaultp > f32mat2x3
 Single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, defaultp > f32mat2x4
 Single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > f32mat3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, defaultp > f32mat3x2
 Single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > f32mat3x3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, defaultp > f32mat3x4
 Single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > f32mat4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, defaultp > f32mat4x2
 Single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, defaultp > f32mat4x3
 Single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > f32mat4x4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, defaultp > f32quat
 Single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, defaultp > f32vec1
 Single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, defaultp > f32vec2
 Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, defaultp > f32vec3
 Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, defaultp > f32vec4
 Single-qualifier floating-point vector of 4 components. More...
 
typedef double f64
 Default 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, defaultp > f64mat2
 Double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, defaultp > f64mat2x2
 Double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, defaultp > f64mat2x3
 Double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, defaultp > f64mat2x4
 Double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, defaultp > f64mat3
 Double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, defaultp > f64mat3x2
 Double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, defaultp > f64mat3x3
 Double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, defaultp > f64mat3x4
 Double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, defaultp > f64mat4
 Double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, defaultp > f64mat4x2
 Double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, defaultp > f64mat4x3
 Double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, defaultp > f64mat4x4
 Double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, defaultp > f64quat
 Double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, defaultp > f64vec1
 Double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, defaultp > f64vec2
 Double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, defaultp > f64vec3
 Double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, defaultp > f64vec4
 Double-qualifier floating-point vector of 4 components. More...
 
typedef float float32
 Single-qualifier floating-point scalar. More...
 
typedef float float32_t
 Default 32 bit single-qualifier floating-point scalar. More...
 
typedef double float64
 Double-qualifier floating-point scalar. More...
 
typedef double float64_t
 Default 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, defaultp > fmat2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, defaultp > fmat2x2
 Single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, defaultp > fmat2x3
 Single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, defaultp > fmat2x4
 Single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > fmat3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, defaultp > fmat3x2
 Single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, defaultp > fmat3x3
 Single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, defaultp > fmat3x4
 Single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > fmat4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, defaultp > fmat4x2
 Single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, defaultp > fmat4x3
 Single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, defaultp > fmat4x4
 Single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, f32, defaultp > fvec1
 Single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, defaultp > fvec2
 Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, defaultp > fvec3
 Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, defaultp > fvec4
 Single-qualifier floating-point vector of 4 components. More...
 
typedef float highp_f32
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, highp > highp_f32mat2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, highp > highp_f32mat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, highp > highp_f32mat2x3
 High single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, highp > highp_f32mat2x4
 High single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_f32mat3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, highp > highp_f32mat3x2
 High single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_f32mat3x3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, highp > highp_f32mat3x4
 High single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_f32mat4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, highp > highp_f32mat4x2
 High single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, highp > highp_f32mat4x3
 High single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_f32mat4x4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, highp > highp_f32quat
 High single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, highp > highp_f32vec1
 High single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, highp > highp_f32vec2
 High single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, highp > highp_f32vec3
 High single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, highp > highp_f32vec4
 High single-qualifier floating-point vector of 4 components. More...
 
typedef double highp_f64
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, highp > highp_f64mat2
 High double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, highp > highp_f64mat2x2
 High double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, highp > highp_f64mat2x3
 High double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, highp > highp_f64mat2x4
 High double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, highp > highp_f64mat3
 High double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, highp > highp_f64mat3x2
 High double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, highp > highp_f64mat3x3
 High double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, highp > highp_f64mat3x4
 High double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, highp > highp_f64mat4
 High double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, highp > highp_f64mat4x2
 High double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, highp > highp_f64mat4x3
 High double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, highp > highp_f64mat4x4
 High double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, highp > highp_f64quat
 High double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, highp > highp_f64vec1
 High double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, highp > highp_f64vec2
 High double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, highp > highp_f64vec3
 High double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, highp > highp_f64vec4
 High double-qualifier floating-point vector of 4 components. More...
 
typedef float highp_float32
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef float highp_float32_t
 High 32 bit single-qualifier floating-point scalar. More...
 
typedef double highp_float64
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef double highp_float64_t
 High 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, highp > highp_fmat2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, highp > highp_fmat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, highp > highp_fmat2x3
 High single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, highp > highp_fmat2x4
 High single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_fmat3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, highp > highp_fmat3x2
 High single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, highp > highp_fmat3x3
 High single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, highp > highp_fmat3x4
 High single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_fmat4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, highp > highp_fmat4x2
 High single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, highp > highp_fmat4x3
 High single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, highp > highp_fmat4x4
 High single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, highp > highp_fvec1
 High single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, highp > highp_fvec2
 High Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, highp > highp_fvec3
 High Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, highp > highp_fvec4
 High Single-qualifier floating-point vector of 4 components. More...
 
typedef int16 highp_i16
 High qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, highp > highp_i16vec1
 High qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, highp > highp_i16vec2
 High qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, highp > highp_i16vec3
 High qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, highp > highp_i16vec4
 High qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 highp_i32
 High qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, highp > highp_i32vec1
 High qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, highp > highp_i32vec2
 High qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, highp > highp_i32vec3
 High qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, highp > highp_i32vec4
 High qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 highp_i64
 High qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, highp > highp_i64vec1
 High qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, highp > highp_i64vec2
 High qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, highp > highp_i64vec3
 High qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, highp > highp_i64vec4
 High qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 highp_i8
 High qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, highp > highp_i8vec1
 High qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, highp > highp_i8vec2
 High qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, highp > highp_i8vec3
 High qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, highp > highp_i8vec4
 High qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 highp_int16
 High qualifier 16 bit signed integer type. More...
 
typedef int16 highp_int16_t
 High qualifier 16 bit signed integer type. More...
 
typedef int32 highp_int32
 High qualifier 32 bit signed integer type. More...
 
typedef int32 highp_int32_t
 32 bit signed integer type. More...
 
typedef int64 highp_int64
 High qualifier 64 bit signed integer type. More...
 
typedef int64 highp_int64_t
 High qualifier 64 bit signed integer type. More...
 
typedef int8 highp_int8
 High qualifier 8 bit signed integer type. More...
 
typedef int8 highp_int8_t
 High qualifier 8 bit signed integer type. More...
 
typedef uint16 highp_u16
 High qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, highp > highp_u16vec1
 High qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, highp > highp_u16vec2
 High qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, highp > highp_u16vec3
 High qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, highp > highp_u16vec4
 High qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 highp_u32
 High qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, highp > highp_u32vec1
 High qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, highp > highp_u32vec2
 High qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, highp > highp_u32vec3
 High qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, highp > highp_u32vec4
 High qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 highp_u64
 High qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, highp > highp_u64vec1
 High qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, highp > highp_u64vec2
 High qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, highp > highp_u64vec3
 High qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, highp > highp_u64vec4
 High qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 highp_u8
 High qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, highp > highp_u8vec1
 High qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, highp > highp_u8vec2
 High qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, highp > highp_u8vec3
 High qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, highp > highp_u8vec4
 High qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 highp_uint16
 High qualifier 16 bit unsigned integer type. More...
 
typedef uint16 highp_uint16_t
 High qualifier 16 bit unsigned integer type. More...
 
typedef uint32 highp_uint32
 High qualifier 32 bit unsigned integer type. More...
 
typedef uint32 highp_uint32_t
 High qualifier 32 bit unsigned integer type. More...
 
typedef uint64 highp_uint64
 High qualifier 64 bit unsigned integer type. More...
 
typedef uint64 highp_uint64_t
 High qualifier 64 bit unsigned integer type. More...
 
typedef uint8 highp_uint8
 High qualifier 8 bit unsigned integer type. More...
 
typedef uint8 highp_uint8_t
 High qualifier 8 bit unsigned integer type. More...
 
typedef int16 i16
 16 bit signed integer type. More...
 
typedef vec< 1, i16, defaultp > i16vec1
 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, defaultp > i16vec2
 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, defaultp > i16vec3
 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, defaultp > i16vec4
 16 bit signed integer vector of 4 components type. More...
 
typedef int32 i32
 32 bit signed integer type. More...
 
typedef vec< 1, i32, defaultp > i32vec1
 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, defaultp > i32vec2
 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, defaultp > i32vec3
 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, defaultp > i32vec4
 32 bit signed integer vector of 4 components type. More...
 
typedef int64 i64
 64 bit signed integer type. More...
 
typedef vec< 1, i64, defaultp > i64vec1
 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, defaultp > i64vec2
 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, defaultp > i64vec3
 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, defaultp > i64vec4
 64 bit signed integer vector of 4 components type. More...
 
typedef int8 i8
 8 bit signed integer type. More...
 
typedef vec< 1, i8, defaultp > i8vec1
 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, defaultp > i8vec2
 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, defaultp > i8vec3
 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, defaultp > i8vec4
 8 bit signed integer vector of 4 components type. More...
 
typedef int16 int16_t
 16 bit signed integer type. More...
 
typedef int32 int32_t
 32 bit signed integer type. More...
 
typedef int64 int64_t
 64 bit signed integer type. More...
 
typedef int8 int8_t
 8 bit signed integer type. More...
 
typedef float lowp_f32
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, lowp > lowp_f32mat2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, lowp > lowp_f32mat2x2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, lowp > lowp_f32mat2x3
 Low single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, lowp > lowp_f32mat2x4
 Low single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_f32mat3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, lowp > lowp_f32mat3x2
 Low single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_f32mat3x3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, lowp > lowp_f32mat3x4
 Low single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_f32mat4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, lowp > lowp_f32mat4x2
 Low single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, lowp > lowp_f32mat4x3
 Low single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_f32mat4x4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, lowp > lowp_f32quat
 Low single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, lowp > lowp_f32vec1
 Low single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, lowp > lowp_f32vec2
 Low single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, lowp > lowp_f32vec3
 Low single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, lowp > lowp_f32vec4
 Low single-qualifier floating-point vector of 4 components. More...
 
typedef double lowp_f64
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, lowp > lowp_f64mat2
 Low double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, lowp > lowp_f64mat2x2
 Low double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, lowp > lowp_f64mat2x3
 Low double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, lowp > lowp_f64mat2x4
 Low double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, lowp > lowp_f64mat3
 Low double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, lowp > lowp_f64mat3x2
 Low double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, lowp > lowp_f64mat3x3
 Low double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, lowp > lowp_f64mat3x4
 Low double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, lowp > lowp_f64mat4
 Low double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, lowp > lowp_f64mat4x2
 Low double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, lowp > lowp_f64mat4x3
 Low double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, lowp > lowp_f64mat4x4
 Low double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, lowp > lowp_f64quat
 Low double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, lowp > lowp_f64vec1
 Low double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, lowp > lowp_f64vec2
 Low double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, lowp > lowp_f64vec3
 Low double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, lowp > lowp_f64vec4
 Low double-qualifier floating-point vector of 4 components. More...
 
typedef float lowp_float32
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef float lowp_float32_t
 Low 32 bit single-qualifier floating-point scalar. More...
 
typedef double lowp_float64
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef double lowp_float64_t
 Low 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, lowp > lowp_fmat2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, lowp > lowp_fmat2x2
 Low single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, lowp > lowp_fmat2x3
 Low single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, lowp > lowp_fmat2x4
 Low single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_fmat3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, lowp > lowp_fmat3x2
 Low single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, lowp > lowp_fmat3x3
 Low single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, lowp > lowp_fmat3x4
 Low single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_fmat4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, lowp > lowp_fmat4x2
 Low single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, lowp > lowp_fmat4x3
 Low single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, lowp > lowp_fmat4x4
 Low single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, lowp > lowp_fvec1
 Low single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, lowp > lowp_fvec2
 Low single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, lowp > lowp_fvec3
 Low single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, lowp > lowp_fvec4
 Low single-qualifier floating-point vector of 4 components. More...
 
typedef int16 lowp_i16
 Low qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, lowp > lowp_i16vec1
 Low qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, lowp > lowp_i16vec2
 Low qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, lowp > lowp_i16vec3
 Low qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, lowp > lowp_i16vec4
 Low qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 lowp_i32
 Low qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, lowp > lowp_i32vec1
 Low qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, lowp > lowp_i32vec2
 Low qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, lowp > lowp_i32vec3
 Low qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, lowp > lowp_i32vec4
 Low qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 lowp_i64
 Low qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, lowp > lowp_i64vec1
 Low qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, lowp > lowp_i64vec2
 Low qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, lowp > lowp_i64vec3
 Low qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, lowp > lowp_i64vec4
 Low qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 lowp_i8
 Low qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, lowp > lowp_i8vec1
 Low qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, lowp > lowp_i8vec2
 Low qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, lowp > lowp_i8vec3
 Low qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, lowp > lowp_i8vec4
 Low qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 lowp_int16
 Low qualifier 16 bit signed integer type. More...
 
typedef int16 lowp_int16_t
 Low qualifier 16 bit signed integer type. More...
 
typedef int32 lowp_int32
 Low qualifier 32 bit signed integer type. More...
 
typedef int32 lowp_int32_t
 Low qualifier 32 bit signed integer type. More...
 
typedef int64 lowp_int64
 Low qualifier 64 bit signed integer type. More...
 
typedef int64 lowp_int64_t
 Low qualifier 64 bit signed integer type. More...
 
typedef int8 lowp_int8
 Low qualifier 8 bit signed integer type. More...
 
typedef int8 lowp_int8_t
 Low qualifier 8 bit signed integer type. More...
 
typedef uint16 lowp_u16
 Low qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, lowp > lowp_u16vec1
 Low qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, lowp > lowp_u16vec2
 Low qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, lowp > lowp_u16vec3
 Low qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, lowp > lowp_u16vec4
 Low qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 lowp_u32
 Low qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, lowp > lowp_u32vec1
 Low qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, lowp > lowp_u32vec2
 Low qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, lowp > lowp_u32vec3
 Low qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, lowp > lowp_u32vec4
 Low qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 lowp_u64
 Low qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, lowp > lowp_u64vec1
 Low qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, lowp > lowp_u64vec2
 Low qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, lowp > lowp_u64vec3
 Low qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, lowp > lowp_u64vec4
 Low qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 lowp_u8
 Low qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, lowp > lowp_u8vec1
 Low qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, lowp > lowp_u8vec2
 Low qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, lowp > lowp_u8vec3
 Low qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, lowp > lowp_u8vec4
 Low qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 lowp_uint16
 Low qualifier 16 bit unsigned integer type. More...
 
typedef uint16 lowp_uint16_t
 Low qualifier 16 bit unsigned integer type. More...
 
typedef uint32 lowp_uint32
 Low qualifier 32 bit unsigned integer type. More...
 
typedef uint32 lowp_uint32_t
 Low qualifier 32 bit unsigned integer type. More...
 
typedef uint64 lowp_uint64
 Low qualifier 64 bit unsigned integer type. More...
 
typedef uint64 lowp_uint64_t
 Low qualifier 64 bit unsigned integer type. More...
 
typedef uint8 lowp_uint8
 Low qualifier 8 bit unsigned integer type. More...
 
typedef uint8 lowp_uint8_t
 Low qualifier 8 bit unsigned integer type. More...
 
typedef float mediump_f32
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, mediump > mediump_f32mat2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, mediump > mediump_f32mat2x2
 High single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, mediump > mediump_f32mat2x3
 Medium single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, mediump > mediump_f32mat2x4
 Medium single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_f32mat3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, mediump > mediump_f32mat3x2
 Medium single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_f32mat3x3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, mediump > mediump_f32mat3x4
 Medium single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_f32mat4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, mediump > mediump_f32mat4x2
 Medium single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, mediump > mediump_f32mat4x3
 Medium single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_f32mat4x4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f32, mediump > mediump_f32quat
 Medium single-qualifier floating-point quaternion. More...
 
typedef vec< 1, f32, mediump > mediump_f32vec1
 Medium single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f32, mediump > mediump_f32vec2
 Medium single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f32, mediump > mediump_f32vec3
 Medium single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f32, mediump > mediump_f32vec4
 Medium single-qualifier floating-point vector of 4 components. More...
 
typedef double mediump_f64
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f64, mediump > mediump_f64mat2
 Medium double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f64, mediump > mediump_f64mat2x2
 Medium double-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f64, mediump > mediump_f64mat2x3
 Medium double-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f64, mediump > mediump_f64mat2x4
 Medium double-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f64, mediump > mediump_f64mat3
 Medium double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f64, mediump > mediump_f64mat3x2
 Medium double-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f64, mediump > mediump_f64mat3x3
 Medium double-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f64, mediump > mediump_f64mat3x4
 Medium double-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f64, mediump > mediump_f64mat4
 Medium double-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f64, mediump > mediump_f64mat4x2
 Medium double-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f64, mediump > mediump_f64mat4x3
 Medium double-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f64, mediump > mediump_f64mat4x4
 Medium double-qualifier floating-point 4x4 matrix. More...
 
typedef qua< f64, mediump > mediump_f64quat
 Medium double-qualifier floating-point quaternion. More...
 
typedef vec< 1, f64, mediump > mediump_f64vec1
 Medium double-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, f64, mediump > mediump_f64vec2
 Medium double-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, f64, mediump > mediump_f64vec3
 Medium double-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, f64, mediump > mediump_f64vec4
 Medium double-qualifier floating-point vector of 4 components. More...
 
typedef float mediump_float32
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef float mediump_float32_t
 Medium 32 bit single-qualifier floating-point scalar. More...
 
typedef double mediump_float64
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef double mediump_float64_t
 Medium 64 bit double-qualifier floating-point scalar. More...
 
typedef mat< 2, 2, f32, mediump > mediump_fmat2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 2, f32, mediump > mediump_fmat2x2
 Medium single-qualifier floating-point 1x1 matrix. More...
 
typedef mat< 2, 3, f32, mediump > mediump_fmat2x3
 Medium single-qualifier floating-point 2x3 matrix. More...
 
typedef mat< 2, 4, f32, mediump > mediump_fmat2x4
 Medium single-qualifier floating-point 2x4 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_fmat3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 2, f32, mediump > mediump_fmat3x2
 Medium single-qualifier floating-point 3x2 matrix. More...
 
typedef mat< 3, 3, f32, mediump > mediump_fmat3x3
 Medium single-qualifier floating-point 3x3 matrix. More...
 
typedef mat< 3, 4, f32, mediump > mediump_fmat3x4
 Medium single-qualifier floating-point 3x4 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_fmat4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef mat< 4, 2, f32, mediump > mediump_fmat4x2
 Medium single-qualifier floating-point 4x2 matrix. More...
 
typedef mat< 4, 3, f32, mediump > mediump_fmat4x3
 Medium single-qualifier floating-point 4x3 matrix. More...
 
typedef mat< 4, 4, f32, mediump > mediump_fmat4x4
 Medium single-qualifier floating-point 4x4 matrix. More...
 
typedef vec< 1, float, mediump > mediump_fvec1
 Medium single-qualifier floating-point vector of 1 component. More...
 
typedef vec< 2, float, mediump > mediump_fvec2
 Medium Single-qualifier floating-point vector of 2 components. More...
 
typedef vec< 3, float, mediump > mediump_fvec3
 Medium Single-qualifier floating-point vector of 3 components. More...
 
typedef vec< 4, float, mediump > mediump_fvec4
 Medium Single-qualifier floating-point vector of 4 components. More...
 
typedef int16 mediump_i16
 Medium qualifier 16 bit signed integer type. More...
 
typedef vec< 1, i16, mediump > mediump_i16vec1
 Medium qualifier 16 bit signed integer scalar type. More...
 
typedef vec< 2, i16, mediump > mediump_i16vec2
 Medium qualifier 16 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i16, mediump > mediump_i16vec3
 Medium qualifier 16 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i16, mediump > mediump_i16vec4
 Medium qualifier 16 bit signed integer vector of 4 components type. More...
 
typedef int32 mediump_i32
 Medium qualifier 32 bit signed integer type. More...
 
typedef vec< 1, i32, mediump > mediump_i32vec1
 Medium qualifier 32 bit signed integer scalar type. More...
 
typedef vec< 2, i32, mediump > mediump_i32vec2
 Medium qualifier 32 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i32, mediump > mediump_i32vec3
 Medium qualifier 32 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i32, mediump > mediump_i32vec4
 Medium qualifier 32 bit signed integer vector of 4 components type. More...
 
typedef int64 mediump_i64
 Medium qualifier 64 bit signed integer type. More...
 
typedef vec< 1, i64, mediump > mediump_i64vec1
 Medium qualifier 64 bit signed integer scalar type. More...
 
typedef vec< 2, i64, mediump > mediump_i64vec2
 Medium qualifier 64 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i64, mediump > mediump_i64vec3
 Medium qualifier 64 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i64, mediump > mediump_i64vec4
 Medium qualifier 64 bit signed integer vector of 4 components type. More...
 
typedef int8 mediump_i8
 Medium qualifier 8 bit signed integer type. More...
 
typedef vec< 1, i8, mediump > mediump_i8vec1
 Medium qualifier 8 bit signed integer scalar type. More...
 
typedef vec< 2, i8, mediump > mediump_i8vec2
 Medium qualifier 8 bit signed integer vector of 2 components type. More...
 
typedef vec< 3, i8, mediump > mediump_i8vec3
 Medium qualifier 8 bit signed integer vector of 3 components type. More...
 
typedef vec< 4, i8, mediump > mediump_i8vec4
 Medium qualifier 8 bit signed integer vector of 4 components type. More...
 
typedef int16 mediump_int16
 Medium qualifier 16 bit signed integer type. More...
 
typedef int16 mediump_int16_t
 Medium qualifier 16 bit signed integer type. More...
 
typedef int32 mediump_int32
 Medium qualifier 32 bit signed integer type. More...
 
typedef int32 mediump_int32_t
 Medium qualifier 32 bit signed integer type. More...
 
typedef int64 mediump_int64
 Medium qualifier 64 bit signed integer type. More...
 
typedef int64 mediump_int64_t
 Medium qualifier 64 bit signed integer type. More...
 
typedef int8 mediump_int8
 Medium qualifier 8 bit signed integer type. More...
 
typedef int8 mediump_int8_t
 Medium qualifier 8 bit signed integer type. More...
 
typedef uint16 mediump_u16
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, mediump > mediump_u16vec1
 Medium qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, mediump > mediump_u16vec2
 Medium qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, mediump > mediump_u16vec3
 Medium qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, mediump > mediump_u16vec4
 Medium qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 mediump_u32
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, mediump > mediump_u32vec1
 Medium qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, mediump > mediump_u32vec2
 Medium qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, mediump > mediump_u32vec3
 Medium qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, mediump > mediump_u32vec4
 Medium qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 mediump_u64
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, mediump > mediump_u64vec1
 Medium qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, mediump > mediump_u64vec2
 Medium qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, mediump > mediump_u64vec3
 Medium qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, mediump > mediump_u64vec4
 Medium qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 mediump_u8
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, mediump > mediump_u8vec1
 Medium qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, mediump > mediump_u8vec2
 Medium qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, mediump > mediump_u8vec3
 Medium qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, mediump > mediump_u8vec4
 Medium qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 mediump_uint16
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef uint16 mediump_uint16_t
 Medium qualifier 16 bit unsigned integer type. More...
 
typedef uint32 mediump_uint32
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef uint32 mediump_uint32_t
 Medium qualifier 32 bit unsigned integer type. More...
 
typedef uint64 mediump_uint64
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef uint64 mediump_uint64_t
 Medium qualifier 64 bit unsigned integer type. More...
 
typedef uint8 mediump_uint8
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef uint8 mediump_uint8_t
 Medium qualifier 8 bit unsigned integer type. More...
 
typedef uint16 u16
 Default qualifier 16 bit unsigned integer type. More...
 
typedef vec< 1, u16, defaultp > u16vec1
 Default qualifier 16 bit unsigned integer scalar type. More...
 
typedef vec< 2, u16, defaultp > u16vec2
 Default qualifier 16 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u16, defaultp > u16vec3
 Default qualifier 16 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u16, defaultp > u16vec4
 Default qualifier 16 bit unsigned integer vector of 4 components type. More...
 
typedef uint32 u32
 Default qualifier 32 bit unsigned integer type. More...
 
typedef vec< 1, u32, defaultp > u32vec1
 Default qualifier 32 bit unsigned integer scalar type. More...
 
typedef vec< 2, u32, defaultp > u32vec2
 Default qualifier 32 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u32, defaultp > u32vec3
 Default qualifier 32 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u32, defaultp > u32vec4
 Default qualifier 32 bit unsigned integer vector of 4 components type. More...
 
typedef uint64 u64
 Default qualifier 64 bit unsigned integer type. More...
 
typedef vec< 1, u64, defaultp > u64vec1
 Default qualifier 64 bit unsigned integer scalar type. More...
 
typedef vec< 2, u64, defaultp > u64vec2
 Default qualifier 64 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u64, defaultp > u64vec3
 Default qualifier 64 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u64, defaultp > u64vec4
 Default qualifier 64 bit unsigned integer vector of 4 components type. More...
 
typedef uint8 u8
 Default qualifier 8 bit unsigned integer type. More...
 
typedef vec< 1, u8, defaultp > u8vec1
 Default qualifier 8 bit unsigned integer scalar type. More...
 
typedef vec< 2, u8, defaultp > u8vec2
 Default qualifier 8 bit unsigned integer vector of 2 components type. More...
 
typedef vec< 3, u8, defaultp > u8vec3
 Default qualifier 8 bit unsigned integer vector of 3 components type. More...
 
typedef vec< 4, u8, defaultp > u8vec4
 Default qualifier 8 bit unsigned integer vector of 4 components type. More...
 
typedef uint16 uint16_t
 Default qualifier 16 bit unsigned integer type. More...
 
typedef uint32 uint32_t
 Default qualifier 32 bit unsigned integer type. More...
 
typedef uint64 uint64_t
 Default qualifier 64 bit unsigned integer type. More...
 
typedef uint8 uint8_t
 Default qualifier 8 bit unsigned integer type. More...
 
+

Detailed Description

+

Include <glm/gtc/type_precision.hpp> to use the features of this extension.

+

Defines specific C++-based qualifier types.

+

Typedef Documentation

+ +
+
+ + + + +
typedef float32 f32
+
+ +

Default 32 bit single-qualifier floating-point scalar.

+

32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 150 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > f32mat2
+
+ +

Single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 552 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > f32mat2x2
+
+ +

Single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 700 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, defaultp > f32mat2x3
+
+ +

Single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 703 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, defaultp > f32mat2x4
+
+ +

Single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 706 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > f32mat3
+
+ +

Single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 553 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, defaultp > f32mat3x2
+
+ +

Single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 701 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > f32mat3x3
+
+ +

Single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 704 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, defaultp > f32mat3x4
+
+ +

Single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 707 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > f32mat4
+
+ +

Single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 554 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, defaultp > f32mat4x2
+
+ +

Single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 702 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, defaultp > f32mat4x3
+
+ +

Single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 705 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > f32mat4x4
+
+ +

Single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 708 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f32, defaultp > f32quat
+
+ +

Single-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 805 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f32, defaultp > f32vec1
+
+ +

Single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 461 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f32, defaultp > f32vec2
+
+ +

Single-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 462 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f32, defaultp > f32vec3
+
+ +

Single-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 463 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f32, defaultp > f32vec4
+
+ +

Single-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 464 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 f64
+
+ +

Default 64 bit double-qualifier floating-point scalar.

+

64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 166 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, defaultp > f64mat2
+
+ +

Double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 584 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, defaultp > f64mat2x2
+
+ +

Double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 780 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f64, defaultp > f64mat2x3
+
+ +

Double-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 783 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f64, defaultp > f64mat2x4
+
+ +

Double-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 786 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, defaultp > f64mat3
+
+ +

Double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 585 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f64, defaultp > f64mat3x2
+
+ +

Double-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 781 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, defaultp > f64mat3x3
+
+ +

Double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 784 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f64, defaultp > f64mat3x4
+
+ +

Double-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 787 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, defaultp > f64mat4
+
+ +

Double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 586 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f64, defaultp > f64mat4x2
+
+ +

Double-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 782 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f64, defaultp > f64mat4x3
+
+ +

Double-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 785 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, defaultp > f64mat4x4
+
+ +

Double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 788 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f64, defaultp > f64quat
+
+ +

Double-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 815 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f64, defaultp > f64vec1
+
+ +

Double-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 501 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, defaultp > f64vec2
+
+ +

Double-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 502 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, defaultp > f64vec3
+
+ +

Double-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 503 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, defaultp > f64vec4
+
+ +

Double-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 504 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float float32
+
+ +

Single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 155 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 float32_t
+
+ +

Default 32 bit single-qualifier floating-point scalar.

+

32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 160 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef double float64
+
+ +

Double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 171 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 float64_t
+
+ +

Default 64 bit double-qualifier floating-point scalar.

+

64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 176 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > fmat2
+
+ +

Single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 536 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, defaultp > fmat2x2
+
+ +

Single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 660 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, defaultp > fmat2x3
+
+ +

Single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 663 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, defaultp > fmat2x4
+
+ +

Single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 666 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > fmat3
+
+ +

Single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 537 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, defaultp > fmat3x2
+
+ +

Single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 661 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, defaultp > fmat3x3
+
+ +

Single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 664 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, defaultp > fmat3x4
+
+ +

Single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 667 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > fmat4
+
+ +

Single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 538 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, defaultp > fmat4x2
+
+ +

Single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 662 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, defaultp > fmat4x3
+
+ +

Single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 665 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, defaultp > fmat4x4
+
+ +

Single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 668 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, float, defaultp > fvec1
+
+ +

Single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 441 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, defaultp > fvec2
+
+ +

Single-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 442 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, defaultp > fvec3
+
+ +

Single-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 443 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, defaultp > fvec4
+
+ +

Single-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 444 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 highp_f32
+
+ +

High 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 149 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat2x2 highp_f32mat2
+
+ +

High single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 548 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, highp > highp_f32mat2x2
+
+ +

High single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 690 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, highp > highp_f32mat2x3
+
+ +

High single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 691 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, highp > highp_f32mat2x4
+
+ +

High single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 692 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat3x3 highp_f32mat3
+
+ +

High single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 549 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, highp > highp_f32mat3x2
+
+ +

High single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 693 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, highp > highp_f32mat3x3
+
+ +

High single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 694 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, highp > highp_f32mat3x4
+
+ +

High single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 695 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f32mat4x4 highp_f32mat4
+
+ +

High single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 550 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, highp > highp_f32mat4x2
+
+ +

High single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 696 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, highp > highp_f32mat4x3
+
+ +

High single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 697 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, highp > highp_f32mat4x4
+
+ +

High single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 698 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f32, highp > highp_f32quat
+
+ +

High single-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 804 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f32, highp > highp_f32vec1
+
+ +

High single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 456 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f32, highp > highp_f32vec2
+
+ +

High single-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 457 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f32, highp > highp_f32vec3
+
+ +

High single-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 458 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f32, highp > highp_f32vec4
+
+ +

High single-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 459 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 highp_f64
+
+ +

High 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 165 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat2x2 highp_f64mat2
+
+ +

High double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 580 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, highp > highp_f64mat2x2
+
+ +

High double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 770 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f64, highp > highp_f64mat2x3
+
+ +

High double-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 771 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f64, highp > highp_f64mat2x4
+
+ +

High double-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 772 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat3x3 highp_f64mat3
+
+ +

High double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 581 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f64, highp > highp_f64mat3x2
+
+ +

High double-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 773 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, highp > highp_f64mat3x3
+
+ +

High double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 774 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f64, highp > highp_f64mat3x4
+
+ +

High double-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 775 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_f64mat4x4 highp_f64mat4
+
+ +

High double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 582 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f64, highp > highp_f64mat4x2
+
+ +

High double-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 776 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f64, highp > highp_f64mat4x3
+
+ +

High double-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 777 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, highp > highp_f64mat4x4
+
+ +

High double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 778 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f64, highp > highp_f64quat
+
+ +

High double-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 814 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f64, highp > highp_f64vec1
+
+ +

High double-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 496 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, highp > highp_f64vec2
+
+ +

High double-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 497 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, highp > highp_f64vec3
+
+ +

High double-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 498 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, highp > highp_f64vec4
+
+ +

High double-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 499 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 highp_float32
+
+ +

High 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 154 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 highp_float32_t
+
+ +

High 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 159 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 highp_float64
+
+ +

High 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 170 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 highp_float64_t
+
+ +

High 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 175 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat2x2 highp_fmat2
+
+ +

High single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 532 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, highp > highp_fmat2x2
+
+ +

High single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision High single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 650 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, highp > highp_fmat2x3
+
+ +

High single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 651 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, highp > highp_fmat2x4
+
+ +

High single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 652 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat3x3 highp_fmat3
+
+ +

High single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 533 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, highp > highp_fmat3x2
+
+ +

High single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 653 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, highp > highp_fmat3x3
+
+ +

High single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 654 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, highp > highp_fmat3x4
+
+ +

High single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 655 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fmat4x4 highp_fmat4
+
+ +

High single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 534 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, highp > highp_fmat4x2
+
+ +

High single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 656 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, highp > highp_fmat4x3
+
+ +

High single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 657 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, highp > highp_fmat4x4
+
+ +

High single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 658 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, float, highp > highp_fvec1
+
+ +

High single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 436 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, highp > highp_fvec2
+
+ +

High Single-qualifier floating-point vector of 2 components.

+
See also
core_precision
+ +

Definition at line 437 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, highp > highp_fvec3
+
+ +

High Single-qualifier floating-point vector of 3 components.

+
See also
core_precision
+ +

Definition at line 438 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, highp > highp_fvec4
+
+ +

High Single-qualifier floating-point vector of 4 components.

+
See also
core_precision
+ +

Definition at line 439 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_i16
+
+ +

High qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 47 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i16, highp > highp_i16vec1
+
+ +

High qualifier 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 252 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i16, highp > highp_i16vec2
+
+ +

High qualifier 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 253 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i16, highp > highp_i16vec3
+
+ +

High qualifier 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 254 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i16, highp > highp_i16vec4
+
+ +

High qualifier 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 255 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_i32
+
+ +

High qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 61 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i32, highp > highp_i32vec1
+
+ +

High qualifier 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 272 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, highp > highp_i32vec2
+
+ +

High qualifier 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 273 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, highp > highp_i32vec3
+
+ +

High qualifier 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 274 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, highp > highp_i32vec4
+
+ +

High qualifier 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 275 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_i64
+
+ +

High qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 75 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i64, highp > highp_i64vec1
+
+ +

High qualifier 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 292 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i64, highp > highp_i64vec2
+
+ +

High qualifier 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 293 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i64, highp > highp_i64vec3
+
+ +

High qualifier 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 294 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i64, highp > highp_i64vec4
+
+ +

High qualifier 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 295 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_i8
+
+ +

High qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 33 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i8, highp > highp_i8vec1
+
+ +

High qualifier 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 232 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i8, highp > highp_i8vec2
+
+ +

High qualifier 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 233 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i8, highp > highp_i8vec3
+
+ +

High qualifier 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 234 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i8, highp > highp_i8vec4
+
+ +

High qualifier 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 235 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_int16
+
+ +

High qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 52 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 highp_int16_t
+
+ +

High qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 56 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_int32
+
+ +

High qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 66 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 highp_int32_t
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 70 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_int64
+
+ +

High qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 80 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 highp_int64_t
+
+ +

High qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 84 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_int8
+
+ +

High qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 38 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 highp_int8_t
+
+ +

High qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 42 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_u16
+
+ +

High qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 105 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u16, highp > highp_u16vec1
+
+ +

High qualifier 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 354 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u16, highp > highp_u16vec2
+
+ +

High qualifier 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 355 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u16, highp > highp_u16vec3
+
+ +

High qualifier 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 356 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u16, highp > highp_u16vec4
+
+ +

High qualifier 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 357 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_u32
+
+ +

High qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 119 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, highp > highp_u32vec1
+
+ +

High qualifier 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 374 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, highp > highp_u32vec2
+
+ +

High qualifier 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 375 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, highp > highp_u32vec3
+
+ +

High qualifier 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 376 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, highp > highp_u32vec4
+
+ +

High qualifier 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 377 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_u64
+
+ +

High qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 133 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u64, highp > highp_u64vec1
+
+ +

High qualifier 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 394 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u64, highp > highp_u64vec2
+
+ +

High qualifier 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 395 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u64, highp > highp_u64vec3
+
+ +

High qualifier 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 396 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u64, highp > highp_u64vec4
+
+ +

High qualifier 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 397 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_u8
+
+ +

High qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 91 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u8, highp > highp_u8vec1
+
+ +

High qualifier 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 334 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u8, highp > highp_u8vec2
+
+ +

High qualifier 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 335 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u8, highp > highp_u8vec3
+
+ +

High qualifier 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 336 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u8, highp > highp_u8vec4
+
+ +

High qualifier 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 337 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_uint16
+
+ +

High qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 110 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 highp_uint16_t
+
+ +

High qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 114 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_uint32
+
+ +

High qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 124 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 highp_uint32_t
+
+ +

High qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 128 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_uint64
+
+ +

High qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 138 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 highp_uint64_t
+
+ +

High qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 142 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_uint8
+
+ +

High qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 96 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 highp_uint8_t
+
+ +

High qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 100 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 i16
+
+ +

16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 48 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i16, defaultp > i16vec1
+
+ +

16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 257 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i16, defaultp > i16vec2
+
+ +

16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 258 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i16, defaultp > i16vec3
+
+ +

16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 259 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i16, defaultp > i16vec4
+
+ +

16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 260 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 i32
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 62 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i32, defaultp > i32vec1
+
+ +

32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 277 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, defaultp > i32vec2
+
+ +

32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 278 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, defaultp > i32vec3
+
+ +

32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 279 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, defaultp > i32vec4
+
+ +

32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 280 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 i64
+
+ +

64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 76 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i64, defaultp > i64vec1
+
+ +

64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 297 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i64, defaultp > i64vec2
+
+ +

64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 298 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i64, defaultp > i64vec3
+
+ +

64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 299 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i64, defaultp > i64vec4
+
+ +

64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 300 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 i8
+
+ +

8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 34 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i8, defaultp > i8vec1
+
+ +

8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 237 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i8, defaultp > i8vec2
+
+ +

8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 238 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i8, defaultp > i8vec3
+
+ +

8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 239 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i8, defaultp > i8vec4
+
+ +

8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 240 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 int16_t
+
+ +

16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 57 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 int32_t
+
+ +

32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 71 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 int64_t
+
+ +

64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 85 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 int8_t
+
+ +

8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 43 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 lowp_f32
+
+ +

Low 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 147 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat2x2 lowp_f32mat2
+
+ +

Low single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 540 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, lowp > lowp_f32mat2x2
+
+ +

Low single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 670 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, lowp > lowp_f32mat2x3
+
+ +

Low single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 671 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, lowp > lowp_f32mat2x4
+
+ +

Low single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 672 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat3x3 lowp_f32mat3
+
+ +

Low single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 541 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, lowp > lowp_f32mat3x2
+
+ +

Low single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 673 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, lowp > lowp_f32mat3x3
+
+ +

Low single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 674 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, lowp > lowp_f32mat3x4
+
+ +

Low single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 675 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f32mat4x4 lowp_f32mat4
+
+ +

Low single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 542 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, lowp > lowp_f32mat4x2
+
+ +

Low single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 676 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, lowp > lowp_f32mat4x3
+
+ +

Low single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 677 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, lowp > lowp_f32mat4x4
+
+ +

Low single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 678 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f32, lowp > lowp_f32quat
+
+ +

Low single-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 802 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f32, lowp > lowp_f32vec1
+
+ +

Low single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 446 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f32, lowp > lowp_f32vec2
+
+ +

Low single-qualifier floating-point vector of 2 components.

+
See also
core_precision
+ +

Definition at line 447 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f32, lowp > lowp_f32vec3
+
+ +

Low single-qualifier floating-point vector of 3 components.

+
See also
core_precision
+ +

Definition at line 448 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f32, lowp > lowp_f32vec4
+
+ +

Low single-qualifier floating-point vector of 4 components.

+
See also
core_precision
+ +

Definition at line 449 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 lowp_f64
+
+ +

Low 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 163 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat2x2 lowp_f64mat2
+
+ +

Low double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 572 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, lowp > lowp_f64mat2x2
+
+ +

Low double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 750 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f64, lowp > lowp_f64mat2x3
+
+ +

Low double-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 751 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f64, lowp > lowp_f64mat2x4
+
+ +

Low double-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 752 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat3x3 lowp_f64mat3
+
+ +

Low double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 573 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f64, lowp > lowp_f64mat3x2
+
+ +

Low double-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 753 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, lowp > lowp_f64mat3x3
+
+ +

Low double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 754 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f64, lowp > lowp_f64mat3x4
+
+ +

Low double-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 755 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_f64mat4x4 lowp_f64mat4
+
+ +

Low double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 574 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f64, lowp > lowp_f64mat4x2
+
+ +

Low double-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 756 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f64, lowp > lowp_f64mat4x3
+
+ +

Low double-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 757 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, lowp > lowp_f64mat4x4
+
+ +

Low double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 758 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f64, lowp > lowp_f64quat
+
+ +

Low double-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 812 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f64, lowp > lowp_f64vec1
+
+ +

Low double-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 486 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, lowp > lowp_f64vec2
+
+ +

Low double-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 487 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, lowp > lowp_f64vec3
+
+ +

Low double-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 488 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, lowp > lowp_f64vec4
+
+ +

Low double-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 489 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 lowp_float32
+
+ +

Low 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 152 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 lowp_float32_t
+
+ +

Low 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 157 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 lowp_float64
+
+ +

Low 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 168 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 lowp_float64_t
+
+ +

Low 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 173 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat2x2 lowp_fmat2
+
+ +

Low single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 524 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, lowp > lowp_fmat2x2
+
+ +

Low single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 630 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, lowp > lowp_fmat2x3
+
+ +

Low single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 631 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, lowp > lowp_fmat2x4
+
+ +

Low single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 632 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat3x3 lowp_fmat3
+
+ +

Low single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 525 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, lowp > lowp_fmat3x2
+
+ +

Low single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 633 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, lowp > lowp_fmat3x3
+
+ +

Low single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 634 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, lowp > lowp_fmat3x4
+
+ +

Low single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 635 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef lowp_fmat4x4 lowp_fmat4
+
+ +

Low single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 526 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, lowp > lowp_fmat4x2
+
+ +

Low single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 636 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, lowp > lowp_fmat4x3
+
+ +

Low single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 637 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, lowp > lowp_fmat4x4
+
+ +

Low single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 638 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, float, lowp > lowp_fvec1
+
+ +

Low single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 426 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, lowp > lowp_fvec2
+
+ +

Low single-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 427 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, lowp > lowp_fvec3
+
+ +

Low single-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 428 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, lowp > lowp_fvec4
+
+ +

Low single-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 429 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_i16
+
+ +

Low qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 45 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i16, lowp > lowp_i16vec1
+
+ +

Low qualifier 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 242 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i16, lowp > lowp_i16vec2
+
+ +

Low qualifier 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 243 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i16, lowp > lowp_i16vec3
+
+ +

Low qualifier 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 244 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i16, lowp > lowp_i16vec4
+
+ +

Low qualifier 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 245 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_i32
+
+ +

Low qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 59 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i32, lowp > lowp_i32vec1
+
+ +

Low qualifier 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 262 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, lowp > lowp_i32vec2
+
+ +

Low qualifier 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 263 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, lowp > lowp_i32vec3
+
+ +

Low qualifier 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 264 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, lowp > lowp_i32vec4
+
+ +

Low qualifier 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 265 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_i64
+
+ +

Low qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 73 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i64, lowp > lowp_i64vec1
+
+ +

Low qualifier 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 282 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i64, lowp > lowp_i64vec2
+
+ +

Low qualifier 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 283 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i64, lowp > lowp_i64vec3
+
+ +

Low qualifier 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 284 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i64, lowp > lowp_i64vec4
+
+ +

Low qualifier 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 285 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_i8
+
+ +

Low qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 31 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i8, lowp > lowp_i8vec1
+
+ +

Low qualifier 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 222 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i8, lowp > lowp_i8vec2
+
+ +

Low qualifier 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 223 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i8, lowp > lowp_i8vec3
+
+ +

Low qualifier 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 224 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i8, lowp > lowp_i8vec4
+
+ +

Low qualifier 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 225 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_int16
+
+ +

Low qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 50 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 lowp_int16_t
+
+ +

Low qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 54 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_int32
+
+ +

Low qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 64 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 lowp_int32_t
+
+ +

Low qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 68 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_int64
+
+ +

Low qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 78 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 lowp_int64_t
+
+ +

Low qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 82 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_int8
+
+ +

Low qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 36 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 lowp_int8_t
+
+ +

Low qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 40 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_u16
+
+ +

Low qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 103 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u16, lowp > lowp_u16vec1
+
+ +

Low qualifier 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 344 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u16, lowp > lowp_u16vec2
+
+ +

Low qualifier 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 345 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u16, lowp > lowp_u16vec3
+
+ +

Low qualifier 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 346 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u16, lowp > lowp_u16vec4
+
+ +

Low qualifier 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 347 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_u32
+
+ +

Low qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 117 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, lowp > lowp_u32vec1
+
+ +

Low qualifier 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 364 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, lowp > lowp_u32vec2
+
+ +

Low qualifier 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 365 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, lowp > lowp_u32vec3
+
+ +

Low qualifier 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 366 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, lowp > lowp_u32vec4
+
+ +

Low qualifier 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 367 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_u64
+
+ +

Low qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 131 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u64, lowp > lowp_u64vec1
+
+ +

Low qualifier 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 384 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u64, lowp > lowp_u64vec2
+
+ +

Low qualifier 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 385 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u64, lowp > lowp_u64vec3
+
+ +

Low qualifier 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 386 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u64, lowp > lowp_u64vec4
+
+ +

Low qualifier 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 387 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_u8
+
+ +

Low qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 89 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u8, lowp > lowp_u8vec1
+
+ +

Low qualifier 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 324 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u8, lowp > lowp_u8vec2
+
+ +

Low qualifier 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 325 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u8, lowp > lowp_u8vec3
+
+ +

Low qualifier 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 326 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u8, lowp > lowp_u8vec4
+
+ +

Low qualifier 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 327 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_uint16
+
+ +

Low qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 108 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 lowp_uint16_t
+
+ +

Low qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 112 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_uint32
+
+ +

Low qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 122 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 lowp_uint32_t
+
+ +

Low qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 126 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_uint64
+
+ +

Low qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 136 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 lowp_uint64_t
+
+ +

Low qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 140 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_uint8
+
+ +

Low qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 94 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 lowp_uint8_t
+
+ +

Low qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 98 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 mediump_f32
+
+ +

Medium 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 148 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat2x2 mediump_f32mat2
+
+ +

Medium single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 544 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, mediump > mediump_f32mat2x2
+
+ +

High single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Low single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 680 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, mediump > mediump_f32mat2x3
+
+ +

Medium single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 681 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, mediump > mediump_f32mat2x4
+
+ +

Medium single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 682 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat3x3 mediump_f32mat3
+
+ +

Medium single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 545 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, mediump > mediump_f32mat3x2
+
+ +

Medium single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 683 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, mediump > mediump_f32mat3x3
+
+ +

Medium single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 684 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, mediump > mediump_f32mat3x4
+
+ +

Medium single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 685 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f32mat4x4 mediump_f32mat4
+
+ +

Medium single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 546 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, mediump > mediump_f32mat4x2
+
+ +

Medium single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 686 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, mediump > mediump_f32mat4x3
+
+ +

Medium single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 687 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, mediump > mediump_f32mat4x4
+
+ +

Medium single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 688 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f32, mediump > mediump_f32quat
+
+ +

Medium single-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 803 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f32, mediump > mediump_f32vec1
+
+ +

Medium single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 451 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f32, mediump > mediump_f32vec2
+
+ +

Medium single-qualifier floating-point vector of 2 components.

+
See also
core_precision
+ +

Definition at line 452 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f32, mediump > mediump_f32vec3
+
+ +

Medium single-qualifier floating-point vector of 3 components.

+
See also
core_precision
+ +

Definition at line 453 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f32, mediump > mediump_f32vec4
+
+ +

Medium single-qualifier floating-point vector of 4 components.

+
See also
core_precision
+ +

Definition at line 454 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 mediump_f64
+
+ +

Medium 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 164 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat2x2 mediump_f64mat2
+
+ +

Medium double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 576 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f64, mediump > mediump_f64mat2x2
+
+ +

Medium double-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium double-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 760 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f64, mediump > mediump_f64mat2x3
+
+ +

Medium double-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 761 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f64, mediump > mediump_f64mat2x4
+
+ +

Medium double-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 762 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat3x3 mediump_f64mat3
+
+ +

Medium double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 577 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f64, mediump > mediump_f64mat3x2
+
+ +

Medium double-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 763 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f64, mediump > mediump_f64mat3x3
+
+ +

Medium double-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 764 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f64, mediump > mediump_f64mat3x4
+
+ +

Medium double-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 765 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_f64mat4x4 mediump_f64mat4
+
+ +

Medium double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 578 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f64, mediump > mediump_f64mat4x2
+
+ +

Medium double-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 766 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f64, mediump > mediump_f64mat4x3
+
+ +

Medium double-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 767 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f64, mediump > mediump_f64mat4x4
+
+ +

Medium double-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 768 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef qua< f64, mediump > mediump_f64quat
+
+ +

Medium double-qualifier floating-point quaternion.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 813 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, f64, mediump > mediump_f64vec1
+
+ +

Medium double-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 491 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, f64, mediump > mediump_f64vec2
+
+ +

Medium double-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 492 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, f64, mediump > mediump_f64vec3
+
+ +

Medium double-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 493 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, f64, mediump > mediump_f64vec4
+
+ +

Medium double-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 494 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 mediump_float32
+
+ +

Medium 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 153 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float32 mediump_float32_t
+
+ +

Medium 32 bit single-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 158 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 mediump_float64
+
+ +

Medium 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 169 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef float64 mediump_float64_t
+
+ +

Medium 64 bit double-qualifier floating-point scalar.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 174 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat2x2 mediump_fmat2
+
+ +

Medium single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 528 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 2, f32, mediump > mediump_fmat2x2
+
+ +

Medium single-qualifier floating-point 1x1 matrix.

+
See also
GLM_GTC_type_precision Medium single-qualifier floating-point 2x2 matrix.
+
+GLM_GTC_type_precision
+ +

Definition at line 640 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 3, f32, mediump > mediump_fmat2x3
+
+ +

Medium single-qualifier floating-point 2x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 641 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 2, 4, f32, mediump > mediump_fmat2x4
+
+ +

Medium single-qualifier floating-point 2x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 642 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat3x3 mediump_fmat3
+
+ +

Medium single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 529 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 2, f32, mediump > mediump_fmat3x2
+
+ +

Medium single-qualifier floating-point 3x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 643 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 3, f32, mediump > mediump_fmat3x3
+
+ +

Medium single-qualifier floating-point 3x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 644 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 3, 4, f32, mediump > mediump_fmat3x4
+
+ +

Medium single-qualifier floating-point 3x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 645 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mediump_fmat4x4 mediump_fmat4
+
+ +

Medium single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 530 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 2, f32, mediump > mediump_fmat4x2
+
+ +

Medium single-qualifier floating-point 4x2 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 646 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 3, f32, mediump > mediump_fmat4x3
+
+ +

Medium single-qualifier floating-point 4x3 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 647 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef mat< 4, 4, f32, mediump > mediump_fmat4x4
+
+ +

Medium single-qualifier floating-point 4x4 matrix.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 648 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, float, mediump > mediump_fvec1
+
+ +

Medium single-qualifier floating-point vector of 1 component.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 431 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, float, mediump > mediump_fvec2
+
+ +

Medium Single-qualifier floating-point vector of 2 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 432 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, float, mediump > mediump_fvec3
+
+ +

Medium Single-qualifier floating-point vector of 3 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 433 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, float, mediump > mediump_fvec4
+
+ +

Medium Single-qualifier floating-point vector of 4 components.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 434 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_i16
+
+ +

Medium qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 46 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i16, mediump > mediump_i16vec1
+
+ +

Medium qualifier 16 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 247 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i16, mediump > mediump_i16vec2
+
+ +

Medium qualifier 16 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 248 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i16, mediump > mediump_i16vec3
+
+ +

Medium qualifier 16 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 249 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i16, mediump > mediump_i16vec4
+
+ +

Medium qualifier 16 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 250 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_i32
+
+ +

Medium qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 60 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i32, mediump > mediump_i32vec1
+
+ +

Medium qualifier 32 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 267 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i32, mediump > mediump_i32vec2
+
+ +

Medium qualifier 32 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 268 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i32, mediump > mediump_i32vec3
+
+ +

Medium qualifier 32 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 269 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i32, mediump > mediump_i32vec4
+
+ +

Medium qualifier 32 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 270 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_i64
+
+ +

Medium qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 74 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i64, mediump > mediump_i64vec1
+
+ +

Medium qualifier 64 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 287 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i64, mediump > mediump_i64vec2
+
+ +

Medium qualifier 64 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 288 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i64, mediump > mediump_i64vec3
+
+ +

Medium qualifier 64 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 289 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i64, mediump > mediump_i64vec4
+
+ +

Medium qualifier 64 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 290 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_i8
+
+ +

Medium qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 32 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, i8, mediump > mediump_i8vec1
+
+ +

Medium qualifier 8 bit signed integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 227 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, i8, mediump > mediump_i8vec2
+
+ +

Medium qualifier 8 bit signed integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 228 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, i8, mediump > mediump_i8vec3
+
+ +

Medium qualifier 8 bit signed integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 229 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, i8, mediump > mediump_i8vec4
+
+ +

Medium qualifier 8 bit signed integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 230 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_int16
+
+ +

Medium qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 51 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int16 mediump_int16_t
+
+ +

Medium qualifier 16 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 55 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_int32
+
+ +

Medium qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 65 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int32 mediump_int32_t
+
+ +

Medium qualifier 32 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 69 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_int64
+
+ +

Medium qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 79 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int64 mediump_int64_t
+
+ +

Medium qualifier 64 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 83 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_int8
+
+ +

Medium qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 37 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::int8 mediump_int8_t
+
+ +

Medium qualifier 8 bit signed integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 41 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_u16
+
+ +

Medium qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 104 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u16, mediump > mediump_u16vec1
+
+ +

Medium qualifier 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 349 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u16, mediump > mediump_u16vec2
+
+ +

Medium qualifier 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 350 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u16, mediump > mediump_u16vec3
+
+ +

Medium qualifier 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 351 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u16, mediump > mediump_u16vec4
+
+ +

Medium qualifier 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 352 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_u32
+
+ +

Medium qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 118 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, mediump > mediump_u32vec1
+
+ +

Medium qualifier 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 369 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, mediump > mediump_u32vec2
+
+ +

Medium qualifier 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 370 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, mediump > mediump_u32vec3
+
+ +

Medium qualifier 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 371 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, mediump > mediump_u32vec4
+
+ +

Medium qualifier 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 372 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_u64
+
+ +

Medium qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 132 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u64, mediump > mediump_u64vec1
+
+ +

Medium qualifier 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 389 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u64, mediump > mediump_u64vec2
+
+ +

Medium qualifier 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 390 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u64, mediump > mediump_u64vec3
+
+ +

Medium qualifier 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 391 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u64, mediump > mediump_u64vec4
+
+ +

Medium qualifier 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 392 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_u8
+
+ +

Medium qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 90 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u8, mediump > mediump_u8vec1
+
+ +

Medium qualifier 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 329 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u8, mediump > mediump_u8vec2
+
+ +

Medium qualifier 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 330 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u8, mediump > mediump_u8vec3
+
+ +

Medium qualifier 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 331 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u8, mediump > mediump_u8vec4
+
+ +

Medium qualifier 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 332 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_uint16
+
+ +

Medium qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 109 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 mediump_uint16_t
+
+ +

Medium qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 113 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_uint32
+
+ +

Medium qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 123 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 mediump_uint32_t
+
+ +

Medium qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 127 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_uint64
+
+ +

Medium qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 137 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 mediump_uint64_t
+
+ +

Medium qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 141 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_uint8
+
+ +

Medium qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 95 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 mediump_uint8_t
+
+ +

Medium qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 99 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 u16
+
+ +

Default qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 106 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u16, defaultp > u16vec1
+
+ +

Default qualifier 16 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 359 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u16, defaultp > u16vec2
+
+ +

Default qualifier 16 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 360 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u16, defaultp > u16vec3
+
+ +

Default qualifier 16 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 361 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u16, defaultp > u16vec4
+
+ +

Default qualifier 16 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 362 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 u32
+
+ +

Default qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 120 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u32, defaultp > u32vec1
+
+ +

Default qualifier 32 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 379 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u32, defaultp > u32vec2
+
+ +

Default qualifier 32 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 380 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u32, defaultp > u32vec3
+
+ +

Default qualifier 32 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 381 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u32, defaultp > u32vec4
+
+ +

Default qualifier 32 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 382 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 u64
+
+ +

Default qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 134 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u64, defaultp > u64vec1
+
+ +

Default qualifier 64 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 399 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u64, defaultp > u64vec2
+
+ +

Default qualifier 64 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 400 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u64, defaultp > u64vec3
+
+ +

Default qualifier 64 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 401 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u64, defaultp > u64vec4
+
+ +

Default qualifier 64 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 402 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 u8
+
+ +

Default qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 92 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 1, u8, defaultp > u8vec1
+
+ +

Default qualifier 8 bit unsigned integer scalar type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 339 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 2, u8, defaultp > u8vec2
+
+ +

Default qualifier 8 bit unsigned integer vector of 2 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 340 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 3, u8, defaultp > u8vec3
+
+ +

Default qualifier 8 bit unsigned integer vector of 3 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 341 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec< 4, u8, defaultp > u8vec4
+
+ +

Default qualifier 8 bit unsigned integer vector of 4 components type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 342 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 uint16_t
+
+ +

Default qualifier 16 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 115 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 uint32_t
+
+ +

Default qualifier 32 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 129 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 uint64_t
+
+ +

Default qualifier 64 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 143 of file fwd.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint8 uint8_t
+
+ +

Default qualifier 8 bit unsigned integer type.

+
See also
GLM_GTC_type_precision
+ +

Definition at line 101 of file fwd.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00305.html b/external/include/glm-0.9.9.8/doc/api/a00305.html index 9ff2cdd631..3755526c64 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00305.html +++ b/external/include/glm-0.9.9.8/doc/api/a00305.html @@ -1,873 +1,873 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_type_ptr - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTC_type_ptr
-
-
- -

Include <glm/gtc/type_ptr.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL qua< T, defaultp > make_quat (T const *const ptr)
 Build a quaternion from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type const * value_ptr (genType const &v)
 Return the constant address to the data of the input parameter. More...
 
-

Detailed Description

-

Include <glm/gtc/type_ptr.hpp> to use the features of this extension.

-

Handles the interaction between pointers and vector, matrix types.

-

This extension defines an overloaded function, glm::value_ptr. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

-

This is useful for uploading data to matrices or copying data to buffer objects.

-

Example:

#include <glm/glm.hpp>
- -
-
glm::vec3 aVector(3);
-
glm::mat4 someMatrix(1.0);
-
-
glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
-
glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
-

<glm/gtc/type_ptr.hpp> need to be included to use the features of this extension.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::make_mat2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::make_mat2x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 3, T, defaultp> glm::make_mat2x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 4, T, defaultp> glm::make_mat2x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::make_mat3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 2, T, defaultp> glm::make_mat3x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::make_mat3x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 4, T, defaultp> glm::make_mat3x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::make_mat4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 2, T, defaultp> glm::make_mat4x2 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 3, T, defaultp> glm::make_mat4x3 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::make_mat4x4 (T const *const ptr)
-
- -

Build a matrix from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, defaultp> glm::make_quat (T const *const ptr)
-
- -

Build a quaternion from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 1, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 2, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 3, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 4, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 1, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 2, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 3, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 4, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<2, T, defaultp> glm::make_vec2 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 1, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 2, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 3, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 4, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, defaultp> glm::make_vec3 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 1, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 2, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 3, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 4, T, Q > const & v)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<4, T, defaultp> glm::make_vec4 (T const *const ptr)
-
- -

Build a vector from a pointer.

-
See also
GLM_GTC_type_ptr
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type const* glm::value_ptr (genType const & v)
-
- -

Return the constant address to the data of the input parameter.

-
See also
GLM_GTC_type_ptr
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_type_ptr + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTC_type_ptr
+
+
+ +

Include <glm/gtc/type_ptr.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > make_mat2x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 3, T, defaultp > make_mat2x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 4, T, defaultp > make_mat2x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 2, T, defaultp > make_mat3x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > make_mat3x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 4, T, defaultp > make_mat3x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 2, T, defaultp > make_mat4x2 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 3, T, defaultp > make_mat4x3 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > make_mat4x4 (T const *const ptr)
 Build a matrix from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL qua< T, defaultp > make_quat (T const *const ptr)
 Build a quaternion from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, T, Q > make_vec1 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > make_vec2 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 2, T, defaultp > make_vec2 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > make_vec3 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 3, T, defaultp > make_vec3 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 1, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 2, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 3, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > make_vec4 (vec< 4, T, Q > const &v)
 Build a vector from a pointer. More...
 
template<typename T >
GLM_FUNC_DECL vec< 4, T, defaultp > make_vec4 (T const *const ptr)
 Build a vector from a pointer. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type const * value_ptr (genType const &v)
 Return the constant address to the data of the input parameter. More...
 
+

Detailed Description

+

Include <glm/gtc/type_ptr.hpp> to use the features of this extension.

+

Handles the interaction between pointers and vector, matrix types.

+

This extension defines an overloaded function, glm::value_ptr. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

+

This is useful for uploading data to matrices or copying data to buffer objects.

+

Example:

#include <glm/glm.hpp>
+ +
+
glm::vec3 aVector(3);
+
glm::mat4 someMatrix(1.0);
+
+
glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
+
glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
+

<glm/gtc/type_ptr.hpp> need to be included to use the features of this extension.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::make_mat2 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::make_mat2x2 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 3, T, defaultp> glm::make_mat2x3 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 4, T, defaultp> glm::make_mat2x4 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::make_mat3 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 2, T, defaultp> glm::make_mat3x2 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::make_mat3x3 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 4, T, defaultp> glm::make_mat3x4 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::make_mat4 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 2, T, defaultp> glm::make_mat4x2 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 3, T, defaultp> glm::make_mat4x3 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::make_mat4x4 (T const *const ptr)
+
+ +

Build a matrix from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, defaultp> glm::make_quat (T const *const ptr)
+
+ +

Build a quaternion from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 1, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 2, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 3, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<1, T, Q> glm::make_vec1 (vec< 4, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 1, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 2, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 3, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, Q> glm::make_vec2 (vec< 4, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<2, T, defaultp> glm::make_vec2 (T const *const ptr)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 1, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 2, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 3, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::make_vec3 (vec< 4, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, defaultp> glm::make_vec3 (T const *const ptr)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 1, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 2, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 3, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::make_vec4 (vec< 4, T, Q > const & v)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<4, T, defaultp> glm::make_vec4 (T const *const ptr)
+
+ +

Build a vector from a pointer.

+
See also
GLM_GTC_type_ptr
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type const* glm::value_ptr (genType const & v)
+
+ +

Return the constant address to the data of the input parameter.

+
See also
GLM_GTC_type_ptr
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00306.html b/external/include/glm-0.9.9.8/doc/api/a00306.html index 1062210d6a..61c2d8882b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00306.html +++ b/external/include/glm-0.9.9.8/doc/api/a00306.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_ulp - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
- -

Include <glm/gtc/ulp.hpp> to use the features of this extension. -More...

-

Include <glm/gtc/ulp.hpp> to use the features of this extension.

-

Allow the measurement of the accuracy of a function against a reference implementation. This extension works on floating-point data and provide results in ULP.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_ulp + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+ +

Include <glm/gtc/ulp.hpp> to use the features of this extension. +More...

+

Include <glm/gtc/ulp.hpp> to use the features of this extension.

+

Allow the measurement of the accuracy of a function against a reference implementation. This extension works on floating-point data and provide results in ULP.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00307.html b/external/include/glm-0.9.9.8/doc/api/a00307.html index 05397e0eee..ae43cce493 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00307.html +++ b/external/include/glm-0.9.9.8/doc/api/a00307.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: GLM_GTC_vec1 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
-
-
- -

Include <glm/gtc/vec1.hpp> to use the features of this extension. -More...

-

Include <glm/gtc/vec1.hpp> to use the features of this extension.

-

Add vec1, ivec1, uvec1 and bvec1 types.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTC_vec1 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
+
+
+ +

Include <glm/gtc/vec1.hpp> to use the features of this extension. +More...

+

Include <glm/gtc/vec1.hpp> to use the features of this extension.

+

Add vec1, ivec1, uvec1 and bvec1 types.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00308.html b/external/include/glm-0.9.9.8/doc/api/a00308.html index 249a8ab11c..3768b7e708 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00308.html +++ b/external/include/glm-0.9.9.8/doc/api/a00308.html @@ -1,1357 +1,1357 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_associated_min_max - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_associated_min_max
-
-
- -

Include <glm/gtx/associated_min_max.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
-

Detailed Description

-

Include <glm/gtx/associated_min_max.hpp> to use the features of this extension.

-

Min and max functions that return associated values not the compared onces.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b 
)
-
- -

Maximum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<2, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b 
)
-
- -

Maximum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b 
)
-
- -

Maximum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b 
)
-
- -

Maximum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b,
T z,
U c 
)
-
- -

Maximum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c 
)
-
- -

Maximum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c 
)
-
- -

Maximum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c 
)
-
- -

Maximum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b,
T z,
U c,
T w,
U d 
)
-
- -

Maximum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c,
vec< L, T, Q > const & w,
vec< L, U, Q > const & d 
)
-
- -

Maximum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c,
T w,
vec< L, U, Q > const & d 
)
-
- -

Maximum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c,
vec< L, T, Q > const & w,
U d 
)
-
- -

Maximum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b 
)
-
- -

Minimum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<2, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b 
)
-
- -

Minimum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (T x,
const vec< L, U, Q > & a,
T y,
const vec< L, U, Q > & b 
)
-
- -

Minimum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b 
)
-
- -

Minimum comparison between 2 variables and returns 2 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b,
T z,
U c 
)
-
- -

Minimum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c 
)
-
- -

Minimum comparison between 3 variables and returns 3 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b,
T z,
U c,
T w,
U d 
)
-
- -

Minimum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c,
vec< L, T, Q > const & w,
vec< L, U, Q > const & d 
)
-
- -

Minimum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c,
T w,
vec< L, U, Q > const & d 
)
-
- -

Minimum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c,
vec< L, T, Q > const & w,
U d 
)
-
- -

Minimum comparison between 4 variables and returns 4 associated variable values.

-
See also
GLM_GTX_associated_min_max
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_associated_min_max + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_associated_min_max
+
+
+ +

Include <glm/gtx/associated_min_max.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Maximum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)
 Maximum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMax (T x, U a, T y, U b, T z, U c, T w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMax (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Maximum comparison between 4 variables and returns 4 associated variable values. More...
 
template<typename T , typename U , qualifier Q>
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< 2, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)
 Minimum comparison between 2 variables and returns 2 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)
 Minimum comparison between 3 variables and returns 3 associated variable values. More...
 
template<typename T , typename U >
GLM_FUNC_DECL U associatedMin (T x, U a, T y, U b, T z, U c, T w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
template<length_t L, typename T , typename U , qualifier Q>
GLM_FUNC_DECL vec< L, U, Q > associatedMin (vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)
 Minimum comparison between 4 variables and returns 4 associated variable values. More...
 
+

Detailed Description

+

Include <glm/gtx/associated_min_max.hpp> to use the features of this extension.

+

Min and max functions that return associated values not the compared onces.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b 
)
+
+ +

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<2, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b 
)
+
+ +

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b 
)
+
+ +

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b 
)
+
+ +

Maximum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b,
T z,
U c 
)
+
+ +

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c 
)
+
+ +

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c 
)
+
+ +

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c 
)
+
+ +

Maximum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMax (T x,
U a,
T y,
U b,
T z,
U c,
T w,
U d 
)
+
+ +

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c,
vec< L, T, Q > const & w,
vec< L, U, Q > const & d 
)
+
+ +

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c,
T w,
vec< L, U, Q > const & d 
)
+
+ +

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMax (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c,
vec< L, T, Q > const & w,
U d 
)
+
+ +

Maximum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b 
)
+
+ +

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<2, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b 
)
+
+ +

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (T x,
const vec< L, U, Q > & a,
T y,
const vec< L, U, Q > & b 
)
+
+ +

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b 
)
+
+ +

Minimum comparison between 2 variables and returns 2 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b,
T z,
U c 
)
+
+ +

Minimum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c 
)
+
+ +

Minimum comparison between 3 variables and returns 3 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL U glm::associatedMin (T x,
U a,
T y,
U b,
T z,
U c,
T w,
U d 
)
+
+ +

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
vec< L, U, Q > const & a,
vec< L, T, Q > const & y,
vec< L, U, Q > const & b,
vec< L, T, Q > const & z,
vec< L, U, Q > const & c,
vec< L, T, Q > const & w,
vec< L, U, Q > const & d 
)
+
+ +

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (T x,
vec< L, U, Q > const & a,
T y,
vec< L, U, Q > const & b,
T z,
vec< L, U, Q > const & c,
T w,
vec< L, U, Q > const & d 
)
+
+ +

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, U, Q> glm::associatedMin (vec< L, T, Q > const & x,
U a,
vec< L, T, Q > const & y,
U b,
vec< L, T, Q > const & z,
U c,
vec< L, T, Q > const & w,
U d 
)
+
+ +

Minimum comparison between 4 variables and returns 4 associated variable values.

+
See also
GLM_GTX_associated_min_max
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00309.html b/external/include/glm-0.9.9.8/doc/api/a00309.html index cd92a541b0..e77c82baf2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00309.html +++ b/external/include/glm-0.9.9.8/doc/api/a00309.html @@ -1,322 +1,322 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_bit - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- - -
- -

Include <glm/gtx/bit.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > highestBitValue (vec< L, T, Q > const &value)
 Find the highest bit set to 1 in a integer variable and return its value. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType lowestBitValue (genIUType Value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove (genIUType Value)
 Return the power of two number which value is just higher the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove (vec< L, T, Q > const &value)
 Return the power of two number which value is just higher the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow (genIUType Value)
 Return the power of two number which value is just lower the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow (vec< L, T, Q > const &value)
 Return the power of two number which value is just lower the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest (genIUType Value)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest (vec< L, T, Q > const &value)
 Return the power of two number which value is the closet to the input value. More...
 
-

Detailed Description

-

Include <glm/gtx/bit.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::highestBitValue (genIUType Value)
-
-
See also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::highestBitValue (vec< L, T, Q > const & value)
-
- -

Find the highest bit set to 1 in a integer variable and return its value.

-
See also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genIUType glm::lowestBitValue (genIUType Value)
-
-
See also
GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove (genIUType Value)
-
- -

Return the power of two number which value is just higher the input value.

-

Deprecated, use ceilPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoAbove (vec< L, T, Q > const & value)
-
- -

Return the power of two number which value is just higher the input value.

-

Deprecated, use ceilPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow (genIUType Value)
-
- -

Return the power of two number which value is just lower the input value.

-

Deprecated, use floorPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoBelow (vec< L, T, Q > const & value)
-
- -

Return the power of two number which value is just lower the input value.

-

Deprecated, use floorPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest (genIUType Value)
-
- -

Return the power of two number which value is the closet to the input value.

-

Deprecated, use roundPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
- -
-
- - - - - - - - -
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoNearest (vec< L, T, Q > const & value)
-
- -

Return the power of two number which value is the closet to the input value.

-

Deprecated, use roundPowerOfTwo from GTC_round instead

-
See also
GLM_GTC_round
-
-GLM_GTX_bit
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_bit + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ + +
+ +

Include <glm/gtx/bit.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genIUType >
GLM_FUNC_DECL genIUType highestBitValue (genIUType Value)
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > highestBitValue (vec< L, T, Q > const &value)
 Find the highest bit set to 1 in a integer variable and return its value. More...
 
template<typename genIUType >
GLM_FUNC_DECL genIUType lowestBitValue (genIUType Value)
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoAbove (genIUType Value)
 Return the power of two number which value is just higher the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoAbove (vec< L, T, Q > const &value)
 Return the power of two number which value is just higher the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoBelow (genIUType Value)
 Return the power of two number which value is just lower the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoBelow (vec< L, T, Q > const &value)
 Return the power of two number which value is just lower the input value. More...
 
template<typename genIUType >
GLM_DEPRECATED GLM_FUNC_DECL genIUType powerOfTwoNearest (genIUType Value)
 Return the power of two number which value is the closet to the input value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_DEPRECATED GLM_FUNC_DECL vec< L, T, Q > powerOfTwoNearest (vec< L, T, Q > const &value)
 Return the power of two number which value is the closet to the input value. More...
 
+

Detailed Description

+

Include <glm/gtx/bit.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::highestBitValue (genIUType Value)
+
+
See also
GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::highestBitValue (vec< L, T, Q > const & value)
+
+ +

Find the highest bit set to 1 in a integer variable and return its value.

+
See also
GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genIUType glm::lowestBitValue (genIUType Value)
+
+
See also
GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoAbove (genIUType Value)
+
+ +

Return the power of two number which value is just higher the input value.

+

Deprecated, use ceilPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoAbove (vec< L, T, Q > const & value)
+
+ +

Return the power of two number which value is just higher the input value.

+

Deprecated, use ceilPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoBelow (genIUType Value)
+
+ +

Return the power of two number which value is just lower the input value.

+

Deprecated, use floorPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoBelow (vec< L, T, Q > const & value)
+
+ +

Return the power of two number which value is just lower the input value.

+

Deprecated, use floorPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL genIUType glm::powerOfTwoNearest (genIUType Value)
+
+ +

Return the power of two number which value is the closet to the input value.

+

Deprecated, use roundPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+ +
+
+ + + + + + + + +
GLM_DEPRECATED GLM_FUNC_DECL vec<L, T, Q> glm::powerOfTwoNearest (vec< L, T, Q > const & value)
+
+ +

Return the power of two number which value is the closet to the input value.

+

Deprecated, use roundPowerOfTwo from GTC_round instead

+
See also
GLM_GTC_round
+
+GLM_GTX_bit
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00310.html b/external/include/glm-0.9.9.8/doc/api/a00310.html index a0d29ab2c8..720949028e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00310.html +++ b/external/include/glm-0.9.9.8/doc/api/a00310.html @@ -1,147 +1,147 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_closest_point - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_closest_point
-
-
- -

Include <glm/gtx/closest_point.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > closestPointOnLine (vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)
 Find the point on a straight line which is the closet of a point. More...
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine (vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
 2d lines work as well
 
-

Detailed Description

-

Include <glm/gtx/closest_point.hpp> to use the features of this extension.

-

Find the point on a straight line which is the closet of a point.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::closestPointOnLine (vec< 3, T, Q > const & point,
vec< 3, T, Q > const & a,
vec< 3, T, Q > const & b 
)
-
- -

Find the point on a straight line which is the closet of a point.

-
See also
GLM_GTX_closest_point
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_closest_point + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_closest_point
+
+
+ +

Include <glm/gtx/closest_point.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > closestPointOnLine (vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)
 Find the point on a straight line which is the closet of a point. More...
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > closestPointOnLine (vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)
 2d lines work as well
 
+

Detailed Description

+

Include <glm/gtx/closest_point.hpp> to use the features of this extension.

+

Find the point on a straight line which is the closet of a point.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::closestPointOnLine (vec< 3, T, Q > const & point,
vec< 3, T, Q > const & a,
vec< 3, T, Q > const & b 
)
+
+ +

Find the point on a straight line which is the closet of a point.

+
See also
GLM_GTX_closest_point
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00311.html b/external/include/glm-0.9.9.8/doc/api/a00311.html index 8c774bd84e..89a09c75a9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00311.html +++ b/external/include/glm-0.9.9.8/doc/api/a00311.html @@ -1,122 +1,122 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_color_encoding - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_color_encoding
-
-
- -

Include <glm/gtx/color_encoding.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to D50 YUV.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to linear sRGB.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D50 YUV.
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D65 YUV.
 
-

Detailed Description

-

Include <glm/gtx/color_encoding.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_color_encoding + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_color_encoding
+
+
+ +

Include <glm/gtx/color_encoding.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToD50XYZ (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to D50 YUV.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertD65XYZToLinearSRGB (vec< 3, T, Q > const &ColorD65XYZ)
 Convert a D65 YUV color to linear sRGB.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD50XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D50 YUV.
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > convertLinearSRGBToD65XYZ (vec< 3, T, Q > const &ColorLinearSRGB)
 Convert a linear sRGB color to D65 YUV.
 
+

Detailed Description

+

Include <glm/gtx/color_encoding.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00312.html b/external/include/glm-0.9.9.8/doc/api/a00312.html index 8a861685f2..996fad75cb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00312.html +++ b/external/include/glm-0.9.9.8/doc/api/a00312.html @@ -1,261 +1,261 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_color_space - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_color_space
-
-
- -

Include <glm/gtx/color_space.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > hsvColor (vec< 3, T, Q > const &rgbValue)
 Converts a color from RGB color space to its color in HSV color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T luminosity (vec< 3, T, Q > const &color)
 Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgbColor (vec< 3, T, Q > const &hsvValue)
 Converts a color from HSV color space to its color in RGB color space. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > saturation (T const s)
 Build a saturation matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > saturation (T const s, vec< 3, T, Q > const &color)
 Modify the saturation of a color. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > saturation (T const s, vec< 4, T, Q > const &color)
 Modify the saturation of a color. More...
 
-

Detailed Description

-

Include <glm/gtx/color_space.hpp> to use the features of this extension.

-

Related to RGB to HSV conversions and operations.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::hsvColor (vec< 3, T, Q > const & rgbValue)
-
- -

Converts a color from RGB color space to its color in HSV color space.

-
See also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::luminosity (vec< 3, T, Q > const & color)
-
- -

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

-
See also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rgbColor (vec< 3, T, Q > const & hsvValue)
-
- -

Converts a color from HSV color space to its color in RGB color space.

-
See also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::saturation (T const s)
-
- -

Build a saturation matrix.

-
See also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::saturation (T const s,
vec< 3, T, Q > const & color 
)
-
- -

Modify the saturation of a color.

-
See also
GLM_GTX_color_space
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::saturation (T const s,
vec< 4, T, Q > const & color 
)
-
- -

Modify the saturation of a color.

-
See also
GLM_GTX_color_space
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_color_space + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_color_space
+
+
+ +

Include <glm/gtx/color_space.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > hsvColor (vec< 3, T, Q > const &rgbValue)
 Converts a color from RGB color space to its color in HSV color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T luminosity (vec< 3, T, Q > const &color)
 Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgbColor (vec< 3, T, Q > const &hsvValue)
 Converts a color from HSV color space to its color in RGB color space. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > saturation (T const s)
 Build a saturation matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > saturation (T const s, vec< 3, T, Q > const &color)
 Modify the saturation of a color. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > saturation (T const s, vec< 4, T, Q > const &color)
 Modify the saturation of a color. More...
 
+

Detailed Description

+

Include <glm/gtx/color_space.hpp> to use the features of this extension.

+

Related to RGB to HSV conversions and operations.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::hsvColor (vec< 3, T, Q > const & rgbValue)
+
+ +

Converts a color from RGB color space to its color in HSV color space.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::luminosity (vec< 3, T, Q > const & color)
+
+ +

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rgbColor (vec< 3, T, Q > const & hsvValue)
+
+ +

Converts a color from HSV color space to its color in RGB color space.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::saturation (T const s)
+
+ +

Build a saturation matrix.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::saturation (T const s,
vec< 3, T, Q > const & color 
)
+
+ +

Modify the saturation of a color.

+
See also
GLM_GTX_color_space
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::saturation (T const s,
vec< 4, T, Q > const & color 
)
+
+ +

Modify the saturation of a color.

+
See also
GLM_GTX_color_space
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00313.html b/external/include/glm-0.9.9.8/doc/api/a00313.html index 07be07e2f9..cb18e845ff 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00313.html +++ b/external/include/glm-0.9.9.8/doc/api/a00313.html @@ -1,199 +1,199 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_color_space_YCoCg - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_color_space_YCoCg
-
-
- -

Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCg color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCgR color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCg color space to RGB color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCgR color space to RGB color space. More...
 
-

Detailed Description

-

Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension.

-

RGB to YCoCg conversions and operations

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rgb2YCoCg (vec< 3, T, Q > const & rgbColor)
-
- -

Convert a color from RGB color space to YCoCg color space.

-
See also
GLM_GTX_color_space_YCoCg
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rgb2YCoCgR (vec< 3, T, Q > const & rgbColor)
-
- -

Convert a color from RGB color space to YCoCgR color space.

-
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
-
-GLM_GTX_color_space_YCoCg
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::YCoCg2rgb (vec< 3, T, Q > const & YCoCgColor)
-
- -

Convert a color from YCoCg color space to RGB color space.

-
See also
GLM_GTX_color_space_YCoCg
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::YCoCgR2rgb (vec< 3, T, Q > const & YCoCgColor)
-
- -

Convert a color from YCoCgR color space to RGB color space.

-
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
-
-GLM_GTX_color_space_YCoCg
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_color_space_YCoCg + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_color_space_YCoCg
+
+
+ +

Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCg (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCg color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rgb2YCoCgR (vec< 3, T, Q > const &rgbColor)
 Convert a color from RGB color space to YCoCgR color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCg2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCg color space to RGB color space. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > YCoCgR2rgb (vec< 3, T, Q > const &YCoCgColor)
 Convert a color from YCoCgR color space to RGB color space. More...
 
+

Detailed Description

+

Include <glm/gtx/color_space_YCoCg.hpp> to use the features of this extension.

+

RGB to YCoCg conversions and operations

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rgb2YCoCg (vec< 3, T, Q > const & rgbColor)
+
+ +

Convert a color from RGB color space to YCoCg color space.

+
See also
GLM_GTX_color_space_YCoCg
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rgb2YCoCgR (vec< 3, T, Q > const & rgbColor)
+
+ +

Convert a color from RGB color space to YCoCgR color space.

+
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::YCoCg2rgb (vec< 3, T, Q > const & YCoCgColor)
+
+ +

Convert a color from YCoCg color space to RGB color space.

+
See also
GLM_GTX_color_space_YCoCg
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::YCoCgR2rgb (vec< 3, T, Q > const & YCoCgColor)
+
+ +

Convert a color from YCoCgR color space to RGB color space.

+
See also
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range"
+
+GLM_GTX_color_space_YCoCg
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00314.html b/external/include/glm-0.9.9.8/doc/api/a00314.html index f300873204..80170a7b2b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00314.html +++ b/external/include/glm-0.9.9.8/doc/api/a00314.html @@ -1,257 +1,257 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_common - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/common.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > closeBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmod (vec< L, T, Q > const &v)
 Similar to 'mod' but with a different rounding and integer support. More...
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > openBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
-

Detailed Description

-

Include <glm/gtx/common.hpp> to use the features of this extension.

-

Provide functions to increase the compatibility with Cg and HLSL languages

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::closeBounded (vec< L, T, Q > const & Value,
vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
-
- -

Returns whether vector components values are within an interval.

-

A closed interval includes its endpoints, and is denoted with square brackets.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_relational
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fmod (vec< L, T, Q > const & v)
-
- -

Similar to 'mod' but with a different rounding and integer support.

-

Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'

-
See also
GLSL mod vs HLSL fmod
-
-GLSL mod man page
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::bool_type glm::isdenormal (genType const & x)
-
- -

Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format.

-

This format is less precise but can represent values closer to zero.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
GLSL isnan man page
-
-GLSL 4.20.8 specification, section 8.3 Common Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::openBounded (vec< L, T, Q > const & Value,
vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
-
- -

Returns whether vector components values are within an interval.

-

A open interval excludes its endpoints, and is denoted with square brackets.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
-
-
-
See also
GLM_EXT_vector_relational
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_common + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/common.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > closeBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fmod (vec< L, T, Q > const &v)
 Similar to 'mod' but with a different rounding and integer support. More...
 
template<typename genType >
GLM_FUNC_DECL genType::bool_type isdenormal (genType const &x)
 Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > openBounded (vec< L, T, Q > const &Value, vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)
 Returns whether vector components values are within an interval. More...
 
+

Detailed Description

+

Include <glm/gtx/common.hpp> to use the features of this extension.

+

Provide functions to increase the compatibility with Cg and HLSL languages

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::closeBounded (vec< L, T, Q > const & Value,
vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
+
+ +

Returns whether vector components values are within an interval.

+

A closed interval includes its endpoints, and is denoted with square brackets.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_relational
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fmod (vec< L, T, Q > const & v)
+
+ +

Similar to 'mod' but with a different rounding and integer support.

+

Returns 'x - y * trunc(x/y)' instead of 'x - y * floor(x/y)'

+
See also
GLSL mod vs HLSL fmod
+
+GLSL mod man page
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::bool_type glm::isdenormal (genType const & x)
+
+ +

Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format.

+

This format is less precise but can represent values closer to zero.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
GLSL isnan man page
+
+GLSL 4.20.8 specification, section 8.3 Common Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::openBounded (vec< L, T, Q > const & Value,
vec< L, T, Q > const & Min,
vec< L, T, Q > const & Max 
)
+
+ +

Returns whether vector components values are within an interval.

+

A open interval excludes its endpoints, and is denoted with square brackets.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or integer scalar types
QValue from qualifier enum
+
+
+
See also
GLM_EXT_vector_relational
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00315.html b/external/include/glm-0.9.9.8/doc/api/a00315.html index 5d9fba7168..0dfa682f5c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00315.html +++ b/external/include/glm-0.9.9.8/doc/api/a00315.html @@ -1,430 +1,430 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_compatibility - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_compatibility
-
-
- -

Include <glm/gtx/compatibility.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef bool bool1
 boolean type with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef bool bool1x1
 boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, bool, highp > bool2
 boolean type with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, bool, highp > bool2x2
 boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, bool, highp > bool2x3
 boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, bool, highp > bool2x4
 boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, bool, highp > bool3
 boolean type with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, bool, highp > bool3x2
 boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, bool, highp > bool3x3
 boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, bool, highp > bool3x4
 boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, bool, highp > bool4
 boolean type with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, bool, highp > bool4x2
 boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, bool, highp > bool4x3
 boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, bool, highp > bool4x4
 boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef double double1
 double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef double double1x1
 double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, double, highp > double2
 double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, double, highp > double2x2
 double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, double, highp > double2x3
 double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, double, highp > double2x4
 double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, double, highp > double3
 double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, double, highp > double3x2
 double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, double, highp > double3x3
 double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, double, highp > double3x4
 double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, double, highp > double4
 double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, double, highp > double4x2
 double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, double, highp > double4x3
 double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, double, highp > double4x4
 double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef float float1
 single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef float float1x1
 single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, float, highp > float2
 single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, float, highp > float2x2
 single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, float, highp > float2x3
 single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, float, highp > float2x4
 single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, float, highp > float3
 single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, float, highp > float3x2
 single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, float, highp > float3x3
 single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, float, highp > float3x4
 single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, float, highp > float4
 single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, float, highp > float4x2
 single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, float, highp > float4x3
 single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, float, highp > float4x4
 single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef int int1
 integer vector with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef int int1x1
 integer matrix with 1 component. (From GLM_GTX_compatibility extension)
 
-typedef vec< 2, int, highp > int2
 integer vector with 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 2, int, highp > int2x2
 integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 3, int, highp > int2x3
 integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 2, 4, int, highp > int2x4
 integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 3, int, highp > int3
 integer vector with 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 2, int, highp > int3x2
 integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 3, int, highp > int3x3
 integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 3, 4, int, highp > int3x4
 integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
-typedef vec< 4, int, highp > int4
 integer vector with 4 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 2, int, highp > int4x2
 integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 3, int, highp > int4x3
 integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
-typedef mat< 4, 4, int, highp > int4x4
 integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > atan2 (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > atan2 (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2 (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
-template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, bool, Q > isfinite (const vec< 1, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, bool, Q > isfinite (const vec< 2, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, bool, Q > isfinite (const vec< 3, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isfinite (const vec< 4, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
-template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T saturate (T x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > saturate (const vec< 2, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > saturate (const vec< 3, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate (const vec< 4, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
-

Detailed Description

-

Include <glm/gtx/compatibility.hpp> to use the features of this extension.

-

Provide functions to increase the compatibility with Cg and HLSL languages

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_compatibility + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_compatibility
+
+
+ +

Include <glm/gtx/compatibility.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef bool bool1
 boolean type with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef bool bool1x1
 boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, bool, highp > bool2
 boolean type with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, bool, highp > bool2x2
 boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, bool, highp > bool2x3
 boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, bool, highp > bool2x4
 boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, bool, highp > bool3
 boolean type with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, bool, highp > bool3x2
 boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, bool, highp > bool3x3
 boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, bool, highp > bool3x4
 boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, bool, highp > bool4
 boolean type with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, bool, highp > bool4x2
 boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, bool, highp > bool4x3
 boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, bool, highp > bool4x4
 boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef double double1
 double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef double double1x1
 double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, double, highp > double2
 double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, double, highp > double2x2
 double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, double, highp > double2x3
 double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, double, highp > double2x4
 double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, double, highp > double3
 double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, double, highp > double3x2
 double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, double, highp > double3x3
 double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, double, highp > double3x4
 double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, double, highp > double4
 double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, double, highp > double4x2
 double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, double, highp > double4x3
 double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, double, highp > double4x4
 double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef float float1
 single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef float float1x1
 single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, float, highp > float2
 single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, float, highp > float2x2
 single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, float, highp > float2x3
 single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, float, highp > float2x4
 single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, float, highp > float3
 single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, float, highp > float3x2
 single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, float, highp > float3x3
 single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, float, highp > float3x4
 single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, float, highp > float4
 single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, float, highp > float4x2
 single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, float, highp > float4x3
 single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, float, highp > float4x4
 single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef int int1
 integer vector with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef int int1x1
 integer matrix with 1 component. (From GLM_GTX_compatibility extension)
 
+typedef vec< 2, int, highp > int2
 integer vector with 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 2, int, highp > int2x2
 integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 3, int, highp > int2x3
 integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 2, 4, int, highp > int2x4
 integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 3, int, highp > int3
 integer vector with 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 2, int, highp > int3x2
 integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 3, int, highp > int3x3
 integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 3, 4, int, highp > int3x4
 integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
 
+typedef vec< 4, int, highp > int4
 integer vector with 4 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 2, int, highp > int4x2
 integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 3, int, highp > int4x3
 integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
 
+typedef mat< 4, 4, int, highp > int4x4
 integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T atan2 (T x, T y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > atan2 (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > atan2 (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > atan2 (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility)
 
+template<typename genType >
GLM_FUNC_DECL bool isfinite (genType const &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 1, bool, Q > isfinite (const vec< 1, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, bool, Q > isfinite (const vec< 2, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, bool, Q > isfinite (const vec< 3, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > isfinite (const vec< 4, T, Q > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)
 
+template<typename T >
GLM_FUNC_QUALIFIER T lerp (T x, T y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)
 Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > lerp (const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > lerp (const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > lerp (const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)
 Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER T saturate (T x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 2, T, Q > saturate (const vec< 2, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 3, T, Q > saturate (const vec< 3, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER vec< 4, T, Q > saturate (const vec< 4, T, Q > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility)
 
+

Detailed Description

+

Include <glm/gtx/compatibility.hpp> to use the features of this extension.

+

Provide functions to increase the compatibility with Cg and HLSL languages

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00316.html b/external/include/glm-0.9.9.8/doc/api/a00316.html index e25aed46c2..504a519c64 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00316.html +++ b/external/include/glm-0.9.9.8/doc/api/a00316.html @@ -1,241 +1,241 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_component_wise - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_component_wise
-
-
- -

Include <glm/gtx/component_wise.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 Add all vector components together. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 Find the maximum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 Find the minimum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 Multiply all vector components together. More...
 
template<typename floatType , length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize (vec< L, T, Q > const &v)
 Convert an integer vector to a normalized float vector. More...
 
template<length_t L, typename T , typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > compScale (vec< L, floatType, Q > const &v)
 Convert a normalized float vector to an integer vector. More...
 
-

Detailed Description

-

Include <glm/gtx/component_wise.hpp> to use the features of this extension.

-

Operations between components of a type

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::compAdd (genType const & v)
-
- -

Add all vector components together.

-
See also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::compMax (genType const & v)
-
- -

Find the maximum value between single vector components.

-
See also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::compMin (genType const & v)
-
- -

Find the minimum value between single vector components.

-
See also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType::value_type glm::compMul (genType const & v)
-
- -

Multiply all vector components together.

-
See also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, floatType, Q> glm::compNormalize (vec< L, T, Q > const & v)
-
- -

Convert an integer vector to a normalized float vector.

-

If the parameter value type is already a floating qualifier type, the value is passed through.

See also
GLM_GTX_component_wise
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::compScale (vec< L, floatType, Q > const & v)
-
- -

Convert a normalized float vector to an integer vector.

-

If the parameter value type is already a floating qualifier type, the value is passed through.

See also
GLM_GTX_component_wise
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_component_wise + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_component_wise
+
+
+ +

Include <glm/gtx/component_wise.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType::value_type compAdd (genType const &v)
 Add all vector components together. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMax (genType const &v)
 Find the maximum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMin (genType const &v)
 Find the minimum value between single vector components. More...
 
template<typename genType >
GLM_FUNC_DECL genType::value_type compMul (genType const &v)
 Multiply all vector components together. More...
 
template<typename floatType , length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, floatType, Q > compNormalize (vec< L, T, Q > const &v)
 Convert an integer vector to a normalized float vector. More...
 
template<length_t L, typename T , typename floatType , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > compScale (vec< L, floatType, Q > const &v)
 Convert a normalized float vector to an integer vector. More...
 
+

Detailed Description

+

Include <glm/gtx/component_wise.hpp> to use the features of this extension.

+

Operations between components of a type

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::compAdd (genType const & v)
+
+ +

Add all vector components together.

+
See also
GLM_GTX_component_wise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::compMax (genType const & v)
+
+ +

Find the maximum value between single vector components.

+
See also
GLM_GTX_component_wise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::compMin (genType const & v)
+
+ +

Find the minimum value between single vector components.

+
See also
GLM_GTX_component_wise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType::value_type glm::compMul (genType const & v)
+
+ +

Multiply all vector components together.

+
See also
GLM_GTX_component_wise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, floatType, Q> glm::compNormalize (vec< L, T, Q > const & v)
+
+ +

Convert an integer vector to a normalized float vector.

+

If the parameter value type is already a floating qualifier type, the value is passed through.

See also
GLM_GTX_component_wise
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::compScale (vec< L, floatType, Q > const & v)
+
+ +

Convert a normalized float vector to an integer vector.

+

If the parameter value type is already a floating qualifier type, the value is passed through.

See also
GLM_GTX_component_wise
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00317.html b/external/include/glm-0.9.9.8/doc/api/a00317.html index 1094b1da06..a97c9107e7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00317.html +++ b/external/include/glm-0.9.9.8/doc/api/a00317.html @@ -1,547 +1,547 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_dual_quaternion - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_dual_quaternion
-
-
- -

Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef highp_ddualquat ddualquat
 Dual-quaternion of default double-qualifier floating-point numbers. More...
 
typedef highp_fdualquat dualquat
 Dual-quaternion of floating-point numbers. More...
 
typedef highp_fdualquat fdualquat
 Dual-quaternion of single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, highp > highp_ddualquat
 Dual-quaternion of high double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_dualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_fdualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, lowp > lowp_ddualquat
 Dual-quaternion of low double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_dualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_fdualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, mediump > mediump_ddualquat
 Dual-quaternion of medium double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_dualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_fdualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity ()
 Creates an identity dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 2, 4, T, Q > const &x)
 Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 3, 4, T, Q > const &x)
 Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > inverse (tdualquat< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > lerp (tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
 Returns the linear interpolation of two dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 2 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 3 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > normalize (tdualquat< T, Q > const &q)
 Returns the normalized quaternion. More...
 
-

Detailed Description

-

Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension.

-

Defines a templated dual-quaternion type and several dual-quaternion operations.

-

Typedef Documentation

- -
-
- - - - -
typedef highp_ddualquat ddualquat
-
- -

Dual-quaternion of default double-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 260 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat dualquat
-
- -

Dual-quaternion of floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 236 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef highp_fdualquat fdualquat
-
- -

Dual-quaternion of single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 241 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<double, highp> highp_ddualquat
-
- -

Dual-quaternion of high double-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 229 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, highp> highp_dualquat
-
- -

Dual-quaternion of high single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 197 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, highp> highp_fdualquat
-
- -

Dual-quaternion of high single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 213 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<double, lowp> lowp_ddualquat
-
- -

Dual-quaternion of low double-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 219 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, lowp> lowp_dualquat
-
- -

Dual-quaternion of low single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 187 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, lowp> lowp_fdualquat
-
- -

Dual-quaternion of low single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 203 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<double, mediump> mediump_ddualquat
-
- -

Dual-quaternion of medium double-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 224 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, mediump> mediump_dualquat
-
- -

Dual-quaternion of medium single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 192 of file dual_quaternion.hpp.

- -
-
- -
-
- - - - -
typedef tdualquat<float, mediump> mediump_fdualquat
-
- -

Dual-quaternion of medium single-qualifier floating-point numbers.

-
See also
GLM_GTX_dual_quaternion
- -

Definition at line 208 of file dual_quaternion.hpp.

- -
-
-

Function Documentation

- -
-
- - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::dual_quat_identity ()
-
- -

Creates an identity dual quaternion.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::dualquat_cast (mat< 2, 4, T, Q > const & x)
-
- -

Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::dualquat_cast (mat< 3, 4, T, Q > const & x)
-
- -

Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::inverse (tdualquat< T, Q > const & q)
-
- -

Returns the q inverse.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::lerp (tdualquat< T, Q > const & x,
tdualquat< T, Q > const & y,
T const & a 
)
-
- -

Returns the linear interpolation of two dual quaternion.

-
See also
gtc_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 4, T, Q> glm::mat2x4_cast (tdualquat< T, Q > const & x)
-
- -

Converts a quaternion to a 2 * 4 matrix.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 4, T, Q> glm::mat3x4_cast (tdualquat< T, Q > const & x)
-
- -

Converts a quaternion to a 3 * 4 matrix.

-
See also
GLM_GTX_dual_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL tdualquat<T, Q> glm::normalize (tdualquat< T, Q > const & q)
-
- -

Returns the normalized quaternion.

-
See also
GLM_GTX_dual_quaternion
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_dual_quaternion + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_dual_quaternion
+
+
+ +

Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef highp_ddualquat ddualquat
 Dual-quaternion of default double-qualifier floating-point numbers. More...
 
typedef highp_fdualquat dualquat
 Dual-quaternion of floating-point numbers. More...
 
typedef highp_fdualquat fdualquat
 Dual-quaternion of single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, highp > highp_ddualquat
 Dual-quaternion of high double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_dualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, highp > highp_fdualquat
 Dual-quaternion of high single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, lowp > lowp_ddualquat
 Dual-quaternion of low double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_dualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, lowp > lowp_fdualquat
 Dual-quaternion of low single-qualifier floating-point numbers. More...
 
typedef tdualquat< double, mediump > mediump_ddualquat
 Dual-quaternion of medium double-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_dualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
typedef tdualquat< float, mediump > mediump_fdualquat
 Dual-quaternion of medium single-qualifier floating-point numbers. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dual_quat_identity ()
 Creates an identity dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 2, 4, T, Q > const &x)
 Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > dualquat_cast (mat< 3, 4, T, Q > const &x)
 Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > inverse (tdualquat< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > lerp (tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)
 Returns the linear interpolation of two dual quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > mat2x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 2 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > mat3x4_cast (tdualquat< T, Q > const &x)
 Converts a quaternion to a 3 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL tdualquat< T, Q > normalize (tdualquat< T, Q > const &q)
 Returns the normalized quaternion. More...
 
+

Detailed Description

+

Include <glm/gtx/dual_quaternion.hpp> to use the features of this extension.

+

Defines a templated dual-quaternion type and several dual-quaternion operations.

+

Typedef Documentation

+ +
+
+ + + + +
typedef highp_ddualquat ddualquat
+
+ +

Dual-quaternion of default double-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 260 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fdualquat dualquat
+
+ +

Dual-quaternion of floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 236 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef highp_fdualquat fdualquat
+
+ +

Dual-quaternion of single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 241 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, highp> highp_ddualquat
+
+ +

Dual-quaternion of high double-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 229 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, highp> highp_dualquat
+
+ +

Dual-quaternion of high single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 197 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, highp> highp_fdualquat
+
+ +

Dual-quaternion of high single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 213 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, lowp> lowp_ddualquat
+
+ +

Dual-quaternion of low double-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 219 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, lowp> lowp_dualquat
+
+ +

Dual-quaternion of low single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 187 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, lowp> lowp_fdualquat
+
+ +

Dual-quaternion of low single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 203 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<double, mediump> mediump_ddualquat
+
+ +

Dual-quaternion of medium double-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 224 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, mediump> mediump_dualquat
+
+ +

Dual-quaternion of medium single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 192 of file dual_quaternion.hpp.

+ +
+
+ +
+
+ + + + +
typedef tdualquat<float, mediump> mediump_fdualquat
+
+ +

Dual-quaternion of medium single-qualifier floating-point numbers.

+
See also
GLM_GTX_dual_quaternion
+ +

Definition at line 208 of file dual_quaternion.hpp.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::dual_quat_identity ()
+
+ +

Creates an identity dual quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::dualquat_cast (mat< 2, 4, T, Q > const & x)
+
+ +

Converts a 2 * 4 matrix (matrix which holds real and dual parts) to a quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::dualquat_cast (mat< 3, 4, T, Q > const & x)
+
+ +

Converts a 3 * 4 matrix (augmented matrix rotation + translation) to a quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::inverse (tdualquat< T, Q > const & q)
+
+ +

Returns the q inverse.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::lerp (tdualquat< T, Q > const & x,
tdualquat< T, Q > const & y,
T const & a 
)
+
+ +

Returns the linear interpolation of two dual quaternion.

+
See also
gtc_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 4, T, Q> glm::mat2x4_cast (tdualquat< T, Q > const & x)
+
+ +

Converts a quaternion to a 2 * 4 matrix.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 4, T, Q> glm::mat3x4_cast (tdualquat< T, Q > const & x)
+
+ +

Converts a quaternion to a 3 * 4 matrix.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL tdualquat<T, Q> glm::normalize (tdualquat< T, Q > const & q)
+
+ +

Returns the normalized quaternion.

+
See also
GLM_GTX_dual_quaternion
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00318.html b/external/include/glm-0.9.9.8/doc/api/a00318.html index 472762e69c..b508baabf2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00318.html +++ b/external/include/glm-0.9.9.8/doc/api/a00318.html @@ -1,892 +1,892 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_easing - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/easing.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseIn (genType const &a)
 Modelled after shifted quadrant IV of unit circle. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseInOut (genType const &a)
 Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseOut (genType const &a)
 Modelled after shifted quadrant II of unit circle. More...
 
-template<typename genType >
GLM_FUNC_DECL genType cubicEaseIn (genType const &a)
 Modelled after the cubic y = x^3.
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseInOut (genType const &a)
 Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseOut (genType const &a)
 Modelled after the cubic y = (x - 1)^3 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseIn (genType const &a)
 Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseInOut (genType const &a)
 Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseOut (genType const &a)
 Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseIn (genType const &a)
 Modelled after the exponential function y = 2^(10(x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseInOut (genType const &a)
 Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseOut (genType const &a)
 Modelled after the exponential function y = -2^(-10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearInterpolation (genType const &a)
 Modelled after the line y = x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseIn (genType const &a)
 Modelled after the parabola y = x^2. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseInOut (genType const &a)
 Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseOut (genType const &a)
 Modelled after the parabola y = -x^2 + 2x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseIn (genType const &a)
 Modelled after the quartic x^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseInOut (genType const &a)
 Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseOut (genType const &a)
 Modelled after the quartic y = 1 - (x - 1)^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseIn (genType const &a)
 Modelled after the quintic y = x^5. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseInOut (genType const &a)
 Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseOut (genType const &a)
 Modelled after the quintic y = (x - 1)^5 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseIn (genType const &a)
 Modelled after quarter-cycle of sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseInOut (genType const &a)
 Modelled after half sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseOut (genType const &a)
 Modelled after quarter-cycle of sine wave (different phase) More...
 
-

Detailed Description

-

Include <glm/gtx/easing.hpp> to use the features of this extension.

-

Easing functions for animations and transitons All functions take a parameter x in the range [0.0,1.0]

-

Based on the AHEasing project of Warren Moore (https://github.com/warrenm/AHEasing)

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseIn (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseIn (genType const & a,
genType const & o 
)
-
-
Parameters
- - - -
aparameter
oOptional overshoot modifier
-
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseInOut (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseInOut (genType const & a,
genType const & o 
)
-
-
Parameters
- - - -
aparameter
oOptional overshoot modifier
-
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseOut (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::backEaseOut (genType const & a,
genType const & o 
)
-
-
Parameters
- - - -
aparameter
oOptional overshoot modifier
-
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::bounceEaseIn (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::bounceEaseInOut (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::bounceEaseOut (genType const & a)
-
-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::circularEaseIn (genType const & a)
-
- -

Modelled after shifted quadrant IV of unit circle.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::circularEaseInOut (genType const & a)
-
- -

Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::circularEaseOut (genType const & a)
-
- -

Modelled after shifted quadrant II of unit circle.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::cubicEaseInOut (genType const & a)
-
- -

Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::cubicEaseOut (genType const & a)
-
- -

Modelled after the cubic y = (x - 1)^3 + 1.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::elasticEaseIn (genType const & a)
-
- -

Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1))

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::elasticEaseInOut (genType const & a)
-
- -

Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::elasticEaseOut (genType const & a)
-
- -

Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::exponentialEaseIn (genType const & a)
-
- -

Modelled after the exponential function y = 2^(10(x - 1))

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::exponentialEaseInOut (genType const & a)
-
- -

Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::exponentialEaseOut (genType const & a)
-
- -

Modelled after the exponential function y = -2^(-10x) + 1.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::linearInterpolation (genType const & a)
-
- -

Modelled after the line y = x.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quadraticEaseIn (genType const & a)
-
- -

Modelled after the parabola y = x^2.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quadraticEaseInOut (genType const & a)
-
- -

Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quadraticEaseOut (genType const & a)
-
- -

Modelled after the parabola y = -x^2 + 2x.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quarticEaseIn (genType const & a)
-
- -

Modelled after the quartic x^4.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quarticEaseInOut (genType const & a)
-
- -

Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quarticEaseOut (genType const & a)
-
- -

Modelled after the quartic y = 1 - (x - 1)^4.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quinticEaseIn (genType const & a)
-
- -

Modelled after the quintic y = x^5.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quinticEaseInOut (genType const & a)
-
- -

Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1].

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::quinticEaseOut (genType const & a)
-
- -

Modelled after the quintic y = (x - 1)^5 + 1.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sineEaseIn (genType const & a)
-
- -

Modelled after quarter-cycle of sine wave.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sineEaseInOut (genType const & a)
-
- -

Modelled after half sine wave.

-
See also
GLM_GTX_easing
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::sineEaseOut (genType const & a)
-
- -

Modelled after quarter-cycle of sine wave (different phase)

-
See also
GLM_GTX_easing
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_easing + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/easing.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseIn (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseInOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType backEaseOut (genType const &a, genType const &o)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseIn (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseInOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType bounceEaseOut (genType const &a)
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseIn (genType const &a)
 Modelled after shifted quadrant IV of unit circle. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseInOut (genType const &a)
 Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType circularEaseOut (genType const &a)
 Modelled after shifted quadrant II of unit circle. More...
 
+template<typename genType >
GLM_FUNC_DECL genType cubicEaseIn (genType const &a)
 Modelled after the cubic y = x^3.
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseInOut (genType const &a)
 Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubicEaseOut (genType const &a)
 Modelled after the cubic y = (x - 1)^3 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseIn (genType const &a)
 Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseInOut (genType const &a)
 Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType elasticEaseOut (genType const &a)
 Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseIn (genType const &a)
 Modelled after the exponential function y = 2^(10(x - 1)) More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseInOut (genType const &a)
 Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType exponentialEaseOut (genType const &a)
 Modelled after the exponential function y = -2^(-10x) + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType linearInterpolation (genType const &a)
 Modelled after the line y = x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseIn (genType const &a)
 Modelled after the parabola y = x^2. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseInOut (genType const &a)
 Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quadraticEaseOut (genType const &a)
 Modelled after the parabola y = -x^2 + 2x. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseIn (genType const &a)
 Modelled after the quartic x^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseInOut (genType const &a)
 Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quarticEaseOut (genType const &a)
 Modelled after the quartic y = 1 - (x - 1)^4. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseIn (genType const &a)
 Modelled after the quintic y = x^5. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseInOut (genType const &a)
 Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1]. More...
 
template<typename genType >
GLM_FUNC_DECL genType quinticEaseOut (genType const &a)
 Modelled after the quintic y = (x - 1)^5 + 1. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseIn (genType const &a)
 Modelled after quarter-cycle of sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseInOut (genType const &a)
 Modelled after half sine wave. More...
 
template<typename genType >
GLM_FUNC_DECL genType sineEaseOut (genType const &a)
 Modelled after quarter-cycle of sine wave (different phase) More...
 
+

Detailed Description

+

Include <glm/gtx/easing.hpp> to use the features of this extension.

+

Easing functions for animations and transitons All functions take a parameter x in the range [0.0,1.0]

+

Based on the AHEasing project of Warren Moore (https://github.com/warrenm/AHEasing)

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseIn (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseIn (genType const & a,
genType const & o 
)
+
+
Parameters
+ + + +
aparameter
oOptional overshoot modifier
+
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseInOut (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseInOut (genType const & a,
genType const & o 
)
+
+
Parameters
+ + + +
aparameter
oOptional overshoot modifier
+
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseOut (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::backEaseOut (genType const & a,
genType const & o 
)
+
+
Parameters
+ + + +
aparameter
oOptional overshoot modifier
+
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::bounceEaseIn (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::bounceEaseInOut (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::bounceEaseOut (genType const & a)
+
+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::circularEaseIn (genType const & a)
+
+ +

Modelled after shifted quadrant IV of unit circle.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::circularEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise circular function y = (1/2)(1 - sqrt(1 - 4x^2)) ; [0, 0.5) y = (1/2)(sqrt(-(2x - 3)*(2x - 1)) + 1) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::circularEaseOut (genType const & a)
+
+ +

Modelled after shifted quadrant II of unit circle.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::cubicEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise cubic y = (1/2)((2x)^3) ; [0, 0.5) y = (1/2)((2x-2)^3 + 2) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::cubicEaseOut (genType const & a)
+
+ +

Modelled after the cubic y = (x - 1)^3 + 1.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::elasticEaseIn (genType const & a)
+
+ +

Modelled after the damped sine wave y = sin(13pi/2*x)*pow(2, 10 * (x - 1))

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::elasticEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise exponentially-damped sine wave: y = (1/2)*sin(13pi/2*(2*x))*pow(2, 10 * ((2*x) - 1)) ; [0,0.5) y = (1/2)*(sin(-13pi/2*((2x-1)+1))*pow(2,-10(2*x-1)) + 2) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::elasticEaseOut (genType const & a)
+
+ +

Modelled after the damped sine wave y = sin(-13pi/2*(x + 1))*pow(2, -10x) + 1.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::exponentialEaseIn (genType const & a)
+
+ +

Modelled after the exponential function y = 2^(10(x - 1))

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::exponentialEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise exponential y = (1/2)2^(10(2x - 1)) ; [0,0.5) y = -(1/2)*2^(-10(2x - 1))) + 1 ; [0.5,1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::exponentialEaseOut (genType const & a)
+
+ +

Modelled after the exponential function y = -2^(-10x) + 1.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::linearInterpolation (genType const & a)
+
+ +

Modelled after the line y = x.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quadraticEaseIn (genType const & a)
+
+ +

Modelled after the parabola y = x^2.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quadraticEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise quadratic y = (1/2)((2x)^2) ; [0, 0.5) y = -(1/2)((2x-1)*(2x-3) - 1) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quadraticEaseOut (genType const & a)
+
+ +

Modelled after the parabola y = -x^2 + 2x.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quarticEaseIn (genType const & a)
+
+ +

Modelled after the quartic x^4.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quarticEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise quartic y = (1/2)((2x)^4) ; [0, 0.5) y = -(1/2)((2x-2)^4 - 2) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quarticEaseOut (genType const & a)
+
+ +

Modelled after the quartic y = 1 - (x - 1)^4.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quinticEaseIn (genType const & a)
+
+ +

Modelled after the quintic y = x^5.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quinticEaseInOut (genType const & a)
+
+ +

Modelled after the piecewise quintic y = (1/2)((2x)^5) ; [0, 0.5) y = (1/2)((2x-2)^5 + 2) ; [0.5, 1].

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::quinticEaseOut (genType const & a)
+
+ +

Modelled after the quintic y = (x - 1)^5 + 1.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::sineEaseIn (genType const & a)
+
+ +

Modelled after quarter-cycle of sine wave.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::sineEaseInOut (genType const & a)
+
+ +

Modelled after half sine wave.

+
See also
GLM_GTX_easing
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::sineEaseOut (genType const & a)
+
+ +

Modelled after quarter-cycle of sine wave (different phase)

+
See also
GLM_GTX_easing
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00319.html b/external/include/glm-0.9.9.8/doc/api/a00319.html index bcbccb5f71..ba2ff98447 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00319.html +++ b/external/include/glm-0.9.9.8/doc/api/a00319.html @@ -1,1609 +1,1609 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_euler_angles - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_euler_angles
-
-
- -

Include <glm/gtx/euler_angles.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX (T const &angleX, T const &angularVelocityX)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY (T const &angleY, T const &angularVelocityY)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ (T const &angleZ, T const &angularVelocityZ)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX (T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY (T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ (T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2 (T const &angle)
 Creates a 2D 2 * 2 rotation matrix from an euler angle. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > orientate3 (T const &angle)
 Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3 (vec< 3, T, Q > const &angles)
 Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4 (vec< 3, T, Q > const &angles)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
-

Detailed Description

-

Include <glm/gtx/euler_angles.hpp> to use the features of this extension.

-

Build matrices from Euler angles.

-

Extraction of Euler angles from rotation matrix. Based on the original paper 2014 Mike Day - Extracting Euler Angles from a Rotation Matrix.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleX (T const & angleX,
T const & angularVelocityX 
)
-
- -

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleY (T const & angleY,
T const & angularVelocityY 
)
-
- -

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleZ (T const & angleZ,
T const & angularVelocityZ 
)
-
- -

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleX (T const & angleX)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXY (T const & angleX,
T const & angleY 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXYX (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXYZ (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZ (T const & angleX,
T const & angleZ 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZX (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZY (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleY (T const & angleY)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYX (T const & angleY,
T const & angleX 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYXY (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYXZ (T const & yaw,
T const & pitch,
T const & roll 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZ (T const & angleY,
T const & angleZ 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZX (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZY (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZ (T const & angleZ)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZX (T const & angle,
T const & angleX 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZXY (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZXZ (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZY (T const & angleZ,
T const & angleY 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZYX (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZYZ (T const & t1,
T const & t2,
T const & t3 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleXYX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (X * Y * X) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (X * Y * Z) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleXZX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (X * Z * X) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleXZY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (X * Z * Y) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleYXY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Y * X * Y) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Y * X * Z) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleYZX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Y * Z * X) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleYZY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Y * Z * Y) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleZXY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Z * X * Y) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Z * X * Z) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleZYX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Z * Y * X) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
-
- -

Extracts the (Z * Y * Z) Euler angles from the rotation matrix M.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::orientate2 (T const & angle)
-
- -

Creates a 2D 2 * 2 rotation matrix from an euler angle.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::orientate3 (T const & angle)
-
- -

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::orientate3 (vec< 3, T, Q > const & angles)
-
- -

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::orientate4 (vec< 3, T, Q > const & angles)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::yawPitchRoll (T const & yaw,
T const & pitch,
T const & roll 
)
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-
See also
GLM_GTX_euler_angles
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_euler_angles + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_euler_angles
+
+
+ +

Include <glm/gtx/euler_angles.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleX (T const &angleX, T const &angularVelocityX)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleY (T const &angleY, T const &angularVelocityY)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > derivedEulerAngleZ (T const &angleZ, T const &angularVelocityZ)
 Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleX (T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXY (T const &angleX, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZ (T const &angleX, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleXZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleY (T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYX (T const &angleY, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYXZ (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZ (T const &angleY, T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleYZY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZ (T const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z. More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZX (T const &angle, T const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXY (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZXZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZY (T const &angleZ, T const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYX (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > eulerAngleZYZ (T const &t1, T const &t2, T const &t3)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z). More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleXZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (X * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleYZY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Y * Z * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXY (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Y) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * X * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYX (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * X) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL void extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const &M, T &t1, T &t2, T &t3)
 Extracts the (Z * Y * Z) Euler angles from the rotation matrix M. More...
 
template<typename T >
GLM_FUNC_DECL mat< 2, 2, T, defaultp > orientate2 (T const &angle)
 Creates a 2D 2 * 2 rotation matrix from an euler angle. More...
 
template<typename T >
GLM_FUNC_DECL mat< 3, 3, T, defaultp > orientate3 (T const &angle)
 Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orientate3 (vec< 3, T, Q > const &angles)
 Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientate4 (vec< 3, T, Q > const &angles)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
template<typename T >
GLM_FUNC_DECL mat< 4, 4, T, defaultp > yawPitchRoll (T const &yaw, T const &pitch, T const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z). More...
 
+

Detailed Description

+

Include <glm/gtx/euler_angles.hpp> to use the features of this extension.

+

Build matrices from Euler angles.

+

Extraction of Euler angles from rotation matrix. Based on the original paper 2014 Mike Day - Extracting Euler Angles from a Rotation Matrix.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleX (T const & angleX,
T const & angularVelocityX 
)
+
+ +

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about X-axis.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleY (T const & angleY,
T const & angularVelocityY 
)
+
+ +

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Y-axis.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::derivedEulerAngleZ (T const & angleZ,
T const & angularVelocityZ 
)
+
+ +

Creates a 3D 4 * 4 homogeneous derived matrix from the rotation matrix about Z-axis.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleX (T const & angleX)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXY (T const & angleX,
T const & angleY 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXYX (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXYZ (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZ (T const & angleX,
T const & angleZ 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZX (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleXZY (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleY (T const & angleY)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYX (T const & angleY,
T const & angleX 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYXY (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYXZ (T const & yaw,
T const & pitch,
T const & roll 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZ (T const & angleY,
T const & angleZ 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZX (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleYZY (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZ (T const & angleZ)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZX (T const & angle,
T const & angleX 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZXY (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZXZ (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZY (T const & angleZ,
T const & angleY 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZYX (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * X).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::eulerAngleZYZ (T const & t1,
T const & t2,
T const & t3 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleXYX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (X * Y * X) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleXYZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (X * Y * Z) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleXZX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (X * Z * X) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleXZY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (X * Z * Y) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleYXY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Y * X * Y) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleYXZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Y * X * Z) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleYZX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Y * Z * X) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleYZY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Y * Z * Y) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleZXY (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Z * X * Y) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleZXZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Z * X * Z) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleZYX (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Z * Y * X) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::extractEulerAngleZYZ (mat< 4, 4, T, defaultp > const & M,
T & t1,
T & t2,
T & t3 
)
+
+ +

Extracts the (Z * Y * Z) Euler angles from the rotation matrix M.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, defaultp> glm::orientate2 (T const & angle)
+
+ +

Creates a 2D 2 * 2 rotation matrix from an euler angle.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, defaultp> glm::orientate3 (T const & angle)
+
+ +

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::orientate3 (vec< 3, T, Q > const & angles)
+
+ +

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::orientate4 (vec< 3, T, Q > const & angles)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, defaultp> glm::yawPitchRoll (T const & yaw,
T const & pitch,
T const & roll 
)
+
+ +

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

+
See also
GLM_GTX_euler_angles
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00320.html b/external/include/glm-0.9.9.8/doc/api/a00320.html index c5cfba23bd..c8d16dada8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00320.html +++ b/external/include/glm-0.9.9.8/doc/api/a00320.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_extend - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/extend.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 Extends of Length the Origin position using the (Source - Origin) direction. More...
 
-

Detailed Description

-

Include <glm/gtx/extend.hpp> to use the features of this extension.

-

Extend a position from a source to a position at a defined length.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::extend (genType const & Origin,
genType const & Source,
typename genType::value_type const Length 
)
-
- -

Extends of Length the Origin position using the (Source - Origin) direction.

-
See also
GLM_GTX_extend
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_extend + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/extend.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 Extends of Length the Origin position using the (Source - Origin) direction. More...
 
+

Detailed Description

+

Include <glm/gtx/extend.hpp> to use the features of this extension.

+

Extend a position from a source to a position at a defined length.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::extend (genType const & Origin,
genType const & Source,
typename genType::value_type const Length 
)
+
+ +

Extends of Length the Origin position using the (Source - Origin) direction.

+
See also
GLM_GTX_extend
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00321.html b/external/include/glm-0.9.9.8/doc/api/a00321.html index e2baf1bc44..fc46024b07 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00321.html +++ b/external/include/glm-0.9.9.8/doc/api/a00321.html @@ -1,831 +1,831 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_extented_min_max - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_extented_min_max
-
-
- -

Include <glm/gtx/extented_min_max.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType fclamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmax (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmin (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
-

Detailed Description

-

Include <glm/gtx/extented_min_max.hpp> to use the features of this extension.

-

Min and max functions for 3 to 4 parameters.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fclamp (genType x,
genType minVal,
genType maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
genTypeFloating-point scalar or vector types.
-
-
-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fclamp (vec< L, T, Q > const & x,
T minVal,
T maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fclamp (vec< L, T, Q > const & x,
vec< L, T, Q > const & minVal,
vec< L, T, Q > const & maxVal 
)
-
- -

Returns min(max(x, minVal), maxVal) for each component in x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fmax (genType x,
genType y 
)
-
- -

Returns y if x < y; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
genTypeFloating-point; scalar or vector types.
-
-
-
See also
gtx_extented_min_max
-
-std::fmax documentation
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fmin (genType x,
genType y 
)
-
- -

Returns y if y < x; otherwise, it returns x.

-

If one of the two arguments is NaN, the value of the other argument is returned.

-
Template Parameters
- - -
genTypeFloating-point or integer; scalar or vector types.
-
-
-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::max (T const & x,
T const & y,
T const & z 
)
-
- -

Return the maximum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
-
- -

Return the maximum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
-
- -

Return the maximum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::max (T const & x,
T const & y,
T const & z,
T const & w 
)
-
- -

Return the maximum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-
- -

Return the maximum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
-
- -

Return the maximum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::min (T const & x,
T const & y,
T const & z 
)
-
- -

Return the minimum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
-
- -

Return the minimum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
-
- -

Return the minimum component-wise values of 3 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::min (T const & x,
T const & y,
T const & z,
T const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
-
- -

Return the minimum component-wise values of 4 inputs.

-
See also
gtx_extented_min_max
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_extented_min_max + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_extented_min_max
+
+
+ +

Include <glm/gtx/extented_min_max.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType fclamp (genType x, genType minVal, genType maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, T minVal, T maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fclamp (vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmax (genType x, genType y)
 Returns y if x < y; otherwise, it returns x. More...
 
template<typename genType >
GLM_FUNC_DECL genType fmin (genType x, genType y)
 Returns y if y < x; otherwise, it returns x. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the maximum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T max (T const &x, T const &y, T const &z, T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > max (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the maximum component-wise values of 4 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z)
 Return the minimum component-wise values of 3 inputs. More...
 
template<typename T >
GLM_FUNC_DECL T min (T const &x, T const &y, T const &z, T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
template<typename T , template< typename > class C>
GLM_FUNC_DECL C< T > min (C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)
 Return the minimum component-wise values of 4 inputs. More...
 
+

Detailed Description

+

Include <glm/gtx/extented_min_max.hpp> to use the features of this extension.

+

Min and max functions for 3 to 4 parameters.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fclamp (genType x,
genType minVal,
genType maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
genTypeFloating-point scalar or vector types.
+
+
+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fclamp (vec< L, T, Q > const & x,
T minVal,
T maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fclamp (vec< L, T, Q > const & x,
vec< L, T, Q > const & minVal,
vec< L, T, Q > const & maxVal 
)
+
+ +

Returns min(max(x, minVal), maxVal) for each component in x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fmax (genType x,
genType y 
)
+
+ +

Returns y if x < y; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
genTypeFloating-point; scalar or vector types.
+
+
+
See also
gtx_extented_min_max
+
+std::fmax documentation
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fmin (genType x,
genType y 
)
+
+ +

Returns y if y < x; otherwise, it returns x.

+

If one of the two arguments is NaN, the value of the other argument is returned.

+
Template Parameters
+ + +
genTypeFloating-point or integer; scalar or vector types.
+
+
+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::max (T const & x,
T const & y,
T const & z 
)
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
+
+ +

Return the maximum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::max (T const & x,
T const & y,
T const & z,
T const & w 
)
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::max (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
+
+ +

Return the maximum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::min (T const & x,
T const & y,
T const & z 
)
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z 
)
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z 
)
+
+ +

Return the minimum component-wise values of 3 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::min (T const & x,
T const & y,
T const & z,
T const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
typename C< T >::T const & y,
typename C< T >::T const & z,
typename C< T >::T const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL C<T> glm::min (C< T > const & x,
C< T > const & y,
C< T > const & z,
C< T > const & w 
)
+
+ +

Return the minimum component-wise values of 4 inputs.

+
See also
gtx_extented_min_max
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00322.html b/external/include/glm-0.9.9.8/doc/api/a00322.html index f7109e29d7..68677bf5bc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00322.html +++ b/external/include/glm-0.9.9.8/doc/api/a00322.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_exterior_product - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_exterior_product
-
-
- -

Include <glm/gtx/exterior_product.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T cross (vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
 Returns the cross product of x and y. More...
 
-

Detailed Description

-

Include <glm/gtx/exterior_product.hpp> to use the features of this extension.

-

Allow to perform bit operations on integer values

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::cross (vec< 2, T, Q > const & v,
vec< 2, T, Q > const & u 
)
-
- -

Returns the cross product of x and y.

-
Template Parameters
- - - -
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
Exterior product
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_exterior_product + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_exterior_product
+
+
+ +

Include <glm/gtx/exterior_product.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T cross (vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)
 Returns the cross product of x and y. More...
 
+

Detailed Description

+

Include <glm/gtx/exterior_product.hpp> to use the features of this extension.

+

Allow to perform bit operations on integer values

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::cross (vec< 2, T, Q > const & v,
vec< 2, T, Q > const & u 
)
+
+ +

Returns the cross product of x and y.

+
Template Parameters
+ + + +
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
Exterior product
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00323.html b/external/include/glm-0.9.9.8/doc/api/a00323.html index 67c39bbf5d..96a9fe9c6b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00323.html +++ b/external/include/glm-0.9.9.8/doc/api/a00323.html @@ -1,409 +1,409 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_fast_exponential - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_fast_exponential
-
-
- -

Include <glm/gtx/fast_exponential.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 Faster than the common exp function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp (vec< L, T, Q > const &x)
 Faster than the common exp function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 Faster than the common exp2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp2 (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 Faster than the common log function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 Faster than the common log2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog2 (vec< L, T, Q > const &x)
 Faster than the common log2 function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common pow function but less accurate. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x)
 Faster than the common pow function but less accurate. More...
 
-

Detailed Description

-

Include <glm/gtx/fast_exponential.hpp> to use the features of this extension.

-

Fast but less accurate implementations of exponential based functions.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastExp (T x)
-
- -

Faster than the common exp function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastExp (vec< L, T, Q > const & x)
-
- -

Faster than the common exp function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastExp2 (T x)
-
- -

Faster than the common exp2 function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastExp2 (vec< L, T, Q > const & x)
-
- -

Faster than the common exp2 function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastLog (T x)
-
- -

Faster than the common log function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastLog (vec< L, T, Q > const & x)
-
- -

Faster than the common exp2 function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastLog2 (T x)
-
- -

Faster than the common log2 function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastLog2 (vec< L, T, Q > const & x)
-
- -

Faster than the common log2 function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fastPow (genType x,
genType y 
)
-
- -

Faster than the common pow function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastPow (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Faster than the common pow function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genTypeT glm::fastPow (genTypeT x,
genTypeU y 
)
-
- -

Faster than the common pow function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastPow (vec< L, T, Q > const & x)
-
- -

Faster than the common pow function but less accurate.

-
See also
GLM_GTX_fast_exponential
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_fast_exponential + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_fast_exponential
+
+
+ +

Include <glm/gtx/fast_exponential.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fastExp (T x)
 Faster than the common exp function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp (vec< L, T, Q > const &x)
 Faster than the common exp function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastExp2 (T x)
 Faster than the common exp2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastExp2 (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog (T x)
 Faster than the common log function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog (vec< L, T, Q > const &x)
 Faster than the common exp2 function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastLog2 (T x)
 Faster than the common log2 function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastLog2 (vec< L, T, Q > const &x)
 Faster than the common log2 function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastPow (genType x, genType y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common pow function but less accurate. More...
 
template<typename genTypeT , typename genTypeU >
GLM_FUNC_DECL genTypeT fastPow (genTypeT x, genTypeU y)
 Faster than the common pow function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastPow (vec< L, T, Q > const &x)
 Faster than the common pow function but less accurate. More...
 
+

Detailed Description

+

Include <glm/gtx/fast_exponential.hpp> to use the features of this extension.

+

Fast but less accurate implementations of exponential based functions.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastExp (T x)
+
+ +

Faster than the common exp function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastExp (vec< L, T, Q > const & x)
+
+ +

Faster than the common exp function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastExp2 (T x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastExp2 (vec< L, T, Q > const & x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastLog (T x)
+
+ +

Faster than the common log function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastLog (vec< L, T, Q > const & x)
+
+ +

Faster than the common exp2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastLog2 (T x)
+
+ +

Faster than the common log2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastLog2 (vec< L, T, Q > const & x)
+
+ +

Faster than the common log2 function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fastPow (genType x,
genType y 
)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastPow (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genTypeT glm::fastPow (genTypeT x,
genTypeU y 
)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastPow (vec< L, T, Q > const & x)
+
+ +

Faster than the common pow function but less accurate.

+
See also
GLM_GTX_fast_exponential
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00324.html b/external/include/glm-0.9.9.8/doc/api/a00324.html index 5afa8b2ec0..9adcf06069 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00324.html +++ b/external/include/glm-0.9.9.8/doc/api/a00324.html @@ -1,332 +1,332 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_fast_square_root - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_fast_square_root
-
-
- -

Include <glm/gtx/fast_square_root.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 Faster than the common distance function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastDistance (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common distance function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt (vec< L, T, Q > const &x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 Faster than the common length function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastLength (vec< L, T, Q > const &x)
 Faster than the common length function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 Faster than the common normalize function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 Faster than the common sqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastSqrt (vec< L, T, Q > const &x)
 Faster than the common sqrt function but less accurate. More...
 
-

Detailed Description

-

Include <glm/gtx/fast_square_root.hpp> to use the features of this extension.

-

Fast but less accurate implementations of square root based functions.

    -
  • Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956
  • -
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::fastDistance (genType x,
genType y 
)
-
- -

Faster than the common distance function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fastDistance (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Faster than the common distance function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fastInverseSqrt (genType x)
-
- -

Faster than the common inversesqrt function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastInverseSqrt (vec< L, T, Q > const & x)
-
- -

Faster than the common inversesqrt function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fastLength (genType x)
-
- -

Faster than the common length function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastLength (vec< L, T, Q > const & x)
-
- -

Faster than the common length function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fastNormalize (genType const & x)
-
- -

Faster than the common normalize function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::fastSqrt (genType x)
-
- -

Faster than the common sqrt function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::fastSqrt (vec< L, T, Q > const & x)
-
- -

Faster than the common sqrt function but less accurate.

-
See also
GLM_GTX_fast_square_root extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_fast_square_root + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_fast_square_root
+
+
+ +

Include <glm/gtx/fast_square_root.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType fastDistance (genType x, genType y)
 Faster than the common distance function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastDistance (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Faster than the common distance function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastInverseSqrt (genType x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastInverseSqrt (vec< L, T, Q > const &x)
 Faster than the common inversesqrt function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastLength (genType x)
 Faster than the common length function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastLength (vec< L, T, Q > const &x)
 Faster than the common length function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastNormalize (genType const &x)
 Faster than the common normalize function but less accurate. More...
 
template<typename genType >
GLM_FUNC_DECL genType fastSqrt (genType x)
 Faster than the common sqrt function but less accurate. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > fastSqrt (vec< L, T, Q > const &x)
 Faster than the common sqrt function but less accurate. More...
 
+

Detailed Description

+

Include <glm/gtx/fast_square_root.hpp> to use the features of this extension.

+

Fast but less accurate implementations of square root based functions.

    +
  • Sqrt optimisation based on Newton's method, www.gamedev.net/community/forums/topic.asp?topic id=139956
  • +
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::fastDistance (genType x,
genType y 
)
+
+ +

Faster than the common distance function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fastDistance (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Faster than the common distance function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fastInverseSqrt (genType x)
+
+ +

Faster than the common inversesqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastInverseSqrt (vec< L, T, Q > const & x)
+
+ +

Faster than the common inversesqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fastLength (genType x)
+
+ +

Faster than the common length function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastLength (vec< L, T, Q > const & x)
+
+ +

Faster than the common length function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fastNormalize (genType const & x)
+
+ +

Faster than the common normalize function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::fastSqrt (genType x)
+
+ +

Faster than the common sqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::fastSqrt (vec< L, T, Q > const & x)
+
+ +

Faster than the common sqrt function but less accurate.

+
See also
GLM_GTX_fast_square_root extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00325.html b/external/include/glm-0.9.9.8/doc/api/a00325.html index c55bae1e75..0c8cc0b89e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00325.html +++ b/external/include/glm-0.9.9.8/doc/api/a00325.html @@ -1,296 +1,296 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_fast_trigonometry - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_fast_trigonometry
-
-
- -

Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 Faster than the common acos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 Faster than the common asin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 Faster than the common cos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 Faster than the common sin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 Faster than the common tan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. More...
 
-

Detailed Description

-

Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension.

-

Fast but less accurate implementations of trigonometric functions.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastAcos (T angle)
-
- -

Faster than the common acos function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastAsin (T angle)
-
- -

Faster than the common asin function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fastAtan (T y,
T x 
)
-
- -

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastAtan (T angle)
-
- -

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastCos (T angle)
-
- -

Faster than the common cos function but less accurate.

-

From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastSin (T angle)
-
- -

Faster than the common sin function but less accurate.

-

From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::fastTan (T angle)
-
- -

Faster than the common tan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::wrapAngle (T angle)
-
- -

Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_fast_trigonometry + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_fast_trigonometry
+
+
+ +

Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T fastAcos (T angle)
 Faster than the common acos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAsin (T angle)
 Faster than the common asin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T y, T x)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastAtan (T angle)
 Faster than the common atan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastCos (T angle)
 Faster than the common cos function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastSin (T angle)
 Faster than the common sin function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T fastTan (T angle)
 Faster than the common tan function but less accurate. More...
 
template<typename T >
GLM_FUNC_DECL T wrapAngle (T angle)
 Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension. More...
 
+

Detailed Description

+

Include <glm/gtx/fast_trigonometry.hpp> to use the features of this extension.

+

Fast but less accurate implementations of trigonometric functions.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastAcos (T angle)
+
+ +

Faster than the common acos function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastAsin (T angle)
+
+ +

Faster than the common asin function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fastAtan (T y,
T x 
)
+
+ +

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastAtan (T angle)
+
+ +

Faster than the common atan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastCos (T angle)
+
+ +

Faster than the common cos function but less accurate.

+

From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastSin (T angle)
+
+ +

Faster than the common sin function but less accurate.

+

From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::fastTan (T angle)
+
+ +

Faster than the common tan function but less accurate.

+

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::wrapAngle (T angle)
+
+ +

Wrap an angle to [0 2pi[ From GLM_GTX_fast_trigonometry extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00326.html b/external/include/glm-0.9.9.8/doc/api/a00326.html index eca04d6878..d705401f1e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00326.html +++ b/external/include/glm-0.9.9.8/doc/api/a00326.html @@ -1,181 +1,181 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_functions
-
-
- -

Include <glm/gtx/functions.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T >
GLM_FUNC_DECL T gauss (T x, T ExpectedValue, T StandardDeviation)
 1D gauss function More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T gauss (vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
 2D gauss function More...
 
-

Detailed Description

-

Include <glm/gtx/functions.hpp> to use the features of this extension.

-

List of useful common functions.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::gauss (T x,
T ExpectedValue,
T StandardDeviation 
)
-
- -

1D gauss function

-
See also
GLM_GTC_epsilon
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::gauss (vec< 2, T, Q > const & Coord,
vec< 2, T, Q > const & ExpectedValue,
vec< 2, T, Q > const & StandardDeviation 
)
-
- -

2D gauss function

-
See also
GLM_GTC_epsilon
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_functions
+
+
+ +

Include <glm/gtx/functions.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T >
GLM_FUNC_DECL T gauss (T x, T ExpectedValue, T StandardDeviation)
 1D gauss function More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T gauss (vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)
 2D gauss function More...
 
+

Detailed Description

+

Include <glm/gtx/functions.hpp> to use the features of this extension.

+

List of useful common functions.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::gauss (T x,
T ExpectedValue,
T StandardDeviation 
)
+
+ +

1D gauss function

+
See also
GLM_GTC_epsilon
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::gauss (vec< 2, T, Q > const & Coord,
vec< 2, T, Q > const & ExpectedValue,
vec< 2, T, Q > const & StandardDeviation 
)
+
+ +

2D gauss function

+
See also
GLM_GTC_epsilon
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00327.html b/external/include/glm-0.9.9.8/doc/api/a00327.html index 2c886e16fb..171895b600 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00327.html +++ b/external/include/glm-0.9.9.8/doc/api/a00327.html @@ -1,187 +1,187 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_gradient_paint - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_gradient_paint
-
-
- -

Include <glm/gtx/gradient_paint.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T linearGradient (vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
 Return a color from a linear gradient. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T radialGradient (vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
 Return a color from a radial gradient. More...
 
-

Detailed Description

-

Include <glm/gtx/gradient_paint.hpp> to use the features of this extension.

-

Functions that return the color of procedural gradient for specific coordinates.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::linearGradient (vec< 2, T, Q > const & Point0,
vec< 2, T, Q > const & Point1,
vec< 2, T, Q > const & Position 
)
-
- -

Return a color from a linear gradient.

-
See also
- GLM_GTX_gradient_paint
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::radialGradient (vec< 2, T, Q > const & Center,
T const & Radius,
vec< 2, T, Q > const & Focal,
vec< 2, T, Q > const & Position 
)
-
- -

Return a color from a radial gradient.

-
See also
- GLM_GTX_gradient_paint
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_gradient_paint + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_gradient_paint
+
+
+ +

Include <glm/gtx/gradient_paint.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL T linearGradient (vec< 2, T, Q > const &Point0, vec< 2, T, Q > const &Point1, vec< 2, T, Q > const &Position)
 Return a color from a linear gradient. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T radialGradient (vec< 2, T, Q > const &Center, T const &Radius, vec< 2, T, Q > const &Focal, vec< 2, T, Q > const &Position)
 Return a color from a radial gradient. More...
 
+

Detailed Description

+

Include <glm/gtx/gradient_paint.hpp> to use the features of this extension.

+

Functions that return the color of procedural gradient for specific coordinates.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::linearGradient (vec< 2, T, Q > const & Point0,
vec< 2, T, Q > const & Point1,
vec< 2, T, Q > const & Position 
)
+
+ +

Return a color from a linear gradient.

+
See also
- GLM_GTX_gradient_paint
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::radialGradient (vec< 2, T, Q > const & Center,
T const & Radius,
vec< 2, T, Q > const & Focal,
vec< 2, T, Q > const & Position 
)
+
+ +

Return a color from a radial gradient.

+
See also
- GLM_GTX_gradient_paint
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00328.html b/external/include/glm-0.9.9.8/doc/api/a00328.html index eb690a8ab4..2c29e335aa 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00328.html +++ b/external/include/glm-0.9.9.8/doc/api/a00328.html @@ -1,181 +1,181 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_handed_coordinate_space - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_handed_coordinate_space
-
-
- -

Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool leftHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron left handed or not. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool rightHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron right handed or not. More...
 
-

Detailed Description

-

Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension.

-

To know if a set of three basis vectors defines a right or left-handed coordinate system.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::leftHanded (vec< 3, T, Q > const & tangent,
vec< 3, T, Q > const & binormal,
vec< 3, T, Q > const & normal 
)
-
- -

Return if a trihedron left handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::rightHanded (vec< 3, T, Q > const & tangent,
vec< 3, T, Q > const & binormal,
vec< 3, T, Q > const & normal 
)
-
- -

Return if a trihedron right handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_handed_coordinate_space + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_handed_coordinate_space
+
+
+ +

Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool leftHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron left handed or not. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool rightHanded (vec< 3, T, Q > const &tangent, vec< 3, T, Q > const &binormal, vec< 3, T, Q > const &normal)
 Return if a trihedron right handed or not. More...
 
+

Detailed Description

+

Include <glm/gtx/handed_coordinate_system.hpp> to use the features of this extension.

+

To know if a set of three basis vectors defines a right or left-handed coordinate system.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::leftHanded (vec< 3, T, Q > const & tangent,
vec< 3, T, Q > const & binormal,
vec< 3, T, Q > const & normal 
)
+
+ +

Return if a trihedron left handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::rightHanded (vec< 3, T, Q > const & tangent,
vec< 3, T, Q > const & binormal,
vec< 3, T, Q > const & normal 
)
+
+ +

Return if a trihedron right handed or not.

+

From GLM_GTX_handed_coordinate_space extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00329.html b/external/include/glm-0.9.9.8/doc/api/a00329.html index 68032c1a09..4de305009e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00329.html +++ b/external/include/glm-0.9.9.8/doc/api/a00329.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_hash - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
- -

Include <glm/gtx/hash.hpp> to use the features of this extension. -More...

-

Include <glm/gtx/hash.hpp> to use the features of this extension.

-

Add std::hash support for glm types

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_hash + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+ +

Include <glm/gtx/hash.hpp> to use the features of this extension. +More...

+

Include <glm/gtx/hash.hpp> to use the features of this extension.

+

Add std::hash support for glm types

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00330.html b/external/include/glm-0.9.9.8/doc/api/a00330.html index 6624113955..ebac4a91af 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00330.html +++ b/external/include/glm-0.9.9.8/doc/api/a00330.html @@ -1,366 +1,366 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_integer - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/integer.hpp> to use the features of this extension. -More...

- - - - - -

-Typedefs

typedef signed int sint
 32bit signed integer. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. More...
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 Returns the floor log2 of x. More...
 
GLM_FUNC_DECL int mod (int x, int y)
 Modulus. More...
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 Modulus. More...
 
GLM_FUNC_DECL uint nlz (uint x)
 Returns the number of leading zeros. More...
 
GLM_FUNC_DECL int pow (int x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL int sqrt (int x)
 Returns the positive square root of x. More...
 
GLM_FUNC_DECL uint sqrt (uint x)
 Returns the positive square root of x. More...
 
-

Detailed Description

-

Include <glm/gtx/integer.hpp> to use the features of this extension.

-

Add support for integer for core functions

-

Typedef Documentation

- -
-
- - - - -
typedef signed int sint
-
- -

32bit signed integer.

-

From GLM_GTX_integer extension.

- -

Definition at line 55 of file gtx/integer.hpp.

- -
-
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::factorial (genType const & x)
-
- -

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL unsigned int glm::floor_log2 (unsigned int x)
-
- -

Returns the floor log2 of x.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int glm::mod (int x,
int y 
)
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint glm::mod (uint x,
uint y 
)
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::nlz (uint x)
-
- -

Returns the number of leading zeros.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL int glm::pow (int x,
uint y 
)
-
- -

Returns x raised to the y power.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL uint glm::pow (uint x,
uint y 
)
-
- -

Returns x raised to the y power.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::sqrt (int x)
-
- -

Returns the positive square root of x.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::sqrt (uint x)
-
- -

Returns the positive square root of x.

-

From GLM_GTX_integer extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_integer + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/integer.hpp> to use the features of this extension. +More...

+ + + + + +

+Typedefs

typedef signed int sint
 32bit signed integer. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType factorial (genType const &x)
 Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension. More...
 
GLM_FUNC_DECL unsigned int floor_log2 (unsigned int x)
 Returns the floor log2 of x. More...
 
GLM_FUNC_DECL int mod (int x, int y)
 Modulus. More...
 
GLM_FUNC_DECL uint mod (uint x, uint y)
 Modulus. More...
 
GLM_FUNC_DECL uint nlz (uint x)
 Returns the number of leading zeros. More...
 
GLM_FUNC_DECL int pow (int x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL uint pow (uint x, uint y)
 Returns x raised to the y power. More...
 
GLM_FUNC_DECL int sqrt (int x)
 Returns the positive square root of x. More...
 
GLM_FUNC_DECL uint sqrt (uint x)
 Returns the positive square root of x. More...
 
+

Detailed Description

+

Include <glm/gtx/integer.hpp> to use the features of this extension.

+

Add support for integer for core functions

+

Typedef Documentation

+ +
+
+ + + + +
typedef signed int sint
+
+ +

32bit signed integer.

+

From GLM_GTX_integer extension.

+ +

Definition at line 55 of file gtx/integer.hpp.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::factorial (genType const & x)
+
+ +

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL unsigned int glm::floor_log2 (unsigned int x)
+
+ +

Returns the floor log2 of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int glm::mod (int x,
int y 
)
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint glm::mod (uint x,
uint y 
)
+
+ +

Modulus.

+

Returns x - y * floor(x / y) for each component in x using the floating point value y. From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::nlz (uint x)
+
+ +

Returns the number of leading zeros.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL int glm::pow (int x,
uint y 
)
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL uint glm::pow (uint x,
uint y 
)
+
+ +

Returns x raised to the y power.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::sqrt (int x)
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::sqrt (uint x)
+
+ +

Returns the positive square root of x.

+

From GLM_GTX_integer extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00331.html b/external/include/glm-0.9.9.8/doc/api/a00331.html index e4d2bf2924..07aeaf8d0c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00331.html +++ b/external/include/glm-0.9.9.8/doc/api/a00331.html @@ -1,451 +1,451 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_intersect - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_intersect
-
-
- -

Include <glm/gtx/intersect.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 Compute the intersection of a line and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 Compute the intersection of a line and a triangle. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 Compute the intersection of a ray and a plane. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 Compute the intersection distance of a ray and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 Compute the intersection of a ray and a sphere. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool intersectRayTriangle (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
 Compute the intersection of a ray and a triangle. More...
 
-

Detailed Description

-

Include <glm/gtx/intersect.hpp> to use the features of this extension.

-

Add intersection functions

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectLineSphere (genType const & point0,
genType const & point1,
genType const & sphereCenter,
typename genType::value_type sphereRadius,
genType & intersectionPosition1,
genType & intersectionNormal1,
genType & intersectionPosition2 = genType(),
genType & intersectionNormal2 = genType() 
)
-
- -

Compute the intersection of a line and a sphere.

-

From GLM_GTX_intersect extension

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectLineTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & position 
)
-
- -

Compute the intersection of a line and a triangle.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectRayPlane (genType const & orig,
genType const & dir,
genType const & planeOrig,
genType const & planeNormal,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection of a ray and a plane.

-

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
typename genType::value_type const sphereRadiusSquered,
typename genType::value_type & intersectionDistance 
)
-
- -

Compute the intersection distance of a ray and a sphere.

-

The ray direction vector is unit length. From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
const typename genType::value_type sphereRadius,
genType & intersectionPosition,
genType & intersectionNormal 
)
-
- -

Compute the intersection of a ray and a sphere.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::intersectRayTriangle (vec< 3, T, Q > const & orig,
vec< 3, T, Q > const & dir,
vec< 3, T, Q > const & v0,
vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 2, T, Q > & baryPosition,
T & distance 
)
-
- -

Compute the intersection of a ray and a triangle.

-

Based om Tomas Möller implementation http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/raytri/ From GLM_GTX_intersect extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_intersect + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_intersect
+
+
+ +

Include <glm/gtx/intersect.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL bool intersectLineSphere (genType const &point0, genType const &point1, genType const &sphereCenter, typename genType::value_type sphereRadius, genType &intersectionPosition1, genType &intersectionNormal1, genType &intersectionPosition2=genType(), genType &intersectionNormal2=genType())
 Compute the intersection of a line and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 Compute the intersection of a line and a triangle. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRayPlane (genType const &orig, genType const &dir, genType const &planeOrig, genType const &planeNormal, typename genType::value_type &intersectionDistance)
 Compute the intersection of a ray and a plane. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)
 Compute the intersection distance of a ray and a sphere. More...
 
template<typename genType >
GLM_FUNC_DECL bool intersectRaySphere (genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)
 Compute the intersection of a ray and a sphere. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool intersectRayTriangle (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dir, vec< 3, T, Q > const &v0, vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 2, T, Q > &baryPosition, T &distance)
 Compute the intersection of a ray and a triangle. More...
 
+

Detailed Description

+

Include <glm/gtx/intersect.hpp> to use the features of this extension.

+

Add intersection functions

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectLineSphere (genType const & point0,
genType const & point1,
genType const & sphereCenter,
typename genType::value_type sphereRadius,
genType & intersectionPosition1,
genType & intersectionNormal1,
genType & intersectionPosition2 = genType(),
genType & intersectionNormal2 = genType() 
)
+
+ +

Compute the intersection of a line and a sphere.

+

From GLM_GTX_intersect extension

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectLineTriangle (genType const & orig,
genType const & dir,
genType const & vert0,
genType const & vert1,
genType const & vert2,
genType & position 
)
+
+ +

Compute the intersection of a line and a triangle.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRayPlane (genType const & orig,
genType const & dir,
genType const & planeOrig,
genType const & planeNormal,
typename genType::value_type & intersectionDistance 
)
+
+ +

Compute the intersection of a ray and a plane.

+

Ray direction and plane normal must be unit length. From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
typename genType::value_type const sphereRadiusSquered,
typename genType::value_type & intersectionDistance 
)
+
+ +

Compute the intersection distance of a ray and a sphere.

+

The ray direction vector is unit length. From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRaySphere (genType const & rayStarting,
genType const & rayNormalizedDirection,
genType const & sphereCenter,
const typename genType::value_type sphereRadius,
genType & intersectionPosition,
genType & intersectionNormal 
)
+
+ +

Compute the intersection of a ray and a sphere.

+

From GLM_GTX_intersect extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::intersectRayTriangle (vec< 3, T, Q > const & orig,
vec< 3, T, Q > const & dir,
vec< 3, T, Q > const & v0,
vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 2, T, Q > & baryPosition,
T & distance 
)
+
+ +

Compute the intersection of a ray and a triangle.

+

Based om Tomas Möller implementation http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/raytri/ From GLM_GTX_intersect extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00332.html b/external/include/glm-0.9.9.8/doc/api/a00332.html index 55d9b13424..901371ad30 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00332.html +++ b/external/include/glm-0.9.9.8/doc/api/a00332.html @@ -1,97 +1,97 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_io - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
- -

Include <glm/gtx/io.hpp> to use the features of this extension. -More...

-

Detailed Description

-

Include <glm/gtx/io.hpp> to use the features of this extension.

-

std::[w]ostream support for glm types

-

std::[w]ostream support for glm types + qualifier/width/etc. manipulators based on howard hinnant's std::chrono io proposal [http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html]

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_io + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+ +

Include <glm/gtx/io.hpp> to use the features of this extension. +More...

+

Detailed Description

+

Include <glm/gtx/io.hpp> to use the features of this extension.

+

std::[w]ostream support for glm types

+

std::[w]ostream support for glm types + qualifier/width/etc. manipulators based on howard hinnant's std::chrono io proposal [http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html]

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00333.html b/external/include/glm-0.9.9.8/doc/api/a00333.html index b30776cdf1..94f71bfbdd 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00333.html +++ b/external/include/glm-0.9.9.8/doc/api/a00333.html @@ -1,169 +1,169 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_log_base - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_log_base
-
-
- -

Include <glm/gtx/log_base.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType log (genType const &x, genType const &base)
 Logarithm for any base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x, vec< L, T, Q > const &base)
 Logarithm for any base. More...
 
-

Detailed Description

-

Include <glm/gtx/log_base.hpp> to use the features of this extension.

-

Logarithm for any base. base can be a vector or a scalar.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::log (genType const & x,
genType const & base 
)
-
- -

Logarithm for any base.

-

From GLM_GTX_log_base.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::sign (vec< L, T, Q > const & x,
vec< L, T, Q > const & base 
)
-
- -

Logarithm for any base.

-

From GLM_GTX_log_base.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_log_base + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_log_base
+
+
+ +

Include <glm/gtx/log_base.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType log (genType const &x, genType const &base)
 Logarithm for any base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sign (vec< L, T, Q > const &x, vec< L, T, Q > const &base)
 Logarithm for any base. More...
 
+

Detailed Description

+

Include <glm/gtx/log_base.hpp> to use the features of this extension.

+

Logarithm for any base. base can be a vector or a scalar.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::log (genType const & x,
genType const & base 
)
+
+ +

Logarithm for any base.

+

From GLM_GTX_log_base.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::sign (vec< L, T, Q > const & x,
vec< L, T, Q > const & base 
)
+
+ +

Logarithm for any base.

+

From GLM_GTX_log_base.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00334.html b/external/include/glm-0.9.9.8/doc/api/a00334.html index 693d78d873..b6ed0be6d5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00334.html +++ b/external/include/glm-0.9.9.8/doc/api/a00334.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_cross_product - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_cross_product
-
-
- -

Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension.

-

Build cross product matrices

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::matrixCross3 (vec< 3, T, Q > const & x)
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::matrixCross4 (vec< 3, T, Q > const & x)
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_cross_product + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_cross_product
+
+
+ +

Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > matrixCross3 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > matrixCross4 (vec< 3, T, Q > const &x)
 Build a cross product matrix. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_cross_product.hpp> to use the features of this extension.

+

Build cross product matrices

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::matrixCross3 (vec< 3, T, Q > const & x)
+
+ +

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::matrixCross4 (vec< 3, T, Q > const & x)
+
+ +

Build a cross product matrix.

+

From GLM_GTX_matrix_cross_product extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00335.html b/external/include/glm-0.9.9.8/doc/api/a00335.html index 91468e4257..5bcb43511f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00335.html +++ b/external/include/glm-0.9.9.8/doc/api/a00335.html @@ -1,160 +1,160 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_decompose - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_decompose
-
-
- -

Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool decompose (mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
 Decomposes a model matrix to translations, rotation and scale components. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension.

-

Decomposes a model matrix to translations, rotation and scale components

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::decompose (mat< 4, 4, T, Q > const & modelMatrix,
vec< 3, T, Q > & scale,
qua< T, Q > & orientation,
vec< 3, T, Q > & translation,
vec< 3, T, Q > & skew,
vec< 4, T, Q > & perspective 
)
-
- -

Decomposes a model matrix to translations, rotation and scale components.

-
See also
GLM_GTX_matrix_decompose
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_decompose + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_decompose
+
+
+ +

Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL bool decompose (mat< 4, 4, T, Q > const &modelMatrix, vec< 3, T, Q > &scale, qua< T, Q > &orientation, vec< 3, T, Q > &translation, vec< 3, T, Q > &skew, vec< 4, T, Q > &perspective)
 Decomposes a model matrix to translations, rotation and scale components. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_decompose.hpp> to use the features of this extension.

+

Decomposes a model matrix to translations, rotation and scale components

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::decompose (mat< 4, 4, T, Q > const & modelMatrix,
vec< 3, T, Q > & scale,
qua< T, Q > & orientation,
vec< 3, T, Q > & translation,
vec< 3, T, Q > & skew,
vec< 4, T, Q > & perspective 
)
+
+ +

Decomposes a model matrix to translations, rotation and scale components.

+
See also
GLM_GTX_matrix_decompose
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00336.html b/external/include/glm-0.9.9.8/doc/api/a00336.html index 9119776591..b73f45f62d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00336.html +++ b/external/include/glm-0.9.9.8/doc/api/a00336.html @@ -1,197 +1,197 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_factorisation - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_factorisation
-
-
- -

Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > fliplr (mat< C, R, T, Q > const &in)
 Flips the matrix columns right and left. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > flipud (mat< C, R, T, Q > const &in)
 Flips the matrix rows up and down. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void qr_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
 Performs QR factorisation of a matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void rq_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
 Performs RQ factorisation of a matrix. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension.

-

Functions to factor matrices in various forms

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<C, R, T, Q> glm::fliplr (mat< C, R, T, Q > const & in)
-
- -

Flips the matrix columns right and left.

-

From GLM_GTX_matrix_factorisation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<C, R, T, Q> glm::flipud (mat< C, R, T, Q > const & in)
-
- -

Flips the matrix rows up and down.

-

From GLM_GTX_matrix_factorisation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL void glm::qr_decompose (mat< C, R, T, Q > const & in)
-
- -

Performs QR factorisation of a matrix.

-

Returns 2 matrices, q and r, such that the columns of q are orthonormal and span the same subspace than those of the input matrix, r is an upper triangular matrix, and q*r=in. Given an n-by-m input matrix, q has dimensions min(n,m)-by-m, and r has dimensions n-by-min(n,m).

-

From GLM_GTX_matrix_factorisation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL void glm::rq_decompose (mat< C, R, T, Q > const & in)
-
- -

Performs RQ factorisation of a matrix.

-

Returns 2 matrices, r and q, such that r is an upper triangular matrix, the rows of q are orthonormal and span the same subspace than those of the input matrix, and r*q=in. Note that in the context of RQ factorisation, the diagonal is seen as starting in the lower-right corner of the matrix, instead of the usual upper-left. Given an n-by-m input matrix, r has dimensions min(n,m)-by-m, and q has dimensions n-by-min(n,m).

-

From GLM_GTX_matrix_factorisation extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_factorisation + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_factorisation
+
+
+ +

Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > fliplr (mat< C, R, T, Q > const &in)
 Flips the matrix columns right and left. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > flipud (mat< C, R, T, Q > const &in)
 Flips the matrix rows up and down. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void qr_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &q, mat< C,(C< R?C:R), T, Q > &r)
 Performs QR factorisation of a matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL void rq_decompose (mat< C, R, T, Q > const &in, mat<(C< R?C:R), R, T, Q > &r, mat< C,(C< R?C:R), T, Q > &q)
 Performs RQ factorisation of a matrix. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_factorisation.hpp> to use the features of this extension.

+

Functions to factor matrices in various forms

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<C, R, T, Q> glm::fliplr (mat< C, R, T, Q > const & in)
+
+ +

Flips the matrix columns right and left.

+

From GLM_GTX_matrix_factorisation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<C, R, T, Q> glm::flipud (mat< C, R, T, Q > const & in)
+
+ +

Flips the matrix rows up and down.

+

From GLM_GTX_matrix_factorisation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL void glm::qr_decompose (mat< C, R, T, Q > const & in)
+
+ +

Performs QR factorisation of a matrix.

+

Returns 2 matrices, q and r, such that the columns of q are orthonormal and span the same subspace than those of the input matrix, r is an upper triangular matrix, and q*r=in. Given an n-by-m input matrix, q has dimensions min(n,m)-by-m, and r has dimensions n-by-min(n,m).

+

From GLM_GTX_matrix_factorisation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL void glm::rq_decompose (mat< C, R, T, Q > const & in)
+
+ +

Performs RQ factorisation of a matrix.

+

Returns 2 matrices, r and q, such that r is an upper triangular matrix, the rows of q are orthonormal and span the same subspace than those of the input matrix, and r*q=in. Note that in the context of RQ factorisation, the diagonal is seen as starting in the lower-right corner of the matrix, instead of the usual upper-left. Given an n-by-m input matrix, r has dimensions min(n,m)-by-m, and q has dimensions n-by-min(n,m).

+

From GLM_GTX_matrix_factorisation extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00337.html b/external/include/glm-0.9.9.8/doc/api/a00337.html index b503f23d72..56bedcf98c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00337.html +++ b/external/include/glm-0.9.9.8/doc/api/a00337.html @@ -1,237 +1,237 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_interpolation - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_interpolation
-
-
- -

Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL void axisAngle (mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
 Get the axis and angle of the rotation from a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix (vec< 3, T, Q > const &Axis, T const Angle)
 Build a matrix from axis and angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation (mat< 4, 4, T, Q > const &Mat)
 Extracts the rotation part of a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate (mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
 Build a interpolation of 4 * 4 matrixes. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension.

-

Allows to directly interpolate two matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::axisAngle (mat< 4, 4, T, Q > const & Mat,
vec< 3, T, Q > & Axis,
T & Angle 
)
-
- -

Get the axis and angle of the rotation from a matrix.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::axisAngleMatrix (vec< 3, T, Q > const & Axis,
T const Angle 
)
-
- -

Build a matrix from axis and angle.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::extractMatrixRotation (mat< 4, 4, T, Q > const & Mat)
-
- -

Extracts the rotation part of a matrix.

-

From GLM_GTX_matrix_interpolation extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::interpolate (mat< 4, 4, T, Q > const & m1,
mat< 4, 4, T, Q > const & m2,
T const Delta 
)
-
- -

Build a interpolation of 4 * 4 matrixes.

-

From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_interpolation + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_interpolation
+
+
+ +

Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL void axisAngle (mat< 4, 4, T, Q > const &Mat, vec< 3, T, Q > &Axis, T &Angle)
 Get the axis and angle of the rotation from a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > axisAngleMatrix (vec< 3, T, Q > const &Axis, T const Angle)
 Build a matrix from axis and angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > extractMatrixRotation (mat< 4, 4, T, Q > const &Mat)
 Extracts the rotation part of a matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > interpolate (mat< 4, 4, T, Q > const &m1, mat< 4, 4, T, Q > const &m2, T const Delta)
 Build a interpolation of 4 * 4 matrixes. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_interpolation.hpp> to use the features of this extension.

+

Allows to directly interpolate two matrices.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::axisAngle (mat< 4, 4, T, Q > const & Mat,
vec< 3, T, Q > & Axis,
T & Angle 
)
+
+ +

Get the axis and angle of the rotation from a matrix.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::axisAngleMatrix (vec< 3, T, Q > const & Axis,
T const Angle 
)
+
+ +

Build a matrix from axis and angle.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::extractMatrixRotation (mat< 4, 4, T, Q > const & Mat)
+
+ +

Extracts the rotation part of a matrix.

+

From GLM_GTX_matrix_interpolation extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::interpolate (mat< 4, 4, T, Q > const & m1,
mat< 4, 4, T, Q > const & m2,
T const Delta 
)
+
+ +

Build a interpolation of 4 * 4 matrixes.

+

From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00338.html b/external/include/glm-0.9.9.8/doc/api/a00338.html index 448316ba42..159c92a39f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00338.html +++ b/external/include/glm-0.9.9.8/doc/api/a00338.html @@ -1,475 +1,475 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_major_storage - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_major_storage
-
-
- -

Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (mat< 2, 2, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (mat< 3, 3, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (mat< 4, 4, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (mat< 2, 2, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (mat< 3, 3, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (mat< 4, 4, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension.

-

Build matrices with specific matrix order, row or column

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::colMajor2 (vec< 2, T, Q > const & v1,
vec< 2, T, Q > const & v2 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::colMajor2 (mat< 2, 2, T, Q > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::colMajor3 (vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 3, T, Q > const & v3 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::colMajor3 (mat< 3, 3, T, Q > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::colMajor4 (vec< 4, T, Q > const & v1,
vec< 4, T, Q > const & v2,
vec< 4, T, Q > const & v3,
vec< 4, T, Q > const & v4 
)
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::colMajor4 (mat< 4, 4, T, Q > const & m)
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::rowMajor2 (vec< 2, T, Q > const & v1,
vec< 2, T, Q > const & v2 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::rowMajor2 (mat< 2, 2, T, Q > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::rowMajor3 (vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 3, T, Q > const & v3 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::rowMajor3 (mat< 3, 3, T, Q > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rowMajor4 (vec< 4, T, Q > const & v1,
vec< 4, T, Q > const & v2,
vec< 4, T, Q > const & v3,
vec< 4, T, Q > const & v4 
)
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rowMajor4 (mat< 4, 4, T, Q > const & m)
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_major_storage + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_major_storage
+
+
+ +

Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > colMajor2 (mat< 2, 2, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > colMajor3 (mat< 3, 3, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a column major matrix from column vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > colMajor4 (mat< 4, 4, T, Q > const &m)
 Build a column major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > rowMajor2 (mat< 2, 2, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > rowMajor3 (mat< 3, 3, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)
 Build a row major matrix from row vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rowMajor4 (mat< 4, 4, T, Q > const &m)
 Build a row major matrix from other matrix. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_major_storage.hpp> to use the features of this extension.

+

Build matrices with specific matrix order, row or column

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::colMajor2 (vec< 2, T, Q > const & v1,
vec< 2, T, Q > const & v2 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::colMajor2 (mat< 2, 2, T, Q > const & m)
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::colMajor3 (vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 3, T, Q > const & v3 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::colMajor3 (mat< 3, 3, T, Q > const & m)
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::colMajor4 (vec< 4, T, Q > const & v1,
vec< 4, T, Q > const & v2,
vec< 4, T, Q > const & v3,
vec< 4, T, Q > const & v4 
)
+
+ +

Build a column major matrix from column vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::colMajor4 (mat< 4, 4, T, Q > const & m)
+
+ +

Build a column major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::rowMajor2 (vec< 2, T, Q > const & v1,
vec< 2, T, Q > const & v2 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::rowMajor2 (mat< 2, 2, T, Q > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::rowMajor3 (vec< 3, T, Q > const & v1,
vec< 3, T, Q > const & v2,
vec< 3, T, Q > const & v3 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::rowMajor3 (mat< 3, 3, T, Q > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rowMajor4 (vec< 4, T, Q > const & v1,
vec< 4, T, Q > const & v2,
vec< 4, T, Q > const & v3,
vec< 4, T, Q > const & v4 
)
+
+ +

Build a row major matrix from row vectors.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rowMajor4 (mat< 4, 4, T, Q > const & m)
+
+ +

Build a row major matrix from other matrix.

+

From GLM_GTX_matrix_major_storage extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00339.html b/external/include/glm-0.9.9.8/doc/api/a00339.html index 92ac4cd09a..17bbf924f3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00339.html +++ b/external/include/glm-0.9.9.8/doc/api/a00339.html @@ -1,379 +1,379 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_operation - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_operation
-
-
- -

Include <glm/gtx/matrix_operation.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > adjugate (mat< 2, 2, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > adjugate (mat< 3, 3, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate (mat< 4, 4, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4 (vec< 4, T, Q > const &v)
 Build a diagonal matrix. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_operation.hpp> to use the features of this extension.

-

Build diagonal matrices from vectors.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::adjugate (mat< 2, 2, T, Q > const & m)
-
- -

Build an adjugate matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::adjugate (mat< 3, 3, T, Q > const & m)
-
- -

Build an adjugate matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::adjugate (mat< 4, 4, T, Q > const & m)
-
- -

Build an adjugate matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 2, T, Q> glm::diagonal2x2 (vec< 2, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 3, T, Q> glm::diagonal2x3 (vec< 2, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<2, 4, T, Q> glm::diagonal2x4 (vec< 2, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 2, T, Q> glm::diagonal3x2 (vec< 2, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::diagonal3x3 (vec< 3, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 4, T, Q> glm::diagonal3x4 (vec< 3, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 2, T, Q> glm::diagonal4x2 (vec< 2, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 3, T, Q> glm::diagonal4x3 (vec< 3, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::diagonal4x4 (vec< 4, T, Q > const & v)
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_operation + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_operation
+
+
+ +

Include <glm/gtx/matrix_operation.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > adjugate (mat< 2, 2, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > adjugate (mat< 3, 3, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > adjugate (mat< 4, 4, T, Q > const &m)
 Build an adjugate matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2 (vec< 2, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3 (vec< 3, T, Q > const &v)
 Build a diagonal matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4 (vec< 4, T, Q > const &v)
 Build a diagonal matrix. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_operation.hpp> to use the features of this extension.

+

Build diagonal matrices from vectors.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::adjugate (mat< 2, 2, T, Q > const & m)
+
+ +

Build an adjugate matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::adjugate (mat< 3, 3, T, Q > const & m)
+
+ +

Build an adjugate matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::adjugate (mat< 4, 4, T, Q > const & m)
+
+ +

Build an adjugate matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 2, T, Q> glm::diagonal2x2 (vec< 2, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 3, T, Q> glm::diagonal2x3 (vec< 2, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<2, 4, T, Q> glm::diagonal2x4 (vec< 2, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 2, T, Q> glm::diagonal3x2 (vec< 2, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::diagonal3x3 (vec< 3, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 4, T, Q> glm::diagonal3x4 (vec< 3, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 2, T, Q> glm::diagonal4x2 (vec< 2, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 3, T, Q> glm::diagonal4x3 (vec< 3, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::diagonal4x4 (vec< 4, T, Q > const & v)
+
+ +

Build a diagonal matrix.

+

From GLM_GTX_matrix_operation extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00340.html b/external/include/glm-0.9.9.8/doc/api/a00340.html index b214c9a39d..626ab516f7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00340.html +++ b/external/include/glm-0.9.9.8/doc/api/a00340.html @@ -1,367 +1,367 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_query - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_query
-
-
- -

Include <glm/gtx/matrix_query.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isIdentity (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an identity matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a null matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an orthonormalized matrix. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_query.hpp> to use the features of this extension.

-

Query to evaluate matrix properties

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isIdentity (matType< C, R, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an identity matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNormalized (mat< 2, 2, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNormalized (mat< 3, 3, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNormalized (mat< 4, 4, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNull (mat< 2, 2, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNull (mat< 3, 3, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNull (mat< 4, 4, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isOrthogonal (matType< C, R, T, Q > const & m,
T const & epsilon 
)
-
- -

Return whether a matrix is an orthonormalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_query + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_query
+
+
+ +

Include <glm/gtx/matrix_query.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isIdentity (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an identity matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a normalized matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 2, 2, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 3, 3, T, Q > const &m, T const &epsilon)
 Return whether a matrix a null matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (mat< 4, 4, T, Q > const &m, T const &epsilon)
 Return whether a matrix is a null matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q, template< length_t, length_t, typename, qualifier > class matType>
GLM_FUNC_DECL bool isOrthogonal (matType< C, R, T, Q > const &m, T const &epsilon)
 Return whether a matrix is an orthonormalized matrix. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_query.hpp> to use the features of this extension.

+

Query to evaluate matrix properties

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isIdentity (matType< C, R, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is an identity matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNormalized (mat< 2, 2, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNormalized (mat< 3, 3, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNormalized (mat< 4, 4, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is a normalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNull (mat< 2, 2, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNull (mat< 3, 3, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNull (mat< 4, 4, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is a null matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isOrthogonal (matType< C, R, T, Q > const & m,
T const & epsilon 
)
+
+ +

Return whether a matrix is an orthonormalized matrix.

+

From GLM_GTX_matrix_query extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00341.html b/external/include/glm-0.9.9.8/doc/api/a00341.html index 94f1c3aa31..c108f3fbd1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00341.html +++ b/external/include/glm-0.9.9.8/doc/api/a00341.html @@ -1,298 +1,298 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_matrix_transform_2d - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_matrix_transform_2d
-
-
- -

Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate (mat< 3, 3, T, Q > const &m, T angle)
 Builds a rotation 3 * 3 matrix created from an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a scale 3 * 3 matrix created from a vector of 2 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX (mat< 3, 3, T, Q > const &m, T y)
 Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY (mat< 3, 3, T, Q > const &m, T x)
 Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a translation 3 * 3 matrix created from a vector of 2 components. More...
 
-

Detailed Description

-

Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension.

-

Defines functions that generate common 2d transformation matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::rotate (mat< 3, 3, T, Q > const & m,
T angle 
)
-
- -

Builds a rotation 3 * 3 matrix created from an angle.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
angleRotation angle expressed in radians.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::scale (mat< 3, 3, T, Q > const & m,
vec< 2, T, Q > const & v 
)
-
- -

Builds a scale 3 * 3 matrix created from a vector of 2 components.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
vCoordinates of a scale vector.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::shearX (mat< 3, 3, T, Q > const & m,
T y 
)
-
- -

Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
yShear factor.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::shearY (mat< 3, 3, T, Q > const & m,
T x 
)
-
- -

Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
xShear factor.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::translate (mat< 3, 3, T, Q > const & m,
vec< 2, T, Q > const & v 
)
-
- -

Builds a translation 3 * 3 matrix created from a vector of 2 components.

-
Parameters
- - - -
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_matrix_transform_2d + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_matrix_transform_2d
+
+
+ +

Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > rotate (mat< 3, 3, T, Q > const &m, T angle)
 Builds a rotation 3 * 3 matrix created from an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > scale (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a scale 3 * 3 matrix created from a vector of 2 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearX (mat< 3, 3, T, Q > const &m, T y)
 Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > shearY (mat< 3, 3, T, Q > const &m, T x)
 Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_QUALIFIER mat< 3, 3, T, Q > translate (mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)
 Builds a translation 3 * 3 matrix created from a vector of 2 components. More...
 
+

Detailed Description

+

Include <glm/gtx/matrix_transform_2d.hpp> to use the features of this extension.

+

Defines functions that generate common 2d transformation matrices.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::rotate (mat< 3, 3, T, Q > const & m,
T angle 
)
+
+ +

Builds a rotation 3 * 3 matrix created from an angle.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
angleRotation angle expressed in radians.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::scale (mat< 3, 3, T, Q > const & m,
vec< 2, T, Q > const & v 
)
+
+ +

Builds a scale 3 * 3 matrix created from a vector of 2 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a scale vector.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::shearX (mat< 3, 3, T, Q > const & m,
T y 
)
+
+ +

Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
yShear factor.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::shearY (mat< 3, 3, T, Q > const & m,
T x 
)
+
+ +

Builds a vertical (parallel to the y axis) shear 3 * 3 matrix.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
xShear factor.
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_QUALIFIER mat<3, 3, T, Q> glm::translate (mat< 3, 3, T, Q > const & m,
vec< 2, T, Q > const & v 
)
+
+ +

Builds a translation 3 * 3 matrix created from a vector of 2 components.

+
Parameters
+ + + +
mInput matrix multiplied by this translation matrix.
vCoordinates of a translation vector.
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00342.html b/external/include/glm-0.9.9.8/doc/api/a00342.html index 5b213883df..238176c3a5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00342.html +++ b/external/include/glm-0.9.9.8/doc/api/a00342.html @@ -1,107 +1,107 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_mixed_producte - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_mixed_producte
-
-
- -

Include <glm/gtx/mixed_product.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

-template<typename T , qualifier Q>
GLM_FUNC_DECL T mixedProduct (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
 
-

Detailed Description

-

Include <glm/gtx/mixed_product.hpp> to use the features of this extension.

-

Mixed product of 3 vectors.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_mixed_producte + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_mixed_producte
+
+
+ +

Include <glm/gtx/mixed_product.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

+template<typename T , qualifier Q>
GLM_FUNC_DECL T mixedProduct (vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)
 Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
 
+

Detailed Description

+

Include <glm/gtx/mixed_product.hpp> to use the features of this extension.

+

Mixed product of 3 vectors.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00343.html b/external/include/glm-0.9.9.8/doc/api/a00343.html index 3b3c1d5336..779239f5f6 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00343.html +++ b/external/include/glm-0.9.9.8/doc/api/a00343.html @@ -1,399 +1,399 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_norm - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- - -
-
- -

Include <glm/gtx/norm.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance2 (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L1 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &v)
 Returns the L1 norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L2 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x)
 Returns the L2 norm of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length2 (vec< L, T, Q > const &x)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the LMax norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x)
 Returns the LMax norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)
 Returns the L norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, unsigned int Depth)
 Returns the L norm of v. More...
 
-

Detailed Description

-

Include <glm/gtx/norm.hpp> to use the features of this extension.

-

Various ways to compute vector norms.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::distance2 (vec< L, T, Q > const & p0,
vec< L, T, Q > const & p1 
)
-
- -

Returns the squared distance between p0 and p1, i.e., length2(p0 - p1).

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::l1Norm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
-
- -

Returns the L1 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::l1Norm (vec< 3, T, Q > const & v)
-
- -

Returns the L1 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::l2Norm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
-
- -

Returns the L2 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::l2Norm (vec< 3, T, Q > const & x)
-
- -

Returns the L2 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::length2 (vec< L, T, Q > const & x)
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::lMaxNorm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
-
- -

Returns the LMax norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::lMaxNorm (vec< 3, T, Q > const & x)
-
- -

Returns the LMax norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::lxNorm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
unsigned int Depth 
)
-
- -

Returns the L norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::lxNorm (vec< 3, T, Q > const & x,
unsigned int Depth 
)
-
- -

Returns the L norm of v.

-

From GLM_GTX_norm extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_norm + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ + +
+
+ +

Include <glm/gtx/norm.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T distance2 (vec< L, T, Q > const &p0, vec< L, T, Q > const &p1)
 Returns the squared distance between p0 and p1, i.e., length2(p0 - p1). More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L1 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l1Norm (vec< 3, T, Q > const &v)
 Returns the L1 norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the L2 norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T l2Norm (vec< 3, T, Q > const &x)
 Returns the L2 norm of v. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T length2 (vec< L, T, Q > const &x)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Returns the LMax norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lMaxNorm (vec< 3, T, Q > const &x)
 Returns the LMax norm of v. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)
 Returns the L norm between x and y. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T lxNorm (vec< 3, T, Q > const &x, unsigned int Depth)
 Returns the L norm of v. More...
 
+

Detailed Description

+

Include <glm/gtx/norm.hpp> to use the features of this extension.

+

Various ways to compute vector norms.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::distance2 (vec< L, T, Q > const & p0,
vec< L, T, Q > const & p1 
)
+
+ +

Returns the squared distance between p0 and p1, i.e., length2(p0 - p1).

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::l1Norm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
+
+ +

Returns the L1 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::l1Norm (vec< 3, T, Q > const & v)
+
+ +

Returns the L1 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::l2Norm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
+
+ +

Returns the L2 norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::l2Norm (vec< 3, T, Q > const & x)
+
+ +

Returns the L2 norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length2 (vec< L, T, Q > const & x)
+
+ +

Returns the squared length of x.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::lMaxNorm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
+
+ +

Returns the LMax norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::lMaxNorm (vec< 3, T, Q > const & x)
+
+ +

Returns the LMax norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::lxNorm (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
unsigned int Depth 
)
+
+ +

Returns the L norm between x and y.

+

From GLM_GTX_norm extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::lxNorm (vec< 3, T, Q > const & x,
unsigned int Depth 
)
+
+ +

Returns the L norm of v.

+

From GLM_GTX_norm extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00344.html b/external/include/glm-0.9.9.8/doc/api/a00344.html index 047c2d4f0b..8f08abffe5 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00344.html +++ b/external/include/glm-0.9.9.8/doc/api/a00344.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_normal - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/normal.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal (vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
 Computes triangle normal from triangle points. More...
 
-

Detailed Description

-

Include <glm/gtx/normal.hpp> to use the features of this extension.

-

Compute the normal of a triangle.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::triangleNormal (vec< 3, T, Q > const & p1,
vec< 3, T, Q > const & p2,
vec< 3, T, Q > const & p3 
)
-
- -

Computes triangle normal from triangle points.

-
See also
GLM_GTX_normal
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_normal + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/normal.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > triangleNormal (vec< 3, T, Q > const &p1, vec< 3, T, Q > const &p2, vec< 3, T, Q > const &p3)
 Computes triangle normal from triangle points. More...
 
+

Detailed Description

+

Include <glm/gtx/normal.hpp> to use the features of this extension.

+

Compute the normal of a triangle.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::triangleNormal (vec< 3, T, Q > const & p1,
vec< 3, T, Q > const & p2,
vec< 3, T, Q > const & p3 
)
+
+ +

Computes triangle normal from triangle points.

+
See also
GLM_GTX_normal
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00345.html b/external/include/glm-0.9.9.8/doc/api/a00345.html index 5c6fd9a75c..29a165b879 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00345.html +++ b/external/include/glm-0.9.9.8/doc/api/a00345.html @@ -1,171 +1,171 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_normalize_dot - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_normalize_dot
-
-
- -

Include <glm/gtx/normalized_dot.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastNormalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T normalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
-

Detailed Description

-

Include <glm/gtx/normalized_dot.hpp> to use the features of this extension.

-

Dot product of vectors that need to be normalize with a single square root.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::fastNormalizeDot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Normalize parameters and returns the dot product of x and y.

-

Faster that dot(fastNormalize(x), fastNormalize(y)).

-
See also
GLM_GTX_normalize_dot extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::normalizeDot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Normalize parameters and returns the dot product of x and y.

-

It's faster that dot(normalize(x), normalize(y)).

-
See also
GLM_GTX_normalize_dot extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_normalize_dot + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_normalize_dot
+
+
+ +

Include <glm/gtx/normalized_dot.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T fastNormalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T normalizeDot (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Normalize parameters and returns the dot product of x and y. More...
 
+

Detailed Description

+

Include <glm/gtx/normalized_dot.hpp> to use the features of this extension.

+

Dot product of vectors that need to be normalize with a single square root.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::fastNormalizeDot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Normalize parameters and returns the dot product of x and y.

+

Faster that dot(fastNormalize(x), fastNormalize(y)).

+
See also
GLM_GTX_normalize_dot extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::normalizeDot (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Normalize parameters and returns the dot product of x and y.

+

It's faster that dot(normalize(x), normalize(y)).

+
See also
GLM_GTX_normalize_dot extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00346.html b/external/include/glm-0.9.9.8/doc/api/a00346.html index b745d4b5bd..d782196ab2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00346.html +++ b/external/include/glm-0.9.9.8/doc/api/a00346.html @@ -1,142 +1,142 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_number_precision - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_number_precision
-
-
- -

Include <glm/gtx/number_precision.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef f32 f32mat1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f32 f32mat1x1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f32 f32vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64mat1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64mat1x1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef f64 f64vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
-typedef u16 u16vec1
 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u32 u32vec1
 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u64 u64vec1
 64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-typedef u8 u8vec1
 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
-

Detailed Description

-

Include <glm/gtx/number_precision.hpp> to use the features of this extension.

-

Defined size types.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_number_precision + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_number_precision
+
+
+ +

Include <glm/gtx/number_precision.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef f32 f32mat1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f32 f32mat1x1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f32 f32vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64mat1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64mat1x1
 Double-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef f64 f64vec1
 Single-qualifier floating-point scalar. (from GLM_GTX_number_precision extension)
 
+typedef u16 u16vec1
 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u32 u32vec1
 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u64 u64vec1
 64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+typedef u8 u8vec1
 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
 
+

Detailed Description

+

Include <glm/gtx/number_precision.hpp> to use the features of this extension.

+

Defined size types.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00347.html b/external/include/glm-0.9.9.8/doc/api/a00347.html index d665db7345..95ac2cbe40 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00347.html +++ b/external/include/glm-0.9.9.8/doc/api/a00347.html @@ -1,172 +1,172 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_optimum_pow - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_optimum_pow
-
-
- -

Include <glm/gtx/optimum_pow.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 Returns x raised to the power of 2. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 Returns x raised to the power of 3. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 Returns x raised to the power of 4. More...
 
-

Detailed Description

-

Include <glm/gtx/optimum_pow.hpp> to use the features of this extension.

-

Integer exponentiation of power functions.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::gtx::pow2 (genType const & x)
-
- -

Returns x raised to the power of 2.

-
See also
GLM_GTX_optimum_pow
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::gtx::pow3 (genType const & x)
-
- -

Returns x raised to the power of 3.

-
See also
GLM_GTX_optimum_pow
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::gtx::pow4 (genType const & x)
-
- -

Returns x raised to the power of 4.

-
See also
GLM_GTX_optimum_pow
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_optimum_pow + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_optimum_pow
+
+
+ +

Include <glm/gtx/optimum_pow.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType pow2 (genType const &x)
 Returns x raised to the power of 2. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow3 (genType const &x)
 Returns x raised to the power of 3. More...
 
template<typename genType >
GLM_FUNC_DECL genType pow4 (genType const &x)
 Returns x raised to the power of 4. More...
 
+

Detailed Description

+

Include <glm/gtx/optimum_pow.hpp> to use the features of this extension.

+

Integer exponentiation of power functions.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow2 (genType const & x)
+
+ +

Returns x raised to the power of 2.

+
See also
GLM_GTX_optimum_pow
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow3 (genType const & x)
+
+ +

Returns x raised to the power of 3.

+
See also
GLM_GTX_optimum_pow
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::gtx::pow4 (genType const & x)
+
+ +

Returns x raised to the power of 4.

+
See also
GLM_GTX_optimum_pow
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00348.html b/external/include/glm-0.9.9.8/doc/api/a00348.html index f6441edda6..199adb5b1e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00348.html +++ b/external/include/glm-0.9.9.8/doc/api/a00348.html @@ -1,159 +1,159 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_orthonormalize - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_orthonormalize
-
-
- -

Include <glm/gtx/orthonormalize.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orthonormalize (mat< 3, 3, T, Q > const &m)
 Returns the orthonormalized matrix of m. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Orthonormalizes x according y. More...
 
-

Detailed Description

-

Include <glm/gtx/orthonormalize.hpp> to use the features of this extension.

-

Orthonormalize matrices.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::orthonormalize (mat< 3, 3, T, Q > const & m)
-
- -

Returns the orthonormalized matrix of m.

-
See also
GLM_GTX_orthonormalize
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::orthonormalize (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
-
- -

Orthonormalizes x according y.

-
See also
GLM_GTX_orthonormalize
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_orthonormalize + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_orthonormalize
+
+
+ +

Include <glm/gtx/orthonormalize.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > orthonormalize (mat< 3, 3, T, Q > const &m)
 Returns the orthonormalized matrix of m. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > orthonormalize (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
 Orthonormalizes x according y. More...
 
+

Detailed Description

+

Include <glm/gtx/orthonormalize.hpp> to use the features of this extension.

+

Orthonormalize matrices.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::orthonormalize (mat< 3, 3, T, Q > const & m)
+
+ +

Returns the orthonormalized matrix of m.

+
See also
GLM_GTX_orthonormalize
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::orthonormalize (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y 
)
+
+ +

Orthonormalizes x according y.

+
See also
GLM_GTX_orthonormalize
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00349.html b/external/include/glm-0.9.9.8/doc/api/a00349.html index cb9f5a2a0c..05ba05a6f8 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00349.html +++ b/external/include/glm-0.9.9.8/doc/api/a00349.html @@ -1,136 +1,136 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_perpendicular - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_perpendicular
-
-
- -

Include <glm/gtx/perpendicular.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType perp (genType const &x, genType const &Normal)
 Projects x a perpendicular axis of Normal. More...
 
-

Detailed Description

-

Include <glm/gtx/perpendicular.hpp> to use the features of this extension.

-

Perpendicular of a vector from other one

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::perp (genType const & x,
genType const & Normal 
)
-
- -

Projects x a perpendicular axis of Normal.

-

From GLM_GTX_perpendicular extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_perpendicular + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_perpendicular
+
+
+ +

Include <glm/gtx/perpendicular.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType perp (genType const &x, genType const &Normal)
 Projects x a perpendicular axis of Normal. More...
 
+

Detailed Description

+

Include <glm/gtx/perpendicular.hpp> to use the features of this extension.

+

Perpendicular of a vector from other one

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::perp (genType const & x,
genType const & Normal 
)
+
+ +

Projects x a perpendicular axis of Normal.

+

From GLM_GTX_perpendicular extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00350.html b/external/include/glm-0.9.9.8/doc/api/a00350.html index d7810cedfb..88f40dec06 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00350.html +++ b/external/include/glm-0.9.9.8/doc/api/a00350.html @@ -1,149 +1,149 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_polar_coordinates - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_polar_coordinates
-
-
- -

Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > euclidean (vec< 2, T, Q > const &polar)
 Convert Polar to Euclidean coordinates. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > polar (vec< 3, T, Q > const &euclidean)
 Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. More...
 
-

Detailed Description

-

Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension.

-

Conversion from Euclidean space to polar space and revert.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::euclidean (vec< 2, T, Q > const & polar)
-
- -

Convert Polar to Euclidean coordinates.

-
See also
GLM_GTX_polar_coordinates
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::polar (vec< 3, T, Q > const & euclidean)
-
- -

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

-
See also
GLM_GTX_polar_coordinates
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_polar_coordinates + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_polar_coordinates
+
+
+ +

Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > euclidean (vec< 2, T, Q > const &polar)
 Convert Polar to Euclidean coordinates. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > polar (vec< 3, T, Q > const &euclidean)
 Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. More...
 
+

Detailed Description

+

Include <glm/gtx/polar_coordinates.hpp> to use the features of this extension.

+

Conversion from Euclidean space to polar space and revert.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::euclidean (vec< 2, T, Q > const & polar)
+
+ +

Convert Polar to Euclidean coordinates.

+
See also
GLM_GTX_polar_coordinates
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::polar (vec< 3, T, Q > const & euclidean)
+
+ +

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

+
See also
GLM_GTX_polar_coordinates
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00351.html b/external/include/glm-0.9.9.8/doc/api/a00351.html index 1955a8710a..9eedf7baf1 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00351.html +++ b/external/include/glm-0.9.9.8/doc/api/a00351.html @@ -1,143 +1,143 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_projection - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_projection
-
-
- -

Include <glm/gtx/projection.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType proj (genType const &x, genType const &Normal)
 Projects x on Normal. More...
 
-

Detailed Description

-

Include <glm/gtx/projection.hpp> to use the features of this extension.

-

Projection of a vector to other one

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::proj (genType const & x,
genType const & Normal 
)
-
- -

Projects x on Normal.

-
Parameters
- - - -
[in]xA vector to project
[in]NormalA normal that doesn't need to be of unit length.
-
-
-
See also
GLM_GTX_projection
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_projection + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_projection
+
+
+ +

Include <glm/gtx/projection.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType proj (genType const &x, genType const &Normal)
 Projects x on Normal. More...
 
+

Detailed Description

+

Include <glm/gtx/projection.hpp> to use the features of this extension.

+

Projection of a vector to other one

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::proj (genType const & x,
genType const & Normal 
)
+
+ +

Projects x on Normal.

+
Parameters
+ + + +
[in]xA vector to project
[in]NormalA normal that doesn't need to be of unit length.
+
+
+
See also
GLM_GTX_projection
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00352.html b/external/include/glm-0.9.9.8/doc/api/a00352.html index 846da9fb56..a9c0a0aa40 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00352.html +++ b/external/include/glm-0.9.9.8/doc/api/a00352.html @@ -1,622 +1,622 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_quaternion - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_quaternion
-
-
- -

Include <glm/gtx/quaternion.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Compute a cross product between a quaternion and a vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &v, qua< T, Q > const &q)
 Compute a cross product between a vector and a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T extractRealComponent (qua< T, Q > const &q)
 Extract the real component of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > fastMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion normalized linear interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > intermediate (qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
 Returns an intermediate control point for squad interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length2 (qua< T, Q > const &q)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_identity ()
 Create an identity quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Returns quarternion square root. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (qua< T, Q > const &q, vec< 4, T, Q > const &v)
 Rotates a 4 components vector by a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotation (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
 Compute the rotation between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > shortMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion interpolation using the rotation short path. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > squad (qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
 Compute a point on a path according squad equation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3 (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4 (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 3, 3, T, Q > const &x)
 Converts a 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 4, 4, T, Q > const &x)
 Converts a 4 * 4 matrix to a quaternion. More...
 
-

Detailed Description

-

Include <glm/gtx/quaternion.hpp> to use the features of this extension.

-

Extented quaternion types and functions

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::cross (qua< T, Q > const & q,
vec< 3, T, Q > const & v 
)
-
- -

Compute a cross product between a quaternion and a vector.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::cross (vec< 3, T, Q > const & v,
qua< T, Q > const & q 
)
-
- -

Compute a cross product between a vector and a quaternion.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::extractRealComponent (qua< T, Q > const & q)
-
- -

Extract the real component of a quaternion.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::fastMix (qua< T, Q > const & x,
qua< T, Q > const & y,
T const & a 
)
-
- -

Quaternion normalized linear interpolation.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::intermediate (qua< T, Q > const & prev,
qua< T, Q > const & curr,
qua< T, Q > const & next 
)
-
- -

Returns an intermediate control point for squad interpolation.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::length2 (qua< T, Q > const & q)
-
- -

Returns the squared length of x.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::quat_identity ()
-
- -

Create an identity quaternion.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rotate (qua< T, Q > const & q,
vec< 3, T, Q > const & v 
)
-
- -

Returns quarternion square root.

-
See also
GLM_GTX_quaternion Rotates a 3 components vector by a quaternion.
-
-GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::rotate (qua< T, Q > const & q,
vec< 4, T, Q > const & v 
)
-
- -

Rotates a 4 components vector by a quaternion.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::rotation (vec< 3, T, Q > const & orig,
vec< 3, T, Q > const & dest 
)
-
- -

Compute the rotation between two vectors.

-
Parameters
- - - -
origvector, needs to be normalized
destvector, needs to be normalized
-
-
-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::shortMix (qua< T, Q > const & x,
qua< T, Q > const & y,
T const & a 
)
-
- -

Quaternion interpolation using the rotation short path.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::squad (qua< T, Q > const & q1,
qua< T, Q > const & q2,
qua< T, Q > const & s1,
qua< T, Q > const & s2,
T const & h 
)
-
- -

Compute a point on a path according squad equation.

-

q1 and q2 are control points; s1 and s2 are intermediate control points.

-
See also
GLM_GTX_quaternion
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::toMat3 (qua< T, Q > const & x)
-
- -

Converts a quaternion to a 3 * 3 matrix.

-
See also
GLM_GTX_quaternion
- -

Definition at line 113 of file gtx/quaternion.hpp.

- -

References glm::mat3_cast().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::toMat4 (qua< T, Q > const & x)
-
- -

Converts a quaternion to a 4 * 4 matrix.

-
See also
GLM_GTX_quaternion
- -

Definition at line 120 of file gtx/quaternion.hpp.

- -

References glm::mat4_cast().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::toQuat (mat< 3, 3, T, Q > const & x)
-
- -

Converts a 3 * 3 matrix to a quaternion.

-
See also
GLM_GTX_quaternion
- -

Definition at line 127 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::toQuat (mat< 4, 4, T, Q > const & x)
-
- -

Converts a 4 * 4 matrix to a quaternion.

-
See also
GLM_GTX_quaternion
- -

Definition at line 134 of file gtx/quaternion.hpp.

- -

References glm::quat_cast().

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_quaternion + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_quaternion
+
+
+ +

Include <glm/gtx/quaternion.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Compute a cross product between a quaternion and a vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > cross (vec< 3, T, Q > const &v, qua< T, Q > const &q)
 Compute a cross product between a vector and a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T extractRealComponent (qua< T, Q > const &q)
 Extract the real component of a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > fastMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion normalized linear interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > intermediate (qua< T, Q > const &prev, qua< T, Q > const &curr, qua< T, Q > const &next)
 Returns an intermediate control point for squad interpolation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T length2 (qua< T, Q > const &q)
 Returns the squared length of x. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > quat_identity ()
 Create an identity quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (qua< T, Q > const &q, vec< 3, T, Q > const &v)
 Returns quarternion square root. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (qua< T, Q > const &q, vec< 4, T, Q > const &v)
 Rotates a 4 components vector by a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotation (vec< 3, T, Q > const &orig, vec< 3, T, Q > const &dest)
 Compute the rotation between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > shortMix (qua< T, Q > const &x, qua< T, Q > const &y, T const &a)
 Quaternion interpolation using the rotation short path. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > squad (qua< T, Q > const &q1, qua< T, Q > const &q2, qua< T, Q > const &s1, qua< T, Q > const &s2, T const &h)
 Compute a point on a path according squad equation. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > toMat3 (qua< T, Q > const &x)
 Converts a quaternion to a 3 * 3 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > toMat4 (qua< T, Q > const &x)
 Converts a quaternion to a 4 * 4 matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 3, 3, T, Q > const &x)
 Converts a 3 * 3 matrix to a quaternion. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > toQuat (mat< 4, 4, T, Q > const &x)
 Converts a 4 * 4 matrix to a quaternion. More...
 
+

Detailed Description

+

Include <glm/gtx/quaternion.hpp> to use the features of this extension.

+

Extented quaternion types and functions

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::cross (qua< T, Q > const & q,
vec< 3, T, Q > const & v 
)
+
+ +

Compute a cross product between a quaternion and a vector.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::cross (vec< 3, T, Q > const & v,
qua< T, Q > const & q 
)
+
+ +

Compute a cross product between a vector and a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::extractRealComponent (qua< T, Q > const & q)
+
+ +

Extract the real component of a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::fastMix (qua< T, Q > const & x,
qua< T, Q > const & y,
T const & a 
)
+
+ +

Quaternion normalized linear interpolation.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::intermediate (qua< T, Q > const & prev,
qua< T, Q > const & curr,
qua< T, Q > const & next 
)
+
+ +

Returns an intermediate control point for squad interpolation.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::length2 (qua< T, Q > const & q)
+
+ +

Returns the squared length of x.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::quat_identity ()
+
+ +

Create an identity quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rotate (qua< T, Q > const & q,
vec< 3, T, Q > const & v 
)
+
+ +

Returns quarternion square root.

+
See also
GLM_GTX_quaternion Rotates a 3 components vector by a quaternion.
+
+GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::rotate (qua< T, Q > const & q,
vec< 4, T, Q > const & v 
)
+
+ +

Rotates a 4 components vector by a quaternion.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::rotation (vec< 3, T, Q > const & orig,
vec< 3, T, Q > const & dest 
)
+
+ +

Compute the rotation between two vectors.

+
Parameters
+ + + +
origvector, needs to be normalized
destvector, needs to be normalized
+
+
+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::shortMix (qua< T, Q > const & x,
qua< T, Q > const & y,
T const & a 
)
+
+ +

Quaternion interpolation using the rotation short path.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::squad (qua< T, Q > const & q1,
qua< T, Q > const & q2,
qua< T, Q > const & s1,
qua< T, Q > const & s2,
T const & h 
)
+
+ +

Compute a point on a path according squad equation.

+

q1 and q2 are control points; s1 and s2 are intermediate control points.

+
See also
GLM_GTX_quaternion
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::toMat3 (qua< T, Q > const & x)
+
+ +

Converts a quaternion to a 3 * 3 matrix.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 113 of file gtx/quaternion.hpp.

+ +

References glm::mat3_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::toMat4 (qua< T, Q > const & x)
+
+ +

Converts a quaternion to a 4 * 4 matrix.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 120 of file gtx/quaternion.hpp.

+ +

References glm::mat4_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::toQuat (mat< 3, 3, T, Q > const & x)
+
+ +

Converts a 3 * 3 matrix to a quaternion.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 127 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::toQuat (mat< 4, 4, T, Q > const & x)
+
+ +

Converts a 4 * 4 matrix to a quaternion.

+
See also
GLM_GTX_quaternion
+ +

Definition at line 134 of file gtx/quaternion.hpp.

+ +

References glm::quat_cast().

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00353.html b/external/include/glm-0.9.9.8/doc/api/a00353.html index 8a6791632a..a728811cb7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00353.html +++ b/external/include/glm-0.9.9.8/doc/api/a00353.html @@ -1,96 +1,96 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_range - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
-
-
- -

Include <glm/gtx/range.hpp> to use the features of this extension. -More...

-

Detailed Description

-

Include <glm/gtx/range.hpp> to use the features of this extension.

-

Defines begin and end for vectors and matrices. Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_range + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
+
+
+ +

Include <glm/gtx/range.hpp> to use the features of this extension. +More...

+

Detailed Description

+

Include <glm/gtx/range.hpp> to use the features of this extension.

+

Defines begin and end for vectors and matrices. Useful for range-based for loop. The range is defined over the elements, not over columns or rows (e.g. mat4 has 16 elements).

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00354.html b/external/include/glm-0.9.9.8/doc/api/a00354.html index 55de4cf5da..e14d7ba668 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00354.html +++ b/external/include/glm-0.9.9.8/doc/api/a00354.html @@ -1,183 +1,183 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_raw_data - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_raw_data
-
-
- -

Include <glm/gtx/raw_data.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Typedefs

typedef detail::uint8 byte
 Type for byte numbers. More...
 
typedef detail::uint32 dword
 Type for dword numbers. More...
 
typedef detail::uint64 qword
 Type for qword numbers. More...
 
typedef detail::uint16 word
 Type for word numbers. More...
 
-

Detailed Description

-

Include <glm/gtx/raw_data.hpp> to use the features of this extension.

-

Projection of a vector to other one

-

Typedef Documentation

- -
-
- - - - -
typedef detail::uint8 byte
-
- -

Type for byte numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 34 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint32 dword
-
- -

Type for dword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 42 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint64 qword
-
- -

Type for qword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 46 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef detail::uint16 word
-
- -

Type for word numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 38 of file raw_data.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_raw_data + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_raw_data
+
+
+ +

Include <glm/gtx/raw_data.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Typedefs

typedef detail::uint8 byte
 Type for byte numbers. More...
 
typedef detail::uint32 dword
 Type for dword numbers. More...
 
typedef detail::uint64 qword
 Type for qword numbers. More...
 
typedef detail::uint16 word
 Type for word numbers. More...
 
+

Detailed Description

+

Include <glm/gtx/raw_data.hpp> to use the features of this extension.

+

Projection of a vector to other one

+

Typedef Documentation

+ +
+
+ + + + +
typedef detail::uint8 byte
+
+ +

Type for byte numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 34 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint32 dword
+
+ +

Type for dword numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 42 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint64 qword
+
+ +

Type for qword numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 46 of file raw_data.hpp.

+ +
+
+ +
+
+ + + + +
typedef detail::uint16 word
+
+ +

Type for word numbers.

+

From GLM_GTX_raw_data extension.

+ +

Definition at line 38 of file raw_data.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00355.html b/external/include/glm-0.9.9.8/doc/api/a00355.html index b61f035c97..b9807dd37b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00355.html +++ b/external/include/glm-0.9.9.8/doc/api/a00355.html @@ -1,209 +1,209 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_rotate_normalized_axis - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_rotate_normalized_axis
-
-
- -

Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension. -More...

- - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotateNormalizedAxis (mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components normalized axis and an angle. More...
 
-

Detailed Description

-

Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension.

-

Quaternions and matrices rotations around normalized axis.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotateNormalizedAxis (mat< 4, 4, T, Q > const & m,
T const & angle,
vec< 3, T, Q > const & axis 
)
-
- -

Builds a rotation 4 * 4 matrix created from a normalized axis and an angle.

-
Parameters
- - - - -
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, must be normalized.
-
-
-
Template Parameters
- - -
TValue type used to build the matrix. Currently supported: half (not recommended), float or double.
-
-
-
See also
GLM_GTX_rotate_normalized_axis
-
-- rotate(T angle, T x, T y, T z)
-
-- rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
-
-- rotate(T angle, vec<3, T, Q> const& v)
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL qua<T, Q> glm::rotateNormalizedAxis (qua< T, Q > const & q,
T const & angle,
vec< 3, T, Q > const & axis 
)
-
- -

Rotates a quaternion from a vector of 3 components normalized axis and an angle.

-
Parameters
- - - - -
qSource orientation
angleAngle expressed in radians.
axisNormalized axis of the rotation, must be normalized.
-
-
-
See also
GLM_GTX_rotate_normalized_axis
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_rotate_normalized_axis + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_rotate_normalized_axis
+
+
+ +

Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension. +More...

+ + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotateNormalizedAxis (mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)
 Builds a rotation 4 * 4 matrix created from a normalized axis and an angle. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > rotateNormalizedAxis (qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)
 Rotates a quaternion from a vector of 3 components normalized axis and an angle. More...
 
+

Detailed Description

+

Include <glm/gtx/rotate_normalized_axis.hpp> to use the features of this extension.

+

Quaternions and matrices rotations around normalized axis.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotateNormalizedAxis (mat< 4, 4, T, Q > const & m,
T const & angle,
vec< 3, T, Q > const & axis 
)
+
+ +

Builds a rotation 4 * 4 matrix created from a normalized axis and an angle.

+
Parameters
+ + + + +
mInput matrix multiplied by this rotation matrix.
angleRotation angle expressed in radians.
axisRotation axis, must be normalized.
+
+
+
Template Parameters
+ + +
TValue type used to build the matrix. Currently supported: half (not recommended), float or double.
+
+
+
See also
GLM_GTX_rotate_normalized_axis
+
+- rotate(T angle, T x, T y, T z)
+
+- rotate(mat<4, 4, T, Q> const& m, T angle, T x, T y, T z)
+
+- rotate(T angle, vec<3, T, Q> const& v)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL qua<T, Q> glm::rotateNormalizedAxis (qua< T, Q > const & q,
T const & angle,
vec< 3, T, Q > const & axis 
)
+
+ +

Rotates a quaternion from a vector of 3 components normalized axis and an angle.

+
Parameters
+ + + + +
qSource orientation
angleAngle expressed in radians.
axisNormalized axis of the rotation, must be normalized.
+
+
+
See also
GLM_GTX_rotate_normalized_axis
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00356.html b/external/include/glm-0.9.9.8/doc/api/a00356.html index 15087b574f..3e6441b5cb 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00356.html +++ b/external/include/glm-0.9.9.8/doc/api/a00356.html @@ -1,492 +1,492 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_rotate_vector - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_rotate_vector
-
-
- -

Include <glm/gtx/rotate_vector.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation (vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
 Build a rotation matrix from a normal and a up vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > rotate (vec< 2, T, Q > const &v, T const &angle)
 Rotate a two dimensional vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a three dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a four dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateX (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateX (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateY (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateY (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateZ (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateZ (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > slerp (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
 Returns Spherical interpolation between two vectors. More...
 
-

Detailed Description

-

Include <glm/gtx/rotate_vector.hpp> to use the features of this extension.

-

Function to directly rotate a vector

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::orientation (vec< 3, T, Q > const & Normal,
vec< 3, T, Q > const & Up 
)
-
- -

Build a rotation matrix from a normal and a up vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<2, T, Q> glm::rotate (vec< 2, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a two dimensional vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rotate (vec< 3, T, Q > const & v,
T const & angle,
vec< 3, T, Q > const & normal 
)
-
- -

Rotate a three dimensional vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::rotate (vec< 4, T, Q > const & v,
T const & angle,
vec< 3, T, Q > const & normal 
)
-
- -

Rotate a four dimensional vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rotateX (vec< 3, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::rotateX (vec< 4, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a four dimensional vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rotateY (vec< 3, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the Y axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::rotateY (vec< 4, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a four dimensional vector around the Y axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::rotateZ (vec< 3, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a three dimensional vector around the Z axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<4, T, Q> glm::rotateZ (vec< 4, T, Q > const & v,
T const & angle 
)
-
- -

Rotate a four dimensional vector around the Z axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<3, T, Q> glm::slerp (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
T const & a 
)
-
- -

Returns Spherical interpolation between two vectors.

-
Parameters
- - - - -
xA first vector
yA second vector
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
-
-
-
See also
GLM_GTX_rotate_vector
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_rotate_vector + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_rotate_vector
+
+
+ +

Include <glm/gtx/rotate_vector.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > orientation (vec< 3, T, Q > const &Normal, vec< 3, T, Q > const &Up)
 Build a rotation matrix from a normal and a up vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 2, T, Q > rotate (vec< 2, T, Q > const &v, T const &angle)
 Rotate a two dimensional vector. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotate (vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a three dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotate (vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)
 Rotate a four dimensional vector around an axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateX (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateX (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateY (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateY (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > rotateZ (vec< 3, T, Q > const &v, T const &angle)
 Rotate a three dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, T, Q > rotateZ (vec< 4, T, Q > const &v, T const &angle)
 Rotate a four dimensional vector around the Z axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 3, T, Q > slerp (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)
 Returns Spherical interpolation between two vectors. More...
 
+

Detailed Description

+

Include <glm/gtx/rotate_vector.hpp> to use the features of this extension.

+

Function to directly rotate a vector

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::orientation (vec< 3, T, Q > const & Normal,
vec< 3, T, Q > const & Up 
)
+
+ +

Build a rotation matrix from a normal and a up vector.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<2, T, Q> glm::rotate (vec< 2, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a two dimensional vector.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rotate (vec< 3, T, Q > const & v,
T const & angle,
vec< 3, T, Q > const & normal 
)
+
+ +

Rotate a three dimensional vector around an axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::rotate (vec< 4, T, Q > const & v,
T const & angle,
vec< 3, T, Q > const & normal 
)
+
+ +

Rotate a four dimensional vector around an axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rotateX (vec< 3, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a three dimensional vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::rotateX (vec< 4, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a four dimensional vector around the X axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rotateY (vec< 3, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a three dimensional vector around the Y axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::rotateY (vec< 4, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a four dimensional vector around the Y axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::rotateZ (vec< 3, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a three dimensional vector around the Z axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<4, T, Q> glm::rotateZ (vec< 4, T, Q > const & v,
T const & angle 
)
+
+ +

Rotate a four dimensional vector around the Z axis.

+

From GLM_GTX_rotate_vector extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<3, T, Q> glm::slerp (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
T const & a 
)
+
+ +

Returns Spherical interpolation between two vectors.

+
Parameters
+ + + + +
xA first vector
yA second vector
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
+
+
+
See also
GLM_GTX_rotate_vector
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00357.html b/external/include/glm-0.9.9.8/doc/api/a00357.html index 8ecf000949..78e85e33c7 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00357.html +++ b/external/include/glm-0.9.9.8/doc/api/a00357.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_scalar_relational - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_GTX_scalar_relational
-
-
- -

Include <glm/gtx/scalar_relational.hpp> to use the features of this extension. -More...

-

Include <glm/gtx/scalar_relational.hpp> to use the features of this extension.

-

Extend a position from a source to a position at a defined length.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_scalar_relational + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_GTX_scalar_relational
+
+
+ +

Include <glm/gtx/scalar_relational.hpp> to use the features of this extension. +More...

+

Include <glm/gtx/scalar_relational.hpp> to use the features of this extension.

+

Extend a position from a source to a position at a defined length.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00358.html b/external/include/glm-0.9.9.8/doc/api/a00358.html index 30c7888315..6b1f77bf4c 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00358.html +++ b/external/include/glm-0.9.9.8/doc/api/a00358.html @@ -1,256 +1,256 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_spline - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/spline.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a catmull rom curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a cubic curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 Return a point from a hermite curve. More...
 
-

Detailed Description

-

Include <glm/gtx/spline.hpp> to use the features of this extension.

-

Spline functions

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::catmullRom (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
-
- -

Return a point from a catmull rom curve.

-
See also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::cubic (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
-
- -

Return a point from a cubic curve.

-
See also
GLM_GTX_spline extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL genType glm::hermite (genType const & v1,
genType const & t1,
genType const & v2,
genType const & t2,
typename genType::value_type const & s 
)
-
- -

Return a point from a hermite curve.

-
See also
GLM_GTX_spline extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_spline + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/spline.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType catmullRom (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a catmull rom curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType cubic (genType const &v1, genType const &v2, genType const &v3, genType const &v4, typename genType::value_type const &s)
 Return a point from a cubic curve. More...
 
template<typename genType >
GLM_FUNC_DECL genType hermite (genType const &v1, genType const &t1, genType const &v2, genType const &t2, typename genType::value_type const &s)
 Return a point from a hermite curve. More...
 
+

Detailed Description

+

Include <glm/gtx/spline.hpp> to use the features of this extension.

+

Spline functions

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::catmullRom (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
+
+ +

Return a point from a catmull rom curve.

+
See also
GLM_GTX_spline extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::cubic (genType const & v1,
genType const & v2,
genType const & v3,
genType const & v4,
typename genType::value_type const & s 
)
+
+ +

Return a point from a cubic curve.

+
See also
GLM_GTX_spline extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL genType glm::hermite (genType const & v1,
genType const & t1,
genType const & v2,
genType const & t2,
typename genType::value_type const & s 
)
+
+ +

Return a point from a hermite curve.

+
See also
GLM_GTX_spline extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00359.html b/external/include/glm-0.9.9.8/doc/api/a00359.html index ead6d95d54..4bccea2477 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00359.html +++ b/external/include/glm-0.9.9.8/doc/api/a00359.html @@ -1,263 +1,263 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_std_based_type - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_std_based_type
-
-
- -

Include <glm/gtx/std_based_type.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef vec< 1, std::size_t, defaultp > size1
 Vector type based of one std::size_t component. More...
 
typedef vec< 1, std::size_t, defaultp > size1_t
 Vector type based of one std::size_t component. More...
 
typedef vec< 2, std::size_t, defaultp > size2
 Vector type based of two std::size_t components. More...
 
typedef vec< 2, std::size_t, defaultp > size2_t
 Vector type based of two std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3
 Vector type based of three std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3_t
 Vector type based of three std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4
 Vector type based of four std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4_t
 Vector type based of four std::size_t components. More...
 
-

Detailed Description

-

Include <glm/gtx/std_based_type.hpp> to use the features of this extension.

-

Adds vector types based on STL value types.

-

Typedef Documentation

- -
-
- - - - -
typedef vec<1, std::size_t, defaultp> size1
-
- -

Vector type based of one std::size_t component.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 35 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<1, std::size_t, defaultp> size1_t
-
- -

Vector type based of one std::size_t component.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 51 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<2, std::size_t, defaultp> size2
-
- -

Vector type based of two std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 39 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<2, std::size_t, defaultp> size2_t
-
- -

Vector type based of two std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 55 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<3, std::size_t, defaultp> size3
-
- -

Vector type based of three std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 43 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<3, std::size_t, defaultp> size3_t
-
- -

Vector type based of three std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 59 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<4, std::size_t, defaultp> size4
-
- -

Vector type based of four std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 47 of file std_based_type.hpp.

- -
-
- -
-
- - - - -
typedef vec<4, std::size_t, defaultp> size4_t
-
- -

Vector type based of four std::size_t components.

-
See also
GLM_GTX_std_based_type
- -

Definition at line 63 of file std_based_type.hpp.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_std_based_type + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_std_based_type
+
+
+ +

Include <glm/gtx/std_based_type.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef vec< 1, std::size_t, defaultp > size1
 Vector type based of one std::size_t component. More...
 
typedef vec< 1, std::size_t, defaultp > size1_t
 Vector type based of one std::size_t component. More...
 
typedef vec< 2, std::size_t, defaultp > size2
 Vector type based of two std::size_t components. More...
 
typedef vec< 2, std::size_t, defaultp > size2_t
 Vector type based of two std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3
 Vector type based of three std::size_t components. More...
 
typedef vec< 3, std::size_t, defaultp > size3_t
 Vector type based of three std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4
 Vector type based of four std::size_t components. More...
 
typedef vec< 4, std::size_t, defaultp > size4_t
 Vector type based of four std::size_t components. More...
 
+

Detailed Description

+

Include <glm/gtx/std_based_type.hpp> to use the features of this extension.

+

Adds vector types based on STL value types.

+

Typedef Documentation

+ +
+
+ + + + +
typedef vec<1, std::size_t, defaultp> size1
+
+ +

Vector type based of one std::size_t component.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 35 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<1, std::size_t, defaultp> size1_t
+
+ +

Vector type based of one std::size_t component.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 51 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<2, std::size_t, defaultp> size2
+
+ +

Vector type based of two std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 39 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<2, std::size_t, defaultp> size2_t
+
+ +

Vector type based of two std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 55 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<3, std::size_t, defaultp> size3
+
+ +

Vector type based of three std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 43 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<3, std::size_t, defaultp> size3_t
+
+ +

Vector type based of three std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 59 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<4, std::size_t, defaultp> size4
+
+ +

Vector type based of four std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 47 of file std_based_type.hpp.

+ +
+
+ +
+
+ + + + +
typedef vec<4, std::size_t, defaultp> size4_t
+
+ +

Vector type based of four std::size_t components.

+
See also
GLM_GTX_std_based_type
+ +

Definition at line 63 of file std_based_type.hpp.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00360.html b/external/include/glm-0.9.9.8/doc/api/a00360.html index 063d7ba3fd..15834ca005 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00360.html +++ b/external/include/glm-0.9.9.8/doc/api/a00360.html @@ -1,127 +1,127 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_string_cast - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_string_cast
-
-
- -

Include <glm/gtx/string_cast.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL std::string to_string (genType const &x)
 Create a string from a GLM vector or matrix typed variable. More...
 
-

Detailed Description

-

Include <glm/gtx/string_cast.hpp> to use the features of this extension.

-

Setup strings for GLM type values

-

This extension is not supported with CUDA

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL std::string glm::to_string (genType const & x)
-
- -

Create a string from a GLM vector or matrix typed variable.

-
See also
GLM_GTX_string_cast extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_string_cast + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_string_cast
+
+
+ +

Include <glm/gtx/string_cast.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL std::string to_string (genType const &x)
 Create a string from a GLM vector or matrix typed variable. More...
 
+

Detailed Description

+

Include <glm/gtx/string_cast.hpp> to use the features of this extension.

+

Setup strings for GLM type values

+

This extension is not supported with CUDA

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL std::string glm::to_string (genType const & x)
+
+ +

Create a string from a GLM vector or matrix typed variable.

+
See also
GLM_GTX_string_cast extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00361.html b/external/include/glm-0.9.9.8/doc/api/a00361.html index 4a220c78ba..4f438c327e 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00361.html +++ b/external/include/glm-0.9.9.8/doc/api/a00361.html @@ -1,139 +1,139 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_texture - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
-
-
- -

Include <glm/gtx/texture.hpp> to use the features of this extension. -More...

- - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
T levels (vec< L, T, Q > const &Extent)
 Compute the number of mipmaps levels necessary to create a mipmap complete texture. More...
 
-

Detailed Description

-

Include <glm/gtx/texture.hpp> to use the features of this extension.

-

Wrapping mode of texture coordinates.

-

Function Documentation

- -
-
- - - - - - - - -
T glm::levels (vec< L, T, Q > const & Extent)
-
- -

Compute the number of mipmaps levels necessary to create a mipmap complete texture.

-
Parameters
- - -
ExtentExtent of the texture base level mipmap
-
-
-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_texture + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
+
+
+ +

Include <glm/gtx/texture.hpp> to use the features of this extension. +More...

+ + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
T levels (vec< L, T, Q > const &Extent)
 Compute the number of mipmaps levels necessary to create a mipmap complete texture. More...
 
+

Detailed Description

+

Include <glm/gtx/texture.hpp> to use the features of this extension.

+

Wrapping mode of texture coordinates.

+

Function Documentation

+ +
+
+ + + + + + + + +
T glm::levels (vec< L, T, Q > const & Extent)
+
+ +

Compute the number of mipmaps levels necessary to create a mipmap complete texture.

+
Parameters
+ + +
ExtentExtent of the texture base level mipmap
+
+
+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00362.html b/external/include/glm-0.9.9.8/doc/api/a00362.html index 61867943e0..5b6acb9b3f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00362.html +++ b/external/include/glm-0.9.9.8/doc/api/a00362.html @@ -1,188 +1,188 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_transform - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_transform
-
-
- -

Include <glm/gtx/transform.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (T angle, vec< 3, T, Q > const &v)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (vec< 3, T, Q > const &v)
 Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (vec< 3, T, Q > const &v)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. More...
 
-

Detailed Description

-

Include <glm/gtx/transform.hpp> to use the features of this extension.

-

Add transformation matrices

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotate (T angle,
vec< 3, T, Q > const & v 
)
-
- -

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians.

-
See also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scale (vec< 3, T, Q > const & v)
-
- -

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

-
See also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::translate (vec< 3, T, Q > const & v)
-
- -

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

-
See also
GLM_GTC_matrix_transform
-
-GLM_GTX_transform
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_transform + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_transform
+
+
+ +

Include <glm/gtx/transform.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (T angle, vec< 3, T, Q > const &v)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scale (vec< 3, T, Q > const &v)
 Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > translate (vec< 3, T, Q > const &v)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars. More...
 
+

Detailed Description

+

Include <glm/gtx/transform.hpp> to use the features of this extension.

+

Add transformation matrices

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::rotate (T angle,
vec< 3, T, Q > const & v 
)
+
+ +

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in radians.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scale (vec< 3, T, Q > const & v)
+
+ +

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::translate (vec< 3, T, Q > const & v)
+
+ +

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

+
See also
GLM_GTC_matrix_transform
+
+GLM_GTX_transform
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00363.html b/external/include/glm-0.9.9.8/doc/api/a00363.html index a19bd1d818..838999eb34 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00363.html +++ b/external/include/glm-0.9.9.8/doc/api/a00363.html @@ -1,423 +1,423 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_transform2 - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_transform2
-
-
- -

Include <glm/gtx/transform2.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D (mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (mat< 4, 4, T, Q > const &m, T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D (mat< 3, 3, T, Q > const &m, T y)
 Transforms a matrix with a shearing on X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D (mat< 4, 4, T, Q > const &m, T y, T z)
 Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D (mat< 3, 3, T, Q > const &m, T x)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D (mat< 4, 4, T, Q > const &m, T x, T z)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D (mat< 4, 4, T, Q > const &m, T x, T y)
 Transforms a matrix with a shearing on Z axis. More...
 
-

Detailed Description

-

Include <glm/gtx/transform2.hpp> to use the features of this extension.

-

Add extra transformation matrices

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::proj2D (mat< 3, 3, T, Q > const & m,
vec< 3, T, Q > const & normal 
)
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::proj3D (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & normal 
)
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scaleBias (T scale,
T bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scaleBias (mat< 4, 4, T, Q > const & m,
T scale,
T bias 
)
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::shearX2D (mat< 3, 3, T, Q > const & m,
T y 
)
-
- -

Transforms a matrix with a shearing on X axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearX3D (mat< 4, 4, T, Q > const & m,
T y,
T z 
)
-
- -

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<3, 3, T, Q> glm::shearY2D (mat< 3, 3, T, Q > const & m,
T x 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearY3D (mat< 4, 4, T, Q > const & m,
T x,
T z 
)
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearZ3D (mat< 4, 4, T, Q > const & m,
T x,
T y 
)
-
- -

Transforms a matrix with a shearing on Z axis.

-

From GLM_GTX_transform2 extension.

- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_transform2 + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_transform2
+
+
+ +

Include <glm/gtx/transform2.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > proj2D (mat< 3, 3, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > proj3D (mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &normal)
 Build planar projection matrix along normal axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > scaleBias (mat< 4, 4, T, Q > const &m, T scale, T bias)
 Build a scale bias matrix. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearX2D (mat< 3, 3, T, Q > const &m, T y)
 Transforms a matrix with a shearing on X axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearX3D (mat< 4, 4, T, Q > const &m, T y, T z)
 Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 3, 3, T, Q > shearY2D (mat< 3, 3, T, Q > const &m, T x)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearY3D (mat< 4, 4, T, Q > const &m, T x, T z)
 Transforms a matrix with a shearing on Y axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL mat< 4, 4, T, Q > shearZ3D (mat< 4, 4, T, Q > const &m, T x, T y)
 Transforms a matrix with a shearing on Z axis. More...
 
+

Detailed Description

+

Include <glm/gtx/transform2.hpp> to use the features of this extension.

+

Add extra transformation matrices

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::proj2D (mat< 3, 3, T, Q > const & m,
vec< 3, T, Q > const & normal 
)
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::proj3D (mat< 4, 4, T, Q > const & m,
vec< 3, T, Q > const & normal 
)
+
+ +

Build planar projection matrix along normal axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scaleBias (T scale,
T bias 
)
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::scaleBias (mat< 4, 4, T, Q > const & m,
T scale,
T bias 
)
+
+ +

Build a scale bias matrix.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::shearX2D (mat< 3, 3, T, Q > const & m,
T y 
)
+
+ +

Transforms a matrix with a shearing on X axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearX3D (mat< 4, 4, T, Q > const & m,
T y,
T z 
)
+
+ +

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<3, 3, T, Q> glm::shearY2D (mat< 3, 3, T, Q > const & m,
T x 
)
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearY3D (mat< 4, 4, T, Q > const & m,
T x,
T z 
)
+
+ +

Transforms a matrix with a shearing on Y axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<4, 4, T, Q> glm::shearZ3D (mat< 4, 4, T, Q > const & m,
T x,
T y 
)
+
+ +

Transforms a matrix with a shearing on Z axis.

+

From GLM_GTX_transform2 extension.

+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00364.html b/external/include/glm-0.9.9.8/doc/api/a00364.html index ba1b70aff5..d54b6042d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00364.html +++ b/external/include/glm-0.9.9.8/doc/api/a00364.html @@ -1,7945 +1,7945 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_type_aligned - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_type_aligned
-
-
- -

Include <glm/gtx/type_aligned.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 Default qualifier 8 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 Default qualifier 8 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 Default qualifier 8 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 Default qualifier 16 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 Default qualifier 16 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 Default qualifier 16 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 Default qualifier 64 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 Default qualifier 64 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 Default qualifier 64 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 Default qualifier 8 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 Default qualifier 16 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 Default qualifier 64 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 Double-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 Double-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 Double-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 Double-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 Double-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 Double-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_fquat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
-

Detailed Description

-

Include <glm/gtx/type_aligned.hpp> to use the features of this extension.

-

Defines aligned types.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int8 ,
aligned_lowp_int8 ,
1  
)
-
- -

Low qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int16 ,
aligned_lowp_int16 ,
2  
)
-
- -

Low qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int32 ,
aligned_lowp_int32 ,
4  
)
-
- -

Low qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int64 ,
aligned_lowp_int64 ,
8  
)
-
- -

Low qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int8_t ,
aligned_lowp_int8_t ,
1  
)
-
- -

Low qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int16_t ,
aligned_lowp_int16_t ,
2  
)
-
- -

Low qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int32_t ,
aligned_lowp_int32_t ,
4  
)
-
- -

Low qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_int64_t ,
aligned_lowp_int64_t ,
8  
)
-
- -

Low qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_i8 ,
aligned_lowp_i8 ,
1  
)
-
- -

Low qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_i16 ,
aligned_lowp_i16 ,
2  
)
-
- -

Low qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_i32 ,
aligned_lowp_i32 ,
4  
)
-
- -

Low qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_i64 ,
aligned_lowp_i64 ,
8  
)
-
- -

Low qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int8 ,
aligned_mediump_int8 ,
1  
)
-
- -

Medium qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int16 ,
aligned_mediump_int16 ,
2  
)
-
- -

Medium qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int32 ,
aligned_mediump_int32 ,
4  
)
-
- -

Medium qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int64 ,
aligned_mediump_int64 ,
8  
)
-
- -

Medium qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int8_t ,
aligned_mediump_int8_t ,
1  
)
-
- -

Medium qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int16_t ,
aligned_mediump_int16_t ,
2  
)
-
- -

Medium qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int32_t ,
aligned_mediump_int32_t ,
4  
)
-
- -

Medium qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_int64_t ,
aligned_mediump_int64_t ,
8  
)
-
- -

Medium qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_i8 ,
aligned_mediump_i8 ,
1  
)
-
- -

Medium qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_i16 ,
aligned_mediump_i16 ,
2  
)
-
- -

Medium qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_i32 ,
aligned_mediump_i32 ,
4  
)
-
- -

Medium qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_i64 ,
aligned_mediump_i64 ,
8  
)
-
- -

Medium qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int8 ,
aligned_highp_int8 ,
1  
)
-
- -

High qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int16 ,
aligned_highp_int16 ,
2  
)
-
- -

High qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int32 ,
aligned_highp_int32 ,
4  
)
-
- -

High qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int64 ,
aligned_highp_int64 ,
8  
)
-
- -

High qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int8_t ,
aligned_highp_int8_t ,
1  
)
-
- -

High qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int16_t ,
aligned_highp_int16_t ,
2  
)
-
- -

High qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int32_t ,
aligned_highp_int32_t ,
4  
)
-
- -

High qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_int64_t ,
aligned_highp_int64_t ,
8  
)
-
- -

High qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_i8 ,
aligned_highp_i8 ,
1  
)
-
- -

High qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_i16 ,
aligned_highp_i16 ,
2  
)
-
- -

High qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_i32 ,
aligned_highp_i32 ,
4  
)
-
- -

High qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_i64 ,
aligned_highp_i64 ,
8  
)
-
- -

High qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int8 ,
aligned_int8 ,
1  
)
-
- -

Default qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int16 ,
aligned_int16 ,
2  
)
-
- -

Default qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int32 ,
aligned_int32 ,
4  
)
-
- -

Default qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int64 ,
aligned_int64 ,
8  
)
-
- -

Default qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int8_t ,
aligned_int8_t ,
1  
)
-
- -

Default qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int16_t ,
aligned_int16_t ,
2  
)
-
- -

Default qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int32_t ,
aligned_int32_t ,
4  
)
-
- -

Default qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (int64_t ,
aligned_int64_t ,
8  
)
-
- -

Default qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i8 ,
aligned_i8 ,
1  
)
-
- -

Default qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i16 ,
aligned_i16 ,
2  
)
-
- -

Default qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i32 ,
aligned_i32 ,
4  
)
-
- -

Default qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i64 ,
aligned_i64 ,
8  
)
-
- -

Default qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (ivec1 ,
aligned_ivec1 ,
4  
)
-
- -

Default qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (ivec2 ,
aligned_ivec2 ,
8  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (ivec3 ,
aligned_ivec3 ,
16  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (ivec4 ,
aligned_ivec4 ,
16  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i8vec1 ,
aligned_i8vec1 ,
1  
)
-
- -

Default qualifier 8 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i8vec2 ,
aligned_i8vec2 ,
2  
)
-
- -

Default qualifier 8 bit signed integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i8vec3 ,
aligned_i8vec3 ,
4  
)
-
- -

Default qualifier 8 bit signed integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i8vec4 ,
aligned_i8vec4 ,
4  
)
-
- -

Default qualifier 8 bit signed integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i16vec1 ,
aligned_i16vec1 ,
2  
)
-
- -

Default qualifier 16 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i16vec2 ,
aligned_i16vec2 ,
4  
)
-
- -

Default qualifier 16 bit signed integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i16vec3 ,
aligned_i16vec3 ,
8  
)
-
- -

Default qualifier 16 bit signed integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i16vec4 ,
aligned_i16vec4 ,
8  
)
-
- -

Default qualifier 16 bit signed integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i32vec1 ,
aligned_i32vec1 ,
4  
)
-
- -

Default qualifier 32 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i32vec2 ,
aligned_i32vec2 ,
8  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i32vec3 ,
aligned_i32vec3 ,
16  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i32vec4 ,
aligned_i32vec4 ,
16  
)
-
- -

Default qualifier 32 bit signed integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i64vec1 ,
aligned_i64vec1 ,
8  
)
-
- -

Default qualifier 64 bit signed integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i64vec2 ,
aligned_i64vec2 ,
16  
)
-
- -

Default qualifier 64 bit signed integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i64vec3 ,
aligned_i64vec3 ,
32  
)
-
- -

Default qualifier 64 bit signed integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (i64vec4 ,
aligned_i64vec4 ,
32  
)
-
- -

Default qualifier 64 bit signed integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8 ,
aligned_lowp_uint8 ,
1  
)
-
- -

Low qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16 ,
aligned_lowp_uint16 ,
2  
)
-
- -

Low qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32 ,
aligned_lowp_uint32 ,
4  
)
-
- -

Low qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64 ,
aligned_lowp_uint64 ,
8  
)
-
- -

Low qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8_t ,
aligned_lowp_uint8_t ,
1  
)
-
- -

Low qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16_t ,
aligned_lowp_uint16_t ,
2  
)
-
- -

Low qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32_t ,
aligned_lowp_uint32_t ,
4  
)
-
- -

Low qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64_t ,
aligned_lowp_uint64_t ,
8  
)
-
- -

Low qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_u8 ,
aligned_lowp_u8 ,
1  
)
-
- -

Low qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_u16 ,
aligned_lowp_u16 ,
2  
)
-
- -

Low qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_u32 ,
aligned_lowp_u32 ,
4  
)
-
- -

Low qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (lowp_u64 ,
aligned_lowp_u64 ,
8  
)
-
- -

Low qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8 ,
aligned_mediump_uint8 ,
1  
)
-
- -

Medium qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16 ,
aligned_mediump_uint16 ,
2  
)
-
- -

Medium qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32 ,
aligned_mediump_uint32 ,
4  
)
-
- -

Medium qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64 ,
aligned_mediump_uint64 ,
8  
)
-
- -

Medium qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8_t ,
aligned_mediump_uint8_t ,
1  
)
-
- -

Medium qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16_t ,
aligned_mediump_uint16_t ,
2  
)
-
- -

Medium qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32_t ,
aligned_mediump_uint32_t ,
4  
)
-
- -

Medium qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64_t ,
aligned_mediump_uint64_t ,
8  
)
-
- -

Medium qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_u8 ,
aligned_mediump_u8 ,
1  
)
-
- -

Medium qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_u16 ,
aligned_mediump_u16 ,
2  
)
-
- -

Medium qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_u32 ,
aligned_mediump_u32 ,
4  
)
-
- -

Medium qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (mediump_u64 ,
aligned_mediump_u64 ,
8  
)
-
- -

Medium qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint8 ,
aligned_highp_uint8 ,
1  
)
-
- -

High qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint16 ,
aligned_highp_uint16 ,
2  
)
-
- -

High qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint32 ,
aligned_highp_uint32 ,
4  
)
-
- -

High qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint64 ,
aligned_highp_uint64 ,
8  
)
-
- -

High qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint8_t ,
aligned_highp_uint8_t ,
1  
)
-
- -

High qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint16_t ,
aligned_highp_uint16_t ,
2  
)
-
- -

High qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint32_t ,
aligned_highp_uint32_t ,
4  
)
-
- -

High qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_uint64_t ,
aligned_highp_uint64_t ,
8  
)
-
- -

High qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_u8 ,
aligned_highp_u8 ,
1  
)
-
- -

High qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_u16 ,
aligned_highp_u16 ,
2  
)
-
- -

High qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_u32 ,
aligned_highp_u32 ,
4  
)
-
- -

High qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (highp_u64 ,
aligned_highp_u64 ,
8  
)
-
- -

High qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint8 ,
aligned_uint8 ,
1  
)
-
- -

Default qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint16 ,
aligned_uint16 ,
2  
)
-
- -

Default qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint32 ,
aligned_uint32 ,
4  
)
-
- -

Default qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint64 ,
aligned_uint64 ,
8  
)
-
- -

Default qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint8_t ,
aligned_uint8_t ,
1  
)
-
- -

Default qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint16_t ,
aligned_uint16_t ,
2  
)
-
- -

Default qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint32_t ,
aligned_uint32_t ,
4  
)
-
- -

Default qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uint64_t ,
aligned_uint64_t ,
8  
)
-
- -

Default qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u8 ,
aligned_u8 ,
1  
)
-
- -

Default qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u16 ,
aligned_u16 ,
2  
)
-
- -

Default qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u32 ,
aligned_u32 ,
4  
)
-
- -

Default qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u64 ,
aligned_u64 ,
8  
)
-
- -

Default qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uvec1 ,
aligned_uvec1 ,
4  
)
-
- -

Default qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uvec2 ,
aligned_uvec2 ,
8  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uvec3 ,
aligned_uvec3 ,
16  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (uvec4 ,
aligned_uvec4 ,
16  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u8vec1 ,
aligned_u8vec1 ,
1  
)
-
- -

Default qualifier 8 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u8vec2 ,
aligned_u8vec2 ,
2  
)
-
- -

Default qualifier 8 bit unsigned integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u8vec3 ,
aligned_u8vec3 ,
4  
)
-
- -

Default qualifier 8 bit unsigned integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u8vec4 ,
aligned_u8vec4 ,
4  
)
-
- -

Default qualifier 8 bit unsigned integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u16vec1 ,
aligned_u16vec1 ,
2  
)
-
- -

Default qualifier 16 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u16vec2 ,
aligned_u16vec2 ,
4  
)
-
- -

Default qualifier 16 bit unsigned integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u16vec3 ,
aligned_u16vec3 ,
8  
)
-
- -

Default qualifier 16 bit unsigned integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u16vec4 ,
aligned_u16vec4 ,
8  
)
-
- -

Default qualifier 16 bit unsigned integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u32vec1 ,
aligned_u32vec1 ,
4  
)
-
- -

Default qualifier 32 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u32vec2 ,
aligned_u32vec2 ,
8  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u32vec3 ,
aligned_u32vec3 ,
16  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u32vec4 ,
aligned_u32vec4 ,
16  
)
-
- -

Default qualifier 32 bit unsigned integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u64vec1 ,
aligned_u64vec1 ,
8  
)
-
- -

Default qualifier 64 bit unsigned integer aligned scalar type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u64vec2 ,
aligned_u64vec2 ,
16  
)
-
- -

Default qualifier 64 bit unsigned integer aligned vector of 2 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u64vec3 ,
aligned_u64vec3 ,
32  
)
-
- -

Default qualifier 64 bit unsigned integer aligned vector of 3 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (u64vec4 ,
aligned_u64vec4 ,
32  
)
-
- -

Default qualifier 64 bit unsigned integer aligned vector of 4 components type.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_float32 ,
4  
)
-
- -

32 bit single-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float32_t ,
aligned_float32_t ,
4  
)
-
- -

32 bit single-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_f32 ,
4  
)
-
- -

32 bit single-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_float64 ,
8  
)
-
- -

64 bit double-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float64_t ,
aligned_float64_t ,
8  
)
-
- -

64 bit double-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_f64 ,
8  
)
-
- -

64 bit double-qualifier floating-point aligned scalar.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (vec1 ,
aligned_vec1 ,
4  
)
-
- -

Single-qualifier floating-point aligned vector of 1 component.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (vec2 ,
aligned_vec2 ,
8  
)
-
- -

Single-qualifier floating-point aligned vector of 2 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (vec3 ,
aligned_vec3 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 3 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (vec4 ,
aligned_vec4 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 4 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fvec1 ,
aligned_fvec1 ,
4  
)
-
- -

Single-qualifier floating-point aligned vector of 1 component.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fvec2 ,
aligned_fvec2 ,
8  
)
-
- -

Single-qualifier floating-point aligned vector of 2 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fvec3 ,
aligned_fvec3 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 3 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fvec4 ,
aligned_fvec4 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 4 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32vec1 ,
aligned_f32vec1 ,
4  
)
-
- -

Single-qualifier floating-point aligned vector of 1 component.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32vec2 ,
aligned_f32vec2 ,
8  
)
-
- -

Single-qualifier floating-point aligned vector of 2 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32vec3 ,
aligned_f32vec3 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 3 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32vec4 ,
aligned_f32vec4 ,
16  
)
-
- -

Single-qualifier floating-point aligned vector of 4 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (dvec1 ,
aligned_dvec1 ,
8  
)
-
- -

Double-qualifier floating-point aligned vector of 1 component.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (dvec2 ,
aligned_dvec2 ,
16  
)
-
- -

Double-qualifier floating-point aligned vector of 2 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (dvec3 ,
aligned_dvec3 ,
32  
)
-
- -

Double-qualifier floating-point aligned vector of 3 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (dvec4 ,
aligned_dvec4 ,
32  
)
-
- -

Double-qualifier floating-point aligned vector of 4 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64vec1 ,
aligned_f64vec1 ,
8  
)
-
- -

Double-qualifier floating-point aligned vector of 1 component.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64vec2 ,
aligned_f64vec2 ,
16  
)
-
- -

Double-qualifier floating-point aligned vector of 2 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64vec3 ,
aligned_f64vec3 ,
32  
)
-
- -

Double-qualifier floating-point aligned vector of 3 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64vec4 ,
aligned_f64vec4 ,
32  
)
-
- -

Double-qualifier floating-point aligned vector of 4 components.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_ALIGNED_TYPEDEF (mat2 ,
aligned_mat2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_ALIGNED_TYPEDEF (mat3 ,
aligned_mat3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_ALIGNED_TYPEDEF (mat4 ,
aligned_mat4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat2x3 ,
aligned_fmat2x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 2x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat2x4 ,
aligned_fmat2x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 2x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat3x2 ,
aligned_fmat3x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat3x4 ,
aligned_fmat3x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat4x2 ,
aligned_fmat4x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat4x3 ,
aligned_fmat4x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat2x3 ,
aligned_f32mat2x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 2x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat2x4 ,
aligned_f32mat2x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 2x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat3x2 ,
aligned_f32mat3x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat3x4 ,
aligned_f32mat3x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 3x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat4x2 ,
aligned_f32mat4x2 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat4x3 ,
aligned_f32mat4x3 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4x4 ,
16  
)
-
- -

Single-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2 ,
32  
)
-
- -

Double-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Double-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3 ,
32  
)
-
- -

Double-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4 ,
32  
)
-
- -

Double-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2x2 ,
32  
)
-
- -

Double-qualifier floating-point aligned 1x1 matrix.

-
See also
GLM_GTX_type_aligned Double-qualifier floating-point aligned 2x2 matrix.
-
-GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat2x3 ,
aligned_f64mat2x3 ,
32  
)
-
- -

Double-qualifier floating-point aligned 2x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat2x4 ,
aligned_f64mat2x4 ,
32  
)
-
- -

Double-qualifier floating-point aligned 2x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat3x2 ,
aligned_f64mat3x2 ,
32  
)
-
- -

Double-qualifier floating-point aligned 3x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3x3 ,
32  
)
-
- -

Double-qualifier floating-point aligned 3x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat3x4 ,
aligned_f64mat3x4 ,
32  
)
-
- -

Double-qualifier floating-point aligned 3x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat4x2 ,
aligned_f64mat4x2 ,
32  
)
-
- -

Double-qualifier floating-point aligned 4x2 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat4x3 ,
aligned_f64mat4x3 ,
32  
)
-
- -

Double-qualifier floating-point aligned 4x3 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4x4 ,
32  
)
-
- -

Double-qualifier floating-point aligned 4x4 matrix.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (quat ,
aligned_quat ,
16  
)
-
- -

Single-qualifier floating-point aligned quaternion.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (quat ,
aligned_fquat ,
16  
)
-
- -

Single-qualifier floating-point aligned quaternion.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (dquat ,
aligned_dquat ,
32  
)
-
- -

Double-qualifier floating-point aligned quaternion.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f32quat ,
aligned_f32quat ,
16  
)
-
- -

Single-qualifier floating-point aligned quaternion.

-
See also
GLM_GTX_type_aligned
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
glm::GLM_ALIGNED_TYPEDEF (f64quat ,
aligned_f64quat ,
32  
)
-
- -

Double-qualifier floating-point aligned quaternion.

-
See also
GLM_GTX_type_aligned
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_type_aligned + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_type_aligned
+
+
+ +

Include <glm/gtx/type_aligned.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

 GLM_ALIGNED_TYPEDEF (lowp_int8, aligned_lowp_int8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16, aligned_lowp_int16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32, aligned_lowp_int32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64, aligned_lowp_int64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int8_t, aligned_lowp_int8_t, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int16_t, aligned_lowp_int16_t, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int32_t, aligned_lowp_int32_t, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_int64_t, aligned_lowp_int64_t, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i8, aligned_lowp_i8, 1)
 Low qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i16, aligned_lowp_i16, 2)
 Low qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i32, aligned_lowp_i32, 4)
 Low qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_i64, aligned_lowp_i64, 8)
 Low qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8, aligned_mediump_int8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16, aligned_mediump_int16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32, aligned_mediump_int32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64, aligned_mediump_int64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int8_t, aligned_mediump_int8_t, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int16_t, aligned_mediump_int16_t, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int32_t, aligned_mediump_int32_t, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_int64_t, aligned_mediump_int64_t, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i8, aligned_mediump_i8, 1)
 Medium qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i16, aligned_mediump_i16, 2)
 Medium qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i32, aligned_mediump_i32, 4)
 Medium qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_i64, aligned_mediump_i64, 8)
 Medium qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8, aligned_highp_int8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16, aligned_highp_int16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32, aligned_highp_int32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64, aligned_highp_int64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int8_t, aligned_highp_int8_t, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int16_t, aligned_highp_int16_t, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int32_t, aligned_highp_int32_t, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_int64_t, aligned_highp_int64_t, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i8, aligned_highp_i8, 1)
 High qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i16, aligned_highp_i16, 2)
 High qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i32, aligned_highp_i32, 4)
 High qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_i64, aligned_highp_i64, 8)
 High qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8, aligned_int8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16, aligned_int16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32, aligned_int32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64, aligned_int64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int8_t, aligned_int8_t, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int16_t, aligned_int16_t, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int32_t, aligned_int32_t, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (int64_t, aligned_int64_t, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8, aligned_i8, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16, aligned_i16, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32, aligned_i32, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64, aligned_i64, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec1, aligned_ivec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec2, aligned_ivec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec3, aligned_ivec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (ivec4, aligned_ivec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec1, aligned_i8vec1, 1)
 Default qualifier 8 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec2, aligned_i8vec2, 2)
 Default qualifier 8 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec3, aligned_i8vec3, 4)
 Default qualifier 8 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i8vec4, aligned_i8vec4, 4)
 Default qualifier 8 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec1, aligned_i16vec1, 2)
 Default qualifier 16 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec2, aligned_i16vec2, 4)
 Default qualifier 16 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec3, aligned_i16vec3, 8)
 Default qualifier 16 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i16vec4, aligned_i16vec4, 8)
 Default qualifier 16 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec1, aligned_i32vec1, 4)
 Default qualifier 32 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec2, aligned_i32vec2, 8)
 Default qualifier 32 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec3, aligned_i32vec3, 16)
 Default qualifier 32 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i32vec4, aligned_i32vec4, 16)
 Default qualifier 32 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec1, aligned_i64vec1, 8)
 Default qualifier 64 bit signed integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec2, aligned_i64vec2, 16)
 Default qualifier 64 bit signed integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec3, aligned_i64vec3, 32)
 Default qualifier 64 bit signed integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (i64vec4, aligned_i64vec4, 32)
 Default qualifier 64 bit signed integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8, aligned_lowp_uint8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16, aligned_lowp_uint16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32, aligned_lowp_uint32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64, aligned_lowp_uint64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint8_t, aligned_lowp_uint8_t, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint16_t, aligned_lowp_uint16_t, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint32_t, aligned_lowp_uint32_t, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_uint64_t, aligned_lowp_uint64_t, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u8, aligned_lowp_u8, 1)
 Low qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u16, aligned_lowp_u16, 2)
 Low qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u32, aligned_lowp_u32, 4)
 Low qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (lowp_u64, aligned_lowp_u64, 8)
 Low qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8, aligned_mediump_uint8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16, aligned_mediump_uint16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32, aligned_mediump_uint32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64, aligned_mediump_uint64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint8_t, aligned_mediump_uint8_t, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint16_t, aligned_mediump_uint16_t, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint32_t, aligned_mediump_uint32_t, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_uint64_t, aligned_mediump_uint64_t, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u8, aligned_mediump_u8, 1)
 Medium qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u16, aligned_mediump_u16, 2)
 Medium qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u32, aligned_mediump_u32, 4)
 Medium qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (mediump_u64, aligned_mediump_u64, 8)
 Medium qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8, aligned_highp_uint8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16, aligned_highp_uint16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32, aligned_highp_uint32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64, aligned_highp_uint64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint8_t, aligned_highp_uint8_t, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint16_t, aligned_highp_uint16_t, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint32_t, aligned_highp_uint32_t, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_uint64_t, aligned_highp_uint64_t, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u8, aligned_highp_u8, 1)
 High qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u16, aligned_highp_u16, 2)
 High qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u32, aligned_highp_u32, 4)
 High qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (highp_u64, aligned_highp_u64, 8)
 High qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8, aligned_uint8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16, aligned_uint16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32, aligned_uint32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64, aligned_uint64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint8_t, aligned_uint8_t, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint16_t, aligned_uint16_t, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint32_t, aligned_uint32_t, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uint64_t, aligned_uint64_t, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8, aligned_u8, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16, aligned_u16, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32, aligned_u32, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64, aligned_u64, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec1, aligned_uvec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec2, aligned_uvec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec3, aligned_uvec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (uvec4, aligned_uvec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec1, aligned_u8vec1, 1)
 Default qualifier 8 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec2, aligned_u8vec2, 2)
 Default qualifier 8 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec3, aligned_u8vec3, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u8vec4, aligned_u8vec4, 4)
 Default qualifier 8 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec1, aligned_u16vec1, 2)
 Default qualifier 16 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec2, aligned_u16vec2, 4)
 Default qualifier 16 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec3, aligned_u16vec3, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u16vec4, aligned_u16vec4, 8)
 Default qualifier 16 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec1, aligned_u32vec1, 4)
 Default qualifier 32 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec2, aligned_u32vec2, 8)
 Default qualifier 32 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec3, aligned_u32vec3, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u32vec4, aligned_u32vec4, 16)
 Default qualifier 32 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec1, aligned_u64vec1, 8)
 Default qualifier 64 bit unsigned integer aligned scalar type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec2, aligned_u64vec2, 16)
 Default qualifier 64 bit unsigned integer aligned vector of 2 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec3, aligned_u64vec3, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 3 components type. More...
 
 GLM_ALIGNED_TYPEDEF (u64vec4, aligned_u64vec4, 32)
 Default qualifier 64 bit unsigned integer aligned vector of 4 components type. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_float32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32_t, aligned_float32_t, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float32, aligned_f32, 4)
 32 bit single-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_float64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64_t, aligned_float64_t, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (float64, aligned_f64, 8)
 64 bit double-qualifier floating-point aligned scalar. More...
 
 GLM_ALIGNED_TYPEDEF (vec1, aligned_vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (vec2, aligned_vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec3, aligned_vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (vec4, aligned_vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec1, aligned_fvec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (fvec2, aligned_fvec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec3, aligned_fvec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (fvec4, aligned_fvec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec1, aligned_f32vec1, 4)
 Single-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec2, aligned_f32vec2, 8)
 Single-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec3, aligned_f32vec3, 16)
 Single-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f32vec4, aligned_f32vec4, 16)
 Single-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec1, aligned_dvec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (dvec2, aligned_dvec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec3, aligned_dvec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (dvec4, aligned_dvec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec1, aligned_f64vec1, 8)
 Double-qualifier floating-point aligned vector of 1 component. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec2, aligned_f64vec2, 16)
 Double-qualifier floating-point aligned vector of 2 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec3, aligned_f64vec3, 32)
 Double-qualifier floating-point aligned vector of 3 components. More...
 
 GLM_ALIGNED_TYPEDEF (f64vec4, aligned_f64vec4, 32)
 Double-qualifier floating-point aligned vector of 4 components. More...
 
 GLM_ALIGNED_TYPEDEF (mat2, aligned_mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat3, aligned_mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (mat4, aligned_mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x2, aligned_fmat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x3, aligned_fmat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat2x4, aligned_fmat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x2, aligned_fmat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x3, aligned_fmat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat3x4, aligned_fmat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x2, aligned_fmat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x3, aligned_fmat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (fmat4x4, aligned_fmat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x2, aligned_f32mat2x2, 16)
 Single-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x3, aligned_f32mat2x3, 16)
 Single-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat2x4, aligned_f32mat2x4, 16)
 Single-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x2, aligned_f32mat3x2, 16)
 Single-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x3, aligned_f32mat3x3, 16)
 Single-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat3x4, aligned_f32mat3x4, 16)
 Single-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x2, aligned_f32mat4x2, 16)
 Single-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x3, aligned_f32mat4x3, 16)
 Single-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f32mat4x4, aligned_f32mat4x4, 16)
 Single-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x2, aligned_f64mat2x2, 32)
 Double-qualifier floating-point aligned 1x1 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x3, aligned_f64mat2x3, 32)
 Double-qualifier floating-point aligned 2x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat2x4, aligned_f64mat2x4, 32)
 Double-qualifier floating-point aligned 2x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x2, aligned_f64mat3x2, 32)
 Double-qualifier floating-point aligned 3x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x3, aligned_f64mat3x3, 32)
 Double-qualifier floating-point aligned 3x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat3x4, aligned_f64mat3x4, 32)
 Double-qualifier floating-point aligned 3x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x2, aligned_f64mat4x2, 32)
 Double-qualifier floating-point aligned 4x2 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x3, aligned_f64mat4x3, 32)
 Double-qualifier floating-point aligned 4x3 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (f64mat4x4, aligned_f64mat4x4, 32)
 Double-qualifier floating-point aligned 4x4 matrix. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (quat, aligned_fquat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (dquat, aligned_dquat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f32quat, aligned_f32quat, 16)
 Single-qualifier floating-point aligned quaternion. More...
 
 GLM_ALIGNED_TYPEDEF (f64quat, aligned_f64quat, 32)
 Double-qualifier floating-point aligned quaternion. More...
 
+

Detailed Description

+

Include <glm/gtx/type_aligned.hpp> to use the features of this extension.

+

Defines aligned types.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int8 ,
aligned_lowp_int8 ,
1  
)
+
+ +

Low qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int16 ,
aligned_lowp_int16 ,
2  
)
+
+ +

Low qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int32 ,
aligned_lowp_int32 ,
4  
)
+
+ +

Low qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int64 ,
aligned_lowp_int64 ,
8  
)
+
+ +

Low qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int8_t ,
aligned_lowp_int8_t ,
1  
)
+
+ +

Low qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int16_t ,
aligned_lowp_int16_t ,
2  
)
+
+ +

Low qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int32_t ,
aligned_lowp_int32_t ,
4  
)
+
+ +

Low qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_int64_t ,
aligned_lowp_int64_t ,
8  
)
+
+ +

Low qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i8 ,
aligned_lowp_i8 ,
1  
)
+
+ +

Low qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i16 ,
aligned_lowp_i16 ,
2  
)
+
+ +

Low qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i32 ,
aligned_lowp_i32 ,
4  
)
+
+ +

Low qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_i64 ,
aligned_lowp_i64 ,
8  
)
+
+ +

Low qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int8 ,
aligned_mediump_int8 ,
1  
)
+
+ +

Medium qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int16 ,
aligned_mediump_int16 ,
2  
)
+
+ +

Medium qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int32 ,
aligned_mediump_int32 ,
4  
)
+
+ +

Medium qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int64 ,
aligned_mediump_int64 ,
8  
)
+
+ +

Medium qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int8_t ,
aligned_mediump_int8_t ,
1  
)
+
+ +

Medium qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int16_t ,
aligned_mediump_int16_t ,
2  
)
+
+ +

Medium qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int32_t ,
aligned_mediump_int32_t ,
4  
)
+
+ +

Medium qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_int64_t ,
aligned_mediump_int64_t ,
8  
)
+
+ +

Medium qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i8 ,
aligned_mediump_i8 ,
1  
)
+
+ +

Medium qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i16 ,
aligned_mediump_i16 ,
2  
)
+
+ +

Medium qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i32 ,
aligned_mediump_i32 ,
4  
)
+
+ +

Medium qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_i64 ,
aligned_mediump_i64 ,
8  
)
+
+ +

Medium qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int8 ,
aligned_highp_int8 ,
1  
)
+
+ +

High qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int16 ,
aligned_highp_int16 ,
2  
)
+
+ +

High qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int32 ,
aligned_highp_int32 ,
4  
)
+
+ +

High qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int64 ,
aligned_highp_int64 ,
8  
)
+
+ +

High qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int8_t ,
aligned_highp_int8_t ,
1  
)
+
+ +

High qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int16_t ,
aligned_highp_int16_t ,
2  
)
+
+ +

High qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int32_t ,
aligned_highp_int32_t ,
4  
)
+
+ +

High qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_int64_t ,
aligned_highp_int64_t ,
8  
)
+
+ +

High qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i8 ,
aligned_highp_i8 ,
1  
)
+
+ +

High qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i16 ,
aligned_highp_i16 ,
2  
)
+
+ +

High qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i32 ,
aligned_highp_i32 ,
4  
)
+
+ +

High qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_i64 ,
aligned_highp_i64 ,
8  
)
+
+ +

High qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int8 ,
aligned_int8 ,
1  
)
+
+ +

Default qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int16 ,
aligned_int16 ,
2  
)
+
+ +

Default qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int32 ,
aligned_int32 ,
4  
)
+
+ +

Default qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int64 ,
aligned_int64 ,
8  
)
+
+ +

Default qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int8_t ,
aligned_int8_t ,
1  
)
+
+ +

Default qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int16_t ,
aligned_int16_t ,
2  
)
+
+ +

Default qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int32_t ,
aligned_int32_t ,
4  
)
+
+ +

Default qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (int64_t ,
aligned_int64_t ,
8  
)
+
+ +

Default qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8 ,
aligned_i8 ,
1  
)
+
+ +

Default qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16 ,
aligned_i16 ,
2  
)
+
+ +

Default qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32 ,
aligned_i32 ,
4  
)
+
+ +

Default qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64 ,
aligned_i64 ,
8  
)
+
+ +

Default qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec1 ,
aligned_ivec1 ,
4  
)
+
+ +

Default qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec2 ,
aligned_ivec2 ,
8  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec3 ,
aligned_ivec3 ,
16  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (ivec4 ,
aligned_ivec4 ,
16  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec1 ,
aligned_i8vec1 ,
1  
)
+
+ +

Default qualifier 8 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec2 ,
aligned_i8vec2 ,
2  
)
+
+ +

Default qualifier 8 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec3 ,
aligned_i8vec3 ,
4  
)
+
+ +

Default qualifier 8 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i8vec4 ,
aligned_i8vec4 ,
4  
)
+
+ +

Default qualifier 8 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec1 ,
aligned_i16vec1 ,
2  
)
+
+ +

Default qualifier 16 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec2 ,
aligned_i16vec2 ,
4  
)
+
+ +

Default qualifier 16 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec3 ,
aligned_i16vec3 ,
8  
)
+
+ +

Default qualifier 16 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i16vec4 ,
aligned_i16vec4 ,
8  
)
+
+ +

Default qualifier 16 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec1 ,
aligned_i32vec1 ,
4  
)
+
+ +

Default qualifier 32 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec2 ,
aligned_i32vec2 ,
8  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec3 ,
aligned_i32vec3 ,
16  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i32vec4 ,
aligned_i32vec4 ,
16  
)
+
+ +

Default qualifier 32 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec1 ,
aligned_i64vec1 ,
8  
)
+
+ +

Default qualifier 64 bit signed integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec2 ,
aligned_i64vec2 ,
16  
)
+
+ +

Default qualifier 64 bit signed integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec3 ,
aligned_i64vec3 ,
32  
)
+
+ +

Default qualifier 64 bit signed integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (i64vec4 ,
aligned_i64vec4 ,
32  
)
+
+ +

Default qualifier 64 bit signed integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8 ,
aligned_lowp_uint8 ,
1  
)
+
+ +

Low qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16 ,
aligned_lowp_uint16 ,
2  
)
+
+ +

Low qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32 ,
aligned_lowp_uint32 ,
4  
)
+
+ +

Low qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64 ,
aligned_lowp_uint64 ,
8  
)
+
+ +

Low qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint8_t ,
aligned_lowp_uint8_t ,
1  
)
+
+ +

Low qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint16_t ,
aligned_lowp_uint16_t ,
2  
)
+
+ +

Low qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint32_t ,
aligned_lowp_uint32_t ,
4  
)
+
+ +

Low qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_uint64_t ,
aligned_lowp_uint64_t ,
8  
)
+
+ +

Low qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u8 ,
aligned_lowp_u8 ,
1  
)
+
+ +

Low qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u16 ,
aligned_lowp_u16 ,
2  
)
+
+ +

Low qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u32 ,
aligned_lowp_u32 ,
4  
)
+
+ +

Low qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (lowp_u64 ,
aligned_lowp_u64 ,
8  
)
+
+ +

Low qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8 ,
aligned_mediump_uint8 ,
1  
)
+
+ +

Medium qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16 ,
aligned_mediump_uint16 ,
2  
)
+
+ +

Medium qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32 ,
aligned_mediump_uint32 ,
4  
)
+
+ +

Medium qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64 ,
aligned_mediump_uint64 ,
8  
)
+
+ +

Medium qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint8_t ,
aligned_mediump_uint8_t ,
1  
)
+
+ +

Medium qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint16_t ,
aligned_mediump_uint16_t ,
2  
)
+
+ +

Medium qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint32_t ,
aligned_mediump_uint32_t ,
4  
)
+
+ +

Medium qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_uint64_t ,
aligned_mediump_uint64_t ,
8  
)
+
+ +

Medium qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u8 ,
aligned_mediump_u8 ,
1  
)
+
+ +

Medium qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u16 ,
aligned_mediump_u16 ,
2  
)
+
+ +

Medium qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u32 ,
aligned_mediump_u32 ,
4  
)
+
+ +

Medium qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (mediump_u64 ,
aligned_mediump_u64 ,
8  
)
+
+ +

Medium qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint8 ,
aligned_highp_uint8 ,
1  
)
+
+ +

High qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint16 ,
aligned_highp_uint16 ,
2  
)
+
+ +

High qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint32 ,
aligned_highp_uint32 ,
4  
)
+
+ +

High qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint64 ,
aligned_highp_uint64 ,
8  
)
+
+ +

High qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint8_t ,
aligned_highp_uint8_t ,
1  
)
+
+ +

High qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint16_t ,
aligned_highp_uint16_t ,
2  
)
+
+ +

High qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint32_t ,
aligned_highp_uint32_t ,
4  
)
+
+ +

High qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_uint64_t ,
aligned_highp_uint64_t ,
8  
)
+
+ +

High qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u8 ,
aligned_highp_u8 ,
1  
)
+
+ +

High qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u16 ,
aligned_highp_u16 ,
2  
)
+
+ +

High qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u32 ,
aligned_highp_u32 ,
4  
)
+
+ +

High qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (highp_u64 ,
aligned_highp_u64 ,
8  
)
+
+ +

High qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint8 ,
aligned_uint8 ,
1  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint16 ,
aligned_uint16 ,
2  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint32 ,
aligned_uint32 ,
4  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint64 ,
aligned_uint64 ,
8  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint8_t ,
aligned_uint8_t ,
1  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint16_t ,
aligned_uint16_t ,
2  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint32_t ,
aligned_uint32_t ,
4  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uint64_t ,
aligned_uint64_t ,
8  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8 ,
aligned_u8 ,
1  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16 ,
aligned_u16 ,
2  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32 ,
aligned_u32 ,
4  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64 ,
aligned_u64 ,
8  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec1 ,
aligned_uvec1 ,
4  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec2 ,
aligned_uvec2 ,
8  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec3 ,
aligned_uvec3 ,
16  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (uvec4 ,
aligned_uvec4 ,
16  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec1 ,
aligned_u8vec1 ,
1  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec2 ,
aligned_u8vec2 ,
2  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec3 ,
aligned_u8vec3 ,
4  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u8vec4 ,
aligned_u8vec4 ,
4  
)
+
+ +

Default qualifier 8 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec1 ,
aligned_u16vec1 ,
2  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec2 ,
aligned_u16vec2 ,
4  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec3 ,
aligned_u16vec3 ,
8  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u16vec4 ,
aligned_u16vec4 ,
8  
)
+
+ +

Default qualifier 16 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec1 ,
aligned_u32vec1 ,
4  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec2 ,
aligned_u32vec2 ,
8  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec3 ,
aligned_u32vec3 ,
16  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u32vec4 ,
aligned_u32vec4 ,
16  
)
+
+ +

Default qualifier 32 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec1 ,
aligned_u64vec1 ,
8  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned scalar type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec2 ,
aligned_u64vec2 ,
16  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned vector of 2 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec3 ,
aligned_u64vec3 ,
32  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned vector of 3 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (u64vec4 ,
aligned_u64vec4 ,
32  
)
+
+ +

Default qualifier 64 bit unsigned integer aligned vector of 4 components type.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_float32 ,
4  
)
+
+ +

32 bit single-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32_t ,
aligned_float32_t ,
4  
)
+
+ +

32 bit single-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float32 ,
aligned_f32 ,
4  
)
+
+ +

32 bit single-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_float64 ,
8  
)
+
+ +

64 bit double-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64_t ,
aligned_float64_t ,
8  
)
+
+ +

64 bit double-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (float64 ,
aligned_f64 ,
8  
)
+
+ +

64 bit double-qualifier floating-point aligned scalar.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec1 ,
aligned_vec1 ,
4  
)
+
+ +

Single-qualifier floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec2 ,
aligned_vec2 ,
8  
)
+
+ +

Single-qualifier floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec3 ,
aligned_vec3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (vec4 ,
aligned_vec4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec1 ,
aligned_fvec1 ,
4  
)
+
+ +

Single-qualifier floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec2 ,
aligned_fvec2 ,
8  
)
+
+ +

Single-qualifier floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec3 ,
aligned_fvec3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fvec4 ,
aligned_fvec4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec1 ,
aligned_f32vec1 ,
4  
)
+
+ +

Single-qualifier floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec2 ,
aligned_f32vec2 ,
8  
)
+
+ +

Single-qualifier floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec3 ,
aligned_f32vec3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32vec4 ,
aligned_f32vec4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec1 ,
aligned_dvec1 ,
8  
)
+
+ +

Double-qualifier floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec2 ,
aligned_dvec2 ,
16  
)
+
+ +

Double-qualifier floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec3 ,
aligned_dvec3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dvec4 ,
aligned_dvec4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec1 ,
aligned_f64vec1 ,
8  
)
+
+ +

Double-qualifier floating-point aligned vector of 1 component.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec2 ,
aligned_f64vec2 ,
16  
)
+
+ +

Double-qualifier floating-point aligned vector of 2 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec3 ,
aligned_f64vec3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned vector of 3 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64vec4 ,
aligned_f64vec4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned vector of 4 components.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_ALIGNED_TYPEDEF (mat2 ,
aligned_mat2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_ALIGNED_TYPEDEF (mat3 ,
aligned_mat3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_ALIGNED_TYPEDEF (mat4 ,
aligned_mat4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x2 ,
aligned_fmat2x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x3 ,
aligned_fmat2x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat2x4 ,
aligned_fmat2x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x2 ,
aligned_fmat3x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x3 ,
aligned_fmat3x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat3x4 ,
aligned_fmat3x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x2 ,
aligned_fmat4x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x3 ,
aligned_fmat4x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (fmat4x4 ,
aligned_fmat4x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x2 ,
aligned_f32mat2x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Single-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x3 ,
aligned_f32mat2x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat2x4 ,
aligned_f32mat2x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x2 ,
aligned_f32mat3x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x3 ,
aligned_f32mat3x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat3x4 ,
aligned_f32mat3x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x2 ,
aligned_f32mat4x2 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x3 ,
aligned_f32mat4x3 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32mat4x4 ,
aligned_f32mat4x4 ,
16  
)
+
+ +

Single-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Double-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x2 ,
aligned_f64mat2x2 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 1x1 matrix.

+
See also
GLM_GTX_type_aligned Double-qualifier floating-point aligned 2x2 matrix.
+
+GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x3 ,
aligned_f64mat2x3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 2x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat2x4 ,
aligned_f64mat2x4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 2x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x2 ,
aligned_f64mat3x2 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 3x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x3 ,
aligned_f64mat3x3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 3x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat3x4 ,
aligned_f64mat3x4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 3x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x2 ,
aligned_f64mat4x2 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 4x2 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x3 ,
aligned_f64mat4x3 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 4x3 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64mat4x4 ,
aligned_f64mat4x4 ,
32  
)
+
+ +

Double-qualifier floating-point aligned 4x4 matrix.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (quat ,
aligned_quat ,
16  
)
+
+ +

Single-qualifier floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (quat ,
aligned_fquat ,
16  
)
+
+ +

Single-qualifier floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (dquat ,
aligned_dquat ,
32  
)
+
+ +

Double-qualifier floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f32quat ,
aligned_f32quat ,
16  
)
+
+ +

Single-qualifier floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
glm::GLM_ALIGNED_TYPEDEF (f64quat ,
aligned_f64quat ,
32  
)
+
+ +

Double-qualifier floating-point aligned quaternion.

+
See also
GLM_GTX_type_aligned
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00365.html b/external/include/glm-0.9.9.8/doc/api/a00365.html index 86c244c945..5d673deac2 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00365.html +++ b/external/include/glm-0.9.9.8/doc/api/a00365.html @@ -1,96 +1,96 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_type_trait - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_GTX_type_trait
-
-
- -

Include <glm/gtx/type_trait.hpp> to use the features of this extension. -More...

-

Detailed Description

-

Include <glm/gtx/type_trait.hpp> to use the features of this extension.

-

Defines traits for each type.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_type_trait + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_GTX_type_trait
+
+
+ +

Include <glm/gtx/type_trait.hpp> to use the features of this extension. +More...

+

Detailed Description

+

Include <glm/gtx/type_trait.hpp> to use the features of this extension.

+

Defines traits for each type.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00366.html b/external/include/glm-0.9.9.8/doc/api/a00366.html index d5c22024cb..4cc45b53f3 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00366.html +++ b/external/include/glm-0.9.9.8/doc/api/a00366.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_vec_swizzle - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
GLM_GTX_vec_swizzle
-
-
- -

Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension. -More...

-

Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.

-

Functions to perform swizzle operation.

-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_vec_swizzle + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
GLM_GTX_vec_swizzle
+
+
+ +

Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension. +More...

+

Include <glm/gtx/vec_swizzle.hpp> to use the features of this extension.

+

Functions to perform swizzle operation.

+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00367.html b/external/include/glm-0.9.9.8/doc/api/a00367.html index bd3a673817..2b76d3560d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00367.html +++ b/external/include/glm-0.9.9.8/doc/api/a00367.html @@ -1,208 +1,208 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_vector_angle - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_vector_angle
-
-
- -

Include <glm/gtx/vector_angle.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T angle (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the absolute angle between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)
 Returns the oriented angle between two 2d vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
 Returns the oriented angle between two 3d vectors based from a reference axis. More...
 
-

Detailed Description

-

Include <glm/gtx/vector_angle.hpp> to use the features of this extension.

-

Compute angle between vectors

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::angle (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the absolute angle between two vectors.

-

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::orientedAngle (vec< 2, T, Q > const & x,
vec< 2, T, Q > const & y 
)
-
- -

Returns the oriented angle between two 2d vectors.

-

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL T glm::orientedAngle (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
vec< 3, T, Q > const & ref 
)
-
- -

Returns the oriented angle between two 3d vectors based from a reference axis.

-

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_vector_angle + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_vector_angle
+
+
+ +

Include <glm/gtx/vector_angle.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL T angle (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the absolute angle between two vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)
 Returns the oriented angle between two 2d vectors. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL T orientedAngle (vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)
 Returns the oriented angle between two 3d vectors based from a reference axis. More...
 
+

Detailed Description

+

Include <glm/gtx/vector_angle.hpp> to use the features of this extension.

+

Compute angle between vectors

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::angle (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the absolute angle between two vectors.

+

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::orientedAngle (vec< 2, T, Q > const & x,
vec< 2, T, Q > const & y 
)
+
+ +

Returns the oriented angle between two 2d vectors.

+

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL T glm::orientedAngle (vec< 3, T, Q > const & x,
vec< 3, T, Q > const & y,
vec< 3, T, Q > const & ref 
)
+
+ +

Returns the oriented angle between two 3d vectors based from a reference axis.

+

Parameters need to be normalized.

See also
GLM_GTX_vector_angle extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00368.html b/external/include/glm-0.9.9.8/doc/api/a00368.html index 06a5b02900..935786a956 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00368.html +++ b/external/include/glm-0.9.9.8/doc/api/a00368.html @@ -1,319 +1,319 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_vector_query - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
GLM_GTX_vector_query
-
-
- -

Include <glm/gtx/vector_query.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areCollinear (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are collinears. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthogonal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthogonals. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthonormal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthonormal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isCompNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a each component of a vector is null. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is normalized. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is null. More...
 
-

Detailed Description

-

Include <glm/gtx/vector_query.hpp> to use the features of this extension.

-

Query informations of vector types

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::areCollinear (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are collinears.

-
See also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::areOrthogonal (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are orthogonals.

-
See also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::areOrthonormal (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
-
- -

Check whether two vectors are orthonormal.

-
See also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, bool, Q> glm::isCompNull (vec< L, T, Q > const & v,
T const & epsilon 
)
-
- -

Check whether a each component of a vector is null.

-
See also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNormalized (vec< L, T, Q > const & v,
T const & epsilon 
)
-
- -

Check whether a vector is normalized.

-
See also
GLM_GTX_vector_query extensions.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL bool glm::isNull (vec< L, T, Q > const & v,
T const & epsilon 
)
-
- -

Check whether a vector is null.

-
See also
GLM_GTX_vector_query extensions.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_vector_query + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
GLM_GTX_vector_query
+
+
+ +

Include <glm/gtx/vector_query.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areCollinear (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are collinears. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthogonal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthogonals. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool areOrthonormal (vec< L, T, Q > const &v0, vec< L, T, Q > const &v1, T const &epsilon)
 Check whether two vectors are orthonormal. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, bool, Q > isCompNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a each component of a vector is null. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNormalized (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is normalized. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL bool isNull (vec< L, T, Q > const &v, T const &epsilon)
 Check whether a vector is null. More...
 
+

Detailed Description

+

Include <glm/gtx/vector_query.hpp> to use the features of this extension.

+

Query informations of vector types

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areCollinear (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are collinears.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areOrthogonal (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are orthogonals.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::areOrthonormal (vec< L, T, Q > const & v0,
vec< L, T, Q > const & v1,
T const & epsilon 
)
+
+ +

Check whether two vectors are orthonormal.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, bool, Q> glm::isCompNull (vec< L, T, Q > const & v,
T const & epsilon 
)
+
+ +

Check whether a each component of a vector is null.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNormalized (vec< L, T, Q > const & v,
T const & epsilon 
)
+
+ +

Check whether a vector is normalized.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL bool glm::isNull (vec< L, T, Q > const & v,
T const & epsilon 
)
+
+ +

Check whether a vector is null.

+
See also
GLM_GTX_vector_query extensions.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00369.html b/external/include/glm-0.9.9.8/doc/api/a00369.html index 39d8f7eb54..c24963499b 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00369.html +++ b/external/include/glm-0.9.9.8/doc/api/a00369.html @@ -1,195 +1,195 @@ - - - - - - -0.9.9 API documentation: GLM_GTX_wrap - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- - -
-
- -

Include <glm/gtx/wrap.hpp> to use the features of this extension. -More...

- - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 Simulate GL_CLAMP OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorClamp (genType const &Texcoord)
 Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 Simulate GL_MIRROR_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 Simulate GL_REPEAT OpenGL wrap mode. More...
 
-

Detailed Description

-

Include <glm/gtx/wrap.hpp> to use the features of this extension.

-

Wrapping mode of texture coordinates.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::clamp (genType const & Texcoord)
-
- -

Simulate GL_CLAMP OpenGL wrap mode.

-
See also
GLM_GTX_wrap extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::mirrorClamp (genType const & Texcoord)
-
- -

Simulate GL_MIRRORED_REPEAT OpenGL wrap mode.

-
See also
GLM_GTX_wrap extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::mirrorRepeat (genType const & Texcoord)
-
- -

Simulate GL_MIRROR_REPEAT OpenGL wrap mode.

-
See also
GLM_GTX_wrap extension.
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL genType glm::repeat (genType const & Texcoord)
-
- -

Simulate GL_REPEAT OpenGL wrap mode.

-
See also
GLM_GTX_wrap extension.
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: GLM_GTX_wrap + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ + +
+
+ +

Include <glm/gtx/wrap.hpp> to use the features of this extension. +More...

+ + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL genType clamp (genType const &Texcoord)
 Simulate GL_CLAMP OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorClamp (genType const &Texcoord)
 Simulate GL_MIRRORED_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType mirrorRepeat (genType const &Texcoord)
 Simulate GL_MIRROR_REPEAT OpenGL wrap mode. More...
 
template<typename genType >
GLM_FUNC_DECL genType repeat (genType const &Texcoord)
 Simulate GL_REPEAT OpenGL wrap mode. More...
 
+

Detailed Description

+

Include <glm/gtx/wrap.hpp> to use the features of this extension.

+

Wrapping mode of texture coordinates.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::clamp (genType const & Texcoord)
+
+ +

Simulate GL_CLAMP OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::mirrorClamp (genType const & Texcoord)
+
+ +

Simulate GL_MIRRORED_REPEAT OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::mirrorRepeat (genType const & Texcoord)
+
+ +

Simulate GL_MIRROR_REPEAT OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL genType glm::repeat (genType const & Texcoord)
+
+ +

Simulate GL_REPEAT OpenGL wrap mode.

+
See also
GLM_GTX_wrap extension.
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00370.html b/external/include/glm-0.9.9.8/doc/api/a00370.html index 0ca8a2a75d..d829e28b8f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00370.html +++ b/external/include/glm-0.9.9.8/doc/api/a00370.html @@ -1,639 +1,639 @@ - - - - - - -0.9.9 API documentation: Integer functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Integer functions
-
-
- -

Provides GLSL functions on integer types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > bitCount (vec< L, T, Q > const &v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract (vec< L, T, Q > const &Value, int Offset, int Bits)
 Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert (vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
 Returns the insertion the bits least-significant bits of insert into base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse (vec< L, T, Q > const &v)
 Returns the reversal of the bits of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findLSB (vec< L, T, Q > const &v)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findMSB (vec< L, T, Q > const &v)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void imulExtended (vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
 Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void umulExtended (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
 Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. More...
 
-

Detailed Description

-

Provides GLSL functions on integer types.

-

These all operate component-wise. The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0.

-

Include <glm/integer.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::bitCount (genType v)
-
- -

Returns the number of bits set to 1 in the binary representation of value.

-
Template Parameters
- - -
genTypeSigned or unsigned integer scalar or vector types.
-
-
-
See also
GLSL bitCount man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::bitCount (vec< L, T, Q > const & v)
-
- -

Returns the number of bits set to 1 in the binary representation of value.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
-
-
-
See also
GLSL bitCount man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldExtract (vec< L, T, Q > const & Value,
int Offset,
int Bits 
)
-
- -

Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result.

-

For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.

-

If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
-
-
-
See also
GLSL bitfieldExtract man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldInsert (vec< L, T, Q > const & Base,
vec< L, T, Q > const & Insert,
int Offset,
int Bits 
)
-
- -

Returns the insertion the bits least-significant bits of insert into base.

-

The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
-
-
-
See also
GLSL bitfieldInsert man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldReverse (vec< L, T, Q > const & v)
-
- -

Returns the reversal of the bits of value.

-

The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
-
-
-
See also
GLSL bitfieldReverse man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::findLSB (genIUType x)
-
- -

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

-

If value is zero, -1 will be returned.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar types.
-
-
-
See also
GLSL findLSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::findLSB (vec< L, T, Q > const & v)
-
- -

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

-

If value is zero, -1 will be returned.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
-
-
-
See also
GLSL findLSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL int glm::findMSB (genIUType x)
-
- -

Returns the bit number of the most significant bit in the binary representation of value.

-

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

-
Template Parameters
- - -
genIUTypeSigned or unsigned integer scalar types.
-
-
-
See also
GLSL findMSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, int, Q> glm::findMSB (vec< L, T, Q > const & v)
-
- -

Returns the bit number of the most significant bit in the binary representation of value.

-

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
-
-
-
See also
GLSL findMSB man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::imulExtended (vec< L, int, Q > const & x,
vec< L, int, Q > const & y,
vec< L, int, Q > & msb,
vec< L, int, Q > & lsb 
)
-
- -

Multiplies 32-bit integers x and y, producing a 64-bit result.

-

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL imulExtended man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, uint, Q> glm::uaddCarry (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & carry 
)
-
- -

Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).

-

The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL uaddCarry man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL void glm::umulExtended (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & msb,
vec< L, uint, Q > & lsb 
)
-
- -

Multiplies 32-bit integers x and y, producing a 64-bit result.

-

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL umulExtended man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, uint, Q> glm::usubBorrow (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & borrow 
)
-
- -

Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.

-

The value borrow is set to 0 if x >= y, or to 1 otherwise.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL usubBorrow man page
-
-GLSL 4.20.8 specification, section 8.8 Integer Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Integer functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Integer functions
+
+
+ +

Provides GLSL functions on integer types. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename genType >
GLM_FUNC_DECL int bitCount (genType v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > bitCount (vec< L, T, Q > const &v)
 Returns the number of bits set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldExtract (vec< L, T, Q > const &Value, int Offset, int Bits)
 Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldInsert (vec< L, T, Q > const &Base, vec< L, T, Q > const &Insert, int Offset, int Bits)
 Returns the insertion the bits least-significant bits of insert into base. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > bitfieldReverse (vec< L, T, Q > const &v)
 Returns the reversal of the bits of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findLSB (genIUType x)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findLSB (vec< L, T, Q > const &v)
 Returns the bit number of the least significant bit set to 1 in the binary representation of value. More...
 
template<typename genIUType >
GLM_FUNC_DECL int findMSB (genIUType x)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, int, Q > findMSB (vec< L, T, Q > const &v)
 Returns the bit number of the most significant bit in the binary representation of value. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void imulExtended (vec< L, int, Q > const &x, vec< L, int, Q > const &y, vec< L, int, Q > &msb, vec< L, int, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > uaddCarry (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &carry)
 Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32). More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL void umulExtended (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &msb, vec< L, uint, Q > &lsb)
 Multiplies 32-bit integers x and y, producing a 64-bit result. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL vec< L, uint, Q > usubBorrow (vec< L, uint, Q > const &x, vec< L, uint, Q > const &y, vec< L, uint, Q > &borrow)
 Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise. More...
 
+

Detailed Description

+

Provides GLSL functions on integer types.

+

These all operate component-wise. The description is per component. The notation [a, b] means the set of bits from bit-number a through bit-number b, inclusive. The lowest-order bit is bit 0.

+

Include <glm/integer.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::bitCount (genType v)
+
+ +

Returns the number of bits set to 1 in the binary representation of value.

+
Template Parameters
+ + +
genTypeSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitCount man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::bitCount (vec< L, T, Q > const & v)
+
+ +

Returns the number of bits set to 1 in the binary representation of value.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitCount man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldExtract (vec< L, T, Q > const & Value,
int Offset,
int Bits 
)
+
+ +

Extracts bits [offset, offset + bits - 1] from value, returning them in the least significant bits of the result.

+

For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base - 1.

+

If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL bitfieldExtract man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldInsert (vec< L, T, Q > const & Base,
vec< L, T, Q > const & Insert,
int Offset,
int Bits 
)
+
+ +

Returns the insertion the bits least-significant bits of insert into base.

+

The result will have bits [offset, offset + bits - 1] taken from bits [0, bits - 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitfieldInsert man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::bitfieldReverse (vec< L, T, Q > const & v)
+
+ +

Returns the reversal of the bits of value.

+

The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar or vector types.
+
+
+
See also
GLSL bitfieldReverse man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::findLSB (genIUType x)
+
+ +

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

+

If value is zero, -1 will be returned.

+
Template Parameters
+ + +
genIUTypeSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findLSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::findLSB (vec< L, T, Q > const & v)
+
+ +

Returns the bit number of the least significant bit set to 1 in the binary representation of value.

+

If value is zero, -1 will be returned.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findLSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL int glm::findMSB (genIUType x)
+
+ +

Returns the bit number of the most significant bit in the binary representation of value.

+

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

+
Template Parameters
+ + +
genIUTypeSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findMSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, int, Q> glm::findMSB (vec< L, T, Q > const & v)
+
+ +

Returns the bit number of the most significant bit in the binary representation of value.

+

For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TSigned or unsigned integer scalar types.
+
+
+
See also
GLSL findMSB man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::imulExtended (vec< L, int, Q > const & x,
vec< L, int, Q > const & y,
vec< L, int, Q > & msb,
vec< L, int, Q > & lsb 
)
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL imulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, uint, Q> glm::uaddCarry (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & carry 
)
+
+ +

Adds 32-bit unsigned integer x and y, returning the sum modulo pow(2, 32).

+

The value carry is set to 0 if the sum was less than pow(2, 32), or to 1 otherwise.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL uaddCarry man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL void glm::umulExtended (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & msb,
vec< L, uint, Q > & lsb 
)
+
+ +

Multiplies 32-bit integers x and y, producing a 64-bit result.

+

The 32 least-significant bits are returned in lsb. The 32 most-significant bits are returned in msb.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL umulExtended man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, uint, Q> glm::usubBorrow (vec< L, uint, Q > const & x,
vec< L, uint, Q > const & y,
vec< L, uint, Q > & borrow 
)
+
+ +

Subtracts the 32-bit unsigned integer y from x, returning the difference if non-negative, or pow(2, 32) plus the difference otherwise.

+

The value borrow is set to 0 if x >= y, or to 1 otherwise.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL usubBorrow man page
+
+GLSL 4.20.8 specification, section 8.8 Integer Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00371.html b/external/include/glm-0.9.9.8/doc/api/a00371.html index a6fafdb30f..055d1d059d 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00371.html +++ b/external/include/glm-0.9.9.8/doc/api/a00371.html @@ -1,293 +1,293 @@ - - - - - - -0.9.9 API documentation: Matrix functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Matrix functions
-
-
- -

Provides GLSL matrix functions. -More...

- - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL T determinant (mat< C, R, T, Q > const &m)
 Return the determinant of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > inverse (mat< C, R, T, Q > const &m)
 Return the inverse of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct (vec< C, T, Q > const &c, vec< R, T, Q > const &r)
 Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose (mat< C, R, T, Q > const &x)
 Returns the transposed matrix of x. More...
 
-

Detailed Description

-

Provides GLSL matrix functions.

-

Include <glm/matrix.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL T glm::determinant (mat< C, R, T, Q > const & m)
-
- -

Return the determinant of a squared matrix.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL determinant man page
-
-GLSL 4.20.8 specification, section 8.6 Matrix Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<C, R, T, Q> glm::inverse (mat< C, R, T, Q > const & m)
-
- -

Return the inverse of a squared matrix.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL inverse man page
-
-GLSL 4.20.8 specification, section 8.6 Matrix Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL mat<C, R, T, Q> glm::matrixCompMult (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
-
- -

Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j].

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL matrixCompMult man page
-
-GLSL 4.20.8 specification, section 8.6 Matrix Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL detail::outerProduct_trait<C, R, T, Q>::type glm::outerProduct (vec< C, T, Q > const & c,
vec< R, T, Q > const & r 
)
-
- -

Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL outerProduct man page
-
-GLSL 4.20.8 specification, section 8.6 Matrix Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL mat<C, R, T, Q>::transpose_type glm::transpose (mat< C, R, T, Q > const & x)
-
- -

Returns the transposed matrix of x.

-
Template Parameters
- - - - - -
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
-
-
-
See also
GLSL transpose man page
-
-GLSL 4.20.8 specification, section 8.6 Matrix Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Matrix functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Matrix functions
+
+
+ +

Provides GLSL matrix functions. +More...

+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL T determinant (mat< C, R, T, Q > const &m)
 Return the determinant of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > inverse (mat< C, R, T, Q > const &m)
 Return the inverse of a squared matrix. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q > matrixCompMult (mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)
 Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL detail::outerProduct_trait< C, R, T, Q >::type outerProduct (vec< C, T, Q > const &c, vec< R, T, Q > const &r)
 Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. More...
 
template<length_t C, length_t R, typename T , qualifier Q>
GLM_FUNC_DECL mat< C, R, T, Q >::transpose_type transpose (mat< C, R, T, Q > const &x)
 Returns the transposed matrix of x. More...
 
+

Detailed Description

+

Provides GLSL matrix functions.

+

Include <glm/matrix.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL T glm::determinant (mat< C, R, T, Q > const & m)
+
+ +

Return the determinant of a squared matrix.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL determinant man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<C, R, T, Q> glm::inverse (mat< C, R, T, Q > const & m)
+
+ +

Return the inverse of a squared matrix.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL inverse man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL mat<C, R, T, Q> glm::matrixCompMult (mat< C, R, T, Q > const & x,
mat< C, R, T, Q > const & y 
)
+
+ +

Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j].

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL matrixCompMult man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL detail::outerProduct_trait<C, R, T, Q>::type glm::outerProduct (vec< C, T, Q > const & c,
vec< R, T, Q > const & r 
)
+
+ +

Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL outerProduct man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL mat<C, R, T, Q>::transpose_type glm::transpose (mat< C, R, T, Q > const & x)
+
+ +

Returns the transposed matrix of x.

+
Template Parameters
+ + + + + +
CInteger between 1 and 4 included that qualify the number a column
RInteger between 1 and 4 included that qualify the number a row
TFloating-point or signed integer scalar types
QValue from qualifier enum
+
+
+
See also
GLSL transpose man page
+
+GLSL 4.20.8 specification, section 8.6 Matrix Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00372.html b/external/include/glm-0.9.9.8/doc/api/a00372.html index 561c695e9e..23b704c1cc 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00372.html +++ b/external/include/glm-0.9.9.8/doc/api/a00372.html @@ -1,420 +1,420 @@ - - - - - - -0.9.9 API documentation: Floating-Point Pack and Unpack Functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Floating-Point Pack and Unpack Functions
-
-
- -

Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 Returns a double-qualifier value obtained by packing the components of v into a 64-bit value. More...
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double v)
 Returns a two-component unsigned integer vector representation of v. More...
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint v)
 Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
-

Detailed Description

-

Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types.

-

These functions do not operate component-wise, rather as described in each case.

-

Include <glm/packing.hpp> to use these core features.

-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL double glm::packDouble2x32 (uvec2 const & v)
-
- -

Returns a double-qualifier value obtained by packing the components of v into a 64-bit value.

-

If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.

-
See also
GLSL packDouble2x32 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packHalf2x16 (vec2 const & v)
-
- -

Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer.

-

The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.

-
See also
GLSL packHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packSnorm2x16 (vec2 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLSL packSnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packSnorm4x8 (vec4 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLSL packSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packUnorm2x16 (vec2 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLSL packUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uint glm::packUnorm4x8 (vec4 const & v)
-
- -

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

-

Then, the results are packed into the returned 32-bit unsigned integer.

-

The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)

-

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

-
See also
GLSL packUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 (double v)
-
- -

Returns a two-component unsigned integer vector representation of v.

-

The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.

-
See also
GLSL unpackDouble2x32 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackHalf2x16 (uint v)
-
- -

Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

-

The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.

-
See also
GLSL unpackHalf2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 (uint p)
-
- -

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLSL unpackSnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 (uint p)
-
- -

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLSL unpackSnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 (uint p)
-
- -

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLSL unpackUnorm2x16 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 (uint p)
-
- -

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

-

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

-

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

-

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

-
See also
GLSL unpackUnorm4x8 man page
-
-GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Floating-Point Pack and Unpack Functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Floating-Point Pack and Unpack Functions
+
+
+ +

Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

GLM_FUNC_DECL double packDouble2x32 (uvec2 const &v)
 Returns a double-qualifier value obtained by packing the components of v into a 64-bit value. More...
 
GLM_FUNC_DECL uint packHalf2x16 (vec2 const &v)
 Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer. More...
 
GLM_FUNC_DECL uint packSnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packSnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm2x16 (vec2 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uint packUnorm4x8 (vec4 const &v)
 First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. More...
 
GLM_FUNC_DECL uvec2 unpackDouble2x32 (double v)
 Returns a two-component unsigned integer vector representation of v. More...
 
GLM_FUNC_DECL vec2 unpackHalf2x16 (uint v)
 Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values. More...
 
GLM_FUNC_DECL vec2 unpackSnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackSnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec2 unpackUnorm2x16 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
GLM_FUNC_DECL vec4 unpackUnorm4x8 (uint p)
 First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. More...
 
+

Detailed Description

+

Provides GLSL functions to pack and unpack half, single and double-precision floating point values into more compact integer types.

+

These functions do not operate component-wise, rather as described in each case.

+

Include <glm/packing.hpp> to use these core features.

+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL double glm::packDouble2x32 (uvec2 const & v)
+
+ +

Returns a double-qualifier value obtained by packing the components of v into a 64-bit value.

+

If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.

+
See also
GLSL packDouble2x32 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packHalf2x16 (vec2 const & v)
+
+ +

Returns an unsigned integer obtained by converting the components of a two-component floating-point vector to the 16-bit floating-point representation found in the OpenGL Specification, and then packing these two 16- bit integers into a 32-bit unsigned integer.

+

The first vector component specifies the 16 least-significant bits of the result; the second component specifies the 16 most-significant bits.

+
See also
GLSL packHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packSnorm2x16 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm2x16: round(clamp(v, -1, +1) * 32767.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packSnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packSnorm4x8 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packSnorm4x8: round(clamp(c, -1, +1) * 127.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packUnorm2x16 (vec2 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uint glm::packUnorm4x8 (vec4 const & v)
+
+ +

First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values.

+

Then, the results are packed into the returned 32-bit unsigned integer.

+

The conversion for component c of v to fixed point is done as follows: packUnorm4x8: round(clamp(c, 0, +1) * 255.0)

+

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

+
See also
GLSL packUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL uvec2 glm::unpackDouble2x32 (double v)
+
+ +

Returns a two-component unsigned integer vector representation of v.

+

The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.

+
See also
GLSL unpackDouble2x32 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackHalf2x16 (uint v)
+
+ +

Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, and converting them to 32-bit floating-point values.

+

The first component of the vector is obtained from the 16 least-significant bits of v; the second component is obtained from the 16 most-significant bits of v.

+
See also
GLSL unpackHalf2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackSnorm2x16 (uint p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm2x16: clamp(f / 32767.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackSnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackSnorm4x8 (uint p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackSnorm4x8: clamp(f / 127.0, -1, +1)

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackSnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec2 glm::unpackUnorm2x16 (uint p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm2x16: f / 65535.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackUnorm2x16 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec4 glm::unpackUnorm4x8 (uint p)
+
+ +

First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

+

Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

+

The conversion for unpacked fixed-point value f to floating point is done as follows: unpackUnorm4x8: f / 255.0

+

The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

+
See also
GLSL unpackUnorm4x8 man page
+
+GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00373.html b/external/include/glm-0.9.9.8/doc/api/a00373.html index 4e771f7bd4..7f6e46853f 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00373.html +++ b/external/include/glm-0.9.9.8/doc/api/a00373.html @@ -1,621 +1,621 @@ - - - - - - -0.9.9 API documentation: Angle and Trigonometry Functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Angle and Trigonometry Functions
-
-
- -

Function parameters specified as angle are assumed to be in units of radians. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acos (vec< L, T, Q > const &x)
 Arc cosine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acosh (vec< L, T, Q > const &x)
 Arc hyperbolic cosine; returns the non-negative inverse of cosh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asin (vec< L, T, Q > const &x)
 Arc sine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asinh (vec< L, T, Q > const &x)
 Arc hyperbolic sine; returns the inverse of sinh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y, vec< L, T, Q > const &x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y_over_x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atanh (vec< L, T, Q > const &x)
 Arc hyperbolic tangent; returns the inverse of tanh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cos (vec< L, T, Q > const &angle)
 The standard trigonometric cosine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cosh (vec< L, T, Q > const &angle)
 Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees (vec< L, T, Q > const &radians)
 Converts radians to degrees and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians (vec< L, T, Q > const &degrees)
 Converts degrees to radians and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sin (vec< L, T, Q > const &angle)
 The standard trigonometric sine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sinh (vec< L, T, Q > const &angle)
 Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tan (vec< L, T, Q > const &angle)
 The standard trigonometric tangent function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tanh (vec< L, T, Q > const &angle)
 Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) More...
 
-

Detailed Description

-

Function parameters specified as angle are assumed to be in units of radians.

-

In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.

-

These all operate component-wise. The description is per component.

-

Include <glm/trigonometric.hpp> to use these core features.

-
See also
ext_vector_trigonometric
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::acos (vec< L, T, Q > const & x)
-
- -

Arc cosine.

-

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL acos man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::acosh (vec< L, T, Q > const & x)
-
- -

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

-

Results are undefined if x < 1.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL acosh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::asin (vec< L, T, Q > const & x)
-
- -

Arc sine.

-

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL asin man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::asinh (vec< L, T, Q > const & x)
-
- -

Arc hyperbolic sine; returns the inverse of sinh.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL asinh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::atan (vec< L, T, Q > const & y,
vec< L, T, Q > const & x 
)
-
- -

Arc tangent.

-

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL atan man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -

Referenced by glm::atan2().

- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::atan (vec< L, T, Q > const & y_over_x)
-
- -

Arc tangent.

-

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL atan man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::atanh (vec< L, T, Q > const & x)
-
- -

Arc hyperbolic tangent; returns the inverse of tanh.

-

Results are undefined if abs(x) >= 1.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL atanh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::cos (vec< L, T, Q > const & angle)
-
- -

The standard trigonometric cosine function.

-

The values returned by this function will range from [-1, 1].

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL cos man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::cosh (vec< L, T, Q > const & angle)
-
- -

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL cosh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::degrees (vec< L, T, Q > const & radians)
-
- -

Converts radians to degrees and returns the result.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL degrees man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::radians (vec< L, T, Q > const & degrees)
-
- -

Converts degrees to radians and returns the result.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL radians man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::sin (vec< L, T, Q > const & angle)
-
- -

The standard trigonometric sine function.

-

The values returned by this function will range from [-1, 1].

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL sin man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::sinh (vec< L, T, Q > const & angle)
-
- -

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL sinh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::tan (vec< L, T, Q > const & angle)
-
- -

The standard trigonometric tangent function.

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL tan man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL vec<L, T, Q> glm::tanh (vec< L, T, Q > const & angle)
-
- -

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

-
Template Parameters
- - - - -
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
-
-
-
See also
GLSL tanh man page
-
-GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Angle and Trigonometry Functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Angle and Trigonometry Functions
+
+
+ +

Function parameters specified as angle are assumed to be in units of radians. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acos (vec< L, T, Q > const &x)
 Arc cosine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > acosh (vec< L, T, Q > const &x)
 Arc hyperbolic cosine; returns the non-negative inverse of cosh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asin (vec< L, T, Q > const &x)
 Arc sine. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > asinh (vec< L, T, Q > const &x)
 Arc hyperbolic sine; returns the inverse of sinh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y, vec< L, T, Q > const &x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atan (vec< L, T, Q > const &y_over_x)
 Arc tangent. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > atanh (vec< L, T, Q > const &x)
 Arc hyperbolic tangent; returns the inverse of tanh. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cos (vec< L, T, Q > const &angle)
 The standard trigonometric cosine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > cosh (vec< L, T, Q > const &angle)
 Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > degrees (vec< L, T, Q > const &radians)
 Converts radians to degrees and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians (vec< L, T, Q > const &degrees)
 Converts degrees to radians and returns the result. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sin (vec< L, T, Q > const &angle)
 The standard trigonometric sine function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > sinh (vec< L, T, Q > const &angle)
 Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tan (vec< L, T, Q > const &angle)
 The standard trigonometric tangent function. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL vec< L, T, Q > tanh (vec< L, T, Q > const &angle)
 Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) More...
 
+

Detailed Description

+

Function parameters specified as angle are assumed to be in units of radians.

+

In no case will any of these functions result in a divide by zero error. If the divisor of a ratio is 0, then results will be undefined.

+

These all operate component-wise. The description is per component.

+

Include <glm/trigonometric.hpp> to use these core features.

+
See also
ext_vector_trigonometric
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::acos (vec< L, T, Q > const & x)
+
+ +

Arc cosine.

+

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL acos man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::acosh (vec< L, T, Q > const & x)
+
+ +

Arc hyperbolic cosine; returns the non-negative inverse of cosh.

+

Results are undefined if x < 1.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL acosh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::asin (vec< L, T, Q > const & x)
+
+ +

Arc sine.

+

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL asin man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::asinh (vec< L, T, Q > const & x)
+
+ +

Arc hyperbolic sine; returns the inverse of sinh.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL asinh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::atan (vec< L, T, Q > const & y,
vec< L, T, Q > const & x 
)
+
+ +

Arc tangent.

+

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL atan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +

Referenced by glm::atan2().

+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::atan (vec< L, T, Q > const & y_over_x)
+
+ +

Arc tangent.

+

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2].

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL atan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::atanh (vec< L, T, Q > const & x)
+
+ +

Arc hyperbolic tangent; returns the inverse of tanh.

+

Results are undefined if abs(x) >= 1.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL atanh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::cos (vec< L, T, Q > const & angle)
+
+ +

The standard trigonometric cosine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL cos man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::cosh (vec< L, T, Q > const & angle)
+
+ +

Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL cosh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::degrees (vec< L, T, Q > const & radians)
+
+ +

Converts radians to degrees and returns the result.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL degrees man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, T, Q> glm::radians (vec< L, T, Q > const & degrees)
+
+ +

Converts degrees to radians and returns the result.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL radians man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::sin (vec< L, T, Q > const & angle)
+
+ +

The standard trigonometric sine function.

+

The values returned by this function will range from [-1, 1].

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL sin man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::sinh (vec< L, T, Q > const & angle)
+
+ +

Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL sinh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::tan (vec< L, T, Q > const & angle)
+
+ +

The standard trigonometric tangent function.

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL tan man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL vec<L, T, Q> glm::tanh (vec< L, T, Q > const & angle)
+
+ +

Returns the hyperbolic tangent function, sinh(angle) / cosh(angle)

+
Template Parameters
+ + + + +
LInteger between 1 and 4 included that qualify the dimension of the vector
TFloating-point scalar types
QValue from qualifier enum
+
+
+
See also
GLSL tanh man page
+
+GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/a00374.html b/external/include/glm-0.9.9.8/doc/api/a00374.html index b97dfae7a7..114bd70099 100644 --- a/external/include/glm-0.9.9.8/doc/api/a00374.html +++ b/external/include/glm-0.9.9.8/doc/api/a00374.html @@ -1,452 +1,452 @@ - - - - - - -0.9.9 API documentation: Vector Relational Functions - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
- -
-
Vector Relational Functions
-
-
- -

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool all (vec< L, bool, Q > const &v)
 Returns true if all components of x are true. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool any (vec< L, bool, Q > const &v)
 Returns true if any component of x is true. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_ (vec< L, bool, Q > const &v)
 Returns the component-wise logical complement of x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
-

Detailed Description

-

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.

-

For vector results, use the following built-in functions.

-

In all cases, the sizes of all the input and return vectors for any particular call must match.

-

Include <glm/vector_relational.hpp> to use these core features.

-
See also
GLM_EXT_vector_relational
-

Function Documentation

- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR bool glm::all (vec< L, bool, Q > const & v)
-
- -

Returns true if all components of x are true.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL all man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR bool glm::any (vec< L, bool, Q > const & v)
-
- -

Returns true if any component of x is true.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL any man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x == y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point, integer or bool scalar type.
-
-
-
See also
GLSL equal man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::greaterThan (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x > y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
-
-
-
See also
GLSL greaterThan man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::greaterThanEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x >= y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
-
-
-
See also
GLSL greaterThanEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::lessThan (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison result of x < y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
-
-
-
See also
GLSL lessThan man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::lessThanEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x <= y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
-
-
-
See also
GLSL lessThanEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::not_ (vec< L, bool, Q > const & v)
-
- -

Returns the component-wise logical complement of x.

-

/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.

-
Template Parameters
- - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
-
-
-
See also
GLSL not man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
-
- -

Returns the component-wise comparison of result x != y.

-
Template Parameters
- - - -
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point, integer or bool scalar type.
-
-
-
See also
GLSL notEqual man page
-
-GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
- -
-
-
- - - - + + + + + + +0.9.9 API documentation: Vector Relational Functions + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+ +
+
Vector Relational Functions
+
+
+ +

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool all (vec< L, bool, Q > const &v)
 Returns true if all components of x are true. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR bool any (vec< L, bool, Q > const &v)
 Returns true if any component of x is true. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > equal (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x == y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x > y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > greaterThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x >= y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThan (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison result of x < y. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > lessThanEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x <= y. More...
 
template<length_t L, qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > not_ (vec< L, bool, Q > const &v)
 Returns the component-wise logical complement of x. More...
 
template<length_t L, typename T , qualifier Q>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, bool, Q > notEqual (vec< L, T, Q > const &x, vec< L, T, Q > const &y)
 Returns the component-wise comparison of result x != y. More...
 
+

Detailed Description

+

Relational and equality operators (<, <=, >, >=, ==, !=) are defined to operate on scalars and produce scalar Boolean results.

+

For vector results, use the following built-in functions.

+

In all cases, the sizes of all the input and return vectors for any particular call must match.

+

Include <glm/vector_relational.hpp> to use these core features.

+
See also
GLM_EXT_vector_relational
+

Function Documentation

+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR bool glm::all (vec< L, bool, Q > const & v)
+
+ +

Returns true if all components of x are true.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL all man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR bool glm::any (vec< L, bool, Q > const & v)
+
+ +

Returns true if any component of x is true.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL any man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::equal (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x == y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point, integer or bool scalar type.
+
+
+
See also
GLSL equal man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::greaterThan (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x > y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
+
+
+
See also
GLSL greaterThan man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::greaterThanEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x >= y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
+
+
+
See also
GLSL greaterThanEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::lessThan (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison result of x < y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
+
+
+
See also
GLSL lessThan man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::lessThanEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x <= y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point or integer scalar type.
+
+
+
See also
GLSL lessThanEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::not_ (vec< L, bool, Q > const & v)
+
+ +

Returns the component-wise logical complement of x.

+

/!\ Because of language incompatibilities between C++ and GLSL, GLM defines the function not but not_ instead.

+
Template Parameters
+ + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
+
+
+
See also
GLSL not man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
GLM_FUNC_DECL GLM_CONSTEXPR vec<L, bool, Q> glm::notEqual (vec< L, T, Q > const & x,
vec< L, T, Q > const & y 
)
+
+ +

Returns the component-wise comparison of result x != y.

+
Template Parameters
+ + + +
LAn integer between 1 and 4 included that qualify the dimension of the vector.
TA floating-point, integer or bool scalar type.
+
+
+
See also
GLSL notEqual man page
+
+GLSL 4.20.8 specification, section 8.7 Vector Relational Functions
+ +
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_033f5edb0915b828d2c46ed4804e5503.html b/external/include/glm-0.9.9.8/doc/api/dir_033f5edb0915b828d2c46ed4804e5503.html index 9eb2a952cc..a6d3c488a6 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_033f5edb0915b828d2c46ed4804e5503.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_033f5edb0915b828d2c46ed4804e5503.html @@ -1,164 +1,164 @@ - - - - - - -0.9.9 API documentation: detail Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
detail Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  _features.hpp [code]
 
file  _fixes.hpp [code]
 
file  _noise.hpp [code]
 
file  _swizzle.hpp [code]
 
file  _swizzle_func.hpp [code]
 
file  _vectorize.hpp [code]
 
file  compute_common.hpp [code]
 
file  compute_vector_relational.hpp [code]
 
file  qualifier.hpp [code]
 
file  setup.hpp [code]
 
file  type_float.hpp [code]
 
file  type_half.hpp [code]
 
file  type_mat2x2.hpp [code]
 Core features
 
file  type_mat2x3.hpp [code]
 Core features
 
file  type_mat2x4.hpp [code]
 Core features
 
file  type_mat3x2.hpp [code]
 Core features
 
file  type_mat3x3.hpp [code]
 Core features
 
file  type_mat3x4.hpp [code]
 Core features
 
file  type_mat4x2.hpp [code]
 Core features
 
file  type_mat4x3.hpp [code]
 Core features
 
file  type_mat4x4.hpp [code]
 Core features
 
file  type_quat.hpp [code]
 Core features
 
file  type_vec1.hpp [code]
 Core features
 
file  type_vec2.hpp [code]
 Core features
 
file  type_vec3.hpp [code]
 Core features
 
file  type_vec4.hpp [code]
 Core features
 
-
- - - - + + + + + + +0.9.9 API documentation: detail Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
detail Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  _features.hpp [code]
 
file  _fixes.hpp [code]
 
file  _noise.hpp [code]
 
file  _swizzle.hpp [code]
 
file  _swizzle_func.hpp [code]
 
file  _vectorize.hpp [code]
 
file  compute_common.hpp [code]
 
file  compute_vector_relational.hpp [code]
 
file  qualifier.hpp [code]
 
file  setup.hpp [code]
 
file  type_float.hpp [code]
 
file  type_half.hpp [code]
 
file  type_mat2x2.hpp [code]
 Core features
 
file  type_mat2x3.hpp [code]
 Core features
 
file  type_mat2x4.hpp [code]
 Core features
 
file  type_mat3x2.hpp [code]
 Core features
 
file  type_mat3x3.hpp [code]
 Core features
 
file  type_mat3x4.hpp [code]
 Core features
 
file  type_mat4x2.hpp [code]
 Core features
 
file  type_mat4x3.hpp [code]
 Core features
 
file  type_mat4x4.hpp [code]
 Core features
 
file  type_quat.hpp [code]
 Core features
 
file  type_vec1.hpp [code]
 Core features
 
file  type_vec2.hpp [code]
 Core features
 
file  type_vec3.hpp [code]
 Core features
 
file  type_vec4.hpp [code]
 Core features
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_3a581ba30d25676e4b797b1f96d53b45.html b/external/include/glm-0.9.9.8/doc/api/dir_3a581ba30d25676e4b797b1f96d53b45.html index d36929c870..4fbf6250d8 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_3a581ba30d25676e4b797b1f96d53b45.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_3a581ba30d25676e4b797b1f96d53b45.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: F: Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
F: Directory Reference
-
-
- - - - -

-Directories

directory  G-Truc
 
-
- - - - + + + + + + +0.9.9 API documentation: F: Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
F: Directory Reference
+
+
+ + + + +

+Directories

directory  G-Truc
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_44e5e654415abd9ca6fdeaddaff8565e.html b/external/include/glm-0.9.9.8/doc/api/dir_44e5e654415abd9ca6fdeaddaff8565e.html index 89280e6204..0e3b77434e 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_44e5e654415abd9ca6fdeaddaff8565e.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_44e5e654415abd9ca6fdeaddaff8565e.html @@ -1,102 +1,102 @@ - - - - - - -0.9.9 API documentation: glm Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
glm Directory Reference
-
-
- - - - - - -

-Directories

directory  doc
 
directory  glm
 
-
- - - - + + + + + + +0.9.9 API documentation: glm Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
glm Directory Reference
+
+
+ + + + + + +

+Directories

directory  doc
 
directory  glm
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_4c6bd29c73fa4e5a2509e1c15f846751.html b/external/include/glm-0.9.9.8/doc/api/dir_4c6bd29c73fa4e5a2509e1c15f846751.html index ed0755c529..006a7cbe91 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_4c6bd29c73fa4e5a2509e1c15f846751.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_4c6bd29c73fa4e5a2509e1c15f846751.html @@ -1,158 +1,158 @@ - - - - - - -0.9.9 API documentation: gtc Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
gtc Directory Reference
-
- - - - - + + + + + + +0.9.9 API documentation: gtc Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtc Directory Reference
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_5189610d3ba09ec39b766fb99b34cd93.html b/external/include/glm-0.9.9.8/doc/api/dir_5189610d3ba09ec39b766fb99b34cd93.html index bcddfe8379..10dd489dc0 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_5189610d3ba09ec39b766fb99b34cd93.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_5189610d3ba09ec39b766fb99b34cd93.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: doc Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
doc Directory Reference
-
-
- - - - -

-Files

file  man.doxy [code]
 
-
- - - - + + + + + + +0.9.9 API documentation: doc Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
doc Directory Reference
+
+
+ + + + +

+Files

file  man.doxy [code]
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_6b66465792d005310484819a0eb0b0d3.html b/external/include/glm-0.9.9.8/doc/api/dir_6b66465792d005310484819a0eb0b0d3.html index 96d4b5833b..e2821d0c40 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_6b66465792d005310484819a0eb0b0d3.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_6b66465792d005310484819a0eb0b0d3.html @@ -1,403 +1,403 @@ - - - - - - -0.9.9 API documentation: ext Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
ext Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  matrix_clip_space.hpp [code]
 GLM_EXT_matrix_clip_space
 
file  matrix_common.hpp [code]
 GLM_EXT_matrix_common
 
file  matrix_double2x2.hpp [code]
 Core features
 
file  matrix_double2x2_precision.hpp [code]
 Core features
 
file  matrix_double2x3.hpp [code]
 Core features
 
file  matrix_double2x3_precision.hpp [code]
 Core features
 
file  matrix_double2x4.hpp [code]
 Core features
 
file  matrix_double2x4_precision.hpp [code]
 Core features
 
file  matrix_double3x2.hpp [code]
 Core features
 
file  matrix_double3x2_precision.hpp [code]
 Core features
 
file  matrix_double3x3.hpp [code]
 Core features
 
file  matrix_double3x3_precision.hpp [code]
 Core features
 
file  matrix_double3x4.hpp [code]
 Core features
 
file  matrix_double3x4_precision.hpp [code]
 Core features
 
file  matrix_double4x2.hpp [code]
 Core features
 
file  matrix_double4x2_precision.hpp [code]
 Core features
 
file  matrix_double4x3.hpp [code]
 Core features
 
file  matrix_double4x3_precision.hpp [code]
 Core features
 
file  matrix_double4x4.hpp [code]
 Core features
 
file  matrix_double4x4_precision.hpp [code]
 Core features
 
file  matrix_float2x2.hpp [code]
 Core features
 
file  matrix_float2x2_precision.hpp [code]
 Core features
 
file  matrix_float2x3.hpp [code]
 Core features
 
file  matrix_float2x3_precision.hpp [code]
 Core features
 
file  matrix_float2x4.hpp [code]
 Core features
 
file  matrix_float2x4_precision.hpp [code]
 Core features
 
file  matrix_float3x2.hpp [code]
 Core features
 
file  matrix_float3x2_precision.hpp [code]
 Core features
 
file  matrix_float3x3.hpp [code]
 Core features
 
file  matrix_float3x3_precision.hpp [code]
 Core features
 
file  matrix_float3x4.hpp [code]
 Core features
 
file  matrix_float3x4_precision.hpp [code]
 Core features
 
file  matrix_float4x2.hpp [code]
 Core features
 
file  matrix_float4x2_precision.hpp [code]
 
file  matrix_float4x3.hpp [code]
 Core features
 
file  matrix_float4x3_precision.hpp [code]
 Core features
 
file  matrix_float4x4.hpp [code]
 Core features
 
file  matrix_float4x4_precision.hpp [code]
 Core features
 
file  matrix_projection.hpp [code]
 GLM_EXT_matrix_projection
 
file  matrix_relational.hpp [code]
 GLM_EXT_matrix_relational
 
file  ext/matrix_transform.hpp [code]
 GLM_EXT_matrix_transform
 
file  quaternion_common.hpp [code]
 GLM_EXT_quaternion_common
 
file  quaternion_double.hpp [code]
 GLM_EXT_quaternion_double
 
file  quaternion_double_precision.hpp [code]
 GLM_EXT_quaternion_double_precision
 
file  quaternion_exponential.hpp [code]
 GLM_EXT_quaternion_exponential
 
file  quaternion_float.hpp [code]
 GLM_EXT_quaternion_float
 
file  quaternion_float_precision.hpp [code]
 GLM_EXT_quaternion_float_precision
 
file  quaternion_geometric.hpp [code]
 GLM_EXT_quaternion_geometric
 
file  quaternion_relational.hpp [code]
 GLM_EXT_quaternion_relational
 
file  quaternion_transform.hpp [code]
 GLM_EXT_quaternion_transform
 
file  quaternion_trigonometric.hpp [code]
 GLM_EXT_quaternion_trigonometric
 
file  scalar_common.hpp [code]
 GLM_EXT_scalar_common
 
file  scalar_constants.hpp [code]
 GLM_EXT_scalar_constants
 
file  scalar_int_sized.hpp [code]
 GLM_EXT_scalar_int_sized
 
file  scalar_integer.hpp [code]
 GLM_EXT_scalar_integer
 
file  ext/scalar_relational.hpp [code]
 GLM_EXT_scalar_relational
 
file  scalar_uint_sized.hpp [code]
 GLM_EXT_scalar_uint_sized
 
file  scalar_ulp.hpp [code]
 GLM_EXT_scalar_ulp
 
file  vector_bool1.hpp [code]
 GLM_EXT_vector_bool1
 
file  vector_bool1_precision.hpp [code]
 GLM_EXT_vector_bool1_precision
 
file  vector_bool2.hpp [code]
 Core features
 
file  vector_bool2_precision.hpp [code]
 Core features
 
file  vector_bool3.hpp [code]
 Core features
 
file  vector_bool3_precision.hpp [code]
 Core features
 
file  vector_bool4.hpp [code]
 Core features
 
file  vector_bool4_precision.hpp [code]
 Core features
 
file  vector_common.hpp [code]
 GLM_EXT_vector_common
 
file  vector_double1.hpp [code]
 GLM_EXT_vector_double1
 
file  vector_double1_precision.hpp [code]
 GLM_EXT_vector_double1_precision
 
file  vector_double2.hpp [code]
 Core features
 
file  vector_double2_precision.hpp [code]
 Core features
 
file  vector_double3.hpp [code]
 Core features
 
file  vector_double3_precision.hpp [code]
 Core features
 
file  vector_double4.hpp [code]
 Core features
 
file  vector_double4_precision.hpp [code]
 Core features
 
file  vector_float1.hpp [code]
 GLM_EXT_vector_float1
 
file  vector_float1_precision.hpp [code]
 GLM_EXT_vector_float1_precision
 
file  vector_float2.hpp [code]
 Core features
 
file  vector_float2_precision.hpp [code]
 Core features
 
file  vector_float3.hpp [code]
 Core features
 
file  vector_float3_precision.hpp [code]
 Core features
 
file  vector_float4.hpp [code]
 Core features
 
file  vector_float4_precision.hpp [code]
 Core features
 
file  vector_int1.hpp [code]
 GLM_EXT_vector_int1
 
file  vector_int1_precision.hpp [code]
 GLM_EXT_vector_int1_precision
 
file  vector_int2.hpp [code]
 Core features
 
file  vector_int2_precision.hpp [code]
 Core features
 
file  vector_int3.hpp [code]
 Core features
 
file  vector_int3_precision.hpp [code]
 Core features
 
file  vector_int4.hpp [code]
 Core features
 
file  vector_int4_precision.hpp [code]
 Core features
 
file  vector_integer.hpp [code]
 GLM_EXT_vector_integer
 
file  ext/vector_relational.hpp [code]
 GLM_EXT_vector_relational
 
file  vector_uint1.hpp [code]
 GLM_EXT_vector_uint1
 
file  vector_uint1_precision.hpp [code]
 GLM_EXT_vector_uint1_precision
 
file  vector_uint2.hpp [code]
 Core features
 
file  vector_uint2_precision.hpp [code]
 Core features
 
file  vector_uint3.hpp [code]
 Core features
 
file  vector_uint3_precision.hpp [code]
 Core features
 
file  vector_uint4.hpp [code]
 Core features
 
file  vector_uint4_precision.hpp [code]
 Core features
 
file  vector_ulp.hpp [code]
 GLM_EXT_vector_ulp
 
-
- - - - + + + + + + +0.9.9 API documentation: ext Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
ext Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  matrix_clip_space.hpp [code]
 GLM_EXT_matrix_clip_space
 
file  matrix_common.hpp [code]
 GLM_EXT_matrix_common
 
file  matrix_double2x2.hpp [code]
 Core features
 
file  matrix_double2x2_precision.hpp [code]
 Core features
 
file  matrix_double2x3.hpp [code]
 Core features
 
file  matrix_double2x3_precision.hpp [code]
 Core features
 
file  matrix_double2x4.hpp [code]
 Core features
 
file  matrix_double2x4_precision.hpp [code]
 Core features
 
file  matrix_double3x2.hpp [code]
 Core features
 
file  matrix_double3x2_precision.hpp [code]
 Core features
 
file  matrix_double3x3.hpp [code]
 Core features
 
file  matrix_double3x3_precision.hpp [code]
 Core features
 
file  matrix_double3x4.hpp [code]
 Core features
 
file  matrix_double3x4_precision.hpp [code]
 Core features
 
file  matrix_double4x2.hpp [code]
 Core features
 
file  matrix_double4x2_precision.hpp [code]
 Core features
 
file  matrix_double4x3.hpp [code]
 Core features
 
file  matrix_double4x3_precision.hpp [code]
 Core features
 
file  matrix_double4x4.hpp [code]
 Core features
 
file  matrix_double4x4_precision.hpp [code]
 Core features
 
file  matrix_float2x2.hpp [code]
 Core features
 
file  matrix_float2x2_precision.hpp [code]
 Core features
 
file  matrix_float2x3.hpp [code]
 Core features
 
file  matrix_float2x3_precision.hpp [code]
 Core features
 
file  matrix_float2x4.hpp [code]
 Core features
 
file  matrix_float2x4_precision.hpp [code]
 Core features
 
file  matrix_float3x2.hpp [code]
 Core features
 
file  matrix_float3x2_precision.hpp [code]
 Core features
 
file  matrix_float3x3.hpp [code]
 Core features
 
file  matrix_float3x3_precision.hpp [code]
 Core features
 
file  matrix_float3x4.hpp [code]
 Core features
 
file  matrix_float3x4_precision.hpp [code]
 Core features
 
file  matrix_float4x2.hpp [code]
 Core features
 
file  matrix_float4x2_precision.hpp [code]
 
file  matrix_float4x3.hpp [code]
 Core features
 
file  matrix_float4x3_precision.hpp [code]
 Core features
 
file  matrix_float4x4.hpp [code]
 Core features
 
file  matrix_float4x4_precision.hpp [code]
 Core features
 
file  matrix_projection.hpp [code]
 GLM_EXT_matrix_projection
 
file  matrix_relational.hpp [code]
 GLM_EXT_matrix_relational
 
file  ext/matrix_transform.hpp [code]
 GLM_EXT_matrix_transform
 
file  quaternion_common.hpp [code]
 GLM_EXT_quaternion_common
 
file  quaternion_double.hpp [code]
 GLM_EXT_quaternion_double
 
file  quaternion_double_precision.hpp [code]
 GLM_EXT_quaternion_double_precision
 
file  quaternion_exponential.hpp [code]
 GLM_EXT_quaternion_exponential
 
file  quaternion_float.hpp [code]
 GLM_EXT_quaternion_float
 
file  quaternion_float_precision.hpp [code]
 GLM_EXT_quaternion_float_precision
 
file  quaternion_geometric.hpp [code]
 GLM_EXT_quaternion_geometric
 
file  quaternion_relational.hpp [code]
 GLM_EXT_quaternion_relational
 
file  quaternion_transform.hpp [code]
 GLM_EXT_quaternion_transform
 
file  quaternion_trigonometric.hpp [code]
 GLM_EXT_quaternion_trigonometric
 
file  scalar_common.hpp [code]
 GLM_EXT_scalar_common
 
file  scalar_constants.hpp [code]
 GLM_EXT_scalar_constants
 
file  scalar_int_sized.hpp [code]
 GLM_EXT_scalar_int_sized
 
file  scalar_integer.hpp [code]
 GLM_EXT_scalar_integer
 
file  ext/scalar_relational.hpp [code]
 GLM_EXT_scalar_relational
 
file  scalar_uint_sized.hpp [code]
 GLM_EXT_scalar_uint_sized
 
file  scalar_ulp.hpp [code]
 GLM_EXT_scalar_ulp
 
file  vector_bool1.hpp [code]
 GLM_EXT_vector_bool1
 
file  vector_bool1_precision.hpp [code]
 GLM_EXT_vector_bool1_precision
 
file  vector_bool2.hpp [code]
 Core features
 
file  vector_bool2_precision.hpp [code]
 Core features
 
file  vector_bool3.hpp [code]
 Core features
 
file  vector_bool3_precision.hpp [code]
 Core features
 
file  vector_bool4.hpp [code]
 Core features
 
file  vector_bool4_precision.hpp [code]
 Core features
 
file  vector_common.hpp [code]
 GLM_EXT_vector_common
 
file  vector_double1.hpp [code]
 GLM_EXT_vector_double1
 
file  vector_double1_precision.hpp [code]
 GLM_EXT_vector_double1_precision
 
file  vector_double2.hpp [code]
 Core features
 
file  vector_double2_precision.hpp [code]
 Core features
 
file  vector_double3.hpp [code]
 Core features
 
file  vector_double3_precision.hpp [code]
 Core features
 
file  vector_double4.hpp [code]
 Core features
 
file  vector_double4_precision.hpp [code]
 Core features
 
file  vector_float1.hpp [code]
 GLM_EXT_vector_float1
 
file  vector_float1_precision.hpp [code]
 GLM_EXT_vector_float1_precision
 
file  vector_float2.hpp [code]
 Core features
 
file  vector_float2_precision.hpp [code]
 Core features
 
file  vector_float3.hpp [code]
 Core features
 
file  vector_float3_precision.hpp [code]
 Core features
 
file  vector_float4.hpp [code]
 Core features
 
file  vector_float4_precision.hpp [code]
 Core features
 
file  vector_int1.hpp [code]
 GLM_EXT_vector_int1
 
file  vector_int1_precision.hpp [code]
 GLM_EXT_vector_int1_precision
 
file  vector_int2.hpp [code]
 Core features
 
file  vector_int2_precision.hpp [code]
 Core features
 
file  vector_int3.hpp [code]
 Core features
 
file  vector_int3_precision.hpp [code]
 Core features
 
file  vector_int4.hpp [code]
 Core features
 
file  vector_int4_precision.hpp [code]
 Core features
 
file  vector_integer.hpp [code]
 GLM_EXT_vector_integer
 
file  ext/vector_relational.hpp [code]
 GLM_EXT_vector_relational
 
file  vector_uint1.hpp [code]
 GLM_EXT_vector_uint1
 
file  vector_uint1_precision.hpp [code]
 GLM_EXT_vector_uint1_precision
 
file  vector_uint2.hpp [code]
 Core features
 
file  vector_uint2_precision.hpp [code]
 Core features
 
file  vector_uint3.hpp [code]
 Core features
 
file  vector_uint3_precision.hpp [code]
 Core features
 
file  vector_uint4.hpp [code]
 Core features
 
file  vector_uint4_precision.hpp [code]
 Core features
 
file  vector_ulp.hpp [code]
 GLM_EXT_vector_ulp
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_9e5fe034a00e89334fd5186c3e7db156.html b/external/include/glm-0.9.9.8/doc/api/dir_9e5fe034a00e89334fd5186c3e7db156.html index 8a52c5208e..1f566e9968 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_9e5fe034a00e89334fd5186c3e7db156.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_9e5fe034a00e89334fd5186c3e7db156.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: G-Truc Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
G-Truc Directory Reference
-
-
- - - - -

-Directories

directory  Source
 
-
- - - - + + + + + + +0.9.9 API documentation: G-Truc Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
G-Truc Directory Reference
+
+
+ + + + +

+Directories

directory  Source
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_a8bee7be44182a33f3820393ae0b105d.html b/external/include/glm-0.9.9.8/doc/api/dir_a8bee7be44182a33f3820393ae0b105d.html index 73b8ce7498..55fb6cc94b 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_a8bee7be44182a33f3820393ae0b105d.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_a8bee7be44182a33f3820393ae0b105d.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: G-Truc Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
G-Truc Directory Reference
-
-
- - - - -

-Directories

directory  glm
 
-
- - - - + + + + + + +0.9.9 API documentation: G-Truc Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
G-Truc Directory Reference
+
+
+ + + + +

+Directories

directory  glm
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_cef2d71d502cb69a9252bca2297d9549.html b/external/include/glm-0.9.9.8/doc/api/dir_cef2d71d502cb69a9252bca2297d9549.html index 7e5b5de85f..15e72a457e 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_cef2d71d502cb69a9252bca2297d9549.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_cef2d71d502cb69a9252bca2297d9549.html @@ -1,177 +1,177 @@ - - - - - - -0.9.9 API documentation: glm Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
glm Directory Reference
-
-
- - - - - - - - - - -

-Directories

directory  detail
 
directory  ext
 
directory  gtc
 
directory  gtx
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  common.hpp [code]
 Core features
 
file  exponential.hpp [code]
 Core features
 
file  ext.hpp [code]
 Core features (Dependence)
 
file  fwd.hpp [code]
 
file  geometric.hpp [code]
 Core features
 
file  glm.hpp [code]
 Core features
 
file  integer.hpp [code]
 Core features
 
file  mat2x2.hpp [code]
 Core features
 
file  mat2x3.hpp [code]
 Core features
 
file  mat2x4.hpp [code]
 Core features
 
file  mat3x2.hpp [code]
 Core features
 
file  mat3x3.hpp [code]
 Core features
 
file  mat3x4.hpp [code]
 Core features
 
file  mat4x2.hpp [code]
 Core features
 
file  mat4x3.hpp [code]
 Core features
 
file  mat4x4.hpp [code]
 Core features
 
file  matrix.hpp [code]
 Core features
 
file  packing.hpp [code]
 Core features
 
file  trigonometric.hpp [code]
 Core features
 
file  vec2.hpp [code]
 Core features
 
file  vec3.hpp [code]
 Core features
 
file  vec4.hpp [code]
 Core features
 
file  vector_relational.hpp [code]
 Core features
 
-
- - - - + + + + + + +0.9.9 API documentation: glm Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
glm Directory Reference
+
+
+ + + + + + + + + + +

+Directories

directory  detail
 
directory  ext
 
directory  gtc
 
directory  gtx
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  common.hpp [code]
 Core features
 
file  exponential.hpp [code]
 Core features
 
file  ext.hpp [code]
 Core features (Dependence)
 
file  fwd.hpp [code]
 
file  geometric.hpp [code]
 Core features
 
file  glm.hpp [code]
 Core features
 
file  integer.hpp [code]
 Core features
 
file  mat2x2.hpp [code]
 Core features
 
file  mat2x3.hpp [code]
 Core features
 
file  mat2x4.hpp [code]
 Core features
 
file  mat3x2.hpp [code]
 Core features
 
file  mat3x3.hpp [code]
 Core features
 
file  mat3x4.hpp [code]
 Core features
 
file  mat4x2.hpp [code]
 Core features
 
file  mat4x3.hpp [code]
 Core features
 
file  mat4x4.hpp [code]
 Core features
 
file  matrix.hpp [code]
 Core features
 
file  packing.hpp [code]
 Core features
 
file  trigonometric.hpp [code]
 Core features
 
file  vec2.hpp [code]
 Core features
 
file  vec3.hpp [code]
 Core features
 
file  vec4.hpp [code]
 Core features
 
file  vector_relational.hpp [code]
 Core features
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_d9496f0844b48bc7e53b5af8c99b9ab2.html b/external/include/glm-0.9.9.8/doc/api/dir_d9496f0844b48bc7e53b5af8c99b9ab2.html index 5b78d10bd4..199ee8f671 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_d9496f0844b48bc7e53b5af8c99b9ab2.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_d9496f0844b48bc7e53b5af8c99b9ab2.html @@ -1,100 +1,100 @@ - - - - - - -0.9.9 API documentation: Source Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
Source Directory Reference
-
-
- - - - -

-Directories

directory  G-Truc
 
-
- - - - + + + + + + +0.9.9 API documentation: Source Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
Source Directory Reference
+
+
+ + + + +

+Directories

directory  G-Truc
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/dir_f35778ec600a1b9bbc4524e62e226aa2.html b/external/include/glm-0.9.9.8/doc/api/dir_f35778ec600a1b9bbc4524e62e226aa2.html index 4d5ccc34bf..be7d433df5 100644 --- a/external/include/glm-0.9.9.8/doc/api/dir_f35778ec600a1b9bbc4524e62e226aa2.html +++ b/external/include/glm-0.9.9.8/doc/api/dir_f35778ec600a1b9bbc4524e62e226aa2.html @@ -1,287 +1,287 @@ - - - - - - -0.9.9 API documentation: gtx Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
gtx Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  associated_min_max.hpp [code]
 GLM_GTX_associated_min_max
 
file  bit.hpp [code]
 GLM_GTX_bit
 
file  closest_point.hpp [code]
 GLM_GTX_closest_point
 
file  color_encoding.hpp [code]
 GLM_GTX_color_encoding
 
file  gtx/color_space.hpp [code]
 GLM_GTX_color_space
 
file  color_space_YCoCg.hpp [code]
 GLM_GTX_color_space_YCoCg
 
file  gtx/common.hpp [code]
 GLM_GTX_common
 
file  compatibility.hpp [code]
 GLM_GTX_compatibility
 
file  component_wise.hpp [code]
 GLM_GTX_component_wise
 
file  dual_quaternion.hpp [code]
 GLM_GTX_dual_quaternion
 
file  easing.hpp [code]
 GLM_GTX_easing
 
file  euler_angles.hpp [code]
 GLM_GTX_euler_angles
 
file  extend.hpp [code]
 GLM_GTX_extend
 
file  extended_min_max.hpp [code]
 GLM_GTX_extented_min_max
 
file  exterior_product.hpp [code]
 GLM_GTX_exterior_product
 
file  fast_exponential.hpp [code]
 GLM_GTX_fast_exponential
 
file  fast_square_root.hpp [code]
 GLM_GTX_fast_square_root
 
file  fast_trigonometry.hpp [code]
 GLM_GTX_fast_trigonometry
 
file  functions.hpp [code]
 GLM_GTX_functions
 
file  gradient_paint.hpp [code]
 GLM_GTX_gradient_paint
 
file  handed_coordinate_space.hpp [code]
 GLM_GTX_handed_coordinate_space
 
file  hash.hpp [code]
 GLM_GTX_hash
 
file  gtx/integer.hpp [code]
 GLM_GTX_integer
 
file  intersect.hpp [code]
 GLM_GTX_intersect
 
file  io.hpp [code]
 GLM_GTX_io
 
file  log_base.hpp [code]
 GLM_GTX_log_base
 
file  matrix_cross_product.hpp [code]
 GLM_GTX_matrix_cross_product
 
file  matrix_decompose.hpp [code]
 GLM_GTX_matrix_decompose
 
file  matrix_factorisation.hpp [code]
 GLM_GTX_matrix_factorisation
 
file  matrix_interpolation.hpp [code]
 GLM_GTX_matrix_interpolation
 
file  matrix_major_storage.hpp [code]
 GLM_GTX_matrix_major_storage
 
file  matrix_operation.hpp [code]
 GLM_GTX_matrix_operation
 
file  matrix_query.hpp [code]
 GLM_GTX_matrix_query
 
file  matrix_transform_2d.hpp [code]
 GLM_GTX_matrix_transform_2d
 
file  mixed_product.hpp [code]
 GLM_GTX_mixed_producte
 
file  norm.hpp [code]
 GLM_GTX_norm
 
file  normal.hpp [code]
 GLM_GTX_normal
 
file  normalize_dot.hpp [code]
 GLM_GTX_normalize_dot
 
file  number_precision.hpp [code]
 GLM_GTX_number_precision
 
file  optimum_pow.hpp [code]
 GLM_GTX_optimum_pow
 
file  orthonormalize.hpp [code]
 GLM_GTX_orthonormalize
 
file  perpendicular.hpp [code]
 GLM_GTX_perpendicular
 
file  polar_coordinates.hpp [code]
 GLM_GTX_polar_coordinates
 
file  projection.hpp [code]
 GLM_GTX_projection
 
file  gtx/quaternion.hpp [code]
 GLM_GTX_quaternion
 
file  range.hpp [code]
 GLM_GTX_range
 
file  raw_data.hpp [code]
 GLM_GTX_raw_data
 
file  rotate_normalized_axis.hpp [code]
 GLM_GTX_rotate_normalized_axis
 
file  rotate_vector.hpp [code]
 GLM_GTX_rotate_vector
 
file  scalar_multiplication.hpp [code]
 Experimental extensions
 
file  gtx/scalar_relational.hpp [code]
 GLM_GTX_scalar_relational
 
file  spline.hpp [code]
 GLM_GTX_spline
 
file  std_based_type.hpp [code]
 GLM_GTX_std_based_type
 
file  string_cast.hpp [code]
 GLM_GTX_string_cast
 
file  texture.hpp [code]
 GLM_GTX_texture
 
file  transform.hpp [code]
 GLM_GTX_transform
 
file  transform2.hpp [code]
 GLM_GTX_transform2
 
file  gtx/type_aligned.hpp [code]
 GLM_GTX_type_aligned
 
file  type_trait.hpp [code]
 GLM_GTX_type_trait
 
file  vec_swizzle.hpp [code]
 GLM_GTX_vec_swizzle
 
file  vector_angle.hpp [code]
 GLM_GTX_vector_angle
 
file  vector_query.hpp [code]
 GLM_GTX_vector_query
 
file  wrap.hpp [code]
 GLM_GTX_wrap
 
-
- - - - + + + + + + +0.9.9 API documentation: gtx Directory Reference + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+
+ + +
+ +
+ + +
+
+
+
gtx Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  associated_min_max.hpp [code]
 GLM_GTX_associated_min_max
 
file  bit.hpp [code]
 GLM_GTX_bit
 
file  closest_point.hpp [code]
 GLM_GTX_closest_point
 
file  color_encoding.hpp [code]
 GLM_GTX_color_encoding
 
file  gtx/color_space.hpp [code]
 GLM_GTX_color_space
 
file  color_space_YCoCg.hpp [code]
 GLM_GTX_color_space_YCoCg
 
file  gtx/common.hpp [code]
 GLM_GTX_common
 
file  compatibility.hpp [code]
 GLM_GTX_compatibility
 
file  component_wise.hpp [code]
 GLM_GTX_component_wise
 
file  dual_quaternion.hpp [code]
 GLM_GTX_dual_quaternion
 
file  easing.hpp [code]
 GLM_GTX_easing
 
file  euler_angles.hpp [code]
 GLM_GTX_euler_angles
 
file  extend.hpp [code]
 GLM_GTX_extend
 
file  extended_min_max.hpp [code]
 GLM_GTX_extented_min_max
 
file  exterior_product.hpp [code]
 GLM_GTX_exterior_product
 
file  fast_exponential.hpp [code]
 GLM_GTX_fast_exponential
 
file  fast_square_root.hpp [code]
 GLM_GTX_fast_square_root
 
file  fast_trigonometry.hpp [code]
 GLM_GTX_fast_trigonometry
 
file  functions.hpp [code]
 GLM_GTX_functions
 
file  gradient_paint.hpp [code]
 GLM_GTX_gradient_paint
 
file  handed_coordinate_space.hpp [code]
 GLM_GTX_handed_coordinate_space
 
file  hash.hpp [code]
 GLM_GTX_hash
 
file  gtx/integer.hpp [code]
 GLM_GTX_integer
 
file  intersect.hpp [code]
 GLM_GTX_intersect
 
file  io.hpp [code]
 GLM_GTX_io
 
file  log_base.hpp [code]
 GLM_GTX_log_base
 
file  matrix_cross_product.hpp [code]
 GLM_GTX_matrix_cross_product
 
file  matrix_decompose.hpp [code]
 GLM_GTX_matrix_decompose
 
file  matrix_factorisation.hpp [code]
 GLM_GTX_matrix_factorisation
 
file  matrix_interpolation.hpp [code]
 GLM_GTX_matrix_interpolation
 
file  matrix_major_storage.hpp [code]
 GLM_GTX_matrix_major_storage
 
file  matrix_operation.hpp [code]
 GLM_GTX_matrix_operation
 
file  matrix_query.hpp [code]
 GLM_GTX_matrix_query
 
file  matrix_transform_2d.hpp [code]
 GLM_GTX_matrix_transform_2d
 
file  mixed_product.hpp [code]
 GLM_GTX_mixed_producte
 
file  norm.hpp [code]
 GLM_GTX_norm
 
file  normal.hpp [code]
 GLM_GTX_normal
 
file  normalize_dot.hpp [code]
 GLM_GTX_normalize_dot
 
file  number_precision.hpp [code]
 GLM_GTX_number_precision
 
file  optimum_pow.hpp [code]
 GLM_GTX_optimum_pow
 
file  orthonormalize.hpp [code]
 GLM_GTX_orthonormalize
 
file  perpendicular.hpp [code]
 GLM_GTX_perpendicular
 
file  polar_coordinates.hpp [code]
 GLM_GTX_polar_coordinates
 
file  projection.hpp [code]
 GLM_GTX_projection
 
file  gtx/quaternion.hpp [code]
 GLM_GTX_quaternion
 
file  range.hpp [code]
 GLM_GTX_range
 
file  raw_data.hpp [code]
 GLM_GTX_raw_data
 
file  rotate_normalized_axis.hpp [code]
 GLM_GTX_rotate_normalized_axis
 
file  rotate_vector.hpp [code]
 GLM_GTX_rotate_vector
 
file  scalar_multiplication.hpp [code]
 Experimental extensions
 
file  gtx/scalar_relational.hpp [code]
 GLM_GTX_scalar_relational
 
file  spline.hpp [code]
 GLM_GTX_spline
 
file  std_based_type.hpp [code]
 GLM_GTX_std_based_type
 
file  string_cast.hpp [code]
 GLM_GTX_string_cast
 
file  texture.hpp [code]
 GLM_GTX_texture
 
file  transform.hpp [code]
 GLM_GTX_transform
 
file  transform2.hpp [code]
 GLM_GTX_transform2
 
file  gtx/type_aligned.hpp [code]
 GLM_GTX_type_aligned
 
file  type_trait.hpp [code]
 GLM_GTX_type_trait
 
file  vec_swizzle.hpp [code]
 GLM_GTX_vec_swizzle
 
file  vector_angle.hpp [code]
 GLM_GTX_vector_angle
 
file  vector_query.hpp [code]
 GLM_GTX_vector_query
 
file  wrap.hpp [code]
 GLM_GTX_wrap
 
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/doxygen.css b/external/include/glm-0.9.9.8/doc/api/doxygen.css index 36259e2534..1b9d11f3d0 100644 --- a/external/include/glm-0.9.9.8/doc/api/doxygen.css +++ b/external/include/glm-0.9.9.8/doc/api/doxygen.css @@ -1,1496 +1,1496 @@ -/* The standard CSS for doxygen 1.8.10 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -body -{ - margin:0px; - padding:0px; - background-color:#bf6000; - background-repeat:no-repeat; - background-position:center center; - background-attachment:fixed; - min-height:1200px; - overflow:auto; -} - -/* @group Heading Levels */ - -h1.groupheader { - color:#bf6000; - font-size: 150%; -} - -.title { - color:#bf6000; - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #bf6000; - color:#bf6000; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #FFF8F0; - border: 1px solid #FF8000; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #000000; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #606060; -} - -.contents{ - background-color: #FFFFFF; - padding-top:8px; - padding-bottom:8px; - padding-left:32px; - padding-right:32px; - margin:0px; - margin-left:auto; - margin-right:auto; - width:1216px; - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #FF8000; - background-color: #FFF8F0; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 4px 6px; - margin: 4px 8px 4px 2px; - background-color: #FFF8F0; - border: 1px solid #FF8000; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - color: black; - margin: 0; -} - -td.indexkey { - background-color: #FFF8F0; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #FFF8F0; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #FFF8F0; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - display: none; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #FF8000; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - display: none; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #FFFCF8; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #FFF8F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #bf6000; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #FFF8F0; - border: 1px solid #FF8000; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #bf6000; - border-left: 1px solid #bf6000; - border-right: 1px solid #bf6000; - padding: 6px 0px 6px 0px; - /*color: #253555;*/ - font-weight: bold; - /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/ - /*background-image:url('nav_f.png');*/ - background-repeat:repeat-x; - background-color: #FFF8F0; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #bf6000; - border-left: 1px solid #bf6000; - border-right: 1px solid #bf6000; - padding: 6px 10px 2px 10px; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFDFB; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #bf6000; - border-bottom: 1px solid #bf6000; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #FFFDFB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #bf6000; -} - -.arrow { - color: #bf6000; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #bf6000; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - /*background-image:url('tab_b.png');*/ - background-color: #FFF8F0; - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#bf6000; - border:solid 0px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#bf6000; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #bf6000; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#bf6000; - font-size: 8pt; -} - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-repeat:repeat-x; - background-color: #FFFCF8; - - padding:0px; - margin:0px; - margin-left:auto; - margin-right:auto; - width:1280px; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #E0C000; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; - color: #FF8000; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#titlearea -{ - margin: 0px; - padding-top: 8px; - padding-bottom: 8px; - margin-top: 32px; - width: 100%; - border-bottom: 0px solid #FF8000; - border-top-left-radius: 8px; - border-top-right-radius: 8px; - background-color:#FFFFFF; -} - -#top -{ - margin-left:auto; - margin-right:auto; - width:1280px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - +/* The standard CSS for doxygen 1.8.10 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +body +{ + margin:0px; + padding:0px; + background-color:#bf6000; + background-repeat:no-repeat; + background-position:center center; + background-attachment:fixed; + min-height:1200px; + overflow:auto; +} + +/* @group Heading Levels */ + +h1.groupheader { + color:#bf6000; + font-size: 150%; +} + +.title { + color:#bf6000; + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #bf6000; + color:#bf6000; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #FFF8F0; + border: 1px solid #FF8000; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #000000; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #606060; +} + +.contents{ + background-color: #FFFFFF; + padding-top:8px; + padding-bottom:8px; + padding-left:32px; + padding-right:32px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1216px; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #FF8000; + background-color: #FFF8F0; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FFF8F0; + border: 1px solid #FF8000; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: black; + margin: 0; +} + +td.indexkey { + background-color: #FFF8F0; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #FFF8F0; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #FFF8F0; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + display: none; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #FF8000; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + display: none; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FFFCF8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #FFF8F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #bf6000; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #FFF8F0; + border: 1px solid #FF8000; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #bf6000; + border-left: 1px solid #bf6000; + border-right: 1px solid #bf6000; + padding: 6px 0px 6px 0px; + /*color: #253555;*/ + font-weight: bold; + /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/ + /*background-image:url('nav_f.png');*/ + background-repeat:repeat-x; + background-color: #FFF8F0; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #bf6000; + border-left: 1px solid #bf6000; + border-right: 1px solid #bf6000; + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFDFB; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #bf6000; + border-bottom: 1px solid #bf6000; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #FFFDFB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #bf6000; +} + +.arrow { + color: #bf6000; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #bf6000; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + /*background-image:url('tab_b.png');*/ + background-color: #FFF8F0; + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#bf6000; + border:solid 0px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#bf6000; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #bf6000; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#bf6000; + font-size: 8pt; +} + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-repeat:repeat-x; + background-color: #FFFCF8; + + padding:0px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1280px; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #E0C000; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; + color: #FF8000; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#titlearea +{ + margin: 0px; + padding-top: 8px; + padding-bottom: 8px; + margin-top: 32px; + width: 100%; + border-bottom: 0px solid #FF8000; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + background-color:#FFFFFF; +} + +#top +{ + margin-left:auto; + margin-right:auto; + width:1280px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/external/include/glm-0.9.9.8/doc/api/dynsections.js b/external/include/glm-0.9.9.8/doc/api/dynsections.js index 8e47cebacf..1e6bf07f9f 100644 --- a/external/include/glm-0.9.9.8/doc/api/dynsections.js +++ b/external/include/glm-0.9.9.8/doc/api/dynsections.js @@ -1,104 +1,104 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - -0.9.9 API documentation: File List - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 _features.hpp
 _fixes.hpp
 _noise.hpp
 _swizzle.hpp
 _swizzle_func.hpp
 _vectorize.hpp
 associated_min_max.hppGLM_GTX_associated_min_max
 bit.hppGLM_GTX_bit
 bitfield.hppGLM_GTC_bitfield
 closest_point.hppGLM_GTX_closest_point
 color_encoding.hppGLM_GTX_color_encoding
 gtc/color_space.hppGLM_GTC_color_space
 gtx/color_space.hppGLM_GTX_color_space
 color_space_YCoCg.hppGLM_GTX_color_space_YCoCg
 common.hppCore features
 gtx/common.hppGLM_GTX_common
 compatibility.hppGLM_GTX_compatibility
 component_wise.hppGLM_GTX_component_wise
 compute_common.hpp
 compute_vector_relational.hpp
 constants.hppGLM_GTC_constants
 dual_quaternion.hppGLM_GTX_dual_quaternion
 easing.hppGLM_GTX_easing
 epsilon.hppGLM_GTC_epsilon
 euler_angles.hppGLM_GTX_euler_angles
 exponential.hppCore features
 ext.hppCore features (Dependence)
 extend.hppGLM_GTX_extend
 extended_min_max.hppGLM_GTX_extented_min_max
 exterior_product.hppGLM_GTX_exterior_product
 fast_exponential.hppGLM_GTX_fast_exponential
 fast_square_root.hppGLM_GTX_fast_square_root
 fast_trigonometry.hppGLM_GTX_fast_trigonometry
 functions.hppGLM_GTX_functions
 fwd.hpp
 geometric.hppCore features
 glm.hppCore features
 gradient_paint.hppGLM_GTX_gradient_paint
 handed_coordinate_space.hppGLM_GTX_handed_coordinate_space
 hash.hppGLM_GTX_hash
 gtc/integer.hppGLM_GTC_integer
 gtx/integer.hppGLM_GTX_integer
 integer.hppCore features
 intersect.hppGLM_GTX_intersect
 io.hppGLM_GTX_io
 log_base.hppGLM_GTX_log_base
 man.doxy
 mat2x2.hppCore features
 mat2x3.hppCore features
 mat2x4.hppCore features
 mat3x2.hppCore features
 mat3x3.hppCore features
 mat3x4.hppCore features
 mat4x2.hppCore features
 mat4x3.hppCore features
 mat4x4.hppCore features
 matrix.hppCore features
 matrix_access.hppGLM_GTC_matrix_access
 matrix_clip_space.hppGLM_EXT_matrix_clip_space
 matrix_common.hppGLM_EXT_matrix_common
 matrix_cross_product.hppGLM_GTX_matrix_cross_product
 matrix_decompose.hppGLM_GTX_matrix_decompose
 matrix_double2x2.hppCore features
 matrix_double2x2_precision.hppCore features
 matrix_double2x3.hppCore features
 matrix_double2x3_precision.hppCore features
 matrix_double2x4.hppCore features
 matrix_double2x4_precision.hppCore features
 matrix_double3x2.hppCore features
 matrix_double3x2_precision.hppCore features
 matrix_double3x3.hppCore features
 matrix_double3x3_precision.hppCore features
 matrix_double3x4.hppCore features
 matrix_double3x4_precision.hppCore features
 matrix_double4x2.hppCore features
 matrix_double4x2_precision.hppCore features
 matrix_double4x3.hppCore features
 matrix_double4x3_precision.hppCore features
 matrix_double4x4.hppCore features
 matrix_double4x4_precision.hppCore features
 matrix_factorisation.hppGLM_GTX_matrix_factorisation
 matrix_float2x2.hppCore features
 matrix_float2x2_precision.hppCore features
 matrix_float2x3.hppCore features
 matrix_float2x3_precision.hppCore features
 matrix_float2x4.hppCore features
 matrix_float2x4_precision.hppCore features
 matrix_float3x2.hppCore features
 matrix_float3x2_precision.hppCore features
 matrix_float3x3.hppCore features
 matrix_float3x3_precision.hppCore features
 matrix_float3x4.hppCore features
 matrix_float3x4_precision.hppCore features
 matrix_float4x2.hppCore features
 matrix_float4x2_precision.hpp
 matrix_float4x3.hppCore features
 matrix_float4x3_precision.hppCore features
 matrix_float4x4.hppCore features
 matrix_float4x4_precision.hppCore features
 matrix_integer.hppGLM_GTC_matrix_integer
 matrix_interpolation.hppGLM_GTX_matrix_interpolation
 matrix_inverse.hppGLM_GTC_matrix_inverse
 matrix_major_storage.hppGLM_GTX_matrix_major_storage
 matrix_operation.hppGLM_GTX_matrix_operation
 matrix_projection.hppGLM_EXT_matrix_projection
 matrix_query.hppGLM_GTX_matrix_query
 matrix_relational.hppGLM_EXT_matrix_relational
 ext/matrix_transform.hppGLM_EXT_matrix_transform
 gtc/matrix_transform.hppGLM_GTC_matrix_transform
 matrix_transform_2d.hppGLM_GTX_matrix_transform_2d
 mixed_product.hppGLM_GTX_mixed_producte
 noise.hppGLM_GTC_noise
 norm.hppGLM_GTX_norm
 normal.hppGLM_GTX_normal
 normalize_dot.hppGLM_GTX_normalize_dot
 number_precision.hppGLM_GTX_number_precision
 optimum_pow.hppGLM_GTX_optimum_pow
 orthonormalize.hppGLM_GTX_orthonormalize
 gtc/packing.hppGLM_GTC_packing
 packing.hppCore features
 perpendicular.hppGLM_GTX_perpendicular
 polar_coordinates.hppGLM_GTX_polar_coordinates
 projection.hppGLM_GTX_projection
 qualifier.hpp
 gtc/quaternion.hppGLM_GTC_quaternion
 gtx/quaternion.hppGLM_GTX_quaternion
 quaternion_common.hppGLM_EXT_quaternion_common
 quaternion_double.hppGLM_EXT_quaternion_double
 quaternion_double_precision.hppGLM_EXT_quaternion_double_precision
 quaternion_exponential.hppGLM_EXT_quaternion_exponential
 quaternion_float.hppGLM_EXT_quaternion_float
 quaternion_float_precision.hppGLM_EXT_quaternion_float_precision
 quaternion_geometric.hppGLM_EXT_quaternion_geometric
 quaternion_relational.hppGLM_EXT_quaternion_relational
 quaternion_transform.hppGLM_EXT_quaternion_transform
 quaternion_trigonometric.hppGLM_EXT_quaternion_trigonometric
 random.hppGLM_GTC_random
 range.hppGLM_GTX_range
 raw_data.hppGLM_GTX_raw_data
 reciprocal.hppGLM_GTC_reciprocal
 rotate_normalized_axis.hppGLM_GTX_rotate_normalized_axis
 rotate_vector.hppGLM_GTX_rotate_vector
 round.hppGLM_GTC_round
 scalar_common.hppGLM_EXT_scalar_common
 scalar_constants.hppGLM_EXT_scalar_constants
 scalar_int_sized.hppGLM_EXT_scalar_int_sized
 scalar_integer.hppGLM_EXT_scalar_integer
 scalar_multiplication.hppExperimental extensions
 ext/scalar_relational.hppGLM_EXT_scalar_relational
 gtx/scalar_relational.hppGLM_GTX_scalar_relational
 scalar_uint_sized.hppGLM_EXT_scalar_uint_sized
 scalar_ulp.hppGLM_EXT_scalar_ulp
 setup.hpp
 spline.hppGLM_GTX_spline
 std_based_type.hppGLM_GTX_std_based_type
 string_cast.hppGLM_GTX_string_cast
 texture.hppGLM_GTX_texture
 transform.hppGLM_GTX_transform
 transform2.hppGLM_GTX_transform2
 trigonometric.hppCore features
 gtc/type_aligned.hppGLM_GTC_type_aligned
 gtx/type_aligned.hppGLM_GTX_type_aligned
 type_float.hpp
 type_half.hpp
 type_mat2x2.hppCore features
 type_mat2x3.hppCore features
 type_mat2x4.hppCore features
 type_mat3x2.hppCore features
 type_mat3x3.hppCore features
 type_mat3x4.hppCore features
 type_mat4x2.hppCore features
 type_mat4x3.hppCore features
 type_mat4x4.hppCore features
 type_precision.hppGLM_GTC_type_precision
 type_ptr.hppGLM_GTC_type_ptr
 type_quat.hppCore features
 type_trait.hppGLM_GTX_type_trait
 type_vec1.hppCore features
 type_vec2.hppCore features
 type_vec3.hppCore features
 type_vec4.hppCore features
 ulp.hppGLM_GTC_ulp
 vec1.hppGLM_GTC_vec1
 vec2.hppCore features
 vec3.hppCore features
 vec4.hppCore features
 vec_swizzle.hppGLM_GTX_vec_swizzle
 vector_angle.hppGLM_GTX_vector_angle
 vector_bool1.hppGLM_EXT_vector_bool1
 vector_bool1_precision.hppGLM_EXT_vector_bool1_precision
 vector_bool2.hppCore features
 vector_bool2_precision.hppCore features
 vector_bool3.hppCore features
 vector_bool3_precision.hppCore features
 vector_bool4.hppCore features
 vector_bool4_precision.hppCore features
 vector_common.hppGLM_EXT_vector_common
 vector_double1.hppGLM_EXT_vector_double1
 vector_double1_precision.hppGLM_EXT_vector_double1_precision
 vector_double2.hppCore features
 vector_double2_precision.hppCore features
 vector_double3.hppCore features
 vector_double3_precision.hppCore features
 vector_double4.hppCore features
 vector_double4_precision.hppCore features
 vector_float1.hppGLM_EXT_vector_float1
 vector_float1_precision.hppGLM_EXT_vector_float1_precision
 vector_float2.hppCore features
 vector_float2_precision.hppCore features
 vector_float3.hppCore features
 vector_float3_precision.hppCore features
 vector_float4.hppCore features
 vector_float4_precision.hppCore features
 vector_int1.hppGLM_EXT_vector_int1
 vector_int1_precision.hppGLM_EXT_vector_int1_precision
 vector_int2.hppCore features
 vector_int2_precision.hppCore features
 vector_int3.hppCore features
 vector_int3_precision.hppCore features
 vector_int4.hppCore features
 vector_int4_precision.hppCore features
 vector_integer.hppGLM_EXT_vector_integer
 vector_query.hppGLM_GTX_vector_query
 ext/vector_relational.hppGLM_EXT_vector_relational
 vector_relational.hppCore features
 vector_uint1.hppGLM_EXT_vector_uint1
 vector_uint1_precision.hppGLM_EXT_vector_uint1_precision
 vector_uint2.hppCore features
 vector_uint2_precision.hppCore features
 vector_uint3.hppCore features
 vector_uint3_precision.hppCore features
 vector_uint4.hppCore features
 vector_uint4_precision.hppCore features
 vector_ulp.hppGLM_EXT_vector_ulp
 wrap.hppGLM_GTX_wrap
-
-
- - - - + + + + + + +0.9.9 API documentation: File List + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 _features.hpp
 _fixes.hpp
 _noise.hpp
 _swizzle.hpp
 _swizzle_func.hpp
 _vectorize.hpp
 associated_min_max.hppGLM_GTX_associated_min_max
 bit.hppGLM_GTX_bit
 bitfield.hppGLM_GTC_bitfield
 closest_point.hppGLM_GTX_closest_point
 color_encoding.hppGLM_GTX_color_encoding
 gtc/color_space.hppGLM_GTC_color_space
 gtx/color_space.hppGLM_GTX_color_space
 color_space_YCoCg.hppGLM_GTX_color_space_YCoCg
 common.hppCore features
 gtx/common.hppGLM_GTX_common
 compatibility.hppGLM_GTX_compatibility
 component_wise.hppGLM_GTX_component_wise
 compute_common.hpp
 compute_vector_relational.hpp
 constants.hppGLM_GTC_constants
 dual_quaternion.hppGLM_GTX_dual_quaternion
 easing.hppGLM_GTX_easing
 epsilon.hppGLM_GTC_epsilon
 euler_angles.hppGLM_GTX_euler_angles
 exponential.hppCore features
 ext.hppCore features (Dependence)
 extend.hppGLM_GTX_extend
 extended_min_max.hppGLM_GTX_extented_min_max
 exterior_product.hppGLM_GTX_exterior_product
 fast_exponential.hppGLM_GTX_fast_exponential
 fast_square_root.hppGLM_GTX_fast_square_root
 fast_trigonometry.hppGLM_GTX_fast_trigonometry
 functions.hppGLM_GTX_functions
 fwd.hpp
 geometric.hppCore features
 glm.hppCore features
 gradient_paint.hppGLM_GTX_gradient_paint
 handed_coordinate_space.hppGLM_GTX_handed_coordinate_space
 hash.hppGLM_GTX_hash
 gtc/integer.hppGLM_GTC_integer
 gtx/integer.hppGLM_GTX_integer
 integer.hppCore features
 intersect.hppGLM_GTX_intersect
 io.hppGLM_GTX_io
 log_base.hppGLM_GTX_log_base
 man.doxy
 mat2x2.hppCore features
 mat2x3.hppCore features
 mat2x4.hppCore features
 mat3x2.hppCore features
 mat3x3.hppCore features
 mat3x4.hppCore features
 mat4x2.hppCore features
 mat4x3.hppCore features
 mat4x4.hppCore features
 matrix.hppCore features
 matrix_access.hppGLM_GTC_matrix_access
 matrix_clip_space.hppGLM_EXT_matrix_clip_space
 matrix_common.hppGLM_EXT_matrix_common
 matrix_cross_product.hppGLM_GTX_matrix_cross_product
 matrix_decompose.hppGLM_GTX_matrix_decompose
 matrix_double2x2.hppCore features
 matrix_double2x2_precision.hppCore features
 matrix_double2x3.hppCore features
 matrix_double2x3_precision.hppCore features
 matrix_double2x4.hppCore features
 matrix_double2x4_precision.hppCore features
 matrix_double3x2.hppCore features
 matrix_double3x2_precision.hppCore features
 matrix_double3x3.hppCore features
 matrix_double3x3_precision.hppCore features
 matrix_double3x4.hppCore features
 matrix_double3x4_precision.hppCore features
 matrix_double4x2.hppCore features
 matrix_double4x2_precision.hppCore features
 matrix_double4x3.hppCore features
 matrix_double4x3_precision.hppCore features
 matrix_double4x4.hppCore features
 matrix_double4x4_precision.hppCore features
 matrix_factorisation.hppGLM_GTX_matrix_factorisation
 matrix_float2x2.hppCore features
 matrix_float2x2_precision.hppCore features
 matrix_float2x3.hppCore features
 matrix_float2x3_precision.hppCore features
 matrix_float2x4.hppCore features
 matrix_float2x4_precision.hppCore features
 matrix_float3x2.hppCore features
 matrix_float3x2_precision.hppCore features
 matrix_float3x3.hppCore features
 matrix_float3x3_precision.hppCore features
 matrix_float3x4.hppCore features
 matrix_float3x4_precision.hppCore features
 matrix_float4x2.hppCore features
 matrix_float4x2_precision.hpp
 matrix_float4x3.hppCore features
 matrix_float4x3_precision.hppCore features
 matrix_float4x4.hppCore features
 matrix_float4x4_precision.hppCore features
 matrix_integer.hppGLM_GTC_matrix_integer
 matrix_interpolation.hppGLM_GTX_matrix_interpolation
 matrix_inverse.hppGLM_GTC_matrix_inverse
 matrix_major_storage.hppGLM_GTX_matrix_major_storage
 matrix_operation.hppGLM_GTX_matrix_operation
 matrix_projection.hppGLM_EXT_matrix_projection
 matrix_query.hppGLM_GTX_matrix_query
 matrix_relational.hppGLM_EXT_matrix_relational
 ext/matrix_transform.hppGLM_EXT_matrix_transform
 gtc/matrix_transform.hppGLM_GTC_matrix_transform
 matrix_transform_2d.hppGLM_GTX_matrix_transform_2d
 mixed_product.hppGLM_GTX_mixed_producte
 noise.hppGLM_GTC_noise
 norm.hppGLM_GTX_norm
 normal.hppGLM_GTX_normal
 normalize_dot.hppGLM_GTX_normalize_dot
 number_precision.hppGLM_GTX_number_precision
 optimum_pow.hppGLM_GTX_optimum_pow
 orthonormalize.hppGLM_GTX_orthonormalize
 gtc/packing.hppGLM_GTC_packing
 packing.hppCore features
 perpendicular.hppGLM_GTX_perpendicular
 polar_coordinates.hppGLM_GTX_polar_coordinates
 projection.hppGLM_GTX_projection
 qualifier.hpp
 gtc/quaternion.hppGLM_GTC_quaternion
 gtx/quaternion.hppGLM_GTX_quaternion
 quaternion_common.hppGLM_EXT_quaternion_common
 quaternion_double.hppGLM_EXT_quaternion_double
 quaternion_double_precision.hppGLM_EXT_quaternion_double_precision
 quaternion_exponential.hppGLM_EXT_quaternion_exponential
 quaternion_float.hppGLM_EXT_quaternion_float
 quaternion_float_precision.hppGLM_EXT_quaternion_float_precision
 quaternion_geometric.hppGLM_EXT_quaternion_geometric
 quaternion_relational.hppGLM_EXT_quaternion_relational
 quaternion_transform.hppGLM_EXT_quaternion_transform
 quaternion_trigonometric.hppGLM_EXT_quaternion_trigonometric
 random.hppGLM_GTC_random
 range.hppGLM_GTX_range
 raw_data.hppGLM_GTX_raw_data
 reciprocal.hppGLM_GTC_reciprocal
 rotate_normalized_axis.hppGLM_GTX_rotate_normalized_axis
 rotate_vector.hppGLM_GTX_rotate_vector
 round.hppGLM_GTC_round
 scalar_common.hppGLM_EXT_scalar_common
 scalar_constants.hppGLM_EXT_scalar_constants
 scalar_int_sized.hppGLM_EXT_scalar_int_sized
 scalar_integer.hppGLM_EXT_scalar_integer
 scalar_multiplication.hppExperimental extensions
 ext/scalar_relational.hppGLM_EXT_scalar_relational
 gtx/scalar_relational.hppGLM_GTX_scalar_relational
 scalar_uint_sized.hppGLM_EXT_scalar_uint_sized
 scalar_ulp.hppGLM_EXT_scalar_ulp
 setup.hpp
 spline.hppGLM_GTX_spline
 std_based_type.hppGLM_GTX_std_based_type
 string_cast.hppGLM_GTX_string_cast
 texture.hppGLM_GTX_texture
 transform.hppGLM_GTX_transform
 transform2.hppGLM_GTX_transform2
 trigonometric.hppCore features
 gtc/type_aligned.hppGLM_GTC_type_aligned
 gtx/type_aligned.hppGLM_GTX_type_aligned
 type_float.hpp
 type_half.hpp
 type_mat2x2.hppCore features
 type_mat2x3.hppCore features
 type_mat2x4.hppCore features
 type_mat3x2.hppCore features
 type_mat3x3.hppCore features
 type_mat3x4.hppCore features
 type_mat4x2.hppCore features
 type_mat4x3.hppCore features
 type_mat4x4.hppCore features
 type_precision.hppGLM_GTC_type_precision
 type_ptr.hppGLM_GTC_type_ptr
 type_quat.hppCore features
 type_trait.hppGLM_GTX_type_trait
 type_vec1.hppCore features
 type_vec2.hppCore features
 type_vec3.hppCore features
 type_vec4.hppCore features
 ulp.hppGLM_GTC_ulp
 vec1.hppGLM_GTC_vec1
 vec2.hppCore features
 vec3.hppCore features
 vec4.hppCore features
 vec_swizzle.hppGLM_GTX_vec_swizzle
 vector_angle.hppGLM_GTX_vector_angle
 vector_bool1.hppGLM_EXT_vector_bool1
 vector_bool1_precision.hppGLM_EXT_vector_bool1_precision
 vector_bool2.hppCore features
 vector_bool2_precision.hppCore features
 vector_bool3.hppCore features
 vector_bool3_precision.hppCore features
 vector_bool4.hppCore features
 vector_bool4_precision.hppCore features
 vector_common.hppGLM_EXT_vector_common
 vector_double1.hppGLM_EXT_vector_double1
 vector_double1_precision.hppGLM_EXT_vector_double1_precision
 vector_double2.hppCore features
 vector_double2_precision.hppCore features
 vector_double3.hppCore features
 vector_double3_precision.hppCore features
 vector_double4.hppCore features
 vector_double4_precision.hppCore features
 vector_float1.hppGLM_EXT_vector_float1
 vector_float1_precision.hppGLM_EXT_vector_float1_precision
 vector_float2.hppCore features
 vector_float2_precision.hppCore features
 vector_float3.hppCore features
 vector_float3_precision.hppCore features
 vector_float4.hppCore features
 vector_float4_precision.hppCore features
 vector_int1.hppGLM_EXT_vector_int1
 vector_int1_precision.hppGLM_EXT_vector_int1_precision
 vector_int2.hppCore features
 vector_int2_precision.hppCore features
 vector_int3.hppCore features
 vector_int3_precision.hppCore features
 vector_int4.hppCore features
 vector_int4_precision.hppCore features
 vector_integer.hppGLM_EXT_vector_integer
 vector_query.hppGLM_GTX_vector_query
 ext/vector_relational.hppGLM_EXT_vector_relational
 vector_relational.hppCore features
 vector_uint1.hppGLM_EXT_vector_uint1
 vector_uint1_precision.hppGLM_EXT_vector_uint1_precision
 vector_uint2.hppCore features
 vector_uint2_precision.hppCore features
 vector_uint3.hppCore features
 vector_uint3_precision.hppCore features
 vector_uint4.hppCore features
 vector_uint4_precision.hppCore features
 vector_ulp.hppGLM_EXT_vector_ulp
 wrap.hppGLM_GTX_wrap
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/index.html b/external/include/glm-0.9.9.8/doc/api/index.html index 6cacf1a2c3..5342648f64 100644 --- a/external/include/glm-0.9.9.8/doc/api/index.html +++ b/external/include/glm-0.9.9.8/doc/api/index.html @@ -1,95 +1,95 @@ - - - - - - -0.9.9 API documentation: OpenGL Mathematics (GLM) - - - - - - - - - - -
-
- - - - - - - -
-
0.9.9 API documentation -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
OpenGL Mathematics (GLM)
-
- - - - - + + + + + + +0.9.9 API documentation: OpenGL Mathematics (GLM) + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
OpenGL Mathematics (GLM)
+
+ + + + + diff --git a/external/include/glm-0.9.9.8/doc/api/jquery.js b/external/include/glm-0.9.9.8/doc/api/jquery.js index d902f548b1..1f4d0b47ce 100644 --- a/external/include/glm-0.9.9.8/doc/api/jquery.js +++ b/external/include/glm-0.9.9.8/doc/api/jquery.js @@ -1,68 +1,68 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' - - -
-
-
Modules
-
-
-
Here is a list of all modules:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ►Core featuresFeatures that implement in C++ the GLSL specification as closely as possible
 ►Stable extensionsAdditional features not specified by GLSL specification
 ►Recommended extensionsAdditional features not specified by GLSL specification
 ►Experimental extensionsExperimental features not specified by GLSL specification
- - - - - - + + + + + + +0.9.9 API documentation: Modules + + + + + + + + + + +
+
+ + + + + + + +
+
0.9.9 API documentation +
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
Modules
+
+
+
Here is a list of all modules:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ►Core featuresFeatures that implement in C++ the GLSL specification as closely as possible
 ►Stable extensionsAdditional features not specified by GLSL specification
 ►Recommended extensionsAdditional features not specified by GLSL specification
 ►Experimental extensionsExperimental features not specified by GLSL specification
+
+
+ + + + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_0.html b/external/include/glm-0.9.9.8/doc/api/search/all_0.html index b27e4aa905..1d4695009a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_0.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_0.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_0.js b/external/include/glm-0.9.9.8/doc/api/search/all_0.js index b0e727b7c5..448238b89e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_0.js @@ -1,209 +1,209 @@ -var searchData= -[ - ['abs',['abs',['../a00241.html#ga439e60a72eadecfeda2df5449c613a64',1,'glm::abs(genType x)'],['../a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6',1,'glm::abs(vec< L, T, Q > const &x)']]], - ['acos',['acos',['../a00373.html#gacc9b092df8257c68f19c9053703e2563',1,'glm']]], - ['acosh',['acosh',['../a00373.html#ga858f35dc66fd2688f20c52b5f25be76a',1,'glm']]], - ['acot',['acot',['../a00301.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]], - ['acoth',['acoth',['../a00301.html#gafaca98a7100170db8841f446282debfa',1,'glm']]], - ['acsc',['acsc',['../a00301.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]], - ['acsch',['acsch',['../a00301.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]], - ['adjugate',['adjugate',['../a00339.html#ga40a38402a30860af6e508fe76211e659',1,'glm::adjugate(mat< 2, 2, T, Q > const &m)'],['../a00339.html#gaddb09f7abc1a9c56a243d32ff3538be6',1,'glm::adjugate(mat< 3, 3, T, Q > const &m)'],['../a00339.html#ga9aaa7d1f40391b0b5cacccb60e104ba8',1,'glm::adjugate(mat< 4, 4, T, Q > const &m)']]], - ['affineinverse',['affineInverse',['../a00295.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]], - ['aligned_5fbvec1',['aligned_bvec1',['../a00303.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]], - ['aligned_5fbvec2',['aligned_bvec2',['../a00303.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]], - ['aligned_5fbvec3',['aligned_bvec3',['../a00303.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]], - ['aligned_5fbvec4',['aligned_bvec4',['../a00303.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]], - ['aligned_5fdmat2',['aligned_dmat2',['../a00303.html#ga6783859382677d35fcd5dac7dcbefdbd',1,'glm']]], - ['aligned_5fdmat2x2',['aligned_dmat2x2',['../a00303.html#ga449a3ec2dde6b6bb4bb94c49a6aad388',1,'glm']]], - ['aligned_5fdmat2x3',['aligned_dmat2x3',['../a00303.html#ga53d519a7b1bfb69076b3ec206a6b3bd1',1,'glm']]], - ['aligned_5fdmat2x4',['aligned_dmat2x4',['../a00303.html#ga5ccb2baeb0ab57b818c24e0d486c59d0',1,'glm']]], - ['aligned_5fdmat3',['aligned_dmat3',['../a00303.html#ga19aa695ffdb45ce29f7ea0b5029627de',1,'glm']]], - ['aligned_5fdmat3x2',['aligned_dmat3x2',['../a00303.html#ga5f5123d834bd1170edf8c386834e112c',1,'glm']]], - ['aligned_5fdmat3x3',['aligned_dmat3x3',['../a00303.html#ga635bf3732281a2c2ca54d8f9d33d178f',1,'glm']]], - ['aligned_5fdmat3x4',['aligned_dmat3x4',['../a00303.html#gaf488c6ad88c185054595d4d5c7ba5b9d',1,'glm']]], - ['aligned_5fdmat4',['aligned_dmat4',['../a00303.html#ga001bb387ae8192fa94dbd8b23b600439',1,'glm']]], - ['aligned_5fdmat4x2',['aligned_dmat4x2',['../a00303.html#gaa409cfb737bd59b68dc683e9b03930cc',1,'glm']]], - ['aligned_5fdmat4x3',['aligned_dmat4x3',['../a00303.html#ga621e89ca1dbdcb7b5a3e7de237c44121',1,'glm']]], - ['aligned_5fdmat4x4',['aligned_dmat4x4',['../a00303.html#gac9bda778d0b7ad82f656dab99b71857a',1,'glm']]], - ['aligned_5fdvec1',['aligned_dvec1',['../a00303.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]], - ['aligned_5fdvec2',['aligned_dvec2',['../a00303.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]], - ['aligned_5fdvec3',['aligned_dvec3',['../a00303.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]], - ['aligned_5fdvec4',['aligned_dvec4',['../a00303.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]], - ['aligned_5fhighp_5fbvec1',['aligned_highp_bvec1',['../a00303.html#ga862843a45b01c35ffe4d44c47ea774ad',1,'glm']]], - ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00303.html#ga0731b593c5e33559954c80f8687e76c6',1,'glm']]], - ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00303.html#ga0913bdf048d0cb74af1d2512aec675bc',1,'glm']]], - ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00303.html#ga9df1d0c425852cf63a57e533b7a83f4f',1,'glm']]], - ['aligned_5fhighp_5fdmat2',['aligned_highp_dmat2',['../a00303.html#ga3a7eeae43cb7673e14cc89bf02f7dd45',1,'glm']]], - ['aligned_5fhighp_5fdmat2x2',['aligned_highp_dmat2x2',['../a00303.html#gaef26dfe3855a91644665b55c9096a8c8',1,'glm']]], - ['aligned_5fhighp_5fdmat2x3',['aligned_highp_dmat2x3',['../a00303.html#gaa7c9d4ab7ab651cdf8001fe7843e238b',1,'glm']]], - ['aligned_5fhighp_5fdmat2x4',['aligned_highp_dmat2x4',['../a00303.html#gaa0d2b8a75f1908dcf32c27f8524bdced',1,'glm']]], - ['aligned_5fhighp_5fdmat3',['aligned_highp_dmat3',['../a00303.html#gad8f6abb2c9994850b5d5c04a5f979ed8',1,'glm']]], - ['aligned_5fhighp_5fdmat3x2',['aligned_highp_dmat3x2',['../a00303.html#gab069b2fc2ec785fc4e193cf26c022679',1,'glm']]], - ['aligned_5fhighp_5fdmat3x3',['aligned_highp_dmat3x3',['../a00303.html#ga66073b1ddef34b681741f572338ddb8e',1,'glm']]], - ['aligned_5fhighp_5fdmat3x4',['aligned_highp_dmat3x4',['../a00303.html#ga683c8ca66de323ea533a760abedd0efc',1,'glm']]], - ['aligned_5fhighp_5fdmat4',['aligned_highp_dmat4',['../a00303.html#gacaa7407ea00ffdd322ce86a57adb547e',1,'glm']]], - ['aligned_5fhighp_5fdmat4x2',['aligned_highp_dmat4x2',['../a00303.html#ga93a23ca3d42818d56e0702213c66354b',1,'glm']]], - ['aligned_5fhighp_5fdmat4x3',['aligned_highp_dmat4x3',['../a00303.html#gacab7374b560745cb1d0a306a90353f58',1,'glm']]], - ['aligned_5fhighp_5fdmat4x4',['aligned_highp_dmat4x4',['../a00303.html#ga1fbfba14368b742972d3b58a0a303682',1,'glm']]], - ['aligned_5fhighp_5fdvec1',['aligned_highp_dvec1',['../a00303.html#gaf0448b0f7ceb8273f7eda3a92205eefc',1,'glm']]], - ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00303.html#gab173a333e6b7ce153ceba66ac4a321cf',1,'glm']]], - ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00303.html#gae94ef61edfa047d05bc69b6065fc42ba',1,'glm']]], - ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00303.html#ga8fad35c5677f228e261fe541f15363a4',1,'glm']]], - ['aligned_5fhighp_5fivec1',['aligned_highp_ivec1',['../a00303.html#gad63b8c5b4dc0500d54d7414ef555178f',1,'glm']]], - ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00303.html#ga41563650f36cb7f479e080de21e08418',1,'glm']]], - ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00303.html#ga6eca5170bb35eac90b4972590fd31a06',1,'glm']]], - ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00303.html#ga31bfa801e1579fdba752ec3f7a45ec91',1,'glm']]], - ['aligned_5fhighp_5fmat2',['aligned_highp_mat2',['../a00303.html#gaf9db5e8a929c317da5aa12cc53741b63',1,'glm']]], - ['aligned_5fhighp_5fmat2x2',['aligned_highp_mat2x2',['../a00303.html#gab559d943abf92bc588bcd3f4c0e4664b',1,'glm']]], - ['aligned_5fhighp_5fmat2x3',['aligned_highp_mat2x3',['../a00303.html#ga50c9af5aa3a848956d625fc64dc8488e',1,'glm']]], - ['aligned_5fhighp_5fmat2x4',['aligned_highp_mat2x4',['../a00303.html#ga0edcfdd179f8a158342eead48a4d0c2a',1,'glm']]], - ['aligned_5fhighp_5fmat3',['aligned_highp_mat3',['../a00303.html#gabab3afcc04459c7b123604ae5dc663f6',1,'glm']]], - ['aligned_5fhighp_5fmat3x2',['aligned_highp_mat3x2',['../a00303.html#ga9fc2167b47c9be9295f2d8eea7f0ca75',1,'glm']]], - ['aligned_5fhighp_5fmat3x3',['aligned_highp_mat3x3',['../a00303.html#ga2f7b8c99ba6f2d07c73a195a8143c259',1,'glm']]], - ['aligned_5fhighp_5fmat3x4',['aligned_highp_mat3x4',['../a00303.html#ga52e00afd0eb181e6738f40cf41787049',1,'glm']]], - ['aligned_5fhighp_5fmat4',['aligned_highp_mat4',['../a00303.html#ga058ae939bfdbcbb80521dd4a3b01afba',1,'glm']]], - ['aligned_5fhighp_5fmat4x2',['aligned_highp_mat4x2',['../a00303.html#ga84e1f5e0718952a079b748825c03f956',1,'glm']]], - ['aligned_5fhighp_5fmat4x3',['aligned_highp_mat4x3',['../a00303.html#gafff1684c4ff19b4a818138ccacc1e78d',1,'glm']]], - ['aligned_5fhighp_5fmat4x4',['aligned_highp_mat4x4',['../a00303.html#ga40d49648083a0498a12a4bb41ae6ece8',1,'glm']]], - ['aligned_5fhighp_5fuvec1',['aligned_highp_uvec1',['../a00303.html#ga5b80e28396c6ef7d32c6fd18df498451',1,'glm']]], - ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00303.html#ga04db692662a4908beeaf5a5ba6e19483',1,'glm']]], - ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00303.html#ga073fd6e8b241afade6d8afbd676b2667',1,'glm']]], - ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00303.html#gabdd60462042859f876c17c7346c732a5',1,'glm']]], - ['aligned_5fhighp_5fvec1',['aligned_highp_vec1',['../a00303.html#ga4d0bd70d5fac49b800546d608b707513',1,'glm']]], - ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00303.html#gac9f8482dde741fb6bab7248b81a45465',1,'glm']]], - ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00303.html#ga65415d2d68c9cc0ca554524a8f5510b2',1,'glm']]], - ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00303.html#ga7cb26d354dd69d23849c34c4fba88da9',1,'glm']]], - ['aligned_5fivec1',['aligned_ivec1',['../a00303.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]], - ['aligned_5fivec2',['aligned_ivec2',['../a00303.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]], - ['aligned_5fivec3',['aligned_ivec3',['../a00303.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]], - ['aligned_5fivec4',['aligned_ivec4',['../a00303.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]], - ['aligned_5flowp_5fbvec1',['aligned_lowp_bvec1',['../a00303.html#gac6036449ab1c4abf8efe1ea00fcdd1c9',1,'glm']]], - ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00303.html#ga59fadcd3835646e419372ae8b43c5d37',1,'glm']]], - ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00303.html#ga83aab4d191053f169c93a3e364f2e118',1,'glm']]], - ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00303.html#gaa7a76555ee4853614e5755181a8dd54e',1,'glm']]], - ['aligned_5flowp_5fdmat2',['aligned_lowp_dmat2',['../a00303.html#ga79a90173d8faa9816dc852ce447d66ca',1,'glm']]], - ['aligned_5flowp_5fdmat2x2',['aligned_lowp_dmat2x2',['../a00303.html#ga07cb8e846666cbf56045b064fb553d2e',1,'glm']]], - ['aligned_5flowp_5fdmat2x3',['aligned_lowp_dmat2x3',['../a00303.html#ga7a4536b6e1f2ebb690f63816b5d7e48b',1,'glm']]], - ['aligned_5flowp_5fdmat2x4',['aligned_lowp_dmat2x4',['../a00303.html#gab0cf4f7c9a264941519acad286e055ea',1,'glm']]], - ['aligned_5flowp_5fdmat3',['aligned_lowp_dmat3',['../a00303.html#gac00e15efded8a57c9dec3aed0fb547e7',1,'glm']]], - ['aligned_5flowp_5fdmat3x2',['aligned_lowp_dmat3x2',['../a00303.html#gaa281a47d5d627313984d0f8df993b648',1,'glm']]], - ['aligned_5flowp_5fdmat3x3',['aligned_lowp_dmat3x3',['../a00303.html#ga7f3148a72355e39932d6855baca42ebc',1,'glm']]], - ['aligned_5flowp_5fdmat3x4',['aligned_lowp_dmat3x4',['../a00303.html#gaea3ccc5ef5b178e6e49b4fa1427605d3',1,'glm']]], - ['aligned_5flowp_5fdmat4',['aligned_lowp_dmat4',['../a00303.html#gab92c6d7d58d43dfb8147e9aedfe8351b',1,'glm']]], - ['aligned_5flowp_5fdmat4x2',['aligned_lowp_dmat4x2',['../a00303.html#gaf806dfdaffb2e9f7681b1cd2825898ce',1,'glm']]], - ['aligned_5flowp_5fdmat4x3',['aligned_lowp_dmat4x3',['../a00303.html#gab0931ac7807fa1428c7bbf249efcdf0d',1,'glm']]], - ['aligned_5flowp_5fdmat4x4',['aligned_lowp_dmat4x4',['../a00303.html#gad8220a93d2fca2dd707821b4ab6f809e',1,'glm']]], - ['aligned_5flowp_5fdvec1',['aligned_lowp_dvec1',['../a00303.html#ga7f8a2cc5a686e52b1615761f4978ca62',1,'glm']]], - ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00303.html#ga0e37cff4a43cca866101f0a35f01db6d',1,'glm']]], - ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00303.html#gab9e669c4efd52d3347fc6d5f6b20fd59',1,'glm']]], - ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00303.html#ga226f5ec7a953cea559c16fe3aff9924f',1,'glm']]], - ['aligned_5flowp_5fivec1',['aligned_lowp_ivec1',['../a00303.html#ga1101d3a82b2e3f5f8828bd8f3adab3e1',1,'glm']]], - ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00303.html#ga44c4accad582cfbd7226a19b83b0cadc',1,'glm']]], - ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00303.html#ga65663f10a02e52cedcddbcfe36ddf38d',1,'glm']]], - ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00303.html#gaae92fcec8b2e0328ffbeac31cc4fc419',1,'glm']]], - ['aligned_5flowp_5fmat2',['aligned_lowp_mat2',['../a00303.html#ga17c424412207b00dba1cf587b099eea3',1,'glm']]], - ['aligned_5flowp_5fmat2x2',['aligned_lowp_mat2x2',['../a00303.html#ga0e44aeb930a47f9cbf2db15b56433b0f',1,'glm']]], - ['aligned_5flowp_5fmat2x3',['aligned_lowp_mat2x3',['../a00303.html#ga7dec6d96bc61312b1e56d137c9c74030',1,'glm']]], - ['aligned_5flowp_5fmat2x4',['aligned_lowp_mat2x4',['../a00303.html#gaa694fab1f8df5f658846573ba8ffc563',1,'glm']]], - ['aligned_5flowp_5fmat3',['aligned_lowp_mat3',['../a00303.html#ga1eb9076cc28ead5020fd3029fd0472c5',1,'glm']]], - ['aligned_5flowp_5fmat3x2',['aligned_lowp_mat3x2',['../a00303.html#ga2d6639f0bd777bae1ee0eba71cd7bfdc',1,'glm']]], - ['aligned_5flowp_5fmat3x3',['aligned_lowp_mat3x3',['../a00303.html#gaeaab04e378a90956eec8d68a99d777ed',1,'glm']]], - ['aligned_5flowp_5fmat3x4',['aligned_lowp_mat3x4',['../a00303.html#ga1f03696ab066572c6c044e63edf635a2',1,'glm']]], - ['aligned_5flowp_5fmat4',['aligned_lowp_mat4',['../a00303.html#ga25ea2f684e36aa5e978b4f2f86593824',1,'glm']]], - ['aligned_5flowp_5fmat4x2',['aligned_lowp_mat4x2',['../a00303.html#ga2cb16c3fdfb15e0719d942ee3b548bc4',1,'glm']]], - ['aligned_5flowp_5fmat4x3',['aligned_lowp_mat4x3',['../a00303.html#ga7e96981e872f17a780d9f1c22dc1f512',1,'glm']]], - ['aligned_5flowp_5fmat4x4',['aligned_lowp_mat4x4',['../a00303.html#gadae3dcfc22d28c64d0548cbfd9d08719',1,'glm']]], - ['aligned_5flowp_5fuvec1',['aligned_lowp_uvec1',['../a00303.html#gad09b93acc43c43423408d17a64f6d7ca',1,'glm']]], - ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00303.html#ga6f94fcd28dde906fc6cad5f742b55c1a',1,'glm']]], - ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00303.html#ga9e9f006970b1a00862e3e6e599eedd4c',1,'glm']]], - ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00303.html#ga46b1b0b9eb8625a5d69137bd66cd13dc',1,'glm']]], - ['aligned_5flowp_5fvec1',['aligned_lowp_vec1',['../a00303.html#gab34aee3d5e121c543fea11d2c50ecc43',1,'glm']]], - ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00303.html#ga53ac5d252317f1fa43c2ef921857bf13',1,'glm']]], - ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00303.html#ga98f0b5cd65fce164ff1367c2a3b3aa1e',1,'glm']]], - ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00303.html#ga82f7275d6102593a69ce38cdad680409',1,'glm']]], - ['aligned_5fmat2',['aligned_mat2',['../a00303.html#ga5a8a5f8c47cd7d5502dd9932f83472b9',1,'glm']]], - ['aligned_5fmat2x2',['aligned_mat2x2',['../a00303.html#gabb04f459d81d753d278b2072e2375e8e',1,'glm']]], - ['aligned_5fmat2x3',['aligned_mat2x3',['../a00303.html#ga832476bb1c59ef673db37433ff34e399',1,'glm']]], - ['aligned_5fmat2x4',['aligned_mat2x4',['../a00303.html#gadab11a7504430825b648ff7c7e36b725',1,'glm']]], - ['aligned_5fmat3',['aligned_mat3',['../a00303.html#ga43a92a24ca863e0e0f3b65834b3cf714',1,'glm']]], - ['aligned_5fmat3x2',['aligned_mat3x2',['../a00303.html#ga5c0df24ba85eafafc0eb0c90690510ed',1,'glm']]], - ['aligned_5fmat3x3',['aligned_mat3x3',['../a00303.html#gadb065dbe5c11271fef8cf2ea8608f187',1,'glm']]], - ['aligned_5fmat3x4',['aligned_mat3x4',['../a00303.html#ga88061c72c997b94c420f2b0a60d9df26',1,'glm']]], - ['aligned_5fmat4',['aligned_mat4',['../a00303.html#gab0fddcf95dd51cbcbf624ea7c40dfeb8',1,'glm']]], - ['aligned_5fmat4x2',['aligned_mat4x2',['../a00303.html#gac9a2d0fb815fd5c2bd58b869c55e32d3',1,'glm']]], - ['aligned_5fmat4x3',['aligned_mat4x3',['../a00303.html#ga452bbbfd26e244de216e4d004d50bb74',1,'glm']]], - ['aligned_5fmat4x4',['aligned_mat4x4',['../a00303.html#ga8b8fb86973a0b768c5bd802c92fac1a1',1,'glm']]], - ['aligned_5fmediump_5fbvec1',['aligned_mediump_bvec1',['../a00303.html#gadd3b8bd71a758f7fb0da8e525156f34e',1,'glm']]], - ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00303.html#gacb183eb5e67ec0d0ea5a016cba962810',1,'glm']]], - ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00303.html#gacfa4a542f1b20a5b63ad702dfb6fd587',1,'glm']]], - ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00303.html#ga91bc1f513bb9b0fd60281d57ded9a48c',1,'glm']]], - ['aligned_5fmediump_5fdmat2',['aligned_mediump_dmat2',['../a00303.html#ga62a2dfd668c91072b72c3109fc6cda28',1,'glm']]], - ['aligned_5fmediump_5fdmat2x2',['aligned_mediump_dmat2x2',['../a00303.html#ga9b7feec247d378dd407ba81f56ea96c8',1,'glm']]], - ['aligned_5fmediump_5fdmat2x3',['aligned_mediump_dmat2x3',['../a00303.html#gafcb189f4f93648fe7ca802ca4aca2eb8',1,'glm']]], - ['aligned_5fmediump_5fdmat2x4',['aligned_mediump_dmat2x4',['../a00303.html#ga92f8873e3bbd5ca1323c8bbe5725cc5e',1,'glm']]], - ['aligned_5fmediump_5fdmat3',['aligned_mediump_dmat3',['../a00303.html#ga6dc2832b747c00e0a0df621aba196960',1,'glm']]], - ['aligned_5fmediump_5fdmat3x2',['aligned_mediump_dmat3x2',['../a00303.html#ga5a97f0355d801de3444d42c1d5b40438',1,'glm']]], - ['aligned_5fmediump_5fdmat3x3',['aligned_mediump_dmat3x3',['../a00303.html#ga649d0acf01054b17e679cf00e150e025',1,'glm']]], - ['aligned_5fmediump_5fdmat3x4',['aligned_mediump_dmat3x4',['../a00303.html#ga45e155a4840f69b2fa4ed8047a676860',1,'glm']]], - ['aligned_5fmediump_5fdmat4',['aligned_mediump_dmat4',['../a00303.html#ga8a9376d82f0e946e25137eb55543e6ce',1,'glm']]], - ['aligned_5fmediump_5fdmat4x2',['aligned_mediump_dmat4x2',['../a00303.html#gabc25e547f4de4af62403492532cd1b6d',1,'glm']]], - ['aligned_5fmediump_5fdmat4x3',['aligned_mediump_dmat4x3',['../a00303.html#gae84f4763ecdc7457ecb7930bad12057c',1,'glm']]], - ['aligned_5fmediump_5fdmat4x4',['aligned_mediump_dmat4x4',['../a00303.html#gaa292ebaa907afdecb2d5967fb4fb1247',1,'glm']]], - ['aligned_5fmediump_5fdvec1',['aligned_mediump_dvec1',['../a00303.html#ga7180b685c581adb224406a7f831608e3',1,'glm']]], - ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00303.html#ga9af1eabe22f569e70d9893be72eda0f5',1,'glm']]], - ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00303.html#ga058e7ddab1428e47f2197bdd3a5a6953',1,'glm']]], - ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00303.html#gaffd747ea2aea1e69c2ecb04e68521b21',1,'glm']]], - ['aligned_5fmediump_5fivec1',['aligned_mediump_ivec1',['../a00303.html#ga20e63dd980b81af10cadbbe219316650',1,'glm']]], - ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00303.html#gaea13d89d49daca2c796aeaa82fc2c2f2',1,'glm']]], - ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00303.html#gabbf0f15e9c3d9868e43241ad018f82bd',1,'glm']]], - ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00303.html#ga6099dd7878d0a78101a4250d8cd2d736',1,'glm']]], - ['aligned_5fmediump_5fmat2',['aligned_mediump_mat2',['../a00303.html#gaf6f041b212c57664d88bc6aefb7e36f3',1,'glm']]], - ['aligned_5fmediump_5fmat2x2',['aligned_mediump_mat2x2',['../a00303.html#ga04bf49316ee777d42fcfe681ee37d7be',1,'glm']]], - ['aligned_5fmediump_5fmat2x3',['aligned_mediump_mat2x3',['../a00303.html#ga26a0b61e444a51a37b9737cf4d84291b',1,'glm']]], - ['aligned_5fmediump_5fmat2x4',['aligned_mediump_mat2x4',['../a00303.html#ga163facc9ed2692ea1300ed57c5d12b17',1,'glm']]], - ['aligned_5fmediump_5fmat3',['aligned_mediump_mat3',['../a00303.html#ga3b76ba17ae5d53debeb6f7e55919a57c',1,'glm']]], - ['aligned_5fmediump_5fmat3x2',['aligned_mediump_mat3x2',['../a00303.html#ga80dee705d714300378e0847f45059097',1,'glm']]], - ['aligned_5fmediump_5fmat3x3',['aligned_mediump_mat3x3',['../a00303.html#ga721f5404caf40d68962dcc0529de71d9',1,'glm']]], - ['aligned_5fmediump_5fmat3x4',['aligned_mediump_mat3x4',['../a00303.html#ga98f4dc6722a2541a990918c074075359',1,'glm']]], - ['aligned_5fmediump_5fmat4',['aligned_mediump_mat4',['../a00303.html#gaeefee8317192174596852ce19b602720',1,'glm']]], - ['aligned_5fmediump_5fmat4x2',['aligned_mediump_mat4x2',['../a00303.html#ga46f372a006345c252a41267657cc22c0',1,'glm']]], - ['aligned_5fmediump_5fmat4x3',['aligned_mediump_mat4x3',['../a00303.html#ga0effece4545acdebdc2a5512a303110e',1,'glm']]], - ['aligned_5fmediump_5fmat4x4',['aligned_mediump_mat4x4',['../a00303.html#ga312864244cae4e8f10f478cffd0f76de',1,'glm']]], - ['aligned_5fmediump_5fuvec1',['aligned_mediump_uvec1',['../a00303.html#gacb78126ea2eb779b41c7511128ff1283',1,'glm']]], - ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00303.html#ga081d53e0a71443d0b68ea61c870f9adc',1,'glm']]], - ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00303.html#gad6fc921bdde2bdbc7e09b028e1e9b379',1,'glm']]], - ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00303.html#ga73ea0c1ba31580e107d21270883f51fc',1,'glm']]], - ['aligned_5fmediump_5fvec1',['aligned_mediump_vec1',['../a00303.html#ga6b797eec76fa471e300158f3453b3b2e',1,'glm']]], - ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00303.html#ga026a55ddbf2bafb1432f1157a2708616',1,'glm']]], - ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00303.html#ga3a25e494173f6a64637b08a1b50a2132',1,'glm']]], - ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00303.html#ga320d1c661cff2ef214eb50241f2928b2',1,'glm']]], - ['aligned_5fuvec1',['aligned_uvec1',['../a00303.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]], - ['aligned_5fuvec2',['aligned_uvec2',['../a00303.html#ga074137e3be58528d67041c223d49f398',1,'glm']]], - ['aligned_5fuvec3',['aligned_uvec3',['../a00303.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]], - ['aligned_5fuvec4',['aligned_uvec4',['../a00303.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]], - ['aligned_5fvec1',['aligned_vec1',['../a00303.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]], - ['aligned_5fvec2',['aligned_vec2',['../a00303.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]], - ['aligned_5fvec3',['aligned_vec3',['../a00303.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]], - ['aligned_5fvec4',['aligned_vec4',['../a00303.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]], - ['all',['all',['../a00374.html#ga87e53f50b679f5f95c5cb4780311b3dd',1,'glm']]], - ['angle',['angle',['../a00257.html#ga8aa248b31d5ade470c87304df5eb7bd8',1,'glm::angle(qua< T, Q > const &x)'],['../a00367.html#ga2e2917b4cb75ca3d043ac15ff88f14e1',1,'glm::angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['angleaxis',['angleAxis',['../a00257.html#ga5c0095cfcb218c75a4b79d7687950036',1,'glm']]], - ['any',['any',['../a00374.html#ga911b3f8e41459dd551ccb6d385d91061',1,'glm']]], - ['arecollinear',['areCollinear',['../a00368.html#ga13da4a787a2ff70e95d561fb19ff91b4',1,'glm']]], - ['areorthogonal',['areOrthogonal',['../a00368.html#gac7b95b3f798e3c293262b2bdaad47c57',1,'glm']]], - ['areorthonormal',['areOrthonormal',['../a00368.html#ga1b091c3d7f9ee3b0708311c001c293e3',1,'glm']]], - ['asec',['asec',['../a00301.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]], - ['asech',['asech',['../a00301.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]], - ['asin',['asin',['../a00373.html#ga0552d2df4865fa8c3d7cfc3ec2caac73',1,'glm']]], - ['asinh',['asinh',['../a00373.html#ga3ef16b501ee859fddde88e22192a5950',1,'glm']]], - ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]], - ['associatedmax',['associatedMax',['../a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00308.html#ga5c6758bc50aa7fbe700f87123a045aad',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#ga0d169d6ce26b03248df175f39005d77f',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)'],['../a00308.html#ga4086269afabcb81dd7ded33cb3448653',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)'],['../a00308.html#ga19f59d1141a51a3b2108a9807af78f7f',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)'],['../a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], - ['associatedmin',['associatedMin',['../a00308.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00308.html#gac2f0dff90948f2e44386a5eafd941d1c',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#gacfec519c820331d023ef53a511749319',1,'glm::associatedMin(T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)'],['../a00308.html#ga4757c7cab2d809124a8525d0a9deeb37',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#ga66b08118bc88f0494bcacb7cdb940556',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68',1,'glm::associatedMin(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#ga2db7e351994baee78540a562d4bb6d3b',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], - ['atan',['atan',['../a00373.html#gac61629f3a4aa14057e7a8cae002291db',1,'glm::atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)'],['../a00373.html#ga5229f087eaccbc466f1c609ce3107b95',1,'glm::atan(vec< L, T, Q > const &y_over_x)']]], - ['atan2',['atan2',['../a00315.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00315.html#ga83bc41bd6f89113ee8006576b12bfc50',1,'glm::atan2(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)'],['../a00315.html#gac39314f5087e7e51e592897cabbc1927',1,'glm::atan2(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)'],['../a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3',1,'glm::atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)']]], - ['atanh',['atanh',['../a00373.html#gabc925650e618357d07da255531658b87',1,'glm']]], - ['axis',['axis',['../a00257.html#ga764254f10248b505e936e5309a88c23d',1,'glm']]], - ['axisangle',['axisAngle',['../a00337.html#gafefe32ce5a90a135287ba34fac3623bc',1,'glm']]], - ['axisanglematrix',['axisAngleMatrix',['../a00337.html#ga3a788e2f5223397df5c426413ecc2f6b',1,'glm']]], - ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00373.html',1,'']]] -]; +var searchData= +[ + ['abs',['abs',['../a00241.html#ga439e60a72eadecfeda2df5449c613a64',1,'glm::abs(genType x)'],['../a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6',1,'glm::abs(vec< L, T, Q > const &x)']]], + ['acos',['acos',['../a00373.html#gacc9b092df8257c68f19c9053703e2563',1,'glm']]], + ['acosh',['acosh',['../a00373.html#ga858f35dc66fd2688f20c52b5f25be76a',1,'glm']]], + ['acot',['acot',['../a00301.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]], + ['acoth',['acoth',['../a00301.html#gafaca98a7100170db8841f446282debfa',1,'glm']]], + ['acsc',['acsc',['../a00301.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]], + ['acsch',['acsch',['../a00301.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]], + ['adjugate',['adjugate',['../a00339.html#ga40a38402a30860af6e508fe76211e659',1,'glm::adjugate(mat< 2, 2, T, Q > const &m)'],['../a00339.html#gaddb09f7abc1a9c56a243d32ff3538be6',1,'glm::adjugate(mat< 3, 3, T, Q > const &m)'],['../a00339.html#ga9aaa7d1f40391b0b5cacccb60e104ba8',1,'glm::adjugate(mat< 4, 4, T, Q > const &m)']]], + ['affineinverse',['affineInverse',['../a00295.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]], + ['aligned_5fbvec1',['aligned_bvec1',['../a00303.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]], + ['aligned_5fbvec2',['aligned_bvec2',['../a00303.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]], + ['aligned_5fbvec3',['aligned_bvec3',['../a00303.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]], + ['aligned_5fbvec4',['aligned_bvec4',['../a00303.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]], + ['aligned_5fdmat2',['aligned_dmat2',['../a00303.html#ga6783859382677d35fcd5dac7dcbefdbd',1,'glm']]], + ['aligned_5fdmat2x2',['aligned_dmat2x2',['../a00303.html#ga449a3ec2dde6b6bb4bb94c49a6aad388',1,'glm']]], + ['aligned_5fdmat2x3',['aligned_dmat2x3',['../a00303.html#ga53d519a7b1bfb69076b3ec206a6b3bd1',1,'glm']]], + ['aligned_5fdmat2x4',['aligned_dmat2x4',['../a00303.html#ga5ccb2baeb0ab57b818c24e0d486c59d0',1,'glm']]], + ['aligned_5fdmat3',['aligned_dmat3',['../a00303.html#ga19aa695ffdb45ce29f7ea0b5029627de',1,'glm']]], + ['aligned_5fdmat3x2',['aligned_dmat3x2',['../a00303.html#ga5f5123d834bd1170edf8c386834e112c',1,'glm']]], + ['aligned_5fdmat3x3',['aligned_dmat3x3',['../a00303.html#ga635bf3732281a2c2ca54d8f9d33d178f',1,'glm']]], + ['aligned_5fdmat3x4',['aligned_dmat3x4',['../a00303.html#gaf488c6ad88c185054595d4d5c7ba5b9d',1,'glm']]], + ['aligned_5fdmat4',['aligned_dmat4',['../a00303.html#ga001bb387ae8192fa94dbd8b23b600439',1,'glm']]], + ['aligned_5fdmat4x2',['aligned_dmat4x2',['../a00303.html#gaa409cfb737bd59b68dc683e9b03930cc',1,'glm']]], + ['aligned_5fdmat4x3',['aligned_dmat4x3',['../a00303.html#ga621e89ca1dbdcb7b5a3e7de237c44121',1,'glm']]], + ['aligned_5fdmat4x4',['aligned_dmat4x4',['../a00303.html#gac9bda778d0b7ad82f656dab99b71857a',1,'glm']]], + ['aligned_5fdvec1',['aligned_dvec1',['../a00303.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]], + ['aligned_5fdvec2',['aligned_dvec2',['../a00303.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]], + ['aligned_5fdvec3',['aligned_dvec3',['../a00303.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]], + ['aligned_5fdvec4',['aligned_dvec4',['../a00303.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]], + ['aligned_5fhighp_5fbvec1',['aligned_highp_bvec1',['../a00303.html#ga862843a45b01c35ffe4d44c47ea774ad',1,'glm']]], + ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00303.html#ga0731b593c5e33559954c80f8687e76c6',1,'glm']]], + ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00303.html#ga0913bdf048d0cb74af1d2512aec675bc',1,'glm']]], + ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00303.html#ga9df1d0c425852cf63a57e533b7a83f4f',1,'glm']]], + ['aligned_5fhighp_5fdmat2',['aligned_highp_dmat2',['../a00303.html#ga3a7eeae43cb7673e14cc89bf02f7dd45',1,'glm']]], + ['aligned_5fhighp_5fdmat2x2',['aligned_highp_dmat2x2',['../a00303.html#gaef26dfe3855a91644665b55c9096a8c8',1,'glm']]], + ['aligned_5fhighp_5fdmat2x3',['aligned_highp_dmat2x3',['../a00303.html#gaa7c9d4ab7ab651cdf8001fe7843e238b',1,'glm']]], + ['aligned_5fhighp_5fdmat2x4',['aligned_highp_dmat2x4',['../a00303.html#gaa0d2b8a75f1908dcf32c27f8524bdced',1,'glm']]], + ['aligned_5fhighp_5fdmat3',['aligned_highp_dmat3',['../a00303.html#gad8f6abb2c9994850b5d5c04a5f979ed8',1,'glm']]], + ['aligned_5fhighp_5fdmat3x2',['aligned_highp_dmat3x2',['../a00303.html#gab069b2fc2ec785fc4e193cf26c022679',1,'glm']]], + ['aligned_5fhighp_5fdmat3x3',['aligned_highp_dmat3x3',['../a00303.html#ga66073b1ddef34b681741f572338ddb8e',1,'glm']]], + ['aligned_5fhighp_5fdmat3x4',['aligned_highp_dmat3x4',['../a00303.html#ga683c8ca66de323ea533a760abedd0efc',1,'glm']]], + ['aligned_5fhighp_5fdmat4',['aligned_highp_dmat4',['../a00303.html#gacaa7407ea00ffdd322ce86a57adb547e',1,'glm']]], + ['aligned_5fhighp_5fdmat4x2',['aligned_highp_dmat4x2',['../a00303.html#ga93a23ca3d42818d56e0702213c66354b',1,'glm']]], + ['aligned_5fhighp_5fdmat4x3',['aligned_highp_dmat4x3',['../a00303.html#gacab7374b560745cb1d0a306a90353f58',1,'glm']]], + ['aligned_5fhighp_5fdmat4x4',['aligned_highp_dmat4x4',['../a00303.html#ga1fbfba14368b742972d3b58a0a303682',1,'glm']]], + ['aligned_5fhighp_5fdvec1',['aligned_highp_dvec1',['../a00303.html#gaf0448b0f7ceb8273f7eda3a92205eefc',1,'glm']]], + ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00303.html#gab173a333e6b7ce153ceba66ac4a321cf',1,'glm']]], + ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00303.html#gae94ef61edfa047d05bc69b6065fc42ba',1,'glm']]], + ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00303.html#ga8fad35c5677f228e261fe541f15363a4',1,'glm']]], + ['aligned_5fhighp_5fivec1',['aligned_highp_ivec1',['../a00303.html#gad63b8c5b4dc0500d54d7414ef555178f',1,'glm']]], + ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00303.html#ga41563650f36cb7f479e080de21e08418',1,'glm']]], + ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00303.html#ga6eca5170bb35eac90b4972590fd31a06',1,'glm']]], + ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00303.html#ga31bfa801e1579fdba752ec3f7a45ec91',1,'glm']]], + ['aligned_5fhighp_5fmat2',['aligned_highp_mat2',['../a00303.html#gaf9db5e8a929c317da5aa12cc53741b63',1,'glm']]], + ['aligned_5fhighp_5fmat2x2',['aligned_highp_mat2x2',['../a00303.html#gab559d943abf92bc588bcd3f4c0e4664b',1,'glm']]], + ['aligned_5fhighp_5fmat2x3',['aligned_highp_mat2x3',['../a00303.html#ga50c9af5aa3a848956d625fc64dc8488e',1,'glm']]], + ['aligned_5fhighp_5fmat2x4',['aligned_highp_mat2x4',['../a00303.html#ga0edcfdd179f8a158342eead48a4d0c2a',1,'glm']]], + ['aligned_5fhighp_5fmat3',['aligned_highp_mat3',['../a00303.html#gabab3afcc04459c7b123604ae5dc663f6',1,'glm']]], + ['aligned_5fhighp_5fmat3x2',['aligned_highp_mat3x2',['../a00303.html#ga9fc2167b47c9be9295f2d8eea7f0ca75',1,'glm']]], + ['aligned_5fhighp_5fmat3x3',['aligned_highp_mat3x3',['../a00303.html#ga2f7b8c99ba6f2d07c73a195a8143c259',1,'glm']]], + ['aligned_5fhighp_5fmat3x4',['aligned_highp_mat3x4',['../a00303.html#ga52e00afd0eb181e6738f40cf41787049',1,'glm']]], + ['aligned_5fhighp_5fmat4',['aligned_highp_mat4',['../a00303.html#ga058ae939bfdbcbb80521dd4a3b01afba',1,'glm']]], + ['aligned_5fhighp_5fmat4x2',['aligned_highp_mat4x2',['../a00303.html#ga84e1f5e0718952a079b748825c03f956',1,'glm']]], + ['aligned_5fhighp_5fmat4x3',['aligned_highp_mat4x3',['../a00303.html#gafff1684c4ff19b4a818138ccacc1e78d',1,'glm']]], + ['aligned_5fhighp_5fmat4x4',['aligned_highp_mat4x4',['../a00303.html#ga40d49648083a0498a12a4bb41ae6ece8',1,'glm']]], + ['aligned_5fhighp_5fuvec1',['aligned_highp_uvec1',['../a00303.html#ga5b80e28396c6ef7d32c6fd18df498451',1,'glm']]], + ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00303.html#ga04db692662a4908beeaf5a5ba6e19483',1,'glm']]], + ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00303.html#ga073fd6e8b241afade6d8afbd676b2667',1,'glm']]], + ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00303.html#gabdd60462042859f876c17c7346c732a5',1,'glm']]], + ['aligned_5fhighp_5fvec1',['aligned_highp_vec1',['../a00303.html#ga4d0bd70d5fac49b800546d608b707513',1,'glm']]], + ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00303.html#gac9f8482dde741fb6bab7248b81a45465',1,'glm']]], + ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00303.html#ga65415d2d68c9cc0ca554524a8f5510b2',1,'glm']]], + ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00303.html#ga7cb26d354dd69d23849c34c4fba88da9',1,'glm']]], + ['aligned_5fivec1',['aligned_ivec1',['../a00303.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]], + ['aligned_5fivec2',['aligned_ivec2',['../a00303.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]], + ['aligned_5fivec3',['aligned_ivec3',['../a00303.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]], + ['aligned_5fivec4',['aligned_ivec4',['../a00303.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]], + ['aligned_5flowp_5fbvec1',['aligned_lowp_bvec1',['../a00303.html#gac6036449ab1c4abf8efe1ea00fcdd1c9',1,'glm']]], + ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00303.html#ga59fadcd3835646e419372ae8b43c5d37',1,'glm']]], + ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00303.html#ga83aab4d191053f169c93a3e364f2e118',1,'glm']]], + ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00303.html#gaa7a76555ee4853614e5755181a8dd54e',1,'glm']]], + ['aligned_5flowp_5fdmat2',['aligned_lowp_dmat2',['../a00303.html#ga79a90173d8faa9816dc852ce447d66ca',1,'glm']]], + ['aligned_5flowp_5fdmat2x2',['aligned_lowp_dmat2x2',['../a00303.html#ga07cb8e846666cbf56045b064fb553d2e',1,'glm']]], + ['aligned_5flowp_5fdmat2x3',['aligned_lowp_dmat2x3',['../a00303.html#ga7a4536b6e1f2ebb690f63816b5d7e48b',1,'glm']]], + ['aligned_5flowp_5fdmat2x4',['aligned_lowp_dmat2x4',['../a00303.html#gab0cf4f7c9a264941519acad286e055ea',1,'glm']]], + ['aligned_5flowp_5fdmat3',['aligned_lowp_dmat3',['../a00303.html#gac00e15efded8a57c9dec3aed0fb547e7',1,'glm']]], + ['aligned_5flowp_5fdmat3x2',['aligned_lowp_dmat3x2',['../a00303.html#gaa281a47d5d627313984d0f8df993b648',1,'glm']]], + ['aligned_5flowp_5fdmat3x3',['aligned_lowp_dmat3x3',['../a00303.html#ga7f3148a72355e39932d6855baca42ebc',1,'glm']]], + ['aligned_5flowp_5fdmat3x4',['aligned_lowp_dmat3x4',['../a00303.html#gaea3ccc5ef5b178e6e49b4fa1427605d3',1,'glm']]], + ['aligned_5flowp_5fdmat4',['aligned_lowp_dmat4',['../a00303.html#gab92c6d7d58d43dfb8147e9aedfe8351b',1,'glm']]], + ['aligned_5flowp_5fdmat4x2',['aligned_lowp_dmat4x2',['../a00303.html#gaf806dfdaffb2e9f7681b1cd2825898ce',1,'glm']]], + ['aligned_5flowp_5fdmat4x3',['aligned_lowp_dmat4x3',['../a00303.html#gab0931ac7807fa1428c7bbf249efcdf0d',1,'glm']]], + ['aligned_5flowp_5fdmat4x4',['aligned_lowp_dmat4x4',['../a00303.html#gad8220a93d2fca2dd707821b4ab6f809e',1,'glm']]], + ['aligned_5flowp_5fdvec1',['aligned_lowp_dvec1',['../a00303.html#ga7f8a2cc5a686e52b1615761f4978ca62',1,'glm']]], + ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00303.html#ga0e37cff4a43cca866101f0a35f01db6d',1,'glm']]], + ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00303.html#gab9e669c4efd52d3347fc6d5f6b20fd59',1,'glm']]], + ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00303.html#ga226f5ec7a953cea559c16fe3aff9924f',1,'glm']]], + ['aligned_5flowp_5fivec1',['aligned_lowp_ivec1',['../a00303.html#ga1101d3a82b2e3f5f8828bd8f3adab3e1',1,'glm']]], + ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00303.html#ga44c4accad582cfbd7226a19b83b0cadc',1,'glm']]], + ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00303.html#ga65663f10a02e52cedcddbcfe36ddf38d',1,'glm']]], + ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00303.html#gaae92fcec8b2e0328ffbeac31cc4fc419',1,'glm']]], + ['aligned_5flowp_5fmat2',['aligned_lowp_mat2',['../a00303.html#ga17c424412207b00dba1cf587b099eea3',1,'glm']]], + ['aligned_5flowp_5fmat2x2',['aligned_lowp_mat2x2',['../a00303.html#ga0e44aeb930a47f9cbf2db15b56433b0f',1,'glm']]], + ['aligned_5flowp_5fmat2x3',['aligned_lowp_mat2x3',['../a00303.html#ga7dec6d96bc61312b1e56d137c9c74030',1,'glm']]], + ['aligned_5flowp_5fmat2x4',['aligned_lowp_mat2x4',['../a00303.html#gaa694fab1f8df5f658846573ba8ffc563',1,'glm']]], + ['aligned_5flowp_5fmat3',['aligned_lowp_mat3',['../a00303.html#ga1eb9076cc28ead5020fd3029fd0472c5',1,'glm']]], + ['aligned_5flowp_5fmat3x2',['aligned_lowp_mat3x2',['../a00303.html#ga2d6639f0bd777bae1ee0eba71cd7bfdc',1,'glm']]], + ['aligned_5flowp_5fmat3x3',['aligned_lowp_mat3x3',['../a00303.html#gaeaab04e378a90956eec8d68a99d777ed',1,'glm']]], + ['aligned_5flowp_5fmat3x4',['aligned_lowp_mat3x4',['../a00303.html#ga1f03696ab066572c6c044e63edf635a2',1,'glm']]], + ['aligned_5flowp_5fmat4',['aligned_lowp_mat4',['../a00303.html#ga25ea2f684e36aa5e978b4f2f86593824',1,'glm']]], + ['aligned_5flowp_5fmat4x2',['aligned_lowp_mat4x2',['../a00303.html#ga2cb16c3fdfb15e0719d942ee3b548bc4',1,'glm']]], + ['aligned_5flowp_5fmat4x3',['aligned_lowp_mat4x3',['../a00303.html#ga7e96981e872f17a780d9f1c22dc1f512',1,'glm']]], + ['aligned_5flowp_5fmat4x4',['aligned_lowp_mat4x4',['../a00303.html#gadae3dcfc22d28c64d0548cbfd9d08719',1,'glm']]], + ['aligned_5flowp_5fuvec1',['aligned_lowp_uvec1',['../a00303.html#gad09b93acc43c43423408d17a64f6d7ca',1,'glm']]], + ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00303.html#ga6f94fcd28dde906fc6cad5f742b55c1a',1,'glm']]], + ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00303.html#ga9e9f006970b1a00862e3e6e599eedd4c',1,'glm']]], + ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00303.html#ga46b1b0b9eb8625a5d69137bd66cd13dc',1,'glm']]], + ['aligned_5flowp_5fvec1',['aligned_lowp_vec1',['../a00303.html#gab34aee3d5e121c543fea11d2c50ecc43',1,'glm']]], + ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00303.html#ga53ac5d252317f1fa43c2ef921857bf13',1,'glm']]], + ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00303.html#ga98f0b5cd65fce164ff1367c2a3b3aa1e',1,'glm']]], + ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00303.html#ga82f7275d6102593a69ce38cdad680409',1,'glm']]], + ['aligned_5fmat2',['aligned_mat2',['../a00303.html#ga5a8a5f8c47cd7d5502dd9932f83472b9',1,'glm']]], + ['aligned_5fmat2x2',['aligned_mat2x2',['../a00303.html#gabb04f459d81d753d278b2072e2375e8e',1,'glm']]], + ['aligned_5fmat2x3',['aligned_mat2x3',['../a00303.html#ga832476bb1c59ef673db37433ff34e399',1,'glm']]], + ['aligned_5fmat2x4',['aligned_mat2x4',['../a00303.html#gadab11a7504430825b648ff7c7e36b725',1,'glm']]], + ['aligned_5fmat3',['aligned_mat3',['../a00303.html#ga43a92a24ca863e0e0f3b65834b3cf714',1,'glm']]], + ['aligned_5fmat3x2',['aligned_mat3x2',['../a00303.html#ga5c0df24ba85eafafc0eb0c90690510ed',1,'glm']]], + ['aligned_5fmat3x3',['aligned_mat3x3',['../a00303.html#gadb065dbe5c11271fef8cf2ea8608f187',1,'glm']]], + ['aligned_5fmat3x4',['aligned_mat3x4',['../a00303.html#ga88061c72c997b94c420f2b0a60d9df26',1,'glm']]], + ['aligned_5fmat4',['aligned_mat4',['../a00303.html#gab0fddcf95dd51cbcbf624ea7c40dfeb8',1,'glm']]], + ['aligned_5fmat4x2',['aligned_mat4x2',['../a00303.html#gac9a2d0fb815fd5c2bd58b869c55e32d3',1,'glm']]], + ['aligned_5fmat4x3',['aligned_mat4x3',['../a00303.html#ga452bbbfd26e244de216e4d004d50bb74',1,'glm']]], + ['aligned_5fmat4x4',['aligned_mat4x4',['../a00303.html#ga8b8fb86973a0b768c5bd802c92fac1a1',1,'glm']]], + ['aligned_5fmediump_5fbvec1',['aligned_mediump_bvec1',['../a00303.html#gadd3b8bd71a758f7fb0da8e525156f34e',1,'glm']]], + ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00303.html#gacb183eb5e67ec0d0ea5a016cba962810',1,'glm']]], + ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00303.html#gacfa4a542f1b20a5b63ad702dfb6fd587',1,'glm']]], + ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00303.html#ga91bc1f513bb9b0fd60281d57ded9a48c',1,'glm']]], + ['aligned_5fmediump_5fdmat2',['aligned_mediump_dmat2',['../a00303.html#ga62a2dfd668c91072b72c3109fc6cda28',1,'glm']]], + ['aligned_5fmediump_5fdmat2x2',['aligned_mediump_dmat2x2',['../a00303.html#ga9b7feec247d378dd407ba81f56ea96c8',1,'glm']]], + ['aligned_5fmediump_5fdmat2x3',['aligned_mediump_dmat2x3',['../a00303.html#gafcb189f4f93648fe7ca802ca4aca2eb8',1,'glm']]], + ['aligned_5fmediump_5fdmat2x4',['aligned_mediump_dmat2x4',['../a00303.html#ga92f8873e3bbd5ca1323c8bbe5725cc5e',1,'glm']]], + ['aligned_5fmediump_5fdmat3',['aligned_mediump_dmat3',['../a00303.html#ga6dc2832b747c00e0a0df621aba196960',1,'glm']]], + ['aligned_5fmediump_5fdmat3x2',['aligned_mediump_dmat3x2',['../a00303.html#ga5a97f0355d801de3444d42c1d5b40438',1,'glm']]], + ['aligned_5fmediump_5fdmat3x3',['aligned_mediump_dmat3x3',['../a00303.html#ga649d0acf01054b17e679cf00e150e025',1,'glm']]], + ['aligned_5fmediump_5fdmat3x4',['aligned_mediump_dmat3x4',['../a00303.html#ga45e155a4840f69b2fa4ed8047a676860',1,'glm']]], + ['aligned_5fmediump_5fdmat4',['aligned_mediump_dmat4',['../a00303.html#ga8a9376d82f0e946e25137eb55543e6ce',1,'glm']]], + ['aligned_5fmediump_5fdmat4x2',['aligned_mediump_dmat4x2',['../a00303.html#gabc25e547f4de4af62403492532cd1b6d',1,'glm']]], + ['aligned_5fmediump_5fdmat4x3',['aligned_mediump_dmat4x3',['../a00303.html#gae84f4763ecdc7457ecb7930bad12057c',1,'glm']]], + ['aligned_5fmediump_5fdmat4x4',['aligned_mediump_dmat4x4',['../a00303.html#gaa292ebaa907afdecb2d5967fb4fb1247',1,'glm']]], + ['aligned_5fmediump_5fdvec1',['aligned_mediump_dvec1',['../a00303.html#ga7180b685c581adb224406a7f831608e3',1,'glm']]], + ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00303.html#ga9af1eabe22f569e70d9893be72eda0f5',1,'glm']]], + ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00303.html#ga058e7ddab1428e47f2197bdd3a5a6953',1,'glm']]], + ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00303.html#gaffd747ea2aea1e69c2ecb04e68521b21',1,'glm']]], + ['aligned_5fmediump_5fivec1',['aligned_mediump_ivec1',['../a00303.html#ga20e63dd980b81af10cadbbe219316650',1,'glm']]], + ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00303.html#gaea13d89d49daca2c796aeaa82fc2c2f2',1,'glm']]], + ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00303.html#gabbf0f15e9c3d9868e43241ad018f82bd',1,'glm']]], + ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00303.html#ga6099dd7878d0a78101a4250d8cd2d736',1,'glm']]], + ['aligned_5fmediump_5fmat2',['aligned_mediump_mat2',['../a00303.html#gaf6f041b212c57664d88bc6aefb7e36f3',1,'glm']]], + ['aligned_5fmediump_5fmat2x2',['aligned_mediump_mat2x2',['../a00303.html#ga04bf49316ee777d42fcfe681ee37d7be',1,'glm']]], + ['aligned_5fmediump_5fmat2x3',['aligned_mediump_mat2x3',['../a00303.html#ga26a0b61e444a51a37b9737cf4d84291b',1,'glm']]], + ['aligned_5fmediump_5fmat2x4',['aligned_mediump_mat2x4',['../a00303.html#ga163facc9ed2692ea1300ed57c5d12b17',1,'glm']]], + ['aligned_5fmediump_5fmat3',['aligned_mediump_mat3',['../a00303.html#ga3b76ba17ae5d53debeb6f7e55919a57c',1,'glm']]], + ['aligned_5fmediump_5fmat3x2',['aligned_mediump_mat3x2',['../a00303.html#ga80dee705d714300378e0847f45059097',1,'glm']]], + ['aligned_5fmediump_5fmat3x3',['aligned_mediump_mat3x3',['../a00303.html#ga721f5404caf40d68962dcc0529de71d9',1,'glm']]], + ['aligned_5fmediump_5fmat3x4',['aligned_mediump_mat3x4',['../a00303.html#ga98f4dc6722a2541a990918c074075359',1,'glm']]], + ['aligned_5fmediump_5fmat4',['aligned_mediump_mat4',['../a00303.html#gaeefee8317192174596852ce19b602720',1,'glm']]], + ['aligned_5fmediump_5fmat4x2',['aligned_mediump_mat4x2',['../a00303.html#ga46f372a006345c252a41267657cc22c0',1,'glm']]], + ['aligned_5fmediump_5fmat4x3',['aligned_mediump_mat4x3',['../a00303.html#ga0effece4545acdebdc2a5512a303110e',1,'glm']]], + ['aligned_5fmediump_5fmat4x4',['aligned_mediump_mat4x4',['../a00303.html#ga312864244cae4e8f10f478cffd0f76de',1,'glm']]], + ['aligned_5fmediump_5fuvec1',['aligned_mediump_uvec1',['../a00303.html#gacb78126ea2eb779b41c7511128ff1283',1,'glm']]], + ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00303.html#ga081d53e0a71443d0b68ea61c870f9adc',1,'glm']]], + ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00303.html#gad6fc921bdde2bdbc7e09b028e1e9b379',1,'glm']]], + ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00303.html#ga73ea0c1ba31580e107d21270883f51fc',1,'glm']]], + ['aligned_5fmediump_5fvec1',['aligned_mediump_vec1',['../a00303.html#ga6b797eec76fa471e300158f3453b3b2e',1,'glm']]], + ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00303.html#ga026a55ddbf2bafb1432f1157a2708616',1,'glm']]], + ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00303.html#ga3a25e494173f6a64637b08a1b50a2132',1,'glm']]], + ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00303.html#ga320d1c661cff2ef214eb50241f2928b2',1,'glm']]], + ['aligned_5fuvec1',['aligned_uvec1',['../a00303.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]], + ['aligned_5fuvec2',['aligned_uvec2',['../a00303.html#ga074137e3be58528d67041c223d49f398',1,'glm']]], + ['aligned_5fuvec3',['aligned_uvec3',['../a00303.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]], + ['aligned_5fuvec4',['aligned_uvec4',['../a00303.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]], + ['aligned_5fvec1',['aligned_vec1',['../a00303.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]], + ['aligned_5fvec2',['aligned_vec2',['../a00303.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]], + ['aligned_5fvec3',['aligned_vec3',['../a00303.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]], + ['aligned_5fvec4',['aligned_vec4',['../a00303.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]], + ['all',['all',['../a00374.html#ga87e53f50b679f5f95c5cb4780311b3dd',1,'glm']]], + ['angle',['angle',['../a00257.html#ga8aa248b31d5ade470c87304df5eb7bd8',1,'glm::angle(qua< T, Q > const &x)'],['../a00367.html#ga2e2917b4cb75ca3d043ac15ff88f14e1',1,'glm::angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['angleaxis',['angleAxis',['../a00257.html#ga5c0095cfcb218c75a4b79d7687950036',1,'glm']]], + ['any',['any',['../a00374.html#ga911b3f8e41459dd551ccb6d385d91061',1,'glm']]], + ['arecollinear',['areCollinear',['../a00368.html#ga13da4a787a2ff70e95d561fb19ff91b4',1,'glm']]], + ['areorthogonal',['areOrthogonal',['../a00368.html#gac7b95b3f798e3c293262b2bdaad47c57',1,'glm']]], + ['areorthonormal',['areOrthonormal',['../a00368.html#ga1b091c3d7f9ee3b0708311c001c293e3',1,'glm']]], + ['asec',['asec',['../a00301.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]], + ['asech',['asech',['../a00301.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]], + ['asin',['asin',['../a00373.html#ga0552d2df4865fa8c3d7cfc3ec2caac73',1,'glm']]], + ['asinh',['asinh',['../a00373.html#ga3ef16b501ee859fddde88e22192a5950',1,'glm']]], + ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]], + ['associatedmax',['associatedMax',['../a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00308.html#ga5c6758bc50aa7fbe700f87123a045aad',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#ga0d169d6ce26b03248df175f39005d77f',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)'],['../a00308.html#ga4086269afabcb81dd7ded33cb3448653',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)'],['../a00308.html#ga19f59d1141a51a3b2108a9807af78f7f',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)'],['../a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], + ['associatedmin',['associatedMin',['../a00308.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00308.html#gac2f0dff90948f2e44386a5eafd941d1c',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#gacfec519c820331d023ef53a511749319',1,'glm::associatedMin(T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)'],['../a00308.html#ga4757c7cab2d809124a8525d0a9deeb37',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#ga66b08118bc88f0494bcacb7cdb940556',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68',1,'glm::associatedMin(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#ga2db7e351994baee78540a562d4bb6d3b',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], + ['atan',['atan',['../a00373.html#gac61629f3a4aa14057e7a8cae002291db',1,'glm::atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)'],['../a00373.html#ga5229f087eaccbc466f1c609ce3107b95',1,'glm::atan(vec< L, T, Q > const &y_over_x)']]], + ['atan2',['atan2',['../a00315.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00315.html#ga83bc41bd6f89113ee8006576b12bfc50',1,'glm::atan2(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)'],['../a00315.html#gac39314f5087e7e51e592897cabbc1927',1,'glm::atan2(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)'],['../a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3',1,'glm::atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)']]], + ['atanh',['atanh',['../a00373.html#gabc925650e618357d07da255531658b87',1,'glm']]], + ['axis',['axis',['../a00257.html#ga764254f10248b505e936e5309a88c23d',1,'glm']]], + ['axisangle',['axisAngle',['../a00337.html#gafefe32ce5a90a135287ba34fac3623bc',1,'glm']]], + ['axisanglematrix',['axisAngleMatrix',['../a00337.html#ga3a788e2f5223397df5c426413ecc2f6b',1,'glm']]], + ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00373.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_1.html b/external/include/glm-0.9.9.8/doc/api/search/all_1.html index e0b0c6d887..1fbc509c21 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_1.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_1.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_1.js b/external/include/glm-0.9.9.8/doc/api/search/all_1.js index f79e1a2721..aad8fc7f6b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_1.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_1.js @@ -1,41 +1,41 @@ -var searchData= -[ - ['backeasein',['backEaseIn',['../a00318.html#ga93cddcdb6347a44d5927cc2bf2570816',1,'glm::backEaseIn(genType const &a)'],['../a00318.html#ga33777c9dd98f61d9472f96aafdf2bd36',1,'glm::backEaseIn(genType const &a, genType const &o)']]], - ['backeaseinout',['backEaseInOut',['../a00318.html#gace6d24722a2f6722b56398206eb810bb',1,'glm::backEaseInOut(genType const &a)'],['../a00318.html#ga68a7b760f2afdfab298d5cd6d7611fb1',1,'glm::backEaseInOut(genType const &a, genType const &o)']]], - ['backeaseout',['backEaseOut',['../a00318.html#gabf25069fa906413c858fd46903d520b9',1,'glm::backEaseOut(genType const &a)'],['../a00318.html#ga640c1ac6fe9d277a197da69daf60ee4f',1,'glm::backEaseOut(genType const &a, genType const &o)']]], - ['ballrand',['ballRand',['../a00300.html#ga7c53b7797f3147af68a11c767679fa3f',1,'glm']]], - ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]], - ['bitcount',['bitCount',['../a00370.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00370.html#gaac7b15e40bdea8d9aa4c4cb34049f7b5',1,'glm::bitCount(vec< L, T, Q > const &v)']]], - ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]], - ['bitfielddeinterleave',['bitfieldDeinterleave',['../a00288.html#ga091d934233a2e121df91b8c7230357c8',1,'glm::bitfieldDeinterleave(glm::uint16 x)'],['../a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98',1,'glm::bitfieldDeinterleave(glm::uint32 x)'],['../a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60',1,'glm::bitfieldDeinterleave(glm::uint64 x)']]], - ['bitfieldextract',['bitfieldExtract',['../a00370.html#ga346b25ab11e793e91a4a69c8aa6819f2',1,'glm']]], - ['bitfieldfillone',['bitfieldFillOne',['../a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1',1,'glm::bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], - ['bitfieldfillzero',['bitfieldFillZero',['../a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2',1,'glm::bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], - ['bitfieldinsert',['bitfieldInsert',['../a00370.html#ga2e82992340d421fadb61a473df699b20',1,'glm']]], - ['bitfieldinterleave',['bitfieldInterleave',['../a00288.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00288.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00288.html#ga4a76bbca39c40153f3203d0a1926e142',1,'glm::bitfieldInterleave(u8vec2 const &v)'],['../a00288.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00288.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00288.html#ga406c4ee56af4ca37a73f449f154eca3e',1,'glm::bitfieldInterleave(u16vec2 const &v)'],['../a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78',1,'glm::bitfieldInterleave(u32vec2 const &v)'],['../a00288.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00288.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00288.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00288.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00288.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00288.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00288.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]], - ['bitfieldreverse',['bitfieldReverse',['../a00370.html#ga750a1d92464489b7711dee67aa3441b6',1,'glm']]], - ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00288.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00288.html#gae186317091b1a39214ebf79008d44a1e',1,'glm::bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)']]], - ['bitfieldrotateright',['bitfieldRotateRight',['../a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88',1,'glm::bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)']]], - ['bool1',['bool1',['../a00315.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]], - ['bool1x1',['bool1x1',['../a00315.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]], - ['bool2',['bool2',['../a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9',1,'glm']]], - ['bool2x2',['bool2x2',['../a00315.html#gadb3703955e513632f98ba12fe051ba3e',1,'glm']]], - ['bool2x3',['bool2x3',['../a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0',1,'glm']]], - ['bool2x4',['bool2x4',['../a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f',1,'glm']]], - ['bool3',['bool3',['../a00315.html#ga99629f818737f342204071ef8296b2ed',1,'glm']]], - ['bool3x2',['bool3x2',['../a00315.html#gac7d7311f7e0fa8b6163d96dab033a755',1,'glm']]], - ['bool3x3',['bool3x3',['../a00315.html#ga6c97b99aac3e302053ffb58aace9033c',1,'glm']]], - ['bool3x4',['bool3x4',['../a00315.html#gae7d6b679463d37d6c527d478fb470fdf',1,'glm']]], - ['bool4',['bool4',['../a00315.html#ga13c3200b82708f73faac6d7f09ec91a3',1,'glm']]], - ['bool4x2',['bool4x2',['../a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0',1,'glm']]], - ['bool4x3',['bool4x3',['../a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe',1,'glm']]], - ['bool4x4',['bool4x4',['../a00315.html#ga7d2a7d13986602ae2896bfaa394235d4',1,'glm']]], - ['bounceeasein',['bounceEaseIn',['../a00318.html#gaac30767f2e430b0c3fc859a4d59c7b5b',1,'glm']]], - ['bounceeaseinout',['bounceEaseInOut',['../a00318.html#gadf9f38eff1e5f4c2fa5b629a25ae413e',1,'glm']]], - ['bounceeaseout',['bounceEaseOut',['../a00318.html#ga94007005ff0dcfa0749ebfa2aec540b2',1,'glm']]], - ['bvec1',['bvec1',['../a00265.html#ga067af382616d93f8e850baae5154cdcc',1,'glm']]], - ['bvec2',['bvec2',['../a00281.html#ga0b6123e03653cc1bbe366fc55238a934',1,'glm']]], - ['bvec3',['bvec3',['../a00281.html#ga197151b72dfaf289daf98b361760ffe7',1,'glm']]], - ['bvec4',['bvec4',['../a00281.html#ga9f7b9712373ff4342d9114619b55f5e3',1,'glm']]], - ['byte',['byte',['../a00354.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]] -]; +var searchData= +[ + ['backeasein',['backEaseIn',['../a00318.html#ga93cddcdb6347a44d5927cc2bf2570816',1,'glm::backEaseIn(genType const &a)'],['../a00318.html#ga33777c9dd98f61d9472f96aafdf2bd36',1,'glm::backEaseIn(genType const &a, genType const &o)']]], + ['backeaseinout',['backEaseInOut',['../a00318.html#gace6d24722a2f6722b56398206eb810bb',1,'glm::backEaseInOut(genType const &a)'],['../a00318.html#ga68a7b760f2afdfab298d5cd6d7611fb1',1,'glm::backEaseInOut(genType const &a, genType const &o)']]], + ['backeaseout',['backEaseOut',['../a00318.html#gabf25069fa906413c858fd46903d520b9',1,'glm::backEaseOut(genType const &a)'],['../a00318.html#ga640c1ac6fe9d277a197da69daf60ee4f',1,'glm::backEaseOut(genType const &a, genType const &o)']]], + ['ballrand',['ballRand',['../a00300.html#ga7c53b7797f3147af68a11c767679fa3f',1,'glm']]], + ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]], + ['bitcount',['bitCount',['../a00370.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00370.html#gaac7b15e40bdea8d9aa4c4cb34049f7b5',1,'glm::bitCount(vec< L, T, Q > const &v)']]], + ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]], + ['bitfielddeinterleave',['bitfieldDeinterleave',['../a00288.html#ga091d934233a2e121df91b8c7230357c8',1,'glm::bitfieldDeinterleave(glm::uint16 x)'],['../a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98',1,'glm::bitfieldDeinterleave(glm::uint32 x)'],['../a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60',1,'glm::bitfieldDeinterleave(glm::uint64 x)']]], + ['bitfieldextract',['bitfieldExtract',['../a00370.html#ga346b25ab11e793e91a4a69c8aa6819f2',1,'glm']]], + ['bitfieldfillone',['bitfieldFillOne',['../a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1',1,'glm::bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], + ['bitfieldfillzero',['bitfieldFillZero',['../a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2',1,'glm::bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], + ['bitfieldinsert',['bitfieldInsert',['../a00370.html#ga2e82992340d421fadb61a473df699b20',1,'glm']]], + ['bitfieldinterleave',['bitfieldInterleave',['../a00288.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00288.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00288.html#ga4a76bbca39c40153f3203d0a1926e142',1,'glm::bitfieldInterleave(u8vec2 const &v)'],['../a00288.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00288.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00288.html#ga406c4ee56af4ca37a73f449f154eca3e',1,'glm::bitfieldInterleave(u16vec2 const &v)'],['../a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78',1,'glm::bitfieldInterleave(u32vec2 const &v)'],['../a00288.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00288.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00288.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00288.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00288.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00288.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00288.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]], + ['bitfieldreverse',['bitfieldReverse',['../a00370.html#ga750a1d92464489b7711dee67aa3441b6',1,'glm']]], + ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00288.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00288.html#gae186317091b1a39214ebf79008d44a1e',1,'glm::bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)']]], + ['bitfieldrotateright',['bitfieldRotateRight',['../a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88',1,'glm::bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)']]], + ['bool1',['bool1',['../a00315.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]], + ['bool1x1',['bool1x1',['../a00315.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]], + ['bool2',['bool2',['../a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9',1,'glm']]], + ['bool2x2',['bool2x2',['../a00315.html#gadb3703955e513632f98ba12fe051ba3e',1,'glm']]], + ['bool2x3',['bool2x3',['../a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0',1,'glm']]], + ['bool2x4',['bool2x4',['../a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f',1,'glm']]], + ['bool3',['bool3',['../a00315.html#ga99629f818737f342204071ef8296b2ed',1,'glm']]], + ['bool3x2',['bool3x2',['../a00315.html#gac7d7311f7e0fa8b6163d96dab033a755',1,'glm']]], + ['bool3x3',['bool3x3',['../a00315.html#ga6c97b99aac3e302053ffb58aace9033c',1,'glm']]], + ['bool3x4',['bool3x4',['../a00315.html#gae7d6b679463d37d6c527d478fb470fdf',1,'glm']]], + ['bool4',['bool4',['../a00315.html#ga13c3200b82708f73faac6d7f09ec91a3',1,'glm']]], + ['bool4x2',['bool4x2',['../a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0',1,'glm']]], + ['bool4x3',['bool4x3',['../a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe',1,'glm']]], + ['bool4x4',['bool4x4',['../a00315.html#ga7d2a7d13986602ae2896bfaa394235d4',1,'glm']]], + ['bounceeasein',['bounceEaseIn',['../a00318.html#gaac30767f2e430b0c3fc859a4d59c7b5b',1,'glm']]], + ['bounceeaseinout',['bounceEaseInOut',['../a00318.html#gadf9f38eff1e5f4c2fa5b629a25ae413e',1,'glm']]], + ['bounceeaseout',['bounceEaseOut',['../a00318.html#ga94007005ff0dcfa0749ebfa2aec540b2',1,'glm']]], + ['bvec1',['bvec1',['../a00265.html#ga067af382616d93f8e850baae5154cdcc',1,'glm']]], + ['bvec2',['bvec2',['../a00281.html#ga0b6123e03653cc1bbe366fc55238a934',1,'glm']]], + ['bvec3',['bvec3',['../a00281.html#ga197151b72dfaf289daf98b361760ffe7',1,'glm']]], + ['bvec4',['bvec4',['../a00281.html#ga9f7b9712373ff4342d9114619b55f5e3',1,'glm']]], + ['byte',['byte',['../a00354.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_10.html b/external/include/glm-0.9.9.8/doc/api/search/all_10.html index 2eb9d8a89c..80581d5aab 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_10.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_10.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_10.js b/external/include/glm-0.9.9.8/doc/api/search/all_10.js index 4d6bcb4469..481be8c288 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_10.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_10.js @@ -1,50 +1,50 @@ -var searchData= -[ - ['stable_20extensions',['Stable extensions',['../a00285.html',1,'']]], - ['saturate',['saturate',['../a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00315.html#gaee97b8001c794a78a44f5d59f62a8aba',1,'glm::saturate(const vec< 2, T, Q > &x)'],['../a00315.html#ga39bfe3a421286ee31680d45c31ccc161',1,'glm::saturate(const vec< 3, T, Q > &x)'],['../a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183',1,'glm::saturate(const vec< 4, T, Q > &x)']]], - ['saturation',['saturation',['../a00312.html#ga01a97152b44e1550edcac60bd849e884',1,'glm::saturation(T const s)'],['../a00312.html#ga2156cea600e90148ece5bc96fd6db43a',1,'glm::saturation(T const s, vec< 3, T, Q > const &color)'],['../a00312.html#gaba0eacee0736dae860e9371cc1ae4785',1,'glm::saturation(T const s, vec< 4, T, Q > const &color)']]], - ['scalar_5fcommon_2ehpp',['scalar_common.hpp',['../a00144.html',1,'']]], - ['scalar_5fconstants_2ehpp',['scalar_constants.hpp',['../a00145.html',1,'']]], - ['scalar_5fint_5fsized_2ehpp',['scalar_int_sized.hpp',['../a00146.html',1,'']]], - ['scalar_5finteger_2ehpp',['scalar_integer.hpp',['../a00147.html',1,'']]], - ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00148.html',1,'']]], - ['scalar_5fuint_5fsized_2ehpp',['scalar_uint_sized.hpp',['../a00151.html',1,'']]], - ['scalar_5fulp_2ehpp',['scalar_ulp.hpp',['../a00152.html',1,'']]], - ['scale',['scale',['../a00247.html#ga05051adbee603fb3c5095d8cf5cc229b',1,'glm::scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gadb47d2ad2bd984b213e8ff7d9cd8154e',1,'glm::scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#gafbeefee8fec884d566e4ada0049174d7',1,'glm::scale(vec< 3, T, Q > const &v)']]], - ['scalebias',['scaleBias',['../a00363.html#gabf249498b236e62c983d90d30d63c99c',1,'glm::scaleBias(T scale, T bias)'],['../a00363.html#gae2bdd91a76759fecfbaef97e3020aa8e',1,'glm::scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)']]], - ['sec',['sec',['../a00301.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]], - ['sech',['sech',['../a00301.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]], - ['shearx',['shearX',['../a00341.html#ga2a118ece5db1e2022112b954846012af',1,'glm']]], - ['shearx2d',['shearX2D',['../a00363.html#gabf714b8a358181572b32a45555f71948',1,'glm']]], - ['shearx3d',['shearX3D',['../a00363.html#ga73e867c6cd4d700fe2054437e56106c4',1,'glm']]], - ['sheary',['shearY',['../a00341.html#ga717f1833369c1ac4a40e4ac015af885e',1,'glm']]], - ['sheary2d',['shearY2D',['../a00363.html#gac7998d0763d9181550c77e8af09a182c',1,'glm']]], - ['sheary3d',['shearY3D',['../a00363.html#gade5bb65ffcb513973db1a1314fb5cfac',1,'glm']]], - ['shearz3d',['shearZ3D',['../a00363.html#ga6591e0a3a9d2c9c0b6577bb4dace0255',1,'glm']]], - ['shortmix',['shortMix',['../a00352.html#gadc576cc957adc2a568cdcbc3799175bc',1,'glm']]], - ['sign',['sign',['../a00241.html#ga1e2e5cfff800056540e32f6c9b604b28',1,'glm::sign(vec< L, T, Q > const &x)'],['../a00333.html#ga04ef803a24f3d4f8c67dbccb33b0fce0',1,'glm::sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)']]], - ['simplex',['simplex',['../a00297.html#ga8122468c69015ff397349a7dcc638b27',1,'glm']]], - ['sin',['sin',['../a00373.html#ga29747fd108cb7292ae5a284f69691a69',1,'glm']]], - ['sineeasein',['sineEaseIn',['../a00318.html#gafb338ac6f6b2bcafee50e3dca5201dbf',1,'glm']]], - ['sineeaseinout',['sineEaseInOut',['../a00318.html#gaa46e3d5fbf7a15caa28eff9ef192d7c7',1,'glm']]], - ['sineeaseout',['sineEaseOut',['../a00318.html#gab3e454f883afc1606ef91363881bf5a3',1,'glm']]], - ['sinh',['sinh',['../a00373.html#gac7c39ff21809e281552b4dbe46f4a39d',1,'glm']]], - ['sint',['sint',['../a00330.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]], - ['size1',['size1',['../a00359.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]], - ['size1_5ft',['size1_t',['../a00359.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]], - ['size2',['size2',['../a00359.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]], - ['size2_5ft',['size2_t',['../a00359.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]], - ['size3',['size3',['../a00359.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]], - ['size3_5ft',['size3_t',['../a00359.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]], - ['size4',['size4',['../a00359.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]], - ['size4_5ft',['size4_t',['../a00359.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]], - ['slerp',['slerp',['../a00248.html#gae7fc3c945be366b9942b842f55da428a',1,'glm::slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00356.html#ga8b11b18ce824174ea1a5a69ea14e2cee',1,'glm::slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)']]], - ['smoothstep',['smoothstep',['../a00241.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]], - ['sphericalrand',['sphericalRand',['../a00300.html#ga22f90fcaccdf001c516ca90f6428e138',1,'glm']]], - ['spline_2ehpp',['spline.hpp',['../a00154.html',1,'']]], - ['sqrt',['sqrt',['../a00242.html#gaa83e5f1648b7ccdf33b87c07c76cb77c',1,'glm::sqrt(vec< L, T, Q > const &v)'],['../a00256.html#ga64b7b255ed7bcba616fe6b44470b022e',1,'glm::sqrt(qua< T, Q > const &q)'],['../a00330.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00330.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]], - ['squad',['squad',['../a00352.html#ga0b9bf3459e132ad8a18fe970669e3e35',1,'glm']]], - ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00155.html',1,'']]], - ['step',['step',['../a00241.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00241.html#ga8f9a911a48ef244b51654eaefc81c551',1,'glm::step(T edge, vec< L, T, Q > const &x)'],['../a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f',1,'glm::step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)']]], - ['string_5fcast_2ehpp',['string_cast.hpp',['../a00156.html',1,'']]] -]; +var searchData= +[ + ['stable_20extensions',['Stable extensions',['../a00285.html',1,'']]], + ['saturate',['saturate',['../a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00315.html#gaee97b8001c794a78a44f5d59f62a8aba',1,'glm::saturate(const vec< 2, T, Q > &x)'],['../a00315.html#ga39bfe3a421286ee31680d45c31ccc161',1,'glm::saturate(const vec< 3, T, Q > &x)'],['../a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183',1,'glm::saturate(const vec< 4, T, Q > &x)']]], + ['saturation',['saturation',['../a00312.html#ga01a97152b44e1550edcac60bd849e884',1,'glm::saturation(T const s)'],['../a00312.html#ga2156cea600e90148ece5bc96fd6db43a',1,'glm::saturation(T const s, vec< 3, T, Q > const &color)'],['../a00312.html#gaba0eacee0736dae860e9371cc1ae4785',1,'glm::saturation(T const s, vec< 4, T, Q > const &color)']]], + ['scalar_5fcommon_2ehpp',['scalar_common.hpp',['../a00144.html',1,'']]], + ['scalar_5fconstants_2ehpp',['scalar_constants.hpp',['../a00145.html',1,'']]], + ['scalar_5fint_5fsized_2ehpp',['scalar_int_sized.hpp',['../a00146.html',1,'']]], + ['scalar_5finteger_2ehpp',['scalar_integer.hpp',['../a00147.html',1,'']]], + ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00148.html',1,'']]], + ['scalar_5fuint_5fsized_2ehpp',['scalar_uint_sized.hpp',['../a00151.html',1,'']]], + ['scalar_5fulp_2ehpp',['scalar_ulp.hpp',['../a00152.html',1,'']]], + ['scale',['scale',['../a00247.html#ga05051adbee603fb3c5095d8cf5cc229b',1,'glm::scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gadb47d2ad2bd984b213e8ff7d9cd8154e',1,'glm::scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#gafbeefee8fec884d566e4ada0049174d7',1,'glm::scale(vec< 3, T, Q > const &v)']]], + ['scalebias',['scaleBias',['../a00363.html#gabf249498b236e62c983d90d30d63c99c',1,'glm::scaleBias(T scale, T bias)'],['../a00363.html#gae2bdd91a76759fecfbaef97e3020aa8e',1,'glm::scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)']]], + ['sec',['sec',['../a00301.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]], + ['sech',['sech',['../a00301.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]], + ['shearx',['shearX',['../a00341.html#ga2a118ece5db1e2022112b954846012af',1,'glm']]], + ['shearx2d',['shearX2D',['../a00363.html#gabf714b8a358181572b32a45555f71948',1,'glm']]], + ['shearx3d',['shearX3D',['../a00363.html#ga73e867c6cd4d700fe2054437e56106c4',1,'glm']]], + ['sheary',['shearY',['../a00341.html#ga717f1833369c1ac4a40e4ac015af885e',1,'glm']]], + ['sheary2d',['shearY2D',['../a00363.html#gac7998d0763d9181550c77e8af09a182c',1,'glm']]], + ['sheary3d',['shearY3D',['../a00363.html#gade5bb65ffcb513973db1a1314fb5cfac',1,'glm']]], + ['shearz3d',['shearZ3D',['../a00363.html#ga6591e0a3a9d2c9c0b6577bb4dace0255',1,'glm']]], + ['shortmix',['shortMix',['../a00352.html#gadc576cc957adc2a568cdcbc3799175bc',1,'glm']]], + ['sign',['sign',['../a00241.html#ga1e2e5cfff800056540e32f6c9b604b28',1,'glm::sign(vec< L, T, Q > const &x)'],['../a00333.html#ga04ef803a24f3d4f8c67dbccb33b0fce0',1,'glm::sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)']]], + ['simplex',['simplex',['../a00297.html#ga8122468c69015ff397349a7dcc638b27',1,'glm']]], + ['sin',['sin',['../a00373.html#ga29747fd108cb7292ae5a284f69691a69',1,'glm']]], + ['sineeasein',['sineEaseIn',['../a00318.html#gafb338ac6f6b2bcafee50e3dca5201dbf',1,'glm']]], + ['sineeaseinout',['sineEaseInOut',['../a00318.html#gaa46e3d5fbf7a15caa28eff9ef192d7c7',1,'glm']]], + ['sineeaseout',['sineEaseOut',['../a00318.html#gab3e454f883afc1606ef91363881bf5a3',1,'glm']]], + ['sinh',['sinh',['../a00373.html#gac7c39ff21809e281552b4dbe46f4a39d',1,'glm']]], + ['sint',['sint',['../a00330.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]], + ['size1',['size1',['../a00359.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]], + ['size1_5ft',['size1_t',['../a00359.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]], + ['size2',['size2',['../a00359.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]], + ['size2_5ft',['size2_t',['../a00359.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]], + ['size3',['size3',['../a00359.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]], + ['size3_5ft',['size3_t',['../a00359.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]], + ['size4',['size4',['../a00359.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]], + ['size4_5ft',['size4_t',['../a00359.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]], + ['slerp',['slerp',['../a00248.html#gae7fc3c945be366b9942b842f55da428a',1,'glm::slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00356.html#ga8b11b18ce824174ea1a5a69ea14e2cee',1,'glm::slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)']]], + ['smoothstep',['smoothstep',['../a00241.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]], + ['sphericalrand',['sphericalRand',['../a00300.html#ga22f90fcaccdf001c516ca90f6428e138',1,'glm']]], + ['spline_2ehpp',['spline.hpp',['../a00154.html',1,'']]], + ['sqrt',['sqrt',['../a00242.html#gaa83e5f1648b7ccdf33b87c07c76cb77c',1,'glm::sqrt(vec< L, T, Q > const &v)'],['../a00256.html#ga64b7b255ed7bcba616fe6b44470b022e',1,'glm::sqrt(qua< T, Q > const &q)'],['../a00330.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00330.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]], + ['squad',['squad',['../a00352.html#ga0b9bf3459e132ad8a18fe970669e3e35',1,'glm']]], + ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00155.html',1,'']]], + ['step',['step',['../a00241.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00241.html#ga8f9a911a48ef244b51654eaefc81c551',1,'glm::step(T edge, vec< L, T, Q > const &x)'],['../a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f',1,'glm::step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)']]], + ['string_5fcast_2ehpp',['string_cast.hpp',['../a00156.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_11.html b/external/include/glm-0.9.9.8/doc/api/search/all_11.html index e083915e12..bb6241befa 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_11.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_11.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_11.js b/external/include/glm-0.9.9.8/doc/api/search/all_11.js index 5dfe4cf499..9ae88efd73 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_11.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_11.js @@ -1,41 +1,41 @@ -var searchData= -[ - ['tan',['tan',['../a00373.html#ga293a34cfb9f0115cc606b4a97c84f11f',1,'glm']]], - ['tanh',['tanh',['../a00373.html#gaa1bccbfdcbe40ed2ffcddc2aa8bfd0f1',1,'glm']]], - ['texture_2ehpp',['texture.hpp',['../a00157.html',1,'']]], - ['third',['third',['../a00290.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]], - ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00290.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]], - ['to_5fstring',['to_string',['../a00360.html#ga8f0dced1fd45e67e2d77e80ab93c7af5',1,'glm']]], - ['tomat3',['toMat3',['../a00352.html#gaab0afabb894b28a983fb8ec610409d56',1,'glm']]], - ['tomat4',['toMat4',['../a00352.html#gadfa2c77094e8cc9adad321d938855ffb',1,'glm']]], - ['toquat',['toQuat',['../a00352.html#ga798de5d186499c9a9231cd92c8afaef1',1,'glm::toQuat(mat< 3, 3, T, Q > const &x)'],['../a00352.html#ga5eb36f51e1638e710451eba194dbc011',1,'glm::toQuat(mat< 4, 4, T, Q > const &x)']]], - ['transform_2ehpp',['transform.hpp',['../a00158.html',1,'']]], - ['transform2_2ehpp',['transform2.hpp',['../a00159.html',1,'']]], - ['translate',['translate',['../a00247.html#ga1a4ecc4ad82652b8fb14dcb087879284',1,'glm::translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gaf4573ae47c80938aa9053ef6a33755ab',1,'glm::translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#ga309a30e652e58c396e2c3d4db3ee7658',1,'glm::translate(vec< 3, T, Q > const &v)']]], - ['transpose',['transpose',['../a00371.html#gae679d841da8ce9dbcc6c2d454f15bc35',1,'glm']]], - ['trianglenormal',['triangleNormal',['../a00344.html#gaff1cb5496925dfa7962df457772a7f35',1,'glm']]], - ['trigonometric_2ehpp',['trigonometric.hpp',['../a00160.html',1,'']]], - ['trunc',['trunc',['../a00241.html#gaf9375e3e06173271d49e6ffa3a334259',1,'glm']]], - ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00243.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00243.html#gaf5b3c85ff6737030a1d2214474ffa7a8',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]], - ['two_5fover_5fpi',['two_over_pi',['../a00290.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]], - ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00290.html#ga5827301817640843cf02026a8d493894',1,'glm']]], - ['two_5fpi',['two_pi',['../a00290.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]], - ['two_5fthirds',['two_thirds',['../a00290.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]], - ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00165.html',1,'']]], - ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00166.html',1,'']]], - ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00167.html',1,'']]], - ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00168.html',1,'']]], - ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00169.html',1,'']]], - ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00170.html',1,'']]], - ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00171.html',1,'']]], - ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00172.html',1,'']]], - ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00173.html',1,'']]], - ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00174.html',1,'']]], - ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00175.html',1,'']]], - ['type_5fquat_2ehpp',['type_quat.hpp',['../a00176.html',1,'']]], - ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00177.html',1,'']]], - ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00178.html',1,'']]], - ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00179.html',1,'']]], - ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00180.html',1,'']]], - ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00181.html',1,'']]] -]; +var searchData= +[ + ['tan',['tan',['../a00373.html#ga293a34cfb9f0115cc606b4a97c84f11f',1,'glm']]], + ['tanh',['tanh',['../a00373.html#gaa1bccbfdcbe40ed2ffcddc2aa8bfd0f1',1,'glm']]], + ['texture_2ehpp',['texture.hpp',['../a00157.html',1,'']]], + ['third',['third',['../a00290.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]], + ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00290.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]], + ['to_5fstring',['to_string',['../a00360.html#ga8f0dced1fd45e67e2d77e80ab93c7af5',1,'glm']]], + ['tomat3',['toMat3',['../a00352.html#gaab0afabb894b28a983fb8ec610409d56',1,'glm']]], + ['tomat4',['toMat4',['../a00352.html#gadfa2c77094e8cc9adad321d938855ffb',1,'glm']]], + ['toquat',['toQuat',['../a00352.html#ga798de5d186499c9a9231cd92c8afaef1',1,'glm::toQuat(mat< 3, 3, T, Q > const &x)'],['../a00352.html#ga5eb36f51e1638e710451eba194dbc011',1,'glm::toQuat(mat< 4, 4, T, Q > const &x)']]], + ['transform_2ehpp',['transform.hpp',['../a00158.html',1,'']]], + ['transform2_2ehpp',['transform2.hpp',['../a00159.html',1,'']]], + ['translate',['translate',['../a00247.html#ga1a4ecc4ad82652b8fb14dcb087879284',1,'glm::translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gaf4573ae47c80938aa9053ef6a33755ab',1,'glm::translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#ga309a30e652e58c396e2c3d4db3ee7658',1,'glm::translate(vec< 3, T, Q > const &v)']]], + ['transpose',['transpose',['../a00371.html#gae679d841da8ce9dbcc6c2d454f15bc35',1,'glm']]], + ['trianglenormal',['triangleNormal',['../a00344.html#gaff1cb5496925dfa7962df457772a7f35',1,'glm']]], + ['trigonometric_2ehpp',['trigonometric.hpp',['../a00160.html',1,'']]], + ['trunc',['trunc',['../a00241.html#gaf9375e3e06173271d49e6ffa3a334259',1,'glm']]], + ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00243.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00243.html#gaf5b3c85ff6737030a1d2214474ffa7a8',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]], + ['two_5fover_5fpi',['two_over_pi',['../a00290.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]], + ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00290.html#ga5827301817640843cf02026a8d493894',1,'glm']]], + ['two_5fpi',['two_pi',['../a00290.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]], + ['two_5fthirds',['two_thirds',['../a00290.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]], + ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00165.html',1,'']]], + ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00166.html',1,'']]], + ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00167.html',1,'']]], + ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00168.html',1,'']]], + ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00169.html',1,'']]], + ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00170.html',1,'']]], + ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00171.html',1,'']]], + ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00172.html',1,'']]], + ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00173.html',1,'']]], + ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00174.html',1,'']]], + ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00175.html',1,'']]], + ['type_5fquat_2ehpp',['type_quat.hpp',['../a00176.html',1,'']]], + ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00177.html',1,'']]], + ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00178.html',1,'']]], + ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00179.html',1,'']]], + ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00180.html',1,'']]], + ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00181.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_12.html b/external/include/glm-0.9.9.8/doc/api/search/all_12.html index 5b98123fdf..fe93a5bfb5 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_12.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_12.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_12.js b/external/include/glm-0.9.9.8/doc/api/search/all_12.js index 5218e3db6d..a7435af997 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_12.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_12.js @@ -1,97 +1,97 @@ -var searchData= -[ - ['u16',['u16',['../a00304.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]], - ['u16vec1',['u16vec1',['../a00304.html#ga08c05ba8ffb19f5d14ab584e1e9e9ee5',1,'glm::u16vec1()'],['../a00346.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]], - ['u16vec2',['u16vec2',['../a00304.html#ga2a78447eb9d66a114b193f4a25899c16',1,'glm']]], - ['u16vec3',['u16vec3',['../a00304.html#ga1c522ca821c27b862fe51cf4024b064b',1,'glm']]], - ['u16vec4',['u16vec4',['../a00304.html#ga529496d75775fb656a07993ea9af2450',1,'glm']]], - ['u32',['u32',['../a00304.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]], - ['u32vec1',['u32vec1',['../a00304.html#gae627372cfd5f20dd87db490387b71195',1,'glm::u32vec1()'],['../a00346.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]], - ['u32vec2',['u32vec2',['../a00304.html#ga2a266e46ee218d0c680f12b35c500cc0',1,'glm']]], - ['u32vec3',['u32vec3',['../a00304.html#gae267358ff2a41d156d97f5762630235a',1,'glm']]], - ['u32vec4',['u32vec4',['../a00304.html#ga31cef34e4cd04840c54741ff2f7005f0',1,'glm']]], - ['u64',['u64',['../a00304.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]], - ['u64vec1',['u64vec1',['../a00304.html#gaf09f3ca4b671a4a4f84505eb4cc865fd',1,'glm::u64vec1()'],['../a00346.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]], - ['u64vec2',['u64vec2',['../a00304.html#gaef3824ed4fe435a019c5b9dddf53fec5',1,'glm']]], - ['u64vec3',['u64vec3',['../a00304.html#ga489b89ba93d4f7b3934df78debc52276',1,'glm']]], - ['u64vec4',['u64vec4',['../a00304.html#ga3945dd6515d4498cb603e65ff867ab03',1,'glm']]], - ['u8',['u8',['../a00304.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]], - ['u8vec1',['u8vec1',['../a00304.html#ga29b349e037f0b24320b4548a143daee2',1,'glm::u8vec1()'],['../a00346.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]], - ['u8vec2',['u8vec2',['../a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611',1,'glm']]], - ['u8vec3',['u8vec3',['../a00304.html#ga7c5706f6bbe5282e5598acf7e7b377e2',1,'glm']]], - ['u8vec4',['u8vec4',['../a00304.html#ga20779a61de2fd526a17f12fe53ec46b1',1,'glm']]], - ['uaddcarry',['uaddCarry',['../a00370.html#gaedcec48743632dff6786bcc492074b1b',1,'glm']]], - ['uint16',['uint16',['../a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e',1,'glm']]], - ['uint16_5ft',['uint16_t',['../a00304.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]], - ['uint32',['uint32',['../a00263.html#ga1134b580f8da4de94ca6b1de4d37975e',1,'glm']]], - ['uint32_5ft',['uint32_t',['../a00304.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]], - ['uint64',['uint64',['../a00263.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]], - ['uint64_5ft',['uint64_t',['../a00304.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]], - ['uint8',['uint8',['../a00263.html#gadde6aaee8457bee49c2a92621fe22b79',1,'glm']]], - ['uint8_5ft',['uint8_t',['../a00304.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]], - ['uintbitstofloat',['uintBitsToFloat',['../a00241.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &v)'],['../a00241.html#ga97f46b5f7b42fe44482e13356eb394ae',1,'glm::uintBitsToFloat(vec< L, uint, Q > const &v)']]], - ['ulp_2ehpp',['ulp.hpp',['../a00182.html',1,'']]], - ['umat2',['umat2',['../a00294.html#ga4cae85566f900debf930c41944b64691',1,'glm']]], - ['umat2x2',['umat2x2',['../a00294.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]], - ['umat2x3',['umat2x3',['../a00294.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]], - ['umat2x4',['umat2x4',['../a00294.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]], - ['umat3',['umat3',['../a00294.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]], - ['umat3x2',['umat3x2',['../a00294.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]], - ['umat3x3',['umat3x3',['../a00294.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]], - ['umat3x4',['umat3x4',['../a00294.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]], - ['umat4',['umat4',['../a00294.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]], - ['umat4x2',['umat4x2',['../a00294.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]], - ['umat4x3',['umat4x3',['../a00294.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]], - ['umat4x4',['umat4x4',['../a00294.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]], - ['umulextended',['umulExtended',['../a00370.html#ga732e2fb56db57ea541c7e5c92b7121be',1,'glm']]], - ['unpackdouble2x32',['unpackDouble2x32',['../a00372.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]], - ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00298.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]], - ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00298.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]], - ['unpackhalf',['unpackHalf',['../a00298.html#ga30d6b2f1806315bcd6047131f547d33b',1,'glm']]], - ['unpackhalf1x16',['unpackHalf1x16',['../a00298.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]], - ['unpackhalf2x16',['unpackHalf2x16',['../a00372.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]], - ['unpackhalf4x16',['unpackHalf4x16',['../a00298.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]], - ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00298.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]], - ['unpackint2x16',['unpackInt2x16',['../a00298.html#gaccde055882918a3175de82f4ca8b7d8e',1,'glm']]], - ['unpackint2x32',['unpackInt2x32',['../a00298.html#gab297c0bfd38433524791eb0584d8f08d',1,'glm']]], - ['unpackint2x8',['unpackInt2x8',['../a00298.html#gab0c59f1e259fca9e68adb2207a6b665e',1,'glm']]], - ['unpackint4x16',['unpackInt4x16',['../a00298.html#ga52c154a9b232b62c22517a700cc0c78c',1,'glm']]], - ['unpackint4x8',['unpackInt4x8',['../a00298.html#ga1cd8d2038cdd33a860801aa155a26221',1,'glm']]], - ['unpackrgbm',['unpackRGBM',['../a00298.html#ga5c1ec97894b05ea21a05aea4f0204a02',1,'glm']]], - ['unpacksnorm',['unpackSnorm',['../a00298.html#ga6d49b31e5c3f9df8e1f99ab62b999482',1,'glm']]], - ['unpacksnorm1x16',['unpackSnorm1x16',['../a00298.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]], - ['unpacksnorm1x8',['unpackSnorm1x8',['../a00298.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]], - ['unpacksnorm2x16',['unpackSnorm2x16',['../a00372.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]], - ['unpacksnorm2x8',['unpackSnorm2x8',['../a00298.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]], - ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00298.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]], - ['unpacksnorm4x16',['unpackSnorm4x16',['../a00298.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]], - ['unpacksnorm4x8',['unpackSnorm4x8',['../a00372.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]], - ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00298.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]], - ['unpackuint2x16',['unpackUint2x16',['../a00298.html#ga035bbbeab7ec2b28c0529757395b645b',1,'glm']]], - ['unpackuint2x32',['unpackUint2x32',['../a00298.html#gaf942ff11b65e83eb5f77e68329ebc6ab',1,'glm']]], - ['unpackuint2x8',['unpackUint2x8',['../a00298.html#gaa7600a6c71784b637a410869d2a5adcd',1,'glm']]], - ['unpackuint4x16',['unpackUint4x16',['../a00298.html#gab173834ef14cfc23a96a959f3ff4b8dc',1,'glm']]], - ['unpackuint4x8',['unpackUint4x8',['../a00298.html#gaf6dc0e4341810a641c7ed08f10e335d1',1,'glm']]], - ['unpackunorm',['unpackUnorm',['../a00298.html#ga3e6ac9178b59f0b1b2f7599f2183eb7f',1,'glm']]], - ['unpackunorm1x16',['unpackUnorm1x16',['../a00298.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]], - ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00298.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]], - ['unpackunorm1x8',['unpackUnorm1x8',['../a00298.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]], - ['unpackunorm2x16',['unpackUnorm2x16',['../a00372.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]], - ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00298.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]], - ['unpackunorm2x4',['unpackUnorm2x4',['../a00298.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]], - ['unpackunorm2x8',['unpackUnorm2x8',['../a00298.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]], - ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00298.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]], - ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00298.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]], - ['unpackunorm4x16',['unpackUnorm4x16',['../a00298.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]], - ['unpackunorm4x4',['unpackUnorm4x4',['../a00298.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]], - ['unpackunorm4x8',['unpackUnorm4x8',['../a00372.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]], - ['unproject',['unProject',['../a00245.html#ga36641e5d60f994e01c3d8f56b10263d2',1,'glm']]], - ['unprojectno',['unProjectNO',['../a00245.html#gae089ba9fc150ff69c252a20e508857b5',1,'glm']]], - ['unprojectzo',['unProjectZO',['../a00245.html#gade5136413ce530f8e606124d570fba32',1,'glm']]], - ['uround',['uround',['../a00292.html#ga6715b9d573972a0f7763d30d45bcaec4',1,'glm']]], - ['usubborrow',['usubBorrow',['../a00370.html#gae3316ba1229ad9b9f09480833321b053',1,'glm']]], - ['uvec1',['uvec1',['../a00276.html#gac3bdd96183d23876c58a1424585fefe7',1,'glm']]], - ['uvec2',['uvec2',['../a00281.html#ga2f6d9ec3ae14813ade37d6aee3715fdb',1,'glm']]], - ['uvec3',['uvec3',['../a00281.html#ga3d3e55874babd4bf93baa7bbc83ae418',1,'glm']]], - ['uvec4',['uvec4',['../a00281.html#gaa57e96bb337867329d5f43bcc27c1095',1,'glm']]] -]; +var searchData= +[ + ['u16',['u16',['../a00304.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]], + ['u16vec1',['u16vec1',['../a00304.html#ga08c05ba8ffb19f5d14ab584e1e9e9ee5',1,'glm::u16vec1()'],['../a00346.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]], + ['u16vec2',['u16vec2',['../a00304.html#ga2a78447eb9d66a114b193f4a25899c16',1,'glm']]], + ['u16vec3',['u16vec3',['../a00304.html#ga1c522ca821c27b862fe51cf4024b064b',1,'glm']]], + ['u16vec4',['u16vec4',['../a00304.html#ga529496d75775fb656a07993ea9af2450',1,'glm']]], + ['u32',['u32',['../a00304.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]], + ['u32vec1',['u32vec1',['../a00304.html#gae627372cfd5f20dd87db490387b71195',1,'glm::u32vec1()'],['../a00346.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]], + ['u32vec2',['u32vec2',['../a00304.html#ga2a266e46ee218d0c680f12b35c500cc0',1,'glm']]], + ['u32vec3',['u32vec3',['../a00304.html#gae267358ff2a41d156d97f5762630235a',1,'glm']]], + ['u32vec4',['u32vec4',['../a00304.html#ga31cef34e4cd04840c54741ff2f7005f0',1,'glm']]], + ['u64',['u64',['../a00304.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]], + ['u64vec1',['u64vec1',['../a00304.html#gaf09f3ca4b671a4a4f84505eb4cc865fd',1,'glm::u64vec1()'],['../a00346.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]], + ['u64vec2',['u64vec2',['../a00304.html#gaef3824ed4fe435a019c5b9dddf53fec5',1,'glm']]], + ['u64vec3',['u64vec3',['../a00304.html#ga489b89ba93d4f7b3934df78debc52276',1,'glm']]], + ['u64vec4',['u64vec4',['../a00304.html#ga3945dd6515d4498cb603e65ff867ab03',1,'glm']]], + ['u8',['u8',['../a00304.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]], + ['u8vec1',['u8vec1',['../a00304.html#ga29b349e037f0b24320b4548a143daee2',1,'glm::u8vec1()'],['../a00346.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]], + ['u8vec2',['u8vec2',['../a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611',1,'glm']]], + ['u8vec3',['u8vec3',['../a00304.html#ga7c5706f6bbe5282e5598acf7e7b377e2',1,'glm']]], + ['u8vec4',['u8vec4',['../a00304.html#ga20779a61de2fd526a17f12fe53ec46b1',1,'glm']]], + ['uaddcarry',['uaddCarry',['../a00370.html#gaedcec48743632dff6786bcc492074b1b',1,'glm']]], + ['uint16',['uint16',['../a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e',1,'glm']]], + ['uint16_5ft',['uint16_t',['../a00304.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]], + ['uint32',['uint32',['../a00263.html#ga1134b580f8da4de94ca6b1de4d37975e',1,'glm']]], + ['uint32_5ft',['uint32_t',['../a00304.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]], + ['uint64',['uint64',['../a00263.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]], + ['uint64_5ft',['uint64_t',['../a00304.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]], + ['uint8',['uint8',['../a00263.html#gadde6aaee8457bee49c2a92621fe22b79',1,'glm']]], + ['uint8_5ft',['uint8_t',['../a00304.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]], + ['uintbitstofloat',['uintBitsToFloat',['../a00241.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &v)'],['../a00241.html#ga97f46b5f7b42fe44482e13356eb394ae',1,'glm::uintBitsToFloat(vec< L, uint, Q > const &v)']]], + ['ulp_2ehpp',['ulp.hpp',['../a00182.html',1,'']]], + ['umat2',['umat2',['../a00294.html#ga4cae85566f900debf930c41944b64691',1,'glm']]], + ['umat2x2',['umat2x2',['../a00294.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]], + ['umat2x3',['umat2x3',['../a00294.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]], + ['umat2x4',['umat2x4',['../a00294.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]], + ['umat3',['umat3',['../a00294.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]], + ['umat3x2',['umat3x2',['../a00294.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]], + ['umat3x3',['umat3x3',['../a00294.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]], + ['umat3x4',['umat3x4',['../a00294.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]], + ['umat4',['umat4',['../a00294.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]], + ['umat4x2',['umat4x2',['../a00294.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]], + ['umat4x3',['umat4x3',['../a00294.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]], + ['umat4x4',['umat4x4',['../a00294.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]], + ['umulextended',['umulExtended',['../a00370.html#ga732e2fb56db57ea541c7e5c92b7121be',1,'glm']]], + ['unpackdouble2x32',['unpackDouble2x32',['../a00372.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]], + ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00298.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]], + ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00298.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]], + ['unpackhalf',['unpackHalf',['../a00298.html#ga30d6b2f1806315bcd6047131f547d33b',1,'glm']]], + ['unpackhalf1x16',['unpackHalf1x16',['../a00298.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]], + ['unpackhalf2x16',['unpackHalf2x16',['../a00372.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]], + ['unpackhalf4x16',['unpackHalf4x16',['../a00298.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]], + ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00298.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]], + ['unpackint2x16',['unpackInt2x16',['../a00298.html#gaccde055882918a3175de82f4ca8b7d8e',1,'glm']]], + ['unpackint2x32',['unpackInt2x32',['../a00298.html#gab297c0bfd38433524791eb0584d8f08d',1,'glm']]], + ['unpackint2x8',['unpackInt2x8',['../a00298.html#gab0c59f1e259fca9e68adb2207a6b665e',1,'glm']]], + ['unpackint4x16',['unpackInt4x16',['../a00298.html#ga52c154a9b232b62c22517a700cc0c78c',1,'glm']]], + ['unpackint4x8',['unpackInt4x8',['../a00298.html#ga1cd8d2038cdd33a860801aa155a26221',1,'glm']]], + ['unpackrgbm',['unpackRGBM',['../a00298.html#ga5c1ec97894b05ea21a05aea4f0204a02',1,'glm']]], + ['unpacksnorm',['unpackSnorm',['../a00298.html#ga6d49b31e5c3f9df8e1f99ab62b999482',1,'glm']]], + ['unpacksnorm1x16',['unpackSnorm1x16',['../a00298.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]], + ['unpacksnorm1x8',['unpackSnorm1x8',['../a00298.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]], + ['unpacksnorm2x16',['unpackSnorm2x16',['../a00372.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]], + ['unpacksnorm2x8',['unpackSnorm2x8',['../a00298.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]], + ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00298.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]], + ['unpacksnorm4x16',['unpackSnorm4x16',['../a00298.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]], + ['unpacksnorm4x8',['unpackSnorm4x8',['../a00372.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]], + ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00298.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]], + ['unpackuint2x16',['unpackUint2x16',['../a00298.html#ga035bbbeab7ec2b28c0529757395b645b',1,'glm']]], + ['unpackuint2x32',['unpackUint2x32',['../a00298.html#gaf942ff11b65e83eb5f77e68329ebc6ab',1,'glm']]], + ['unpackuint2x8',['unpackUint2x8',['../a00298.html#gaa7600a6c71784b637a410869d2a5adcd',1,'glm']]], + ['unpackuint4x16',['unpackUint4x16',['../a00298.html#gab173834ef14cfc23a96a959f3ff4b8dc',1,'glm']]], + ['unpackuint4x8',['unpackUint4x8',['../a00298.html#gaf6dc0e4341810a641c7ed08f10e335d1',1,'glm']]], + ['unpackunorm',['unpackUnorm',['../a00298.html#ga3e6ac9178b59f0b1b2f7599f2183eb7f',1,'glm']]], + ['unpackunorm1x16',['unpackUnorm1x16',['../a00298.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]], + ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00298.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]], + ['unpackunorm1x8',['unpackUnorm1x8',['../a00298.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]], + ['unpackunorm2x16',['unpackUnorm2x16',['../a00372.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]], + ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00298.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]], + ['unpackunorm2x4',['unpackUnorm2x4',['../a00298.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]], + ['unpackunorm2x8',['unpackUnorm2x8',['../a00298.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]], + ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00298.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]], + ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00298.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]], + ['unpackunorm4x16',['unpackUnorm4x16',['../a00298.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]], + ['unpackunorm4x4',['unpackUnorm4x4',['../a00298.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]], + ['unpackunorm4x8',['unpackUnorm4x8',['../a00372.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]], + ['unproject',['unProject',['../a00245.html#ga36641e5d60f994e01c3d8f56b10263d2',1,'glm']]], + ['unprojectno',['unProjectNO',['../a00245.html#gae089ba9fc150ff69c252a20e508857b5',1,'glm']]], + ['unprojectzo',['unProjectZO',['../a00245.html#gade5136413ce530f8e606124d570fba32',1,'glm']]], + ['uround',['uround',['../a00292.html#ga6715b9d573972a0f7763d30d45bcaec4',1,'glm']]], + ['usubborrow',['usubBorrow',['../a00370.html#gae3316ba1229ad9b9f09480833321b053',1,'glm']]], + ['uvec1',['uvec1',['../a00276.html#gac3bdd96183d23876c58a1424585fefe7',1,'glm']]], + ['uvec2',['uvec2',['../a00281.html#ga2f6d9ec3ae14813ade37d6aee3715fdb',1,'glm']]], + ['uvec3',['uvec3',['../a00281.html#ga3d3e55874babd4bf93baa7bbc83ae418',1,'glm']]], + ['uvec4',['uvec4',['../a00281.html#gaa57e96bb337867329d5f43bcc27c1095',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_13.html b/external/include/glm-0.9.9.8/doc/api/search/all_13.html index f57925b753..cb938b917b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_13.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_13.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_13.js b/external/include/glm-0.9.9.8/doc/api/search/all_13.js index f97cd79496..22d14f564c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_13.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_13.js @@ -1,62 +1,62 @@ -var searchData= -[ - ['vector_20relational_20functions',['Vector Relational Functions',['../a00374.html',1,'']]], - ['vector_20types',['Vector types',['../a00281.html',1,'']]], - ['vector_20types_20with_20precision_20qualifiers',['Vector types with precision qualifiers',['../a00282.html',1,'']]], - ['value_5fptr',['value_ptr',['../a00305.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]], - ['vec1',['vec1',['../a00270.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]], - ['vec1_2ehpp',['vec1.hpp',['../a00183.html',1,'']]], - ['vec2',['vec2',['../a00281.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]], - ['vec2_2ehpp',['vec2.hpp',['../a00184.html',1,'']]], - ['vec3',['vec3',['../a00281.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]], - ['vec3_2ehpp',['vec3.hpp',['../a00185.html',1,'']]], - ['vec4',['vec4',['../a00281.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]], - ['vec4_2ehpp',['vec4.hpp',['../a00186.html',1,'']]], - ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00187.html',1,'']]], - ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00188.html',1,'']]], - ['vector_5fbool1_2ehpp',['vector_bool1.hpp',['../a00189.html',1,'']]], - ['vector_5fbool1_5fprecision_2ehpp',['vector_bool1_precision.hpp',['../a00190.html',1,'']]], - ['vector_5fbool2_2ehpp',['vector_bool2.hpp',['../a00191.html',1,'']]], - ['vector_5fbool2_5fprecision_2ehpp',['vector_bool2_precision.hpp',['../a00192.html',1,'']]], - ['vector_5fbool3_2ehpp',['vector_bool3.hpp',['../a00193.html',1,'']]], - ['vector_5fbool3_5fprecision_2ehpp',['vector_bool3_precision.hpp',['../a00194.html',1,'']]], - ['vector_5fbool4_2ehpp',['vector_bool4.hpp',['../a00195.html',1,'']]], - ['vector_5fbool4_5fprecision_2ehpp',['vector_bool4_precision.hpp',['../a00196.html',1,'']]], - ['vector_5fcommon_2ehpp',['vector_common.hpp',['../a00197.html',1,'']]], - ['vector_5fdouble1_2ehpp',['vector_double1.hpp',['../a00198.html',1,'']]], - ['vector_5fdouble1_5fprecision_2ehpp',['vector_double1_precision.hpp',['../a00199.html',1,'']]], - ['vector_5fdouble2_2ehpp',['vector_double2.hpp',['../a00200.html',1,'']]], - ['vector_5fdouble2_5fprecision_2ehpp',['vector_double2_precision.hpp',['../a00201.html',1,'']]], - ['vector_5fdouble3_2ehpp',['vector_double3.hpp',['../a00202.html',1,'']]], - ['vector_5fdouble3_5fprecision_2ehpp',['vector_double3_precision.hpp',['../a00203.html',1,'']]], - ['vector_5fdouble4_2ehpp',['vector_double4.hpp',['../a00204.html',1,'']]], - ['vector_5fdouble4_5fprecision_2ehpp',['vector_double4_precision.hpp',['../a00205.html',1,'']]], - ['vector_5ffloat1_2ehpp',['vector_float1.hpp',['../a00206.html',1,'']]], - ['vector_5ffloat1_5fprecision_2ehpp',['vector_float1_precision.hpp',['../a00207.html',1,'']]], - ['vector_5ffloat2_2ehpp',['vector_float2.hpp',['../a00208.html',1,'']]], - ['vector_5ffloat2_5fprecision_2ehpp',['vector_float2_precision.hpp',['../a00209.html',1,'']]], - ['vector_5ffloat3_2ehpp',['vector_float3.hpp',['../a00210.html',1,'']]], - ['vector_5ffloat3_5fprecision_2ehpp',['vector_float3_precision.hpp',['../a00211.html',1,'']]], - ['vector_5ffloat4_2ehpp',['vector_float4.hpp',['../a00212.html',1,'']]], - ['vector_5ffloat4_5fprecision_2ehpp',['vector_float4_precision.hpp',['../a00213.html',1,'']]], - ['vector_5fint1_2ehpp',['vector_int1.hpp',['../a00214.html',1,'']]], - ['vector_5fint1_5fprecision_2ehpp',['vector_int1_precision.hpp',['../a00215.html',1,'']]], - ['vector_5fint2_2ehpp',['vector_int2.hpp',['../a00216.html',1,'']]], - ['vector_5fint2_5fprecision_2ehpp',['vector_int2_precision.hpp',['../a00217.html',1,'']]], - ['vector_5fint3_2ehpp',['vector_int3.hpp',['../a00218.html',1,'']]], - ['vector_5fint3_5fprecision_2ehpp',['vector_int3_precision.hpp',['../a00219.html',1,'']]], - ['vector_5fint4_2ehpp',['vector_int4.hpp',['../a00220.html',1,'']]], - ['vector_5fint4_5fprecision_2ehpp',['vector_int4_precision.hpp',['../a00221.html',1,'']]], - ['vector_5finteger_2ehpp',['vector_integer.hpp',['../a00222.html',1,'']]], - ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00223.html',1,'']]], - ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00225.html',1,'']]], - ['vector_5fuint1_2ehpp',['vector_uint1.hpp',['../a00226.html',1,'']]], - ['vector_5fuint1_5fprecision_2ehpp',['vector_uint1_precision.hpp',['../a00227.html',1,'']]], - ['vector_5fuint2_2ehpp',['vector_uint2.hpp',['../a00228.html',1,'']]], - ['vector_5fuint2_5fprecision_2ehpp',['vector_uint2_precision.hpp',['../a00229.html',1,'']]], - ['vector_5fuint3_2ehpp',['vector_uint3.hpp',['../a00230.html',1,'']]], - ['vector_5fuint3_5fprecision_2ehpp',['vector_uint3_precision.hpp',['../a00231.html',1,'']]], - ['vector_5fuint4_2ehpp',['vector_uint4.hpp',['../a00232.html',1,'']]], - ['vector_5fuint4_5fprecision_2ehpp',['vector_uint4_precision.hpp',['../a00233.html',1,'']]], - ['vector_5fulp_2ehpp',['vector_ulp.hpp',['../a00234.html',1,'']]] -]; +var searchData= +[ + ['vector_20relational_20functions',['Vector Relational Functions',['../a00374.html',1,'']]], + ['vector_20types',['Vector types',['../a00281.html',1,'']]], + ['vector_20types_20with_20precision_20qualifiers',['Vector types with precision qualifiers',['../a00282.html',1,'']]], + ['value_5fptr',['value_ptr',['../a00305.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]], + ['vec1',['vec1',['../a00270.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]], + ['vec1_2ehpp',['vec1.hpp',['../a00183.html',1,'']]], + ['vec2',['vec2',['../a00281.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]], + ['vec2_2ehpp',['vec2.hpp',['../a00184.html',1,'']]], + ['vec3',['vec3',['../a00281.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]], + ['vec3_2ehpp',['vec3.hpp',['../a00185.html',1,'']]], + ['vec4',['vec4',['../a00281.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]], + ['vec4_2ehpp',['vec4.hpp',['../a00186.html',1,'']]], + ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00187.html',1,'']]], + ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00188.html',1,'']]], + ['vector_5fbool1_2ehpp',['vector_bool1.hpp',['../a00189.html',1,'']]], + ['vector_5fbool1_5fprecision_2ehpp',['vector_bool1_precision.hpp',['../a00190.html',1,'']]], + ['vector_5fbool2_2ehpp',['vector_bool2.hpp',['../a00191.html',1,'']]], + ['vector_5fbool2_5fprecision_2ehpp',['vector_bool2_precision.hpp',['../a00192.html',1,'']]], + ['vector_5fbool3_2ehpp',['vector_bool3.hpp',['../a00193.html',1,'']]], + ['vector_5fbool3_5fprecision_2ehpp',['vector_bool3_precision.hpp',['../a00194.html',1,'']]], + ['vector_5fbool4_2ehpp',['vector_bool4.hpp',['../a00195.html',1,'']]], + ['vector_5fbool4_5fprecision_2ehpp',['vector_bool4_precision.hpp',['../a00196.html',1,'']]], + ['vector_5fcommon_2ehpp',['vector_common.hpp',['../a00197.html',1,'']]], + ['vector_5fdouble1_2ehpp',['vector_double1.hpp',['../a00198.html',1,'']]], + ['vector_5fdouble1_5fprecision_2ehpp',['vector_double1_precision.hpp',['../a00199.html',1,'']]], + ['vector_5fdouble2_2ehpp',['vector_double2.hpp',['../a00200.html',1,'']]], + ['vector_5fdouble2_5fprecision_2ehpp',['vector_double2_precision.hpp',['../a00201.html',1,'']]], + ['vector_5fdouble3_2ehpp',['vector_double3.hpp',['../a00202.html',1,'']]], + ['vector_5fdouble3_5fprecision_2ehpp',['vector_double3_precision.hpp',['../a00203.html',1,'']]], + ['vector_5fdouble4_2ehpp',['vector_double4.hpp',['../a00204.html',1,'']]], + ['vector_5fdouble4_5fprecision_2ehpp',['vector_double4_precision.hpp',['../a00205.html',1,'']]], + ['vector_5ffloat1_2ehpp',['vector_float1.hpp',['../a00206.html',1,'']]], + ['vector_5ffloat1_5fprecision_2ehpp',['vector_float1_precision.hpp',['../a00207.html',1,'']]], + ['vector_5ffloat2_2ehpp',['vector_float2.hpp',['../a00208.html',1,'']]], + ['vector_5ffloat2_5fprecision_2ehpp',['vector_float2_precision.hpp',['../a00209.html',1,'']]], + ['vector_5ffloat3_2ehpp',['vector_float3.hpp',['../a00210.html',1,'']]], + ['vector_5ffloat3_5fprecision_2ehpp',['vector_float3_precision.hpp',['../a00211.html',1,'']]], + ['vector_5ffloat4_2ehpp',['vector_float4.hpp',['../a00212.html',1,'']]], + ['vector_5ffloat4_5fprecision_2ehpp',['vector_float4_precision.hpp',['../a00213.html',1,'']]], + ['vector_5fint1_2ehpp',['vector_int1.hpp',['../a00214.html',1,'']]], + ['vector_5fint1_5fprecision_2ehpp',['vector_int1_precision.hpp',['../a00215.html',1,'']]], + ['vector_5fint2_2ehpp',['vector_int2.hpp',['../a00216.html',1,'']]], + ['vector_5fint2_5fprecision_2ehpp',['vector_int2_precision.hpp',['../a00217.html',1,'']]], + ['vector_5fint3_2ehpp',['vector_int3.hpp',['../a00218.html',1,'']]], + ['vector_5fint3_5fprecision_2ehpp',['vector_int3_precision.hpp',['../a00219.html',1,'']]], + ['vector_5fint4_2ehpp',['vector_int4.hpp',['../a00220.html',1,'']]], + ['vector_5fint4_5fprecision_2ehpp',['vector_int4_precision.hpp',['../a00221.html',1,'']]], + ['vector_5finteger_2ehpp',['vector_integer.hpp',['../a00222.html',1,'']]], + ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00223.html',1,'']]], + ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00225.html',1,'']]], + ['vector_5fuint1_2ehpp',['vector_uint1.hpp',['../a00226.html',1,'']]], + ['vector_5fuint1_5fprecision_2ehpp',['vector_uint1_precision.hpp',['../a00227.html',1,'']]], + ['vector_5fuint2_2ehpp',['vector_uint2.hpp',['../a00228.html',1,'']]], + ['vector_5fuint2_5fprecision_2ehpp',['vector_uint2_precision.hpp',['../a00229.html',1,'']]], + ['vector_5fuint3_2ehpp',['vector_uint3.hpp',['../a00230.html',1,'']]], + ['vector_5fuint3_5fprecision_2ehpp',['vector_uint3_precision.hpp',['../a00231.html',1,'']]], + ['vector_5fuint4_2ehpp',['vector_uint4.hpp',['../a00232.html',1,'']]], + ['vector_5fuint4_5fprecision_2ehpp',['vector_uint4_precision.hpp',['../a00233.html',1,'']]], + ['vector_5fulp_2ehpp',['vector_ulp.hpp',['../a00234.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_14.html b/external/include/glm-0.9.9.8/doc/api/search/all_14.html index 570b65b513..2fcfb13a03 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_14.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_14.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_14.js b/external/include/glm-0.9.9.8/doc/api/search/all_14.js index 0dd1d3caea..e06e2e2b6d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_14.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_14.js @@ -1,6 +1,6 @@ -var searchData= -[ - ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]], - ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]], - ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] -]; +var searchData= +[ + ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]], + ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]], + ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_15.html b/external/include/glm-0.9.9.8/doc/api/search/all_15.html index 2a0c0577b8..a31c6e8f79 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_15.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_15.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_15.js b/external/include/glm-0.9.9.8/doc/api/search/all_15.js index 41dca1d760..4153a6e0f5 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_15.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_15.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], - ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], - ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], - ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] -]; +var searchData= +[ + ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], + ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], + ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], + ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_16.html b/external/include/glm-0.9.9.8/doc/api/search/all_16.html index 338203e319..6343dec5f3 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_16.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_16.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_16.js b/external/include/glm-0.9.9.8/doc/api/search/all_16.js index 0d51cc5374..66a5217081 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_16.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_16.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] -]; +var searchData= +[ + ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_2.html b/external/include/glm-0.9.9.8/doc/api/search/all_2.html index 9786ba6e61..93962b7243 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_2.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_2.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_2.js b/external/include/glm-0.9.9.8/doc/api/search/all_2.js index 47dd6c5e70..24ec01ad31 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_2.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_2.js @@ -1,51 +1,51 @@ -var searchData= -[ - ['catmullrom',['catmullRom',['../a00358.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]], - ['ceil',['ceil',['../a00241.html#gafb9d2a645a23aca12d4d6de0104b7657',1,'glm']]], - ['ceilmultiple',['ceilMultiple',['../a00302.html#ga1d89ac88582aaf4d5dfa5feb4a376fd4',1,'glm::ceilMultiple(genType v, genType Multiple)'],['../a00302.html#gab77fdcc13f8e92d2e0b1b7d7aeab8e9d',1,'glm::ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00302.html#ga5c3ef36ae32aa4271f1544f92bd578b6',1,'glm::ceilPowerOfTwo(genIUType v)'],['../a00302.html#gab53d4a97c0d3e297be5f693cdfdfe5d2',1,'glm::ceilPowerOfTwo(vec< L, T, Q > const &v)']]], - ['circulareasein',['circularEaseIn',['../a00318.html#ga34508d4b204a321ec26d6086aa047997',1,'glm']]], - ['circulareaseinout',['circularEaseInOut',['../a00318.html#ga0c1027637a5b02d4bb3612aa12599d69',1,'glm']]], - ['circulareaseout',['circularEaseOut',['../a00318.html#ga26fefde9ced9b72745fe21f1a3fe8da7',1,'glm']]], - ['circularrand',['circularRand',['../a00300.html#ga9dd05c36025088fae25b97c869e88517',1,'glm']]], - ['clamp',['clamp',['../a00241.html#ga7cd77683da6361e297c56443fc70806d',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00241.html#gafba2e0674deb5953878d89483cd6323d',1,'glm::clamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d',1,'glm::clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)'],['../a00369.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &Texcoord)']]], - ['closebounded',['closeBounded',['../a00314.html#gab7d89c14c48ad01f720fb5daf8813161',1,'glm']]], - ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]], - ['closestpointonline',['closestPointOnLine',['../a00310.html#ga36529c278ef716986151d58d151d697d',1,'glm::closestPointOnLine(vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)'],['../a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0',1,'glm::closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)']]], - ['colmajor2',['colMajor2',['../a00338.html#gaaff72f11286e59a4a88ed21a347f284c',1,'glm::colMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gafc25fd44196c92b1397b127aec1281ab',1,'glm::colMajor2(mat< 2, 2, T, Q > const &m)']]], - ['colmajor3',['colMajor3',['../a00338.html#ga1e25b72b085087740c92f5c70f3b051f',1,'glm::colMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#ga86bd0656e787bb7f217607572590af27',1,'glm::colMajor3(mat< 3, 3, T, Q > const &m)']]], - ['colmajor4',['colMajor4',['../a00338.html#gaf4aa6c7e17bfce41a6c13bf6469fab05',1,'glm::colMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gaf3f9511c366c20ba2e4a64c9e4cec2b3',1,'glm::colMajor4(mat< 4, 4, T, Q > const &m)']]], - ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]], - ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]], - ['column',['column',['../a00293.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &m, length_t index)'],['../a00293.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &m, length_t index, typename genType::col_type const &x)']]], - ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]], - ['compadd',['compAdd',['../a00316.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]], - ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]], - ['compmax',['compMax',['../a00316.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]], - ['compmin',['compMin',['../a00316.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]], - ['compmul',['compMul',['../a00316.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]], - ['compnormalize',['compNormalize',['../a00316.html#ga8f2b81ada8515875e58cb1667b6b9908',1,'glm']]], - ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]], - ['compscale',['compScale',['../a00316.html#ga80abc2980d65d675f435d178c36880eb',1,'glm']]], - ['conjugate',['conjugate',['../a00248.html#ga10d7bda73201788ac2ab28cd8d0d409b',1,'glm']]], - ['constants_2ehpp',['constants.hpp',['../a00021.html',1,'']]], - ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48',1,'glm']]], - ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00311.html#ga5265386fc3ac29e4c580d37ed470859c',1,'glm']]], - ['convertlinearsrgbtod50xyz',['convertLinearSRGBToD50XYZ',['../a00311.html#ga1522ba180e3d83d554a734056da031f9',1,'glm']]], - ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00311.html#gaf9e130d9d4ccf51cc99317de7449f369',1,'glm']]], - ['convertlineartosrgb',['convertLinearToSRGB',['../a00289.html#ga42239e7b3da900f7ef37cec7e2476579',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear)'],['../a00289.html#gaace0a21167d13d26116c283009af57f6',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)']]], - ['convertsrgbtolinear',['convertSRGBToLinear',['../a00289.html#ga16c798b7a226b2c3079dedc55083d187',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB)'],['../a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)']]], - ['core_20features',['Core features',['../a00280.html',1,'']]], - ['common_20functions',['Common functions',['../a00241.html',1,'']]], - ['cos',['cos',['../a00373.html#ga6a41efc740e3b3c937447d3a6284130e',1,'glm']]], - ['cosh',['cosh',['../a00373.html#ga4e260e372742c5f517aca196cf1e62b3',1,'glm']]], - ['cot',['cot',['../a00301.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]], - ['coth',['coth',['../a00301.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]], - ['cross',['cross',['../a00254.html#ga755beaa929c75751dee646cccba37e4c',1,'glm::cross(qua< T, Q > const &q1, qua< T, Q > const &q2)'],['../a00279.html#gaeeec0794212fe84fc9d261de067c9587',1,'glm::cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00322.html#gac36e72b934ea6a9dd313772d7e78fa93',1,'glm::cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)'],['../a00352.html#ga2f32f970411c44cdd38bb98960198385',1,'glm::cross(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#ga9f5f77255756e5668dfee7f0d07ed021',1,'glm::cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)']]], - ['csc',['csc',['../a00301.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]], - ['csch',['csch',['../a00301.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]], - ['cubic',['cubic',['../a00358.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]], - ['cubiceasein',['cubicEaseIn',['../a00318.html#gaff52f746102b94864d105563ba8895ae',1,'glm']]], - ['cubiceaseinout',['cubicEaseInOut',['../a00318.html#ga55134072b42d75452189321d4a2ad91c',1,'glm']]], - ['cubiceaseout',['cubicEaseOut',['../a00318.html#ga40d746385d8bcc5973f5bc6a2340ca91',1,'glm']]] -]; +var searchData= +[ + ['catmullrom',['catmullRom',['../a00358.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]], + ['ceil',['ceil',['../a00241.html#gafb9d2a645a23aca12d4d6de0104b7657',1,'glm']]], + ['ceilmultiple',['ceilMultiple',['../a00302.html#ga1d89ac88582aaf4d5dfa5feb4a376fd4',1,'glm::ceilMultiple(genType v, genType Multiple)'],['../a00302.html#gab77fdcc13f8e92d2e0b1b7d7aeab8e9d',1,'glm::ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00302.html#ga5c3ef36ae32aa4271f1544f92bd578b6',1,'glm::ceilPowerOfTwo(genIUType v)'],['../a00302.html#gab53d4a97c0d3e297be5f693cdfdfe5d2',1,'glm::ceilPowerOfTwo(vec< L, T, Q > const &v)']]], + ['circulareasein',['circularEaseIn',['../a00318.html#ga34508d4b204a321ec26d6086aa047997',1,'glm']]], + ['circulareaseinout',['circularEaseInOut',['../a00318.html#ga0c1027637a5b02d4bb3612aa12599d69',1,'glm']]], + ['circulareaseout',['circularEaseOut',['../a00318.html#ga26fefde9ced9b72745fe21f1a3fe8da7',1,'glm']]], + ['circularrand',['circularRand',['../a00300.html#ga9dd05c36025088fae25b97c869e88517',1,'glm']]], + ['clamp',['clamp',['../a00241.html#ga7cd77683da6361e297c56443fc70806d',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00241.html#gafba2e0674deb5953878d89483cd6323d',1,'glm::clamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d',1,'glm::clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)'],['../a00369.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &Texcoord)']]], + ['closebounded',['closeBounded',['../a00314.html#gab7d89c14c48ad01f720fb5daf8813161',1,'glm']]], + ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]], + ['closestpointonline',['closestPointOnLine',['../a00310.html#ga36529c278ef716986151d58d151d697d',1,'glm::closestPointOnLine(vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)'],['../a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0',1,'glm::closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)']]], + ['colmajor2',['colMajor2',['../a00338.html#gaaff72f11286e59a4a88ed21a347f284c',1,'glm::colMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gafc25fd44196c92b1397b127aec1281ab',1,'glm::colMajor2(mat< 2, 2, T, Q > const &m)']]], + ['colmajor3',['colMajor3',['../a00338.html#ga1e25b72b085087740c92f5c70f3b051f',1,'glm::colMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#ga86bd0656e787bb7f217607572590af27',1,'glm::colMajor3(mat< 3, 3, T, Q > const &m)']]], + ['colmajor4',['colMajor4',['../a00338.html#gaf4aa6c7e17bfce41a6c13bf6469fab05',1,'glm::colMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gaf3f9511c366c20ba2e4a64c9e4cec2b3',1,'glm::colMajor4(mat< 4, 4, T, Q > const &m)']]], + ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]], + ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]], + ['column',['column',['../a00293.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &m, length_t index)'],['../a00293.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &m, length_t index, typename genType::col_type const &x)']]], + ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]], + ['compadd',['compAdd',['../a00316.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]], + ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]], + ['compmax',['compMax',['../a00316.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]], + ['compmin',['compMin',['../a00316.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]], + ['compmul',['compMul',['../a00316.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]], + ['compnormalize',['compNormalize',['../a00316.html#ga8f2b81ada8515875e58cb1667b6b9908',1,'glm']]], + ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]], + ['compscale',['compScale',['../a00316.html#ga80abc2980d65d675f435d178c36880eb',1,'glm']]], + ['conjugate',['conjugate',['../a00248.html#ga10d7bda73201788ac2ab28cd8d0d409b',1,'glm']]], + ['constants_2ehpp',['constants.hpp',['../a00021.html',1,'']]], + ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48',1,'glm']]], + ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00311.html#ga5265386fc3ac29e4c580d37ed470859c',1,'glm']]], + ['convertlinearsrgbtod50xyz',['convertLinearSRGBToD50XYZ',['../a00311.html#ga1522ba180e3d83d554a734056da031f9',1,'glm']]], + ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00311.html#gaf9e130d9d4ccf51cc99317de7449f369',1,'glm']]], + ['convertlineartosrgb',['convertLinearToSRGB',['../a00289.html#ga42239e7b3da900f7ef37cec7e2476579',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear)'],['../a00289.html#gaace0a21167d13d26116c283009af57f6',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)']]], + ['convertsrgbtolinear',['convertSRGBToLinear',['../a00289.html#ga16c798b7a226b2c3079dedc55083d187',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB)'],['../a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)']]], + ['core_20features',['Core features',['../a00280.html',1,'']]], + ['common_20functions',['Common functions',['../a00241.html',1,'']]], + ['cos',['cos',['../a00373.html#ga6a41efc740e3b3c937447d3a6284130e',1,'glm']]], + ['cosh',['cosh',['../a00373.html#ga4e260e372742c5f517aca196cf1e62b3',1,'glm']]], + ['cot',['cot',['../a00301.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]], + ['coth',['coth',['../a00301.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]], + ['cross',['cross',['../a00254.html#ga755beaa929c75751dee646cccba37e4c',1,'glm::cross(qua< T, Q > const &q1, qua< T, Q > const &q2)'],['../a00279.html#gaeeec0794212fe84fc9d261de067c9587',1,'glm::cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00322.html#gac36e72b934ea6a9dd313772d7e78fa93',1,'glm::cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)'],['../a00352.html#ga2f32f970411c44cdd38bb98960198385',1,'glm::cross(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#ga9f5f77255756e5668dfee7f0d07ed021',1,'glm::cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)']]], + ['csc',['csc',['../a00301.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]], + ['csch',['csch',['../a00301.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]], + ['cubic',['cubic',['../a00358.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]], + ['cubiceasein',['cubicEaseIn',['../a00318.html#gaff52f746102b94864d105563ba8895ae',1,'glm']]], + ['cubiceaseinout',['cubicEaseInOut',['../a00318.html#ga55134072b42d75452189321d4a2ad91c',1,'glm']]], + ['cubiceaseout',['cubicEaseOut',['../a00318.html#ga40d746385d8bcc5973f5bc6a2340ca91',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_3.html b/external/include/glm-0.9.9.8/doc/api/search/all_3.html index e85b95cf03..679f93ca9d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_3.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_3.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_3.js b/external/include/glm-0.9.9.8/doc/api/search/all_3.js index e39962401f..879655de0f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_3.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_3.js @@ -1,59 +1,59 @@ -var searchData= -[ - ['ddualquat',['ddualquat',['../a00317.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]], - ['decompose',['decompose',['../a00335.html#gac0e342656ba09a9bc97c57182ba73124',1,'glm']]], - ['degrees',['degrees',['../a00373.html#ga8faec9e303538065911ba8b3caf7326b',1,'glm']]], - ['derivedeuleranglex',['derivedEulerAngleX',['../a00319.html#ga994b8186b3b80d91cf90bc403164692f',1,'glm']]], - ['derivedeulerangley',['derivedEulerAngleY',['../a00319.html#ga0a4c56ecce7abcb69508ebe6313e9d10',1,'glm']]], - ['derivedeuleranglez',['derivedEulerAngleZ',['../a00319.html#gae8b397348201c42667be983ba3f344df',1,'glm']]], - ['determinant',['determinant',['../a00371.html#gad7928795124768e058f99dce270f5c8d',1,'glm']]], - ['diagonal2x2',['diagonal2x2',['../a00339.html#ga58a32a2beeb2478dae2a721368cdd4ac',1,'glm']]], - ['diagonal2x3',['diagonal2x3',['../a00339.html#gab69f900206a430e2875a5a073851e175',1,'glm']]], - ['diagonal2x4',['diagonal2x4',['../a00339.html#ga30b4dbfed60a919d66acc8a63bcdc549',1,'glm']]], - ['diagonal3x2',['diagonal3x2',['../a00339.html#ga832c805d5130d28ad76236958d15b47d',1,'glm']]], - ['diagonal3x3',['diagonal3x3',['../a00339.html#ga5487ff9cdbc8e04d594adef1bcb16ee0',1,'glm']]], - ['diagonal3x4',['diagonal3x4',['../a00339.html#gad7551139cff0c4208d27f0ad3437833e',1,'glm']]], - ['diagonal4x2',['diagonal4x2',['../a00339.html#gacb8969e6543ba775c6638161a37ac330',1,'glm']]], - ['diagonal4x3',['diagonal4x3',['../a00339.html#gae235def5049d6740f0028433f5e13f90',1,'glm']]], - ['diagonal4x4',['diagonal4x4',['../a00339.html#ga0b4cd8dea436791b072356231ee8578f',1,'glm']]], - ['diskrand',['diskRand',['../a00300.html#gaa0b18071f3f97dbf8bcf6f53c6fe5f73',1,'glm']]], - ['distance',['distance',['../a00279.html#gaa68de6c53e20dfb2dac2d20197562e3f',1,'glm']]], - ['distance2',['distance2',['../a00343.html#ga85660f1b79f66c09c7b5a6f80e68c89f',1,'glm']]], - ['dmat2',['dmat2',['../a00283.html#ga21dbd1f987775d7cc7607c139531c7e6',1,'glm']]], - ['dmat2x2',['dmat2x2',['../a00283.html#ga66b6a9af787e468a46dfe24189e87f9b',1,'glm']]], - ['dmat2x3',['dmat2x3',['../a00283.html#ga92cd388753d48e20de69ea2dbedf826a',1,'glm']]], - ['dmat2x4',['dmat2x4',['../a00283.html#gaef2198807e937072803ae0ae45e1965e',1,'glm']]], - ['dmat3',['dmat3',['../a00283.html#ga6f40aa56265b4b0ccad41b86802efe33',1,'glm']]], - ['dmat3x2',['dmat3x2',['../a00283.html#ga001e3e0638fbf8719788fc64c5b8cf39',1,'glm']]], - ['dmat3x3',['dmat3x3',['../a00283.html#ga970cb3306be25a5ca5db5a9456831228',1,'glm']]], - ['dmat3x4',['dmat3x4',['../a00283.html#ga0412a634d183587e6188e9b11869f8f4',1,'glm']]], - ['dmat4',['dmat4',['../a00283.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca',1,'glm']]], - ['dmat4x2',['dmat4x2',['../a00283.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156',1,'glm']]], - ['dmat4x3',['dmat4x3',['../a00283.html#gacd18864049f8c83799babe7e596ca05b',1,'glm']]], - ['dmat4x4',['dmat4x4',['../a00283.html#gad5a6484b983b74f9d801cab8bc4e6a10',1,'glm']]], - ['dot',['dot',['../a00254.html#ga84865a56acb8fbd7bc4f5c0b928e3cfc',1,'glm::dot(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00279.html#gaad6c5d9d39bdc0bf43baf1b22e147a0a',1,'glm::dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['double1',['double1',['../a00315.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]], - ['double1x1',['double1x1',['../a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]], - ['double2',['double2',['../a00315.html#ga31b729b04facccda73f07ed26958b3c2',1,'glm']]], - ['double2x2',['double2x2',['../a00315.html#gae57d0201096834d25f2b91b319e7cdbd',1,'glm']]], - ['double2x3',['double2x3',['../a00315.html#ga3655bc324008553ca61f39952d0b2d08',1,'glm']]], - ['double2x4',['double2x4',['../a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a',1,'glm']]], - ['double3',['double3',['../a00315.html#ga3d8b9028a1053a44a98902cd1c389472',1,'glm']]], - ['double3x2',['double3x2',['../a00315.html#ga5ec08fc39c9d783dfcc488be240fe975',1,'glm']]], - ['double3x3',['double3x3',['../a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180',1,'glm']]], - ['double3x4',['double3x4',['../a00315.html#ga2ef022e453d663d70aec414b2a80f756',1,'glm']]], - ['double4',['double4',['../a00315.html#gaf92f58af24f35617518aeb3d4f63fda6',1,'glm']]], - ['double4x2',['double4x2',['../a00315.html#gabca29ccceea53669618b751aae0ba83d',1,'glm']]], - ['double4x3',['double4x3',['../a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c',1,'glm']]], - ['double4x4',['double4x4',['../a00315.html#gaab541bed2e788e4537852a2492860806',1,'glm']]], - ['dquat',['dquat',['../a00249.html#ga1181459aa5d640a3ea43861b118f3f0b',1,'glm']]], - ['dual_5fquat_5fidentity',['dual_quat_identity',['../a00317.html#ga0b35c0e30df8a875dbaa751e0bd800e0',1,'glm']]], - ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00022.html',1,'']]], - ['dualquat',['dualquat',['../a00317.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]], - ['dualquat_5fcast',['dualquat_cast',['../a00317.html#gac4064ff813759740201765350eac4236',1,'glm::dualquat_cast(mat< 2, 4, T, Q > const &x)'],['../a00317.html#ga91025ebdca0f4ea54da08497b00e8c84',1,'glm::dualquat_cast(mat< 3, 4, T, Q > const &x)']]], - ['dvec1',['dvec1',['../a00268.html#ga6221af17edc2d4477a4583d2cd53e569',1,'glm']]], - ['dvec2',['dvec2',['../a00281.html#ga8b09c71aaac7da7867ae58377fe219a8',1,'glm']]], - ['dvec3',['dvec3',['../a00281.html#ga5b83ae3d0fdec519c038e4d2cf967cf0',1,'glm']]], - ['dvec4',['dvec4',['../a00281.html#ga57debab5d98ce618f7b2a97fe26eb3ac',1,'glm']]], - ['dword',['dword',['../a00354.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]] -]; +var searchData= +[ + ['ddualquat',['ddualquat',['../a00317.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]], + ['decompose',['decompose',['../a00335.html#gac0e342656ba09a9bc97c57182ba73124',1,'glm']]], + ['degrees',['degrees',['../a00373.html#ga8faec9e303538065911ba8b3caf7326b',1,'glm']]], + ['derivedeuleranglex',['derivedEulerAngleX',['../a00319.html#ga994b8186b3b80d91cf90bc403164692f',1,'glm']]], + ['derivedeulerangley',['derivedEulerAngleY',['../a00319.html#ga0a4c56ecce7abcb69508ebe6313e9d10',1,'glm']]], + ['derivedeuleranglez',['derivedEulerAngleZ',['../a00319.html#gae8b397348201c42667be983ba3f344df',1,'glm']]], + ['determinant',['determinant',['../a00371.html#gad7928795124768e058f99dce270f5c8d',1,'glm']]], + ['diagonal2x2',['diagonal2x2',['../a00339.html#ga58a32a2beeb2478dae2a721368cdd4ac',1,'glm']]], + ['diagonal2x3',['diagonal2x3',['../a00339.html#gab69f900206a430e2875a5a073851e175',1,'glm']]], + ['diagonal2x4',['diagonal2x4',['../a00339.html#ga30b4dbfed60a919d66acc8a63bcdc549',1,'glm']]], + ['diagonal3x2',['diagonal3x2',['../a00339.html#ga832c805d5130d28ad76236958d15b47d',1,'glm']]], + ['diagonal3x3',['diagonal3x3',['../a00339.html#ga5487ff9cdbc8e04d594adef1bcb16ee0',1,'glm']]], + ['diagonal3x4',['diagonal3x4',['../a00339.html#gad7551139cff0c4208d27f0ad3437833e',1,'glm']]], + ['diagonal4x2',['diagonal4x2',['../a00339.html#gacb8969e6543ba775c6638161a37ac330',1,'glm']]], + ['diagonal4x3',['diagonal4x3',['../a00339.html#gae235def5049d6740f0028433f5e13f90',1,'glm']]], + ['diagonal4x4',['diagonal4x4',['../a00339.html#ga0b4cd8dea436791b072356231ee8578f',1,'glm']]], + ['diskrand',['diskRand',['../a00300.html#gaa0b18071f3f97dbf8bcf6f53c6fe5f73',1,'glm']]], + ['distance',['distance',['../a00279.html#gaa68de6c53e20dfb2dac2d20197562e3f',1,'glm']]], + ['distance2',['distance2',['../a00343.html#ga85660f1b79f66c09c7b5a6f80e68c89f',1,'glm']]], + ['dmat2',['dmat2',['../a00283.html#ga21dbd1f987775d7cc7607c139531c7e6',1,'glm']]], + ['dmat2x2',['dmat2x2',['../a00283.html#ga66b6a9af787e468a46dfe24189e87f9b',1,'glm']]], + ['dmat2x3',['dmat2x3',['../a00283.html#ga92cd388753d48e20de69ea2dbedf826a',1,'glm']]], + ['dmat2x4',['dmat2x4',['../a00283.html#gaef2198807e937072803ae0ae45e1965e',1,'glm']]], + ['dmat3',['dmat3',['../a00283.html#ga6f40aa56265b4b0ccad41b86802efe33',1,'glm']]], + ['dmat3x2',['dmat3x2',['../a00283.html#ga001e3e0638fbf8719788fc64c5b8cf39',1,'glm']]], + ['dmat3x3',['dmat3x3',['../a00283.html#ga970cb3306be25a5ca5db5a9456831228',1,'glm']]], + ['dmat3x4',['dmat3x4',['../a00283.html#ga0412a634d183587e6188e9b11869f8f4',1,'glm']]], + ['dmat4',['dmat4',['../a00283.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca',1,'glm']]], + ['dmat4x2',['dmat4x2',['../a00283.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156',1,'glm']]], + ['dmat4x3',['dmat4x3',['../a00283.html#gacd18864049f8c83799babe7e596ca05b',1,'glm']]], + ['dmat4x4',['dmat4x4',['../a00283.html#gad5a6484b983b74f9d801cab8bc4e6a10',1,'glm']]], + ['dot',['dot',['../a00254.html#ga84865a56acb8fbd7bc4f5c0b928e3cfc',1,'glm::dot(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00279.html#gaad6c5d9d39bdc0bf43baf1b22e147a0a',1,'glm::dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['double1',['double1',['../a00315.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]], + ['double1x1',['double1x1',['../a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]], + ['double2',['double2',['../a00315.html#ga31b729b04facccda73f07ed26958b3c2',1,'glm']]], + ['double2x2',['double2x2',['../a00315.html#gae57d0201096834d25f2b91b319e7cdbd',1,'glm']]], + ['double2x3',['double2x3',['../a00315.html#ga3655bc324008553ca61f39952d0b2d08',1,'glm']]], + ['double2x4',['double2x4',['../a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a',1,'glm']]], + ['double3',['double3',['../a00315.html#ga3d8b9028a1053a44a98902cd1c389472',1,'glm']]], + ['double3x2',['double3x2',['../a00315.html#ga5ec08fc39c9d783dfcc488be240fe975',1,'glm']]], + ['double3x3',['double3x3',['../a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180',1,'glm']]], + ['double3x4',['double3x4',['../a00315.html#ga2ef022e453d663d70aec414b2a80f756',1,'glm']]], + ['double4',['double4',['../a00315.html#gaf92f58af24f35617518aeb3d4f63fda6',1,'glm']]], + ['double4x2',['double4x2',['../a00315.html#gabca29ccceea53669618b751aae0ba83d',1,'glm']]], + ['double4x3',['double4x3',['../a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c',1,'glm']]], + ['double4x4',['double4x4',['../a00315.html#gaab541bed2e788e4537852a2492860806',1,'glm']]], + ['dquat',['dquat',['../a00249.html#ga1181459aa5d640a3ea43861b118f3f0b',1,'glm']]], + ['dual_5fquat_5fidentity',['dual_quat_identity',['../a00317.html#ga0b35c0e30df8a875dbaa751e0bd800e0',1,'glm']]], + ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00022.html',1,'']]], + ['dualquat',['dualquat',['../a00317.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]], + ['dualquat_5fcast',['dualquat_cast',['../a00317.html#gac4064ff813759740201765350eac4236',1,'glm::dualquat_cast(mat< 2, 4, T, Q > const &x)'],['../a00317.html#ga91025ebdca0f4ea54da08497b00e8c84',1,'glm::dualquat_cast(mat< 3, 4, T, Q > const &x)']]], + ['dvec1',['dvec1',['../a00268.html#ga6221af17edc2d4477a4583d2cd53e569',1,'glm']]], + ['dvec2',['dvec2',['../a00281.html#ga8b09c71aaac7da7867ae58377fe219a8',1,'glm']]], + ['dvec3',['dvec3',['../a00281.html#ga5b83ae3d0fdec519c038e4d2cf967cf0',1,'glm']]], + ['dvec4',['dvec4',['../a00281.html#ga57debab5d98ce618f7b2a97fe26eb3ac',1,'glm']]], + ['dword',['dword',['../a00354.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_4.html b/external/include/glm-0.9.9.8/doc/api/search/all_4.html index 7fcb91e7f1..adc99fbbf9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_4.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_4.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_4.js b/external/include/glm-0.9.9.8/doc/api/search/all_4.js index 95d4ed30f3..8b0ab1f8a9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_4.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_4.js @@ -1,68 +1,68 @@ -var searchData= -[ - ['exponential_20functions',['Exponential functions',['../a00242.html',1,'']]], - ['e',['e',['../a00290.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]], - ['easing_2ehpp',['easing.hpp',['../a00023.html',1,'']]], - ['elasticeasein',['elasticEaseIn',['../a00318.html#ga230918eccee4e113d10ec5b8cdc58695',1,'glm']]], - ['elasticeaseinout',['elasticEaseInOut',['../a00318.html#ga2db4ac8959559b11b4029e54812908d6',1,'glm']]], - ['elasticeaseout',['elasticEaseOut',['../a00318.html#gace9c9d1bdf88bf2ab1e7cdefa54c7365',1,'glm']]], - ['epsilon',['epsilon',['../a00259.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]], - ['epsilon_2ehpp',['epsilon.hpp',['../a00024.html',1,'']]], - ['epsilonequal',['epsilonEqual',['../a00291.html#ga91b417866cafadd076004778217a1844',1,'glm::epsilonEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &x, genType const &y, genType const &epsilon)']]], - ['epsilonnotequal',['epsilonNotEqual',['../a00291.html#gaf840d33b9a5261ec78dcd5125743b025',1,'glm::epsilonNotEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)']]], - ['equal',['equal',['../a00246.html#ga27e90dcb7941c9b70e295dc3f6f6369f',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#gaf5d687d70d11708b68c36c6db5777040',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gafa6a053e81179fa4292b35651c83c3fb',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gab3a93f19e72e9141f50527c9de21d0c0',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#ga5305af376173f1902719fa309bbae671',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gad7827af0549504ff1cd6a359786acc7a',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#gaa001eecb91106463169a8e5ef1577b39',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga2ac7651a2fa7354f2da610dbd50d28e2',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga37d261a65f69babc82cec2ae1af7145f',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga2b46cb50911e97b32f4cd743c2c69771',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga7da2b8605be7f245b39cb6fbf6d9d581',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#gab4c5cfdaa70834421397a85aa83ad946',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['euclidean',['euclidean',['../a00350.html#ga1821d5b3324201e60a9e2823d0b5d0c8',1,'glm']]], - ['euler',['euler',['../a00290.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]], - ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00025.html',1,'']]], - ['eulerangles',['eulerAngles',['../a00299.html#gaf4dd967dead22dd932fc7460ceecb03f',1,'glm']]], - ['euleranglex',['eulerAngleX',['../a00319.html#gafba6282e4ed3ff8b5c75331abfba3489',1,'glm']]], - ['euleranglexy',['eulerAngleXY',['../a00319.html#ga64036577ee17a2d24be0dbc05881d4e2',1,'glm']]], - ['euleranglexyx',['eulerAngleXYX',['../a00319.html#ga29bd0787a28a6648159c0d6e69706066',1,'glm']]], - ['euleranglexyz',['eulerAngleXYZ',['../a00319.html#ga1975e0f0e9bed7f716dc9946da2ab645',1,'glm']]], - ['euleranglexz',['eulerAngleXZ',['../a00319.html#gaa39bd323c65c2fc0a1508be33a237ce9',1,'glm']]], - ['euleranglexzx',['eulerAngleXZX',['../a00319.html#ga60171c79a17aec85d7891ae1d1533ec9',1,'glm']]], - ['euleranglexzy',['eulerAngleXZY',['../a00319.html#ga996dce12a60d8a674ba6737a535fa910',1,'glm']]], - ['eulerangley',['eulerAngleY',['../a00319.html#gab84bf4746805fd69b8ecbb230e3974c5',1,'glm']]], - ['eulerangleyx',['eulerAngleYX',['../a00319.html#ga4f57e6dd25c3cffbbd4daa6ef3f4486d',1,'glm']]], - ['eulerangleyxy',['eulerAngleYXY',['../a00319.html#ga750fba9894117f87bcc529d7349d11de',1,'glm']]], - ['eulerangleyxz',['eulerAngleYXZ',['../a00319.html#gab8ba99a9814f6d9edf417b6c6d5b0c10',1,'glm']]], - ['eulerangleyz',['eulerAngleYZ',['../a00319.html#ga220379e10ac8cca55e275f0c9018fed9',1,'glm']]], - ['eulerangleyzx',['eulerAngleYZX',['../a00319.html#ga08bef16357b8f9b3051b3dcaec4b7848',1,'glm']]], - ['eulerangleyzy',['eulerAngleYZY',['../a00319.html#ga5e5e40abc27630749b42b3327c76d6e4',1,'glm']]], - ['euleranglez',['eulerAngleZ',['../a00319.html#ga5b3935248bb6c3ec6b0d9297d406e251',1,'glm']]], - ['euleranglezx',['eulerAngleZX',['../a00319.html#ga483903115cd4059228961046a28d69b5',1,'glm']]], - ['euleranglezxy',['eulerAngleZXY',['../a00319.html#gab4505c54d2dd654df4569fd1f04c43aa',1,'glm']]], - ['euleranglezxz',['eulerAngleZXZ',['../a00319.html#ga178f966c52b01e4d65e31ebd007e3247',1,'glm']]], - ['euleranglezy',['eulerAngleZY',['../a00319.html#ga400b2bd5984999efab663f3a68e1d020',1,'glm']]], - ['euleranglezyx',['eulerAngleZYX',['../a00319.html#ga2e61f1e39069c47530acab9167852dd6',1,'glm']]], - ['euleranglezyz',['eulerAngleZYZ',['../a00319.html#gacd795f1dbecaf74974f9c76bbcca6830',1,'glm']]], - ['exp',['exp',['../a00242.html#ga071566cadc7505455e611f2a0353f4d4',1,'glm::exp(vec< L, T, Q > const &v)'],['../a00256.html#gaab2d37ef7265819f1d2939b9dc2c52ac',1,'glm::exp(qua< T, Q > const &q)']]], - ['exp2',['exp2',['../a00242.html#gaff17ace6b579a03bf223ed4d1ed2cd16',1,'glm']]], - ['exponential_2ehpp',['exponential.hpp',['../a00026.html',1,'']]], - ['exponentialeasein',['exponentialEaseIn',['../a00318.html#ga7f24ee9219ab4c84dc8de24be84c1e3c',1,'glm']]], - ['exponentialeaseinout',['exponentialEaseInOut',['../a00318.html#ga232fb6dc093c5ce94bee105ff2947501',1,'glm']]], - ['exponentialeaseout',['exponentialEaseOut',['../a00318.html#ga517f2bcfd15bc2c25c466ae50808efc3',1,'glm']]], - ['ext_2ehpp',['ext.hpp',['../a00027.html',1,'']]], - ['extend',['extend',['../a00320.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]], - ['extend_2ehpp',['extend.hpp',['../a00028.html',1,'']]], - ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00029.html',1,'']]], - ['exterior_5fproduct_2ehpp',['exterior_product.hpp',['../a00030.html',1,'']]], - ['extracteuleranglexyx',['extractEulerAngleXYX',['../a00319.html#gaf1077a72171d0f3b08f022ab5ff88af7',1,'glm']]], - ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00319.html#gacea701562f778c1da4d3a0a1cf091000',1,'glm']]], - ['extracteuleranglexzx',['extractEulerAngleXZX',['../a00319.html#gacf0bc6c031f25fa3ee0055b62c8260d0',1,'glm']]], - ['extracteuleranglexzy',['extractEulerAngleXZY',['../a00319.html#gabe5a65d8eb1cd873c8de121cce1a15ed',1,'glm']]], - ['extracteulerangleyxy',['extractEulerAngleYXY',['../a00319.html#gaab8868556361a190db94374e9983ed39',1,'glm']]], - ['extracteulerangleyxz',['extractEulerAngleYXZ',['../a00319.html#gaf0937518e63037335a0e8358b6f053c5',1,'glm']]], - ['extracteulerangleyzx',['extractEulerAngleYZX',['../a00319.html#ga9049b78466796c0de2971756e25b93d3',1,'glm']]], - ['extracteulerangleyzy',['extractEulerAngleYZY',['../a00319.html#ga11dad972c109e4bf8694c915017c44a6',1,'glm']]], - ['extracteuleranglezxy',['extractEulerAngleZXY',['../a00319.html#ga81fbbca2ba0c778b9662d5355b4e2363',1,'glm']]], - ['extracteuleranglezxz',['extractEulerAngleZXZ',['../a00319.html#ga59359fef9bad92afaca55e193f91e702',1,'glm']]], - ['extracteuleranglezyx',['extractEulerAngleZYX',['../a00319.html#ga2d6c11a4abfa60c565483cee2d3f7665',1,'glm']]], - ['extracteuleranglezyz',['extractEulerAngleZYZ',['../a00319.html#gafdfa880a64b565223550c2d3938b1aeb',1,'glm']]], - ['extractmatrixrotation',['extractMatrixRotation',['../a00337.html#gabbc1c7385a145f04b5c54228965df145',1,'glm']]], - ['extractrealcomponent',['extractRealComponent',['../a00352.html#ga321953c1b2e7befe6f5dcfddbfc6b76b',1,'glm']]], - ['experimental_20extensions',['Experimental extensions',['../a00287.html',1,'']]], - ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00108.html',1,'']]], - ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00149.html',1,'']]], - ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00224.html',1,'']]] -]; +var searchData= +[ + ['exponential_20functions',['Exponential functions',['../a00242.html',1,'']]], + ['e',['e',['../a00290.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]], + ['easing_2ehpp',['easing.hpp',['../a00023.html',1,'']]], + ['elasticeasein',['elasticEaseIn',['../a00318.html#ga230918eccee4e113d10ec5b8cdc58695',1,'glm']]], + ['elasticeaseinout',['elasticEaseInOut',['../a00318.html#ga2db4ac8959559b11b4029e54812908d6',1,'glm']]], + ['elasticeaseout',['elasticEaseOut',['../a00318.html#gace9c9d1bdf88bf2ab1e7cdefa54c7365',1,'glm']]], + ['epsilon',['epsilon',['../a00259.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]], + ['epsilon_2ehpp',['epsilon.hpp',['../a00024.html',1,'']]], + ['epsilonequal',['epsilonEqual',['../a00291.html#ga91b417866cafadd076004778217a1844',1,'glm::epsilonEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &x, genType const &y, genType const &epsilon)']]], + ['epsilonnotequal',['epsilonNotEqual',['../a00291.html#gaf840d33b9a5261ec78dcd5125743b025',1,'glm::epsilonNotEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)']]], + ['equal',['equal',['../a00246.html#ga27e90dcb7941c9b70e295dc3f6f6369f',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#gaf5d687d70d11708b68c36c6db5777040',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gafa6a053e81179fa4292b35651c83c3fb',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gab3a93f19e72e9141f50527c9de21d0c0',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#ga5305af376173f1902719fa309bbae671',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gad7827af0549504ff1cd6a359786acc7a',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#gaa001eecb91106463169a8e5ef1577b39',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga2ac7651a2fa7354f2da610dbd50d28e2',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga37d261a65f69babc82cec2ae1af7145f',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga2b46cb50911e97b32f4cd743c2c69771',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga7da2b8605be7f245b39cb6fbf6d9d581',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#gab4c5cfdaa70834421397a85aa83ad946',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['euclidean',['euclidean',['../a00350.html#ga1821d5b3324201e60a9e2823d0b5d0c8',1,'glm']]], + ['euler',['euler',['../a00290.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]], + ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00025.html',1,'']]], + ['eulerangles',['eulerAngles',['../a00299.html#gaf4dd967dead22dd932fc7460ceecb03f',1,'glm']]], + ['euleranglex',['eulerAngleX',['../a00319.html#gafba6282e4ed3ff8b5c75331abfba3489',1,'glm']]], + ['euleranglexy',['eulerAngleXY',['../a00319.html#ga64036577ee17a2d24be0dbc05881d4e2',1,'glm']]], + ['euleranglexyx',['eulerAngleXYX',['../a00319.html#ga29bd0787a28a6648159c0d6e69706066',1,'glm']]], + ['euleranglexyz',['eulerAngleXYZ',['../a00319.html#ga1975e0f0e9bed7f716dc9946da2ab645',1,'glm']]], + ['euleranglexz',['eulerAngleXZ',['../a00319.html#gaa39bd323c65c2fc0a1508be33a237ce9',1,'glm']]], + ['euleranglexzx',['eulerAngleXZX',['../a00319.html#ga60171c79a17aec85d7891ae1d1533ec9',1,'glm']]], + ['euleranglexzy',['eulerAngleXZY',['../a00319.html#ga996dce12a60d8a674ba6737a535fa910',1,'glm']]], + ['eulerangley',['eulerAngleY',['../a00319.html#gab84bf4746805fd69b8ecbb230e3974c5',1,'glm']]], + ['eulerangleyx',['eulerAngleYX',['../a00319.html#ga4f57e6dd25c3cffbbd4daa6ef3f4486d',1,'glm']]], + ['eulerangleyxy',['eulerAngleYXY',['../a00319.html#ga750fba9894117f87bcc529d7349d11de',1,'glm']]], + ['eulerangleyxz',['eulerAngleYXZ',['../a00319.html#gab8ba99a9814f6d9edf417b6c6d5b0c10',1,'glm']]], + ['eulerangleyz',['eulerAngleYZ',['../a00319.html#ga220379e10ac8cca55e275f0c9018fed9',1,'glm']]], + ['eulerangleyzx',['eulerAngleYZX',['../a00319.html#ga08bef16357b8f9b3051b3dcaec4b7848',1,'glm']]], + ['eulerangleyzy',['eulerAngleYZY',['../a00319.html#ga5e5e40abc27630749b42b3327c76d6e4',1,'glm']]], + ['euleranglez',['eulerAngleZ',['../a00319.html#ga5b3935248bb6c3ec6b0d9297d406e251',1,'glm']]], + ['euleranglezx',['eulerAngleZX',['../a00319.html#ga483903115cd4059228961046a28d69b5',1,'glm']]], + ['euleranglezxy',['eulerAngleZXY',['../a00319.html#gab4505c54d2dd654df4569fd1f04c43aa',1,'glm']]], + ['euleranglezxz',['eulerAngleZXZ',['../a00319.html#ga178f966c52b01e4d65e31ebd007e3247',1,'glm']]], + ['euleranglezy',['eulerAngleZY',['../a00319.html#ga400b2bd5984999efab663f3a68e1d020',1,'glm']]], + ['euleranglezyx',['eulerAngleZYX',['../a00319.html#ga2e61f1e39069c47530acab9167852dd6',1,'glm']]], + ['euleranglezyz',['eulerAngleZYZ',['../a00319.html#gacd795f1dbecaf74974f9c76bbcca6830',1,'glm']]], + ['exp',['exp',['../a00242.html#ga071566cadc7505455e611f2a0353f4d4',1,'glm::exp(vec< L, T, Q > const &v)'],['../a00256.html#gaab2d37ef7265819f1d2939b9dc2c52ac',1,'glm::exp(qua< T, Q > const &q)']]], + ['exp2',['exp2',['../a00242.html#gaff17ace6b579a03bf223ed4d1ed2cd16',1,'glm']]], + ['exponential_2ehpp',['exponential.hpp',['../a00026.html',1,'']]], + ['exponentialeasein',['exponentialEaseIn',['../a00318.html#ga7f24ee9219ab4c84dc8de24be84c1e3c',1,'glm']]], + ['exponentialeaseinout',['exponentialEaseInOut',['../a00318.html#ga232fb6dc093c5ce94bee105ff2947501',1,'glm']]], + ['exponentialeaseout',['exponentialEaseOut',['../a00318.html#ga517f2bcfd15bc2c25c466ae50808efc3',1,'glm']]], + ['ext_2ehpp',['ext.hpp',['../a00027.html',1,'']]], + ['extend',['extend',['../a00320.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]], + ['extend_2ehpp',['extend.hpp',['../a00028.html',1,'']]], + ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00029.html',1,'']]], + ['exterior_5fproduct_2ehpp',['exterior_product.hpp',['../a00030.html',1,'']]], + ['extracteuleranglexyx',['extractEulerAngleXYX',['../a00319.html#gaf1077a72171d0f3b08f022ab5ff88af7',1,'glm']]], + ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00319.html#gacea701562f778c1da4d3a0a1cf091000',1,'glm']]], + ['extracteuleranglexzx',['extractEulerAngleXZX',['../a00319.html#gacf0bc6c031f25fa3ee0055b62c8260d0',1,'glm']]], + ['extracteuleranglexzy',['extractEulerAngleXZY',['../a00319.html#gabe5a65d8eb1cd873c8de121cce1a15ed',1,'glm']]], + ['extracteulerangleyxy',['extractEulerAngleYXY',['../a00319.html#gaab8868556361a190db94374e9983ed39',1,'glm']]], + ['extracteulerangleyxz',['extractEulerAngleYXZ',['../a00319.html#gaf0937518e63037335a0e8358b6f053c5',1,'glm']]], + ['extracteulerangleyzx',['extractEulerAngleYZX',['../a00319.html#ga9049b78466796c0de2971756e25b93d3',1,'glm']]], + ['extracteulerangleyzy',['extractEulerAngleYZY',['../a00319.html#ga11dad972c109e4bf8694c915017c44a6',1,'glm']]], + ['extracteuleranglezxy',['extractEulerAngleZXY',['../a00319.html#ga81fbbca2ba0c778b9662d5355b4e2363',1,'glm']]], + ['extracteuleranglezxz',['extractEulerAngleZXZ',['../a00319.html#ga59359fef9bad92afaca55e193f91e702',1,'glm']]], + ['extracteuleranglezyx',['extractEulerAngleZYX',['../a00319.html#ga2d6c11a4abfa60c565483cee2d3f7665',1,'glm']]], + ['extracteuleranglezyz',['extractEulerAngleZYZ',['../a00319.html#gafdfa880a64b565223550c2d3938b1aeb',1,'glm']]], + ['extractmatrixrotation',['extractMatrixRotation',['../a00337.html#gabbc1c7385a145f04b5c54228965df145',1,'glm']]], + ['extractrealcomponent',['extractRealComponent',['../a00352.html#ga321953c1b2e7befe6f5dcfddbfc6b76b',1,'glm']]], + ['experimental_20extensions',['Experimental extensions',['../a00287.html',1,'']]], + ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00108.html',1,'']]], + ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00149.html',1,'']]], + ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00224.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_5.html b/external/include/glm-0.9.9.8/doc/api/search/all_5.html index d7ed27410e..a9fcd17029 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_5.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_5.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_5.js b/external/include/glm-0.9.9.8/doc/api/search/all_5.js index 799f3c922f..0273a3fc34 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_5.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_5.js @@ -1,131 +1,131 @@ -var searchData= -[ - ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00372.html',1,'']]], - ['f32',['f32',['../a00304.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]], - ['f32mat1',['f32mat1',['../a00346.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]], - ['f32mat1x1',['f32mat1x1',['../a00346.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]], - ['f32mat2',['f32mat2',['../a00304.html#gab12383ed6ac7595ed6fde4d266c58425',1,'glm']]], - ['f32mat2x2',['f32mat2x2',['../a00304.html#ga04100c76f7d55a0dd0983ccf05142bff',1,'glm']]], - ['f32mat2x3',['f32mat2x3',['../a00304.html#gab256cdab5eb582e426d749ae77b5b566',1,'glm']]], - ['f32mat2x4',['f32mat2x4',['../a00304.html#gaf512b74c4400b68f9fdf9388b3d6aac8',1,'glm']]], - ['f32mat3',['f32mat3',['../a00304.html#ga856f3905ee7cc2e4890a8a1d56c150be',1,'glm']]], - ['f32mat3x2',['f32mat3x2',['../a00304.html#ga1320a08e14fdff3821241eefab6947e9',1,'glm']]], - ['f32mat3x3',['f32mat3x3',['../a00304.html#ga65261fa8a21045c8646ddff114a56174',1,'glm']]], - ['f32mat3x4',['f32mat3x4',['../a00304.html#gab90ade28222f8b861d5ceaf81a3a7f5d',1,'glm']]], - ['f32mat4',['f32mat4',['../a00304.html#ga99d1b85ff99956b33da7e9992aad129a',1,'glm']]], - ['f32mat4x2',['f32mat4x2',['../a00304.html#ga3b32ca1e57a4ef91babbc3d35a34ea20',1,'glm']]], - ['f32mat4x3',['f32mat4x3',['../a00304.html#ga239b96198771b7add8eea7e6b59840c0',1,'glm']]], - ['f32mat4x4',['f32mat4x4',['../a00304.html#gaee4da0e9fbd8cfa2f89cb80889719dc3',1,'glm']]], - ['f32quat',['f32quat',['../a00304.html#ga38e674196ba411d642be40c47bf33939',1,'glm']]], - ['f32vec1',['f32vec1',['../a00304.html#ga701f32ab5b3fb06996b41f5c0d643805',1,'glm::f32vec1()'],['../a00346.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]], - ['f32vec2',['f32vec2',['../a00304.html#ga5d6c70e080409a76a257dc55bd8ea2c8',1,'glm']]], - ['f32vec3',['f32vec3',['../a00304.html#gaea5c4518e175162e306d2c2b5ef5ac79',1,'glm']]], - ['f32vec4',['f32vec4',['../a00304.html#ga31c6ca0e074a44007f49a9a3720b18c8',1,'glm']]], - ['f64',['f64',['../a00304.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]], - ['f64mat1',['f64mat1',['../a00346.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]], - ['f64mat1x1',['f64mat1x1',['../a00346.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]], - ['f64mat2',['f64mat2',['../a00304.html#gad9771450a54785d13080cdde0fe20c1d',1,'glm']]], - ['f64mat2x2',['f64mat2x2',['../a00304.html#ga9ec7c4c79e303c053e30729a95fb2c37',1,'glm']]], - ['f64mat2x3',['f64mat2x3',['../a00304.html#gae3ab5719fc4c1e966631dbbcba8d412a',1,'glm']]], - ['f64mat2x4',['f64mat2x4',['../a00304.html#gac87278e0c702ba8afff76316d4eeb769',1,'glm']]], - ['f64mat3',['f64mat3',['../a00304.html#ga9b69181efbf8f37ae934f135137b29c0',1,'glm']]], - ['f64mat3x2',['f64mat3x2',['../a00304.html#ga2473d8bf3f4abf967c4d0e18175be6f7',1,'glm']]], - ['f64mat3x3',['f64mat3x3',['../a00304.html#ga916c1aed91cf91f7b41399ebe7c6e185',1,'glm']]], - ['f64mat3x4',['f64mat3x4',['../a00304.html#gaab239fa9e35b65a67cbaa6ac082f3675',1,'glm']]], - ['f64mat4',['f64mat4',['../a00304.html#ga0ecd3f4952536e5ef12702b44d2626fc',1,'glm']]], - ['f64mat4x2',['f64mat4x2',['../a00304.html#gab7daf79d6bc06a68bea1c6f5e11b5512',1,'glm']]], - ['f64mat4x3',['f64mat4x3',['../a00304.html#ga3e2e66ffbe341a80bc005ba2b9552110',1,'glm']]], - ['f64mat4x4',['f64mat4x4',['../a00304.html#gae52e2b7077a9ff928a06ab5ce600b81e',1,'glm']]], - ['f64quat',['f64quat',['../a00304.html#ga2b114a2f2af0fe1dfeb569c767822940',1,'glm']]], - ['f64vec1',['f64vec1',['../a00304.html#gade502df1ce14f837fae7f60a03ddb9b0',1,'glm::f64vec1()'],['../a00346.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]], - ['f64vec2',['f64vec2',['../a00304.html#gadc4e1594f9555d919131ee02b17822a2',1,'glm']]], - ['f64vec3',['f64vec3',['../a00304.html#gaa7a1ddca75c5f629173bf4772db7a635',1,'glm']]], - ['f64vec4',['f64vec4',['../a00304.html#ga66e92e57260bdb910609b9a56bf83e97',1,'glm']]], - ['faceforward',['faceforward',['../a00279.html#ga7aed0a36c738169402404a3a5d54e43b',1,'glm']]], - ['factorial',['factorial',['../a00330.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]], - ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00031.html',1,'']]], - ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00032.html',1,'']]], - ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00033.html',1,'']]], - ['fastacos',['fastAcos',['../a00325.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]], - ['fastasin',['fastAsin',['../a00325.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]], - ['fastatan',['fastAtan',['../a00325.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00325.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]], - ['fastcos',['fastCos',['../a00325.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]], - ['fastdistance',['fastDistance',['../a00324.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00324.html#ga42d3e771fa7cb3c60d828e315829df19',1,'glm::fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['fastexp',['fastExp',['../a00323.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00323.html#ga3ba6153aec6bd74628f8b00530aa8d58',1,'glm::fastExp(vec< L, T, Q > const &x)']]], - ['fastexp2',['fastExp2',['../a00323.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00323.html#gacaaed8b67d20d244b7de217e7816c1b6',1,'glm::fastExp2(vec< L, T, Q > const &x)']]], - ['fastinversesqrt',['fastInverseSqrt',['../a00324.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00324.html#gadcd7be12b1e5ee182141359d4c45dd24',1,'glm::fastInverseSqrt(vec< L, T, Q > const &x)']]], - ['fastlength',['fastLength',['../a00324.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00324.html#ga90f66be92ef61e705c005e7b3209edb8',1,'glm::fastLength(vec< L, T, Q > const &x)']]], - ['fastlog',['fastLog',['../a00323.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00323.html#ga937256993a7219e73f186bb348fe6be8',1,'glm::fastLog(vec< L, T, Q > const &x)']]], - ['fastlog2',['fastLog2',['../a00323.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00323.html#ga7562043539194ccc24649f8475bc5584',1,'glm::fastLog2(vec< L, T, Q > const &x)']]], - ['fastmix',['fastMix',['../a00352.html#ga264e10708d58dd0ff53b7902a2bd2561',1,'glm']]], - ['fastnormalize',['fastNormalize',['../a00324.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]], - ['fastnormalizedot',['fastNormalizeDot',['../a00345.html#ga2746fb9b5bd22b06b2f7c8babba5de9e',1,'glm']]], - ['fastpow',['fastPow',['../a00323.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00323.html#ga15325a8ed2d1c4ed2412c4b3b3927aa2',1,'glm::fastPow(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00323.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00323.html#ga1abe488c0829da5b9de70ac64aeaa7e5',1,'glm::fastPow(vec< L, T, Q > const &x)']]], - ['fastsin',['fastSin',['../a00325.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]], - ['fastsqrt',['fastSqrt',['../a00324.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00324.html#gae83f0c03614f73eae5478c5b6274ee6d',1,'glm::fastSqrt(vec< L, T, Q > const &x)']]], - ['fasttan',['fastTan',['../a00325.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]], - ['fclamp',['fclamp',['../a00321.html#ga1e28539d3a46965ed9ef92ec7cb3b18a',1,'glm::fclamp(genType x, genType minVal, genType maxVal)'],['../a00321.html#ga60796d08903489ee185373593bc16b9d',1,'glm::fclamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00321.html#ga5c15fa4709763c269c86c0b8b3aa2297',1,'glm::fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)']]], - ['fdualquat',['fdualquat',['../a00317.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]], - ['findlsb',['findLSB',['../a00370.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00370.html#ga4454c0331d6369888c28ab677f4810c7',1,'glm::findLSB(vec< L, T, Q > const &v)']]], - ['findmsb',['findMSB',['../a00370.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00370.html#ga39ac4d52028bb6ab08db5ad6562c2872',1,'glm::findMSB(vec< L, T, Q > const &v)']]], - ['findnsb',['findNSB',['../a00261.html#ga2777901e41ad6e1e9d0ad6cc855d1075',1,'glm::findNSB(genIUType x, int significantBitCount)'],['../a00274.html#gaff61eca266da315002a3db92ff0dd604',1,'glm::findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)']]], - ['fliplr',['fliplr',['../a00336.html#gaf39f4e5f78eb29c1a90277d45b9b3feb',1,'glm']]], - ['flipud',['flipud',['../a00336.html#ga85003371f0ba97380dd25e8905de1870',1,'glm']]], - ['float1',['float1',['../a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]], - ['float1x1',['float1x1',['../a00315.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]], - ['float2',['float2',['../a00315.html#ga02d3c013982c183906c61d74aa3166ce',1,'glm']]], - ['float2x2',['float2x2',['../a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f',1,'glm']]], - ['float2x3',['float2x3',['../a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe',1,'glm']]], - ['float2x4',['float2x4',['../a00315.html#gafec3cfd901ab334a92e0242b8f2269b4',1,'glm']]], - ['float3',['float3',['../a00315.html#ga821ff110fc8533a053cbfcc93e078cc0',1,'glm']]], - ['float32',['float32',['../a00304.html#gaacdc525d6f7bddb3ae95d5c311bd06a1',1,'glm']]], - ['float32_5ft',['float32_t',['../a00304.html#gaa4947bc8b47c72fceea9bda730ecf603',1,'glm']]], - ['float3x2',['float3x2',['../a00315.html#gaa6c69f04ba95f3faedf95dae874de576',1,'glm']]], - ['float3x3',['float3x3',['../a00315.html#ga6ceb5d38a58becdf420026e12a6562f3',1,'glm']]], - ['float3x4',['float3x4',['../a00315.html#ga4d2679c321b793ca3784fe0315bb5332',1,'glm']]], - ['float4',['float4',['../a00315.html#gae2da7345087db3815a25d8837a727ef1',1,'glm']]], - ['float4x2',['float4x2',['../a00315.html#ga308b9af0c221145bcfe9bfc129d9098e',1,'glm']]], - ['float4x3',['float4x3',['../a00315.html#gac0a51b4812038aa81d73ffcc37f741ac',1,'glm']]], - ['float4x4',['float4x4',['../a00315.html#gad3051649b3715d828a4ab92cdae7c3bf',1,'glm']]], - ['float64',['float64',['../a00304.html#ga232fad1b0d6dcc7c16aabde98b2e2a80',1,'glm']]], - ['float64_5ft',['float64_t',['../a00304.html#ga728366fef72cd96f0a5fa6429f05469e',1,'glm']]], - ['floatbitstoint',['floatBitsToInt',['../a00241.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &v)'],['../a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed',1,'glm::floatBitsToInt(vec< L, float, Q > const &v)']]], - ['floatbitstouint',['floatBitsToUint',['../a00241.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &v)'],['../a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db',1,'glm::floatBitsToUint(vec< L, float, Q > const &v)']]], - ['floor',['floor',['../a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d',1,'glm']]], - ['floor_5flog2',['floor_log2',['../a00330.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]], - ['floormultiple',['floorMultiple',['../a00302.html#ga2ffa3cd5f2ea746ee1bf57c46da6315e',1,'glm::floorMultiple(genType v, genType Multiple)'],['../a00302.html#gacdd8901448f51f0b192380e422fae3e4',1,'glm::floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['floorpoweroftwo',['floorPowerOfTwo',['../a00302.html#gafe273a57935d04c9db677bf67f9a71f4',1,'glm::floorPowerOfTwo(genIUType v)'],['../a00302.html#gaf0d591a8fca8ddb9289cdeb44b989c2d',1,'glm::floorPowerOfTwo(vec< L, T, Q > const &v)']]], - ['fma',['fma',['../a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]], - ['fmat2',['fmat2',['../a00304.html#ga4541dc2feb2a31d6ecb5a303f3dd3280',1,'glm']]], - ['fmat2x2',['fmat2x2',['../a00304.html#ga3350c93c3275298f940a42875388e4b4',1,'glm']]], - ['fmat2x3',['fmat2x3',['../a00304.html#ga55a2d2a8eb09b5633668257eb3cad453',1,'glm']]], - ['fmat2x4',['fmat2x4',['../a00304.html#ga681381f19f11c9e5ee45cda2c56937ff',1,'glm']]], - ['fmat3',['fmat3',['../a00304.html#ga253d453c20e037730023fea0215cb6f6',1,'glm']]], - ['fmat3x2',['fmat3x2',['../a00304.html#ga6af54d70d9beb0a7ef992a879e86b04f',1,'glm']]], - ['fmat3x3',['fmat3x3',['../a00304.html#gaa07c86650253672a19dbfb898f3265b8',1,'glm']]], - ['fmat3x4',['fmat3x4',['../a00304.html#ga44e158af77a670ee1b58c03cda9e1619',1,'glm']]], - ['fmat4',['fmat4',['../a00304.html#ga8cb400c0f4438f2640035d7b9824a0ca',1,'glm']]], - ['fmat4x2',['fmat4x2',['../a00304.html#ga8c8aa45aafcc23238edb1d5aeb801774',1,'glm']]], - ['fmat4x3',['fmat4x3',['../a00304.html#ga4295048a78bdf46b8a7de77ec665b497',1,'glm']]], - ['fmat4x4',['fmat4x4',['../a00304.html#gad01cc6479bde1fd1870f13d3ed9530b3',1,'glm']]], - ['fmax',['fmax',['../a00258.html#ga36920478565cf608e93064283ce06421',1,'glm::fmax(T a, T b)'],['../a00258.html#ga0007bba71ca451ac70e99d28dfbeaab9',1,'glm::fmax(T a, T b, T C)'],['../a00258.html#ga27e260b1ff4d04c3ad4b864d26cbaf08',1,'glm::fmax(T a, T b, T C, T D)'],['../a00267.html#gad66b6441f7200db16c9f341711733c56',1,'glm::fmax(vec< L, T, Q > const &a, T b)'],['../a00267.html#ga8df4be3f48d6717c40ea788fd30deebf',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b)'],['../a00267.html#ga0f04ba924294dae4234ca93ede23229a',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4ed3eb250ccbe17bfe8ded8a6b72d230',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gae5792cb2b51190057e4aea027eb56f81',1,'glm::fmax(genType x, genType y)']]], - ['fmin',['fmin',['../a00258.html#ga7b2b438a765e2a62098c79eb212f28f0',1,'glm::fmin(T a, T b)'],['../a00258.html#ga1a95fe4cf5437e8133f1093fe9726a64',1,'glm::fmin(T a, T b, T c)'],['../a00258.html#ga3d6f9c6c16bfd6f38f2c4f8076e8b661',1,'glm::fmin(T a, T b, T c, T d)'],['../a00267.html#gae989203363cff9eab5093630df4fe071',1,'glm::fmin(vec< L, T, Q > const &x, T y)'],['../a00267.html#ga7c42e93cd778c9181d1cdeea4d3e43bd',1,'glm::fmin(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00267.html#ga7e62739055b49189d9355471f78fe000',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4a543dd7d22ad1f3b8b839f808a9d93c',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gaa3200559611ac5b9b9ae7283547916a7',1,'glm::fmin(genType x, genType y)']]], - ['fmod',['fmod',['../a00314.html#gae5e80425df9833164ad469e83b475fb4',1,'glm']]], - ['four_5fover_5fpi',['four_over_pi',['../a00290.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]], - ['fract',['fract',['../a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm::fract(genType x)'],['../a00241.html#ga2df623004f634b440d61e018d62c751b',1,'glm::fract(vec< L, T, Q > const &x)']]], - ['frexp',['frexp',['../a00241.html#gaddf5ef73283c171730e0bcc11833fa81',1,'glm']]], - ['frustum',['frustum',['../a00243.html#ga0bcd4542e0affc63a0b8c08fcb839ea9',1,'glm']]], - ['frustumlh',['frustumLH',['../a00243.html#gae4277c37f61d81da01bc9db14ea90296',1,'glm']]], - ['frustumlh_5fno',['frustumLH_NO',['../a00243.html#ga259520cad03b3f8bca9417920035ed01',1,'glm']]], - ['frustumlh_5fzo',['frustumLH_ZO',['../a00243.html#ga94218b094862d17798370242680b9030',1,'glm']]], - ['frustumno',['frustumNO',['../a00243.html#gae34ec664ad44860bf4b5ba631f0e0e90',1,'glm']]], - ['frustumrh',['frustumRH',['../a00243.html#ga4366ab45880c6c5f8b3e8c371ca4b136',1,'glm']]], - ['frustumrh_5fno',['frustumRH_NO',['../a00243.html#ga9236c8439f21be186b79c97b588836b9',1,'glm']]], - ['frustumrh_5fzo',['frustumRH_ZO',['../a00243.html#ga7654a9227f14d5382786b9fc0eb5692d',1,'glm']]], - ['frustumzo',['frustumZO',['../a00243.html#gaa73322e152edf50cf30a6edac342a757',1,'glm']]], - ['functions_2ehpp',['functions.hpp',['../a00034.html',1,'']]], - ['fvec1',['fvec1',['../a00304.html#ga98b9ed43cf8c5cf1d354b23c7df9119f',1,'glm']]], - ['fvec2',['fvec2',['../a00304.html#ga24273aa02abaecaab7f160bac437a339',1,'glm']]], - ['fvec3',['fvec3',['../a00304.html#ga89930533646b30d021759298aa6bf04a',1,'glm']]], - ['fvec4',['fvec4',['../a00304.html#ga713c796c54875cf4092d42ff9d9096b0',1,'glm']]] -]; +var searchData= +[ + ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00372.html',1,'']]], + ['f32',['f32',['../a00304.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]], + ['f32mat1',['f32mat1',['../a00346.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]], + ['f32mat1x1',['f32mat1x1',['../a00346.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]], + ['f32mat2',['f32mat2',['../a00304.html#gab12383ed6ac7595ed6fde4d266c58425',1,'glm']]], + ['f32mat2x2',['f32mat2x2',['../a00304.html#ga04100c76f7d55a0dd0983ccf05142bff',1,'glm']]], + ['f32mat2x3',['f32mat2x3',['../a00304.html#gab256cdab5eb582e426d749ae77b5b566',1,'glm']]], + ['f32mat2x4',['f32mat2x4',['../a00304.html#gaf512b74c4400b68f9fdf9388b3d6aac8',1,'glm']]], + ['f32mat3',['f32mat3',['../a00304.html#ga856f3905ee7cc2e4890a8a1d56c150be',1,'glm']]], + ['f32mat3x2',['f32mat3x2',['../a00304.html#ga1320a08e14fdff3821241eefab6947e9',1,'glm']]], + ['f32mat3x3',['f32mat3x3',['../a00304.html#ga65261fa8a21045c8646ddff114a56174',1,'glm']]], + ['f32mat3x4',['f32mat3x4',['../a00304.html#gab90ade28222f8b861d5ceaf81a3a7f5d',1,'glm']]], + ['f32mat4',['f32mat4',['../a00304.html#ga99d1b85ff99956b33da7e9992aad129a',1,'glm']]], + ['f32mat4x2',['f32mat4x2',['../a00304.html#ga3b32ca1e57a4ef91babbc3d35a34ea20',1,'glm']]], + ['f32mat4x3',['f32mat4x3',['../a00304.html#ga239b96198771b7add8eea7e6b59840c0',1,'glm']]], + ['f32mat4x4',['f32mat4x4',['../a00304.html#gaee4da0e9fbd8cfa2f89cb80889719dc3',1,'glm']]], + ['f32quat',['f32quat',['../a00304.html#ga38e674196ba411d642be40c47bf33939',1,'glm']]], + ['f32vec1',['f32vec1',['../a00304.html#ga701f32ab5b3fb06996b41f5c0d643805',1,'glm::f32vec1()'],['../a00346.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]], + ['f32vec2',['f32vec2',['../a00304.html#ga5d6c70e080409a76a257dc55bd8ea2c8',1,'glm']]], + ['f32vec3',['f32vec3',['../a00304.html#gaea5c4518e175162e306d2c2b5ef5ac79',1,'glm']]], + ['f32vec4',['f32vec4',['../a00304.html#ga31c6ca0e074a44007f49a9a3720b18c8',1,'glm']]], + ['f64',['f64',['../a00304.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]], + ['f64mat1',['f64mat1',['../a00346.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]], + ['f64mat1x1',['f64mat1x1',['../a00346.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]], + ['f64mat2',['f64mat2',['../a00304.html#gad9771450a54785d13080cdde0fe20c1d',1,'glm']]], + ['f64mat2x2',['f64mat2x2',['../a00304.html#ga9ec7c4c79e303c053e30729a95fb2c37',1,'glm']]], + ['f64mat2x3',['f64mat2x3',['../a00304.html#gae3ab5719fc4c1e966631dbbcba8d412a',1,'glm']]], + ['f64mat2x4',['f64mat2x4',['../a00304.html#gac87278e0c702ba8afff76316d4eeb769',1,'glm']]], + ['f64mat3',['f64mat3',['../a00304.html#ga9b69181efbf8f37ae934f135137b29c0',1,'glm']]], + ['f64mat3x2',['f64mat3x2',['../a00304.html#ga2473d8bf3f4abf967c4d0e18175be6f7',1,'glm']]], + ['f64mat3x3',['f64mat3x3',['../a00304.html#ga916c1aed91cf91f7b41399ebe7c6e185',1,'glm']]], + ['f64mat3x4',['f64mat3x4',['../a00304.html#gaab239fa9e35b65a67cbaa6ac082f3675',1,'glm']]], + ['f64mat4',['f64mat4',['../a00304.html#ga0ecd3f4952536e5ef12702b44d2626fc',1,'glm']]], + ['f64mat4x2',['f64mat4x2',['../a00304.html#gab7daf79d6bc06a68bea1c6f5e11b5512',1,'glm']]], + ['f64mat4x3',['f64mat4x3',['../a00304.html#ga3e2e66ffbe341a80bc005ba2b9552110',1,'glm']]], + ['f64mat4x4',['f64mat4x4',['../a00304.html#gae52e2b7077a9ff928a06ab5ce600b81e',1,'glm']]], + ['f64quat',['f64quat',['../a00304.html#ga2b114a2f2af0fe1dfeb569c767822940',1,'glm']]], + ['f64vec1',['f64vec1',['../a00304.html#gade502df1ce14f837fae7f60a03ddb9b0',1,'glm::f64vec1()'],['../a00346.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]], + ['f64vec2',['f64vec2',['../a00304.html#gadc4e1594f9555d919131ee02b17822a2',1,'glm']]], + ['f64vec3',['f64vec3',['../a00304.html#gaa7a1ddca75c5f629173bf4772db7a635',1,'glm']]], + ['f64vec4',['f64vec4',['../a00304.html#ga66e92e57260bdb910609b9a56bf83e97',1,'glm']]], + ['faceforward',['faceforward',['../a00279.html#ga7aed0a36c738169402404a3a5d54e43b',1,'glm']]], + ['factorial',['factorial',['../a00330.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]], + ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00031.html',1,'']]], + ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00032.html',1,'']]], + ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00033.html',1,'']]], + ['fastacos',['fastAcos',['../a00325.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]], + ['fastasin',['fastAsin',['../a00325.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]], + ['fastatan',['fastAtan',['../a00325.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00325.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]], + ['fastcos',['fastCos',['../a00325.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]], + ['fastdistance',['fastDistance',['../a00324.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00324.html#ga42d3e771fa7cb3c60d828e315829df19',1,'glm::fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['fastexp',['fastExp',['../a00323.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00323.html#ga3ba6153aec6bd74628f8b00530aa8d58',1,'glm::fastExp(vec< L, T, Q > const &x)']]], + ['fastexp2',['fastExp2',['../a00323.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00323.html#gacaaed8b67d20d244b7de217e7816c1b6',1,'glm::fastExp2(vec< L, T, Q > const &x)']]], + ['fastinversesqrt',['fastInverseSqrt',['../a00324.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00324.html#gadcd7be12b1e5ee182141359d4c45dd24',1,'glm::fastInverseSqrt(vec< L, T, Q > const &x)']]], + ['fastlength',['fastLength',['../a00324.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00324.html#ga90f66be92ef61e705c005e7b3209edb8',1,'glm::fastLength(vec< L, T, Q > const &x)']]], + ['fastlog',['fastLog',['../a00323.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00323.html#ga937256993a7219e73f186bb348fe6be8',1,'glm::fastLog(vec< L, T, Q > const &x)']]], + ['fastlog2',['fastLog2',['../a00323.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00323.html#ga7562043539194ccc24649f8475bc5584',1,'glm::fastLog2(vec< L, T, Q > const &x)']]], + ['fastmix',['fastMix',['../a00352.html#ga264e10708d58dd0ff53b7902a2bd2561',1,'glm']]], + ['fastnormalize',['fastNormalize',['../a00324.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]], + ['fastnormalizedot',['fastNormalizeDot',['../a00345.html#ga2746fb9b5bd22b06b2f7c8babba5de9e',1,'glm']]], + ['fastpow',['fastPow',['../a00323.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00323.html#ga15325a8ed2d1c4ed2412c4b3b3927aa2',1,'glm::fastPow(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00323.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00323.html#ga1abe488c0829da5b9de70ac64aeaa7e5',1,'glm::fastPow(vec< L, T, Q > const &x)']]], + ['fastsin',['fastSin',['../a00325.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]], + ['fastsqrt',['fastSqrt',['../a00324.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00324.html#gae83f0c03614f73eae5478c5b6274ee6d',1,'glm::fastSqrt(vec< L, T, Q > const &x)']]], + ['fasttan',['fastTan',['../a00325.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]], + ['fclamp',['fclamp',['../a00321.html#ga1e28539d3a46965ed9ef92ec7cb3b18a',1,'glm::fclamp(genType x, genType minVal, genType maxVal)'],['../a00321.html#ga60796d08903489ee185373593bc16b9d',1,'glm::fclamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00321.html#ga5c15fa4709763c269c86c0b8b3aa2297',1,'glm::fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)']]], + ['fdualquat',['fdualquat',['../a00317.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]], + ['findlsb',['findLSB',['../a00370.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00370.html#ga4454c0331d6369888c28ab677f4810c7',1,'glm::findLSB(vec< L, T, Q > const &v)']]], + ['findmsb',['findMSB',['../a00370.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00370.html#ga39ac4d52028bb6ab08db5ad6562c2872',1,'glm::findMSB(vec< L, T, Q > const &v)']]], + ['findnsb',['findNSB',['../a00261.html#ga2777901e41ad6e1e9d0ad6cc855d1075',1,'glm::findNSB(genIUType x, int significantBitCount)'],['../a00274.html#gaff61eca266da315002a3db92ff0dd604',1,'glm::findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)']]], + ['fliplr',['fliplr',['../a00336.html#gaf39f4e5f78eb29c1a90277d45b9b3feb',1,'glm']]], + ['flipud',['flipud',['../a00336.html#ga85003371f0ba97380dd25e8905de1870',1,'glm']]], + ['float1',['float1',['../a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]], + ['float1x1',['float1x1',['../a00315.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]], + ['float2',['float2',['../a00315.html#ga02d3c013982c183906c61d74aa3166ce',1,'glm']]], + ['float2x2',['float2x2',['../a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f',1,'glm']]], + ['float2x3',['float2x3',['../a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe',1,'glm']]], + ['float2x4',['float2x4',['../a00315.html#gafec3cfd901ab334a92e0242b8f2269b4',1,'glm']]], + ['float3',['float3',['../a00315.html#ga821ff110fc8533a053cbfcc93e078cc0',1,'glm']]], + ['float32',['float32',['../a00304.html#gaacdc525d6f7bddb3ae95d5c311bd06a1',1,'glm']]], + ['float32_5ft',['float32_t',['../a00304.html#gaa4947bc8b47c72fceea9bda730ecf603',1,'glm']]], + ['float3x2',['float3x2',['../a00315.html#gaa6c69f04ba95f3faedf95dae874de576',1,'glm']]], + ['float3x3',['float3x3',['../a00315.html#ga6ceb5d38a58becdf420026e12a6562f3',1,'glm']]], + ['float3x4',['float3x4',['../a00315.html#ga4d2679c321b793ca3784fe0315bb5332',1,'glm']]], + ['float4',['float4',['../a00315.html#gae2da7345087db3815a25d8837a727ef1',1,'glm']]], + ['float4x2',['float4x2',['../a00315.html#ga308b9af0c221145bcfe9bfc129d9098e',1,'glm']]], + ['float4x3',['float4x3',['../a00315.html#gac0a51b4812038aa81d73ffcc37f741ac',1,'glm']]], + ['float4x4',['float4x4',['../a00315.html#gad3051649b3715d828a4ab92cdae7c3bf',1,'glm']]], + ['float64',['float64',['../a00304.html#ga232fad1b0d6dcc7c16aabde98b2e2a80',1,'glm']]], + ['float64_5ft',['float64_t',['../a00304.html#ga728366fef72cd96f0a5fa6429f05469e',1,'glm']]], + ['floatbitstoint',['floatBitsToInt',['../a00241.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &v)'],['../a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed',1,'glm::floatBitsToInt(vec< L, float, Q > const &v)']]], + ['floatbitstouint',['floatBitsToUint',['../a00241.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &v)'],['../a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db',1,'glm::floatBitsToUint(vec< L, float, Q > const &v)']]], + ['floor',['floor',['../a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d',1,'glm']]], + ['floor_5flog2',['floor_log2',['../a00330.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]], + ['floormultiple',['floorMultiple',['../a00302.html#ga2ffa3cd5f2ea746ee1bf57c46da6315e',1,'glm::floorMultiple(genType v, genType Multiple)'],['../a00302.html#gacdd8901448f51f0b192380e422fae3e4',1,'glm::floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['floorpoweroftwo',['floorPowerOfTwo',['../a00302.html#gafe273a57935d04c9db677bf67f9a71f4',1,'glm::floorPowerOfTwo(genIUType v)'],['../a00302.html#gaf0d591a8fca8ddb9289cdeb44b989c2d',1,'glm::floorPowerOfTwo(vec< L, T, Q > const &v)']]], + ['fma',['fma',['../a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]], + ['fmat2',['fmat2',['../a00304.html#ga4541dc2feb2a31d6ecb5a303f3dd3280',1,'glm']]], + ['fmat2x2',['fmat2x2',['../a00304.html#ga3350c93c3275298f940a42875388e4b4',1,'glm']]], + ['fmat2x3',['fmat2x3',['../a00304.html#ga55a2d2a8eb09b5633668257eb3cad453',1,'glm']]], + ['fmat2x4',['fmat2x4',['../a00304.html#ga681381f19f11c9e5ee45cda2c56937ff',1,'glm']]], + ['fmat3',['fmat3',['../a00304.html#ga253d453c20e037730023fea0215cb6f6',1,'glm']]], + ['fmat3x2',['fmat3x2',['../a00304.html#ga6af54d70d9beb0a7ef992a879e86b04f',1,'glm']]], + ['fmat3x3',['fmat3x3',['../a00304.html#gaa07c86650253672a19dbfb898f3265b8',1,'glm']]], + ['fmat3x4',['fmat3x4',['../a00304.html#ga44e158af77a670ee1b58c03cda9e1619',1,'glm']]], + ['fmat4',['fmat4',['../a00304.html#ga8cb400c0f4438f2640035d7b9824a0ca',1,'glm']]], + ['fmat4x2',['fmat4x2',['../a00304.html#ga8c8aa45aafcc23238edb1d5aeb801774',1,'glm']]], + ['fmat4x3',['fmat4x3',['../a00304.html#ga4295048a78bdf46b8a7de77ec665b497',1,'glm']]], + ['fmat4x4',['fmat4x4',['../a00304.html#gad01cc6479bde1fd1870f13d3ed9530b3',1,'glm']]], + ['fmax',['fmax',['../a00258.html#ga36920478565cf608e93064283ce06421',1,'glm::fmax(T a, T b)'],['../a00258.html#ga0007bba71ca451ac70e99d28dfbeaab9',1,'glm::fmax(T a, T b, T C)'],['../a00258.html#ga27e260b1ff4d04c3ad4b864d26cbaf08',1,'glm::fmax(T a, T b, T C, T D)'],['../a00267.html#gad66b6441f7200db16c9f341711733c56',1,'glm::fmax(vec< L, T, Q > const &a, T b)'],['../a00267.html#ga8df4be3f48d6717c40ea788fd30deebf',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b)'],['../a00267.html#ga0f04ba924294dae4234ca93ede23229a',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4ed3eb250ccbe17bfe8ded8a6b72d230',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gae5792cb2b51190057e4aea027eb56f81',1,'glm::fmax(genType x, genType y)']]], + ['fmin',['fmin',['../a00258.html#ga7b2b438a765e2a62098c79eb212f28f0',1,'glm::fmin(T a, T b)'],['../a00258.html#ga1a95fe4cf5437e8133f1093fe9726a64',1,'glm::fmin(T a, T b, T c)'],['../a00258.html#ga3d6f9c6c16bfd6f38f2c4f8076e8b661',1,'glm::fmin(T a, T b, T c, T d)'],['../a00267.html#gae989203363cff9eab5093630df4fe071',1,'glm::fmin(vec< L, T, Q > const &x, T y)'],['../a00267.html#ga7c42e93cd778c9181d1cdeea4d3e43bd',1,'glm::fmin(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00267.html#ga7e62739055b49189d9355471f78fe000',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4a543dd7d22ad1f3b8b839f808a9d93c',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gaa3200559611ac5b9b9ae7283547916a7',1,'glm::fmin(genType x, genType y)']]], + ['fmod',['fmod',['../a00314.html#gae5e80425df9833164ad469e83b475fb4',1,'glm']]], + ['four_5fover_5fpi',['four_over_pi',['../a00290.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]], + ['fract',['fract',['../a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm::fract(genType x)'],['../a00241.html#ga2df623004f634b440d61e018d62c751b',1,'glm::fract(vec< L, T, Q > const &x)']]], + ['frexp',['frexp',['../a00241.html#gaddf5ef73283c171730e0bcc11833fa81',1,'glm']]], + ['frustum',['frustum',['../a00243.html#ga0bcd4542e0affc63a0b8c08fcb839ea9',1,'glm']]], + ['frustumlh',['frustumLH',['../a00243.html#gae4277c37f61d81da01bc9db14ea90296',1,'glm']]], + ['frustumlh_5fno',['frustumLH_NO',['../a00243.html#ga259520cad03b3f8bca9417920035ed01',1,'glm']]], + ['frustumlh_5fzo',['frustumLH_ZO',['../a00243.html#ga94218b094862d17798370242680b9030',1,'glm']]], + ['frustumno',['frustumNO',['../a00243.html#gae34ec664ad44860bf4b5ba631f0e0e90',1,'glm']]], + ['frustumrh',['frustumRH',['../a00243.html#ga4366ab45880c6c5f8b3e8c371ca4b136',1,'glm']]], + ['frustumrh_5fno',['frustumRH_NO',['../a00243.html#ga9236c8439f21be186b79c97b588836b9',1,'glm']]], + ['frustumrh_5fzo',['frustumRH_ZO',['../a00243.html#ga7654a9227f14d5382786b9fc0eb5692d',1,'glm']]], + ['frustumzo',['frustumZO',['../a00243.html#gaa73322e152edf50cf30a6edac342a757',1,'glm']]], + ['functions_2ehpp',['functions.hpp',['../a00034.html',1,'']]], + ['fvec1',['fvec1',['../a00304.html#ga98b9ed43cf8c5cf1d354b23c7df9119f',1,'glm']]], + ['fvec2',['fvec2',['../a00304.html#ga24273aa02abaecaab7f160bac437a339',1,'glm']]], + ['fvec3',['fvec3',['../a00304.html#ga89930533646b30d021759298aa6bf04a',1,'glm']]], + ['fvec4',['fvec4',['../a00304.html#ga713c796c54875cf4092d42ff9d9096b0',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_6.html b/external/include/glm-0.9.9.8/doc/api/search/all_6.html index 4206aa6714..821c374d8c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_6.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_6.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_6.js b/external/include/glm-0.9.9.8/doc/api/search/all_6.js index bdc67a8a24..b67e426f07 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_6.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_6.js @@ -1,143 +1,143 @@ -var searchData= -[ - ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]], - ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]], - ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]], - ['geometric_20functions',['Geometric functions',['../a00279.html',1,'']]], - ['glm_5fext_5fmatrix_5fclip_5fspace',['GLM_EXT_matrix_clip_space',['../a00243.html',1,'']]], - ['glm_5fext_5fmatrix_5fcommon',['GLM_EXT_matrix_common',['../a00244.html',1,'']]], - ['glm_5fext_5fmatrix_5fprojection',['GLM_EXT_matrix_projection',['../a00245.html',1,'']]], - ['glm_5fext_5fmatrix_5frelational',['GLM_EXT_matrix_relational',['../a00246.html',1,'']]], - ['glm_5fext_5fmatrix_5ftransform',['GLM_EXT_matrix_transform',['../a00247.html',1,'']]], - ['glm_5fext_5fquaternion_5fcommon',['GLM_EXT_quaternion_common',['../a00248.html',1,'']]], - ['glm_5fext_5fquaternion_5fdouble',['GLM_EXT_quaternion_double',['../a00249.html',1,'']]], - ['glm_5fext_5fquaternion_5fdouble_5fprecision',['GLM_EXT_quaternion_double_precision',['../a00250.html',1,'']]], - ['glm_5fext_5fquaternion_5fexponential',['GLM_EXT_quaternion_exponential',['../a00251.html',1,'']]], - ['glm_5fext_5fquaternion_5ffloat',['GLM_EXT_quaternion_float',['../a00252.html',1,'']]], - ['glm_5fext_5fquaternion_5ffloat_5fprecision',['GLM_EXT_quaternion_float_precision',['../a00253.html',1,'']]], - ['glm_5fext_5fquaternion_5fgeometric',['GLM_EXT_quaternion_geometric',['../a00254.html',1,'']]], - ['glm_5fext_5fquaternion_5frelational',['GLM_EXT_quaternion_relational',['../a00255.html',1,'']]], - ['glm_5fext_5fquaternion_5ftransform',['GLM_EXT_quaternion_transform',['../a00256.html',1,'']]], - ['glm_5fext_5fquaternion_5ftrigonometric',['GLM_EXT_quaternion_trigonometric',['../a00257.html',1,'']]], - ['glm_5fext_5fscalar_5fcommon',['GLM_EXT_scalar_common',['../a00258.html',1,'']]], - ['glm_5fext_5fscalar_5fconstants',['GLM_EXT_scalar_constants',['../a00259.html',1,'']]], - ['glm_5fext_5fscalar_5fint_5fsized',['GLM_EXT_scalar_int_sized',['../a00260.html',1,'']]], - ['glm_5fext_5fscalar_5finteger',['GLM_EXT_scalar_integer',['../a00261.html',1,'']]], - ['glm_5fext_5fscalar_5frelational',['GLM_EXT_scalar_relational',['../a00262.html',1,'']]], - ['glm_5fext_5fscalar_5fuint_5fsized',['GLM_EXT_scalar_uint_sized',['../a00263.html',1,'']]], - ['glm_5fext_5fscalar_5fulp',['GLM_EXT_scalar_ulp',['../a00264.html',1,'']]], - ['glm_5fext_5fvector_5fbool1',['GLM_EXT_vector_bool1',['../a00265.html',1,'']]], - ['glm_5fext_5fvector_5fbool1_5fprecision',['GLM_EXT_vector_bool1_precision',['../a00266.html',1,'']]], - ['glm_5fext_5fvector_5fcommon',['GLM_EXT_vector_common',['../a00267.html',1,'']]], - ['glm_5fext_5fvector_5fdouble1',['GLM_EXT_vector_double1',['../a00268.html',1,'']]], - ['glm_5fext_5fvector_5fdouble1_5fprecision',['GLM_EXT_vector_double1_precision',['../a00269.html',1,'']]], - ['glm_5fext_5fvector_5ffloat1',['GLM_EXT_vector_float1',['../a00270.html',1,'']]], - ['glm_5fext_5fvector_5ffloat1_5fprecision',['GLM_EXT_vector_float1_precision',['../a00271.html',1,'']]], - ['glm_5fext_5fvector_5fint1',['GLM_EXT_vector_int1',['../a00272.html',1,'']]], - ['glm_5fext_5fvector_5fint1_5fprecision',['GLM_EXT_vector_int1_precision',['../a00273.html',1,'']]], - ['glm_5fext_5fvector_5finteger',['GLM_EXT_vector_integer',['../a00274.html',1,'']]], - ['glm_5fext_5fvector_5frelational',['GLM_EXT_vector_relational',['../a00275.html',1,'']]], - ['glm_5fext_5fvector_5fuint1',['GLM_EXT_vector_uint1',['../a00276.html',1,'']]], - ['glm_5fext_5fvector_5fuint1_5fprecision',['GLM_EXT_vector_uint1_precision',['../a00277.html',1,'']]], - ['glm_5fext_5fvector_5fulp',['GLM_EXT_vector_ulp',['../a00278.html',1,'']]], - ['gauss',['gauss',['../a00326.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00326.html#gad19ec8754a83c0b9a8dc16b7e60705ab',1,'glm::gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)']]], - ['gaussrand',['gaussRand',['../a00300.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]], - ['geometric_2ehpp',['geometric.hpp',['../a00036.html',1,'']]], - ['glm_2ehpp',['glm.hpp',['../a00037.html',1,'']]], - ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00364.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00364.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00364.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00364.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00364.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00364.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00364.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00364.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00364.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00364.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00364.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00364.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00364.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00364.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00364.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00364.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00364.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00364.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00364.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00364.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00364.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00364.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00364.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00364.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00364.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00364.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00364.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00364.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00364.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00364.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00364.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00364.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00364.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00364.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00364.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00364.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00364.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00364.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00364.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00364.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00364.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00364.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00364.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00364.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00364.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00364.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00364.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00364.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00364.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00364.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00364.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00364.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00364.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00364.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00364.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00364.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00364.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00364.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00364.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00364.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00364.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00364.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00364.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00364.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00364.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00364.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00364.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00364.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00364.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00364.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00364.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00364.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00364.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00364.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00364.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00364.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00364.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00364.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00364.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00364.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00364.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00364.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00364.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00364.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00364.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00364.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00364.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00364.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00364.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00364.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00364.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00364.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00364.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00364.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00364.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00364.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00364.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00364.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00364.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00364.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00364.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00364.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00364.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00364.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00364.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00364.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00364.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00364.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00364.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00364.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00364.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00364.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00364.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00364.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00364.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00364.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00364.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00364.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00364.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00364.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00364.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00364.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00364.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00364.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00364.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00364.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00364.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00364.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00364.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00364.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00364.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00364.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00364.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00364.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00364.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00364.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00364.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00364.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00364.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00364.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00364.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00364.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00364.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00364.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00364.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00364.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00364.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00364.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00364.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00364.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00364.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00364.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00364.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00364.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00364.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00364.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00364.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00364.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00364.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00364.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00364.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00364.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00364.html#gacce4ac532880b8c7469d3c31974420a1',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00364.html#ga0498e0e249a6faddaf96aa55d7f81c3b',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00364.html#ga7435d87de82a0d652b35dc5b9cc718d5',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00364.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00364.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00364.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00364.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00364.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00364.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00364.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00364.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00364.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00364.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00364.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00364.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00364.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00364.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00364.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00364.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00364.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00364.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00364.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00364.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00364.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00364.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00364.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00364.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00364.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00364.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00364.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00364.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00364.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00364.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00364.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00364.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00364.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00364.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00364.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00364.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00364.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00364.html#ga19c2ba545d1f2f36bcb7b60c9a228622',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16)'],['../a00364.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00364.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00364.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]], - ['golden_5fratio',['golden_ratio',['../a00290.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]], - ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00038.html',1,'']]], - ['greaterthan',['greaterThan',['../a00299.html#ga8f7fa76e06c417b757ddfd438f3f677b',1,'glm::greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gadfdb8ea82deca869ddc7e63ea5a63ae4',1,'glm::greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['greaterthanequal',['greaterThanEqual',['../a00299.html#ga388cbeba987dae7b5937f742efa49a5a',1,'glm::greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#ga859975f538940f8d18fe62f916b9abd7',1,'glm::greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00288.html',1,'']]], - ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00289.html',1,'']]], - ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00290.html',1,'']]], - ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00291.html',1,'']]], - ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00292.html',1,'']]], - ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00293.html',1,'']]], - ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00294.html',1,'']]], - ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00295.html',1,'']]], - ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00296.html',1,'']]], - ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00297.html',1,'']]], - ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00298.html',1,'']]], - ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00299.html',1,'']]], - ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00300.html',1,'']]], - ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00301.html',1,'']]], - ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00302.html',1,'']]], - ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00303.html',1,'']]], - ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00304.html',1,'']]], - ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00305.html',1,'']]], - ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00306.html',1,'']]], - ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00307.html',1,'']]], - ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00308.html',1,'']]], - ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00309.html',1,'']]], - ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00310.html',1,'']]], - ['glm_5fgtx_5fcolor_5fencoding',['GLM_GTX_color_encoding',['../a00311.html',1,'']]], - ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00312.html',1,'']]], - ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00313.html',1,'']]], - ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00314.html',1,'']]], - ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00315.html',1,'']]], - ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00316.html',1,'']]], - ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00317.html',1,'']]], - ['glm_5fgtx_5feasing',['GLM_GTX_easing',['../a00318.html',1,'']]], - ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00319.html',1,'']]], - ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00320.html',1,'']]], - ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00321.html',1,'']]], - ['glm_5fgtx_5fexterior_5fproduct',['GLM_GTX_exterior_product',['../a00322.html',1,'']]], - ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00323.html',1,'']]], - ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00324.html',1,'']]], - ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00325.html',1,'']]], - ['glm_5fgtx_5ffunctions',['GLM_GTX_functions',['../a00326.html',1,'']]], - ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00327.html',1,'']]], - ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00328.html',1,'']]], - ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00329.html',1,'']]], - ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00330.html',1,'']]], - ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00331.html',1,'']]], - ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00332.html',1,'']]], - ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00333.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00334.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00335.html',1,'']]], - ['glm_5fgtx_5fmatrix_5ffactorisation',['GLM_GTX_matrix_factorisation',['../a00336.html',1,'']]], - ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00337.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00338.html',1,'']]], - ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00339.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00340.html',1,'']]], - ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00341.html',1,'']]], - ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00342.html',1,'']]], - ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00343.html',1,'']]], - ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00344.html',1,'']]], - ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00345.html',1,'']]], - ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00346.html',1,'']]], - ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00347.html',1,'']]], - ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00348.html',1,'']]], - ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00349.html',1,'']]], - ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00350.html',1,'']]], - ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00351.html',1,'']]], - ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00352.html',1,'']]], - ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00353.html',1,'']]], - ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00354.html',1,'']]], - ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00355.html',1,'']]], - ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00356.html',1,'']]], - ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00357.html',1,'']]], - ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00358.html',1,'']]], - ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00359.html',1,'']]], - ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00360.html',1,'']]], - ['glm_5fgtx_5ftexture',['GLM_GTX_texture',['../a00361.html',1,'']]], - ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00362.html',1,'']]], - ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00363.html',1,'']]], - ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00364.html',1,'']]], - ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00365.html',1,'']]], - ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00366.html',1,'']]], - ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00367.html',1,'']]], - ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00368.html',1,'']]], - ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00369.html',1,'']]], - ['integer_2ehpp',['integer.hpp',['../a00042.html',1,'']]], - ['integer_2ehpp',['integer.hpp',['../a00041.html',1,'']]], - ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00109.html',1,'']]], - ['packing_2ehpp',['packing.hpp',['../a00119.html',1,'']]], - ['quaternion_2ehpp',['quaternion.hpp',['../a00126.html',1,'']]], - ['quaternion_2ehpp',['quaternion.hpp',['../a00125.html',1,'']]], - ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00150.html',1,'']]], - ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00161.html',1,'']]], - ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00162.html',1,'']]] -]; +var searchData= +[ + ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]], + ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]], + ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]], + ['geometric_20functions',['Geometric functions',['../a00279.html',1,'']]], + ['glm_5fext_5fmatrix_5fclip_5fspace',['GLM_EXT_matrix_clip_space',['../a00243.html',1,'']]], + ['glm_5fext_5fmatrix_5fcommon',['GLM_EXT_matrix_common',['../a00244.html',1,'']]], + ['glm_5fext_5fmatrix_5fprojection',['GLM_EXT_matrix_projection',['../a00245.html',1,'']]], + ['glm_5fext_5fmatrix_5frelational',['GLM_EXT_matrix_relational',['../a00246.html',1,'']]], + ['glm_5fext_5fmatrix_5ftransform',['GLM_EXT_matrix_transform',['../a00247.html',1,'']]], + ['glm_5fext_5fquaternion_5fcommon',['GLM_EXT_quaternion_common',['../a00248.html',1,'']]], + ['glm_5fext_5fquaternion_5fdouble',['GLM_EXT_quaternion_double',['../a00249.html',1,'']]], + ['glm_5fext_5fquaternion_5fdouble_5fprecision',['GLM_EXT_quaternion_double_precision',['../a00250.html',1,'']]], + ['glm_5fext_5fquaternion_5fexponential',['GLM_EXT_quaternion_exponential',['../a00251.html',1,'']]], + ['glm_5fext_5fquaternion_5ffloat',['GLM_EXT_quaternion_float',['../a00252.html',1,'']]], + ['glm_5fext_5fquaternion_5ffloat_5fprecision',['GLM_EXT_quaternion_float_precision',['../a00253.html',1,'']]], + ['glm_5fext_5fquaternion_5fgeometric',['GLM_EXT_quaternion_geometric',['../a00254.html',1,'']]], + ['glm_5fext_5fquaternion_5frelational',['GLM_EXT_quaternion_relational',['../a00255.html',1,'']]], + ['glm_5fext_5fquaternion_5ftransform',['GLM_EXT_quaternion_transform',['../a00256.html',1,'']]], + ['glm_5fext_5fquaternion_5ftrigonometric',['GLM_EXT_quaternion_trigonometric',['../a00257.html',1,'']]], + ['glm_5fext_5fscalar_5fcommon',['GLM_EXT_scalar_common',['../a00258.html',1,'']]], + ['glm_5fext_5fscalar_5fconstants',['GLM_EXT_scalar_constants',['../a00259.html',1,'']]], + ['glm_5fext_5fscalar_5fint_5fsized',['GLM_EXT_scalar_int_sized',['../a00260.html',1,'']]], + ['glm_5fext_5fscalar_5finteger',['GLM_EXT_scalar_integer',['../a00261.html',1,'']]], + ['glm_5fext_5fscalar_5frelational',['GLM_EXT_scalar_relational',['../a00262.html',1,'']]], + ['glm_5fext_5fscalar_5fuint_5fsized',['GLM_EXT_scalar_uint_sized',['../a00263.html',1,'']]], + ['glm_5fext_5fscalar_5fulp',['GLM_EXT_scalar_ulp',['../a00264.html',1,'']]], + ['glm_5fext_5fvector_5fbool1',['GLM_EXT_vector_bool1',['../a00265.html',1,'']]], + ['glm_5fext_5fvector_5fbool1_5fprecision',['GLM_EXT_vector_bool1_precision',['../a00266.html',1,'']]], + ['glm_5fext_5fvector_5fcommon',['GLM_EXT_vector_common',['../a00267.html',1,'']]], + ['glm_5fext_5fvector_5fdouble1',['GLM_EXT_vector_double1',['../a00268.html',1,'']]], + ['glm_5fext_5fvector_5fdouble1_5fprecision',['GLM_EXT_vector_double1_precision',['../a00269.html',1,'']]], + ['glm_5fext_5fvector_5ffloat1',['GLM_EXT_vector_float1',['../a00270.html',1,'']]], + ['glm_5fext_5fvector_5ffloat1_5fprecision',['GLM_EXT_vector_float1_precision',['../a00271.html',1,'']]], + ['glm_5fext_5fvector_5fint1',['GLM_EXT_vector_int1',['../a00272.html',1,'']]], + ['glm_5fext_5fvector_5fint1_5fprecision',['GLM_EXT_vector_int1_precision',['../a00273.html',1,'']]], + ['glm_5fext_5fvector_5finteger',['GLM_EXT_vector_integer',['../a00274.html',1,'']]], + ['glm_5fext_5fvector_5frelational',['GLM_EXT_vector_relational',['../a00275.html',1,'']]], + ['glm_5fext_5fvector_5fuint1',['GLM_EXT_vector_uint1',['../a00276.html',1,'']]], + ['glm_5fext_5fvector_5fuint1_5fprecision',['GLM_EXT_vector_uint1_precision',['../a00277.html',1,'']]], + ['glm_5fext_5fvector_5fulp',['GLM_EXT_vector_ulp',['../a00278.html',1,'']]], + ['gauss',['gauss',['../a00326.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00326.html#gad19ec8754a83c0b9a8dc16b7e60705ab',1,'glm::gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)']]], + ['gaussrand',['gaussRand',['../a00300.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]], + ['geometric_2ehpp',['geometric.hpp',['../a00036.html',1,'']]], + ['glm_2ehpp',['glm.hpp',['../a00037.html',1,'']]], + ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00364.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00364.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00364.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00364.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00364.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00364.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00364.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00364.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00364.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00364.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00364.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00364.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00364.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00364.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00364.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00364.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00364.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00364.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00364.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00364.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00364.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00364.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00364.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00364.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00364.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00364.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00364.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00364.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00364.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00364.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00364.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00364.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00364.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00364.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00364.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00364.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00364.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00364.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00364.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00364.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00364.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00364.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00364.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00364.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00364.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00364.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00364.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00364.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00364.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00364.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00364.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00364.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00364.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00364.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00364.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00364.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00364.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00364.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00364.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00364.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00364.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00364.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00364.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00364.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00364.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00364.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00364.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00364.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00364.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00364.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00364.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00364.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00364.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00364.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00364.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00364.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00364.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00364.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00364.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00364.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00364.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00364.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00364.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00364.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00364.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00364.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00364.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00364.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00364.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00364.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00364.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00364.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00364.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00364.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00364.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00364.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00364.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00364.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00364.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00364.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00364.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00364.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00364.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00364.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00364.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00364.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00364.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00364.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00364.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00364.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00364.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00364.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00364.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00364.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00364.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00364.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00364.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00364.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00364.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00364.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00364.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00364.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00364.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00364.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00364.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00364.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00364.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00364.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00364.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00364.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00364.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00364.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00364.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00364.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00364.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00364.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00364.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00364.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00364.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00364.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00364.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00364.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00364.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00364.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00364.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00364.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00364.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00364.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00364.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00364.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00364.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00364.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00364.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00364.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00364.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00364.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00364.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00364.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00364.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00364.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00364.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00364.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00364.html#gacce4ac532880b8c7469d3c31974420a1',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00364.html#ga0498e0e249a6faddaf96aa55d7f81c3b',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00364.html#ga7435d87de82a0d652b35dc5b9cc718d5',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00364.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00364.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00364.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00364.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00364.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00364.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00364.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00364.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00364.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00364.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00364.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00364.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00364.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00364.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00364.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00364.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00364.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00364.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00364.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00364.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00364.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00364.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00364.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00364.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00364.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00364.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00364.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00364.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00364.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00364.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00364.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00364.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00364.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00364.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00364.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00364.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00364.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00364.html#ga19c2ba545d1f2f36bcb7b60c9a228622',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16)'],['../a00364.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00364.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00364.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]], + ['golden_5fratio',['golden_ratio',['../a00290.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]], + ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00038.html',1,'']]], + ['greaterthan',['greaterThan',['../a00299.html#ga8f7fa76e06c417b757ddfd438f3f677b',1,'glm::greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gadfdb8ea82deca869ddc7e63ea5a63ae4',1,'glm::greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['greaterthanequal',['greaterThanEqual',['../a00299.html#ga388cbeba987dae7b5937f742efa49a5a',1,'glm::greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#ga859975f538940f8d18fe62f916b9abd7',1,'glm::greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00288.html',1,'']]], + ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00289.html',1,'']]], + ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00290.html',1,'']]], + ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00291.html',1,'']]], + ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00292.html',1,'']]], + ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00293.html',1,'']]], + ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00294.html',1,'']]], + ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00295.html',1,'']]], + ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00296.html',1,'']]], + ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00297.html',1,'']]], + ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00298.html',1,'']]], + ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00299.html',1,'']]], + ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00300.html',1,'']]], + ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00301.html',1,'']]], + ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00302.html',1,'']]], + ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00303.html',1,'']]], + ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00304.html',1,'']]], + ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00305.html',1,'']]], + ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00306.html',1,'']]], + ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00307.html',1,'']]], + ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00308.html',1,'']]], + ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00309.html',1,'']]], + ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00310.html',1,'']]], + ['glm_5fgtx_5fcolor_5fencoding',['GLM_GTX_color_encoding',['../a00311.html',1,'']]], + ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00312.html',1,'']]], + ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00313.html',1,'']]], + ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00314.html',1,'']]], + ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00315.html',1,'']]], + ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00316.html',1,'']]], + ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00317.html',1,'']]], + ['glm_5fgtx_5feasing',['GLM_GTX_easing',['../a00318.html',1,'']]], + ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00319.html',1,'']]], + ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00320.html',1,'']]], + ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00321.html',1,'']]], + ['glm_5fgtx_5fexterior_5fproduct',['GLM_GTX_exterior_product',['../a00322.html',1,'']]], + ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00323.html',1,'']]], + ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00324.html',1,'']]], + ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00325.html',1,'']]], + ['glm_5fgtx_5ffunctions',['GLM_GTX_functions',['../a00326.html',1,'']]], + ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00327.html',1,'']]], + ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00328.html',1,'']]], + ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00329.html',1,'']]], + ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00330.html',1,'']]], + ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00331.html',1,'']]], + ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00332.html',1,'']]], + ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00333.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00334.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00335.html',1,'']]], + ['glm_5fgtx_5fmatrix_5ffactorisation',['GLM_GTX_matrix_factorisation',['../a00336.html',1,'']]], + ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00337.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00338.html',1,'']]], + ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00339.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00340.html',1,'']]], + ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00341.html',1,'']]], + ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00342.html',1,'']]], + ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00343.html',1,'']]], + ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00344.html',1,'']]], + ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00345.html',1,'']]], + ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00346.html',1,'']]], + ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00347.html',1,'']]], + ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00348.html',1,'']]], + ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00349.html',1,'']]], + ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00350.html',1,'']]], + ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00351.html',1,'']]], + ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00352.html',1,'']]], + ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00353.html',1,'']]], + ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00354.html',1,'']]], + ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00355.html',1,'']]], + ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00356.html',1,'']]], + ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00357.html',1,'']]], + ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00358.html',1,'']]], + ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00359.html',1,'']]], + ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00360.html',1,'']]], + ['glm_5fgtx_5ftexture',['GLM_GTX_texture',['../a00361.html',1,'']]], + ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00362.html',1,'']]], + ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00363.html',1,'']]], + ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00364.html',1,'']]], + ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00365.html',1,'']]], + ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00366.html',1,'']]], + ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00367.html',1,'']]], + ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00368.html',1,'']]], + ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00369.html',1,'']]], + ['integer_2ehpp',['integer.hpp',['../a00042.html',1,'']]], + ['integer_2ehpp',['integer.hpp',['../a00041.html',1,'']]], + ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00109.html',1,'']]], + ['packing_2ehpp',['packing.hpp',['../a00119.html',1,'']]], + ['quaternion_2ehpp',['quaternion.hpp',['../a00126.html',1,'']]], + ['quaternion_2ehpp',['quaternion.hpp',['../a00125.html',1,'']]], + ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00150.html',1,'']]], + ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00161.html',1,'']]], + ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00162.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_7.html b/external/include/glm-0.9.9.8/doc/api/search/all_7.html index df6797bf13..38c6c00062 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_7.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_7.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_7.js b/external/include/glm-0.9.9.8/doc/api/search/all_7.js index a33f514256..3ac6a3eeed 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_7.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_7.js @@ -1,194 +1,194 @@ -var searchData= -[ - ['half_5fpi',['half_pi',['../a00290.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]], - ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00039.html',1,'']]], - ['hash_2ehpp',['hash.hpp',['../a00040.html',1,'']]], - ['hermite',['hermite',['../a00358.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]], - ['highestbitvalue',['highestBitValue',['../a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00309.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]], - ['highp_5fbvec1',['highp_bvec1',['../a00266.html#gae8a1e14abae1387274f57741750c06a2',1,'glm']]], - ['highp_5fbvec2',['highp_bvec2',['../a00282.html#gac6c781a85f012d77a75310a3058702c2',1,'glm']]], - ['highp_5fbvec3',['highp_bvec3',['../a00282.html#gaedb70027d89a0a405046aefda4eabaa6',1,'glm']]], - ['highp_5fbvec4',['highp_bvec4',['../a00282.html#gaee663ff64429443ab07a5327074192f6',1,'glm']]], - ['highp_5fddualquat',['highp_ddualquat',['../a00317.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]], - ['highp_5fdmat2',['highp_dmat2',['../a00284.html#ga369b447bb1b312449b679ea1f90f3cea',1,'glm']]], - ['highp_5fdmat2x2',['highp_dmat2x2',['../a00284.html#gae27ac20302c2e39b6c78e7fe18e62ef7',1,'glm']]], - ['highp_5fdmat2x3',['highp_dmat2x3',['../a00284.html#gad4689ec33bc2c26e10132b174b49001a',1,'glm']]], - ['highp_5fdmat2x4',['highp_dmat2x4',['../a00284.html#ga5ceeb46670fdc000a0701910cc5061c9',1,'glm']]], - ['highp_5fdmat3',['highp_dmat3',['../a00284.html#ga86d6d4dbad92ffdcc759773340e15a97',1,'glm']]], - ['highp_5fdmat3x2',['highp_dmat3x2',['../a00284.html#ga3647309010a2160e9ec89bc6f7c95c35',1,'glm']]], - ['highp_5fdmat3x3',['highp_dmat3x3',['../a00284.html#gae367ea93c4ad8a7c101dd27b8b2b04ce',1,'glm']]], - ['highp_5fdmat3x4',['highp_dmat3x4',['../a00284.html#ga6543eeeb64f48d79a0b96484308c50f0',1,'glm']]], - ['highp_5fdmat4',['highp_dmat4',['../a00284.html#ga945254f459860741138bceb74da496b9',1,'glm']]], - ['highp_5fdmat4x2',['highp_dmat4x2',['../a00284.html#gaeda1f474c668eaecc443bea85a4a4eca',1,'glm']]], - ['highp_5fdmat4x3',['highp_dmat4x3',['../a00284.html#gacf237c2d8832fe8db2d7e187585d34bd',1,'glm']]], - ['highp_5fdmat4x4',['highp_dmat4x4',['../a00284.html#ga118d24a3d12c034e7cccef7bf2f01b8a',1,'glm']]], - ['highp_5fdquat',['highp_dquat',['../a00250.html#gaf13a25f41afc03480b40fc71bd249cec',1,'glm']]], - ['highp_5fdualquat',['highp_dualquat',['../a00317.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]], - ['highp_5fdvec1',['highp_dvec1',['../a00269.html#ga77c22c4426da3a6865c88d3fc907e3fe',1,'glm']]], - ['highp_5fdvec2',['highp_dvec2',['../a00282.html#gab98d77cca255914f5e29697fcbc2d975',1,'glm']]], - ['highp_5fdvec3',['highp_dvec3',['../a00282.html#gab24dc20dcdc5b71282634bdbf6b70105',1,'glm']]], - ['highp_5fdvec4',['highp_dvec4',['../a00282.html#gab654f4ed4a99d64a6cfc65320c2a7590',1,'glm']]], - ['highp_5ff32',['highp_f32',['../a00304.html#ga6906e1ef0b34064b4b675489c5c38725',1,'glm']]], - ['highp_5ff32mat2',['highp_f32mat2',['../a00304.html#ga298f7d4d273678d0282812368da27fda',1,'glm']]], - ['highp_5ff32mat2x2',['highp_f32mat2x2',['../a00304.html#gae5eb02d92b7d4605a4b7f37ae5cb2968',1,'glm']]], - ['highp_5ff32mat2x3',['highp_f32mat2x3',['../a00304.html#ga0aeb5cb001473b08c88175012708a379',1,'glm']]], - ['highp_5ff32mat2x4',['highp_f32mat2x4',['../a00304.html#ga88938ee1e7981fa3402e88da6ad74531',1,'glm']]], - ['highp_5ff32mat3',['highp_f32mat3',['../a00304.html#ga24f9ef3263b1638564713892cc37981f',1,'glm']]], - ['highp_5ff32mat3x2',['highp_f32mat3x2',['../a00304.html#ga36537e701456f12c20e73f469cac4967',1,'glm']]], - ['highp_5ff32mat3x3',['highp_f32mat3x3',['../a00304.html#gaab691ae40c37976d268d8cac0096e0e1',1,'glm']]], - ['highp_5ff32mat3x4',['highp_f32mat3x4',['../a00304.html#gaa5086dbd6efb272d13fc88829330861d',1,'glm']]], - ['highp_5ff32mat4',['highp_f32mat4',['../a00304.html#ga14c90ca49885723f51d06e295587236f',1,'glm']]], - ['highp_5ff32mat4x2',['highp_f32mat4x2',['../a00304.html#ga602e119c6b246b4f6edcf66845f2aa0f',1,'glm']]], - ['highp_5ff32mat4x3',['highp_f32mat4x3',['../a00304.html#ga66bffdd8e5c0d3ef9958bbab9ca1ba59',1,'glm']]], - ['highp_5ff32mat4x4',['highp_f32mat4x4',['../a00304.html#gaf1b712b97b2322685fbbed28febe5f84',1,'glm']]], - ['highp_5ff32quat',['highp_f32quat',['../a00304.html#ga4252cf7f5b0e3cd47c3d3badf0ef43b3',1,'glm']]], - ['highp_5ff32vec1',['highp_f32vec1',['../a00304.html#gab1b1c9e8667902b78b2c330e4d383a61',1,'glm']]], - ['highp_5ff32vec2',['highp_f32vec2',['../a00304.html#ga0b8ebd4262331e139ff257d7cf2a4b77',1,'glm']]], - ['highp_5ff32vec3',['highp_f32vec3',['../a00304.html#ga522775dbcc6d96246a1c5cf02344fd8c',1,'glm']]], - ['highp_5ff32vec4',['highp_f32vec4',['../a00304.html#ga0f038d4e09862a74f03d102c59eda73e',1,'glm']]], - ['highp_5ff64',['highp_f64',['../a00304.html#ga51d5266017d88f62737c1973923a7cf4',1,'glm']]], - ['highp_5ff64mat2',['highp_f64mat2',['../a00304.html#gaf7adb92ce8de0afaff01436b039fd924',1,'glm']]], - ['highp_5ff64mat2x2',['highp_f64mat2x2',['../a00304.html#ga773ea237a051827cfc20de960bc73ff0',1,'glm']]], - ['highp_5ff64mat2x3',['highp_f64mat2x3',['../a00304.html#ga8342c7469384c6d769cacc9e309278d9',1,'glm']]], - ['highp_5ff64mat2x4',['highp_f64mat2x4',['../a00304.html#ga5a67a7440b9c0d1538533540f99036a5',1,'glm']]], - ['highp_5ff64mat3',['highp_f64mat3',['../a00304.html#ga609bf0ace941d6ab1bb2f9522a04e546',1,'glm']]], - ['highp_5ff64mat3x2',['highp_f64mat3x2',['../a00304.html#ga5bdbfb4ce7d05ce1e1b663f50be17e8a',1,'glm']]], - ['highp_5ff64mat3x3',['highp_f64mat3x3',['../a00304.html#ga7c2cadb9b85cc7e0d125db21ca19dea4',1,'glm']]], - ['highp_5ff64mat3x4',['highp_f64mat3x4',['../a00304.html#gad310b1dddeec9ec837a104e7db8de580',1,'glm']]], - ['highp_5ff64mat4',['highp_f64mat4',['../a00304.html#gad308e0ed27d64daa4213fb257fcbd5a5',1,'glm']]], - ['highp_5ff64mat4x2',['highp_f64mat4x2',['../a00304.html#ga58c4631421e323e252fc716b6103e38c',1,'glm']]], - ['highp_5ff64mat4x3',['highp_f64mat4x3',['../a00304.html#gae94823d65648e44d972863c6caa13103',1,'glm']]], - ['highp_5ff64mat4x4',['highp_f64mat4x4',['../a00304.html#ga09a2374b725c4246d263ee36fb66434c',1,'glm']]], - ['highp_5ff64quat',['highp_f64quat',['../a00304.html#gafcfdd74a115163af2ce1093551747352',1,'glm']]], - ['highp_5ff64vec1',['highp_f64vec1',['../a00304.html#ga62c31b133ceee9984fbee05ac4c434a9',1,'glm']]], - ['highp_5ff64vec2',['highp_f64vec2',['../a00304.html#ga670ea1b0a1172bc73b1d7c1e0c26cce2',1,'glm']]], - ['highp_5ff64vec3',['highp_f64vec3',['../a00304.html#gacd1196090ece7a69fb5c3e43a7d4d851',1,'glm']]], - ['highp_5ff64vec4',['highp_f64vec4',['../a00304.html#ga61185c44c8cc0b25d9a0f67d8a267444',1,'glm']]], - ['highp_5ffdualquat',['highp_fdualquat',['../a00317.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]], - ['highp_5ffloat32',['highp_float32',['../a00304.html#gac5a7f21136e0a78d0a1b9f60ef2f8aea',1,'glm']]], - ['highp_5ffloat32_5ft',['highp_float32_t',['../a00304.html#ga5376ef18dca9d248897c3363ef5a06b2',1,'glm']]], - ['highp_5ffloat64',['highp_float64',['../a00304.html#gadbb198a4d7aad82a0f4dc466ef6f6215',1,'glm']]], - ['highp_5ffloat64_5ft',['highp_float64_t',['../a00304.html#gaaeeb0077198cff40e3f48b1108ece139',1,'glm']]], - ['highp_5ffmat2',['highp_fmat2',['../a00304.html#gae98c88d9a7befa9b5877f49176225535',1,'glm']]], - ['highp_5ffmat2x2',['highp_fmat2x2',['../a00304.html#ga28635abcddb2f3e92c33c3f0fcc682ad',1,'glm']]], - ['highp_5ffmat2x3',['highp_fmat2x3',['../a00304.html#gacf111095594996fef29067b2454fccad',1,'glm']]], - ['highp_5ffmat2x4',['highp_fmat2x4',['../a00304.html#ga4920a1536f161f7ded1d6909b7fef0d2',1,'glm']]], - ['highp_5ffmat3',['highp_fmat3',['../a00304.html#gaed2dc69e0d507d4191092dbd44b3eb75',1,'glm']]], - ['highp_5ffmat3x2',['highp_fmat3x2',['../a00304.html#gae54e4d1aeb5a0f0c64822e6f1b299e19',1,'glm']]], - ['highp_5ffmat3x3',['highp_fmat3x3',['../a00304.html#gaa5b44d3ef6efcf33f44876673a7a936e',1,'glm']]], - ['highp_5ffmat3x4',['highp_fmat3x4',['../a00304.html#ga961fac2a885907ffcf4d40daac6615c5',1,'glm']]], - ['highp_5ffmat4',['highp_fmat4',['../a00304.html#gabf28443ce0cc0959077ec39b21f32c39',1,'glm']]], - ['highp_5ffmat4x2',['highp_fmat4x2',['../a00304.html#ga076961cf2d120c7168b957cb2ed107b3',1,'glm']]], - ['highp_5ffmat4x3',['highp_fmat4x3',['../a00304.html#gae406ec670f64170a7437b5e302eeb2cb',1,'glm']]], - ['highp_5ffmat4x4',['highp_fmat4x4',['../a00304.html#gaee80c7cd3caa0f2635058656755f6f69',1,'glm']]], - ['highp_5ffvec1',['highp_fvec1',['../a00304.html#gaa1040342c4efdedc8f90e6267db8d41c',1,'glm']]], - ['highp_5ffvec2',['highp_fvec2',['../a00304.html#ga7c0d196f5fa79f7e892a2f323a0be1ae',1,'glm']]], - ['highp_5ffvec3',['highp_fvec3',['../a00304.html#ga6ef77413883f48d6b53b4169b25edbd0',1,'glm']]], - ['highp_5ffvec4',['highp_fvec4',['../a00304.html#ga8b839abbb44f5102609eed89f6ed61f7',1,'glm']]], - ['highp_5fi16',['highp_i16',['../a00304.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]], - ['highp_5fi16vec1',['highp_i16vec1',['../a00304.html#ga70fdfcc1fd38084bde83c3f06a8b9f19',1,'glm']]], - ['highp_5fi16vec2',['highp_i16vec2',['../a00304.html#gaa7db3ad10947cf70cae6474d05ebd227',1,'glm']]], - ['highp_5fi16vec3',['highp_i16vec3',['../a00304.html#ga5609c8fa2b7eac3dec337d321cb0ca96',1,'glm']]], - ['highp_5fi16vec4',['highp_i16vec4',['../a00304.html#ga7a18659438828f91ccca28f1a1e067b4',1,'glm']]], - ['highp_5fi32',['highp_i32',['../a00304.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]], - ['highp_5fi32vec1',['highp_i32vec1',['../a00304.html#ga6a9d71cc62745302f70422b7dc98755c',1,'glm']]], - ['highp_5fi32vec2',['highp_i32vec2',['../a00304.html#gaa9b4579f8e6f3d9b649a965bcb785530',1,'glm']]], - ['highp_5fi32vec3',['highp_i32vec3',['../a00304.html#ga31e070ea3bdee623e6e18a61ba5718b1',1,'glm']]], - ['highp_5fi32vec4',['highp_i32vec4',['../a00304.html#gadf70eaaa230aeed5a4c9f4c9c5c55902',1,'glm']]], - ['highp_5fi64',['highp_i64',['../a00304.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]], - ['highp_5fi64vec1',['highp_i64vec1',['../a00304.html#gabd2fda3cd208acf5a370ec9b5b3c58d4',1,'glm']]], - ['highp_5fi64vec2',['highp_i64vec2',['../a00304.html#gad9d1903cb20899966e8ebe0670889a5f',1,'glm']]], - ['highp_5fi64vec3',['highp_i64vec3',['../a00304.html#ga62324224b9c6cce9c6b4db96bb704a8a',1,'glm']]], - ['highp_5fi64vec4',['highp_i64vec4',['../a00304.html#gad23b1be9b3bf20352089a6b738f0ebba',1,'glm']]], - ['highp_5fi8',['highp_i8',['../a00304.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]], - ['highp_5fi8vec1',['highp_i8vec1',['../a00304.html#ga1d8c10949691b0fd990253476f47beb3',1,'glm']]], - ['highp_5fi8vec2',['highp_i8vec2',['../a00304.html#ga50542e4cb9b2f9bec213b66e06145d07',1,'glm']]], - ['highp_5fi8vec3',['highp_i8vec3',['../a00304.html#ga8396bfdc081d9113190d0c39c9f67084',1,'glm']]], - ['highp_5fi8vec4',['highp_i8vec4',['../a00304.html#ga4824e3ddf6e608117dfe4809430737b4',1,'glm']]], - ['highp_5fimat2',['highp_imat2',['../a00294.html#ga8499cc3b016003f835314c1c756e9db9',1,'glm']]], - ['highp_5fimat2x2',['highp_imat2x2',['../a00294.html#gaa389e2d1c3b10941cae870bc0aeba5b3',1,'glm']]], - ['highp_5fimat2x3',['highp_imat2x3',['../a00294.html#gaba49d890e06c9444795f5a133fbf1336',1,'glm']]], - ['highp_5fimat2x4',['highp_imat2x4',['../a00294.html#ga05a970fd4366dad6c8a0be676b1eae5b',1,'glm']]], - ['highp_5fimat3',['highp_imat3',['../a00294.html#gaca4506a3efa679eff7c006d9826291fd',1,'glm']]], - ['highp_5fimat3x2',['highp_imat3x2',['../a00294.html#ga91c671c3ff9706c2393e78b22fd84bcb',1,'glm']]], - ['highp_5fimat3x3',['highp_imat3x3',['../a00294.html#ga07d7b7173e2a6f843ff5f1c615a95b41',1,'glm']]], - ['highp_5fimat3x4',['highp_imat3x4',['../a00294.html#ga53008f580be99018a17b357b5a4ffc0d',1,'glm']]], - ['highp_5fimat4',['highp_imat4',['../a00294.html#ga7cfb09b34e0fcf73eaf6512d6483ef56',1,'glm']]], - ['highp_5fimat4x2',['highp_imat4x2',['../a00294.html#ga1858820fb292cae396408b2034407f72',1,'glm']]], - ['highp_5fimat4x3',['highp_imat4x3',['../a00294.html#ga6be0b80ae74bb309bc5b964d93d68fc5',1,'glm']]], - ['highp_5fimat4x4',['highp_imat4x4',['../a00294.html#ga2c783ee6f8f040ab37df2f70392c8b44',1,'glm']]], - ['highp_5fint16',['highp_int16',['../a00304.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]], - ['highp_5fint16_5ft',['highp_int16_t',['../a00304.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]], - ['highp_5fint32',['highp_int32',['../a00304.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]], - ['highp_5fint32_5ft',['highp_int32_t',['../a00304.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]], - ['highp_5fint64',['highp_int64',['../a00304.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]], - ['highp_5fint64_5ft',['highp_int64_t',['../a00304.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]], - ['highp_5fint8',['highp_int8',['../a00304.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]], - ['highp_5fint8_5ft',['highp_int8_t',['../a00304.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]], - ['highp_5fivec1',['highp_ivec1',['../a00273.html#ga7e02566f2bd2caa68e61be45a477c77e',1,'glm']]], - ['highp_5fivec2',['highp_ivec2',['../a00282.html#gaa18f6b80b41c214f10666948539c1f93',1,'glm']]], - ['highp_5fivec3',['highp_ivec3',['../a00282.html#ga7dd782c3ef5719bc6d5c3ca826b8ad18',1,'glm']]], - ['highp_5fivec4',['highp_ivec4',['../a00282.html#gafb84dccdf5d82443df3ffc8428dcaf3e',1,'glm']]], - ['highp_5fmat2',['highp_mat2',['../a00284.html#ga4d5a0055544a516237dcdace049b143d',1,'glm']]], - ['highp_5fmat2x2',['highp_mat2x2',['../a00284.html#ga2352ae43b284c9f71446674c0208c05d',1,'glm']]], - ['highp_5fmat2x3',['highp_mat2x3',['../a00284.html#ga7a0e3fe41512b0494e598f5c58722f19',1,'glm']]], - ['highp_5fmat2x4',['highp_mat2x4',['../a00284.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f',1,'glm']]], - ['highp_5fmat3',['highp_mat3',['../a00284.html#ga3fd9849f3da5ed6e3decc3fb10a20b3e',1,'glm']]], - ['highp_5fmat3x2',['highp_mat3x2',['../a00284.html#ga1eda47a00027ec440eac05d63739c71b',1,'glm']]], - ['highp_5fmat3x3',['highp_mat3x3',['../a00284.html#ga2ea82e12f4d7afcfce8f59894d400230',1,'glm']]], - ['highp_5fmat3x4',['highp_mat3x4',['../a00284.html#ga6454b3a26ea30f69de8e44c08a63d1b7',1,'glm']]], - ['highp_5fmat4',['highp_mat4',['../a00284.html#gad72e13d669d039f12ae5afa23148adc1',1,'glm']]], - ['highp_5fmat4x2',['highp_mat4x2',['../a00284.html#gab68b66e6d2c37b804d0baf970fa4f0e5',1,'glm']]], - ['highp_5fmat4x3',['highp_mat4x3',['../a00284.html#ga8d5a4e65fb976e4553b84995b95ecb38',1,'glm']]], - ['highp_5fmat4x4',['highp_mat4x4',['../a00284.html#ga58cc504be0e3b61c48bc91554a767b9f',1,'glm']]], - ['highp_5fquat',['highp_quat',['../a00253.html#gaa2fd8085774376310aeb80588e0eab6e',1,'glm']]], - ['highp_5fu16',['highp_u16',['../a00304.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]], - ['highp_5fu16vec1',['highp_u16vec1',['../a00304.html#gad064202b4cf9a2972475c03de657cb39',1,'glm']]], - ['highp_5fu16vec2',['highp_u16vec2',['../a00304.html#ga791b15ceb3f1e09d1a0ec6f3057ca159',1,'glm']]], - ['highp_5fu16vec3',['highp_u16vec3',['../a00304.html#gacfd806749008f0ade6ac4bb9dd91082f',1,'glm']]], - ['highp_5fu16vec4',['highp_u16vec4',['../a00304.html#ga8a85a3d54a8a9e14fe7a1f96196c4f61',1,'glm']]], - ['highp_5fu32',['highp_u32',['../a00304.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]], - ['highp_5fu32vec1',['highp_u32vec1',['../a00304.html#ga0e35a565b9036bfc3989f5e23a0792e3',1,'glm']]], - ['highp_5fu32vec2',['highp_u32vec2',['../a00304.html#ga2f256334f83fba4c2d219e414b51df6c',1,'glm']]], - ['highp_5fu32vec3',['highp_u32vec3',['../a00304.html#gaf14d7a50502464e7cbfa074f24684cb1',1,'glm']]], - ['highp_5fu32vec4',['highp_u32vec4',['../a00304.html#ga22166f0da65038b447f3c5e534fff1c2',1,'glm']]], - ['highp_5fu64',['highp_u64',['../a00304.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]], - ['highp_5fu64vec1',['highp_u64vec1',['../a00304.html#gae4fe774744852c4d7d069be2e05257ab',1,'glm']]], - ['highp_5fu64vec2',['highp_u64vec2',['../a00304.html#ga78f77b8b2d17b431ac5a68c0b5d7050d',1,'glm']]], - ['highp_5fu64vec3',['highp_u64vec3',['../a00304.html#ga41bdabea6e589029659331ba47eb78c1',1,'glm']]], - ['highp_5fu64vec4',['highp_u64vec4',['../a00304.html#ga4f15b41aa24b11cc42ad5798c04a2325',1,'glm']]], - ['highp_5fu8',['highp_u8',['../a00304.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]], - ['highp_5fu8vec1',['highp_u8vec1',['../a00304.html#ga8408cb76b6550ff01fa0a3024e7b68d2',1,'glm']]], - ['highp_5fu8vec2',['highp_u8vec2',['../a00304.html#ga27585b7c3ab300059f11fcba465f6fd2',1,'glm']]], - ['highp_5fu8vec3',['highp_u8vec3',['../a00304.html#ga45721c13b956eb691cbd6c6c1429167a',1,'glm']]], - ['highp_5fu8vec4',['highp_u8vec4',['../a00304.html#gae0b75ad0fed8c00ddc0b5ce335d31060',1,'glm']]], - ['highp_5fuint16',['highp_uint16',['../a00304.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]], - ['highp_5fuint16_5ft',['highp_uint16_t',['../a00304.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]], - ['highp_5fuint32',['highp_uint32',['../a00304.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]], - ['highp_5fuint32_5ft',['highp_uint32_t',['../a00304.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]], - ['highp_5fuint64',['highp_uint64',['../a00304.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]], - ['highp_5fuint64_5ft',['highp_uint64_t',['../a00304.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]], - ['highp_5fuint8',['highp_uint8',['../a00304.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]], - ['highp_5fuint8_5ft',['highp_uint8_t',['../a00304.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]], - ['highp_5fumat2',['highp_umat2',['../a00294.html#ga42cbce64c4c1cd121b8437daa6e110de',1,'glm']]], - ['highp_5fumat2x2',['highp_umat2x2',['../a00294.html#ga5337b7bc95f9cbac08a0c00b3f936b28',1,'glm']]], - ['highp_5fumat2x3',['highp_umat2x3',['../a00294.html#ga90718c7128320b24b52f9ea70e643ad4',1,'glm']]], - ['highp_5fumat2x4',['highp_umat2x4',['../a00294.html#gadca0a4724b4a6f56a2355b6f6e19248b',1,'glm']]], - ['highp_5fumat3',['highp_umat3',['../a00294.html#gaa1143120339b7d2d469d327662e8a172',1,'glm']]], - ['highp_5fumat3x2',['highp_umat3x2',['../a00294.html#ga844a5da2e7fc03fc7cccc7f1b70809c4',1,'glm']]], - ['highp_5fumat3x3',['highp_umat3x3',['../a00294.html#ga1f7d41c36b980774a4d2e7c1647fb4b2',1,'glm']]], - ['highp_5fumat3x4',['highp_umat3x4',['../a00294.html#ga25ee15c323924f2d0fe9896d329e5086',1,'glm']]], - ['highp_5fumat4',['highp_umat4',['../a00294.html#gaf665e4e78c2cc32a54ab40325738f9c9',1,'glm']]], - ['highp_5fumat4x2',['highp_umat4x2',['../a00294.html#gae69eb82ec08b0dc9bf2ead2a339ff801',1,'glm']]], - ['highp_5fumat4x3',['highp_umat4x3',['../a00294.html#ga45a8163d02c43216252056b0c120f3a5',1,'glm']]], - ['highp_5fumat4x4',['highp_umat4x4',['../a00294.html#ga6a56cbb769aed334c95241664415f9ba',1,'glm']]], - ['highp_5fuvec1',['highp_uvec1',['../a00277.html#gacda57dd8c2bff4934c7f09ddd87c0f39',1,'glm']]], - ['highp_5fuvec2',['highp_uvec2',['../a00282.html#gad5dd50da9e37387ca6b4e6f9c80fe6f8',1,'glm']]], - ['highp_5fuvec3',['highp_uvec3',['../a00282.html#gaef61508dd40ec523416697982f9ceaae',1,'glm']]], - ['highp_5fuvec4',['highp_uvec4',['../a00282.html#gaeebd7dd9f3e678691f8620241e5f9221',1,'glm']]], - ['highp_5fvec1',['highp_vec1',['../a00271.html#ga9e8ed21862a897c156c0b2abca70b1e9',1,'glm']]], - ['highp_5fvec2',['highp_vec2',['../a00282.html#gaa92c1954d71b1e7914874bd787b43d1c',1,'glm']]], - ['highp_5fvec3',['highp_vec3',['../a00282.html#gaca61dfaccbf2f58f2d8063a4e76b44a9',1,'glm']]], - ['highp_5fvec4',['highp_vec4',['../a00282.html#gad281decae52948b82feb3a9db8f63a7b',1,'glm']]], - ['hsvcolor',['hsvColor',['../a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]] -]; +var searchData= +[ + ['half_5fpi',['half_pi',['../a00290.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]], + ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00039.html',1,'']]], + ['hash_2ehpp',['hash.hpp',['../a00040.html',1,'']]], + ['hermite',['hermite',['../a00358.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]], + ['highestbitvalue',['highestBitValue',['../a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00309.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]], + ['highp_5fbvec1',['highp_bvec1',['../a00266.html#gae8a1e14abae1387274f57741750c06a2',1,'glm']]], + ['highp_5fbvec2',['highp_bvec2',['../a00282.html#gac6c781a85f012d77a75310a3058702c2',1,'glm']]], + ['highp_5fbvec3',['highp_bvec3',['../a00282.html#gaedb70027d89a0a405046aefda4eabaa6',1,'glm']]], + ['highp_5fbvec4',['highp_bvec4',['../a00282.html#gaee663ff64429443ab07a5327074192f6',1,'glm']]], + ['highp_5fddualquat',['highp_ddualquat',['../a00317.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]], + ['highp_5fdmat2',['highp_dmat2',['../a00284.html#ga369b447bb1b312449b679ea1f90f3cea',1,'glm']]], + ['highp_5fdmat2x2',['highp_dmat2x2',['../a00284.html#gae27ac20302c2e39b6c78e7fe18e62ef7',1,'glm']]], + ['highp_5fdmat2x3',['highp_dmat2x3',['../a00284.html#gad4689ec33bc2c26e10132b174b49001a',1,'glm']]], + ['highp_5fdmat2x4',['highp_dmat2x4',['../a00284.html#ga5ceeb46670fdc000a0701910cc5061c9',1,'glm']]], + ['highp_5fdmat3',['highp_dmat3',['../a00284.html#ga86d6d4dbad92ffdcc759773340e15a97',1,'glm']]], + ['highp_5fdmat3x2',['highp_dmat3x2',['../a00284.html#ga3647309010a2160e9ec89bc6f7c95c35',1,'glm']]], + ['highp_5fdmat3x3',['highp_dmat3x3',['../a00284.html#gae367ea93c4ad8a7c101dd27b8b2b04ce',1,'glm']]], + ['highp_5fdmat3x4',['highp_dmat3x4',['../a00284.html#ga6543eeeb64f48d79a0b96484308c50f0',1,'glm']]], + ['highp_5fdmat4',['highp_dmat4',['../a00284.html#ga945254f459860741138bceb74da496b9',1,'glm']]], + ['highp_5fdmat4x2',['highp_dmat4x2',['../a00284.html#gaeda1f474c668eaecc443bea85a4a4eca',1,'glm']]], + ['highp_5fdmat4x3',['highp_dmat4x3',['../a00284.html#gacf237c2d8832fe8db2d7e187585d34bd',1,'glm']]], + ['highp_5fdmat4x4',['highp_dmat4x4',['../a00284.html#ga118d24a3d12c034e7cccef7bf2f01b8a',1,'glm']]], + ['highp_5fdquat',['highp_dquat',['../a00250.html#gaf13a25f41afc03480b40fc71bd249cec',1,'glm']]], + ['highp_5fdualquat',['highp_dualquat',['../a00317.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]], + ['highp_5fdvec1',['highp_dvec1',['../a00269.html#ga77c22c4426da3a6865c88d3fc907e3fe',1,'glm']]], + ['highp_5fdvec2',['highp_dvec2',['../a00282.html#gab98d77cca255914f5e29697fcbc2d975',1,'glm']]], + ['highp_5fdvec3',['highp_dvec3',['../a00282.html#gab24dc20dcdc5b71282634bdbf6b70105',1,'glm']]], + ['highp_5fdvec4',['highp_dvec4',['../a00282.html#gab654f4ed4a99d64a6cfc65320c2a7590',1,'glm']]], + ['highp_5ff32',['highp_f32',['../a00304.html#ga6906e1ef0b34064b4b675489c5c38725',1,'glm']]], + ['highp_5ff32mat2',['highp_f32mat2',['../a00304.html#ga298f7d4d273678d0282812368da27fda',1,'glm']]], + ['highp_5ff32mat2x2',['highp_f32mat2x2',['../a00304.html#gae5eb02d92b7d4605a4b7f37ae5cb2968',1,'glm']]], + ['highp_5ff32mat2x3',['highp_f32mat2x3',['../a00304.html#ga0aeb5cb001473b08c88175012708a379',1,'glm']]], + ['highp_5ff32mat2x4',['highp_f32mat2x4',['../a00304.html#ga88938ee1e7981fa3402e88da6ad74531',1,'glm']]], + ['highp_5ff32mat3',['highp_f32mat3',['../a00304.html#ga24f9ef3263b1638564713892cc37981f',1,'glm']]], + ['highp_5ff32mat3x2',['highp_f32mat3x2',['../a00304.html#ga36537e701456f12c20e73f469cac4967',1,'glm']]], + ['highp_5ff32mat3x3',['highp_f32mat3x3',['../a00304.html#gaab691ae40c37976d268d8cac0096e0e1',1,'glm']]], + ['highp_5ff32mat3x4',['highp_f32mat3x4',['../a00304.html#gaa5086dbd6efb272d13fc88829330861d',1,'glm']]], + ['highp_5ff32mat4',['highp_f32mat4',['../a00304.html#ga14c90ca49885723f51d06e295587236f',1,'glm']]], + ['highp_5ff32mat4x2',['highp_f32mat4x2',['../a00304.html#ga602e119c6b246b4f6edcf66845f2aa0f',1,'glm']]], + ['highp_5ff32mat4x3',['highp_f32mat4x3',['../a00304.html#ga66bffdd8e5c0d3ef9958bbab9ca1ba59',1,'glm']]], + ['highp_5ff32mat4x4',['highp_f32mat4x4',['../a00304.html#gaf1b712b97b2322685fbbed28febe5f84',1,'glm']]], + ['highp_5ff32quat',['highp_f32quat',['../a00304.html#ga4252cf7f5b0e3cd47c3d3badf0ef43b3',1,'glm']]], + ['highp_5ff32vec1',['highp_f32vec1',['../a00304.html#gab1b1c9e8667902b78b2c330e4d383a61',1,'glm']]], + ['highp_5ff32vec2',['highp_f32vec2',['../a00304.html#ga0b8ebd4262331e139ff257d7cf2a4b77',1,'glm']]], + ['highp_5ff32vec3',['highp_f32vec3',['../a00304.html#ga522775dbcc6d96246a1c5cf02344fd8c',1,'glm']]], + ['highp_5ff32vec4',['highp_f32vec4',['../a00304.html#ga0f038d4e09862a74f03d102c59eda73e',1,'glm']]], + ['highp_5ff64',['highp_f64',['../a00304.html#ga51d5266017d88f62737c1973923a7cf4',1,'glm']]], + ['highp_5ff64mat2',['highp_f64mat2',['../a00304.html#gaf7adb92ce8de0afaff01436b039fd924',1,'glm']]], + ['highp_5ff64mat2x2',['highp_f64mat2x2',['../a00304.html#ga773ea237a051827cfc20de960bc73ff0',1,'glm']]], + ['highp_5ff64mat2x3',['highp_f64mat2x3',['../a00304.html#ga8342c7469384c6d769cacc9e309278d9',1,'glm']]], + ['highp_5ff64mat2x4',['highp_f64mat2x4',['../a00304.html#ga5a67a7440b9c0d1538533540f99036a5',1,'glm']]], + ['highp_5ff64mat3',['highp_f64mat3',['../a00304.html#ga609bf0ace941d6ab1bb2f9522a04e546',1,'glm']]], + ['highp_5ff64mat3x2',['highp_f64mat3x2',['../a00304.html#ga5bdbfb4ce7d05ce1e1b663f50be17e8a',1,'glm']]], + ['highp_5ff64mat3x3',['highp_f64mat3x3',['../a00304.html#ga7c2cadb9b85cc7e0d125db21ca19dea4',1,'glm']]], + ['highp_5ff64mat3x4',['highp_f64mat3x4',['../a00304.html#gad310b1dddeec9ec837a104e7db8de580',1,'glm']]], + ['highp_5ff64mat4',['highp_f64mat4',['../a00304.html#gad308e0ed27d64daa4213fb257fcbd5a5',1,'glm']]], + ['highp_5ff64mat4x2',['highp_f64mat4x2',['../a00304.html#ga58c4631421e323e252fc716b6103e38c',1,'glm']]], + ['highp_5ff64mat4x3',['highp_f64mat4x3',['../a00304.html#gae94823d65648e44d972863c6caa13103',1,'glm']]], + ['highp_5ff64mat4x4',['highp_f64mat4x4',['../a00304.html#ga09a2374b725c4246d263ee36fb66434c',1,'glm']]], + ['highp_5ff64quat',['highp_f64quat',['../a00304.html#gafcfdd74a115163af2ce1093551747352',1,'glm']]], + ['highp_5ff64vec1',['highp_f64vec1',['../a00304.html#ga62c31b133ceee9984fbee05ac4c434a9',1,'glm']]], + ['highp_5ff64vec2',['highp_f64vec2',['../a00304.html#ga670ea1b0a1172bc73b1d7c1e0c26cce2',1,'glm']]], + ['highp_5ff64vec3',['highp_f64vec3',['../a00304.html#gacd1196090ece7a69fb5c3e43a7d4d851',1,'glm']]], + ['highp_5ff64vec4',['highp_f64vec4',['../a00304.html#ga61185c44c8cc0b25d9a0f67d8a267444',1,'glm']]], + ['highp_5ffdualquat',['highp_fdualquat',['../a00317.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]], + ['highp_5ffloat32',['highp_float32',['../a00304.html#gac5a7f21136e0a78d0a1b9f60ef2f8aea',1,'glm']]], + ['highp_5ffloat32_5ft',['highp_float32_t',['../a00304.html#ga5376ef18dca9d248897c3363ef5a06b2',1,'glm']]], + ['highp_5ffloat64',['highp_float64',['../a00304.html#gadbb198a4d7aad82a0f4dc466ef6f6215',1,'glm']]], + ['highp_5ffloat64_5ft',['highp_float64_t',['../a00304.html#gaaeeb0077198cff40e3f48b1108ece139',1,'glm']]], + ['highp_5ffmat2',['highp_fmat2',['../a00304.html#gae98c88d9a7befa9b5877f49176225535',1,'glm']]], + ['highp_5ffmat2x2',['highp_fmat2x2',['../a00304.html#ga28635abcddb2f3e92c33c3f0fcc682ad',1,'glm']]], + ['highp_5ffmat2x3',['highp_fmat2x3',['../a00304.html#gacf111095594996fef29067b2454fccad',1,'glm']]], + ['highp_5ffmat2x4',['highp_fmat2x4',['../a00304.html#ga4920a1536f161f7ded1d6909b7fef0d2',1,'glm']]], + ['highp_5ffmat3',['highp_fmat3',['../a00304.html#gaed2dc69e0d507d4191092dbd44b3eb75',1,'glm']]], + ['highp_5ffmat3x2',['highp_fmat3x2',['../a00304.html#gae54e4d1aeb5a0f0c64822e6f1b299e19',1,'glm']]], + ['highp_5ffmat3x3',['highp_fmat3x3',['../a00304.html#gaa5b44d3ef6efcf33f44876673a7a936e',1,'glm']]], + ['highp_5ffmat3x4',['highp_fmat3x4',['../a00304.html#ga961fac2a885907ffcf4d40daac6615c5',1,'glm']]], + ['highp_5ffmat4',['highp_fmat4',['../a00304.html#gabf28443ce0cc0959077ec39b21f32c39',1,'glm']]], + ['highp_5ffmat4x2',['highp_fmat4x2',['../a00304.html#ga076961cf2d120c7168b957cb2ed107b3',1,'glm']]], + ['highp_5ffmat4x3',['highp_fmat4x3',['../a00304.html#gae406ec670f64170a7437b5e302eeb2cb',1,'glm']]], + ['highp_5ffmat4x4',['highp_fmat4x4',['../a00304.html#gaee80c7cd3caa0f2635058656755f6f69',1,'glm']]], + ['highp_5ffvec1',['highp_fvec1',['../a00304.html#gaa1040342c4efdedc8f90e6267db8d41c',1,'glm']]], + ['highp_5ffvec2',['highp_fvec2',['../a00304.html#ga7c0d196f5fa79f7e892a2f323a0be1ae',1,'glm']]], + ['highp_5ffvec3',['highp_fvec3',['../a00304.html#ga6ef77413883f48d6b53b4169b25edbd0',1,'glm']]], + ['highp_5ffvec4',['highp_fvec4',['../a00304.html#ga8b839abbb44f5102609eed89f6ed61f7',1,'glm']]], + ['highp_5fi16',['highp_i16',['../a00304.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]], + ['highp_5fi16vec1',['highp_i16vec1',['../a00304.html#ga70fdfcc1fd38084bde83c3f06a8b9f19',1,'glm']]], + ['highp_5fi16vec2',['highp_i16vec2',['../a00304.html#gaa7db3ad10947cf70cae6474d05ebd227',1,'glm']]], + ['highp_5fi16vec3',['highp_i16vec3',['../a00304.html#ga5609c8fa2b7eac3dec337d321cb0ca96',1,'glm']]], + ['highp_5fi16vec4',['highp_i16vec4',['../a00304.html#ga7a18659438828f91ccca28f1a1e067b4',1,'glm']]], + ['highp_5fi32',['highp_i32',['../a00304.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]], + ['highp_5fi32vec1',['highp_i32vec1',['../a00304.html#ga6a9d71cc62745302f70422b7dc98755c',1,'glm']]], + ['highp_5fi32vec2',['highp_i32vec2',['../a00304.html#gaa9b4579f8e6f3d9b649a965bcb785530',1,'glm']]], + ['highp_5fi32vec3',['highp_i32vec3',['../a00304.html#ga31e070ea3bdee623e6e18a61ba5718b1',1,'glm']]], + ['highp_5fi32vec4',['highp_i32vec4',['../a00304.html#gadf70eaaa230aeed5a4c9f4c9c5c55902',1,'glm']]], + ['highp_5fi64',['highp_i64',['../a00304.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]], + ['highp_5fi64vec1',['highp_i64vec1',['../a00304.html#gabd2fda3cd208acf5a370ec9b5b3c58d4',1,'glm']]], + ['highp_5fi64vec2',['highp_i64vec2',['../a00304.html#gad9d1903cb20899966e8ebe0670889a5f',1,'glm']]], + ['highp_5fi64vec3',['highp_i64vec3',['../a00304.html#ga62324224b9c6cce9c6b4db96bb704a8a',1,'glm']]], + ['highp_5fi64vec4',['highp_i64vec4',['../a00304.html#gad23b1be9b3bf20352089a6b738f0ebba',1,'glm']]], + ['highp_5fi8',['highp_i8',['../a00304.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]], + ['highp_5fi8vec1',['highp_i8vec1',['../a00304.html#ga1d8c10949691b0fd990253476f47beb3',1,'glm']]], + ['highp_5fi8vec2',['highp_i8vec2',['../a00304.html#ga50542e4cb9b2f9bec213b66e06145d07',1,'glm']]], + ['highp_5fi8vec3',['highp_i8vec3',['../a00304.html#ga8396bfdc081d9113190d0c39c9f67084',1,'glm']]], + ['highp_5fi8vec4',['highp_i8vec4',['../a00304.html#ga4824e3ddf6e608117dfe4809430737b4',1,'glm']]], + ['highp_5fimat2',['highp_imat2',['../a00294.html#ga8499cc3b016003f835314c1c756e9db9',1,'glm']]], + ['highp_5fimat2x2',['highp_imat2x2',['../a00294.html#gaa389e2d1c3b10941cae870bc0aeba5b3',1,'glm']]], + ['highp_5fimat2x3',['highp_imat2x3',['../a00294.html#gaba49d890e06c9444795f5a133fbf1336',1,'glm']]], + ['highp_5fimat2x4',['highp_imat2x4',['../a00294.html#ga05a970fd4366dad6c8a0be676b1eae5b',1,'glm']]], + ['highp_5fimat3',['highp_imat3',['../a00294.html#gaca4506a3efa679eff7c006d9826291fd',1,'glm']]], + ['highp_5fimat3x2',['highp_imat3x2',['../a00294.html#ga91c671c3ff9706c2393e78b22fd84bcb',1,'glm']]], + ['highp_5fimat3x3',['highp_imat3x3',['../a00294.html#ga07d7b7173e2a6f843ff5f1c615a95b41',1,'glm']]], + ['highp_5fimat3x4',['highp_imat3x4',['../a00294.html#ga53008f580be99018a17b357b5a4ffc0d',1,'glm']]], + ['highp_5fimat4',['highp_imat4',['../a00294.html#ga7cfb09b34e0fcf73eaf6512d6483ef56',1,'glm']]], + ['highp_5fimat4x2',['highp_imat4x2',['../a00294.html#ga1858820fb292cae396408b2034407f72',1,'glm']]], + ['highp_5fimat4x3',['highp_imat4x3',['../a00294.html#ga6be0b80ae74bb309bc5b964d93d68fc5',1,'glm']]], + ['highp_5fimat4x4',['highp_imat4x4',['../a00294.html#ga2c783ee6f8f040ab37df2f70392c8b44',1,'glm']]], + ['highp_5fint16',['highp_int16',['../a00304.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]], + ['highp_5fint16_5ft',['highp_int16_t',['../a00304.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]], + ['highp_5fint32',['highp_int32',['../a00304.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]], + ['highp_5fint32_5ft',['highp_int32_t',['../a00304.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]], + ['highp_5fint64',['highp_int64',['../a00304.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]], + ['highp_5fint64_5ft',['highp_int64_t',['../a00304.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]], + ['highp_5fint8',['highp_int8',['../a00304.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]], + ['highp_5fint8_5ft',['highp_int8_t',['../a00304.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]], + ['highp_5fivec1',['highp_ivec1',['../a00273.html#ga7e02566f2bd2caa68e61be45a477c77e',1,'glm']]], + ['highp_5fivec2',['highp_ivec2',['../a00282.html#gaa18f6b80b41c214f10666948539c1f93',1,'glm']]], + ['highp_5fivec3',['highp_ivec3',['../a00282.html#ga7dd782c3ef5719bc6d5c3ca826b8ad18',1,'glm']]], + ['highp_5fivec4',['highp_ivec4',['../a00282.html#gafb84dccdf5d82443df3ffc8428dcaf3e',1,'glm']]], + ['highp_5fmat2',['highp_mat2',['../a00284.html#ga4d5a0055544a516237dcdace049b143d',1,'glm']]], + ['highp_5fmat2x2',['highp_mat2x2',['../a00284.html#ga2352ae43b284c9f71446674c0208c05d',1,'glm']]], + ['highp_5fmat2x3',['highp_mat2x3',['../a00284.html#ga7a0e3fe41512b0494e598f5c58722f19',1,'glm']]], + ['highp_5fmat2x4',['highp_mat2x4',['../a00284.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f',1,'glm']]], + ['highp_5fmat3',['highp_mat3',['../a00284.html#ga3fd9849f3da5ed6e3decc3fb10a20b3e',1,'glm']]], + ['highp_5fmat3x2',['highp_mat3x2',['../a00284.html#ga1eda47a00027ec440eac05d63739c71b',1,'glm']]], + ['highp_5fmat3x3',['highp_mat3x3',['../a00284.html#ga2ea82e12f4d7afcfce8f59894d400230',1,'glm']]], + ['highp_5fmat3x4',['highp_mat3x4',['../a00284.html#ga6454b3a26ea30f69de8e44c08a63d1b7',1,'glm']]], + ['highp_5fmat4',['highp_mat4',['../a00284.html#gad72e13d669d039f12ae5afa23148adc1',1,'glm']]], + ['highp_5fmat4x2',['highp_mat4x2',['../a00284.html#gab68b66e6d2c37b804d0baf970fa4f0e5',1,'glm']]], + ['highp_5fmat4x3',['highp_mat4x3',['../a00284.html#ga8d5a4e65fb976e4553b84995b95ecb38',1,'glm']]], + ['highp_5fmat4x4',['highp_mat4x4',['../a00284.html#ga58cc504be0e3b61c48bc91554a767b9f',1,'glm']]], + ['highp_5fquat',['highp_quat',['../a00253.html#gaa2fd8085774376310aeb80588e0eab6e',1,'glm']]], + ['highp_5fu16',['highp_u16',['../a00304.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]], + ['highp_5fu16vec1',['highp_u16vec1',['../a00304.html#gad064202b4cf9a2972475c03de657cb39',1,'glm']]], + ['highp_5fu16vec2',['highp_u16vec2',['../a00304.html#ga791b15ceb3f1e09d1a0ec6f3057ca159',1,'glm']]], + ['highp_5fu16vec3',['highp_u16vec3',['../a00304.html#gacfd806749008f0ade6ac4bb9dd91082f',1,'glm']]], + ['highp_5fu16vec4',['highp_u16vec4',['../a00304.html#ga8a85a3d54a8a9e14fe7a1f96196c4f61',1,'glm']]], + ['highp_5fu32',['highp_u32',['../a00304.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]], + ['highp_5fu32vec1',['highp_u32vec1',['../a00304.html#ga0e35a565b9036bfc3989f5e23a0792e3',1,'glm']]], + ['highp_5fu32vec2',['highp_u32vec2',['../a00304.html#ga2f256334f83fba4c2d219e414b51df6c',1,'glm']]], + ['highp_5fu32vec3',['highp_u32vec3',['../a00304.html#gaf14d7a50502464e7cbfa074f24684cb1',1,'glm']]], + ['highp_5fu32vec4',['highp_u32vec4',['../a00304.html#ga22166f0da65038b447f3c5e534fff1c2',1,'glm']]], + ['highp_5fu64',['highp_u64',['../a00304.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]], + ['highp_5fu64vec1',['highp_u64vec1',['../a00304.html#gae4fe774744852c4d7d069be2e05257ab',1,'glm']]], + ['highp_5fu64vec2',['highp_u64vec2',['../a00304.html#ga78f77b8b2d17b431ac5a68c0b5d7050d',1,'glm']]], + ['highp_5fu64vec3',['highp_u64vec3',['../a00304.html#ga41bdabea6e589029659331ba47eb78c1',1,'glm']]], + ['highp_5fu64vec4',['highp_u64vec4',['../a00304.html#ga4f15b41aa24b11cc42ad5798c04a2325',1,'glm']]], + ['highp_5fu8',['highp_u8',['../a00304.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]], + ['highp_5fu8vec1',['highp_u8vec1',['../a00304.html#ga8408cb76b6550ff01fa0a3024e7b68d2',1,'glm']]], + ['highp_5fu8vec2',['highp_u8vec2',['../a00304.html#ga27585b7c3ab300059f11fcba465f6fd2',1,'glm']]], + ['highp_5fu8vec3',['highp_u8vec3',['../a00304.html#ga45721c13b956eb691cbd6c6c1429167a',1,'glm']]], + ['highp_5fu8vec4',['highp_u8vec4',['../a00304.html#gae0b75ad0fed8c00ddc0b5ce335d31060',1,'glm']]], + ['highp_5fuint16',['highp_uint16',['../a00304.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]], + ['highp_5fuint16_5ft',['highp_uint16_t',['../a00304.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]], + ['highp_5fuint32',['highp_uint32',['../a00304.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]], + ['highp_5fuint32_5ft',['highp_uint32_t',['../a00304.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]], + ['highp_5fuint64',['highp_uint64',['../a00304.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]], + ['highp_5fuint64_5ft',['highp_uint64_t',['../a00304.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]], + ['highp_5fuint8',['highp_uint8',['../a00304.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]], + ['highp_5fuint8_5ft',['highp_uint8_t',['../a00304.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]], + ['highp_5fumat2',['highp_umat2',['../a00294.html#ga42cbce64c4c1cd121b8437daa6e110de',1,'glm']]], + ['highp_5fumat2x2',['highp_umat2x2',['../a00294.html#ga5337b7bc95f9cbac08a0c00b3f936b28',1,'glm']]], + ['highp_5fumat2x3',['highp_umat2x3',['../a00294.html#ga90718c7128320b24b52f9ea70e643ad4',1,'glm']]], + ['highp_5fumat2x4',['highp_umat2x4',['../a00294.html#gadca0a4724b4a6f56a2355b6f6e19248b',1,'glm']]], + ['highp_5fumat3',['highp_umat3',['../a00294.html#gaa1143120339b7d2d469d327662e8a172',1,'glm']]], + ['highp_5fumat3x2',['highp_umat3x2',['../a00294.html#ga844a5da2e7fc03fc7cccc7f1b70809c4',1,'glm']]], + ['highp_5fumat3x3',['highp_umat3x3',['../a00294.html#ga1f7d41c36b980774a4d2e7c1647fb4b2',1,'glm']]], + ['highp_5fumat3x4',['highp_umat3x4',['../a00294.html#ga25ee15c323924f2d0fe9896d329e5086',1,'glm']]], + ['highp_5fumat4',['highp_umat4',['../a00294.html#gaf665e4e78c2cc32a54ab40325738f9c9',1,'glm']]], + ['highp_5fumat4x2',['highp_umat4x2',['../a00294.html#gae69eb82ec08b0dc9bf2ead2a339ff801',1,'glm']]], + ['highp_5fumat4x3',['highp_umat4x3',['../a00294.html#ga45a8163d02c43216252056b0c120f3a5',1,'glm']]], + ['highp_5fumat4x4',['highp_umat4x4',['../a00294.html#ga6a56cbb769aed334c95241664415f9ba',1,'glm']]], + ['highp_5fuvec1',['highp_uvec1',['../a00277.html#gacda57dd8c2bff4934c7f09ddd87c0f39',1,'glm']]], + ['highp_5fuvec2',['highp_uvec2',['../a00282.html#gad5dd50da9e37387ca6b4e6f9c80fe6f8',1,'glm']]], + ['highp_5fuvec3',['highp_uvec3',['../a00282.html#gaef61508dd40ec523416697982f9ceaae',1,'glm']]], + ['highp_5fuvec4',['highp_uvec4',['../a00282.html#gaeebd7dd9f3e678691f8620241e5f9221',1,'glm']]], + ['highp_5fvec1',['highp_vec1',['../a00271.html#ga9e8ed21862a897c156c0b2abca70b1e9',1,'glm']]], + ['highp_5fvec2',['highp_vec2',['../a00282.html#gaa92c1954d71b1e7914874bd787b43d1c',1,'glm']]], + ['highp_5fvec3',['highp_vec3',['../a00282.html#gaca61dfaccbf2f58f2d8063a4e76b44a9',1,'glm']]], + ['highp_5fvec4',['highp_vec4',['../a00282.html#gad281decae52948b82feb3a9db8f63a7b',1,'glm']]], + ['hsvcolor',['hsvColor',['../a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_8.html b/external/include/glm-0.9.9.8/doc/api/search/all_8.html index 008b9f9775..2a22cd52c1 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_8.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_8.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_8.js b/external/include/glm-0.9.9.8/doc/api/search/all_8.js index 6c5e12a8fa..67374723af 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_8.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_8.js @@ -1,93 +1,93 @@ -var searchData= -[ - ['integer_20functions',['Integer functions',['../a00370.html',1,'']]], - ['i16',['i16',['../a00304.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]], - ['i16vec1',['i16vec1',['../a00304.html#gafe730798732aa7b0647096a004db1b1c',1,'glm']]], - ['i16vec2',['i16vec2',['../a00304.html#ga2996630ba7b10535af8e065cf326f761',1,'glm']]], - ['i16vec3',['i16vec3',['../a00304.html#gae9c90a867a6026b1f6eab00456f3fb8b',1,'glm']]], - ['i16vec4',['i16vec4',['../a00304.html#ga550831bfc26d1e0101c1cb3d79938c06',1,'glm']]], - ['i32',['i32',['../a00304.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]], - ['i32vec1',['i32vec1',['../a00304.html#ga54b8a4e0f5a7203a821bf8e9c1265bcf',1,'glm']]], - ['i32vec2',['i32vec2',['../a00304.html#ga8b44026374982dcd1e52d22bac99247e',1,'glm']]], - ['i32vec3',['i32vec3',['../a00304.html#ga7f526b5cccef126a2ebcf9bdd890394e',1,'glm']]], - ['i32vec4',['i32vec4',['../a00304.html#ga866a05905c49912309ed1fa5f5980e61',1,'glm']]], - ['i64',['i64',['../a00304.html#gadb997e409103d4da18abd837e636a496',1,'glm']]], - ['i64vec1',['i64vec1',['../a00304.html#ga2b65767f8b5aed1bd1cf86c541662b50',1,'glm']]], - ['i64vec2',['i64vec2',['../a00304.html#ga48310188e1d0c616bf8d78c92447523b',1,'glm']]], - ['i64vec3',['i64vec3',['../a00304.html#ga667948cfe6fb3d6606c750729ec49f77',1,'glm']]], - ['i64vec4',['i64vec4',['../a00304.html#gaa4e31c3d9de067029efeb161a44b0232',1,'glm']]], - ['i8',['i8',['../a00304.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]], - ['i8vec1',['i8vec1',['../a00304.html#ga7e80d927ff0a3861ced68dfff8a4020b',1,'glm']]], - ['i8vec2',['i8vec2',['../a00304.html#gad06935764d78f43f9d542c784c2212ec',1,'glm']]], - ['i8vec3',['i8vec3',['../a00304.html#ga5a08d36cf7917cd19d081a603d0eae3e',1,'glm']]], - ['i8vec4',['i8vec4',['../a00304.html#ga4177a44206121dabc8c4ff1c0f544574',1,'glm']]], - ['identity',['identity',['../a00247.html#ga81696f2b8d1db02ea1aff8da8f269314',1,'glm']]], - ['imat2',['imat2',['../a00294.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]], - ['imat2x2',['imat2x2',['../a00294.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]], - ['imat2x3',['imat2x3',['../a00294.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]], - ['imat2x4',['imat2x4',['../a00294.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]], - ['imat3',['imat3',['../a00294.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]], - ['imat3x2',['imat3x2',['../a00294.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]], - ['imat3x3',['imat3x3',['../a00294.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]], - ['imat3x4',['imat3x4',['../a00294.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]], - ['imat4',['imat4',['../a00294.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]], - ['imat4x2',['imat4x2',['../a00294.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]], - ['imat4x3',['imat4x3',['../a00294.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]], - ['imat4x4',['imat4x4',['../a00294.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]], - ['imulextended',['imulExtended',['../a00370.html#gac0c510a70e852f57594a9141848642e3',1,'glm']]], - ['infiniteperspective',['infinitePerspective',['../a00243.html#ga44fa38a18349450325cae2661bb115ca',1,'glm']]], - ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00243.html#ga3201b30f5b3ea0f933246d87bfb992a9',1,'glm']]], - ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00243.html#ga99672ffe5714ef478dab2437255fe7e1',1,'glm']]], - ['int1',['int1',['../a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]], - ['int16',['int16',['../a00260.html#ga259fa4834387bd68627ddf37bb3ebdb9',1,'glm']]], - ['int16_5ft',['int16_t',['../a00304.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]], - ['int1x1',['int1x1',['../a00315.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]], - ['int2',['int2',['../a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a',1,'glm']]], - ['int2x2',['int2x2',['../a00315.html#ga4e5ce477c15836b21e3c42daac68554d',1,'glm']]], - ['int2x3',['int2x3',['../a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3',1,'glm']]], - ['int2x4',['int2x4',['../a00315.html#ga2749d59a7fddbac44f34ba78e57ef807',1,'glm']]], - ['int3',['int3',['../a00315.html#ga909c38a425f215a50c847145d7da09f0',1,'glm']]], - ['int32',['int32',['../a00260.html#ga43d43196463bde49cb067f5c20ab8481',1,'glm']]], - ['int32_5ft',['int32_t',['../a00304.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]], - ['int3x2',['int3x2',['../a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8',1,'glm']]], - ['int3x3',['int3x3',['../a00315.html#ga15c9649286f0bf431bdf9b3509580048',1,'glm']]], - ['int3x4',['int3x4',['../a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f',1,'glm']]], - ['int4',['int4',['../a00315.html#gaecdef18c819c205aeee9f94dc93de56a',1,'glm']]], - ['int4x2',['int4x2',['../a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1',1,'glm']]], - ['int4x3',['int4x3',['../a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d',1,'glm']]], - ['int4x4',['int4x4',['../a00315.html#ga04dee1552424198b8f58b377c2ee00d8',1,'glm']]], - ['int64',['int64',['../a00260.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]], - ['int64_5ft',['int64_t',['../a00304.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]], - ['int8',['int8',['../a00260.html#ga1b956fe1df85f3c132b21edb4e116458',1,'glm']]], - ['int8_5ft',['int8_t',['../a00304.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]], - ['intbitstofloat',['intBitsToFloat',['../a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &v)'],['../a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0',1,'glm::intBitsToFloat(vec< L, int, Q > const &v)']]], - ['integer_2ehpp',['integer.hpp',['../a00043.html',1,'']]], - ['intermediate',['intermediate',['../a00352.html#gacc5cd5f3e78de61d141c2355417424de',1,'glm']]], - ['interpolate',['interpolate',['../a00337.html#ga4e67863d150724b10c1ac00972dc958c',1,'glm']]], - ['intersect_2ehpp',['intersect.hpp',['../a00044.html',1,'']]], - ['intersectlinesphere',['intersectLineSphere',['../a00331.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]], - ['intersectlinetriangle',['intersectLineTriangle',['../a00331.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]], - ['intersectrayplane',['intersectRayPlane',['../a00331.html#gad3697a9700ea379739a667ea02573488',1,'glm']]], - ['intersectraysphere',['intersectRaySphere',['../a00331.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)'],['../a00331.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)']]], - ['intersectraytriangle',['intersectRayTriangle',['../a00331.html#ga65bf2c594482f04881c36bc761f9e946',1,'glm']]], - ['inverse',['inverse',['../a00248.html#gab41da854ae678e23e114b598cbca4065',1,'glm::inverse(qua< T, Q > const &q)'],['../a00317.html#ga070f521a953f6461af4ab4cf8ccbf27e',1,'glm::inverse(tdualquat< T, Q > const &q)'],['../a00371.html#gaed509fe8129b01e4f20a6d0de5690091',1,'glm::inverse(mat< C, R, T, Q > const &m)']]], - ['inversesqrt',['inversesqrt',['../a00242.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a',1,'glm']]], - ['inversetranspose',['inverseTranspose',['../a00295.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]], - ['io_2ehpp',['io.hpp',['../a00045.html',1,'']]], - ['iround',['iround',['../a00292.html#ga57824268ebe13a922f1d69a5d37f637f',1,'glm']]], - ['iscompnull',['isCompNull',['../a00368.html#gaf6ec1688eab7442fe96fe4941d5d4e76',1,'glm']]], - ['isdenormal',['isdenormal',['../a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]], - ['isfinite',['isfinite',['../a00315.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &x)'],['../a00315.html#gac3b12b8ac3014418fe53c299478b6603',1,'glm::isfinite(const vec< 1, T, Q > &x)'],['../a00315.html#ga8e76dc3e406ce6a4155c2b12a2e4b084',1,'glm::isfinite(const vec< 2, T, Q > &x)'],['../a00315.html#ga929ef27f896d902c1771a2e5e150fc97',1,'glm::isfinite(const vec< 3, T, Q > &x)'],['../a00315.html#ga19925badbe10ce61df1d0de00be0b5ad',1,'glm::isfinite(const vec< 4, T, Q > &x)']]], - ['isidentity',['isIdentity',['../a00340.html#gaee935d145581c82e82b154ccfd78ad91',1,'glm']]], - ['isinf',['isinf',['../a00241.html#ga2885587c23a106301f20443896365b62',1,'glm::isinf(vec< L, T, Q > const &x)'],['../a00248.html#ga45722741ea266b4e861938b365c5f362',1,'glm::isinf(qua< T, Q > const &x)']]], - ['ismultiple',['isMultiple',['../a00261.html#gaec593d33956a8fe43f78fccc63ddde9a',1,'glm::isMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga354caf634ef333d9cb4844407416256a',1,'glm::isMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gabb4360e38c0943d8981ba965dead519d',1,'glm::isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['isnan',['isnan',['../a00241.html#ga29ef934c00306490de837b4746b4e14d',1,'glm::isnan(vec< L, T, Q > const &x)'],['../a00248.html#ga1bb55f8963616502e96dc564384d8a03',1,'glm::isnan(qua< T, Q > const &x)']]], - ['isnormalized',['isNormalized',['../a00340.html#gae785af56f47ce220a1609f7f84aa077a',1,'glm::isNormalized(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gaa068311695f28f5f555f5f746a6a66fb',1,'glm::isNormalized(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga4d9bb4d0465df49fedfad79adc6ce4ad',1,'glm::isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gac3c974f459fd75453134fad7ae89a39e',1,'glm::isNormalized(vec< L, T, Q > const &v, T const &epsilon)']]], - ['isnull',['isNull',['../a00340.html#ga9790ec222ce948c0ff0d8ce927340dba',1,'glm::isNull(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gae14501c6b14ccda6014cc5350080103d',1,'glm::isNull(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga2b98bb30a9fefa7cdea5f1dcddba677b',1,'glm::isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gab4a3637dbcb4bb42dc55caea7a1e0495',1,'glm::isNull(vec< L, T, Q > const &v, T const &epsilon)']]], - ['isorthogonal',['isOrthogonal',['../a00340.html#ga58f3289f74dcab653387dd78ad93ca40',1,'glm']]], - ['ispoweroftwo',['isPowerOfTwo',['../a00261.html#gadf491730354aa7da67fbe23d4d688763',1,'glm::isPowerOfTwo(genIUType v)'],['../a00274.html#gabf2b61ded7049bcb13e25164f832a290',1,'glm::isPowerOfTwo(vec< L, T, Q > const &v)']]], - ['ivec1',['ivec1',['../a00272.html#gaedd0562c2e77714929d7723a7e2e0dba',1,'glm']]], - ['ivec2',['ivec2',['../a00281.html#ga6f9269106d91b2d2b91bcf27cd5f5560',1,'glm']]], - ['ivec3',['ivec3',['../a00281.html#gad0d784d8eee201aca362484d2daee46c',1,'glm']]], - ['ivec4',['ivec4',['../a00281.html#ga5abb4603dae0ce58c595e66d9123d812',1,'glm']]] -]; +var searchData= +[ + ['integer_20functions',['Integer functions',['../a00370.html',1,'']]], + ['i16',['i16',['../a00304.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]], + ['i16vec1',['i16vec1',['../a00304.html#gafe730798732aa7b0647096a004db1b1c',1,'glm']]], + ['i16vec2',['i16vec2',['../a00304.html#ga2996630ba7b10535af8e065cf326f761',1,'glm']]], + ['i16vec3',['i16vec3',['../a00304.html#gae9c90a867a6026b1f6eab00456f3fb8b',1,'glm']]], + ['i16vec4',['i16vec4',['../a00304.html#ga550831bfc26d1e0101c1cb3d79938c06',1,'glm']]], + ['i32',['i32',['../a00304.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]], + ['i32vec1',['i32vec1',['../a00304.html#ga54b8a4e0f5a7203a821bf8e9c1265bcf',1,'glm']]], + ['i32vec2',['i32vec2',['../a00304.html#ga8b44026374982dcd1e52d22bac99247e',1,'glm']]], + ['i32vec3',['i32vec3',['../a00304.html#ga7f526b5cccef126a2ebcf9bdd890394e',1,'glm']]], + ['i32vec4',['i32vec4',['../a00304.html#ga866a05905c49912309ed1fa5f5980e61',1,'glm']]], + ['i64',['i64',['../a00304.html#gadb997e409103d4da18abd837e636a496',1,'glm']]], + ['i64vec1',['i64vec1',['../a00304.html#ga2b65767f8b5aed1bd1cf86c541662b50',1,'glm']]], + ['i64vec2',['i64vec2',['../a00304.html#ga48310188e1d0c616bf8d78c92447523b',1,'glm']]], + ['i64vec3',['i64vec3',['../a00304.html#ga667948cfe6fb3d6606c750729ec49f77',1,'glm']]], + ['i64vec4',['i64vec4',['../a00304.html#gaa4e31c3d9de067029efeb161a44b0232',1,'glm']]], + ['i8',['i8',['../a00304.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]], + ['i8vec1',['i8vec1',['../a00304.html#ga7e80d927ff0a3861ced68dfff8a4020b',1,'glm']]], + ['i8vec2',['i8vec2',['../a00304.html#gad06935764d78f43f9d542c784c2212ec',1,'glm']]], + ['i8vec3',['i8vec3',['../a00304.html#ga5a08d36cf7917cd19d081a603d0eae3e',1,'glm']]], + ['i8vec4',['i8vec4',['../a00304.html#ga4177a44206121dabc8c4ff1c0f544574',1,'glm']]], + ['identity',['identity',['../a00247.html#ga81696f2b8d1db02ea1aff8da8f269314',1,'glm']]], + ['imat2',['imat2',['../a00294.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]], + ['imat2x2',['imat2x2',['../a00294.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]], + ['imat2x3',['imat2x3',['../a00294.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]], + ['imat2x4',['imat2x4',['../a00294.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]], + ['imat3',['imat3',['../a00294.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]], + ['imat3x2',['imat3x2',['../a00294.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]], + ['imat3x3',['imat3x3',['../a00294.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]], + ['imat3x4',['imat3x4',['../a00294.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]], + ['imat4',['imat4',['../a00294.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]], + ['imat4x2',['imat4x2',['../a00294.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]], + ['imat4x3',['imat4x3',['../a00294.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]], + ['imat4x4',['imat4x4',['../a00294.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]], + ['imulextended',['imulExtended',['../a00370.html#gac0c510a70e852f57594a9141848642e3',1,'glm']]], + ['infiniteperspective',['infinitePerspective',['../a00243.html#ga44fa38a18349450325cae2661bb115ca',1,'glm']]], + ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00243.html#ga3201b30f5b3ea0f933246d87bfb992a9',1,'glm']]], + ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00243.html#ga99672ffe5714ef478dab2437255fe7e1',1,'glm']]], + ['int1',['int1',['../a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]], + ['int16',['int16',['../a00260.html#ga259fa4834387bd68627ddf37bb3ebdb9',1,'glm']]], + ['int16_5ft',['int16_t',['../a00304.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]], + ['int1x1',['int1x1',['../a00315.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]], + ['int2',['int2',['../a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a',1,'glm']]], + ['int2x2',['int2x2',['../a00315.html#ga4e5ce477c15836b21e3c42daac68554d',1,'glm']]], + ['int2x3',['int2x3',['../a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3',1,'glm']]], + ['int2x4',['int2x4',['../a00315.html#ga2749d59a7fddbac44f34ba78e57ef807',1,'glm']]], + ['int3',['int3',['../a00315.html#ga909c38a425f215a50c847145d7da09f0',1,'glm']]], + ['int32',['int32',['../a00260.html#ga43d43196463bde49cb067f5c20ab8481',1,'glm']]], + ['int32_5ft',['int32_t',['../a00304.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]], + ['int3x2',['int3x2',['../a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8',1,'glm']]], + ['int3x3',['int3x3',['../a00315.html#ga15c9649286f0bf431bdf9b3509580048',1,'glm']]], + ['int3x4',['int3x4',['../a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f',1,'glm']]], + ['int4',['int4',['../a00315.html#gaecdef18c819c205aeee9f94dc93de56a',1,'glm']]], + ['int4x2',['int4x2',['../a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1',1,'glm']]], + ['int4x3',['int4x3',['../a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d',1,'glm']]], + ['int4x4',['int4x4',['../a00315.html#ga04dee1552424198b8f58b377c2ee00d8',1,'glm']]], + ['int64',['int64',['../a00260.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]], + ['int64_5ft',['int64_t',['../a00304.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]], + ['int8',['int8',['../a00260.html#ga1b956fe1df85f3c132b21edb4e116458',1,'glm']]], + ['int8_5ft',['int8_t',['../a00304.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]], + ['intbitstofloat',['intBitsToFloat',['../a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &v)'],['../a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0',1,'glm::intBitsToFloat(vec< L, int, Q > const &v)']]], + ['integer_2ehpp',['integer.hpp',['../a00043.html',1,'']]], + ['intermediate',['intermediate',['../a00352.html#gacc5cd5f3e78de61d141c2355417424de',1,'glm']]], + ['interpolate',['interpolate',['../a00337.html#ga4e67863d150724b10c1ac00972dc958c',1,'glm']]], + ['intersect_2ehpp',['intersect.hpp',['../a00044.html',1,'']]], + ['intersectlinesphere',['intersectLineSphere',['../a00331.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]], + ['intersectlinetriangle',['intersectLineTriangle',['../a00331.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]], + ['intersectrayplane',['intersectRayPlane',['../a00331.html#gad3697a9700ea379739a667ea02573488',1,'glm']]], + ['intersectraysphere',['intersectRaySphere',['../a00331.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)'],['../a00331.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)']]], + ['intersectraytriangle',['intersectRayTriangle',['../a00331.html#ga65bf2c594482f04881c36bc761f9e946',1,'glm']]], + ['inverse',['inverse',['../a00248.html#gab41da854ae678e23e114b598cbca4065',1,'glm::inverse(qua< T, Q > const &q)'],['../a00317.html#ga070f521a953f6461af4ab4cf8ccbf27e',1,'glm::inverse(tdualquat< T, Q > const &q)'],['../a00371.html#gaed509fe8129b01e4f20a6d0de5690091',1,'glm::inverse(mat< C, R, T, Q > const &m)']]], + ['inversesqrt',['inversesqrt',['../a00242.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a',1,'glm']]], + ['inversetranspose',['inverseTranspose',['../a00295.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]], + ['io_2ehpp',['io.hpp',['../a00045.html',1,'']]], + ['iround',['iround',['../a00292.html#ga57824268ebe13a922f1d69a5d37f637f',1,'glm']]], + ['iscompnull',['isCompNull',['../a00368.html#gaf6ec1688eab7442fe96fe4941d5d4e76',1,'glm']]], + ['isdenormal',['isdenormal',['../a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]], + ['isfinite',['isfinite',['../a00315.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &x)'],['../a00315.html#gac3b12b8ac3014418fe53c299478b6603',1,'glm::isfinite(const vec< 1, T, Q > &x)'],['../a00315.html#ga8e76dc3e406ce6a4155c2b12a2e4b084',1,'glm::isfinite(const vec< 2, T, Q > &x)'],['../a00315.html#ga929ef27f896d902c1771a2e5e150fc97',1,'glm::isfinite(const vec< 3, T, Q > &x)'],['../a00315.html#ga19925badbe10ce61df1d0de00be0b5ad',1,'glm::isfinite(const vec< 4, T, Q > &x)']]], + ['isidentity',['isIdentity',['../a00340.html#gaee935d145581c82e82b154ccfd78ad91',1,'glm']]], + ['isinf',['isinf',['../a00241.html#ga2885587c23a106301f20443896365b62',1,'glm::isinf(vec< L, T, Q > const &x)'],['../a00248.html#ga45722741ea266b4e861938b365c5f362',1,'glm::isinf(qua< T, Q > const &x)']]], + ['ismultiple',['isMultiple',['../a00261.html#gaec593d33956a8fe43f78fccc63ddde9a',1,'glm::isMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga354caf634ef333d9cb4844407416256a',1,'glm::isMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gabb4360e38c0943d8981ba965dead519d',1,'glm::isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['isnan',['isnan',['../a00241.html#ga29ef934c00306490de837b4746b4e14d',1,'glm::isnan(vec< L, T, Q > const &x)'],['../a00248.html#ga1bb55f8963616502e96dc564384d8a03',1,'glm::isnan(qua< T, Q > const &x)']]], + ['isnormalized',['isNormalized',['../a00340.html#gae785af56f47ce220a1609f7f84aa077a',1,'glm::isNormalized(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gaa068311695f28f5f555f5f746a6a66fb',1,'glm::isNormalized(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga4d9bb4d0465df49fedfad79adc6ce4ad',1,'glm::isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gac3c974f459fd75453134fad7ae89a39e',1,'glm::isNormalized(vec< L, T, Q > const &v, T const &epsilon)']]], + ['isnull',['isNull',['../a00340.html#ga9790ec222ce948c0ff0d8ce927340dba',1,'glm::isNull(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gae14501c6b14ccda6014cc5350080103d',1,'glm::isNull(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga2b98bb30a9fefa7cdea5f1dcddba677b',1,'glm::isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gab4a3637dbcb4bb42dc55caea7a1e0495',1,'glm::isNull(vec< L, T, Q > const &v, T const &epsilon)']]], + ['isorthogonal',['isOrthogonal',['../a00340.html#ga58f3289f74dcab653387dd78ad93ca40',1,'glm']]], + ['ispoweroftwo',['isPowerOfTwo',['../a00261.html#gadf491730354aa7da67fbe23d4d688763',1,'glm::isPowerOfTwo(genIUType v)'],['../a00274.html#gabf2b61ded7049bcb13e25164f832a290',1,'glm::isPowerOfTwo(vec< L, T, Q > const &v)']]], + ['ivec1',['ivec1',['../a00272.html#gaedd0562c2e77714929d7723a7e2e0dba',1,'glm']]], + ['ivec2',['ivec2',['../a00281.html#ga6f9269106d91b2d2b91bcf27cd5f5560',1,'glm']]], + ['ivec3',['ivec3',['../a00281.html#gad0d784d8eee201aca362484d2daee46c',1,'glm']]], + ['ivec4',['ivec4',['../a00281.html#ga5abb4603dae0ce58c595e66d9123d812',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_9.html b/external/include/glm-0.9.9.8/doc/api/search/all_9.html index 0651d82580..bd9b05c38e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_9.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_9.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_9.js b/external/include/glm-0.9.9.8/doc/api/search/all_9.js index 3c675a1978..5752ecfc90 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_9.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_9.js @@ -1,214 +1,214 @@ -var searchData= -[ - ['l1norm',['l1Norm',['../a00343.html#gae2fc0b2aa967bebfd6a244700bff6997',1,'glm::l1Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga1a7491e2037ceeb37f83ce41addfc0be',1,'glm::l1Norm(vec< 3, T, Q > const &v)']]], - ['l2norm',['l2Norm',['../a00343.html#ga41340b2ef40a9307ab0f137181565168',1,'glm::l2Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#gae288bde8f0e41fb4ed62e65137b18cba',1,'glm::l2Norm(vec< 3, T, Q > const &x)']]], - ['ldexp',['ldexp',['../a00241.html#gac3010e0a0c35a1b514540f2fb579c58c',1,'glm']]], - ['lefthanded',['leftHanded',['../a00328.html#ga6f1bad193b9a3b048543d1935cf04dd3',1,'glm']]], - ['length',['length',['../a00254.html#gab703732449be6c7199369b3f9a91ed38',1,'glm::length(qua< T, Q > const &q)'],['../a00279.html#ga0cdabbb000834d994a1d6dc56f8f5263',1,'glm::length(vec< L, T, Q > const &x)']]], - ['length2',['length2',['../a00343.html#ga8d1789651050adb7024917984b41c3de',1,'glm::length2(vec< L, T, Q > const &x)'],['../a00352.html#ga58a609b1b8ab965f5df2702e8ca4e75b',1,'glm::length2(qua< T, Q > const &q)']]], - ['lerp',['lerp',['../a00248.html#ga6033dc0741051fa463a0a147ba29f293',1,'glm::lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00315.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00315.html#gaa551c0a0e16d2d4608e49f7696df897f',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)'],['../a00315.html#ga44a8b5fd776320f1713413dec959b32a',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)'],['../a00315.html#ga89ac8e000199292ec7875519d27e214b',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)'],['../a00315.html#gaf68de5baf72d16135368b8ef4f841604',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)'],['../a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)'],['../a00315.html#gab5477ab69c40de4db5d58d3359529724',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)'],['../a00317.html#gace8380112d16d33f520839cb35a4d173',1,'glm::lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)']]], - ['lessthan',['lessThan',['../a00299.html#gad091a2d22c8acfebfa92bcfca1dfe9c4',1,'glm::lessThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gae90ed1592c395f93e3f3dfce6b2f39c6',1,'glm::lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['lessthanequal',['lessThanEqual',['../a00299.html#gac00012eea281800d2403f4ea8443134d',1,'glm::lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gab0bdafc019d227257ff73fb5bcca1718',1,'glm::lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['levels',['levels',['../a00361.html#gaa8c377f4e63486db4fa872d77880da73',1,'glm']]], - ['lineargradient',['linearGradient',['../a00327.html#ga849241df1e55129b8ce9476200307419',1,'glm']]], - ['linearinterpolation',['linearInterpolation',['../a00318.html#ga290c3e47cb0a49f2e8abe90b1872b649',1,'glm']]], - ['linearrand',['linearRand',['../a00300.html#ga04e241ab88374a477a2c2ceadd2fa03d',1,'glm::linearRand(genType Min, genType Max)'],['../a00300.html#ga94731130c298a9ff5e5025fdee6d97a0',1,'glm::linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)']]], - ['lmaxnorm',['lMaxNorm',['../a00343.html#gad58a8231fc32e38104a9e1c4d3c0cb64',1,'glm::lMaxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga6968a324837a8e899396d44de23d5aae',1,'glm::lMaxNorm(vec< 3, T, Q > const &x)']]], - ['ln_5fln_5ftwo',['ln_ln_two',['../a00290.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]], - ['ln_5ften',['ln_ten',['../a00290.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]], - ['ln_5ftwo',['ln_two',['../a00290.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]], - ['log',['log',['../a00242.html#ga918c9f3fd086ce20e6760c903bd30fa9',1,'glm::log(vec< L, T, Q > const &v)'],['../a00256.html#gaa5f7b20e296671b16ce25a2ab7ad5473',1,'glm::log(qua< T, Q > const &q)'],['../a00333.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &x, genType const &base)']]], - ['log2',['log2',['../a00242.html#ga82831c7d9cca777cebedfe03a19c8d75',1,'glm::log2(vec< L, T, Q > const &v)'],['../a00292.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]], - ['log_5fbase_2ehpp',['log_base.hpp',['../a00046.html',1,'']]], - ['lookat',['lookAt',['../a00247.html#gaa64aa951a0e99136bba9008d2b59c78e',1,'glm']]], - ['lookatlh',['lookAtLH',['../a00247.html#gab2c09e25b0a16d3a9d89cc85bbae41b0',1,'glm']]], - ['lookatrh',['lookAtRH',['../a00247.html#gacfa12c8889c754846bc20c65d9b5c701',1,'glm']]], - ['lowestbitvalue',['lowestBitValue',['../a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]], - ['lowp_5fbvec1',['lowp_bvec1',['../a00266.html#ga24a3d364e2ddd444f5b9e7975bbef8f9',1,'glm']]], - ['lowp_5fbvec2',['lowp_bvec2',['../a00282.html#ga5a5452140650988b94d5716e4d872465',1,'glm']]], - ['lowp_5fbvec3',['lowp_bvec3',['../a00282.html#ga79e0922a977662a8fd39d7829be3908b',1,'glm']]], - ['lowp_5fbvec4',['lowp_bvec4',['../a00282.html#ga15ac87724048ab7169bb5d3572939dd3',1,'glm']]], - ['lowp_5fddualquat',['lowp_ddualquat',['../a00317.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]], - ['lowp_5fdmat2',['lowp_dmat2',['../a00284.html#gad8e2727a6e7aa68280245bb0022118e1',1,'glm']]], - ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00284.html#gac61b94f5d9775f83f321bac899322fe2',1,'glm']]], - ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00284.html#gaf6bf2f5bde7ad5b9c289f777b93094af',1,'glm']]], - ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00284.html#ga97507a31ecee8609887d0f23bbde92c7',1,'glm']]], - ['lowp_5fdmat3',['lowp_dmat3',['../a00284.html#ga0cab80beee64a5f8d2ae4e823983063a',1,'glm']]], - ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00284.html#ga1e0ea3fba496bc7c6f620d2590acb66b',1,'glm']]], - ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00284.html#gac017848a9df570f60916a21a297b1e8e',1,'glm']]], - ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00284.html#ga93add35d2a44c5830978b827e8c295e8',1,'glm']]], - ['lowp_5fdmat4',['lowp_dmat4',['../a00284.html#ga708bc5b91bbfedd21debac8dcf2a64cd',1,'glm']]], - ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00284.html#ga382dc5295cead78766239a8457abfa98',1,'glm']]], - ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00284.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e',1,'glm']]], - ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00284.html#ga5b0413198b7e9f061f7534a221c9dac9',1,'glm']]], - ['lowp_5fdquat',['lowp_dquat',['../a00250.html#ga9e6e5f42e67dd5877350ba485c191f1c',1,'glm']]], - ['lowp_5fdualquat',['lowp_dualquat',['../a00317.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]], - ['lowp_5fdvec1',['lowp_dvec1',['../a00269.html#gaf906eb86b6e96c35138d0e4928e1435a',1,'glm']]], - ['lowp_5fdvec2',['lowp_dvec2',['../a00282.html#ga108086730d086b7f6f7a033955dfb9c3',1,'glm']]], - ['lowp_5fdvec3',['lowp_dvec3',['../a00282.html#ga42c518b2917e19ce6946a84c64a3a4b2',1,'glm']]], - ['lowp_5fdvec4',['lowp_dvec4',['../a00282.html#ga0b4432cb8d910e406576d10d802e190d',1,'glm']]], - ['lowp_5ff32',['lowp_f32',['../a00304.html#gaeea53879fc327293cf3352a409b7867b',1,'glm']]], - ['lowp_5ff32mat2',['lowp_f32mat2',['../a00304.html#ga52409bc6d4a2ce3421526c069220d685',1,'glm']]], - ['lowp_5ff32mat2x2',['lowp_f32mat2x2',['../a00304.html#ga1d091b6abfba1772450e1745a06525bc',1,'glm']]], - ['lowp_5ff32mat2x3',['lowp_f32mat2x3',['../a00304.html#ga961ccb34cd1a5654c772c8709e001dc5',1,'glm']]], - ['lowp_5ff32mat2x4',['lowp_f32mat2x4',['../a00304.html#gacc6bf0209dda0c7c14851a646071c974',1,'glm']]], - ['lowp_5ff32mat3',['lowp_f32mat3',['../a00304.html#ga4187f89f196505b40e63f516139511e5',1,'glm']]], - ['lowp_5ff32mat3x2',['lowp_f32mat3x2',['../a00304.html#gac53f9d7ab04eace67adad026092fb1e8',1,'glm']]], - ['lowp_5ff32mat3x3',['lowp_f32mat3x3',['../a00304.html#ga841211b641cff1fcf861bdb14e5e4abc',1,'glm']]], - ['lowp_5ff32mat3x4',['lowp_f32mat3x4',['../a00304.html#ga21b1b22dec013a72656e3644baf8a1e1',1,'glm']]], - ['lowp_5ff32mat4',['lowp_f32mat4',['../a00304.html#ga766aed2871e6173a81011a877f398f04',1,'glm']]], - ['lowp_5ff32mat4x2',['lowp_f32mat4x2',['../a00304.html#gae6f3fcb702a666de07650c149cfa845a',1,'glm']]], - ['lowp_5ff32mat4x3',['lowp_f32mat4x3',['../a00304.html#gac21eda58a1475449a5709b412ebd776c',1,'glm']]], - ['lowp_5ff32mat4x4',['lowp_f32mat4x4',['../a00304.html#ga4143d129898f91545948c46859adce44',1,'glm']]], - ['lowp_5ff32quat',['lowp_f32quat',['../a00304.html#gaa3ba60ef8f69c6aeb1629594eaa95347',1,'glm']]], - ['lowp_5ff32vec1',['lowp_f32vec1',['../a00304.html#ga43e5b41c834fcaf4db5a831c0e28128e',1,'glm']]], - ['lowp_5ff32vec2',['lowp_f32vec2',['../a00304.html#gaf3b694b2b8ded7e0b9f07b061917e1a0',1,'glm']]], - ['lowp_5ff32vec3',['lowp_f32vec3',['../a00304.html#gaf739a2cd7b81783a43148b53e40d983b',1,'glm']]], - ['lowp_5ff32vec4',['lowp_f32vec4',['../a00304.html#ga4e2e1debe022074ab224c9faf856d374',1,'glm']]], - ['lowp_5ff64',['lowp_f64',['../a00304.html#gabc7a97c07cbfac8e35eb5e63beb4b679',1,'glm']]], - ['lowp_5ff64mat2',['lowp_f64mat2',['../a00304.html#gafc730f6b4242763b0eda0ffa25150292',1,'glm']]], - ['lowp_5ff64mat2x2',['lowp_f64mat2x2',['../a00304.html#ga771fda9109933db34f808d92b9b84d7e',1,'glm']]], - ['lowp_5ff64mat2x3',['lowp_f64mat2x3',['../a00304.html#ga39e90adcffe33264bd608fa9c6bd184b',1,'glm']]], - ['lowp_5ff64mat2x4',['lowp_f64mat2x4',['../a00304.html#ga50265a202fbfe0a25fc70066c31d9336',1,'glm']]], - ['lowp_5ff64mat3',['lowp_f64mat3',['../a00304.html#ga58119a41d143ebaea0df70fe882e8a40',1,'glm']]], - ['lowp_5ff64mat3x2',['lowp_f64mat3x2',['../a00304.html#gab0eb2d65514ee3e49905aa2caad8c0ad',1,'glm']]], - ['lowp_5ff64mat3x3',['lowp_f64mat3x3',['../a00304.html#gac8f8a12ee03105ef8861dc652434e3b7',1,'glm']]], - ['lowp_5ff64mat3x4',['lowp_f64mat3x4',['../a00304.html#gade8d1edfb23996ab6c622e65e3893271',1,'glm']]], - ['lowp_5ff64mat4',['lowp_f64mat4',['../a00304.html#ga7451266e67794bd1125163502bc4a570',1,'glm']]], - ['lowp_5ff64mat4x2',['lowp_f64mat4x2',['../a00304.html#gab0cecb80fd106bc369b9e46a165815ce',1,'glm']]], - ['lowp_5ff64mat4x3',['lowp_f64mat4x3',['../a00304.html#gae731613b25db3a5ef5a05d21e57a57d3',1,'glm']]], - ['lowp_5ff64mat4x4',['lowp_f64mat4x4',['../a00304.html#ga8c9cd734e03cd49674f3e287aa4a6f95',1,'glm']]], - ['lowp_5ff64quat',['lowp_f64quat',['../a00304.html#gaa3ee2bc4af03cc06578b66b3e3f878ae',1,'glm']]], - ['lowp_5ff64vec1',['lowp_f64vec1',['../a00304.html#gaf2d02c5f4d59135b9bc524fe317fd26b',1,'glm']]], - ['lowp_5ff64vec2',['lowp_f64vec2',['../a00304.html#ga4e641a54d70c81eabf56c25c966d04bd',1,'glm']]], - ['lowp_5ff64vec3',['lowp_f64vec3',['../a00304.html#gae7a4711107b7d078fc5f03ce2227b90b',1,'glm']]], - ['lowp_5ff64vec4',['lowp_f64vec4',['../a00304.html#gaa666bb9e6d204d3bea0b3a39a3a335f4',1,'glm']]], - ['lowp_5ffdualquat',['lowp_fdualquat',['../a00317.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]], - ['lowp_5ffloat32',['lowp_float32',['../a00304.html#ga41b0d390bd8cc827323b1b3816ff4bf8',1,'glm']]], - ['lowp_5ffloat32_5ft',['lowp_float32_t',['../a00304.html#gaea881cae4ddc6c0fbf7cc5b08177ca5b',1,'glm']]], - ['lowp_5ffloat64',['lowp_float64',['../a00304.html#ga3714dab2c16a6545a405cb0c3b3aaa6f',1,'glm']]], - ['lowp_5ffloat64_5ft',['lowp_float64_t',['../a00304.html#ga7286a37076a09da140df18bfa75d4e38',1,'glm']]], - ['lowp_5ffmat2',['lowp_fmat2',['../a00304.html#ga5bba0ce31210e274f73efacd3364c03f',1,'glm']]], - ['lowp_5ffmat2x2',['lowp_fmat2x2',['../a00304.html#gab0feb11edd0d3ab3e8ed996d349a5066',1,'glm']]], - ['lowp_5ffmat2x3',['lowp_fmat2x3',['../a00304.html#ga71cdb53801ed4c3aadb3603c04723210',1,'glm']]], - ['lowp_5ffmat2x4',['lowp_fmat2x4',['../a00304.html#gaab217601c74974a84acbca428123ecf7',1,'glm']]], - ['lowp_5ffmat3',['lowp_fmat3',['../a00304.html#ga83079315e230e8f39728f4bf0d2f9a9b',1,'glm']]], - ['lowp_5ffmat3x2',['lowp_fmat3x2',['../a00304.html#ga49b98e7d71804af45d86886a489e633c',1,'glm']]], - ['lowp_5ffmat3x3',['lowp_fmat3x3',['../a00304.html#gaba56275dd04a7a61560b0e8fa5d365b4',1,'glm']]], - ['lowp_5ffmat3x4',['lowp_fmat3x4',['../a00304.html#ga28733aec7288191b314d42154fd0b690',1,'glm']]], - ['lowp_5ffmat4',['lowp_fmat4',['../a00304.html#ga5803cb9ae26399762d8bba9e0b2fc09f',1,'glm']]], - ['lowp_5ffmat4x2',['lowp_fmat4x2',['../a00304.html#ga5868c2dcce41cc3ea5edcaeae239f62c',1,'glm']]], - ['lowp_5ffmat4x3',['lowp_fmat4x3',['../a00304.html#ga5e649bbdb135fbcb4bfe950f4c73a444',1,'glm']]], - ['lowp_5ffmat4x4',['lowp_fmat4x4',['../a00304.html#gac2f5263708ac847b361a9841e74ddf9f',1,'glm']]], - ['lowp_5ffvec1',['lowp_fvec1',['../a00304.html#ga346b2336fff168a7e0df1583aae3e5a5',1,'glm']]], - ['lowp_5ffvec2',['lowp_fvec2',['../a00304.html#ga62a32c31f4e2e8ca859663b6e3289a2d',1,'glm']]], - ['lowp_5ffvec3',['lowp_fvec3',['../a00304.html#ga40b5c557efebb5bb99d6b9aa81095afa',1,'glm']]], - ['lowp_5ffvec4',['lowp_fvec4',['../a00304.html#ga755484ffbe39ae3db2875953ed04e7b7',1,'glm']]], - ['lowp_5fi16',['lowp_i16',['../a00304.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]], - ['lowp_5fi16vec1',['lowp_i16vec1',['../a00304.html#ga501a2f313f1c220eef4ab02bdabdc3c6',1,'glm']]], - ['lowp_5fi16vec2',['lowp_i16vec2',['../a00304.html#ga7cac84b520a6b57f2fbd880d3d63c51b',1,'glm']]], - ['lowp_5fi16vec3',['lowp_i16vec3',['../a00304.html#gab69ef9cbc2a9214bf5596c528c801b72',1,'glm']]], - ['lowp_5fi16vec4',['lowp_i16vec4',['../a00304.html#ga1d47d94d17c2406abdd1f087a816e387',1,'glm']]], - ['lowp_5fi32',['lowp_i32',['../a00304.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]], - ['lowp_5fi32vec1',['lowp_i32vec1',['../a00304.html#gae31ac3608cf643ceffd6554874bec4a0',1,'glm']]], - ['lowp_5fi32vec2',['lowp_i32vec2',['../a00304.html#ga867a3c2d99ab369a454167d2c0a24dbd',1,'glm']]], - ['lowp_5fi32vec3',['lowp_i32vec3',['../a00304.html#ga5fe17c87ede1b1b4d92454cff4da076d',1,'glm']]], - ['lowp_5fi32vec4',['lowp_i32vec4',['../a00304.html#gac9b2eb4296ffe50a32eacca9ed932c08',1,'glm']]], - ['lowp_5fi64',['lowp_i64',['../a00304.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]], - ['lowp_5fi64vec1',['lowp_i64vec1',['../a00304.html#gab0f7d875db5f3cc9f3168c5a0ed56437',1,'glm']]], - ['lowp_5fi64vec2',['lowp_i64vec2',['../a00304.html#gab485c48f06a4fdd6b8d58d343bb49f3c',1,'glm']]], - ['lowp_5fi64vec3',['lowp_i64vec3',['../a00304.html#ga5cb1dc9e8d300c2cdb0d7ff2308fa36c',1,'glm']]], - ['lowp_5fi64vec4',['lowp_i64vec4',['../a00304.html#gabb4229a4c1488bf063eed0c45355bb9c',1,'glm']]], - ['lowp_5fi8',['lowp_i8',['../a00304.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]], - ['lowp_5fi8vec1',['lowp_i8vec1',['../a00304.html#ga036d6c7ca9fbbdc5f3871bfcb937c85c',1,'glm']]], - ['lowp_5fi8vec2',['lowp_i8vec2',['../a00304.html#gac03e5099d27eeaa74b6016ea435a1df2',1,'glm']]], - ['lowp_5fi8vec3',['lowp_i8vec3',['../a00304.html#gae2f43ace6b5b33ab49516d9e40af1845',1,'glm']]], - ['lowp_5fi8vec4',['lowp_i8vec4',['../a00304.html#ga6d388e9b9aa1b389f0672d9c7dfc61c5',1,'glm']]], - ['lowp_5fimat2',['lowp_imat2',['../a00294.html#gaa0bff0be804142bb16d441aec0a7962e',1,'glm']]], - ['lowp_5fimat2x2',['lowp_imat2x2',['../a00294.html#ga92b95b679975d408645547ab45a8dcd8',1,'glm']]], - ['lowp_5fimat2x3',['lowp_imat2x3',['../a00294.html#ga8c9e7a388f8e7c52f1e6857dee8afb65',1,'glm']]], - ['lowp_5fimat2x4',['lowp_imat2x4',['../a00294.html#ga9cc13bd1f8dd2933e9fa31fe3f70e16e',1,'glm']]], - ['lowp_5fimat3',['lowp_imat3',['../a00294.html#ga69bfe668f4170379fc1f35d82b060c43',1,'glm']]], - ['lowp_5fimat3x2',['lowp_imat3x2',['../a00294.html#ga33db8f27491d30906cd37c0d86b3f432',1,'glm']]], - ['lowp_5fimat3x3',['lowp_imat3x3',['../a00294.html#ga664f061df00020048c3f8530329ace45',1,'glm']]], - ['lowp_5fimat3x4',['lowp_imat3x4',['../a00294.html#ga9273faab33623d944af4080befbb2c80',1,'glm']]], - ['lowp_5fimat4',['lowp_imat4',['../a00294.html#gad1e77f7270cad461ca4fcb4c3ec2e98c',1,'glm']]], - ['lowp_5fimat4x2',['lowp_imat4x2',['../a00294.html#ga26ec1a2ba08a1488f5f05336858a0f09',1,'glm']]], - ['lowp_5fimat4x3',['lowp_imat4x3',['../a00294.html#ga8f40483a3ae634ead8ad22272c543a33',1,'glm']]], - ['lowp_5fimat4x4',['lowp_imat4x4',['../a00294.html#gaf65677e53ac8e31a107399340d5e2451',1,'glm']]], - ['lowp_5fint16',['lowp_int16',['../a00304.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]], - ['lowp_5fint16_5ft',['lowp_int16_t',['../a00304.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]], - ['lowp_5fint32',['lowp_int32',['../a00304.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]], - ['lowp_5fint32_5ft',['lowp_int32_t',['../a00304.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]], - ['lowp_5fint64',['lowp_int64',['../a00304.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]], - ['lowp_5fint64_5ft',['lowp_int64_t',['../a00304.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]], - ['lowp_5fint8',['lowp_int8',['../a00304.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]], - ['lowp_5fint8_5ft',['lowp_int8_t',['../a00304.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]], - ['lowp_5fivec1',['lowp_ivec1',['../a00273.html#ga836dbb1dc516c233b7f5fe9763bc15dc',1,'glm']]], - ['lowp_5fivec2',['lowp_ivec2',['../a00282.html#ga8433c6c1fdd80c0a83941d94aff73fa0',1,'glm']]], - ['lowp_5fivec3',['lowp_ivec3',['../a00282.html#gac1a86a75b3c68ebb704d7094043669d6',1,'glm']]], - ['lowp_5fivec4',['lowp_ivec4',['../a00282.html#ga27fc23da61859cd6356326c5f1c796de',1,'glm']]], - ['lowp_5fmat2',['lowp_mat2',['../a00284.html#gae400c4ce1f5f3e1fa12861b2baed331a',1,'glm']]], - ['lowp_5fmat2x2',['lowp_mat2x2',['../a00284.html#ga2df7cdaf9a571ce7a1b09435f502c694',1,'glm']]], - ['lowp_5fmat2x3',['lowp_mat2x3',['../a00284.html#ga3eee3a74d0f1de8635d846dfb29ec4bb',1,'glm']]], - ['lowp_5fmat2x4',['lowp_mat2x4',['../a00284.html#gade27f8324a16626cbce5d3e7da66b070',1,'glm']]], - ['lowp_5fmat3',['lowp_mat3',['../a00284.html#ga6271ebc85ed778ccc15458c3d86fc854',1,'glm']]], - ['lowp_5fmat3x2',['lowp_mat3x2',['../a00284.html#gaabf6cf90fd31efe25c94965507e98390',1,'glm']]], - ['lowp_5fmat3x3',['lowp_mat3x3',['../a00284.html#ga63362cb4a63fc1be7d2e49cd5d574c84',1,'glm']]], - ['lowp_5fmat3x4',['lowp_mat3x4',['../a00284.html#gac5fc6786688eff02904ca5e7d6960092',1,'glm']]], - ['lowp_5fmat4',['lowp_mat4',['../a00284.html#ga2dedee030500865267cd5851c00c139d',1,'glm']]], - ['lowp_5fmat4x2',['lowp_mat4x2',['../a00284.html#gafa3cdb8f24d09d761ec9ae2a4c7e5e21',1,'glm']]], - ['lowp_5fmat4x3',['lowp_mat4x3',['../a00284.html#ga534c3ef5c3b8fdd8656b6afc205b4b77',1,'glm']]], - ['lowp_5fmat4x4',['lowp_mat4x4',['../a00284.html#ga686468a9a815bd4db8cddae42a6d6b87',1,'glm']]], - ['lowp_5fquat',['lowp_quat',['../a00253.html#gade62c5316c1c11a79c34c00c189558eb',1,'glm']]], - ['lowp_5fu16',['lowp_u16',['../a00304.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]], - ['lowp_5fu16vec1',['lowp_u16vec1',['../a00304.html#gaa6aab4ee7189b86716f5d7015d43021d',1,'glm']]], - ['lowp_5fu16vec2',['lowp_u16vec2',['../a00304.html#ga2a7d997da9ac29cb931e35bd399f58df',1,'glm']]], - ['lowp_5fu16vec3',['lowp_u16vec3',['../a00304.html#gac0253db6c3d3bae1f591676307a9dd8c',1,'glm']]], - ['lowp_5fu16vec4',['lowp_u16vec4',['../a00304.html#gaa7f00459b9a2e5b2757e70afc0c189e1',1,'glm']]], - ['lowp_5fu32',['lowp_u32',['../a00304.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]], - ['lowp_5fu32vec1',['lowp_u32vec1',['../a00304.html#gabed3be8dfdc4a0df4bf3271dbd7344c4',1,'glm']]], - ['lowp_5fu32vec2',['lowp_u32vec2',['../a00304.html#gaf7e286e81347011e257ee779524e73b9',1,'glm']]], - ['lowp_5fu32vec3',['lowp_u32vec3',['../a00304.html#gad3ad390560a671b1f676fbf03cd3aa15',1,'glm']]], - ['lowp_5fu32vec4',['lowp_u32vec4',['../a00304.html#ga4502885718742aa238c36a312c3f3f20',1,'glm']]], - ['lowp_5fu64',['lowp_u64',['../a00304.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]], - ['lowp_5fu64vec1',['lowp_u64vec1',['../a00304.html#ga859be7b9d3a3765c1cafc14dbcf249a6',1,'glm']]], - ['lowp_5fu64vec2',['lowp_u64vec2',['../a00304.html#ga581485db4ba6ddb501505ee711fd8e42',1,'glm']]], - ['lowp_5fu64vec3',['lowp_u64vec3',['../a00304.html#gaa4a8682bec7ec8af666ef87fae38d5d1',1,'glm']]], - ['lowp_5fu64vec4',['lowp_u64vec4',['../a00304.html#ga6fccc89c34045c86339f6fa781ce96de',1,'glm']]], - ['lowp_5fu8',['lowp_u8',['../a00304.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]], - ['lowp_5fu8vec1',['lowp_u8vec1',['../a00304.html#ga4b2e0e10d8d154fec9cab50e216588ec',1,'glm']]], - ['lowp_5fu8vec2',['lowp_u8vec2',['../a00304.html#gae6f63fa38635431e51a8f2602f15c566',1,'glm']]], - ['lowp_5fu8vec3',['lowp_u8vec3',['../a00304.html#ga150dc47e31c6b8cf8461803c8d56f7bd',1,'glm']]], - ['lowp_5fu8vec4',['lowp_u8vec4',['../a00304.html#ga9910927f3a4d1addb3da6a82542a8287',1,'glm']]], - ['lowp_5fuint16',['lowp_uint16',['../a00304.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]], - ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00304.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]], - ['lowp_5fuint32',['lowp_uint32',['../a00304.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]], - ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00304.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]], - ['lowp_5fuint64',['lowp_uint64',['../a00304.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]], - ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00304.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]], - ['lowp_5fuint8',['lowp_uint8',['../a00304.html#gaf49470869e9be2c059629b250619804e',1,'glm']]], - ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00304.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]], - ['lowp_5fumat2',['lowp_umat2',['../a00294.html#gaf2fba702d990437fc88ff3f3a76846ee',1,'glm']]], - ['lowp_5fumat2x2',['lowp_umat2x2',['../a00294.html#ga7b2e9d89745f7175051284e54c81d81c',1,'glm']]], - ['lowp_5fumat2x3',['lowp_umat2x3',['../a00294.html#ga3072f90fd86f17a862e21589fbb14c0f',1,'glm']]], - ['lowp_5fumat2x4',['lowp_umat2x4',['../a00294.html#ga8bb45fec4bd77bd81b4ae7eb961a270d',1,'glm']]], - ['lowp_5fumat3',['lowp_umat3',['../a00294.html#gaf1145f72bcdd590f5808c4bc170c2924',1,'glm']]], - ['lowp_5fumat3x2',['lowp_umat3x2',['../a00294.html#ga56ea68c6a6cba8d8c21d17bb14e69c6b',1,'glm']]], - ['lowp_5fumat3x3',['lowp_umat3x3',['../a00294.html#ga4f660a39a395cc14f018f985e7dfbeb5',1,'glm']]], - ['lowp_5fumat3x4',['lowp_umat3x4',['../a00294.html#gaec3d624306bd59649f021864709d56b5',1,'glm']]], - ['lowp_5fumat4',['lowp_umat4',['../a00294.html#gac092c6105827bf9ea080db38074b78eb',1,'glm']]], - ['lowp_5fumat4x2',['lowp_umat4x2',['../a00294.html#ga7716c2b210d141846f1ac4e774adef5e',1,'glm']]], - ['lowp_5fumat4x3',['lowp_umat4x3',['../a00294.html#ga09ab33a2636f5f43f7fae29cfbc20fff',1,'glm']]], - ['lowp_5fumat4x4',['lowp_umat4x4',['../a00294.html#ga10aafc66cf1a0ece336b1c5ae13d0cc0',1,'glm']]], - ['lowp_5fuvec1',['lowp_uvec1',['../a00277.html#ga8bf3fc8a7863d140f48b29341c750402',1,'glm']]], - ['lowp_5fuvec2',['lowp_uvec2',['../a00282.html#ga752ee45136011301b64afd8c310c47a4',1,'glm']]], - ['lowp_5fuvec3',['lowp_uvec3',['../a00282.html#ga7b2efbdd6bdc2f8250c57f3e5dc9a292',1,'glm']]], - ['lowp_5fuvec4',['lowp_uvec4',['../a00282.html#ga5e6a632ec1165cf9f54ceeaa5e9b2b1e',1,'glm']]], - ['lowp_5fvec1',['lowp_vec1',['../a00271.html#ga0a57630f03031706b1d26a7d70d9184c',1,'glm']]], - ['lowp_5fvec2',['lowp_vec2',['../a00282.html#ga30e8baef5d56d5c166872a2bc00f36e9',1,'glm']]], - ['lowp_5fvec3',['lowp_vec3',['../a00282.html#ga868e8e4470a3ef97c7ee3032bf90dc79',1,'glm']]], - ['lowp_5fvec4',['lowp_vec4',['../a00282.html#gace3acb313c800552a9411953eb8b2ed7',1,'glm']]], - ['luminosity',['luminosity',['../a00312.html#gad028e0a4f1a9c812b39439b746295b34',1,'glm']]], - ['lxnorm',['lxNorm',['../a00343.html#gacad23d30497eb16f67709f2375d1f66a',1,'glm::lxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)'],['../a00343.html#gac61b6d81d796d6eb4d4183396a19ab91',1,'glm::lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)']]] -]; +var searchData= +[ + ['l1norm',['l1Norm',['../a00343.html#gae2fc0b2aa967bebfd6a244700bff6997',1,'glm::l1Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga1a7491e2037ceeb37f83ce41addfc0be',1,'glm::l1Norm(vec< 3, T, Q > const &v)']]], + ['l2norm',['l2Norm',['../a00343.html#ga41340b2ef40a9307ab0f137181565168',1,'glm::l2Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#gae288bde8f0e41fb4ed62e65137b18cba',1,'glm::l2Norm(vec< 3, T, Q > const &x)']]], + ['ldexp',['ldexp',['../a00241.html#gac3010e0a0c35a1b514540f2fb579c58c',1,'glm']]], + ['lefthanded',['leftHanded',['../a00328.html#ga6f1bad193b9a3b048543d1935cf04dd3',1,'glm']]], + ['length',['length',['../a00254.html#gab703732449be6c7199369b3f9a91ed38',1,'glm::length(qua< T, Q > const &q)'],['../a00279.html#ga0cdabbb000834d994a1d6dc56f8f5263',1,'glm::length(vec< L, T, Q > const &x)']]], + ['length2',['length2',['../a00343.html#ga8d1789651050adb7024917984b41c3de',1,'glm::length2(vec< L, T, Q > const &x)'],['../a00352.html#ga58a609b1b8ab965f5df2702e8ca4e75b',1,'glm::length2(qua< T, Q > const &q)']]], + ['lerp',['lerp',['../a00248.html#ga6033dc0741051fa463a0a147ba29f293',1,'glm::lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00315.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00315.html#gaa551c0a0e16d2d4608e49f7696df897f',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)'],['../a00315.html#ga44a8b5fd776320f1713413dec959b32a',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)'],['../a00315.html#ga89ac8e000199292ec7875519d27e214b',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)'],['../a00315.html#gaf68de5baf72d16135368b8ef4f841604',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)'],['../a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)'],['../a00315.html#gab5477ab69c40de4db5d58d3359529724',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)'],['../a00317.html#gace8380112d16d33f520839cb35a4d173',1,'glm::lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)']]], + ['lessthan',['lessThan',['../a00299.html#gad091a2d22c8acfebfa92bcfca1dfe9c4',1,'glm::lessThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gae90ed1592c395f93e3f3dfce6b2f39c6',1,'glm::lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['lessthanequal',['lessThanEqual',['../a00299.html#gac00012eea281800d2403f4ea8443134d',1,'glm::lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gab0bdafc019d227257ff73fb5bcca1718',1,'glm::lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['levels',['levels',['../a00361.html#gaa8c377f4e63486db4fa872d77880da73',1,'glm']]], + ['lineargradient',['linearGradient',['../a00327.html#ga849241df1e55129b8ce9476200307419',1,'glm']]], + ['linearinterpolation',['linearInterpolation',['../a00318.html#ga290c3e47cb0a49f2e8abe90b1872b649',1,'glm']]], + ['linearrand',['linearRand',['../a00300.html#ga04e241ab88374a477a2c2ceadd2fa03d',1,'glm::linearRand(genType Min, genType Max)'],['../a00300.html#ga94731130c298a9ff5e5025fdee6d97a0',1,'glm::linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)']]], + ['lmaxnorm',['lMaxNorm',['../a00343.html#gad58a8231fc32e38104a9e1c4d3c0cb64',1,'glm::lMaxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga6968a324837a8e899396d44de23d5aae',1,'glm::lMaxNorm(vec< 3, T, Q > const &x)']]], + ['ln_5fln_5ftwo',['ln_ln_two',['../a00290.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]], + ['ln_5ften',['ln_ten',['../a00290.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]], + ['ln_5ftwo',['ln_two',['../a00290.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]], + ['log',['log',['../a00242.html#ga918c9f3fd086ce20e6760c903bd30fa9',1,'glm::log(vec< L, T, Q > const &v)'],['../a00256.html#gaa5f7b20e296671b16ce25a2ab7ad5473',1,'glm::log(qua< T, Q > const &q)'],['../a00333.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &x, genType const &base)']]], + ['log2',['log2',['../a00242.html#ga82831c7d9cca777cebedfe03a19c8d75',1,'glm::log2(vec< L, T, Q > const &v)'],['../a00292.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]], + ['log_5fbase_2ehpp',['log_base.hpp',['../a00046.html',1,'']]], + ['lookat',['lookAt',['../a00247.html#gaa64aa951a0e99136bba9008d2b59c78e',1,'glm']]], + ['lookatlh',['lookAtLH',['../a00247.html#gab2c09e25b0a16d3a9d89cc85bbae41b0',1,'glm']]], + ['lookatrh',['lookAtRH',['../a00247.html#gacfa12c8889c754846bc20c65d9b5c701',1,'glm']]], + ['lowestbitvalue',['lowestBitValue',['../a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]], + ['lowp_5fbvec1',['lowp_bvec1',['../a00266.html#ga24a3d364e2ddd444f5b9e7975bbef8f9',1,'glm']]], + ['lowp_5fbvec2',['lowp_bvec2',['../a00282.html#ga5a5452140650988b94d5716e4d872465',1,'glm']]], + ['lowp_5fbvec3',['lowp_bvec3',['../a00282.html#ga79e0922a977662a8fd39d7829be3908b',1,'glm']]], + ['lowp_5fbvec4',['lowp_bvec4',['../a00282.html#ga15ac87724048ab7169bb5d3572939dd3',1,'glm']]], + ['lowp_5fddualquat',['lowp_ddualquat',['../a00317.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]], + ['lowp_5fdmat2',['lowp_dmat2',['../a00284.html#gad8e2727a6e7aa68280245bb0022118e1',1,'glm']]], + ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00284.html#gac61b94f5d9775f83f321bac899322fe2',1,'glm']]], + ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00284.html#gaf6bf2f5bde7ad5b9c289f777b93094af',1,'glm']]], + ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00284.html#ga97507a31ecee8609887d0f23bbde92c7',1,'glm']]], + ['lowp_5fdmat3',['lowp_dmat3',['../a00284.html#ga0cab80beee64a5f8d2ae4e823983063a',1,'glm']]], + ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00284.html#ga1e0ea3fba496bc7c6f620d2590acb66b',1,'glm']]], + ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00284.html#gac017848a9df570f60916a21a297b1e8e',1,'glm']]], + ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00284.html#ga93add35d2a44c5830978b827e8c295e8',1,'glm']]], + ['lowp_5fdmat4',['lowp_dmat4',['../a00284.html#ga708bc5b91bbfedd21debac8dcf2a64cd',1,'glm']]], + ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00284.html#ga382dc5295cead78766239a8457abfa98',1,'glm']]], + ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00284.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e',1,'glm']]], + ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00284.html#ga5b0413198b7e9f061f7534a221c9dac9',1,'glm']]], + ['lowp_5fdquat',['lowp_dquat',['../a00250.html#ga9e6e5f42e67dd5877350ba485c191f1c',1,'glm']]], + ['lowp_5fdualquat',['lowp_dualquat',['../a00317.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]], + ['lowp_5fdvec1',['lowp_dvec1',['../a00269.html#gaf906eb86b6e96c35138d0e4928e1435a',1,'glm']]], + ['lowp_5fdvec2',['lowp_dvec2',['../a00282.html#ga108086730d086b7f6f7a033955dfb9c3',1,'glm']]], + ['lowp_5fdvec3',['lowp_dvec3',['../a00282.html#ga42c518b2917e19ce6946a84c64a3a4b2',1,'glm']]], + ['lowp_5fdvec4',['lowp_dvec4',['../a00282.html#ga0b4432cb8d910e406576d10d802e190d',1,'glm']]], + ['lowp_5ff32',['lowp_f32',['../a00304.html#gaeea53879fc327293cf3352a409b7867b',1,'glm']]], + ['lowp_5ff32mat2',['lowp_f32mat2',['../a00304.html#ga52409bc6d4a2ce3421526c069220d685',1,'glm']]], + ['lowp_5ff32mat2x2',['lowp_f32mat2x2',['../a00304.html#ga1d091b6abfba1772450e1745a06525bc',1,'glm']]], + ['lowp_5ff32mat2x3',['lowp_f32mat2x3',['../a00304.html#ga961ccb34cd1a5654c772c8709e001dc5',1,'glm']]], + ['lowp_5ff32mat2x4',['lowp_f32mat2x4',['../a00304.html#gacc6bf0209dda0c7c14851a646071c974',1,'glm']]], + ['lowp_5ff32mat3',['lowp_f32mat3',['../a00304.html#ga4187f89f196505b40e63f516139511e5',1,'glm']]], + ['lowp_5ff32mat3x2',['lowp_f32mat3x2',['../a00304.html#gac53f9d7ab04eace67adad026092fb1e8',1,'glm']]], + ['lowp_5ff32mat3x3',['lowp_f32mat3x3',['../a00304.html#ga841211b641cff1fcf861bdb14e5e4abc',1,'glm']]], + ['lowp_5ff32mat3x4',['lowp_f32mat3x4',['../a00304.html#ga21b1b22dec013a72656e3644baf8a1e1',1,'glm']]], + ['lowp_5ff32mat4',['lowp_f32mat4',['../a00304.html#ga766aed2871e6173a81011a877f398f04',1,'glm']]], + ['lowp_5ff32mat4x2',['lowp_f32mat4x2',['../a00304.html#gae6f3fcb702a666de07650c149cfa845a',1,'glm']]], + ['lowp_5ff32mat4x3',['lowp_f32mat4x3',['../a00304.html#gac21eda58a1475449a5709b412ebd776c',1,'glm']]], + ['lowp_5ff32mat4x4',['lowp_f32mat4x4',['../a00304.html#ga4143d129898f91545948c46859adce44',1,'glm']]], + ['lowp_5ff32quat',['lowp_f32quat',['../a00304.html#gaa3ba60ef8f69c6aeb1629594eaa95347',1,'glm']]], + ['lowp_5ff32vec1',['lowp_f32vec1',['../a00304.html#ga43e5b41c834fcaf4db5a831c0e28128e',1,'glm']]], + ['lowp_5ff32vec2',['lowp_f32vec2',['../a00304.html#gaf3b694b2b8ded7e0b9f07b061917e1a0',1,'glm']]], + ['lowp_5ff32vec3',['lowp_f32vec3',['../a00304.html#gaf739a2cd7b81783a43148b53e40d983b',1,'glm']]], + ['lowp_5ff32vec4',['lowp_f32vec4',['../a00304.html#ga4e2e1debe022074ab224c9faf856d374',1,'glm']]], + ['lowp_5ff64',['lowp_f64',['../a00304.html#gabc7a97c07cbfac8e35eb5e63beb4b679',1,'glm']]], + ['lowp_5ff64mat2',['lowp_f64mat2',['../a00304.html#gafc730f6b4242763b0eda0ffa25150292',1,'glm']]], + ['lowp_5ff64mat2x2',['lowp_f64mat2x2',['../a00304.html#ga771fda9109933db34f808d92b9b84d7e',1,'glm']]], + ['lowp_5ff64mat2x3',['lowp_f64mat2x3',['../a00304.html#ga39e90adcffe33264bd608fa9c6bd184b',1,'glm']]], + ['lowp_5ff64mat2x4',['lowp_f64mat2x4',['../a00304.html#ga50265a202fbfe0a25fc70066c31d9336',1,'glm']]], + ['lowp_5ff64mat3',['lowp_f64mat3',['../a00304.html#ga58119a41d143ebaea0df70fe882e8a40',1,'glm']]], + ['lowp_5ff64mat3x2',['lowp_f64mat3x2',['../a00304.html#gab0eb2d65514ee3e49905aa2caad8c0ad',1,'glm']]], + ['lowp_5ff64mat3x3',['lowp_f64mat3x3',['../a00304.html#gac8f8a12ee03105ef8861dc652434e3b7',1,'glm']]], + ['lowp_5ff64mat3x4',['lowp_f64mat3x4',['../a00304.html#gade8d1edfb23996ab6c622e65e3893271',1,'glm']]], + ['lowp_5ff64mat4',['lowp_f64mat4',['../a00304.html#ga7451266e67794bd1125163502bc4a570',1,'glm']]], + ['lowp_5ff64mat4x2',['lowp_f64mat4x2',['../a00304.html#gab0cecb80fd106bc369b9e46a165815ce',1,'glm']]], + ['lowp_5ff64mat4x3',['lowp_f64mat4x3',['../a00304.html#gae731613b25db3a5ef5a05d21e57a57d3',1,'glm']]], + ['lowp_5ff64mat4x4',['lowp_f64mat4x4',['../a00304.html#ga8c9cd734e03cd49674f3e287aa4a6f95',1,'glm']]], + ['lowp_5ff64quat',['lowp_f64quat',['../a00304.html#gaa3ee2bc4af03cc06578b66b3e3f878ae',1,'glm']]], + ['lowp_5ff64vec1',['lowp_f64vec1',['../a00304.html#gaf2d02c5f4d59135b9bc524fe317fd26b',1,'glm']]], + ['lowp_5ff64vec2',['lowp_f64vec2',['../a00304.html#ga4e641a54d70c81eabf56c25c966d04bd',1,'glm']]], + ['lowp_5ff64vec3',['lowp_f64vec3',['../a00304.html#gae7a4711107b7d078fc5f03ce2227b90b',1,'glm']]], + ['lowp_5ff64vec4',['lowp_f64vec4',['../a00304.html#gaa666bb9e6d204d3bea0b3a39a3a335f4',1,'glm']]], + ['lowp_5ffdualquat',['lowp_fdualquat',['../a00317.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]], + ['lowp_5ffloat32',['lowp_float32',['../a00304.html#ga41b0d390bd8cc827323b1b3816ff4bf8',1,'glm']]], + ['lowp_5ffloat32_5ft',['lowp_float32_t',['../a00304.html#gaea881cae4ddc6c0fbf7cc5b08177ca5b',1,'glm']]], + ['lowp_5ffloat64',['lowp_float64',['../a00304.html#ga3714dab2c16a6545a405cb0c3b3aaa6f',1,'glm']]], + ['lowp_5ffloat64_5ft',['lowp_float64_t',['../a00304.html#ga7286a37076a09da140df18bfa75d4e38',1,'glm']]], + ['lowp_5ffmat2',['lowp_fmat2',['../a00304.html#ga5bba0ce31210e274f73efacd3364c03f',1,'glm']]], + ['lowp_5ffmat2x2',['lowp_fmat2x2',['../a00304.html#gab0feb11edd0d3ab3e8ed996d349a5066',1,'glm']]], + ['lowp_5ffmat2x3',['lowp_fmat2x3',['../a00304.html#ga71cdb53801ed4c3aadb3603c04723210',1,'glm']]], + ['lowp_5ffmat2x4',['lowp_fmat2x4',['../a00304.html#gaab217601c74974a84acbca428123ecf7',1,'glm']]], + ['lowp_5ffmat3',['lowp_fmat3',['../a00304.html#ga83079315e230e8f39728f4bf0d2f9a9b',1,'glm']]], + ['lowp_5ffmat3x2',['lowp_fmat3x2',['../a00304.html#ga49b98e7d71804af45d86886a489e633c',1,'glm']]], + ['lowp_5ffmat3x3',['lowp_fmat3x3',['../a00304.html#gaba56275dd04a7a61560b0e8fa5d365b4',1,'glm']]], + ['lowp_5ffmat3x4',['lowp_fmat3x4',['../a00304.html#ga28733aec7288191b314d42154fd0b690',1,'glm']]], + ['lowp_5ffmat4',['lowp_fmat4',['../a00304.html#ga5803cb9ae26399762d8bba9e0b2fc09f',1,'glm']]], + ['lowp_5ffmat4x2',['lowp_fmat4x2',['../a00304.html#ga5868c2dcce41cc3ea5edcaeae239f62c',1,'glm']]], + ['lowp_5ffmat4x3',['lowp_fmat4x3',['../a00304.html#ga5e649bbdb135fbcb4bfe950f4c73a444',1,'glm']]], + ['lowp_5ffmat4x4',['lowp_fmat4x4',['../a00304.html#gac2f5263708ac847b361a9841e74ddf9f',1,'glm']]], + ['lowp_5ffvec1',['lowp_fvec1',['../a00304.html#ga346b2336fff168a7e0df1583aae3e5a5',1,'glm']]], + ['lowp_5ffvec2',['lowp_fvec2',['../a00304.html#ga62a32c31f4e2e8ca859663b6e3289a2d',1,'glm']]], + ['lowp_5ffvec3',['lowp_fvec3',['../a00304.html#ga40b5c557efebb5bb99d6b9aa81095afa',1,'glm']]], + ['lowp_5ffvec4',['lowp_fvec4',['../a00304.html#ga755484ffbe39ae3db2875953ed04e7b7',1,'glm']]], + ['lowp_5fi16',['lowp_i16',['../a00304.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]], + ['lowp_5fi16vec1',['lowp_i16vec1',['../a00304.html#ga501a2f313f1c220eef4ab02bdabdc3c6',1,'glm']]], + ['lowp_5fi16vec2',['lowp_i16vec2',['../a00304.html#ga7cac84b520a6b57f2fbd880d3d63c51b',1,'glm']]], + ['lowp_5fi16vec3',['lowp_i16vec3',['../a00304.html#gab69ef9cbc2a9214bf5596c528c801b72',1,'glm']]], + ['lowp_5fi16vec4',['lowp_i16vec4',['../a00304.html#ga1d47d94d17c2406abdd1f087a816e387',1,'glm']]], + ['lowp_5fi32',['lowp_i32',['../a00304.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]], + ['lowp_5fi32vec1',['lowp_i32vec1',['../a00304.html#gae31ac3608cf643ceffd6554874bec4a0',1,'glm']]], + ['lowp_5fi32vec2',['lowp_i32vec2',['../a00304.html#ga867a3c2d99ab369a454167d2c0a24dbd',1,'glm']]], + ['lowp_5fi32vec3',['lowp_i32vec3',['../a00304.html#ga5fe17c87ede1b1b4d92454cff4da076d',1,'glm']]], + ['lowp_5fi32vec4',['lowp_i32vec4',['../a00304.html#gac9b2eb4296ffe50a32eacca9ed932c08',1,'glm']]], + ['lowp_5fi64',['lowp_i64',['../a00304.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]], + ['lowp_5fi64vec1',['lowp_i64vec1',['../a00304.html#gab0f7d875db5f3cc9f3168c5a0ed56437',1,'glm']]], + ['lowp_5fi64vec2',['lowp_i64vec2',['../a00304.html#gab485c48f06a4fdd6b8d58d343bb49f3c',1,'glm']]], + ['lowp_5fi64vec3',['lowp_i64vec3',['../a00304.html#ga5cb1dc9e8d300c2cdb0d7ff2308fa36c',1,'glm']]], + ['lowp_5fi64vec4',['lowp_i64vec4',['../a00304.html#gabb4229a4c1488bf063eed0c45355bb9c',1,'glm']]], + ['lowp_5fi8',['lowp_i8',['../a00304.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]], + ['lowp_5fi8vec1',['lowp_i8vec1',['../a00304.html#ga036d6c7ca9fbbdc5f3871bfcb937c85c',1,'glm']]], + ['lowp_5fi8vec2',['lowp_i8vec2',['../a00304.html#gac03e5099d27eeaa74b6016ea435a1df2',1,'glm']]], + ['lowp_5fi8vec3',['lowp_i8vec3',['../a00304.html#gae2f43ace6b5b33ab49516d9e40af1845',1,'glm']]], + ['lowp_5fi8vec4',['lowp_i8vec4',['../a00304.html#ga6d388e9b9aa1b389f0672d9c7dfc61c5',1,'glm']]], + ['lowp_5fimat2',['lowp_imat2',['../a00294.html#gaa0bff0be804142bb16d441aec0a7962e',1,'glm']]], + ['lowp_5fimat2x2',['lowp_imat2x2',['../a00294.html#ga92b95b679975d408645547ab45a8dcd8',1,'glm']]], + ['lowp_5fimat2x3',['lowp_imat2x3',['../a00294.html#ga8c9e7a388f8e7c52f1e6857dee8afb65',1,'glm']]], + ['lowp_5fimat2x4',['lowp_imat2x4',['../a00294.html#ga9cc13bd1f8dd2933e9fa31fe3f70e16e',1,'glm']]], + ['lowp_5fimat3',['lowp_imat3',['../a00294.html#ga69bfe668f4170379fc1f35d82b060c43',1,'glm']]], + ['lowp_5fimat3x2',['lowp_imat3x2',['../a00294.html#ga33db8f27491d30906cd37c0d86b3f432',1,'glm']]], + ['lowp_5fimat3x3',['lowp_imat3x3',['../a00294.html#ga664f061df00020048c3f8530329ace45',1,'glm']]], + ['lowp_5fimat3x4',['lowp_imat3x4',['../a00294.html#ga9273faab33623d944af4080befbb2c80',1,'glm']]], + ['lowp_5fimat4',['lowp_imat4',['../a00294.html#gad1e77f7270cad461ca4fcb4c3ec2e98c',1,'glm']]], + ['lowp_5fimat4x2',['lowp_imat4x2',['../a00294.html#ga26ec1a2ba08a1488f5f05336858a0f09',1,'glm']]], + ['lowp_5fimat4x3',['lowp_imat4x3',['../a00294.html#ga8f40483a3ae634ead8ad22272c543a33',1,'glm']]], + ['lowp_5fimat4x4',['lowp_imat4x4',['../a00294.html#gaf65677e53ac8e31a107399340d5e2451',1,'glm']]], + ['lowp_5fint16',['lowp_int16',['../a00304.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]], + ['lowp_5fint16_5ft',['lowp_int16_t',['../a00304.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]], + ['lowp_5fint32',['lowp_int32',['../a00304.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]], + ['lowp_5fint32_5ft',['lowp_int32_t',['../a00304.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]], + ['lowp_5fint64',['lowp_int64',['../a00304.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]], + ['lowp_5fint64_5ft',['lowp_int64_t',['../a00304.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]], + ['lowp_5fint8',['lowp_int8',['../a00304.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]], + ['lowp_5fint8_5ft',['lowp_int8_t',['../a00304.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]], + ['lowp_5fivec1',['lowp_ivec1',['../a00273.html#ga836dbb1dc516c233b7f5fe9763bc15dc',1,'glm']]], + ['lowp_5fivec2',['lowp_ivec2',['../a00282.html#ga8433c6c1fdd80c0a83941d94aff73fa0',1,'glm']]], + ['lowp_5fivec3',['lowp_ivec3',['../a00282.html#gac1a86a75b3c68ebb704d7094043669d6',1,'glm']]], + ['lowp_5fivec4',['lowp_ivec4',['../a00282.html#ga27fc23da61859cd6356326c5f1c796de',1,'glm']]], + ['lowp_5fmat2',['lowp_mat2',['../a00284.html#gae400c4ce1f5f3e1fa12861b2baed331a',1,'glm']]], + ['lowp_5fmat2x2',['lowp_mat2x2',['../a00284.html#ga2df7cdaf9a571ce7a1b09435f502c694',1,'glm']]], + ['lowp_5fmat2x3',['lowp_mat2x3',['../a00284.html#ga3eee3a74d0f1de8635d846dfb29ec4bb',1,'glm']]], + ['lowp_5fmat2x4',['lowp_mat2x4',['../a00284.html#gade27f8324a16626cbce5d3e7da66b070',1,'glm']]], + ['lowp_5fmat3',['lowp_mat3',['../a00284.html#ga6271ebc85ed778ccc15458c3d86fc854',1,'glm']]], + ['lowp_5fmat3x2',['lowp_mat3x2',['../a00284.html#gaabf6cf90fd31efe25c94965507e98390',1,'glm']]], + ['lowp_5fmat3x3',['lowp_mat3x3',['../a00284.html#ga63362cb4a63fc1be7d2e49cd5d574c84',1,'glm']]], + ['lowp_5fmat3x4',['lowp_mat3x4',['../a00284.html#gac5fc6786688eff02904ca5e7d6960092',1,'glm']]], + ['lowp_5fmat4',['lowp_mat4',['../a00284.html#ga2dedee030500865267cd5851c00c139d',1,'glm']]], + ['lowp_5fmat4x2',['lowp_mat4x2',['../a00284.html#gafa3cdb8f24d09d761ec9ae2a4c7e5e21',1,'glm']]], + ['lowp_5fmat4x3',['lowp_mat4x3',['../a00284.html#ga534c3ef5c3b8fdd8656b6afc205b4b77',1,'glm']]], + ['lowp_5fmat4x4',['lowp_mat4x4',['../a00284.html#ga686468a9a815bd4db8cddae42a6d6b87',1,'glm']]], + ['lowp_5fquat',['lowp_quat',['../a00253.html#gade62c5316c1c11a79c34c00c189558eb',1,'glm']]], + ['lowp_5fu16',['lowp_u16',['../a00304.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]], + ['lowp_5fu16vec1',['lowp_u16vec1',['../a00304.html#gaa6aab4ee7189b86716f5d7015d43021d',1,'glm']]], + ['lowp_5fu16vec2',['lowp_u16vec2',['../a00304.html#ga2a7d997da9ac29cb931e35bd399f58df',1,'glm']]], + ['lowp_5fu16vec3',['lowp_u16vec3',['../a00304.html#gac0253db6c3d3bae1f591676307a9dd8c',1,'glm']]], + ['lowp_5fu16vec4',['lowp_u16vec4',['../a00304.html#gaa7f00459b9a2e5b2757e70afc0c189e1',1,'glm']]], + ['lowp_5fu32',['lowp_u32',['../a00304.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]], + ['lowp_5fu32vec1',['lowp_u32vec1',['../a00304.html#gabed3be8dfdc4a0df4bf3271dbd7344c4',1,'glm']]], + ['lowp_5fu32vec2',['lowp_u32vec2',['../a00304.html#gaf7e286e81347011e257ee779524e73b9',1,'glm']]], + ['lowp_5fu32vec3',['lowp_u32vec3',['../a00304.html#gad3ad390560a671b1f676fbf03cd3aa15',1,'glm']]], + ['lowp_5fu32vec4',['lowp_u32vec4',['../a00304.html#ga4502885718742aa238c36a312c3f3f20',1,'glm']]], + ['lowp_5fu64',['lowp_u64',['../a00304.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]], + ['lowp_5fu64vec1',['lowp_u64vec1',['../a00304.html#ga859be7b9d3a3765c1cafc14dbcf249a6',1,'glm']]], + ['lowp_5fu64vec2',['lowp_u64vec2',['../a00304.html#ga581485db4ba6ddb501505ee711fd8e42',1,'glm']]], + ['lowp_5fu64vec3',['lowp_u64vec3',['../a00304.html#gaa4a8682bec7ec8af666ef87fae38d5d1',1,'glm']]], + ['lowp_5fu64vec4',['lowp_u64vec4',['../a00304.html#ga6fccc89c34045c86339f6fa781ce96de',1,'glm']]], + ['lowp_5fu8',['lowp_u8',['../a00304.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]], + ['lowp_5fu8vec1',['lowp_u8vec1',['../a00304.html#ga4b2e0e10d8d154fec9cab50e216588ec',1,'glm']]], + ['lowp_5fu8vec2',['lowp_u8vec2',['../a00304.html#gae6f63fa38635431e51a8f2602f15c566',1,'glm']]], + ['lowp_5fu8vec3',['lowp_u8vec3',['../a00304.html#ga150dc47e31c6b8cf8461803c8d56f7bd',1,'glm']]], + ['lowp_5fu8vec4',['lowp_u8vec4',['../a00304.html#ga9910927f3a4d1addb3da6a82542a8287',1,'glm']]], + ['lowp_5fuint16',['lowp_uint16',['../a00304.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]], + ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00304.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]], + ['lowp_5fuint32',['lowp_uint32',['../a00304.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]], + ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00304.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]], + ['lowp_5fuint64',['lowp_uint64',['../a00304.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]], + ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00304.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]], + ['lowp_5fuint8',['lowp_uint8',['../a00304.html#gaf49470869e9be2c059629b250619804e',1,'glm']]], + ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00304.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]], + ['lowp_5fumat2',['lowp_umat2',['../a00294.html#gaf2fba702d990437fc88ff3f3a76846ee',1,'glm']]], + ['lowp_5fumat2x2',['lowp_umat2x2',['../a00294.html#ga7b2e9d89745f7175051284e54c81d81c',1,'glm']]], + ['lowp_5fumat2x3',['lowp_umat2x3',['../a00294.html#ga3072f90fd86f17a862e21589fbb14c0f',1,'glm']]], + ['lowp_5fumat2x4',['lowp_umat2x4',['../a00294.html#ga8bb45fec4bd77bd81b4ae7eb961a270d',1,'glm']]], + ['lowp_5fumat3',['lowp_umat3',['../a00294.html#gaf1145f72bcdd590f5808c4bc170c2924',1,'glm']]], + ['lowp_5fumat3x2',['lowp_umat3x2',['../a00294.html#ga56ea68c6a6cba8d8c21d17bb14e69c6b',1,'glm']]], + ['lowp_5fumat3x3',['lowp_umat3x3',['../a00294.html#ga4f660a39a395cc14f018f985e7dfbeb5',1,'glm']]], + ['lowp_5fumat3x4',['lowp_umat3x4',['../a00294.html#gaec3d624306bd59649f021864709d56b5',1,'glm']]], + ['lowp_5fumat4',['lowp_umat4',['../a00294.html#gac092c6105827bf9ea080db38074b78eb',1,'glm']]], + ['lowp_5fumat4x2',['lowp_umat4x2',['../a00294.html#ga7716c2b210d141846f1ac4e774adef5e',1,'glm']]], + ['lowp_5fumat4x3',['lowp_umat4x3',['../a00294.html#ga09ab33a2636f5f43f7fae29cfbc20fff',1,'glm']]], + ['lowp_5fumat4x4',['lowp_umat4x4',['../a00294.html#ga10aafc66cf1a0ece336b1c5ae13d0cc0',1,'glm']]], + ['lowp_5fuvec1',['lowp_uvec1',['../a00277.html#ga8bf3fc8a7863d140f48b29341c750402',1,'glm']]], + ['lowp_5fuvec2',['lowp_uvec2',['../a00282.html#ga752ee45136011301b64afd8c310c47a4',1,'glm']]], + ['lowp_5fuvec3',['lowp_uvec3',['../a00282.html#ga7b2efbdd6bdc2f8250c57f3e5dc9a292',1,'glm']]], + ['lowp_5fuvec4',['lowp_uvec4',['../a00282.html#ga5e6a632ec1165cf9f54ceeaa5e9b2b1e',1,'glm']]], + ['lowp_5fvec1',['lowp_vec1',['../a00271.html#ga0a57630f03031706b1d26a7d70d9184c',1,'glm']]], + ['lowp_5fvec2',['lowp_vec2',['../a00282.html#ga30e8baef5d56d5c166872a2bc00f36e9',1,'glm']]], + ['lowp_5fvec3',['lowp_vec3',['../a00282.html#ga868e8e4470a3ef97c7ee3032bf90dc79',1,'glm']]], + ['lowp_5fvec4',['lowp_vec4',['../a00282.html#gace3acb313c800552a9411953eb8b2ed7',1,'glm']]], + ['luminosity',['luminosity',['../a00312.html#gad028e0a4f1a9c812b39439b746295b34',1,'glm']]], + ['lxnorm',['lxNorm',['../a00343.html#gacad23d30497eb16f67709f2375d1f66a',1,'glm::lxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)'],['../a00343.html#gac61b6d81d796d6eb4d4183396a19ab91',1,'glm::lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_a.html b/external/include/glm-0.9.9.8/doc/api/search/all_a.html index 0173517d30..4a25af1cad 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_a.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_a.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_a.js b/external/include/glm-0.9.9.8/doc/api/search/all_a.js index b3c747cf35..df2ba5cb26 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_a.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_a.js @@ -1,297 +1,297 @@ -var searchData= -[ - ['matrix_20functions',['Matrix functions',['../a00371.html',1,'']]], - ['matrix_20types',['Matrix types',['../a00283.html',1,'']]], - ['matrix_20types_20with_20precision_20qualifiers',['Matrix types with precision qualifiers',['../a00284.html',1,'']]], - ['make_5fmat2',['make_mat2',['../a00305.html#ga04409e74dc3da251d2501acf5b4b546c',1,'glm']]], - ['make_5fmat2x2',['make_mat2x2',['../a00305.html#gae49e1c7bcd5abec74d1c34155031f663',1,'glm']]], - ['make_5fmat2x3',['make_mat2x3',['../a00305.html#ga21982104164789cf8985483aaefc25e8',1,'glm']]], - ['make_5fmat2x4',['make_mat2x4',['../a00305.html#ga078b862c90b0e9a79ed43a58997d8388',1,'glm']]], - ['make_5fmat3',['make_mat3',['../a00305.html#ga611ee7c4d4cadfc83a8fa8e1d10a170f',1,'glm']]], - ['make_5fmat3x2',['make_mat3x2',['../a00305.html#ga27a24e121dc39e6857620e0f85b6e1a8',1,'glm']]], - ['make_5fmat3x3',['make_mat3x3',['../a00305.html#gaf2e8337b15c3362aaeb6e5849e1c0536',1,'glm']]], - ['make_5fmat3x4',['make_mat3x4',['../a00305.html#ga05dd66232aedb993e3b8e7b35eaf932b',1,'glm']]], - ['make_5fmat4',['make_mat4',['../a00305.html#gae7bcedb710d1446c87fd1fc93ed8ee9a',1,'glm']]], - ['make_5fmat4x2',['make_mat4x2',['../a00305.html#ga8b34c9b25bf3310d8ff9c828c7e2d97c',1,'glm']]], - ['make_5fmat4x3',['make_mat4x3',['../a00305.html#ga0330bf6640092d7985fac92927bbd42b',1,'glm']]], - ['make_5fmat4x4',['make_mat4x4',['../a00305.html#ga8f084be30e404844bfbb4a551ac2728c',1,'glm']]], - ['make_5fquat',['make_quat',['../a00305.html#ga58110d7d81cf7d029e2bab7f8cd9b246',1,'glm']]], - ['make_5fvec1',['make_vec1',['../a00305.html#ga4135f03f3049f0a4eb76545c4967957c',1,'glm::make_vec1(vec< 1, T, Q > const &v)'],['../a00305.html#ga13c92b81e55f201b052a6404d57da220',1,'glm::make_vec1(vec< 2, T, Q > const &v)'],['../a00305.html#ga3c23cc74086d361e22bbd5e91a334e03',1,'glm::make_vec1(vec< 3, T, Q > const &v)'],['../a00305.html#ga6af06bb60d64ca8bcd169e3c93bc2419',1,'glm::make_vec1(vec< 4, T, Q > const &v)']]], - ['make_5fvec2',['make_vec2',['../a00305.html#ga8476d0e6f1b9b4a6193cc25f59d8a896',1,'glm::make_vec2(vec< 1, T, Q > const &v)'],['../a00305.html#gae54bd325a08ad26edf63929201adebc7',1,'glm::make_vec2(vec< 2, T, Q > const &v)'],['../a00305.html#ga0084fea4694cf47276e9cccbe7b1015a',1,'glm::make_vec2(vec< 3, T, Q > const &v)'],['../a00305.html#ga2b81f71f3a222fe5bba81e3983751249',1,'glm::make_vec2(vec< 4, T, Q > const &v)'],['../a00305.html#ga81253cf7b0ebfbb1e70540c5774e6824',1,'glm::make_vec2(T const *const ptr)']]], - ['make_5fvec3',['make_vec3',['../a00305.html#ga9147e4b3a5d0f4772edfbfd179d7ea0b',1,'glm::make_vec3(vec< 1, T, Q > const &v)'],['../a00305.html#ga482b60a842a5b154d3eed392417a9511',1,'glm::make_vec3(vec< 2, T, Q > const &v)'],['../a00305.html#gacd57046034df557b8b1c457f58613623',1,'glm::make_vec3(vec< 3, T, Q > const &v)'],['../a00305.html#ga8b589ed7d41a298b516d2a69169248f1',1,'glm::make_vec3(vec< 4, T, Q > const &v)'],['../a00305.html#gad9e0d36ff489cb30c65ad1fa40351651',1,'glm::make_vec3(T const *const ptr)']]], - ['make_5fvec4',['make_vec4',['../a00305.html#ga600cb97f70c5d50d3a4a145e1cafbf37',1,'glm::make_vec4(vec< 1, T, Q > const &v)'],['../a00305.html#gaa9bd116caf28196fd1cf00b278286fa7',1,'glm::make_vec4(vec< 2, T, Q > const &v)'],['../a00305.html#ga4036328ba4702c74cbdfad1fc03d1b8f',1,'glm::make_vec4(vec< 3, T, Q > const &v)'],['../a00305.html#gaa95cb15732f708f613e65a0578895ae5',1,'glm::make_vec4(vec< 4, T, Q > const &v)'],['../a00305.html#ga63f576518993efc22a969f18f80e29bb',1,'glm::make_vec4(T const *const ptr)']]], - ['mask',['mask',['../a00288.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00288.html#ga2e64e3b922a296033b825311e7f5fff1',1,'glm::mask(vec< L, T, Q > const &v)']]], - ['mat2',['mat2',['../a00283.html#ga8dd59e7fc6913ac5d61b86553e9148ba',1,'glm']]], - ['mat2x2',['mat2x2',['../a00283.html#gaaa17ef6bfa4e4f2692348b1460c8efcb',1,'glm']]], - ['mat2x2_2ehpp',['mat2x2.hpp',['../a00048.html',1,'']]], - ['mat2x3',['mat2x3',['../a00283.html#ga493ab21243abe564b3f7d381e677d29a',1,'glm']]], - ['mat2x3_2ehpp',['mat2x3.hpp',['../a00049.html',1,'']]], - ['mat2x4',['mat2x4',['../a00283.html#ga8e879b57ddd81e5bf5a88929844e8b40',1,'glm']]], - ['mat2x4_2ehpp',['mat2x4.hpp',['../a00050.html',1,'']]], - ['mat2x4_5fcast',['mat2x4_cast',['../a00317.html#gae99d143b37f9cad4cd9285571aab685a',1,'glm']]], - ['mat3',['mat3',['../a00283.html#gaefb0fc7a4960b782c18708bb6b655262',1,'glm']]], - ['mat3_5fcast',['mat3_cast',['../a00299.html#ga333ab70047fbe4132406100c292dbc89',1,'glm']]], - ['mat3x2',['mat3x2',['../a00280.html#ga2c27aea32de57d58aec8e92d5d2181e2',1,'glm']]], - ['mat3x2_2ehpp',['mat3x2.hpp',['../a00051.html',1,'']]], - ['mat3x3',['mat3x3',['../a00283.html#gab91887d7565059dac640e3a1921c914a',1,'glm']]], - ['mat3x3_2ehpp',['mat3x3.hpp',['../a00052.html',1,'']]], - ['mat3x4',['mat3x4',['../a00283.html#gaf991cad0b34f64e33af186326dbc4d66',1,'glm']]], - ['mat3x4_2ehpp',['mat3x4.hpp',['../a00053.html',1,'']]], - ['mat3x4_5fcast',['mat3x4_cast',['../a00317.html#gaf59f5bb69620d2891c3795c6f2639179',1,'glm']]], - ['mat4',['mat4',['../a00283.html#ga0db98d836c5549d31cf64ecd043b7af7',1,'glm']]], - ['mat4_5fcast',['mat4_cast',['../a00299.html#ga1113212d9bdefc2e31ad40e5bbb506f3',1,'glm']]], - ['mat4x2',['mat4x2',['../a00283.html#gad941c947ad6cdd117a0e8554a4754983',1,'glm']]], - ['mat4x2_2ehpp',['mat4x2.hpp',['../a00054.html',1,'']]], - ['mat4x3',['mat4x3',['../a00283.html#gac7574544bb94777bdbd2eb224eb72fd0',1,'glm']]], - ['mat4x3_2ehpp',['mat4x3.hpp',['../a00055.html',1,'']]], - ['mat4x4',['mat4x4',['../a00283.html#gab2d35cc2655f44d60958d60a1de34e81',1,'glm']]], - ['mat4x4_2ehpp',['mat4x4.hpp',['../a00056.html',1,'']]], - ['matrix_2ehpp',['matrix.hpp',['../a00057.html',1,'']]], - ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00058.html',1,'']]], - ['matrix_5fclip_5fspace_2ehpp',['matrix_clip_space.hpp',['../a00059.html',1,'']]], - ['matrix_5fcommon_2ehpp',['matrix_common.hpp',['../a00060.html',1,'']]], - ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00061.html',1,'']]], - ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00062.html',1,'']]], - ['matrix_5fdouble2x2_2ehpp',['matrix_double2x2.hpp',['../a00063.html',1,'']]], - ['matrix_5fdouble2x2_5fprecision_2ehpp',['matrix_double2x2_precision.hpp',['../a00064.html',1,'']]], - ['matrix_5fdouble2x3_2ehpp',['matrix_double2x3.hpp',['../a00065.html',1,'']]], - ['matrix_5fdouble2x3_5fprecision_2ehpp',['matrix_double2x3_precision.hpp',['../a00066.html',1,'']]], - ['matrix_5fdouble2x4_2ehpp',['matrix_double2x4.hpp',['../a00067.html',1,'']]], - ['matrix_5fdouble2x4_5fprecision_2ehpp',['matrix_double2x4_precision.hpp',['../a00068.html',1,'']]], - ['matrix_5fdouble3x2_2ehpp',['matrix_double3x2.hpp',['../a00069.html',1,'']]], - ['matrix_5fdouble3x2_5fprecision_2ehpp',['matrix_double3x2_precision.hpp',['../a00070.html',1,'']]], - ['matrix_5fdouble3x3_2ehpp',['matrix_double3x3.hpp',['../a00071.html',1,'']]], - ['matrix_5fdouble3x3_5fprecision_2ehpp',['matrix_double3x3_precision.hpp',['../a00072.html',1,'']]], - ['matrix_5fdouble3x4_2ehpp',['matrix_double3x4.hpp',['../a00073.html',1,'']]], - ['matrix_5fdouble3x4_5fprecision_2ehpp',['matrix_double3x4_precision.hpp',['../a00074.html',1,'']]], - ['matrix_5fdouble4x2_2ehpp',['matrix_double4x2.hpp',['../a00075.html',1,'']]], - ['matrix_5fdouble4x2_5fprecision_2ehpp',['matrix_double4x2_precision.hpp',['../a00076.html',1,'']]], - ['matrix_5fdouble4x3_2ehpp',['matrix_double4x3.hpp',['../a00077.html',1,'']]], - ['matrix_5fdouble4x3_5fprecision_2ehpp',['matrix_double4x3_precision.hpp',['../a00078.html',1,'']]], - ['matrix_5fdouble4x4_2ehpp',['matrix_double4x4.hpp',['../a00079.html',1,'']]], - ['matrix_5fdouble4x4_5fprecision_2ehpp',['matrix_double4x4_precision.hpp',['../a00080.html',1,'']]], - ['matrix_5ffactorisation_2ehpp',['matrix_factorisation.hpp',['../a00081.html',1,'']]], - ['matrix_5ffloat2x2_2ehpp',['matrix_float2x2.hpp',['../a00082.html',1,'']]], - ['matrix_5ffloat2x2_5fprecision_2ehpp',['matrix_float2x2_precision.hpp',['../a00083.html',1,'']]], - ['matrix_5ffloat2x3_2ehpp',['matrix_float2x3.hpp',['../a00084.html',1,'']]], - ['matrix_5ffloat2x3_5fprecision_2ehpp',['matrix_float2x3_precision.hpp',['../a00085.html',1,'']]], - ['matrix_5ffloat2x4_2ehpp',['matrix_float2x4.hpp',['../a00086.html',1,'']]], - ['matrix_5ffloat2x4_5fprecision_2ehpp',['matrix_float2x4_precision.hpp',['../a00087.html',1,'']]], - ['matrix_5ffloat3x2_2ehpp',['matrix_float3x2.hpp',['../a00088.html',1,'']]], - ['matrix_5ffloat3x2_5fprecision_2ehpp',['matrix_float3x2_precision.hpp',['../a00089.html',1,'']]], - ['matrix_5ffloat3x3_2ehpp',['matrix_float3x3.hpp',['../a00090.html',1,'']]], - ['matrix_5ffloat3x3_5fprecision_2ehpp',['matrix_float3x3_precision.hpp',['../a00091.html',1,'']]], - ['matrix_5ffloat3x4_2ehpp',['matrix_float3x4.hpp',['../a00092.html',1,'']]], - ['matrix_5ffloat3x4_5fprecision_2ehpp',['matrix_float3x4_precision.hpp',['../a00093.html',1,'']]], - ['matrix_5ffloat4x2_2ehpp',['matrix_float4x2.hpp',['../a00094.html',1,'']]], - ['matrix_5ffloat4x3_2ehpp',['matrix_float4x3.hpp',['../a00096.html',1,'']]], - ['matrix_5ffloat4x3_5fprecision_2ehpp',['matrix_float4x3_precision.hpp',['../a00097.html',1,'']]], - ['matrix_5ffloat4x4_2ehpp',['matrix_float4x4.hpp',['../a00098.html',1,'']]], - ['matrix_5ffloat4x4_5fprecision_2ehpp',['matrix_float4x4_precision.hpp',['../a00099.html',1,'']]], - ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00100.html',1,'']]], - ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00101.html',1,'']]], - ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00102.html',1,'']]], - ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00103.html',1,'']]], - ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00104.html',1,'']]], - ['matrix_5fprojection_2ehpp',['matrix_projection.hpp',['../a00105.html',1,'']]], - ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00106.html',1,'']]], - ['matrix_5frelational_2ehpp',['matrix_relational.hpp',['../a00107.html',1,'']]], - ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00110.html',1,'']]], - ['matrixcompmult',['matrixCompMult',['../a00371.html#gaf14569404c779fedca98d0b9b8e58c1f',1,'glm']]], - ['matrixcross3',['matrixCross3',['../a00334.html#ga5802386bb4c37b3332a3b6fd8b6960ff',1,'glm']]], - ['matrixcross4',['matrixCross4',['../a00334.html#ga20057fff91ddafa102934adb25458cde',1,'glm']]], - ['max',['max',['../a00241.html#gae02d42887fc5570451f880e3c624b9ac',1,'glm::max(genType x, genType y)'],['../a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31',1,'glm::max(vec< L, T, Q > const &x, T y)'],['../a00241.html#gac1fec0c3303b572a6d4697a637213870',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#gaa20839d9ab14514f8966f69877ea0de8',1,'glm::max(T a, T b, T c)'],['../a00258.html#ga2274b5e75ed84b0b1e50d8d22f1f2f67',1,'glm::max(T a, T b, T c, T d)'],['../a00267.html#gaa45d34f6a2906f8bf58ab2ba5429234d',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)'],['../a00267.html#ga94d42b8da2b4ded5ddf7504fbdc6bf10',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)'],['../a00321.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &x, T const &y, T const &z)'],['../a00321.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], - ['mediump_5fbvec1',['mediump_bvec1',['../a00266.html#ga7b4ccb989ba179fa44f7b0879c782621',1,'glm']]], - ['mediump_5fbvec2',['mediump_bvec2',['../a00282.html#ga1e743764869efa9223c2bcefccedaddc',1,'glm']]], - ['mediump_5fbvec3',['mediump_bvec3',['../a00282.html#ga50c783c25082882ef00fe2e5cddba4aa',1,'glm']]], - ['mediump_5fbvec4',['mediump_bvec4',['../a00282.html#ga0be2c682258604a35004f088782a9645',1,'glm']]], - ['mediump_5fddualquat',['mediump_ddualquat',['../a00317.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]], - ['mediump_5fdmat2',['mediump_dmat2',['../a00284.html#ga6205fd19be355600334edef6af0b27cb',1,'glm']]], - ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00284.html#ga51dc36a7719cb458fa5114831c20d64f',1,'glm']]], - ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00284.html#ga741e05adf1f12d5d913f67088db1009a',1,'glm']]], - ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00284.html#ga685bda24922d112786af385deb4deb43',1,'glm']]], - ['mediump_5fdmat3',['mediump_dmat3',['../a00284.html#ga939fbf9c53008a8e84c7dd7cf8de29e2',1,'glm']]], - ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00284.html#ga2076157df85e49b8c021e03e46a376c1',1,'glm']]], - ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00284.html#ga47bd2aae4701ee2fc865674a9df3d7a6',1,'glm']]], - ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00284.html#ga3a132bd05675c2e46556f67cf738600b',1,'glm']]], - ['mediump_5fdmat4',['mediump_dmat4',['../a00284.html#gaf650bc667bf2a0e496b5a9182bc8d378',1,'glm']]], - ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00284.html#gae220fa4c5a7b13ef2ab0420340de645c',1,'glm']]], - ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00284.html#ga43ef60e4d996db15c9c8f069a96ff763',1,'glm']]], - ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00284.html#ga5389b3ab32dc0d72bea00057ab6d1dd3',1,'glm']]], - ['mediump_5fdquat',['mediump_dquat',['../a00250.html#gacdf73b1f7fd8f5a0c79a3934e99c1a14',1,'glm']]], - ['mediump_5fdualquat',['mediump_dualquat',['../a00317.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]], - ['mediump_5fdvec1',['mediump_dvec1',['../a00269.html#ga79a789ebb176b37a45848f7ccdd3b3dd',1,'glm']]], - ['mediump_5fdvec2',['mediump_dvec2',['../a00282.html#ga2f4f6e9a69a0281d06940fd0990cafc3',1,'glm']]], - ['mediump_5fdvec3',['mediump_dvec3',['../a00282.html#ga61c3b1dff4ec7c878af80503141b9f37',1,'glm']]], - ['mediump_5fdvec4',['mediump_dvec4',['../a00282.html#ga23a8bca00914a51542bfea13a4778186',1,'glm']]], - ['mediump_5ff32',['mediump_f32',['../a00304.html#ga3b27fcd9eaa2757f0aaf6b0ce0d85c80',1,'glm']]], - ['mediump_5ff32mat2',['mediump_f32mat2',['../a00304.html#gaf9020c6176a75bc84828ab01ea7dac25',1,'glm']]], - ['mediump_5ff32mat2x2',['mediump_f32mat2x2',['../a00304.html#gaa3ca74a44102035b3ffb5c9c52dfdd3f',1,'glm']]], - ['mediump_5ff32mat2x3',['mediump_f32mat2x3',['../a00304.html#gad4cc829ab1ad3e05ac0a24828a3c95cf',1,'glm']]], - ['mediump_5ff32mat2x4',['mediump_f32mat2x4',['../a00304.html#gae71445ac6cd0b9fba3e5c905cd030fb1',1,'glm']]], - ['mediump_5ff32mat3',['mediump_f32mat3',['../a00304.html#gaaaf878d0d7bfc0aac054fe269a886ca8',1,'glm']]], - ['mediump_5ff32mat3x2',['mediump_f32mat3x2',['../a00304.html#gaaab39454f56cf9fc6d940358ce5e6a0f',1,'glm']]], - ['mediump_5ff32mat3x3',['mediump_f32mat3x3',['../a00304.html#gacd80ad7640e9e32f2edcb8330b1ffe4f',1,'glm']]], - ['mediump_5ff32mat3x4',['mediump_f32mat3x4',['../a00304.html#ga8df705d775b776f5ae6b39e2ab892899',1,'glm']]], - ['mediump_5ff32mat4',['mediump_f32mat4',['../a00304.html#ga4491baaebbc46a20f1cb5da985576bf4',1,'glm']]], - ['mediump_5ff32mat4x2',['mediump_f32mat4x2',['../a00304.html#gab005efe0fa4de1a928e8ddec4bc2c43f',1,'glm']]], - ['mediump_5ff32mat4x3',['mediump_f32mat4x3',['../a00304.html#gade108f16633cf95fa500b5b8c36c8b00',1,'glm']]], - ['mediump_5ff32mat4x4',['mediump_f32mat4x4',['../a00304.html#ga936e95b881ecd2d109459ca41913fa99',1,'glm']]], - ['mediump_5ff32quat',['mediump_f32quat',['../a00304.html#gaa40c03d52dbfbfaf03e75773b9606ff3',1,'glm']]], - ['mediump_5ff32vec1',['mediump_f32vec1',['../a00304.html#gabb33cab7d7c74cc14aa95455d0690865',1,'glm']]], - ['mediump_5ff32vec2',['mediump_f32vec2',['../a00304.html#gad6eb11412a3161ca8dc1d63b2a307c4b',1,'glm']]], - ['mediump_5ff32vec3',['mediump_f32vec3',['../a00304.html#ga062ffef2973bd8241df993c3b30b327c',1,'glm']]], - ['mediump_5ff32vec4',['mediump_f32vec4',['../a00304.html#gad80c84bcd5f585840faa6179f6fd446c',1,'glm']]], - ['mediump_5ff64',['mediump_f64',['../a00304.html#ga6d40381d78472553f878f66e443feeef',1,'glm']]], - ['mediump_5ff64mat2',['mediump_f64mat2',['../a00304.html#gac1281da5ded55047e8892b0e1f1ae965',1,'glm']]], - ['mediump_5ff64mat2x2',['mediump_f64mat2x2',['../a00304.html#ga4fd527644cccbca4cb205320eab026f3',1,'glm']]], - ['mediump_5ff64mat2x3',['mediump_f64mat2x3',['../a00304.html#gafd9a6ebc0c7b95f5c581d00d16a17c54',1,'glm']]], - ['mediump_5ff64mat2x4',['mediump_f64mat2x4',['../a00304.html#gaf306dd69e53633636aee38cea79d4cb7',1,'glm']]], - ['mediump_5ff64mat3',['mediump_f64mat3',['../a00304.html#gad35fb67eb1d03c5a514f0bd7aed1c776',1,'glm']]], - ['mediump_5ff64mat3x2',['mediump_f64mat3x2',['../a00304.html#gacd926d36a72433f6cac51dd60fa13107',1,'glm']]], - ['mediump_5ff64mat3x3',['mediump_f64mat3x3',['../a00304.html#ga84d88a6e3a54ccd2b67e195af4a4c23e',1,'glm']]], - ['mediump_5ff64mat3x4',['mediump_f64mat3x4',['../a00304.html#gad38c544d332b8c4bd0b70b1bd9feccc2',1,'glm']]], - ['mediump_5ff64mat4',['mediump_f64mat4',['../a00304.html#gaa805ef691c711dc41e2776cfb67f5cf5',1,'glm']]], - ['mediump_5ff64mat4x2',['mediump_f64mat4x2',['../a00304.html#ga17d36f0ea22314117e1cec9594b33945',1,'glm']]], - ['mediump_5ff64mat4x3',['mediump_f64mat4x3',['../a00304.html#ga54697a78f9a4643af6a57fc2e626ec0d',1,'glm']]], - ['mediump_5ff64mat4x4',['mediump_f64mat4x4',['../a00304.html#ga66edb8de17b9235029472f043ae107e9',1,'glm']]], - ['mediump_5ff64quat',['mediump_f64quat',['../a00304.html#ga5e52f485059ce6e3010c590b882602c9',1,'glm']]], - ['mediump_5ff64vec1',['mediump_f64vec1',['../a00304.html#gac30fdf8afa489400053275b6a3350127',1,'glm']]], - ['mediump_5ff64vec2',['mediump_f64vec2',['../a00304.html#ga8ebc04ecf6440c4ee24718a16600ce6b',1,'glm']]], - ['mediump_5ff64vec3',['mediump_f64vec3',['../a00304.html#ga461c4c7d0757404dd0dba931760b25cf',1,'glm']]], - ['mediump_5ff64vec4',['mediump_f64vec4',['../a00304.html#gacfea053bd6bb3eddb996a4f94de22a3e',1,'glm']]], - ['mediump_5ffdualquat',['mediump_fdualquat',['../a00317.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]], - ['mediump_5ffloat32',['mediump_float32',['../a00304.html#ga7812bf00676fb1a86dcd62cca354d2c7',1,'glm']]], - ['mediump_5ffloat32_5ft',['mediump_float32_t',['../a00304.html#gae4dee61f8fe1caccec309fbed02faf12',1,'glm']]], - ['mediump_5ffloat64',['mediump_float64',['../a00304.html#gab83d8aae6e4f115e97a785e8574a115f',1,'glm']]], - ['mediump_5ffloat64_5ft',['mediump_float64_t',['../a00304.html#gac61843e4fa96c1f4e9d8316454f32a8e',1,'glm']]], - ['mediump_5ffmat2',['mediump_fmat2',['../a00304.html#ga74e9133378fd0b4da8ac0bc0876702ff',1,'glm']]], - ['mediump_5ffmat2x2',['mediump_fmat2x2',['../a00304.html#ga98a687c17b174ea316b5f397b64f44bc',1,'glm']]], - ['mediump_5ffmat2x3',['mediump_fmat2x3',['../a00304.html#gaa03f939d90d5ef157df957d93f0b9a64',1,'glm']]], - ['mediump_5ffmat2x4',['mediump_fmat2x4',['../a00304.html#ga35223623e9ccebd8a281873b71b7d213',1,'glm']]], - ['mediump_5ffmat3',['mediump_fmat3',['../a00304.html#ga80823dfad5dba98512c76af498343847',1,'glm']]], - ['mediump_5ffmat3x2',['mediump_fmat3x2',['../a00304.html#ga42569e5b92f8635cedeadb1457ee1467',1,'glm']]], - ['mediump_5ffmat3x3',['mediump_fmat3x3',['../a00304.html#gaa6f526388c74a66b3d52315a14d434ae',1,'glm']]], - ['mediump_5ffmat3x4',['mediump_fmat3x4',['../a00304.html#gaefe8ef520c6cb78590ebbefe648da4d4',1,'glm']]], - ['mediump_5ffmat4',['mediump_fmat4',['../a00304.html#gac1c38778c0b5a1263f07753c05a4f7b9',1,'glm']]], - ['mediump_5ffmat4x2',['mediump_fmat4x2',['../a00304.html#gacea38a85893e17e6834b6cb09a9ad0cf',1,'glm']]], - ['mediump_5ffmat4x3',['mediump_fmat4x3',['../a00304.html#ga41ad497f7eae211556aefd783cb02b90',1,'glm']]], - ['mediump_5ffmat4x4',['mediump_fmat4x4',['../a00304.html#ga22e27beead07bff4d5ce9d6065a57279',1,'glm']]], - ['mediump_5ffvec1',['mediump_fvec1',['../a00304.html#ga367964fc2133d3f1b5b3755ff9cf6c9b',1,'glm']]], - ['mediump_5ffvec2',['mediump_fvec2',['../a00304.html#ga44bfa55cda5dbf53f24a1fb7610393d6',1,'glm']]], - ['mediump_5ffvec3',['mediump_fvec3',['../a00304.html#ga999dc6703ad16e3d3c26b74ea8083f07',1,'glm']]], - ['mediump_5ffvec4',['mediump_fvec4',['../a00304.html#ga1bed890513c0f50b7e7ba4f7f359dbfb',1,'glm']]], - ['mediump_5fi16',['mediump_i16',['../a00304.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]], - ['mediump_5fi16vec1',['mediump_i16vec1',['../a00304.html#gacc44265ed440bf5e6e566782570de842',1,'glm']]], - ['mediump_5fi16vec2',['mediump_i16vec2',['../a00304.html#ga4b5e2c9aaa5d7717bf71179aefa12e88',1,'glm']]], - ['mediump_5fi16vec3',['mediump_i16vec3',['../a00304.html#ga3be6c7fc5fe08fa2274bdb001d5f2633',1,'glm']]], - ['mediump_5fi16vec4',['mediump_i16vec4',['../a00304.html#gaf52982bb23e3a3772649b2c5bb84b107',1,'glm']]], - ['mediump_5fi32',['mediump_i32',['../a00304.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]], - ['mediump_5fi32vec1',['mediump_i32vec1',['../a00304.html#ga46a57f71e430637559097a732b550a7e',1,'glm']]], - ['mediump_5fi32vec2',['mediump_i32vec2',['../a00304.html#ga20bf224bd4f8a24ecc4ed2004a40c219',1,'glm']]], - ['mediump_5fi32vec3',['mediump_i32vec3',['../a00304.html#ga13a221b910aa9eb1b04ca1c86e81015a',1,'glm']]], - ['mediump_5fi32vec4',['mediump_i32vec4',['../a00304.html#ga6addd4dfee87fc09ab9525e3d07db4c8',1,'glm']]], - ['mediump_5fi64',['mediump_i64',['../a00304.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]], - ['mediump_5fi64vec1',['mediump_i64vec1',['../a00304.html#ga8343e9d244fb17a5bbf0d94d36b3695e',1,'glm']]], - ['mediump_5fi64vec2',['mediump_i64vec2',['../a00304.html#ga2c94aeae3457325944ca1059b0b68330',1,'glm']]], - ['mediump_5fi64vec3',['mediump_i64vec3',['../a00304.html#ga8089722ffdf868cdfe721dea1fb6a90e',1,'glm']]], - ['mediump_5fi64vec4',['mediump_i64vec4',['../a00304.html#gabf1f16c5ab8cb0484bd1e846ae4368f1',1,'glm']]], - ['mediump_5fi8',['mediump_i8',['../a00304.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]], - ['mediump_5fi8vec1',['mediump_i8vec1',['../a00304.html#ga85e8893f4ae3630065690a9000c0c483',1,'glm']]], - ['mediump_5fi8vec2',['mediump_i8vec2',['../a00304.html#ga2a8bdc32184ea0a522ef7bd90640cf67',1,'glm']]], - ['mediump_5fi8vec3',['mediump_i8vec3',['../a00304.html#ga6dd1c1618378c6f94d522a61c28773c9',1,'glm']]], - ['mediump_5fi8vec4',['mediump_i8vec4',['../a00304.html#gac7bb04fb857ef7b520e49f6c381432be',1,'glm']]], - ['mediump_5fimat2',['mediump_imat2',['../a00294.html#ga20f4cc7ab23e2aa1f4db9fdb5496d378',1,'glm']]], - ['mediump_5fimat2x2',['mediump_imat2x2',['../a00294.html#ga4b2aeb11a329940721dda9583e71f856',1,'glm']]], - ['mediump_5fimat2x3',['mediump_imat2x3',['../a00294.html#ga74362470ba99843ac70aee5ac38cc674',1,'glm']]], - ['mediump_5fimat2x4',['mediump_imat2x4',['../a00294.html#ga8da25cd380ba30fc5b68a4687deb3e09',1,'glm']]], - ['mediump_5fimat3',['mediump_imat3',['../a00294.html#ga6c63bdc736efd3466e0730de0251cb71',1,'glm']]], - ['mediump_5fimat3x2',['mediump_imat3x2',['../a00294.html#gac0b4e42d648fb3eaf4bb88da82ecc809',1,'glm']]], - ['mediump_5fimat3x3',['mediump_imat3x3',['../a00294.html#gad99cc2aad8fc57f068cfa7719dbbea12',1,'glm']]], - ['mediump_5fimat3x4',['mediump_imat3x4',['../a00294.html#ga67689a518b181a26540bc44a163525cd',1,'glm']]], - ['mediump_5fimat4',['mediump_imat4',['../a00294.html#gaf348552978553630d2a00b78eb887ced',1,'glm']]], - ['mediump_5fimat4x2',['mediump_imat4x2',['../a00294.html#ga8b2d35816f7103f0f4c82dd2f27571fc',1,'glm']]], - ['mediump_5fimat4x3',['mediump_imat4x3',['../a00294.html#ga5b10acc696759e03f6ab918f4467e94c',1,'glm']]], - ['mediump_5fimat4x4',['mediump_imat4x4',['../a00294.html#ga2596869d154dec1180beadbb9df80501',1,'glm']]], - ['mediump_5fint16',['mediump_int16',['../a00304.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]], - ['mediump_5fint16_5ft',['mediump_int16_t',['../a00304.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]], - ['mediump_5fint32',['mediump_int32',['../a00304.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]], - ['mediump_5fint32_5ft',['mediump_int32_t',['../a00304.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]], - ['mediump_5fint64',['mediump_int64',['../a00304.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]], - ['mediump_5fint64_5ft',['mediump_int64_t',['../a00304.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]], - ['mediump_5fint8',['mediump_int8',['../a00304.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]], - ['mediump_5fint8_5ft',['mediump_int8_t',['../a00304.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]], - ['mediump_5fivec1',['mediump_ivec1',['../a00273.html#gad628c608970b3d0aa6cfb63ce6e53e56',1,'glm']]], - ['mediump_5fivec2',['mediump_ivec2',['../a00282.html#gac57496299d276ed97044074097bd5e2c',1,'glm']]], - ['mediump_5fivec3',['mediump_ivec3',['../a00282.html#ga27cfb51e0dbe15bba27a14a8590e8466',1,'glm']]], - ['mediump_5fivec4',['mediump_ivec4',['../a00282.html#ga92a204c37e66ac6c1dc7ae91142f2ea5',1,'glm']]], - ['mediump_5fmat2',['mediump_mat2',['../a00284.html#ga745452bd9c89f5ad948203e4fb4b4ea3',1,'glm']]], - ['mediump_5fmat2x2',['mediump_mat2x2',['../a00284.html#ga0cdf57d29f9448864237b2fb3e39aa1d',1,'glm']]], - ['mediump_5fmat2x3',['mediump_mat2x3',['../a00284.html#ga497d513d552d927537d61fa11e3701ab',1,'glm']]], - ['mediump_5fmat2x4',['mediump_mat2x4',['../a00284.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5',1,'glm']]], - ['mediump_5fmat3',['mediump_mat3',['../a00284.html#ga5aae49834d02732942f44e61d7bce136',1,'glm']]], - ['mediump_5fmat3x2',['mediump_mat3x2',['../a00284.html#ga9e1c9ee65fef547bde793e69723e24eb',1,'glm']]], - ['mediump_5fmat3x3',['mediump_mat3x3',['../a00284.html#gabc0f2f4ad21c90b341881cf056f8650e',1,'glm']]], - ['mediump_5fmat3x4',['mediump_mat3x4',['../a00284.html#gaa669c6675c3405f76c0b14020d1c0d61',1,'glm']]], - ['mediump_5fmat4',['mediump_mat4',['../a00284.html#gab8531bc3f269aa45835cd6e1972b7fc7',1,'glm']]], - ['mediump_5fmat4x2',['mediump_mat4x2',['../a00284.html#gad75706b70545412ba9ac27d5ee210f66',1,'glm']]], - ['mediump_5fmat4x3',['mediump_mat4x3',['../a00284.html#ga4a1440b5ea3cf84d5b06c79b534bd770',1,'glm']]], - ['mediump_5fmat4x4',['mediump_mat4x4',['../a00284.html#ga15bca2b70917d9752231160d9da74b01',1,'glm']]], - ['mediump_5fquat',['mediump_quat',['../a00253.html#gad2a59409de1bb12ccb6eb692ee7e9d8d',1,'glm']]], - ['mediump_5fu16',['mediump_u16',['../a00304.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]], - ['mediump_5fu16vec1',['mediump_u16vec1',['../a00304.html#ga400ce8cc566de093a9b28e59e220d6e4',1,'glm']]], - ['mediump_5fu16vec2',['mediump_u16vec2',['../a00304.html#ga429c201b3e92c90b4ef4356f2be52ee1',1,'glm']]], - ['mediump_5fu16vec3',['mediump_u16vec3',['../a00304.html#gac9ba20234b0c3751d45ce575fc71e551',1,'glm']]], - ['mediump_5fu16vec4',['mediump_u16vec4',['../a00304.html#ga5793393686ce5bd2d5968ff9144762b8',1,'glm']]], - ['mediump_5fu32',['mediump_u32',['../a00304.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]], - ['mediump_5fu32vec1',['mediump_u32vec1',['../a00304.html#ga8a11ccd2e38f674bbf3c2d1afc232aee',1,'glm']]], - ['mediump_5fu32vec2',['mediump_u32vec2',['../a00304.html#ga94f74851fce338549c705b5f0d601c4f',1,'glm']]], - ['mediump_5fu32vec3',['mediump_u32vec3',['../a00304.html#ga012c24c8fc69707b90260474c70275a2',1,'glm']]], - ['mediump_5fu32vec4',['mediump_u32vec4',['../a00304.html#ga5d43ee8b5dbaa06c327b03b83682598a',1,'glm']]], - ['mediump_5fu64',['mediump_u64',['../a00304.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]], - ['mediump_5fu64vec1',['mediump_u64vec1',['../a00304.html#ga659f372ccb8307d5db5beca942cde5e8',1,'glm']]], - ['mediump_5fu64vec2',['mediump_u64vec2',['../a00304.html#ga73a08ef5a74798f3a1a99250b5f86a7d',1,'glm']]], - ['mediump_5fu64vec3',['mediump_u64vec3',['../a00304.html#ga1900c6ab74acd392809425953359ef52',1,'glm']]], - ['mediump_5fu64vec4',['mediump_u64vec4',['../a00304.html#gaec7ee455cb379ec2993e81482123e1cc',1,'glm']]], - ['mediump_5fu8',['mediump_u8',['../a00304.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]], - ['mediump_5fu8vec1',['mediump_u8vec1',['../a00304.html#ga4a43050843b141bdc7e85437faef6f55',1,'glm']]], - ['mediump_5fu8vec2',['mediump_u8vec2',['../a00304.html#ga907f85d4a0eac3d8aaf571e5c2647194',1,'glm']]], - ['mediump_5fu8vec3',['mediump_u8vec3',['../a00304.html#gaddc6f7748b699254942c5216b68f8f7f',1,'glm']]], - ['mediump_5fu8vec4',['mediump_u8vec4',['../a00304.html#gaaf4ee3b76d43d98da02ec399b99bda4b',1,'glm']]], - ['mediump_5fuint16',['mediump_uint16',['../a00304.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]], - ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00304.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]], - ['mediump_5fuint32',['mediump_uint32',['../a00304.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]], - ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00304.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]], - ['mediump_5fuint64',['mediump_uint64',['../a00304.html#ga30652709815ad9404272a31957daa59e',1,'glm']]], - ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00304.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]], - ['mediump_5fuint8',['mediump_uint8',['../a00304.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]], - ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00304.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]], - ['mediump_5fumat2',['mediump_umat2',['../a00294.html#ga43041378b3410ea951b7de0dfd2bc7ee',1,'glm']]], - ['mediump_5fumat2x2',['mediump_umat2x2',['../a00294.html#ga3b209b1b751f041422137e3c065dfa98',1,'glm']]], - ['mediump_5fumat2x3',['mediump_umat2x3',['../a00294.html#gaee2c1f13b41f4c92ea5b3efe367a1306',1,'glm']]], - ['mediump_5fumat2x4',['mediump_umat2x4',['../a00294.html#gae1317ddca16d01e119a40b7f0ee85f95',1,'glm']]], - ['mediump_5fumat3',['mediump_umat3',['../a00294.html#ga1730dbe3c67801f53520b06d1aa0a34a',1,'glm']]], - ['mediump_5fumat3x2',['mediump_umat3x2',['../a00294.html#gaadc28bfdc8ebca81ae85121b11994970',1,'glm']]], - ['mediump_5fumat3x3',['mediump_umat3x3',['../a00294.html#ga48f2fc38d3f7fab3cfbc961278ced53d',1,'glm']]], - ['mediump_5fumat3x4',['mediump_umat3x4',['../a00294.html#ga78009a1e4ca64217e46b418535e52546',1,'glm']]], - ['mediump_5fumat4',['mediump_umat4',['../a00294.html#ga5087c2beb26a11d9af87432e554cf9d1',1,'glm']]], - ['mediump_5fumat4x2',['mediump_umat4x2',['../a00294.html#gaf35aefd81cc13718f6b059623f7425fa',1,'glm']]], - ['mediump_5fumat4x3',['mediump_umat4x3',['../a00294.html#ga4e1bed14fbc7f4b376aaed064f89f0fb',1,'glm']]], - ['mediump_5fumat4x4',['mediump_umat4x4',['../a00294.html#gaa9428fc8430dc552aad920653f822ef3',1,'glm']]], - ['mediump_5fuvec1',['mediump_uvec1',['../a00277.html#ga38fde73aaf1420175ece8d4882558a3f',1,'glm']]], - ['mediump_5fuvec2',['mediump_uvec2',['../a00282.html#gaa3b4f7806dad03d83bb3da0baa1e3b9b',1,'glm']]], - ['mediump_5fuvec3',['mediump_uvec3',['../a00282.html#ga83b7df38feefbb357f3673d950fafef7',1,'glm']]], - ['mediump_5fuvec4',['mediump_uvec4',['../a00282.html#ga64ed0deb6573375b7016daf82ffd53a7',1,'glm']]], - ['mediump_5fvec1',['mediump_vec1',['../a00271.html#ga645f53e6b8056609023a894b4e2beef4',1,'glm']]], - ['mediump_5fvec2',['mediump_vec2',['../a00282.html#gabc61976261c406520c7a8e4d946dc3f0',1,'glm']]], - ['mediump_5fvec3',['mediump_vec3',['../a00282.html#ga2384e263df19f1404b733016eff78fca',1,'glm']]], - ['mediump_5fvec4',['mediump_vec4',['../a00282.html#ga5c6978d3ffba06738416a33083853fc0',1,'glm']]], - ['min',['min',['../a00241.html#ga6cf8098827054a270ee36b18e30d471d',1,'glm::min(genType x, genType y)'],['../a00241.html#gaa7d015eba1f9f48519251f4abe69b14d',1,'glm::min(vec< L, T, Q > const &x, T y)'],['../a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48',1,'glm::min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#ga420b37cbd98c395b93dab0278305cd46',1,'glm::min(T a, T b, T c)'],['../a00258.html#ga0d24a9acb8178df77e4aff90cbb2010d',1,'glm::min(T a, T b, T c, T d)'],['../a00267.html#ga3cd83d80fd4f433d8e333593ec56dddf',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#gab66920ed064ab518d6859c5a889c4be4',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &x, T const &y, T const &z)'],['../a00321.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], - ['mirrorclamp',['mirrorClamp',['../a00369.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]], - ['mirrorrepeat',['mirrorRepeat',['../a00369.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]], - ['mix',['mix',['../a00241.html#ga8e93f374aae27d1a88b921860351f8d4',1,'glm::mix(genTypeT x, genTypeT y, genTypeU a)'],['../a00248.html#gafbfe587b8da11fb89a30c3d67dd5ccc2',1,'glm::mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)']]], - ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00111.html',1,'']]], - ['mixedproduct',['mixedProduct',['../a00342.html#gab3c6048fbb67f7243b088a4fee48d020',1,'glm']]], - ['mod',['mod',['../a00241.html#ga9b197a452cd52db3c5c18bac72bd7798',1,'glm::mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00330.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00330.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]], - ['modf',['modf',['../a00241.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]] -]; +var searchData= +[ + ['matrix_20functions',['Matrix functions',['../a00371.html',1,'']]], + ['matrix_20types',['Matrix types',['../a00283.html',1,'']]], + ['matrix_20types_20with_20precision_20qualifiers',['Matrix types with precision qualifiers',['../a00284.html',1,'']]], + ['make_5fmat2',['make_mat2',['../a00305.html#ga04409e74dc3da251d2501acf5b4b546c',1,'glm']]], + ['make_5fmat2x2',['make_mat2x2',['../a00305.html#gae49e1c7bcd5abec74d1c34155031f663',1,'glm']]], + ['make_5fmat2x3',['make_mat2x3',['../a00305.html#ga21982104164789cf8985483aaefc25e8',1,'glm']]], + ['make_5fmat2x4',['make_mat2x4',['../a00305.html#ga078b862c90b0e9a79ed43a58997d8388',1,'glm']]], + ['make_5fmat3',['make_mat3',['../a00305.html#ga611ee7c4d4cadfc83a8fa8e1d10a170f',1,'glm']]], + ['make_5fmat3x2',['make_mat3x2',['../a00305.html#ga27a24e121dc39e6857620e0f85b6e1a8',1,'glm']]], + ['make_5fmat3x3',['make_mat3x3',['../a00305.html#gaf2e8337b15c3362aaeb6e5849e1c0536',1,'glm']]], + ['make_5fmat3x4',['make_mat3x4',['../a00305.html#ga05dd66232aedb993e3b8e7b35eaf932b',1,'glm']]], + ['make_5fmat4',['make_mat4',['../a00305.html#gae7bcedb710d1446c87fd1fc93ed8ee9a',1,'glm']]], + ['make_5fmat4x2',['make_mat4x2',['../a00305.html#ga8b34c9b25bf3310d8ff9c828c7e2d97c',1,'glm']]], + ['make_5fmat4x3',['make_mat4x3',['../a00305.html#ga0330bf6640092d7985fac92927bbd42b',1,'glm']]], + ['make_5fmat4x4',['make_mat4x4',['../a00305.html#ga8f084be30e404844bfbb4a551ac2728c',1,'glm']]], + ['make_5fquat',['make_quat',['../a00305.html#ga58110d7d81cf7d029e2bab7f8cd9b246',1,'glm']]], + ['make_5fvec1',['make_vec1',['../a00305.html#ga4135f03f3049f0a4eb76545c4967957c',1,'glm::make_vec1(vec< 1, T, Q > const &v)'],['../a00305.html#ga13c92b81e55f201b052a6404d57da220',1,'glm::make_vec1(vec< 2, T, Q > const &v)'],['../a00305.html#ga3c23cc74086d361e22bbd5e91a334e03',1,'glm::make_vec1(vec< 3, T, Q > const &v)'],['../a00305.html#ga6af06bb60d64ca8bcd169e3c93bc2419',1,'glm::make_vec1(vec< 4, T, Q > const &v)']]], + ['make_5fvec2',['make_vec2',['../a00305.html#ga8476d0e6f1b9b4a6193cc25f59d8a896',1,'glm::make_vec2(vec< 1, T, Q > const &v)'],['../a00305.html#gae54bd325a08ad26edf63929201adebc7',1,'glm::make_vec2(vec< 2, T, Q > const &v)'],['../a00305.html#ga0084fea4694cf47276e9cccbe7b1015a',1,'glm::make_vec2(vec< 3, T, Q > const &v)'],['../a00305.html#ga2b81f71f3a222fe5bba81e3983751249',1,'glm::make_vec2(vec< 4, T, Q > const &v)'],['../a00305.html#ga81253cf7b0ebfbb1e70540c5774e6824',1,'glm::make_vec2(T const *const ptr)']]], + ['make_5fvec3',['make_vec3',['../a00305.html#ga9147e4b3a5d0f4772edfbfd179d7ea0b',1,'glm::make_vec3(vec< 1, T, Q > const &v)'],['../a00305.html#ga482b60a842a5b154d3eed392417a9511',1,'glm::make_vec3(vec< 2, T, Q > const &v)'],['../a00305.html#gacd57046034df557b8b1c457f58613623',1,'glm::make_vec3(vec< 3, T, Q > const &v)'],['../a00305.html#ga8b589ed7d41a298b516d2a69169248f1',1,'glm::make_vec3(vec< 4, T, Q > const &v)'],['../a00305.html#gad9e0d36ff489cb30c65ad1fa40351651',1,'glm::make_vec3(T const *const ptr)']]], + ['make_5fvec4',['make_vec4',['../a00305.html#ga600cb97f70c5d50d3a4a145e1cafbf37',1,'glm::make_vec4(vec< 1, T, Q > const &v)'],['../a00305.html#gaa9bd116caf28196fd1cf00b278286fa7',1,'glm::make_vec4(vec< 2, T, Q > const &v)'],['../a00305.html#ga4036328ba4702c74cbdfad1fc03d1b8f',1,'glm::make_vec4(vec< 3, T, Q > const &v)'],['../a00305.html#gaa95cb15732f708f613e65a0578895ae5',1,'glm::make_vec4(vec< 4, T, Q > const &v)'],['../a00305.html#ga63f576518993efc22a969f18f80e29bb',1,'glm::make_vec4(T const *const ptr)']]], + ['mask',['mask',['../a00288.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00288.html#ga2e64e3b922a296033b825311e7f5fff1',1,'glm::mask(vec< L, T, Q > const &v)']]], + ['mat2',['mat2',['../a00283.html#ga8dd59e7fc6913ac5d61b86553e9148ba',1,'glm']]], + ['mat2x2',['mat2x2',['../a00283.html#gaaa17ef6bfa4e4f2692348b1460c8efcb',1,'glm']]], + ['mat2x2_2ehpp',['mat2x2.hpp',['../a00048.html',1,'']]], + ['mat2x3',['mat2x3',['../a00283.html#ga493ab21243abe564b3f7d381e677d29a',1,'glm']]], + ['mat2x3_2ehpp',['mat2x3.hpp',['../a00049.html',1,'']]], + ['mat2x4',['mat2x4',['../a00283.html#ga8e879b57ddd81e5bf5a88929844e8b40',1,'glm']]], + ['mat2x4_2ehpp',['mat2x4.hpp',['../a00050.html',1,'']]], + ['mat2x4_5fcast',['mat2x4_cast',['../a00317.html#gae99d143b37f9cad4cd9285571aab685a',1,'glm']]], + ['mat3',['mat3',['../a00283.html#gaefb0fc7a4960b782c18708bb6b655262',1,'glm']]], + ['mat3_5fcast',['mat3_cast',['../a00299.html#ga333ab70047fbe4132406100c292dbc89',1,'glm']]], + ['mat3x2',['mat3x2',['../a00280.html#ga2c27aea32de57d58aec8e92d5d2181e2',1,'glm']]], + ['mat3x2_2ehpp',['mat3x2.hpp',['../a00051.html',1,'']]], + ['mat3x3',['mat3x3',['../a00283.html#gab91887d7565059dac640e3a1921c914a',1,'glm']]], + ['mat3x3_2ehpp',['mat3x3.hpp',['../a00052.html',1,'']]], + ['mat3x4',['mat3x4',['../a00283.html#gaf991cad0b34f64e33af186326dbc4d66',1,'glm']]], + ['mat3x4_2ehpp',['mat3x4.hpp',['../a00053.html',1,'']]], + ['mat3x4_5fcast',['mat3x4_cast',['../a00317.html#gaf59f5bb69620d2891c3795c6f2639179',1,'glm']]], + ['mat4',['mat4',['../a00283.html#ga0db98d836c5549d31cf64ecd043b7af7',1,'glm']]], + ['mat4_5fcast',['mat4_cast',['../a00299.html#ga1113212d9bdefc2e31ad40e5bbb506f3',1,'glm']]], + ['mat4x2',['mat4x2',['../a00283.html#gad941c947ad6cdd117a0e8554a4754983',1,'glm']]], + ['mat4x2_2ehpp',['mat4x2.hpp',['../a00054.html',1,'']]], + ['mat4x3',['mat4x3',['../a00283.html#gac7574544bb94777bdbd2eb224eb72fd0',1,'glm']]], + ['mat4x3_2ehpp',['mat4x3.hpp',['../a00055.html',1,'']]], + ['mat4x4',['mat4x4',['../a00283.html#gab2d35cc2655f44d60958d60a1de34e81',1,'glm']]], + ['mat4x4_2ehpp',['mat4x4.hpp',['../a00056.html',1,'']]], + ['matrix_2ehpp',['matrix.hpp',['../a00057.html',1,'']]], + ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00058.html',1,'']]], + ['matrix_5fclip_5fspace_2ehpp',['matrix_clip_space.hpp',['../a00059.html',1,'']]], + ['matrix_5fcommon_2ehpp',['matrix_common.hpp',['../a00060.html',1,'']]], + ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00061.html',1,'']]], + ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00062.html',1,'']]], + ['matrix_5fdouble2x2_2ehpp',['matrix_double2x2.hpp',['../a00063.html',1,'']]], + ['matrix_5fdouble2x2_5fprecision_2ehpp',['matrix_double2x2_precision.hpp',['../a00064.html',1,'']]], + ['matrix_5fdouble2x3_2ehpp',['matrix_double2x3.hpp',['../a00065.html',1,'']]], + ['matrix_5fdouble2x3_5fprecision_2ehpp',['matrix_double2x3_precision.hpp',['../a00066.html',1,'']]], + ['matrix_5fdouble2x4_2ehpp',['matrix_double2x4.hpp',['../a00067.html',1,'']]], + ['matrix_5fdouble2x4_5fprecision_2ehpp',['matrix_double2x4_precision.hpp',['../a00068.html',1,'']]], + ['matrix_5fdouble3x2_2ehpp',['matrix_double3x2.hpp',['../a00069.html',1,'']]], + ['matrix_5fdouble3x2_5fprecision_2ehpp',['matrix_double3x2_precision.hpp',['../a00070.html',1,'']]], + ['matrix_5fdouble3x3_2ehpp',['matrix_double3x3.hpp',['../a00071.html',1,'']]], + ['matrix_5fdouble3x3_5fprecision_2ehpp',['matrix_double3x3_precision.hpp',['../a00072.html',1,'']]], + ['matrix_5fdouble3x4_2ehpp',['matrix_double3x4.hpp',['../a00073.html',1,'']]], + ['matrix_5fdouble3x4_5fprecision_2ehpp',['matrix_double3x4_precision.hpp',['../a00074.html',1,'']]], + ['matrix_5fdouble4x2_2ehpp',['matrix_double4x2.hpp',['../a00075.html',1,'']]], + ['matrix_5fdouble4x2_5fprecision_2ehpp',['matrix_double4x2_precision.hpp',['../a00076.html',1,'']]], + ['matrix_5fdouble4x3_2ehpp',['matrix_double4x3.hpp',['../a00077.html',1,'']]], + ['matrix_5fdouble4x3_5fprecision_2ehpp',['matrix_double4x3_precision.hpp',['../a00078.html',1,'']]], + ['matrix_5fdouble4x4_2ehpp',['matrix_double4x4.hpp',['../a00079.html',1,'']]], + ['matrix_5fdouble4x4_5fprecision_2ehpp',['matrix_double4x4_precision.hpp',['../a00080.html',1,'']]], + ['matrix_5ffactorisation_2ehpp',['matrix_factorisation.hpp',['../a00081.html',1,'']]], + ['matrix_5ffloat2x2_2ehpp',['matrix_float2x2.hpp',['../a00082.html',1,'']]], + ['matrix_5ffloat2x2_5fprecision_2ehpp',['matrix_float2x2_precision.hpp',['../a00083.html',1,'']]], + ['matrix_5ffloat2x3_2ehpp',['matrix_float2x3.hpp',['../a00084.html',1,'']]], + ['matrix_5ffloat2x3_5fprecision_2ehpp',['matrix_float2x3_precision.hpp',['../a00085.html',1,'']]], + ['matrix_5ffloat2x4_2ehpp',['matrix_float2x4.hpp',['../a00086.html',1,'']]], + ['matrix_5ffloat2x4_5fprecision_2ehpp',['matrix_float2x4_precision.hpp',['../a00087.html',1,'']]], + ['matrix_5ffloat3x2_2ehpp',['matrix_float3x2.hpp',['../a00088.html',1,'']]], + ['matrix_5ffloat3x2_5fprecision_2ehpp',['matrix_float3x2_precision.hpp',['../a00089.html',1,'']]], + ['matrix_5ffloat3x3_2ehpp',['matrix_float3x3.hpp',['../a00090.html',1,'']]], + ['matrix_5ffloat3x3_5fprecision_2ehpp',['matrix_float3x3_precision.hpp',['../a00091.html',1,'']]], + ['matrix_5ffloat3x4_2ehpp',['matrix_float3x4.hpp',['../a00092.html',1,'']]], + ['matrix_5ffloat3x4_5fprecision_2ehpp',['matrix_float3x4_precision.hpp',['../a00093.html',1,'']]], + ['matrix_5ffloat4x2_2ehpp',['matrix_float4x2.hpp',['../a00094.html',1,'']]], + ['matrix_5ffloat4x3_2ehpp',['matrix_float4x3.hpp',['../a00096.html',1,'']]], + ['matrix_5ffloat4x3_5fprecision_2ehpp',['matrix_float4x3_precision.hpp',['../a00097.html',1,'']]], + ['matrix_5ffloat4x4_2ehpp',['matrix_float4x4.hpp',['../a00098.html',1,'']]], + ['matrix_5ffloat4x4_5fprecision_2ehpp',['matrix_float4x4_precision.hpp',['../a00099.html',1,'']]], + ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00100.html',1,'']]], + ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00101.html',1,'']]], + ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00102.html',1,'']]], + ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00103.html',1,'']]], + ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00104.html',1,'']]], + ['matrix_5fprojection_2ehpp',['matrix_projection.hpp',['../a00105.html',1,'']]], + ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00106.html',1,'']]], + ['matrix_5frelational_2ehpp',['matrix_relational.hpp',['../a00107.html',1,'']]], + ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00110.html',1,'']]], + ['matrixcompmult',['matrixCompMult',['../a00371.html#gaf14569404c779fedca98d0b9b8e58c1f',1,'glm']]], + ['matrixcross3',['matrixCross3',['../a00334.html#ga5802386bb4c37b3332a3b6fd8b6960ff',1,'glm']]], + ['matrixcross4',['matrixCross4',['../a00334.html#ga20057fff91ddafa102934adb25458cde',1,'glm']]], + ['max',['max',['../a00241.html#gae02d42887fc5570451f880e3c624b9ac',1,'glm::max(genType x, genType y)'],['../a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31',1,'glm::max(vec< L, T, Q > const &x, T y)'],['../a00241.html#gac1fec0c3303b572a6d4697a637213870',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#gaa20839d9ab14514f8966f69877ea0de8',1,'glm::max(T a, T b, T c)'],['../a00258.html#ga2274b5e75ed84b0b1e50d8d22f1f2f67',1,'glm::max(T a, T b, T c, T d)'],['../a00267.html#gaa45d34f6a2906f8bf58ab2ba5429234d',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)'],['../a00267.html#ga94d42b8da2b4ded5ddf7504fbdc6bf10',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)'],['../a00321.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &x, T const &y, T const &z)'],['../a00321.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], + ['mediump_5fbvec1',['mediump_bvec1',['../a00266.html#ga7b4ccb989ba179fa44f7b0879c782621',1,'glm']]], + ['mediump_5fbvec2',['mediump_bvec2',['../a00282.html#ga1e743764869efa9223c2bcefccedaddc',1,'glm']]], + ['mediump_5fbvec3',['mediump_bvec3',['../a00282.html#ga50c783c25082882ef00fe2e5cddba4aa',1,'glm']]], + ['mediump_5fbvec4',['mediump_bvec4',['../a00282.html#ga0be2c682258604a35004f088782a9645',1,'glm']]], + ['mediump_5fddualquat',['mediump_ddualquat',['../a00317.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]], + ['mediump_5fdmat2',['mediump_dmat2',['../a00284.html#ga6205fd19be355600334edef6af0b27cb',1,'glm']]], + ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00284.html#ga51dc36a7719cb458fa5114831c20d64f',1,'glm']]], + ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00284.html#ga741e05adf1f12d5d913f67088db1009a',1,'glm']]], + ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00284.html#ga685bda24922d112786af385deb4deb43',1,'glm']]], + ['mediump_5fdmat3',['mediump_dmat3',['../a00284.html#ga939fbf9c53008a8e84c7dd7cf8de29e2',1,'glm']]], + ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00284.html#ga2076157df85e49b8c021e03e46a376c1',1,'glm']]], + ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00284.html#ga47bd2aae4701ee2fc865674a9df3d7a6',1,'glm']]], + ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00284.html#ga3a132bd05675c2e46556f67cf738600b',1,'glm']]], + ['mediump_5fdmat4',['mediump_dmat4',['../a00284.html#gaf650bc667bf2a0e496b5a9182bc8d378',1,'glm']]], + ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00284.html#gae220fa4c5a7b13ef2ab0420340de645c',1,'glm']]], + ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00284.html#ga43ef60e4d996db15c9c8f069a96ff763',1,'glm']]], + ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00284.html#ga5389b3ab32dc0d72bea00057ab6d1dd3',1,'glm']]], + ['mediump_5fdquat',['mediump_dquat',['../a00250.html#gacdf73b1f7fd8f5a0c79a3934e99c1a14',1,'glm']]], + ['mediump_5fdualquat',['mediump_dualquat',['../a00317.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]], + ['mediump_5fdvec1',['mediump_dvec1',['../a00269.html#ga79a789ebb176b37a45848f7ccdd3b3dd',1,'glm']]], + ['mediump_5fdvec2',['mediump_dvec2',['../a00282.html#ga2f4f6e9a69a0281d06940fd0990cafc3',1,'glm']]], + ['mediump_5fdvec3',['mediump_dvec3',['../a00282.html#ga61c3b1dff4ec7c878af80503141b9f37',1,'glm']]], + ['mediump_5fdvec4',['mediump_dvec4',['../a00282.html#ga23a8bca00914a51542bfea13a4778186',1,'glm']]], + ['mediump_5ff32',['mediump_f32',['../a00304.html#ga3b27fcd9eaa2757f0aaf6b0ce0d85c80',1,'glm']]], + ['mediump_5ff32mat2',['mediump_f32mat2',['../a00304.html#gaf9020c6176a75bc84828ab01ea7dac25',1,'glm']]], + ['mediump_5ff32mat2x2',['mediump_f32mat2x2',['../a00304.html#gaa3ca74a44102035b3ffb5c9c52dfdd3f',1,'glm']]], + ['mediump_5ff32mat2x3',['mediump_f32mat2x3',['../a00304.html#gad4cc829ab1ad3e05ac0a24828a3c95cf',1,'glm']]], + ['mediump_5ff32mat2x4',['mediump_f32mat2x4',['../a00304.html#gae71445ac6cd0b9fba3e5c905cd030fb1',1,'glm']]], + ['mediump_5ff32mat3',['mediump_f32mat3',['../a00304.html#gaaaf878d0d7bfc0aac054fe269a886ca8',1,'glm']]], + ['mediump_5ff32mat3x2',['mediump_f32mat3x2',['../a00304.html#gaaab39454f56cf9fc6d940358ce5e6a0f',1,'glm']]], + ['mediump_5ff32mat3x3',['mediump_f32mat3x3',['../a00304.html#gacd80ad7640e9e32f2edcb8330b1ffe4f',1,'glm']]], + ['mediump_5ff32mat3x4',['mediump_f32mat3x4',['../a00304.html#ga8df705d775b776f5ae6b39e2ab892899',1,'glm']]], + ['mediump_5ff32mat4',['mediump_f32mat4',['../a00304.html#ga4491baaebbc46a20f1cb5da985576bf4',1,'glm']]], + ['mediump_5ff32mat4x2',['mediump_f32mat4x2',['../a00304.html#gab005efe0fa4de1a928e8ddec4bc2c43f',1,'glm']]], + ['mediump_5ff32mat4x3',['mediump_f32mat4x3',['../a00304.html#gade108f16633cf95fa500b5b8c36c8b00',1,'glm']]], + ['mediump_5ff32mat4x4',['mediump_f32mat4x4',['../a00304.html#ga936e95b881ecd2d109459ca41913fa99',1,'glm']]], + ['mediump_5ff32quat',['mediump_f32quat',['../a00304.html#gaa40c03d52dbfbfaf03e75773b9606ff3',1,'glm']]], + ['mediump_5ff32vec1',['mediump_f32vec1',['../a00304.html#gabb33cab7d7c74cc14aa95455d0690865',1,'glm']]], + ['mediump_5ff32vec2',['mediump_f32vec2',['../a00304.html#gad6eb11412a3161ca8dc1d63b2a307c4b',1,'glm']]], + ['mediump_5ff32vec3',['mediump_f32vec3',['../a00304.html#ga062ffef2973bd8241df993c3b30b327c',1,'glm']]], + ['mediump_5ff32vec4',['mediump_f32vec4',['../a00304.html#gad80c84bcd5f585840faa6179f6fd446c',1,'glm']]], + ['mediump_5ff64',['mediump_f64',['../a00304.html#ga6d40381d78472553f878f66e443feeef',1,'glm']]], + ['mediump_5ff64mat2',['mediump_f64mat2',['../a00304.html#gac1281da5ded55047e8892b0e1f1ae965',1,'glm']]], + ['mediump_5ff64mat2x2',['mediump_f64mat2x2',['../a00304.html#ga4fd527644cccbca4cb205320eab026f3',1,'glm']]], + ['mediump_5ff64mat2x3',['mediump_f64mat2x3',['../a00304.html#gafd9a6ebc0c7b95f5c581d00d16a17c54',1,'glm']]], + ['mediump_5ff64mat2x4',['mediump_f64mat2x4',['../a00304.html#gaf306dd69e53633636aee38cea79d4cb7',1,'glm']]], + ['mediump_5ff64mat3',['mediump_f64mat3',['../a00304.html#gad35fb67eb1d03c5a514f0bd7aed1c776',1,'glm']]], + ['mediump_5ff64mat3x2',['mediump_f64mat3x2',['../a00304.html#gacd926d36a72433f6cac51dd60fa13107',1,'glm']]], + ['mediump_5ff64mat3x3',['mediump_f64mat3x3',['../a00304.html#ga84d88a6e3a54ccd2b67e195af4a4c23e',1,'glm']]], + ['mediump_5ff64mat3x4',['mediump_f64mat3x4',['../a00304.html#gad38c544d332b8c4bd0b70b1bd9feccc2',1,'glm']]], + ['mediump_5ff64mat4',['mediump_f64mat4',['../a00304.html#gaa805ef691c711dc41e2776cfb67f5cf5',1,'glm']]], + ['mediump_5ff64mat4x2',['mediump_f64mat4x2',['../a00304.html#ga17d36f0ea22314117e1cec9594b33945',1,'glm']]], + ['mediump_5ff64mat4x3',['mediump_f64mat4x3',['../a00304.html#ga54697a78f9a4643af6a57fc2e626ec0d',1,'glm']]], + ['mediump_5ff64mat4x4',['mediump_f64mat4x4',['../a00304.html#ga66edb8de17b9235029472f043ae107e9',1,'glm']]], + ['mediump_5ff64quat',['mediump_f64quat',['../a00304.html#ga5e52f485059ce6e3010c590b882602c9',1,'glm']]], + ['mediump_5ff64vec1',['mediump_f64vec1',['../a00304.html#gac30fdf8afa489400053275b6a3350127',1,'glm']]], + ['mediump_5ff64vec2',['mediump_f64vec2',['../a00304.html#ga8ebc04ecf6440c4ee24718a16600ce6b',1,'glm']]], + ['mediump_5ff64vec3',['mediump_f64vec3',['../a00304.html#ga461c4c7d0757404dd0dba931760b25cf',1,'glm']]], + ['mediump_5ff64vec4',['mediump_f64vec4',['../a00304.html#gacfea053bd6bb3eddb996a4f94de22a3e',1,'glm']]], + ['mediump_5ffdualquat',['mediump_fdualquat',['../a00317.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]], + ['mediump_5ffloat32',['mediump_float32',['../a00304.html#ga7812bf00676fb1a86dcd62cca354d2c7',1,'glm']]], + ['mediump_5ffloat32_5ft',['mediump_float32_t',['../a00304.html#gae4dee61f8fe1caccec309fbed02faf12',1,'glm']]], + ['mediump_5ffloat64',['mediump_float64',['../a00304.html#gab83d8aae6e4f115e97a785e8574a115f',1,'glm']]], + ['mediump_5ffloat64_5ft',['mediump_float64_t',['../a00304.html#gac61843e4fa96c1f4e9d8316454f32a8e',1,'glm']]], + ['mediump_5ffmat2',['mediump_fmat2',['../a00304.html#ga74e9133378fd0b4da8ac0bc0876702ff',1,'glm']]], + ['mediump_5ffmat2x2',['mediump_fmat2x2',['../a00304.html#ga98a687c17b174ea316b5f397b64f44bc',1,'glm']]], + ['mediump_5ffmat2x3',['mediump_fmat2x3',['../a00304.html#gaa03f939d90d5ef157df957d93f0b9a64',1,'glm']]], + ['mediump_5ffmat2x4',['mediump_fmat2x4',['../a00304.html#ga35223623e9ccebd8a281873b71b7d213',1,'glm']]], + ['mediump_5ffmat3',['mediump_fmat3',['../a00304.html#ga80823dfad5dba98512c76af498343847',1,'glm']]], + ['mediump_5ffmat3x2',['mediump_fmat3x2',['../a00304.html#ga42569e5b92f8635cedeadb1457ee1467',1,'glm']]], + ['mediump_5ffmat3x3',['mediump_fmat3x3',['../a00304.html#gaa6f526388c74a66b3d52315a14d434ae',1,'glm']]], + ['mediump_5ffmat3x4',['mediump_fmat3x4',['../a00304.html#gaefe8ef520c6cb78590ebbefe648da4d4',1,'glm']]], + ['mediump_5ffmat4',['mediump_fmat4',['../a00304.html#gac1c38778c0b5a1263f07753c05a4f7b9',1,'glm']]], + ['mediump_5ffmat4x2',['mediump_fmat4x2',['../a00304.html#gacea38a85893e17e6834b6cb09a9ad0cf',1,'glm']]], + ['mediump_5ffmat4x3',['mediump_fmat4x3',['../a00304.html#ga41ad497f7eae211556aefd783cb02b90',1,'glm']]], + ['mediump_5ffmat4x4',['mediump_fmat4x4',['../a00304.html#ga22e27beead07bff4d5ce9d6065a57279',1,'glm']]], + ['mediump_5ffvec1',['mediump_fvec1',['../a00304.html#ga367964fc2133d3f1b5b3755ff9cf6c9b',1,'glm']]], + ['mediump_5ffvec2',['mediump_fvec2',['../a00304.html#ga44bfa55cda5dbf53f24a1fb7610393d6',1,'glm']]], + ['mediump_5ffvec3',['mediump_fvec3',['../a00304.html#ga999dc6703ad16e3d3c26b74ea8083f07',1,'glm']]], + ['mediump_5ffvec4',['mediump_fvec4',['../a00304.html#ga1bed890513c0f50b7e7ba4f7f359dbfb',1,'glm']]], + ['mediump_5fi16',['mediump_i16',['../a00304.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]], + ['mediump_5fi16vec1',['mediump_i16vec1',['../a00304.html#gacc44265ed440bf5e6e566782570de842',1,'glm']]], + ['mediump_5fi16vec2',['mediump_i16vec2',['../a00304.html#ga4b5e2c9aaa5d7717bf71179aefa12e88',1,'glm']]], + ['mediump_5fi16vec3',['mediump_i16vec3',['../a00304.html#ga3be6c7fc5fe08fa2274bdb001d5f2633',1,'glm']]], + ['mediump_5fi16vec4',['mediump_i16vec4',['../a00304.html#gaf52982bb23e3a3772649b2c5bb84b107',1,'glm']]], + ['mediump_5fi32',['mediump_i32',['../a00304.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]], + ['mediump_5fi32vec1',['mediump_i32vec1',['../a00304.html#ga46a57f71e430637559097a732b550a7e',1,'glm']]], + ['mediump_5fi32vec2',['mediump_i32vec2',['../a00304.html#ga20bf224bd4f8a24ecc4ed2004a40c219',1,'glm']]], + ['mediump_5fi32vec3',['mediump_i32vec3',['../a00304.html#ga13a221b910aa9eb1b04ca1c86e81015a',1,'glm']]], + ['mediump_5fi32vec4',['mediump_i32vec4',['../a00304.html#ga6addd4dfee87fc09ab9525e3d07db4c8',1,'glm']]], + ['mediump_5fi64',['mediump_i64',['../a00304.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]], + ['mediump_5fi64vec1',['mediump_i64vec1',['../a00304.html#ga8343e9d244fb17a5bbf0d94d36b3695e',1,'glm']]], + ['mediump_5fi64vec2',['mediump_i64vec2',['../a00304.html#ga2c94aeae3457325944ca1059b0b68330',1,'glm']]], + ['mediump_5fi64vec3',['mediump_i64vec3',['../a00304.html#ga8089722ffdf868cdfe721dea1fb6a90e',1,'glm']]], + ['mediump_5fi64vec4',['mediump_i64vec4',['../a00304.html#gabf1f16c5ab8cb0484bd1e846ae4368f1',1,'glm']]], + ['mediump_5fi8',['mediump_i8',['../a00304.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]], + ['mediump_5fi8vec1',['mediump_i8vec1',['../a00304.html#ga85e8893f4ae3630065690a9000c0c483',1,'glm']]], + ['mediump_5fi8vec2',['mediump_i8vec2',['../a00304.html#ga2a8bdc32184ea0a522ef7bd90640cf67',1,'glm']]], + ['mediump_5fi8vec3',['mediump_i8vec3',['../a00304.html#ga6dd1c1618378c6f94d522a61c28773c9',1,'glm']]], + ['mediump_5fi8vec4',['mediump_i8vec4',['../a00304.html#gac7bb04fb857ef7b520e49f6c381432be',1,'glm']]], + ['mediump_5fimat2',['mediump_imat2',['../a00294.html#ga20f4cc7ab23e2aa1f4db9fdb5496d378',1,'glm']]], + ['mediump_5fimat2x2',['mediump_imat2x2',['../a00294.html#ga4b2aeb11a329940721dda9583e71f856',1,'glm']]], + ['mediump_5fimat2x3',['mediump_imat2x3',['../a00294.html#ga74362470ba99843ac70aee5ac38cc674',1,'glm']]], + ['mediump_5fimat2x4',['mediump_imat2x4',['../a00294.html#ga8da25cd380ba30fc5b68a4687deb3e09',1,'glm']]], + ['mediump_5fimat3',['mediump_imat3',['../a00294.html#ga6c63bdc736efd3466e0730de0251cb71',1,'glm']]], + ['mediump_5fimat3x2',['mediump_imat3x2',['../a00294.html#gac0b4e42d648fb3eaf4bb88da82ecc809',1,'glm']]], + ['mediump_5fimat3x3',['mediump_imat3x3',['../a00294.html#gad99cc2aad8fc57f068cfa7719dbbea12',1,'glm']]], + ['mediump_5fimat3x4',['mediump_imat3x4',['../a00294.html#ga67689a518b181a26540bc44a163525cd',1,'glm']]], + ['mediump_5fimat4',['mediump_imat4',['../a00294.html#gaf348552978553630d2a00b78eb887ced',1,'glm']]], + ['mediump_5fimat4x2',['mediump_imat4x2',['../a00294.html#ga8b2d35816f7103f0f4c82dd2f27571fc',1,'glm']]], + ['mediump_5fimat4x3',['mediump_imat4x3',['../a00294.html#ga5b10acc696759e03f6ab918f4467e94c',1,'glm']]], + ['mediump_5fimat4x4',['mediump_imat4x4',['../a00294.html#ga2596869d154dec1180beadbb9df80501',1,'glm']]], + ['mediump_5fint16',['mediump_int16',['../a00304.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]], + ['mediump_5fint16_5ft',['mediump_int16_t',['../a00304.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]], + ['mediump_5fint32',['mediump_int32',['../a00304.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]], + ['mediump_5fint32_5ft',['mediump_int32_t',['../a00304.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]], + ['mediump_5fint64',['mediump_int64',['../a00304.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]], + ['mediump_5fint64_5ft',['mediump_int64_t',['../a00304.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]], + ['mediump_5fint8',['mediump_int8',['../a00304.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]], + ['mediump_5fint8_5ft',['mediump_int8_t',['../a00304.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]], + ['mediump_5fivec1',['mediump_ivec1',['../a00273.html#gad628c608970b3d0aa6cfb63ce6e53e56',1,'glm']]], + ['mediump_5fivec2',['mediump_ivec2',['../a00282.html#gac57496299d276ed97044074097bd5e2c',1,'glm']]], + ['mediump_5fivec3',['mediump_ivec3',['../a00282.html#ga27cfb51e0dbe15bba27a14a8590e8466',1,'glm']]], + ['mediump_5fivec4',['mediump_ivec4',['../a00282.html#ga92a204c37e66ac6c1dc7ae91142f2ea5',1,'glm']]], + ['mediump_5fmat2',['mediump_mat2',['../a00284.html#ga745452bd9c89f5ad948203e4fb4b4ea3',1,'glm']]], + ['mediump_5fmat2x2',['mediump_mat2x2',['../a00284.html#ga0cdf57d29f9448864237b2fb3e39aa1d',1,'glm']]], + ['mediump_5fmat2x3',['mediump_mat2x3',['../a00284.html#ga497d513d552d927537d61fa11e3701ab',1,'glm']]], + ['mediump_5fmat2x4',['mediump_mat2x4',['../a00284.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5',1,'glm']]], + ['mediump_5fmat3',['mediump_mat3',['../a00284.html#ga5aae49834d02732942f44e61d7bce136',1,'glm']]], + ['mediump_5fmat3x2',['mediump_mat3x2',['../a00284.html#ga9e1c9ee65fef547bde793e69723e24eb',1,'glm']]], + ['mediump_5fmat3x3',['mediump_mat3x3',['../a00284.html#gabc0f2f4ad21c90b341881cf056f8650e',1,'glm']]], + ['mediump_5fmat3x4',['mediump_mat3x4',['../a00284.html#gaa669c6675c3405f76c0b14020d1c0d61',1,'glm']]], + ['mediump_5fmat4',['mediump_mat4',['../a00284.html#gab8531bc3f269aa45835cd6e1972b7fc7',1,'glm']]], + ['mediump_5fmat4x2',['mediump_mat4x2',['../a00284.html#gad75706b70545412ba9ac27d5ee210f66',1,'glm']]], + ['mediump_5fmat4x3',['mediump_mat4x3',['../a00284.html#ga4a1440b5ea3cf84d5b06c79b534bd770',1,'glm']]], + ['mediump_5fmat4x4',['mediump_mat4x4',['../a00284.html#ga15bca2b70917d9752231160d9da74b01',1,'glm']]], + ['mediump_5fquat',['mediump_quat',['../a00253.html#gad2a59409de1bb12ccb6eb692ee7e9d8d',1,'glm']]], + ['mediump_5fu16',['mediump_u16',['../a00304.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]], + ['mediump_5fu16vec1',['mediump_u16vec1',['../a00304.html#ga400ce8cc566de093a9b28e59e220d6e4',1,'glm']]], + ['mediump_5fu16vec2',['mediump_u16vec2',['../a00304.html#ga429c201b3e92c90b4ef4356f2be52ee1',1,'glm']]], + ['mediump_5fu16vec3',['mediump_u16vec3',['../a00304.html#gac9ba20234b0c3751d45ce575fc71e551',1,'glm']]], + ['mediump_5fu16vec4',['mediump_u16vec4',['../a00304.html#ga5793393686ce5bd2d5968ff9144762b8',1,'glm']]], + ['mediump_5fu32',['mediump_u32',['../a00304.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]], + ['mediump_5fu32vec1',['mediump_u32vec1',['../a00304.html#ga8a11ccd2e38f674bbf3c2d1afc232aee',1,'glm']]], + ['mediump_5fu32vec2',['mediump_u32vec2',['../a00304.html#ga94f74851fce338549c705b5f0d601c4f',1,'glm']]], + ['mediump_5fu32vec3',['mediump_u32vec3',['../a00304.html#ga012c24c8fc69707b90260474c70275a2',1,'glm']]], + ['mediump_5fu32vec4',['mediump_u32vec4',['../a00304.html#ga5d43ee8b5dbaa06c327b03b83682598a',1,'glm']]], + ['mediump_5fu64',['mediump_u64',['../a00304.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]], + ['mediump_5fu64vec1',['mediump_u64vec1',['../a00304.html#ga659f372ccb8307d5db5beca942cde5e8',1,'glm']]], + ['mediump_5fu64vec2',['mediump_u64vec2',['../a00304.html#ga73a08ef5a74798f3a1a99250b5f86a7d',1,'glm']]], + ['mediump_5fu64vec3',['mediump_u64vec3',['../a00304.html#ga1900c6ab74acd392809425953359ef52',1,'glm']]], + ['mediump_5fu64vec4',['mediump_u64vec4',['../a00304.html#gaec7ee455cb379ec2993e81482123e1cc',1,'glm']]], + ['mediump_5fu8',['mediump_u8',['../a00304.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]], + ['mediump_5fu8vec1',['mediump_u8vec1',['../a00304.html#ga4a43050843b141bdc7e85437faef6f55',1,'glm']]], + ['mediump_5fu8vec2',['mediump_u8vec2',['../a00304.html#ga907f85d4a0eac3d8aaf571e5c2647194',1,'glm']]], + ['mediump_5fu8vec3',['mediump_u8vec3',['../a00304.html#gaddc6f7748b699254942c5216b68f8f7f',1,'glm']]], + ['mediump_5fu8vec4',['mediump_u8vec4',['../a00304.html#gaaf4ee3b76d43d98da02ec399b99bda4b',1,'glm']]], + ['mediump_5fuint16',['mediump_uint16',['../a00304.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]], + ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00304.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]], + ['mediump_5fuint32',['mediump_uint32',['../a00304.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]], + ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00304.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]], + ['mediump_5fuint64',['mediump_uint64',['../a00304.html#ga30652709815ad9404272a31957daa59e',1,'glm']]], + ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00304.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]], + ['mediump_5fuint8',['mediump_uint8',['../a00304.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]], + ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00304.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]], + ['mediump_5fumat2',['mediump_umat2',['../a00294.html#ga43041378b3410ea951b7de0dfd2bc7ee',1,'glm']]], + ['mediump_5fumat2x2',['mediump_umat2x2',['../a00294.html#ga3b209b1b751f041422137e3c065dfa98',1,'glm']]], + ['mediump_5fumat2x3',['mediump_umat2x3',['../a00294.html#gaee2c1f13b41f4c92ea5b3efe367a1306',1,'glm']]], + ['mediump_5fumat2x4',['mediump_umat2x4',['../a00294.html#gae1317ddca16d01e119a40b7f0ee85f95',1,'glm']]], + ['mediump_5fumat3',['mediump_umat3',['../a00294.html#ga1730dbe3c67801f53520b06d1aa0a34a',1,'glm']]], + ['mediump_5fumat3x2',['mediump_umat3x2',['../a00294.html#gaadc28bfdc8ebca81ae85121b11994970',1,'glm']]], + ['mediump_5fumat3x3',['mediump_umat3x3',['../a00294.html#ga48f2fc38d3f7fab3cfbc961278ced53d',1,'glm']]], + ['mediump_5fumat3x4',['mediump_umat3x4',['../a00294.html#ga78009a1e4ca64217e46b418535e52546',1,'glm']]], + ['mediump_5fumat4',['mediump_umat4',['../a00294.html#ga5087c2beb26a11d9af87432e554cf9d1',1,'glm']]], + ['mediump_5fumat4x2',['mediump_umat4x2',['../a00294.html#gaf35aefd81cc13718f6b059623f7425fa',1,'glm']]], + ['mediump_5fumat4x3',['mediump_umat4x3',['../a00294.html#ga4e1bed14fbc7f4b376aaed064f89f0fb',1,'glm']]], + ['mediump_5fumat4x4',['mediump_umat4x4',['../a00294.html#gaa9428fc8430dc552aad920653f822ef3',1,'glm']]], + ['mediump_5fuvec1',['mediump_uvec1',['../a00277.html#ga38fde73aaf1420175ece8d4882558a3f',1,'glm']]], + ['mediump_5fuvec2',['mediump_uvec2',['../a00282.html#gaa3b4f7806dad03d83bb3da0baa1e3b9b',1,'glm']]], + ['mediump_5fuvec3',['mediump_uvec3',['../a00282.html#ga83b7df38feefbb357f3673d950fafef7',1,'glm']]], + ['mediump_5fuvec4',['mediump_uvec4',['../a00282.html#ga64ed0deb6573375b7016daf82ffd53a7',1,'glm']]], + ['mediump_5fvec1',['mediump_vec1',['../a00271.html#ga645f53e6b8056609023a894b4e2beef4',1,'glm']]], + ['mediump_5fvec2',['mediump_vec2',['../a00282.html#gabc61976261c406520c7a8e4d946dc3f0',1,'glm']]], + ['mediump_5fvec3',['mediump_vec3',['../a00282.html#ga2384e263df19f1404b733016eff78fca',1,'glm']]], + ['mediump_5fvec4',['mediump_vec4',['../a00282.html#ga5c6978d3ffba06738416a33083853fc0',1,'glm']]], + ['min',['min',['../a00241.html#ga6cf8098827054a270ee36b18e30d471d',1,'glm::min(genType x, genType y)'],['../a00241.html#gaa7d015eba1f9f48519251f4abe69b14d',1,'glm::min(vec< L, T, Q > const &x, T y)'],['../a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48',1,'glm::min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#ga420b37cbd98c395b93dab0278305cd46',1,'glm::min(T a, T b, T c)'],['../a00258.html#ga0d24a9acb8178df77e4aff90cbb2010d',1,'glm::min(T a, T b, T c, T d)'],['../a00267.html#ga3cd83d80fd4f433d8e333593ec56dddf',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#gab66920ed064ab518d6859c5a889c4be4',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &x, T const &y, T const &z)'],['../a00321.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], + ['mirrorclamp',['mirrorClamp',['../a00369.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]], + ['mirrorrepeat',['mirrorRepeat',['../a00369.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]], + ['mix',['mix',['../a00241.html#ga8e93f374aae27d1a88b921860351f8d4',1,'glm::mix(genTypeT x, genTypeT y, genTypeU a)'],['../a00248.html#gafbfe587b8da11fb89a30c3d67dd5ccc2',1,'glm::mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)']]], + ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00111.html',1,'']]], + ['mixedproduct',['mixedProduct',['../a00342.html#gab3c6048fbb67f7243b088a4fee48d020',1,'glm']]], + ['mod',['mod',['../a00241.html#ga9b197a452cd52db3c5c18bac72bd7798',1,'glm::mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00330.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00330.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]], + ['modf',['modf',['../a00241.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_b.html b/external/include/glm-0.9.9.8/doc/api/search/all_b.html index f86ec8e3bf..a92de48513 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_b.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_b.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_b.js b/external/include/glm-0.9.9.8/doc/api/search/all_b.js index 97b4dff12a..59d726bce8 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_b.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_b.js @@ -1,15 +1,15 @@ -var searchData= -[ - ['nextmultiple',['nextMultiple',['../a00261.html#gab770a3835c44c8a6fd225be4f4e6b317',1,'glm::nextMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#gace38d00601cbf49cd4dc03f003ab42b7',1,'glm::nextMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gacda365edad320c7aff19cc283a3b8ca2',1,'glm::nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['nextpoweroftwo',['nextPowerOfTwo',['../a00261.html#ga3a37c2f2fd347886c9af6a3ca3db04dc',1,'glm::nextPowerOfTwo(genIUType v)'],['../a00274.html#gabba67f8aac9915e10fca727277274502',1,'glm::nextPowerOfTwo(vec< L, T, Q > const &v)']]], - ['nlz',['nlz',['../a00330.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]], - ['noise_2ehpp',['noise.hpp',['../a00112.html',1,'']]], - ['norm_2ehpp',['norm.hpp',['../a00113.html',1,'']]], - ['normal_2ehpp',['normal.hpp',['../a00114.html',1,'']]], - ['normalize',['normalize',['../a00254.html#gabf30e3263fffe8dcc6659aea76ae8927',1,'glm::normalize(qua< T, Q > const &q)'],['../a00279.html#ga3b8d3dcae77870781392ed2902cce597',1,'glm::normalize(vec< L, T, Q > const &x)'],['../a00317.html#ga299b8641509606b1958ffa104a162cfe',1,'glm::normalize(tdualquat< T, Q > const &q)']]], - ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00115.html',1,'']]], - ['normalizedot',['normalizeDot',['../a00345.html#gacb140a2b903115d318c8b0a2fb5a5daa',1,'glm']]], - ['not_5f',['not_',['../a00374.html#ga610fcd175791fd246e328ffee10dbf1e',1,'glm']]], - ['notequal',['notEqual',['../a00246.html#ga8504f18a7e2bf315393032c2137dad83',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#ga29071147d118569344d10944b7d5c378',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gad7959e14fbc35b4ed2617daf4d67f6cd',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gaa1cd7fc228ef6e26c73583fd0d9c6552',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#gaa5517341754149ffba742d230afd1f32',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gab441cee0de5867a868f3a586ee68cfe1',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#ga5117a44c1bf21af857cd23e44a96d313',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga4a99cc41341567567a608719449c1fac',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga417cf51304359db18e819dda9bce5767',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga8b5c2c3f83422ae5b71fa960d03b0339',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga0b15ffe32987a6029b14398eb0def01a',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#ga17c19dc1b76cd5aef63e9e7ff3aa3c27',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00116.html',1,'']]] -]; +var searchData= +[ + ['nextmultiple',['nextMultiple',['../a00261.html#gab770a3835c44c8a6fd225be4f4e6b317',1,'glm::nextMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#gace38d00601cbf49cd4dc03f003ab42b7',1,'glm::nextMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gacda365edad320c7aff19cc283a3b8ca2',1,'glm::nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['nextpoweroftwo',['nextPowerOfTwo',['../a00261.html#ga3a37c2f2fd347886c9af6a3ca3db04dc',1,'glm::nextPowerOfTwo(genIUType v)'],['../a00274.html#gabba67f8aac9915e10fca727277274502',1,'glm::nextPowerOfTwo(vec< L, T, Q > const &v)']]], + ['nlz',['nlz',['../a00330.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]], + ['noise_2ehpp',['noise.hpp',['../a00112.html',1,'']]], + ['norm_2ehpp',['norm.hpp',['../a00113.html',1,'']]], + ['normal_2ehpp',['normal.hpp',['../a00114.html',1,'']]], + ['normalize',['normalize',['../a00254.html#gabf30e3263fffe8dcc6659aea76ae8927',1,'glm::normalize(qua< T, Q > const &q)'],['../a00279.html#ga3b8d3dcae77870781392ed2902cce597',1,'glm::normalize(vec< L, T, Q > const &x)'],['../a00317.html#ga299b8641509606b1958ffa104a162cfe',1,'glm::normalize(tdualquat< T, Q > const &q)']]], + ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00115.html',1,'']]], + ['normalizedot',['normalizeDot',['../a00345.html#gacb140a2b903115d318c8b0a2fb5a5daa',1,'glm']]], + ['not_5f',['not_',['../a00374.html#ga610fcd175791fd246e328ffee10dbf1e',1,'glm']]], + ['notequal',['notEqual',['../a00246.html#ga8504f18a7e2bf315393032c2137dad83',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#ga29071147d118569344d10944b7d5c378',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gad7959e14fbc35b4ed2617daf4d67f6cd',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gaa1cd7fc228ef6e26c73583fd0d9c6552',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#gaa5517341754149ffba742d230afd1f32',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gab441cee0de5867a868f3a586ee68cfe1',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#ga5117a44c1bf21af857cd23e44a96d313',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga4a99cc41341567567a608719449c1fac',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga417cf51304359db18e819dda9bce5767',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga8b5c2c3f83422ae5b71fa960d03b0339',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga0b15ffe32987a6029b14398eb0def01a',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#ga17c19dc1b76cd5aef63e9e7ff3aa3c27',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00116.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_c.html b/external/include/glm-0.9.9.8/doc/api/search/all_c.html index 579f536fa1..20cdfbcf32 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_c.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_c.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_c.js b/external/include/glm-0.9.9.8/doc/api/search/all_c.js index 6aafd29c01..bac223487d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_c.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_c.js @@ -1,27 +1,27 @@ -var searchData= -[ - ['opengl_20mathematics_20_28glm_29',['OpenGL Mathematics (GLM)',['../index.html',1,'']]], - ['one',['one',['../a00290.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]], - ['one_5fover_5fpi',['one_over_pi',['../a00290.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]], - ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00290.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]], - ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00290.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]], - ['openbounded',['openBounded',['../a00314.html#gafd303042ba2ba695bf53b2315f53f93f',1,'glm']]], - ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00117.html',1,'']]], - ['orientate2',['orientate2',['../a00319.html#gae16738a9f1887cf4e4db6a124637608d',1,'glm']]], - ['orientate3',['orientate3',['../a00319.html#ga7ca98668a5786f19c7b38299ebbc9b4c',1,'glm::orientate3(T const &angle)'],['../a00319.html#ga7238c8e15c7720e3ca6a45ab151eeabb',1,'glm::orientate3(vec< 3, T, Q > const &angles)']]], - ['orientate4',['orientate4',['../a00319.html#ga4a044653f71a4ecec68e0b623382b48a',1,'glm']]], - ['orientation',['orientation',['../a00356.html#ga1a32fceb71962e6160e8af295c91930a',1,'glm']]], - ['orientedangle',['orientedAngle',['../a00367.html#ga9556a803dce87fe0f42fdabe4ebba1d5',1,'glm::orientedAngle(vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)'],['../a00367.html#ga706fce3d111f485839756a64f5a48553',1,'glm::orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)']]], - ['ortho',['ortho',['../a00243.html#gae5b6b40ed882cd56cd7cb97701909c06',1,'glm::ortho(T left, T right, T bottom, T top)'],['../a00243.html#ga6615d8a9d39432e279c4575313ecb456',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)']]], - ['ortholh',['orthoLH',['../a00243.html#gad122a79aadaa5529cec4ac197203db7f',1,'glm']]], - ['ortholh_5fno',['orthoLH_NO',['../a00243.html#ga526416735ea7c5c5cd255bf99d051bd8',1,'glm']]], - ['ortholh_5fzo',['orthoLH_ZO',['../a00243.html#gab37ac3eec8d61f22fceda7775e836afa',1,'glm']]], - ['orthono',['orthoNO',['../a00243.html#gab219d28a8f178d4517448fcd6395a073',1,'glm']]], - ['orthonormalize',['orthonormalize',['../a00348.html#ga4cab5d698e6e2eccea30c8e81c74371f',1,'glm::orthonormalize(mat< 3, 3, T, Q > const &m)'],['../a00348.html#gac3bc7ef498815026bc3d361ae0b7138e',1,'glm::orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)']]], - ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00118.html',1,'']]], - ['orthorh',['orthoRH',['../a00243.html#ga16264c9b838edeb9dd1de7a1010a13a4',1,'glm']]], - ['orthorh_5fno',['orthoRH_NO',['../a00243.html#gaa2f7a1373170bf0a4a2ddef9b0706780',1,'glm']]], - ['orthorh_5fzo',['orthoRH_ZO',['../a00243.html#ga9aea2e515b08fd7dce47b7b6ec34d588',1,'glm']]], - ['orthozo',['orthoZO',['../a00243.html#gaea11a70817af2c0801c869dea0b7a5bc',1,'glm']]], - ['outerproduct',['outerProduct',['../a00371.html#gac29fb7bae75a8e4c1b74cbbf85520e50',1,'glm']]] -]; +var searchData= +[ + ['opengl_20mathematics_20_28glm_29',['OpenGL Mathematics (GLM)',['../index.html',1,'']]], + ['one',['one',['../a00290.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]], + ['one_5fover_5fpi',['one_over_pi',['../a00290.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]], + ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00290.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]], + ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00290.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]], + ['openbounded',['openBounded',['../a00314.html#gafd303042ba2ba695bf53b2315f53f93f',1,'glm']]], + ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00117.html',1,'']]], + ['orientate2',['orientate2',['../a00319.html#gae16738a9f1887cf4e4db6a124637608d',1,'glm']]], + ['orientate3',['orientate3',['../a00319.html#ga7ca98668a5786f19c7b38299ebbc9b4c',1,'glm::orientate3(T const &angle)'],['../a00319.html#ga7238c8e15c7720e3ca6a45ab151eeabb',1,'glm::orientate3(vec< 3, T, Q > const &angles)']]], + ['orientate4',['orientate4',['../a00319.html#ga4a044653f71a4ecec68e0b623382b48a',1,'glm']]], + ['orientation',['orientation',['../a00356.html#ga1a32fceb71962e6160e8af295c91930a',1,'glm']]], + ['orientedangle',['orientedAngle',['../a00367.html#ga9556a803dce87fe0f42fdabe4ebba1d5',1,'glm::orientedAngle(vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)'],['../a00367.html#ga706fce3d111f485839756a64f5a48553',1,'glm::orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)']]], + ['ortho',['ortho',['../a00243.html#gae5b6b40ed882cd56cd7cb97701909c06',1,'glm::ortho(T left, T right, T bottom, T top)'],['../a00243.html#ga6615d8a9d39432e279c4575313ecb456',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)']]], + ['ortholh',['orthoLH',['../a00243.html#gad122a79aadaa5529cec4ac197203db7f',1,'glm']]], + ['ortholh_5fno',['orthoLH_NO',['../a00243.html#ga526416735ea7c5c5cd255bf99d051bd8',1,'glm']]], + ['ortholh_5fzo',['orthoLH_ZO',['../a00243.html#gab37ac3eec8d61f22fceda7775e836afa',1,'glm']]], + ['orthono',['orthoNO',['../a00243.html#gab219d28a8f178d4517448fcd6395a073',1,'glm']]], + ['orthonormalize',['orthonormalize',['../a00348.html#ga4cab5d698e6e2eccea30c8e81c74371f',1,'glm::orthonormalize(mat< 3, 3, T, Q > const &m)'],['../a00348.html#gac3bc7ef498815026bc3d361ae0b7138e',1,'glm::orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)']]], + ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00118.html',1,'']]], + ['orthorh',['orthoRH',['../a00243.html#ga16264c9b838edeb9dd1de7a1010a13a4',1,'glm']]], + ['orthorh_5fno',['orthoRH_NO',['../a00243.html#gaa2f7a1373170bf0a4a2ddef9b0706780',1,'glm']]], + ['orthorh_5fzo',['orthoRH_ZO',['../a00243.html#ga9aea2e515b08fd7dce47b7b6ec34d588',1,'glm']]], + ['orthozo',['orthoZO',['../a00243.html#gaea11a70817af2c0801c869dea0b7a5bc',1,'glm']]], + ['outerproduct',['outerProduct',['../a00371.html#gac29fb7bae75a8e4c1b74cbbf85520e50',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_d.html b/external/include/glm-0.9.9.8/doc/api/search/all_d.html index e92274d50e..00b28ed86e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_d.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_d.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_d.js b/external/include/glm-0.9.9.8/doc/api/search/all_d.js index a04418ac66..988ea8f985 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_d.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_d.js @@ -1,263 +1,263 @@ -var searchData= -[ - ['packdouble2x32',['packDouble2x32',['../a00372.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]], - ['packed_5fbvec1',['packed_bvec1',['../a00303.html#ga88632cea9008ac0ac1388e94e804a53c',1,'glm']]], - ['packed_5fbvec2',['packed_bvec2',['../a00303.html#gab85245913eaa40ab82adabcae37086cb',1,'glm']]], - ['packed_5fbvec3',['packed_bvec3',['../a00303.html#ga0c48f9417f649e27f3fb0c9f733a18bd',1,'glm']]], - ['packed_5fbvec4',['packed_bvec4',['../a00303.html#ga3180d7db84a74c402157df3bbc0ae3ed',1,'glm']]], - ['packed_5fdmat2',['packed_dmat2',['../a00303.html#gad87408a8350918711f845f071bbe43fb',1,'glm']]], - ['packed_5fdmat2x2',['packed_dmat2x2',['../a00303.html#gaaa33d8e06657a777efb0c72c44ce87a9',1,'glm']]], - ['packed_5fdmat2x3',['packed_dmat2x3',['../a00303.html#gac3a5315f588ba04ad255188071ec4e22',1,'glm']]], - ['packed_5fdmat2x4',['packed_dmat2x4',['../a00303.html#gae398fc3156f51d3684b08f62c1a5a6d4',1,'glm']]], - ['packed_5fdmat3',['packed_dmat3',['../a00303.html#ga03dfc90d539cc87ea3a15a9caa5d2245',1,'glm']]], - ['packed_5fdmat3x2',['packed_dmat3x2',['../a00303.html#gae36de20a4c0e0b1444b7903ae811d94e',1,'glm']]], - ['packed_5fdmat3x3',['packed_dmat3x3',['../a00303.html#gab9b909f1392d86854334350efcae85f5',1,'glm']]], - ['packed_5fdmat3x4',['packed_dmat3x4',['../a00303.html#ga199131fd279c92c2ac12df6d978f1dd6',1,'glm']]], - ['packed_5fdmat4',['packed_dmat4',['../a00303.html#gada980a3485640aa8151f368f17ad3086',1,'glm']]], - ['packed_5fdmat4x2',['packed_dmat4x2',['../a00303.html#ga6dc65249730698d3cc9ac5d7e1bc4d72',1,'glm']]], - ['packed_5fdmat4x3',['packed_dmat4x3',['../a00303.html#gadf202aaa9ed71c09f9bbe347e43f8764',1,'glm']]], - ['packed_5fdmat4x4',['packed_dmat4x4',['../a00303.html#gae20617435a6d042d7c38da2badd64a09',1,'glm']]], - ['packed_5fdvec1',['packed_dvec1',['../a00303.html#ga532f0c940649b1ee303acd572fc35531',1,'glm']]], - ['packed_5fdvec2',['packed_dvec2',['../a00303.html#ga5c194b11fbda636f2ab20c3bd0079196',1,'glm']]], - ['packed_5fdvec3',['packed_dvec3',['../a00303.html#ga0581ea552d86b2b5de7a2804bed80e72',1,'glm']]], - ['packed_5fdvec4',['packed_dvec4',['../a00303.html#gae8a9b181f9dc813ad6e125a52b14b935',1,'glm']]], - ['packed_5fhighp_5fbvec1',['packed_highp_bvec1',['../a00303.html#ga439e97795314b81cd15abd4e5c2e6e7a',1,'glm']]], - ['packed_5fhighp_5fbvec2',['packed_highp_bvec2',['../a00303.html#gad791d671f4fcf1ed1ea41f752916b70a',1,'glm']]], - ['packed_5fhighp_5fbvec3',['packed_highp_bvec3',['../a00303.html#ga6a5a3250b57dfadc66735bc72911437f',1,'glm']]], - ['packed_5fhighp_5fbvec4',['packed_highp_bvec4',['../a00303.html#ga09f517d88b996ef1b2f42fd54222b82d',1,'glm']]], - ['packed_5fhighp_5fdmat2',['packed_highp_dmat2',['../a00303.html#gae29686632fd05efac0675d9a6370d77b',1,'glm']]], - ['packed_5fhighp_5fdmat2x2',['packed_highp_dmat2x2',['../a00303.html#ga22bd6382b16052e301edbfc031b9f37a',1,'glm']]], - ['packed_5fhighp_5fdmat2x3',['packed_highp_dmat2x3',['../a00303.html#ga999d82719696d4c59f4d236dd08f273d',1,'glm']]], - ['packed_5fhighp_5fdmat2x4',['packed_highp_dmat2x4',['../a00303.html#ga6998ac2a8d7fe456b651a6336ed26bb0',1,'glm']]], - ['packed_5fhighp_5fdmat3',['packed_highp_dmat3',['../a00303.html#gadac7c040c4810dd52b36fcd09d097400',1,'glm']]], - ['packed_5fhighp_5fdmat3x2',['packed_highp_dmat3x2',['../a00303.html#gab462744977beb85fb5c782bc2eea7b15',1,'glm']]], - ['packed_5fhighp_5fdmat3x3',['packed_highp_dmat3x3',['../a00303.html#ga49e5a709d098523823b2f824e48672a6',1,'glm']]], - ['packed_5fhighp_5fdmat3x4',['packed_highp_dmat3x4',['../a00303.html#ga2c67b3b0adab71c8680c3d819f1fa9b7',1,'glm']]], - ['packed_5fhighp_5fdmat4',['packed_highp_dmat4',['../a00303.html#ga6718822cd7af005a9b5bd6ee282f6ba6',1,'glm']]], - ['packed_5fhighp_5fdmat4x2',['packed_highp_dmat4x2',['../a00303.html#ga12e39e797fb724a5b51fcbea2513a7da',1,'glm']]], - ['packed_5fhighp_5fdmat4x3',['packed_highp_dmat4x3',['../a00303.html#ga79c2e9f82e67963c1ecad0ad6d0ec72e',1,'glm']]], - ['packed_5fhighp_5fdmat4x4',['packed_highp_dmat4x4',['../a00303.html#ga2df58e03e5afded28707b4f7d077afb4',1,'glm']]], - ['packed_5fhighp_5fdvec1',['packed_highp_dvec1',['../a00303.html#gab472b2d917b5e6efd76e8c7dbfbbf9f1',1,'glm']]], - ['packed_5fhighp_5fdvec2',['packed_highp_dvec2',['../a00303.html#ga5b2dc48fa19b684d207d69c6b145eb63',1,'glm']]], - ['packed_5fhighp_5fdvec3',['packed_highp_dvec3',['../a00303.html#gaaac6b356ef00154da41aaae7d1549193',1,'glm']]], - ['packed_5fhighp_5fdvec4',['packed_highp_dvec4',['../a00303.html#ga81b5368fe485e2630aa9b44832d592e7',1,'glm']]], - ['packed_5fhighp_5fivec1',['packed_highp_ivec1',['../a00303.html#ga7245acc887a5438f46fd85fdf076bb3b',1,'glm']]], - ['packed_5fhighp_5fivec2',['packed_highp_ivec2',['../a00303.html#ga54f368ec6b514a5aa4f28d40e6f93ef7',1,'glm']]], - ['packed_5fhighp_5fivec3',['packed_highp_ivec3',['../a00303.html#ga865a9c7bb22434b1b8c5ac31e164b628',1,'glm']]], - ['packed_5fhighp_5fivec4',['packed_highp_ivec4',['../a00303.html#gad6f1b4e3a51c2c051814b60d5d1b8895',1,'glm']]], - ['packed_5fhighp_5fmat2',['packed_highp_mat2',['../a00303.html#ga2f2d913d8cca2f935b2522964408c0b2',1,'glm']]], - ['packed_5fhighp_5fmat2x2',['packed_highp_mat2x2',['../a00303.html#ga245c12d2daf67feecaa2d3277c8f6661',1,'glm']]], - ['packed_5fhighp_5fmat2x3',['packed_highp_mat2x3',['../a00303.html#ga069cc8892aadae144c00f35297617d44',1,'glm']]], - ['packed_5fhighp_5fmat2x4',['packed_highp_mat2x4',['../a00303.html#ga6904d09b62141d09712b76983892f95b',1,'glm']]], - ['packed_5fhighp_5fmat3',['packed_highp_mat3',['../a00303.html#gabdd5fbffe8b8b8a7b33523f25b120dbe',1,'glm']]], - ['packed_5fhighp_5fmat3x2',['packed_highp_mat3x2',['../a00303.html#ga2624719cb251d8de8cad1beaefc3a3f9',1,'glm']]], - ['packed_5fhighp_5fmat3x3',['packed_highp_mat3x3',['../a00303.html#gaf2e07527d678440bf0c20adbeb9177c5',1,'glm']]], - ['packed_5fhighp_5fmat3x4',['packed_highp_mat3x4',['../a00303.html#ga72102fa6ac2445aa3bb203128ad52449',1,'glm']]], - ['packed_5fhighp_5fmat4',['packed_highp_mat4',['../a00303.html#ga253e8379b08d2dc6fe2800b2fb913203',1,'glm']]], - ['packed_5fhighp_5fmat4x2',['packed_highp_mat4x2',['../a00303.html#gae389c2071cf3cdb33e7812c6fd156710',1,'glm']]], - ['packed_5fhighp_5fmat4x3',['packed_highp_mat4x3',['../a00303.html#ga4584f64394bd7123b7a8534741e4916c',1,'glm']]], - ['packed_5fhighp_5fmat4x4',['packed_highp_mat4x4',['../a00303.html#ga0149fe15668925147e07c94fd2c2d6ae',1,'glm']]], - ['packed_5fhighp_5fuvec1',['packed_highp_uvec1',['../a00303.html#ga8c32b53f628a3616aa5061e58d66fe74',1,'glm']]], - ['packed_5fhighp_5fuvec2',['packed_highp_uvec2',['../a00303.html#gab704d4fb15f6f96d70e363d5db7060cd',1,'glm']]], - ['packed_5fhighp_5fuvec3',['packed_highp_uvec3',['../a00303.html#ga0b570da473fec4619db5aa0dce5133b0',1,'glm']]], - ['packed_5fhighp_5fuvec4',['packed_highp_uvec4',['../a00303.html#gaa582f38c82aef61dea7aaedf15bb06a6',1,'glm']]], - ['packed_5fhighp_5fvec1',['packed_highp_vec1',['../a00303.html#ga56473759d2702ee19ab7f91d0017fa70',1,'glm']]], - ['packed_5fhighp_5fvec2',['packed_highp_vec2',['../a00303.html#ga6b8b9475e7c3b16aed13edbc460bbc4d',1,'glm']]], - ['packed_5fhighp_5fvec3',['packed_highp_vec3',['../a00303.html#ga3815661df0e2de79beff8168c09adf1e',1,'glm']]], - ['packed_5fhighp_5fvec4',['packed_highp_vec4',['../a00303.html#ga4015f36bf5a5adb6ac5d45beed959867',1,'glm']]], - ['packed_5fivec1',['packed_ivec1',['../a00303.html#ga11581a06fc7bf941fa4d4b6aca29812c',1,'glm']]], - ['packed_5fivec2',['packed_ivec2',['../a00303.html#ga1fe4c5f56b8087d773aa90dc88a257a7',1,'glm']]], - ['packed_5fivec3',['packed_ivec3',['../a00303.html#gae157682a7847161787951ba1db4cf325',1,'glm']]], - ['packed_5fivec4',['packed_ivec4',['../a00303.html#gac228b70372abd561340d5f926a7c1778',1,'glm']]], - ['packed_5flowp_5fbvec1',['packed_lowp_bvec1',['../a00303.html#gae3c8750f53259ece334d3aa3b3649a40',1,'glm']]], - ['packed_5flowp_5fbvec2',['packed_lowp_bvec2',['../a00303.html#gac969befedbda69eb78d4e23f751fdbee',1,'glm']]], - ['packed_5flowp_5fbvec3',['packed_lowp_bvec3',['../a00303.html#ga7c20adbe1409e3fe4544677a7f6fe954',1,'glm']]], - ['packed_5flowp_5fbvec4',['packed_lowp_bvec4',['../a00303.html#gae473587cff3092edc0877fc691c26a0b',1,'glm']]], - ['packed_5flowp_5fdmat2',['packed_lowp_dmat2',['../a00303.html#gac93f9b1a35b9de4f456b9f2dfeaf1097',1,'glm']]], - ['packed_5flowp_5fdmat2x2',['packed_lowp_dmat2x2',['../a00303.html#gaeeaff6c132ec91ebd21da3a2399548ea',1,'glm']]], - ['packed_5flowp_5fdmat2x3',['packed_lowp_dmat2x3',['../a00303.html#ga2ccdcd4846775cbe4f9d12e71d55b5d2',1,'glm']]], - ['packed_5flowp_5fdmat2x4',['packed_lowp_dmat2x4',['../a00303.html#gac870c47d2d9d48503f6c9ee3baec8ce1',1,'glm']]], - ['packed_5flowp_5fdmat3',['packed_lowp_dmat3',['../a00303.html#ga3894a059eeaacec8791c25de398d9955',1,'glm']]], - ['packed_5flowp_5fdmat3x2',['packed_lowp_dmat3x2',['../a00303.html#ga23ec236950f5859f59197663266b535d',1,'glm']]], - ['packed_5flowp_5fdmat3x3',['packed_lowp_dmat3x3',['../a00303.html#ga4a7c7d8c3a663d0ec2a858cbfa14e54c',1,'glm']]], - ['packed_5flowp_5fdmat3x4',['packed_lowp_dmat3x4',['../a00303.html#ga8fc0e66da83599071b7ec17510686cd9',1,'glm']]], - ['packed_5flowp_5fdmat4',['packed_lowp_dmat4',['../a00303.html#ga03e1edf5666c40affe39aee35c87956f',1,'glm']]], - ['packed_5flowp_5fdmat4x2',['packed_lowp_dmat4x2',['../a00303.html#ga39658fb13369db869d363684bd8399c0',1,'glm']]], - ['packed_5flowp_5fdmat4x3',['packed_lowp_dmat4x3',['../a00303.html#ga30b0351eebc18c6056101359bdd3a359',1,'glm']]], - ['packed_5flowp_5fdmat4x4',['packed_lowp_dmat4x4',['../a00303.html#ga0294d4c45151425c86a11deee7693c0e',1,'glm']]], - ['packed_5flowp_5fdvec1',['packed_lowp_dvec1',['../a00303.html#ga054050e9d4e78d81db0e6d1573b1c624',1,'glm']]], - ['packed_5flowp_5fdvec2',['packed_lowp_dvec2',['../a00303.html#gadc19938ddb204bfcb4d9ef35b1e2bf93',1,'glm']]], - ['packed_5flowp_5fdvec3',['packed_lowp_dvec3',['../a00303.html#ga9189210cabd6651a5e14a4c46fb20598',1,'glm']]], - ['packed_5flowp_5fdvec4',['packed_lowp_dvec4',['../a00303.html#ga262dafd0c001c3a38d1cc91d024ca738',1,'glm']]], - ['packed_5flowp_5fivec1',['packed_lowp_ivec1',['../a00303.html#gaf22b77f1cf3e73b8b1dddfe7f959357c',1,'glm']]], - ['packed_5flowp_5fivec2',['packed_lowp_ivec2',['../a00303.html#ga52635859f5ef660ab999d22c11b7867f',1,'glm']]], - ['packed_5flowp_5fivec3',['packed_lowp_ivec3',['../a00303.html#ga98c9d122a959e9f3ce10a5623c310f5d',1,'glm']]], - ['packed_5flowp_5fivec4',['packed_lowp_ivec4',['../a00303.html#ga931731b8ae3b54c7ecc221509dae96bc',1,'glm']]], - ['packed_5flowp_5fmat2',['packed_lowp_mat2',['../a00303.html#ga70dcb9ef0b24e832772a7405efa9669a',1,'glm']]], - ['packed_5flowp_5fmat2x2',['packed_lowp_mat2x2',['../a00303.html#gac70667c7642ec8d50245e6e6936a3927',1,'glm']]], - ['packed_5flowp_5fmat2x3',['packed_lowp_mat2x3',['../a00303.html#ga3e7df5a11e1be27bc29a4c0d3956f234',1,'glm']]], - ['packed_5flowp_5fmat2x4',['packed_lowp_mat2x4',['../a00303.html#gaea9c555e669dc56c45d95dcc75d59bf3',1,'glm']]], - ['packed_5flowp_5fmat3',['packed_lowp_mat3',['../a00303.html#ga0d22400969dd223465b2900fecfb4f53',1,'glm']]], - ['packed_5flowp_5fmat3x2',['packed_lowp_mat3x2',['../a00303.html#ga128cd52649621861635fab746df91735',1,'glm']]], - ['packed_5flowp_5fmat3x3',['packed_lowp_mat3x3',['../a00303.html#ga5adf1802c5375a9dfb1729691bedd94e',1,'glm']]], - ['packed_5flowp_5fmat3x4',['packed_lowp_mat3x4',['../a00303.html#ga92247ca09fa03c4013ba364f3a0fca7f',1,'glm']]], - ['packed_5flowp_5fmat4',['packed_lowp_mat4',['../a00303.html#ga2a1dd2387725a335413d4c4fee8609c4',1,'glm']]], - ['packed_5flowp_5fmat4x2',['packed_lowp_mat4x2',['../a00303.html#ga8f22607dcd090cd280071ccc689f4079',1,'glm']]], - ['packed_5flowp_5fmat4x3',['packed_lowp_mat4x3',['../a00303.html#ga7661d759d6ad218e132e3d051e7b2c6c',1,'glm']]], - ['packed_5flowp_5fmat4x4',['packed_lowp_mat4x4',['../a00303.html#ga776f18d1a6e7d399f05d386167dc60f5',1,'glm']]], - ['packed_5flowp_5fuvec1',['packed_lowp_uvec1',['../a00303.html#gaf111fed760ecce16cb1988807569bee5',1,'glm']]], - ['packed_5flowp_5fuvec2',['packed_lowp_uvec2',['../a00303.html#ga958210fe245a75b058325d367c951132',1,'glm']]], - ['packed_5flowp_5fuvec3',['packed_lowp_uvec3',['../a00303.html#ga576a3f8372197a56a79dee1c8280f485',1,'glm']]], - ['packed_5flowp_5fuvec4',['packed_lowp_uvec4',['../a00303.html#gafdd97922b4a2a42cd0c99a13877ff4da',1,'glm']]], - ['packed_5flowp_5fvec1',['packed_lowp_vec1',['../a00303.html#ga0a6198fe64166a6a61084d43c71518a9',1,'glm']]], - ['packed_5flowp_5fvec2',['packed_lowp_vec2',['../a00303.html#gafbf1c2cce307c5594b165819ed83bf5d',1,'glm']]], - ['packed_5flowp_5fvec3',['packed_lowp_vec3',['../a00303.html#ga3a30c137c1f8cce478c28eab0427a570',1,'glm']]], - ['packed_5flowp_5fvec4',['packed_lowp_vec4',['../a00303.html#ga3cc94fb8de80bbd8a4aa7a5b206d304a',1,'glm']]], - ['packed_5fmat2',['packed_mat2',['../a00303.html#gadd019b43fcf42e1590d45dddaa504a1a',1,'glm']]], - ['packed_5fmat2x2',['packed_mat2x2',['../a00303.html#ga51eaadcdc292c8750f746a5dc3e6c517',1,'glm']]], - ['packed_5fmat2x3',['packed_mat2x3',['../a00303.html#ga301b76a89b8a9625501ca58815017f20',1,'glm']]], - ['packed_5fmat2x4',['packed_mat2x4',['../a00303.html#gac401da1dd9177ad81d7618a2a5541e23',1,'glm']]], - ['packed_5fmat3',['packed_mat3',['../a00303.html#ga9bc12b0ab7be8448836711b77cc7b83a',1,'glm']]], - ['packed_5fmat3x2',['packed_mat3x2',['../a00303.html#ga134f0d99fbd2459c13cd9ebd056509fa',1,'glm']]], - ['packed_5fmat3x3',['packed_mat3x3',['../a00303.html#ga6c1dbe8cde9fbb231284b01f8aeaaa99',1,'glm']]], - ['packed_5fmat3x4',['packed_mat3x4',['../a00303.html#gad63515526cccfe88ffa8fe5ed64f95f8',1,'glm']]], - ['packed_5fmat4',['packed_mat4',['../a00303.html#ga2c139854e5b04cf08a957dee3b510441',1,'glm']]], - ['packed_5fmat4x2',['packed_mat4x2',['../a00303.html#ga379c1153f1339bdeaefd592bebf538e8',1,'glm']]], - ['packed_5fmat4x3',['packed_mat4x3',['../a00303.html#gab286466e19f7399c8d25089da9400d43',1,'glm']]], - ['packed_5fmat4x4',['packed_mat4x4',['../a00303.html#ga67e7102557d6067bb6ac00d4ad0e1374',1,'glm']]], - ['packed_5fmediump_5fbvec1',['packed_mediump_bvec1',['../a00303.html#ga5546d828d63010a8f9cf81161ad0275a',1,'glm']]], - ['packed_5fmediump_5fbvec2',['packed_mediump_bvec2',['../a00303.html#gab4c6414a59539e66a242ad4cf4b476b4',1,'glm']]], - ['packed_5fmediump_5fbvec3',['packed_mediump_bvec3',['../a00303.html#ga70147763edff3fe96b03a0b98d6339a2',1,'glm']]], - ['packed_5fmediump_5fbvec4',['packed_mediump_bvec4',['../a00303.html#ga7b1620f259595b9da47a6374fc44588a',1,'glm']]], - ['packed_5fmediump_5fdmat2',['packed_mediump_dmat2',['../a00303.html#ga9d60e32d3fcb51f817046cd881fdbf57',1,'glm']]], - ['packed_5fmediump_5fdmat2x2',['packed_mediump_dmat2x2',['../a00303.html#ga39e8bb9b70e5694964e8266a21ba534e',1,'glm']]], - ['packed_5fmediump_5fdmat2x3',['packed_mediump_dmat2x3',['../a00303.html#ga8897c6d9adb4140b1c3b0a07b8f0a430',1,'glm']]], - ['packed_5fmediump_5fdmat2x4',['packed_mediump_dmat2x4',['../a00303.html#gaaa4126969c765e7faa2ebf6951c22ffb',1,'glm']]], - ['packed_5fmediump_5fdmat3',['packed_mediump_dmat3',['../a00303.html#gaf969eb879c76a5f4576e4a1e10095cf6',1,'glm']]], - ['packed_5fmediump_5fdmat3x2',['packed_mediump_dmat3x2',['../a00303.html#ga86efe91cdaa2864c828a5d6d46356c6a',1,'glm']]], - ['packed_5fmediump_5fdmat3x3',['packed_mediump_dmat3x3',['../a00303.html#gaf85877d38d8cfbc21d59d939afd72375',1,'glm']]], - ['packed_5fmediump_5fdmat3x4',['packed_mediump_dmat3x4',['../a00303.html#gad5dcaf93df267bc3029174e430e0907f',1,'glm']]], - ['packed_5fmediump_5fdmat4',['packed_mediump_dmat4',['../a00303.html#ga4b0ee7996651ddd04eaa0c4cdbb66332',1,'glm']]], - ['packed_5fmediump_5fdmat4x2',['packed_mediump_dmat4x2',['../a00303.html#ga9a15514a0631f700de6312b9d5db3a73',1,'glm']]], - ['packed_5fmediump_5fdmat4x3',['packed_mediump_dmat4x3',['../a00303.html#gab5b36cc9caee1bb1c5178fe191bf5713',1,'glm']]], - ['packed_5fmediump_5fdmat4x4',['packed_mediump_dmat4x4',['../a00303.html#ga21e86cf2f6c126bacf31b8985db06bd4',1,'glm']]], - ['packed_5fmediump_5fdvec1',['packed_mediump_dvec1',['../a00303.html#ga8920e90ea9c01d9c97e604a938ce2cbd',1,'glm']]], - ['packed_5fmediump_5fdvec2',['packed_mediump_dvec2',['../a00303.html#ga0c754a783b6fcf80374c013371c4dae9',1,'glm']]], - ['packed_5fmediump_5fdvec3',['packed_mediump_dvec3',['../a00303.html#ga1f18ada6f7cdd8c46db33ba987280fc4',1,'glm']]], - ['packed_5fmediump_5fdvec4',['packed_mediump_dvec4',['../a00303.html#ga568b850f1116b667043533cf77826968',1,'glm']]], - ['packed_5fmediump_5fivec1',['packed_mediump_ivec1',['../a00303.html#ga09507ef020a49517a7bcd50438f05056',1,'glm']]], - ['packed_5fmediump_5fivec2',['packed_mediump_ivec2',['../a00303.html#gaaa891048dddef4627df33809ec726219',1,'glm']]], - ['packed_5fmediump_5fivec3',['packed_mediump_ivec3',['../a00303.html#ga06f26d54dca30994eb1fdadb8e69f4a2',1,'glm']]], - ['packed_5fmediump_5fivec4',['packed_mediump_ivec4',['../a00303.html#ga70130dc8ed9c966ec2a221ce586d45d8',1,'glm']]], - ['packed_5fmediump_5fmat2',['packed_mediump_mat2',['../a00303.html#ga43cd36d430c5187bfdca34a23cb41581',1,'glm']]], - ['packed_5fmediump_5fmat2x2',['packed_mediump_mat2x2',['../a00303.html#ga2d2a73e662759e301c22b8931ff6a526',1,'glm']]], - ['packed_5fmediump_5fmat2x3',['packed_mediump_mat2x3',['../a00303.html#ga99049db01faf1e95ed9fb875a47dffe2',1,'glm']]], - ['packed_5fmediump_5fmat2x4',['packed_mediump_mat2x4',['../a00303.html#gad43a240533f388ce0504b495d9df3d52',1,'glm']]], - ['packed_5fmediump_5fmat3',['packed_mediump_mat3',['../a00303.html#ga13a75c6cbd0a411f694bc82486cd1e55',1,'glm']]], - ['packed_5fmediump_5fmat3x2',['packed_mediump_mat3x2',['../a00303.html#ga04cfaf1421284df3c24ea0985dab24e7',1,'glm']]], - ['packed_5fmediump_5fmat3x3',['packed_mediump_mat3x3',['../a00303.html#gaaa9cea174d342dd9650e3436823cab23',1,'glm']]], - ['packed_5fmediump_5fmat3x4',['packed_mediump_mat3x4',['../a00303.html#gabc93a9560593bd32e099c908531305f5',1,'glm']]], - ['packed_5fmediump_5fmat4',['packed_mediump_mat4',['../a00303.html#gae89d72ffc149147f61df701bbc8755bf',1,'glm']]], - ['packed_5fmediump_5fmat4x2',['packed_mediump_mat4x2',['../a00303.html#gaa458f9d9e0934bae3097e2a373b24707',1,'glm']]], - ['packed_5fmediump_5fmat4x3',['packed_mediump_mat4x3',['../a00303.html#ga02ca6255394aa778abaeb0f733c4d2b6',1,'glm']]], - ['packed_5fmediump_5fmat4x4',['packed_mediump_mat4x4',['../a00303.html#gaf304f64c06743c1571401504d3f50259',1,'glm']]], - ['packed_5fmediump_5fuvec1',['packed_mediump_uvec1',['../a00303.html#ga2c29fb42bab9a4f9b66bc60b2e514a34',1,'glm']]], - ['packed_5fmediump_5fuvec2',['packed_mediump_uvec2',['../a00303.html#gaa1f95690a78dc12e39da32943243aeef',1,'glm']]], - ['packed_5fmediump_5fuvec3',['packed_mediump_uvec3',['../a00303.html#ga1ea2bbdbcb0a69242f6d884663c1b0ab',1,'glm']]], - ['packed_5fmediump_5fuvec4',['packed_mediump_uvec4',['../a00303.html#ga63a73be86a4f07ea7a7499ab0bfebe45',1,'glm']]], - ['packed_5fmediump_5fvec1',['packed_mediump_vec1',['../a00303.html#ga71d63cead1e113fca0bcdaaa33aad050',1,'glm']]], - ['packed_5fmediump_5fvec2',['packed_mediump_vec2',['../a00303.html#ga6844c6f4691d1bf67673240850430948',1,'glm']]], - ['packed_5fmediump_5fvec3',['packed_mediump_vec3',['../a00303.html#gab0eb771b708c5b2205d9b14dd1434fd8',1,'glm']]], - ['packed_5fmediump_5fvec4',['packed_mediump_vec4',['../a00303.html#ga68c9bb24f387b312bae6a0a68e74d95e',1,'glm']]], - ['packed_5fuvec1',['packed_uvec1',['../a00303.html#ga5621493caac01bdd22ab6be4416b0314',1,'glm']]], - ['packed_5fuvec2',['packed_uvec2',['../a00303.html#gabcc33efb4d5e83b8fe4706360e75b932',1,'glm']]], - ['packed_5fuvec3',['packed_uvec3',['../a00303.html#gab96804e99e3a72a35740fec690c79617',1,'glm']]], - ['packed_5fuvec4',['packed_uvec4',['../a00303.html#ga8e5d92e84ebdbe2480cf96bc17d6e2f2',1,'glm']]], - ['packed_5fvec1',['packed_vec1',['../a00303.html#ga14741e3d9da9ae83765389927f837331',1,'glm']]], - ['packed_5fvec2',['packed_vec2',['../a00303.html#ga3254defa5a8f0ae4b02b45fedba84a66',1,'glm']]], - ['packed_5fvec3',['packed_vec3',['../a00303.html#gaccccd090e185450caa28b5b63ad4e8f0',1,'glm']]], - ['packed_5fvec4',['packed_vec4',['../a00303.html#ga37a0e0bf653169b581c5eea3d547fa5d',1,'glm']]], - ['packf2x11_5f1x10',['packF2x11_1x10',['../a00298.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]], - ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00298.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]], - ['packhalf',['packHalf',['../a00298.html#ga2d8bbce673ebc04831c1fb05c47f5251',1,'glm']]], - ['packhalf1x16',['packHalf1x16',['../a00298.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]], - ['packhalf2x16',['packHalf2x16',['../a00372.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]], - ['packhalf4x16',['packHalf4x16',['../a00298.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]], - ['packi3x10_5f1x2',['packI3x10_1x2',['../a00298.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]], - ['packing_2ehpp',['packing.hpp',['../a00120.html',1,'']]], - ['packint2x16',['packInt2x16',['../a00298.html#ga3644163cf3a47bf1d4af1f4b03013a7e',1,'glm']]], - ['packint2x32',['packInt2x32',['../a00298.html#gad1e4c8a9e67d86b61a6eec86703a827a',1,'glm']]], - ['packint2x8',['packInt2x8',['../a00298.html#ga8884b1f2292414f36d59ef3be5d62914',1,'glm']]], - ['packint4x16',['packInt4x16',['../a00298.html#ga1989f093a27ae69cf9207145be48b3d7',1,'glm']]], - ['packint4x8',['packInt4x8',['../a00298.html#gaf2238401d5ce2aaade1a44ba19709072',1,'glm']]], - ['packrgbm',['packRGBM',['../a00298.html#ga0466daf4c90f76cc64b3f105ce727295',1,'glm']]], - ['packsnorm',['packSnorm',['../a00298.html#gaa54b5855a750d6aeb12c1c902f5939b8',1,'glm']]], - ['packsnorm1x16',['packSnorm1x16',['../a00298.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]], - ['packsnorm1x8',['packSnorm1x8',['../a00298.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]], - ['packsnorm2x16',['packSnorm2x16',['../a00372.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]], - ['packsnorm2x8',['packSnorm2x8',['../a00298.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]], - ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00298.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]], - ['packsnorm4x16',['packSnorm4x16',['../a00298.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]], - ['packsnorm4x8',['packSnorm4x8',['../a00372.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]], - ['packu3x10_5f1x2',['packU3x10_1x2',['../a00298.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]], - ['packuint2x16',['packUint2x16',['../a00298.html#ga5eecc9e8cbaf51ac6cf57501e670ee19',1,'glm']]], - ['packuint2x32',['packUint2x32',['../a00298.html#gaa864081097b86e83d8e4a4d79c382b22',1,'glm']]], - ['packuint2x8',['packUint2x8',['../a00298.html#ga3c3c9fb53ae7823b10fa083909357590',1,'glm']]], - ['packuint4x16',['packUint4x16',['../a00298.html#ga2ceb62cca347d8ace42ee90317a3f1f9',1,'glm']]], - ['packuint4x8',['packUint4x8',['../a00298.html#gaa0fe2f09aeb403cd66c1a062f58861ab',1,'glm']]], - ['packunorm',['packUnorm',['../a00298.html#gaccd3f27e6ba5163eb7aa9bc8ff96251a',1,'glm']]], - ['packunorm1x16',['packUnorm1x16',['../a00298.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]], - ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00298.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]], - ['packunorm1x8',['packUnorm1x8',['../a00298.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]], - ['packunorm2x16',['packUnorm2x16',['../a00372.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]], - ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00298.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]], - ['packunorm2x4',['packUnorm2x4',['../a00298.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]], - ['packunorm2x8',['packUnorm2x8',['../a00298.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]], - ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00298.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]], - ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00298.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]], - ['packunorm4x16',['packUnorm4x16',['../a00298.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]], - ['packunorm4x4',['packUnorm4x4',['../a00298.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]], - ['packunorm4x8',['packUnorm4x8',['../a00372.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]], - ['perlin',['perlin',['../a00297.html#ga1e043ce3b51510e9bc4469227cefc38a',1,'glm::perlin(vec< L, T, Q > const &p)'],['../a00297.html#gac270edc54c5fc52f5985a45f940bb103',1,'glm::perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)']]], - ['perp',['perp',['../a00349.html#ga264cfc4e180cf9b852e943b35089003c',1,'glm']]], - ['perpendicular_2ehpp',['perpendicular.hpp',['../a00121.html',1,'']]], - ['perspective',['perspective',['../a00243.html#ga747c8cf99458663dd7ad1bb3a2f07787',1,'glm']]], - ['perspectivefov',['perspectiveFov',['../a00243.html#gaebd02240fd36e85ad754f02ddd9a560d',1,'glm']]], - ['perspectivefovlh',['perspectiveFovLH',['../a00243.html#ga6aebe16c164bd8e52554cbe0304ef4aa',1,'glm']]], - ['perspectivefovlh_5fno',['perspectiveFovLH_NO',['../a00243.html#gad18a4495b77530317327e8d466488c1a',1,'glm']]], - ['perspectivefovlh_5fzo',['perspectiveFovLH_ZO',['../a00243.html#gabdd37014f529e25b2fa1b3ba06c10d5c',1,'glm']]], - ['perspectivefovno',['perspectiveFovNO',['../a00243.html#gaf30e7bd3b1387a6776433dd5383e6633',1,'glm']]], - ['perspectivefovrh',['perspectiveFovRH',['../a00243.html#gaf32bf563f28379c68554a44ee60c6a85',1,'glm']]], - ['perspectivefovrh_5fno',['perspectiveFovRH_NO',['../a00243.html#ga257b733ff883c9a065801023cf243eb2',1,'glm']]], - ['perspectivefovrh_5fzo',['perspectiveFovRH_ZO',['../a00243.html#ga7dcbb25331676f5b0795aced1a905c44',1,'glm']]], - ['perspectivefovzo',['perspectiveFovZO',['../a00243.html#ga4bc69fa1d1f95128430aa3d2a712390b',1,'glm']]], - ['perspectivelh',['perspectiveLH',['../a00243.html#ga9bd34951dc7022ac256fcb51d7f6fc2f',1,'glm']]], - ['perspectivelh_5fno',['perspectiveLH_NO',['../a00243.html#gaead4d049d1feab463b700b5641aa590e',1,'glm']]], - ['perspectivelh_5fzo',['perspectiveLH_ZO',['../a00243.html#gaca32af88c2719005c02817ad1142986c',1,'glm']]], - ['perspectiveno',['perspectiveNO',['../a00243.html#gaf497e6bca61e7c87088370b126a93758',1,'glm']]], - ['perspectiverh',['perspectiveRH',['../a00243.html#ga26b88757fbd90601b80768a7e1ad3aa1',1,'glm']]], - ['perspectiverh_5fno',['perspectiveRH_NO',['../a00243.html#gad1526cb2cbe796095284e8f34b01c582',1,'glm']]], - ['perspectiverh_5fzo',['perspectiveRH_ZO',['../a00243.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a',1,'glm']]], - ['perspectivezo',['perspectiveZO',['../a00243.html#gaa9dfba5c2322da54f72b1eb7c7c11b47',1,'glm']]], - ['pi',['pi',['../a00259.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]], - ['pickmatrix',['pickMatrix',['../a00245.html#gaf6b21eadb7ac2ecbbe258a9a233b4c82',1,'glm']]], - ['pitch',['pitch',['../a00299.html#ga7603e81477b46ddb448896909bc04928',1,'glm']]], - ['polar',['polar',['../a00350.html#gab83ac2c0e55b684b06b6c46c28b1590d',1,'glm']]], - ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00122.html',1,'']]], - ['pow',['pow',['../a00242.html#ga2254981952d4f333b900a6bf5167a6c4',1,'glm::pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)'],['../a00256.html#ga4975ffcacd312a8c0bbd046a76c5607e',1,'glm::pow(qua< T, Q > const &q, T y)'],['../a00330.html#ga465016030a81d513fa2fac881ebdaa83',1,'glm::pow(int x, uint y)'],['../a00330.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)']]], - ['pow2',['pow2',['../a00347.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]], - ['pow3',['pow3',['../a00347.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]], - ['pow4',['pow4',['../a00347.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]], - ['poweroftwoabove',['powerOfTwoAbove',['../a00309.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00309.html#ga2bbded187c5febfefc1e524ba31b3fab',1,'glm::powerOfTwoAbove(vec< L, T, Q > const &value)']]], - ['poweroftwobelow',['powerOfTwoBelow',['../a00309.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00309.html#gaf78ddcc4152c051b2a21e68fecb10980',1,'glm::powerOfTwoBelow(vec< L, T, Q > const &value)']]], - ['poweroftwonearest',['powerOfTwoNearest',['../a00309.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b',1,'glm::powerOfTwoNearest(vec< L, T, Q > const &value)']]], - ['prevmultiple',['prevMultiple',['../a00261.html#gada3bdd871ffe31f2d484aa668362f636',1,'glm::prevMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga7b3915a7cd3d50ff4976ab7a75a6880a',1,'glm::prevMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#ga51e04379e8aebbf83e2e5ab094578ee9',1,'glm::prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['prevpoweroftwo',['prevPowerOfTwo',['../a00261.html#gab21902a0e7e5a8451a7ad80333618727',1,'glm::prevPowerOfTwo(genIUType v)'],['../a00274.html#ga759db73f14d79f63612bd2398b577e7a',1,'glm::prevPowerOfTwo(vec< L, T, Q > const &v)']]], - ['proj',['proj',['../a00351.html#ga58384b7170801dd513de46f87c7fb00e',1,'glm']]], - ['proj2d',['proj2D',['../a00363.html#ga5b992a0cdc8298054edb68e228f0d93e',1,'glm']]], - ['proj3d',['proj3D',['../a00363.html#gaa2b7f4f15b98f697caede11bef50509e',1,'glm']]], - ['project',['project',['../a00245.html#gaf36e96033f456659e6705472a06b6e11',1,'glm']]], - ['projection_2ehpp',['projection.hpp',['../a00123.html',1,'']]], - ['projectno',['projectNO',['../a00245.html#ga05249751f48d14cb282e4979802b8111',1,'glm']]], - ['projectzo',['projectZO',['../a00245.html#ga77d157525063dec83a557186873ee080',1,'glm']]] -]; +var searchData= +[ + ['packdouble2x32',['packDouble2x32',['../a00372.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]], + ['packed_5fbvec1',['packed_bvec1',['../a00303.html#ga88632cea9008ac0ac1388e94e804a53c',1,'glm']]], + ['packed_5fbvec2',['packed_bvec2',['../a00303.html#gab85245913eaa40ab82adabcae37086cb',1,'glm']]], + ['packed_5fbvec3',['packed_bvec3',['../a00303.html#ga0c48f9417f649e27f3fb0c9f733a18bd',1,'glm']]], + ['packed_5fbvec4',['packed_bvec4',['../a00303.html#ga3180d7db84a74c402157df3bbc0ae3ed',1,'glm']]], + ['packed_5fdmat2',['packed_dmat2',['../a00303.html#gad87408a8350918711f845f071bbe43fb',1,'glm']]], + ['packed_5fdmat2x2',['packed_dmat2x2',['../a00303.html#gaaa33d8e06657a777efb0c72c44ce87a9',1,'glm']]], + ['packed_5fdmat2x3',['packed_dmat2x3',['../a00303.html#gac3a5315f588ba04ad255188071ec4e22',1,'glm']]], + ['packed_5fdmat2x4',['packed_dmat2x4',['../a00303.html#gae398fc3156f51d3684b08f62c1a5a6d4',1,'glm']]], + ['packed_5fdmat3',['packed_dmat3',['../a00303.html#ga03dfc90d539cc87ea3a15a9caa5d2245',1,'glm']]], + ['packed_5fdmat3x2',['packed_dmat3x2',['../a00303.html#gae36de20a4c0e0b1444b7903ae811d94e',1,'glm']]], + ['packed_5fdmat3x3',['packed_dmat3x3',['../a00303.html#gab9b909f1392d86854334350efcae85f5',1,'glm']]], + ['packed_5fdmat3x4',['packed_dmat3x4',['../a00303.html#ga199131fd279c92c2ac12df6d978f1dd6',1,'glm']]], + ['packed_5fdmat4',['packed_dmat4',['../a00303.html#gada980a3485640aa8151f368f17ad3086',1,'glm']]], + ['packed_5fdmat4x2',['packed_dmat4x2',['../a00303.html#ga6dc65249730698d3cc9ac5d7e1bc4d72',1,'glm']]], + ['packed_5fdmat4x3',['packed_dmat4x3',['../a00303.html#gadf202aaa9ed71c09f9bbe347e43f8764',1,'glm']]], + ['packed_5fdmat4x4',['packed_dmat4x4',['../a00303.html#gae20617435a6d042d7c38da2badd64a09',1,'glm']]], + ['packed_5fdvec1',['packed_dvec1',['../a00303.html#ga532f0c940649b1ee303acd572fc35531',1,'glm']]], + ['packed_5fdvec2',['packed_dvec2',['../a00303.html#ga5c194b11fbda636f2ab20c3bd0079196',1,'glm']]], + ['packed_5fdvec3',['packed_dvec3',['../a00303.html#ga0581ea552d86b2b5de7a2804bed80e72',1,'glm']]], + ['packed_5fdvec4',['packed_dvec4',['../a00303.html#gae8a9b181f9dc813ad6e125a52b14b935',1,'glm']]], + ['packed_5fhighp_5fbvec1',['packed_highp_bvec1',['../a00303.html#ga439e97795314b81cd15abd4e5c2e6e7a',1,'glm']]], + ['packed_5fhighp_5fbvec2',['packed_highp_bvec2',['../a00303.html#gad791d671f4fcf1ed1ea41f752916b70a',1,'glm']]], + ['packed_5fhighp_5fbvec3',['packed_highp_bvec3',['../a00303.html#ga6a5a3250b57dfadc66735bc72911437f',1,'glm']]], + ['packed_5fhighp_5fbvec4',['packed_highp_bvec4',['../a00303.html#ga09f517d88b996ef1b2f42fd54222b82d',1,'glm']]], + ['packed_5fhighp_5fdmat2',['packed_highp_dmat2',['../a00303.html#gae29686632fd05efac0675d9a6370d77b',1,'glm']]], + ['packed_5fhighp_5fdmat2x2',['packed_highp_dmat2x2',['../a00303.html#ga22bd6382b16052e301edbfc031b9f37a',1,'glm']]], + ['packed_5fhighp_5fdmat2x3',['packed_highp_dmat2x3',['../a00303.html#ga999d82719696d4c59f4d236dd08f273d',1,'glm']]], + ['packed_5fhighp_5fdmat2x4',['packed_highp_dmat2x4',['../a00303.html#ga6998ac2a8d7fe456b651a6336ed26bb0',1,'glm']]], + ['packed_5fhighp_5fdmat3',['packed_highp_dmat3',['../a00303.html#gadac7c040c4810dd52b36fcd09d097400',1,'glm']]], + ['packed_5fhighp_5fdmat3x2',['packed_highp_dmat3x2',['../a00303.html#gab462744977beb85fb5c782bc2eea7b15',1,'glm']]], + ['packed_5fhighp_5fdmat3x3',['packed_highp_dmat3x3',['../a00303.html#ga49e5a709d098523823b2f824e48672a6',1,'glm']]], + ['packed_5fhighp_5fdmat3x4',['packed_highp_dmat3x4',['../a00303.html#ga2c67b3b0adab71c8680c3d819f1fa9b7',1,'glm']]], + ['packed_5fhighp_5fdmat4',['packed_highp_dmat4',['../a00303.html#ga6718822cd7af005a9b5bd6ee282f6ba6',1,'glm']]], + ['packed_5fhighp_5fdmat4x2',['packed_highp_dmat4x2',['../a00303.html#ga12e39e797fb724a5b51fcbea2513a7da',1,'glm']]], + ['packed_5fhighp_5fdmat4x3',['packed_highp_dmat4x3',['../a00303.html#ga79c2e9f82e67963c1ecad0ad6d0ec72e',1,'glm']]], + ['packed_5fhighp_5fdmat4x4',['packed_highp_dmat4x4',['../a00303.html#ga2df58e03e5afded28707b4f7d077afb4',1,'glm']]], + ['packed_5fhighp_5fdvec1',['packed_highp_dvec1',['../a00303.html#gab472b2d917b5e6efd76e8c7dbfbbf9f1',1,'glm']]], + ['packed_5fhighp_5fdvec2',['packed_highp_dvec2',['../a00303.html#ga5b2dc48fa19b684d207d69c6b145eb63',1,'glm']]], + ['packed_5fhighp_5fdvec3',['packed_highp_dvec3',['../a00303.html#gaaac6b356ef00154da41aaae7d1549193',1,'glm']]], + ['packed_5fhighp_5fdvec4',['packed_highp_dvec4',['../a00303.html#ga81b5368fe485e2630aa9b44832d592e7',1,'glm']]], + ['packed_5fhighp_5fivec1',['packed_highp_ivec1',['../a00303.html#ga7245acc887a5438f46fd85fdf076bb3b',1,'glm']]], + ['packed_5fhighp_5fivec2',['packed_highp_ivec2',['../a00303.html#ga54f368ec6b514a5aa4f28d40e6f93ef7',1,'glm']]], + ['packed_5fhighp_5fivec3',['packed_highp_ivec3',['../a00303.html#ga865a9c7bb22434b1b8c5ac31e164b628',1,'glm']]], + ['packed_5fhighp_5fivec4',['packed_highp_ivec4',['../a00303.html#gad6f1b4e3a51c2c051814b60d5d1b8895',1,'glm']]], + ['packed_5fhighp_5fmat2',['packed_highp_mat2',['../a00303.html#ga2f2d913d8cca2f935b2522964408c0b2',1,'glm']]], + ['packed_5fhighp_5fmat2x2',['packed_highp_mat2x2',['../a00303.html#ga245c12d2daf67feecaa2d3277c8f6661',1,'glm']]], + ['packed_5fhighp_5fmat2x3',['packed_highp_mat2x3',['../a00303.html#ga069cc8892aadae144c00f35297617d44',1,'glm']]], + ['packed_5fhighp_5fmat2x4',['packed_highp_mat2x4',['../a00303.html#ga6904d09b62141d09712b76983892f95b',1,'glm']]], + ['packed_5fhighp_5fmat3',['packed_highp_mat3',['../a00303.html#gabdd5fbffe8b8b8a7b33523f25b120dbe',1,'glm']]], + ['packed_5fhighp_5fmat3x2',['packed_highp_mat3x2',['../a00303.html#ga2624719cb251d8de8cad1beaefc3a3f9',1,'glm']]], + ['packed_5fhighp_5fmat3x3',['packed_highp_mat3x3',['../a00303.html#gaf2e07527d678440bf0c20adbeb9177c5',1,'glm']]], + ['packed_5fhighp_5fmat3x4',['packed_highp_mat3x4',['../a00303.html#ga72102fa6ac2445aa3bb203128ad52449',1,'glm']]], + ['packed_5fhighp_5fmat4',['packed_highp_mat4',['../a00303.html#ga253e8379b08d2dc6fe2800b2fb913203',1,'glm']]], + ['packed_5fhighp_5fmat4x2',['packed_highp_mat4x2',['../a00303.html#gae389c2071cf3cdb33e7812c6fd156710',1,'glm']]], + ['packed_5fhighp_5fmat4x3',['packed_highp_mat4x3',['../a00303.html#ga4584f64394bd7123b7a8534741e4916c',1,'glm']]], + ['packed_5fhighp_5fmat4x4',['packed_highp_mat4x4',['../a00303.html#ga0149fe15668925147e07c94fd2c2d6ae',1,'glm']]], + ['packed_5fhighp_5fuvec1',['packed_highp_uvec1',['../a00303.html#ga8c32b53f628a3616aa5061e58d66fe74',1,'glm']]], + ['packed_5fhighp_5fuvec2',['packed_highp_uvec2',['../a00303.html#gab704d4fb15f6f96d70e363d5db7060cd',1,'glm']]], + ['packed_5fhighp_5fuvec3',['packed_highp_uvec3',['../a00303.html#ga0b570da473fec4619db5aa0dce5133b0',1,'glm']]], + ['packed_5fhighp_5fuvec4',['packed_highp_uvec4',['../a00303.html#gaa582f38c82aef61dea7aaedf15bb06a6',1,'glm']]], + ['packed_5fhighp_5fvec1',['packed_highp_vec1',['../a00303.html#ga56473759d2702ee19ab7f91d0017fa70',1,'glm']]], + ['packed_5fhighp_5fvec2',['packed_highp_vec2',['../a00303.html#ga6b8b9475e7c3b16aed13edbc460bbc4d',1,'glm']]], + ['packed_5fhighp_5fvec3',['packed_highp_vec3',['../a00303.html#ga3815661df0e2de79beff8168c09adf1e',1,'glm']]], + ['packed_5fhighp_5fvec4',['packed_highp_vec4',['../a00303.html#ga4015f36bf5a5adb6ac5d45beed959867',1,'glm']]], + ['packed_5fivec1',['packed_ivec1',['../a00303.html#ga11581a06fc7bf941fa4d4b6aca29812c',1,'glm']]], + ['packed_5fivec2',['packed_ivec2',['../a00303.html#ga1fe4c5f56b8087d773aa90dc88a257a7',1,'glm']]], + ['packed_5fivec3',['packed_ivec3',['../a00303.html#gae157682a7847161787951ba1db4cf325',1,'glm']]], + ['packed_5fivec4',['packed_ivec4',['../a00303.html#gac228b70372abd561340d5f926a7c1778',1,'glm']]], + ['packed_5flowp_5fbvec1',['packed_lowp_bvec1',['../a00303.html#gae3c8750f53259ece334d3aa3b3649a40',1,'glm']]], + ['packed_5flowp_5fbvec2',['packed_lowp_bvec2',['../a00303.html#gac969befedbda69eb78d4e23f751fdbee',1,'glm']]], + ['packed_5flowp_5fbvec3',['packed_lowp_bvec3',['../a00303.html#ga7c20adbe1409e3fe4544677a7f6fe954',1,'glm']]], + ['packed_5flowp_5fbvec4',['packed_lowp_bvec4',['../a00303.html#gae473587cff3092edc0877fc691c26a0b',1,'glm']]], + ['packed_5flowp_5fdmat2',['packed_lowp_dmat2',['../a00303.html#gac93f9b1a35b9de4f456b9f2dfeaf1097',1,'glm']]], + ['packed_5flowp_5fdmat2x2',['packed_lowp_dmat2x2',['../a00303.html#gaeeaff6c132ec91ebd21da3a2399548ea',1,'glm']]], + ['packed_5flowp_5fdmat2x3',['packed_lowp_dmat2x3',['../a00303.html#ga2ccdcd4846775cbe4f9d12e71d55b5d2',1,'glm']]], + ['packed_5flowp_5fdmat2x4',['packed_lowp_dmat2x4',['../a00303.html#gac870c47d2d9d48503f6c9ee3baec8ce1',1,'glm']]], + ['packed_5flowp_5fdmat3',['packed_lowp_dmat3',['../a00303.html#ga3894a059eeaacec8791c25de398d9955',1,'glm']]], + ['packed_5flowp_5fdmat3x2',['packed_lowp_dmat3x2',['../a00303.html#ga23ec236950f5859f59197663266b535d',1,'glm']]], + ['packed_5flowp_5fdmat3x3',['packed_lowp_dmat3x3',['../a00303.html#ga4a7c7d8c3a663d0ec2a858cbfa14e54c',1,'glm']]], + ['packed_5flowp_5fdmat3x4',['packed_lowp_dmat3x4',['../a00303.html#ga8fc0e66da83599071b7ec17510686cd9',1,'glm']]], + ['packed_5flowp_5fdmat4',['packed_lowp_dmat4',['../a00303.html#ga03e1edf5666c40affe39aee35c87956f',1,'glm']]], + ['packed_5flowp_5fdmat4x2',['packed_lowp_dmat4x2',['../a00303.html#ga39658fb13369db869d363684bd8399c0',1,'glm']]], + ['packed_5flowp_5fdmat4x3',['packed_lowp_dmat4x3',['../a00303.html#ga30b0351eebc18c6056101359bdd3a359',1,'glm']]], + ['packed_5flowp_5fdmat4x4',['packed_lowp_dmat4x4',['../a00303.html#ga0294d4c45151425c86a11deee7693c0e',1,'glm']]], + ['packed_5flowp_5fdvec1',['packed_lowp_dvec1',['../a00303.html#ga054050e9d4e78d81db0e6d1573b1c624',1,'glm']]], + ['packed_5flowp_5fdvec2',['packed_lowp_dvec2',['../a00303.html#gadc19938ddb204bfcb4d9ef35b1e2bf93',1,'glm']]], + ['packed_5flowp_5fdvec3',['packed_lowp_dvec3',['../a00303.html#ga9189210cabd6651a5e14a4c46fb20598',1,'glm']]], + ['packed_5flowp_5fdvec4',['packed_lowp_dvec4',['../a00303.html#ga262dafd0c001c3a38d1cc91d024ca738',1,'glm']]], + ['packed_5flowp_5fivec1',['packed_lowp_ivec1',['../a00303.html#gaf22b77f1cf3e73b8b1dddfe7f959357c',1,'glm']]], + ['packed_5flowp_5fivec2',['packed_lowp_ivec2',['../a00303.html#ga52635859f5ef660ab999d22c11b7867f',1,'glm']]], + ['packed_5flowp_5fivec3',['packed_lowp_ivec3',['../a00303.html#ga98c9d122a959e9f3ce10a5623c310f5d',1,'glm']]], + ['packed_5flowp_5fivec4',['packed_lowp_ivec4',['../a00303.html#ga931731b8ae3b54c7ecc221509dae96bc',1,'glm']]], + ['packed_5flowp_5fmat2',['packed_lowp_mat2',['../a00303.html#ga70dcb9ef0b24e832772a7405efa9669a',1,'glm']]], + ['packed_5flowp_5fmat2x2',['packed_lowp_mat2x2',['../a00303.html#gac70667c7642ec8d50245e6e6936a3927',1,'glm']]], + ['packed_5flowp_5fmat2x3',['packed_lowp_mat2x3',['../a00303.html#ga3e7df5a11e1be27bc29a4c0d3956f234',1,'glm']]], + ['packed_5flowp_5fmat2x4',['packed_lowp_mat2x4',['../a00303.html#gaea9c555e669dc56c45d95dcc75d59bf3',1,'glm']]], + ['packed_5flowp_5fmat3',['packed_lowp_mat3',['../a00303.html#ga0d22400969dd223465b2900fecfb4f53',1,'glm']]], + ['packed_5flowp_5fmat3x2',['packed_lowp_mat3x2',['../a00303.html#ga128cd52649621861635fab746df91735',1,'glm']]], + ['packed_5flowp_5fmat3x3',['packed_lowp_mat3x3',['../a00303.html#ga5adf1802c5375a9dfb1729691bedd94e',1,'glm']]], + ['packed_5flowp_5fmat3x4',['packed_lowp_mat3x4',['../a00303.html#ga92247ca09fa03c4013ba364f3a0fca7f',1,'glm']]], + ['packed_5flowp_5fmat4',['packed_lowp_mat4',['../a00303.html#ga2a1dd2387725a335413d4c4fee8609c4',1,'glm']]], + ['packed_5flowp_5fmat4x2',['packed_lowp_mat4x2',['../a00303.html#ga8f22607dcd090cd280071ccc689f4079',1,'glm']]], + ['packed_5flowp_5fmat4x3',['packed_lowp_mat4x3',['../a00303.html#ga7661d759d6ad218e132e3d051e7b2c6c',1,'glm']]], + ['packed_5flowp_5fmat4x4',['packed_lowp_mat4x4',['../a00303.html#ga776f18d1a6e7d399f05d386167dc60f5',1,'glm']]], + ['packed_5flowp_5fuvec1',['packed_lowp_uvec1',['../a00303.html#gaf111fed760ecce16cb1988807569bee5',1,'glm']]], + ['packed_5flowp_5fuvec2',['packed_lowp_uvec2',['../a00303.html#ga958210fe245a75b058325d367c951132',1,'glm']]], + ['packed_5flowp_5fuvec3',['packed_lowp_uvec3',['../a00303.html#ga576a3f8372197a56a79dee1c8280f485',1,'glm']]], + ['packed_5flowp_5fuvec4',['packed_lowp_uvec4',['../a00303.html#gafdd97922b4a2a42cd0c99a13877ff4da',1,'glm']]], + ['packed_5flowp_5fvec1',['packed_lowp_vec1',['../a00303.html#ga0a6198fe64166a6a61084d43c71518a9',1,'glm']]], + ['packed_5flowp_5fvec2',['packed_lowp_vec2',['../a00303.html#gafbf1c2cce307c5594b165819ed83bf5d',1,'glm']]], + ['packed_5flowp_5fvec3',['packed_lowp_vec3',['../a00303.html#ga3a30c137c1f8cce478c28eab0427a570',1,'glm']]], + ['packed_5flowp_5fvec4',['packed_lowp_vec4',['../a00303.html#ga3cc94fb8de80bbd8a4aa7a5b206d304a',1,'glm']]], + ['packed_5fmat2',['packed_mat2',['../a00303.html#gadd019b43fcf42e1590d45dddaa504a1a',1,'glm']]], + ['packed_5fmat2x2',['packed_mat2x2',['../a00303.html#ga51eaadcdc292c8750f746a5dc3e6c517',1,'glm']]], + ['packed_5fmat2x3',['packed_mat2x3',['../a00303.html#ga301b76a89b8a9625501ca58815017f20',1,'glm']]], + ['packed_5fmat2x4',['packed_mat2x4',['../a00303.html#gac401da1dd9177ad81d7618a2a5541e23',1,'glm']]], + ['packed_5fmat3',['packed_mat3',['../a00303.html#ga9bc12b0ab7be8448836711b77cc7b83a',1,'glm']]], + ['packed_5fmat3x2',['packed_mat3x2',['../a00303.html#ga134f0d99fbd2459c13cd9ebd056509fa',1,'glm']]], + ['packed_5fmat3x3',['packed_mat3x3',['../a00303.html#ga6c1dbe8cde9fbb231284b01f8aeaaa99',1,'glm']]], + ['packed_5fmat3x4',['packed_mat3x4',['../a00303.html#gad63515526cccfe88ffa8fe5ed64f95f8',1,'glm']]], + ['packed_5fmat4',['packed_mat4',['../a00303.html#ga2c139854e5b04cf08a957dee3b510441',1,'glm']]], + ['packed_5fmat4x2',['packed_mat4x2',['../a00303.html#ga379c1153f1339bdeaefd592bebf538e8',1,'glm']]], + ['packed_5fmat4x3',['packed_mat4x3',['../a00303.html#gab286466e19f7399c8d25089da9400d43',1,'glm']]], + ['packed_5fmat4x4',['packed_mat4x4',['../a00303.html#ga67e7102557d6067bb6ac00d4ad0e1374',1,'glm']]], + ['packed_5fmediump_5fbvec1',['packed_mediump_bvec1',['../a00303.html#ga5546d828d63010a8f9cf81161ad0275a',1,'glm']]], + ['packed_5fmediump_5fbvec2',['packed_mediump_bvec2',['../a00303.html#gab4c6414a59539e66a242ad4cf4b476b4',1,'glm']]], + ['packed_5fmediump_5fbvec3',['packed_mediump_bvec3',['../a00303.html#ga70147763edff3fe96b03a0b98d6339a2',1,'glm']]], + ['packed_5fmediump_5fbvec4',['packed_mediump_bvec4',['../a00303.html#ga7b1620f259595b9da47a6374fc44588a',1,'glm']]], + ['packed_5fmediump_5fdmat2',['packed_mediump_dmat2',['../a00303.html#ga9d60e32d3fcb51f817046cd881fdbf57',1,'glm']]], + ['packed_5fmediump_5fdmat2x2',['packed_mediump_dmat2x2',['../a00303.html#ga39e8bb9b70e5694964e8266a21ba534e',1,'glm']]], + ['packed_5fmediump_5fdmat2x3',['packed_mediump_dmat2x3',['../a00303.html#ga8897c6d9adb4140b1c3b0a07b8f0a430',1,'glm']]], + ['packed_5fmediump_5fdmat2x4',['packed_mediump_dmat2x4',['../a00303.html#gaaa4126969c765e7faa2ebf6951c22ffb',1,'glm']]], + ['packed_5fmediump_5fdmat3',['packed_mediump_dmat3',['../a00303.html#gaf969eb879c76a5f4576e4a1e10095cf6',1,'glm']]], + ['packed_5fmediump_5fdmat3x2',['packed_mediump_dmat3x2',['../a00303.html#ga86efe91cdaa2864c828a5d6d46356c6a',1,'glm']]], + ['packed_5fmediump_5fdmat3x3',['packed_mediump_dmat3x3',['../a00303.html#gaf85877d38d8cfbc21d59d939afd72375',1,'glm']]], + ['packed_5fmediump_5fdmat3x4',['packed_mediump_dmat3x4',['../a00303.html#gad5dcaf93df267bc3029174e430e0907f',1,'glm']]], + ['packed_5fmediump_5fdmat4',['packed_mediump_dmat4',['../a00303.html#ga4b0ee7996651ddd04eaa0c4cdbb66332',1,'glm']]], + ['packed_5fmediump_5fdmat4x2',['packed_mediump_dmat4x2',['../a00303.html#ga9a15514a0631f700de6312b9d5db3a73',1,'glm']]], + ['packed_5fmediump_5fdmat4x3',['packed_mediump_dmat4x3',['../a00303.html#gab5b36cc9caee1bb1c5178fe191bf5713',1,'glm']]], + ['packed_5fmediump_5fdmat4x4',['packed_mediump_dmat4x4',['../a00303.html#ga21e86cf2f6c126bacf31b8985db06bd4',1,'glm']]], + ['packed_5fmediump_5fdvec1',['packed_mediump_dvec1',['../a00303.html#ga8920e90ea9c01d9c97e604a938ce2cbd',1,'glm']]], + ['packed_5fmediump_5fdvec2',['packed_mediump_dvec2',['../a00303.html#ga0c754a783b6fcf80374c013371c4dae9',1,'glm']]], + ['packed_5fmediump_5fdvec3',['packed_mediump_dvec3',['../a00303.html#ga1f18ada6f7cdd8c46db33ba987280fc4',1,'glm']]], + ['packed_5fmediump_5fdvec4',['packed_mediump_dvec4',['../a00303.html#ga568b850f1116b667043533cf77826968',1,'glm']]], + ['packed_5fmediump_5fivec1',['packed_mediump_ivec1',['../a00303.html#ga09507ef020a49517a7bcd50438f05056',1,'glm']]], + ['packed_5fmediump_5fivec2',['packed_mediump_ivec2',['../a00303.html#gaaa891048dddef4627df33809ec726219',1,'glm']]], + ['packed_5fmediump_5fivec3',['packed_mediump_ivec3',['../a00303.html#ga06f26d54dca30994eb1fdadb8e69f4a2',1,'glm']]], + ['packed_5fmediump_5fivec4',['packed_mediump_ivec4',['../a00303.html#ga70130dc8ed9c966ec2a221ce586d45d8',1,'glm']]], + ['packed_5fmediump_5fmat2',['packed_mediump_mat2',['../a00303.html#ga43cd36d430c5187bfdca34a23cb41581',1,'glm']]], + ['packed_5fmediump_5fmat2x2',['packed_mediump_mat2x2',['../a00303.html#ga2d2a73e662759e301c22b8931ff6a526',1,'glm']]], + ['packed_5fmediump_5fmat2x3',['packed_mediump_mat2x3',['../a00303.html#ga99049db01faf1e95ed9fb875a47dffe2',1,'glm']]], + ['packed_5fmediump_5fmat2x4',['packed_mediump_mat2x4',['../a00303.html#gad43a240533f388ce0504b495d9df3d52',1,'glm']]], + ['packed_5fmediump_5fmat3',['packed_mediump_mat3',['../a00303.html#ga13a75c6cbd0a411f694bc82486cd1e55',1,'glm']]], + ['packed_5fmediump_5fmat3x2',['packed_mediump_mat3x2',['../a00303.html#ga04cfaf1421284df3c24ea0985dab24e7',1,'glm']]], + ['packed_5fmediump_5fmat3x3',['packed_mediump_mat3x3',['../a00303.html#gaaa9cea174d342dd9650e3436823cab23',1,'glm']]], + ['packed_5fmediump_5fmat3x4',['packed_mediump_mat3x4',['../a00303.html#gabc93a9560593bd32e099c908531305f5',1,'glm']]], + ['packed_5fmediump_5fmat4',['packed_mediump_mat4',['../a00303.html#gae89d72ffc149147f61df701bbc8755bf',1,'glm']]], + ['packed_5fmediump_5fmat4x2',['packed_mediump_mat4x2',['../a00303.html#gaa458f9d9e0934bae3097e2a373b24707',1,'glm']]], + ['packed_5fmediump_5fmat4x3',['packed_mediump_mat4x3',['../a00303.html#ga02ca6255394aa778abaeb0f733c4d2b6',1,'glm']]], + ['packed_5fmediump_5fmat4x4',['packed_mediump_mat4x4',['../a00303.html#gaf304f64c06743c1571401504d3f50259',1,'glm']]], + ['packed_5fmediump_5fuvec1',['packed_mediump_uvec1',['../a00303.html#ga2c29fb42bab9a4f9b66bc60b2e514a34',1,'glm']]], + ['packed_5fmediump_5fuvec2',['packed_mediump_uvec2',['../a00303.html#gaa1f95690a78dc12e39da32943243aeef',1,'glm']]], + ['packed_5fmediump_5fuvec3',['packed_mediump_uvec3',['../a00303.html#ga1ea2bbdbcb0a69242f6d884663c1b0ab',1,'glm']]], + ['packed_5fmediump_5fuvec4',['packed_mediump_uvec4',['../a00303.html#ga63a73be86a4f07ea7a7499ab0bfebe45',1,'glm']]], + ['packed_5fmediump_5fvec1',['packed_mediump_vec1',['../a00303.html#ga71d63cead1e113fca0bcdaaa33aad050',1,'glm']]], + ['packed_5fmediump_5fvec2',['packed_mediump_vec2',['../a00303.html#ga6844c6f4691d1bf67673240850430948',1,'glm']]], + ['packed_5fmediump_5fvec3',['packed_mediump_vec3',['../a00303.html#gab0eb771b708c5b2205d9b14dd1434fd8',1,'glm']]], + ['packed_5fmediump_5fvec4',['packed_mediump_vec4',['../a00303.html#ga68c9bb24f387b312bae6a0a68e74d95e',1,'glm']]], + ['packed_5fuvec1',['packed_uvec1',['../a00303.html#ga5621493caac01bdd22ab6be4416b0314',1,'glm']]], + ['packed_5fuvec2',['packed_uvec2',['../a00303.html#gabcc33efb4d5e83b8fe4706360e75b932',1,'glm']]], + ['packed_5fuvec3',['packed_uvec3',['../a00303.html#gab96804e99e3a72a35740fec690c79617',1,'glm']]], + ['packed_5fuvec4',['packed_uvec4',['../a00303.html#ga8e5d92e84ebdbe2480cf96bc17d6e2f2',1,'glm']]], + ['packed_5fvec1',['packed_vec1',['../a00303.html#ga14741e3d9da9ae83765389927f837331',1,'glm']]], + ['packed_5fvec2',['packed_vec2',['../a00303.html#ga3254defa5a8f0ae4b02b45fedba84a66',1,'glm']]], + ['packed_5fvec3',['packed_vec3',['../a00303.html#gaccccd090e185450caa28b5b63ad4e8f0',1,'glm']]], + ['packed_5fvec4',['packed_vec4',['../a00303.html#ga37a0e0bf653169b581c5eea3d547fa5d',1,'glm']]], + ['packf2x11_5f1x10',['packF2x11_1x10',['../a00298.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]], + ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00298.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]], + ['packhalf',['packHalf',['../a00298.html#ga2d8bbce673ebc04831c1fb05c47f5251',1,'glm']]], + ['packhalf1x16',['packHalf1x16',['../a00298.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]], + ['packhalf2x16',['packHalf2x16',['../a00372.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]], + ['packhalf4x16',['packHalf4x16',['../a00298.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]], + ['packi3x10_5f1x2',['packI3x10_1x2',['../a00298.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]], + ['packing_2ehpp',['packing.hpp',['../a00120.html',1,'']]], + ['packint2x16',['packInt2x16',['../a00298.html#ga3644163cf3a47bf1d4af1f4b03013a7e',1,'glm']]], + ['packint2x32',['packInt2x32',['../a00298.html#gad1e4c8a9e67d86b61a6eec86703a827a',1,'glm']]], + ['packint2x8',['packInt2x8',['../a00298.html#ga8884b1f2292414f36d59ef3be5d62914',1,'glm']]], + ['packint4x16',['packInt4x16',['../a00298.html#ga1989f093a27ae69cf9207145be48b3d7',1,'glm']]], + ['packint4x8',['packInt4x8',['../a00298.html#gaf2238401d5ce2aaade1a44ba19709072',1,'glm']]], + ['packrgbm',['packRGBM',['../a00298.html#ga0466daf4c90f76cc64b3f105ce727295',1,'glm']]], + ['packsnorm',['packSnorm',['../a00298.html#gaa54b5855a750d6aeb12c1c902f5939b8',1,'glm']]], + ['packsnorm1x16',['packSnorm1x16',['../a00298.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]], + ['packsnorm1x8',['packSnorm1x8',['../a00298.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]], + ['packsnorm2x16',['packSnorm2x16',['../a00372.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]], + ['packsnorm2x8',['packSnorm2x8',['../a00298.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]], + ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00298.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]], + ['packsnorm4x16',['packSnorm4x16',['../a00298.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]], + ['packsnorm4x8',['packSnorm4x8',['../a00372.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]], + ['packu3x10_5f1x2',['packU3x10_1x2',['../a00298.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]], + ['packuint2x16',['packUint2x16',['../a00298.html#ga5eecc9e8cbaf51ac6cf57501e670ee19',1,'glm']]], + ['packuint2x32',['packUint2x32',['../a00298.html#gaa864081097b86e83d8e4a4d79c382b22',1,'glm']]], + ['packuint2x8',['packUint2x8',['../a00298.html#ga3c3c9fb53ae7823b10fa083909357590',1,'glm']]], + ['packuint4x16',['packUint4x16',['../a00298.html#ga2ceb62cca347d8ace42ee90317a3f1f9',1,'glm']]], + ['packuint4x8',['packUint4x8',['../a00298.html#gaa0fe2f09aeb403cd66c1a062f58861ab',1,'glm']]], + ['packunorm',['packUnorm',['../a00298.html#gaccd3f27e6ba5163eb7aa9bc8ff96251a',1,'glm']]], + ['packunorm1x16',['packUnorm1x16',['../a00298.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]], + ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00298.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]], + ['packunorm1x8',['packUnorm1x8',['../a00298.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]], + ['packunorm2x16',['packUnorm2x16',['../a00372.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]], + ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00298.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]], + ['packunorm2x4',['packUnorm2x4',['../a00298.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]], + ['packunorm2x8',['packUnorm2x8',['../a00298.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]], + ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00298.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]], + ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00298.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]], + ['packunorm4x16',['packUnorm4x16',['../a00298.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]], + ['packunorm4x4',['packUnorm4x4',['../a00298.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]], + ['packunorm4x8',['packUnorm4x8',['../a00372.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]], + ['perlin',['perlin',['../a00297.html#ga1e043ce3b51510e9bc4469227cefc38a',1,'glm::perlin(vec< L, T, Q > const &p)'],['../a00297.html#gac270edc54c5fc52f5985a45f940bb103',1,'glm::perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)']]], + ['perp',['perp',['../a00349.html#ga264cfc4e180cf9b852e943b35089003c',1,'glm']]], + ['perpendicular_2ehpp',['perpendicular.hpp',['../a00121.html',1,'']]], + ['perspective',['perspective',['../a00243.html#ga747c8cf99458663dd7ad1bb3a2f07787',1,'glm']]], + ['perspectivefov',['perspectiveFov',['../a00243.html#gaebd02240fd36e85ad754f02ddd9a560d',1,'glm']]], + ['perspectivefovlh',['perspectiveFovLH',['../a00243.html#ga6aebe16c164bd8e52554cbe0304ef4aa',1,'glm']]], + ['perspectivefovlh_5fno',['perspectiveFovLH_NO',['../a00243.html#gad18a4495b77530317327e8d466488c1a',1,'glm']]], + ['perspectivefovlh_5fzo',['perspectiveFovLH_ZO',['../a00243.html#gabdd37014f529e25b2fa1b3ba06c10d5c',1,'glm']]], + ['perspectivefovno',['perspectiveFovNO',['../a00243.html#gaf30e7bd3b1387a6776433dd5383e6633',1,'glm']]], + ['perspectivefovrh',['perspectiveFovRH',['../a00243.html#gaf32bf563f28379c68554a44ee60c6a85',1,'glm']]], + ['perspectivefovrh_5fno',['perspectiveFovRH_NO',['../a00243.html#ga257b733ff883c9a065801023cf243eb2',1,'glm']]], + ['perspectivefovrh_5fzo',['perspectiveFovRH_ZO',['../a00243.html#ga7dcbb25331676f5b0795aced1a905c44',1,'glm']]], + ['perspectivefovzo',['perspectiveFovZO',['../a00243.html#ga4bc69fa1d1f95128430aa3d2a712390b',1,'glm']]], + ['perspectivelh',['perspectiveLH',['../a00243.html#ga9bd34951dc7022ac256fcb51d7f6fc2f',1,'glm']]], + ['perspectivelh_5fno',['perspectiveLH_NO',['../a00243.html#gaead4d049d1feab463b700b5641aa590e',1,'glm']]], + ['perspectivelh_5fzo',['perspectiveLH_ZO',['../a00243.html#gaca32af88c2719005c02817ad1142986c',1,'glm']]], + ['perspectiveno',['perspectiveNO',['../a00243.html#gaf497e6bca61e7c87088370b126a93758',1,'glm']]], + ['perspectiverh',['perspectiveRH',['../a00243.html#ga26b88757fbd90601b80768a7e1ad3aa1',1,'glm']]], + ['perspectiverh_5fno',['perspectiveRH_NO',['../a00243.html#gad1526cb2cbe796095284e8f34b01c582',1,'glm']]], + ['perspectiverh_5fzo',['perspectiveRH_ZO',['../a00243.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a',1,'glm']]], + ['perspectivezo',['perspectiveZO',['../a00243.html#gaa9dfba5c2322da54f72b1eb7c7c11b47',1,'glm']]], + ['pi',['pi',['../a00259.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]], + ['pickmatrix',['pickMatrix',['../a00245.html#gaf6b21eadb7ac2ecbbe258a9a233b4c82',1,'glm']]], + ['pitch',['pitch',['../a00299.html#ga7603e81477b46ddb448896909bc04928',1,'glm']]], + ['polar',['polar',['../a00350.html#gab83ac2c0e55b684b06b6c46c28b1590d',1,'glm']]], + ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00122.html',1,'']]], + ['pow',['pow',['../a00242.html#ga2254981952d4f333b900a6bf5167a6c4',1,'glm::pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)'],['../a00256.html#ga4975ffcacd312a8c0bbd046a76c5607e',1,'glm::pow(qua< T, Q > const &q, T y)'],['../a00330.html#ga465016030a81d513fa2fac881ebdaa83',1,'glm::pow(int x, uint y)'],['../a00330.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)']]], + ['pow2',['pow2',['../a00347.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]], + ['pow3',['pow3',['../a00347.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]], + ['pow4',['pow4',['../a00347.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]], + ['poweroftwoabove',['powerOfTwoAbove',['../a00309.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00309.html#ga2bbded187c5febfefc1e524ba31b3fab',1,'glm::powerOfTwoAbove(vec< L, T, Q > const &value)']]], + ['poweroftwobelow',['powerOfTwoBelow',['../a00309.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00309.html#gaf78ddcc4152c051b2a21e68fecb10980',1,'glm::powerOfTwoBelow(vec< L, T, Q > const &value)']]], + ['poweroftwonearest',['powerOfTwoNearest',['../a00309.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b',1,'glm::powerOfTwoNearest(vec< L, T, Q > const &value)']]], + ['prevmultiple',['prevMultiple',['../a00261.html#gada3bdd871ffe31f2d484aa668362f636',1,'glm::prevMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga7b3915a7cd3d50ff4976ab7a75a6880a',1,'glm::prevMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#ga51e04379e8aebbf83e2e5ab094578ee9',1,'glm::prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['prevpoweroftwo',['prevPowerOfTwo',['../a00261.html#gab21902a0e7e5a8451a7ad80333618727',1,'glm::prevPowerOfTwo(genIUType v)'],['../a00274.html#ga759db73f14d79f63612bd2398b577e7a',1,'glm::prevPowerOfTwo(vec< L, T, Q > const &v)']]], + ['proj',['proj',['../a00351.html#ga58384b7170801dd513de46f87c7fb00e',1,'glm']]], + ['proj2d',['proj2D',['../a00363.html#ga5b992a0cdc8298054edb68e228f0d93e',1,'glm']]], + ['proj3d',['proj3D',['../a00363.html#gaa2b7f4f15b98f697caede11bef50509e',1,'glm']]], + ['project',['project',['../a00245.html#gaf36e96033f456659e6705472a06b6e11',1,'glm']]], + ['projection_2ehpp',['projection.hpp',['../a00123.html',1,'']]], + ['projectno',['projectNO',['../a00245.html#ga05249751f48d14cb282e4979802b8111',1,'glm']]], + ['projectzo',['projectZO',['../a00245.html#ga77d157525063dec83a557186873ee080',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_e.html b/external/include/glm-0.9.9.8/doc/api/search/all_e.html index c49b9a669b..07d5259992 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_e.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_e.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_e.js b/external/include/glm-0.9.9.8/doc/api/search/all_e.js index f8aa3fd629..5c19185259 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_e.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_e.js @@ -1,31 +1,31 @@ -var searchData= -[ - ['qr_5fdecompose',['qr_decompose',['../a00336.html#gac62d7bfc8dc661e616620d70552cd566',1,'glm']]], - ['quadraticeasein',['quadraticEaseIn',['../a00318.html#gaf42089d35855695132d217cd902304a0',1,'glm']]], - ['quadraticeaseinout',['quadraticEaseInOut',['../a00318.html#ga03e8fc2d7945a4e63ee33b2159c14cea',1,'glm']]], - ['quadraticeaseout',['quadraticEaseOut',['../a00318.html#ga283717bc2d937547ad34ec0472234ee3',1,'glm']]], - ['quarter_5fpi',['quarter_pi',['../a00290.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]], - ['quarticeasein',['quarticEaseIn',['../a00318.html#ga808b41f14514f47dad5dcc69eb924afd',1,'glm']]], - ['quarticeaseinout',['quarticEaseInOut',['../a00318.html#ga6d000f852de12b197e154f234b20c505',1,'glm']]], - ['quarticeaseout',['quarticEaseOut',['../a00318.html#ga4dfb33fa7664aa888eb647999d329b98',1,'glm']]], - ['quat',['quat',['../a00252.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]], - ['quat_5fcast',['quat_cast',['../a00299.html#ga1108a4ab88ca87bac321454eea7702f8',1,'glm::quat_cast(mat< 3, 3, T, Q > const &x)'],['../a00299.html#ga4524810f07f72e8c7bdc7764fa11cb58',1,'glm::quat_cast(mat< 4, 4, T, Q > const &x)']]], - ['quat_5fidentity',['quat_identity',['../a00352.html#ga5ee8332600b2aca3a77622a28d857b55',1,'glm']]], - ['quaternion_5fcommon_2ehpp',['quaternion_common.hpp',['../a00127.html',1,'']]], - ['quaternion_5fdouble_2ehpp',['quaternion_double.hpp',['../a00128.html',1,'']]], - ['quaternion_5fdouble_5fprecision_2ehpp',['quaternion_double_precision.hpp',['../a00129.html',1,'']]], - ['quaternion_5fexponential_2ehpp',['quaternion_exponential.hpp',['../a00130.html',1,'']]], - ['quaternion_5ffloat_2ehpp',['quaternion_float.hpp',['../a00131.html',1,'']]], - ['quaternion_5ffloat_5fprecision_2ehpp',['quaternion_float_precision.hpp',['../a00132.html',1,'']]], - ['quaternion_5fgeometric_2ehpp',['quaternion_geometric.hpp',['../a00133.html',1,'']]], - ['quaternion_5frelational_2ehpp',['quaternion_relational.hpp',['../a00134.html',1,'']]], - ['quaternion_5ftransform_2ehpp',['quaternion_transform.hpp',['../a00135.html',1,'']]], - ['quaternion_5ftrigonometric_2ehpp',['quaternion_trigonometric.hpp',['../a00136.html',1,'']]], - ['quatlookat',['quatLookAt',['../a00299.html#gabe7fc5ec5feb41ab234d5d2b6254697f',1,'glm']]], - ['quatlookatlh',['quatLookAtLH',['../a00299.html#ga2da350c73411be3bb19441b226b81a74',1,'glm']]], - ['quatlookatrh',['quatLookAtRH',['../a00299.html#gaf6529ac8c04a57fcc35865b5c9437cc8',1,'glm']]], - ['quinticeasein',['quinticEaseIn',['../a00318.html#ga097579d8e087dcf48037588140a21640',1,'glm']]], - ['quinticeaseinout',['quinticEaseInOut',['../a00318.html#ga2a82d5c46df7e2d21cc0108eb7b83934',1,'glm']]], - ['quinticeaseout',['quinticEaseOut',['../a00318.html#ga7dbd4d5c8da3f5353121f615e7b591d7',1,'glm']]], - ['qword',['qword',['../a00354.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]] -]; +var searchData= +[ + ['qr_5fdecompose',['qr_decompose',['../a00336.html#gac62d7bfc8dc661e616620d70552cd566',1,'glm']]], + ['quadraticeasein',['quadraticEaseIn',['../a00318.html#gaf42089d35855695132d217cd902304a0',1,'glm']]], + ['quadraticeaseinout',['quadraticEaseInOut',['../a00318.html#ga03e8fc2d7945a4e63ee33b2159c14cea',1,'glm']]], + ['quadraticeaseout',['quadraticEaseOut',['../a00318.html#ga283717bc2d937547ad34ec0472234ee3',1,'glm']]], + ['quarter_5fpi',['quarter_pi',['../a00290.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]], + ['quarticeasein',['quarticEaseIn',['../a00318.html#ga808b41f14514f47dad5dcc69eb924afd',1,'glm']]], + ['quarticeaseinout',['quarticEaseInOut',['../a00318.html#ga6d000f852de12b197e154f234b20c505',1,'glm']]], + ['quarticeaseout',['quarticEaseOut',['../a00318.html#ga4dfb33fa7664aa888eb647999d329b98',1,'glm']]], + ['quat',['quat',['../a00252.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]], + ['quat_5fcast',['quat_cast',['../a00299.html#ga1108a4ab88ca87bac321454eea7702f8',1,'glm::quat_cast(mat< 3, 3, T, Q > const &x)'],['../a00299.html#ga4524810f07f72e8c7bdc7764fa11cb58',1,'glm::quat_cast(mat< 4, 4, T, Q > const &x)']]], + ['quat_5fidentity',['quat_identity',['../a00352.html#ga5ee8332600b2aca3a77622a28d857b55',1,'glm']]], + ['quaternion_5fcommon_2ehpp',['quaternion_common.hpp',['../a00127.html',1,'']]], + ['quaternion_5fdouble_2ehpp',['quaternion_double.hpp',['../a00128.html',1,'']]], + ['quaternion_5fdouble_5fprecision_2ehpp',['quaternion_double_precision.hpp',['../a00129.html',1,'']]], + ['quaternion_5fexponential_2ehpp',['quaternion_exponential.hpp',['../a00130.html',1,'']]], + ['quaternion_5ffloat_2ehpp',['quaternion_float.hpp',['../a00131.html',1,'']]], + ['quaternion_5ffloat_5fprecision_2ehpp',['quaternion_float_precision.hpp',['../a00132.html',1,'']]], + ['quaternion_5fgeometric_2ehpp',['quaternion_geometric.hpp',['../a00133.html',1,'']]], + ['quaternion_5frelational_2ehpp',['quaternion_relational.hpp',['../a00134.html',1,'']]], + ['quaternion_5ftransform_2ehpp',['quaternion_transform.hpp',['../a00135.html',1,'']]], + ['quaternion_5ftrigonometric_2ehpp',['quaternion_trigonometric.hpp',['../a00136.html',1,'']]], + ['quatlookat',['quatLookAt',['../a00299.html#gabe7fc5ec5feb41ab234d5d2b6254697f',1,'glm']]], + ['quatlookatlh',['quatLookAtLH',['../a00299.html#ga2da350c73411be3bb19441b226b81a74',1,'glm']]], + ['quatlookatrh',['quatLookAtRH',['../a00299.html#gaf6529ac8c04a57fcc35865b5c9437cc8',1,'glm']]], + ['quinticeasein',['quinticEaseIn',['../a00318.html#ga097579d8e087dcf48037588140a21640',1,'glm']]], + ['quinticeaseinout',['quinticEaseInOut',['../a00318.html#ga2a82d5c46df7e2d21cc0108eb7b83934',1,'glm']]], + ['quinticeaseout',['quinticEaseOut',['../a00318.html#ga7dbd4d5c8da3f5353121f615e7b591d7',1,'glm']]], + ['qword',['qword',['../a00354.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_f.html b/external/include/glm-0.9.9.8/doc/api/search/all_f.html index 9f212577bc..2213eb2089 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_f.html +++ b/external/include/glm-0.9.9.8/doc/api/search/all_f.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/all_f.js b/external/include/glm-0.9.9.8/doc/api/search/all_f.js index de24578792..5c57a49a85 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/all_f.js +++ b/external/include/glm-0.9.9.8/doc/api/search/all_f.js @@ -1,43 +1,43 @@ -var searchData= -[ - ['recommended_20extensions',['Recommended extensions',['../a00286.html',1,'']]], - ['radialgradient',['radialGradient',['../a00327.html#gaaecb1e93de4cbe0758b882812d4da294',1,'glm']]], - ['radians',['radians',['../a00373.html#ga6e1db4862c5e25afd553930e2fdd6a68',1,'glm']]], - ['random_2ehpp',['random.hpp',['../a00137.html',1,'']]], - ['range_2ehpp',['range.hpp',['../a00138.html',1,'']]], - ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00139.html',1,'']]], - ['reciprocal_2ehpp',['reciprocal.hpp',['../a00140.html',1,'']]], - ['reflect',['reflect',['../a00279.html#ga5631dd1d5618de5450b1ea3cf3e94905',1,'glm']]], - ['refract',['refract',['../a00279.html#ga01da3dff9e2ef6b9d4915c3047e22b74',1,'glm']]], - ['repeat',['repeat',['../a00369.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]], - ['rgb2ycocg',['rgb2YCoCg',['../a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5',1,'glm']]], - ['rgb2ycocgr',['rgb2YCoCgR',['../a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898',1,'glm']]], - ['rgbcolor',['rgbColor',['../a00312.html#ga5f9193be46f45f0655c05a0cdca006db',1,'glm']]], - ['righthanded',['rightHanded',['../a00328.html#ga99386a5ab5491871b947076e21699cc8',1,'glm']]], - ['roll',['roll',['../a00299.html#ga0cc5ad970d0b00829b139fe0fe5a1e13',1,'glm']]], - ['root_5ffive',['root_five',['../a00290.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]], - ['root_5fhalf_5fpi',['root_half_pi',['../a00290.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]], - ['root_5fln_5ffour',['root_ln_four',['../a00290.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]], - ['root_5fpi',['root_pi',['../a00290.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]], - ['root_5fthree',['root_three',['../a00290.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]], - ['root_5ftwo',['root_two',['../a00290.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]], - ['root_5ftwo_5fpi',['root_two_pi',['../a00290.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]], - ['rotate',['rotate',['../a00247.html#gaee9e865eaa9776370996da2940873fd4',1,'glm::rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)'],['../a00256.html#gabfc57de6d4d2e11970f54119c5ccf0f5',1,'glm::rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)'],['../a00341.html#gad5c84a4932a758f385a87098ce1b1660',1,'glm::rotate(mat< 3, 3, T, Q > const &m, T angle)'],['../a00352.html#ga07da6ef58646442efe93b0c273d73776',1,'glm::rotate(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#gafcb78dfff45fbf19a7fcb2bd03fbf196',1,'glm::rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)'],['../a00356.html#gab64a67b52ff4f86c3ba16595a5a25af6',1,'glm::rotate(vec< 2, T, Q > const &v, T const &angle)'],['../a00356.html#ga1ba501ef83d1a009a17ac774cc560f21',1,'glm::rotate(vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00356.html#ga1005f1267ed9c57faa3f24cf6873b961',1,'glm::rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00362.html#gaf599be4c0e9d99be1f9cddba79b6018b',1,'glm::rotate(T angle, vec< 3, T, Q > const &v)']]], - ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00141.html',1,'']]], - ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00142.html',1,'']]], - ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00355.html#ga50efd7ebca0f7a603bb3cc11e34c708d',1,'glm::rotateNormalizedAxis(mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)'],['../a00355.html#ga08f9c5411437d528019a25bfc01473d1',1,'glm::rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)']]], - ['rotatex',['rotateX',['../a00356.html#ga059fdbdba4cca35cdff172a9d0d0afc9',1,'glm::rotateX(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga4333b1ea8ebf1bd52bc3801a7617398a',1,'glm::rotateX(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotatey',['rotateY',['../a00356.html#gaebdc8b054ace27d9f62e054531c6f44d',1,'glm::rotateY(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga3ce3db0867b7f8efd878ee34f95a623b',1,'glm::rotateY(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotatez',['rotateZ',['../a00356.html#ga5a048838a03f6249acbacb4dbacf79c4',1,'glm::rotateZ(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga923b75c6448161053768822d880702e6',1,'glm::rotateZ(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotation',['rotation',['../a00352.html#ga03e61282831cc3f52cc76f72f52ad2c5',1,'glm']]], - ['round',['round',['../a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e',1,'glm']]], - ['round_2ehpp',['round.hpp',['../a00143.html',1,'']]], - ['roundeven',['roundEven',['../a00241.html#ga76b81785045a057989a84d99aeeb1578',1,'glm']]], - ['roundmultiple',['roundMultiple',['../a00302.html#gab892defcc9c0b0618df7251253dc0fbb',1,'glm::roundMultiple(genType v, genType Multiple)'],['../a00302.html#ga2f1a68332d761804c054460a612e3a4b',1,'glm::roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['roundpoweroftwo',['roundPowerOfTwo',['../a00302.html#gae4e1bf5d1cd179f59261a7342bdcafca',1,'glm::roundPowerOfTwo(genIUType v)'],['../a00302.html#ga258802a7d55c03c918f28cf4d241c4d0',1,'glm::roundPowerOfTwo(vec< L, T, Q > const &v)']]], - ['row',['row',['../a00293.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &m, length_t index)'],['../a00293.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &m, length_t index, typename genType::row_type const &x)']]], - ['rowmajor2',['rowMajor2',['../a00338.html#gaf5b1aee9e3eb1acf9d6c3c8be1e73bb8',1,'glm::rowMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gaf66c75ed69ca9e87462550708c2c6726',1,'glm::rowMajor2(mat< 2, 2, T, Q > const &m)']]], - ['rowmajor3',['rowMajor3',['../a00338.html#ga2ae46497493339f745754e40f438442e',1,'glm::rowMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#gad8a3a50ab47bbe8d36cdb81d90dfcf77',1,'glm::rowMajor3(mat< 3, 3, T, Q > const &m)']]], - ['rowmajor4',['rowMajor4',['../a00338.html#ga9636cd6bbe2c32a8d0c03ffb8b1ef284',1,'glm::rowMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gac92ad1c2acdf18d3eb7be45a32f9566b',1,'glm::rowMajor4(mat< 4, 4, T, Q > const &m)']]], - ['rq_5fdecompose',['rq_decompose',['../a00336.html#ga82874e2ebe891ba35ac21d9993873758',1,'glm']]] -]; +var searchData= +[ + ['recommended_20extensions',['Recommended extensions',['../a00286.html',1,'']]], + ['radialgradient',['radialGradient',['../a00327.html#gaaecb1e93de4cbe0758b882812d4da294',1,'glm']]], + ['radians',['radians',['../a00373.html#ga6e1db4862c5e25afd553930e2fdd6a68',1,'glm']]], + ['random_2ehpp',['random.hpp',['../a00137.html',1,'']]], + ['range_2ehpp',['range.hpp',['../a00138.html',1,'']]], + ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00139.html',1,'']]], + ['reciprocal_2ehpp',['reciprocal.hpp',['../a00140.html',1,'']]], + ['reflect',['reflect',['../a00279.html#ga5631dd1d5618de5450b1ea3cf3e94905',1,'glm']]], + ['refract',['refract',['../a00279.html#ga01da3dff9e2ef6b9d4915c3047e22b74',1,'glm']]], + ['repeat',['repeat',['../a00369.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]], + ['rgb2ycocg',['rgb2YCoCg',['../a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5',1,'glm']]], + ['rgb2ycocgr',['rgb2YCoCgR',['../a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898',1,'glm']]], + ['rgbcolor',['rgbColor',['../a00312.html#ga5f9193be46f45f0655c05a0cdca006db',1,'glm']]], + ['righthanded',['rightHanded',['../a00328.html#ga99386a5ab5491871b947076e21699cc8',1,'glm']]], + ['roll',['roll',['../a00299.html#ga0cc5ad970d0b00829b139fe0fe5a1e13',1,'glm']]], + ['root_5ffive',['root_five',['../a00290.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]], + ['root_5fhalf_5fpi',['root_half_pi',['../a00290.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]], + ['root_5fln_5ffour',['root_ln_four',['../a00290.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]], + ['root_5fpi',['root_pi',['../a00290.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]], + ['root_5fthree',['root_three',['../a00290.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]], + ['root_5ftwo',['root_two',['../a00290.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]], + ['root_5ftwo_5fpi',['root_two_pi',['../a00290.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]], + ['rotate',['rotate',['../a00247.html#gaee9e865eaa9776370996da2940873fd4',1,'glm::rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)'],['../a00256.html#gabfc57de6d4d2e11970f54119c5ccf0f5',1,'glm::rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)'],['../a00341.html#gad5c84a4932a758f385a87098ce1b1660',1,'glm::rotate(mat< 3, 3, T, Q > const &m, T angle)'],['../a00352.html#ga07da6ef58646442efe93b0c273d73776',1,'glm::rotate(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#gafcb78dfff45fbf19a7fcb2bd03fbf196',1,'glm::rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)'],['../a00356.html#gab64a67b52ff4f86c3ba16595a5a25af6',1,'glm::rotate(vec< 2, T, Q > const &v, T const &angle)'],['../a00356.html#ga1ba501ef83d1a009a17ac774cc560f21',1,'glm::rotate(vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00356.html#ga1005f1267ed9c57faa3f24cf6873b961',1,'glm::rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00362.html#gaf599be4c0e9d99be1f9cddba79b6018b',1,'glm::rotate(T angle, vec< 3, T, Q > const &v)']]], + ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00141.html',1,'']]], + ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00142.html',1,'']]], + ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00355.html#ga50efd7ebca0f7a603bb3cc11e34c708d',1,'glm::rotateNormalizedAxis(mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)'],['../a00355.html#ga08f9c5411437d528019a25bfc01473d1',1,'glm::rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)']]], + ['rotatex',['rotateX',['../a00356.html#ga059fdbdba4cca35cdff172a9d0d0afc9',1,'glm::rotateX(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga4333b1ea8ebf1bd52bc3801a7617398a',1,'glm::rotateX(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotatey',['rotateY',['../a00356.html#gaebdc8b054ace27d9f62e054531c6f44d',1,'glm::rotateY(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga3ce3db0867b7f8efd878ee34f95a623b',1,'glm::rotateY(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotatez',['rotateZ',['../a00356.html#ga5a048838a03f6249acbacb4dbacf79c4',1,'glm::rotateZ(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga923b75c6448161053768822d880702e6',1,'glm::rotateZ(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotation',['rotation',['../a00352.html#ga03e61282831cc3f52cc76f72f52ad2c5',1,'glm']]], + ['round',['round',['../a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e',1,'glm']]], + ['round_2ehpp',['round.hpp',['../a00143.html',1,'']]], + ['roundeven',['roundEven',['../a00241.html#ga76b81785045a057989a84d99aeeb1578',1,'glm']]], + ['roundmultiple',['roundMultiple',['../a00302.html#gab892defcc9c0b0618df7251253dc0fbb',1,'glm::roundMultiple(genType v, genType Multiple)'],['../a00302.html#ga2f1a68332d761804c054460a612e3a4b',1,'glm::roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['roundpoweroftwo',['roundPowerOfTwo',['../a00302.html#gae4e1bf5d1cd179f59261a7342bdcafca',1,'glm::roundPowerOfTwo(genIUType v)'],['../a00302.html#ga258802a7d55c03c918f28cf4d241c4d0',1,'glm::roundPowerOfTwo(vec< L, T, Q > const &v)']]], + ['row',['row',['../a00293.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &m, length_t index)'],['../a00293.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &m, length_t index, typename genType::row_type const &x)']]], + ['rowmajor2',['rowMajor2',['../a00338.html#gaf5b1aee9e3eb1acf9d6c3c8be1e73bb8',1,'glm::rowMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gaf66c75ed69ca9e87462550708c2c6726',1,'glm::rowMajor2(mat< 2, 2, T, Q > const &m)']]], + ['rowmajor3',['rowMajor3',['../a00338.html#ga2ae46497493339f745754e40f438442e',1,'glm::rowMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#gad8a3a50ab47bbe8d36cdb81d90dfcf77',1,'glm::rowMajor3(mat< 3, 3, T, Q > const &m)']]], + ['rowmajor4',['rowMajor4',['../a00338.html#ga9636cd6bbe2c32a8d0c03ffb8b1ef284',1,'glm::rowMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gac92ad1c2acdf18d3eb7be45a32f9566b',1,'glm::rowMajor4(mat< 4, 4, T, Q > const &m)']]], + ['rq_5fdecompose',['rq_decompose',['../a00336.html#ga82874e2ebe891ba35ac21d9993873758',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_0.html b/external/include/glm-0.9.9.8/doc/api/search/files_0.html index dc5601f547..a2ec540b41 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_0.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_0.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_0.js b/external/include/glm-0.9.9.8/doc/api/search/files_0.js index 7c99d02faa..982f2481d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_0.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]] -]; +var searchData= +[ + ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_1.html b/external/include/glm-0.9.9.8/doc/api/search/files_1.html index f16dd9afaf..9e974daa73 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_1.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_1.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_1.js b/external/include/glm-0.9.9.8/doc/api/search/files_1.js index 4467a2e838..dbaf52174f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_1.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_1.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]], - ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]] -]; +var searchData= +[ + ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]], + ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_10.html b/external/include/glm-0.9.9.8/doc/api/search/files_10.html index a9674f7ed0..940ba51780 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_10.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_10.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_10.js b/external/include/glm-0.9.9.8/doc/api/search/files_10.js index bbedc1fcdf..483e4e9cad 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_10.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_10.js @@ -1,13 +1,13 @@ -var searchData= -[ - ['scalar_5fcommon_2ehpp',['scalar_common.hpp',['../a00144.html',1,'']]], - ['scalar_5fconstants_2ehpp',['scalar_constants.hpp',['../a00145.html',1,'']]], - ['scalar_5fint_5fsized_2ehpp',['scalar_int_sized.hpp',['../a00146.html',1,'']]], - ['scalar_5finteger_2ehpp',['scalar_integer.hpp',['../a00147.html',1,'']]], - ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00148.html',1,'']]], - ['scalar_5fuint_5fsized_2ehpp',['scalar_uint_sized.hpp',['../a00151.html',1,'']]], - ['scalar_5fulp_2ehpp',['scalar_ulp.hpp',['../a00152.html',1,'']]], - ['spline_2ehpp',['spline.hpp',['../a00154.html',1,'']]], - ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00155.html',1,'']]], - ['string_5fcast_2ehpp',['string_cast.hpp',['../a00156.html',1,'']]] -]; +var searchData= +[ + ['scalar_5fcommon_2ehpp',['scalar_common.hpp',['../a00144.html',1,'']]], + ['scalar_5fconstants_2ehpp',['scalar_constants.hpp',['../a00145.html',1,'']]], + ['scalar_5fint_5fsized_2ehpp',['scalar_int_sized.hpp',['../a00146.html',1,'']]], + ['scalar_5finteger_2ehpp',['scalar_integer.hpp',['../a00147.html',1,'']]], + ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00148.html',1,'']]], + ['scalar_5fuint_5fsized_2ehpp',['scalar_uint_sized.hpp',['../a00151.html',1,'']]], + ['scalar_5fulp_2ehpp',['scalar_ulp.hpp',['../a00152.html',1,'']]], + ['spline_2ehpp',['spline.hpp',['../a00154.html',1,'']]], + ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00155.html',1,'']]], + ['string_5fcast_2ehpp',['string_cast.hpp',['../a00156.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_11.html b/external/include/glm-0.9.9.8/doc/api/search/files_11.html index 4204877f30..f00dc5e184 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_11.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_11.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_11.js b/external/include/glm-0.9.9.8/doc/api/search/files_11.js index aae306d28e..ca073366c7 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_11.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_11.js @@ -1,24 +1,24 @@ -var searchData= -[ - ['texture_2ehpp',['texture.hpp',['../a00157.html',1,'']]], - ['transform_2ehpp',['transform.hpp',['../a00158.html',1,'']]], - ['transform2_2ehpp',['transform2.hpp',['../a00159.html',1,'']]], - ['trigonometric_2ehpp',['trigonometric.hpp',['../a00160.html',1,'']]], - ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00165.html',1,'']]], - ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00166.html',1,'']]], - ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00167.html',1,'']]], - ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00168.html',1,'']]], - ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00169.html',1,'']]], - ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00170.html',1,'']]], - ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00171.html',1,'']]], - ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00172.html',1,'']]], - ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00173.html',1,'']]], - ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00174.html',1,'']]], - ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00175.html',1,'']]], - ['type_5fquat_2ehpp',['type_quat.hpp',['../a00176.html',1,'']]], - ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00177.html',1,'']]], - ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00178.html',1,'']]], - ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00179.html',1,'']]], - ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00180.html',1,'']]], - ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00181.html',1,'']]] -]; +var searchData= +[ + ['texture_2ehpp',['texture.hpp',['../a00157.html',1,'']]], + ['transform_2ehpp',['transform.hpp',['../a00158.html',1,'']]], + ['transform2_2ehpp',['transform2.hpp',['../a00159.html',1,'']]], + ['trigonometric_2ehpp',['trigonometric.hpp',['../a00160.html',1,'']]], + ['type_5fmat2x2_2ehpp',['type_mat2x2.hpp',['../a00165.html',1,'']]], + ['type_5fmat2x3_2ehpp',['type_mat2x3.hpp',['../a00166.html',1,'']]], + ['type_5fmat2x4_2ehpp',['type_mat2x4.hpp',['../a00167.html',1,'']]], + ['type_5fmat3x2_2ehpp',['type_mat3x2.hpp',['../a00168.html',1,'']]], + ['type_5fmat3x3_2ehpp',['type_mat3x3.hpp',['../a00169.html',1,'']]], + ['type_5fmat3x4_2ehpp',['type_mat3x4.hpp',['../a00170.html',1,'']]], + ['type_5fmat4x2_2ehpp',['type_mat4x2.hpp',['../a00171.html',1,'']]], + ['type_5fmat4x3_2ehpp',['type_mat4x3.hpp',['../a00172.html',1,'']]], + ['type_5fmat4x4_2ehpp',['type_mat4x4.hpp',['../a00173.html',1,'']]], + ['type_5fprecision_2ehpp',['type_precision.hpp',['../a00174.html',1,'']]], + ['type_5fptr_2ehpp',['type_ptr.hpp',['../a00175.html',1,'']]], + ['type_5fquat_2ehpp',['type_quat.hpp',['../a00176.html',1,'']]], + ['type_5ftrait_2ehpp',['type_trait.hpp',['../a00177.html',1,'']]], + ['type_5fvec1_2ehpp',['type_vec1.hpp',['../a00178.html',1,'']]], + ['type_5fvec2_2ehpp',['type_vec2.hpp',['../a00179.html',1,'']]], + ['type_5fvec3_2ehpp',['type_vec3.hpp',['../a00180.html',1,'']]], + ['type_5fvec4_2ehpp',['type_vec4.hpp',['../a00181.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_12.html b/external/include/glm-0.9.9.8/doc/api/search/files_12.html index 7d3875a945..7f023c9122 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_12.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_12.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_12.js b/external/include/glm-0.9.9.8/doc/api/search/files_12.js index db4d2ce4a3..b5cd4a3b59 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_12.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_12.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['ulp_2ehpp',['ulp.hpp',['../a00182.html',1,'']]] -]; +var searchData= +[ + ['ulp_2ehpp',['ulp.hpp',['../a00182.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_13.html b/external/include/glm-0.9.9.8/doc/api/search/files_13.html index aad0eb004f..dc6bd8a96f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_13.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_13.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_13.js b/external/include/glm-0.9.9.8/doc/api/search/files_13.js index 5828f47f25..ffefcf3cd0 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_13.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_13.js @@ -1,54 +1,54 @@ -var searchData= -[ - ['vec1_2ehpp',['vec1.hpp',['../a00183.html',1,'']]], - ['vec2_2ehpp',['vec2.hpp',['../a00184.html',1,'']]], - ['vec3_2ehpp',['vec3.hpp',['../a00185.html',1,'']]], - ['vec4_2ehpp',['vec4.hpp',['../a00186.html',1,'']]], - ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00187.html',1,'']]], - ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00188.html',1,'']]], - ['vector_5fbool1_2ehpp',['vector_bool1.hpp',['../a00189.html',1,'']]], - ['vector_5fbool1_5fprecision_2ehpp',['vector_bool1_precision.hpp',['../a00190.html',1,'']]], - ['vector_5fbool2_2ehpp',['vector_bool2.hpp',['../a00191.html',1,'']]], - ['vector_5fbool2_5fprecision_2ehpp',['vector_bool2_precision.hpp',['../a00192.html',1,'']]], - ['vector_5fbool3_2ehpp',['vector_bool3.hpp',['../a00193.html',1,'']]], - ['vector_5fbool3_5fprecision_2ehpp',['vector_bool3_precision.hpp',['../a00194.html',1,'']]], - ['vector_5fbool4_2ehpp',['vector_bool4.hpp',['../a00195.html',1,'']]], - ['vector_5fbool4_5fprecision_2ehpp',['vector_bool4_precision.hpp',['../a00196.html',1,'']]], - ['vector_5fcommon_2ehpp',['vector_common.hpp',['../a00197.html',1,'']]], - ['vector_5fdouble1_2ehpp',['vector_double1.hpp',['../a00198.html',1,'']]], - ['vector_5fdouble1_5fprecision_2ehpp',['vector_double1_precision.hpp',['../a00199.html',1,'']]], - ['vector_5fdouble2_2ehpp',['vector_double2.hpp',['../a00200.html',1,'']]], - ['vector_5fdouble2_5fprecision_2ehpp',['vector_double2_precision.hpp',['../a00201.html',1,'']]], - ['vector_5fdouble3_2ehpp',['vector_double3.hpp',['../a00202.html',1,'']]], - ['vector_5fdouble3_5fprecision_2ehpp',['vector_double3_precision.hpp',['../a00203.html',1,'']]], - ['vector_5fdouble4_2ehpp',['vector_double4.hpp',['../a00204.html',1,'']]], - ['vector_5fdouble4_5fprecision_2ehpp',['vector_double4_precision.hpp',['../a00205.html',1,'']]], - ['vector_5ffloat1_2ehpp',['vector_float1.hpp',['../a00206.html',1,'']]], - ['vector_5ffloat1_5fprecision_2ehpp',['vector_float1_precision.hpp',['../a00207.html',1,'']]], - ['vector_5ffloat2_2ehpp',['vector_float2.hpp',['../a00208.html',1,'']]], - ['vector_5ffloat2_5fprecision_2ehpp',['vector_float2_precision.hpp',['../a00209.html',1,'']]], - ['vector_5ffloat3_2ehpp',['vector_float3.hpp',['../a00210.html',1,'']]], - ['vector_5ffloat3_5fprecision_2ehpp',['vector_float3_precision.hpp',['../a00211.html',1,'']]], - ['vector_5ffloat4_2ehpp',['vector_float4.hpp',['../a00212.html',1,'']]], - ['vector_5ffloat4_5fprecision_2ehpp',['vector_float4_precision.hpp',['../a00213.html',1,'']]], - ['vector_5fint1_2ehpp',['vector_int1.hpp',['../a00214.html',1,'']]], - ['vector_5fint1_5fprecision_2ehpp',['vector_int1_precision.hpp',['../a00215.html',1,'']]], - ['vector_5fint2_2ehpp',['vector_int2.hpp',['../a00216.html',1,'']]], - ['vector_5fint2_5fprecision_2ehpp',['vector_int2_precision.hpp',['../a00217.html',1,'']]], - ['vector_5fint3_2ehpp',['vector_int3.hpp',['../a00218.html',1,'']]], - ['vector_5fint3_5fprecision_2ehpp',['vector_int3_precision.hpp',['../a00219.html',1,'']]], - ['vector_5fint4_2ehpp',['vector_int4.hpp',['../a00220.html',1,'']]], - ['vector_5fint4_5fprecision_2ehpp',['vector_int4_precision.hpp',['../a00221.html',1,'']]], - ['vector_5finteger_2ehpp',['vector_integer.hpp',['../a00222.html',1,'']]], - ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00223.html',1,'']]], - ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00225.html',1,'']]], - ['vector_5fuint1_2ehpp',['vector_uint1.hpp',['../a00226.html',1,'']]], - ['vector_5fuint1_5fprecision_2ehpp',['vector_uint1_precision.hpp',['../a00227.html',1,'']]], - ['vector_5fuint2_2ehpp',['vector_uint2.hpp',['../a00228.html',1,'']]], - ['vector_5fuint2_5fprecision_2ehpp',['vector_uint2_precision.hpp',['../a00229.html',1,'']]], - ['vector_5fuint3_2ehpp',['vector_uint3.hpp',['../a00230.html',1,'']]], - ['vector_5fuint3_5fprecision_2ehpp',['vector_uint3_precision.hpp',['../a00231.html',1,'']]], - ['vector_5fuint4_2ehpp',['vector_uint4.hpp',['../a00232.html',1,'']]], - ['vector_5fuint4_5fprecision_2ehpp',['vector_uint4_precision.hpp',['../a00233.html',1,'']]], - ['vector_5fulp_2ehpp',['vector_ulp.hpp',['../a00234.html',1,'']]] -]; +var searchData= +[ + ['vec1_2ehpp',['vec1.hpp',['../a00183.html',1,'']]], + ['vec2_2ehpp',['vec2.hpp',['../a00184.html',1,'']]], + ['vec3_2ehpp',['vec3.hpp',['../a00185.html',1,'']]], + ['vec4_2ehpp',['vec4.hpp',['../a00186.html',1,'']]], + ['vec_5fswizzle_2ehpp',['vec_swizzle.hpp',['../a00187.html',1,'']]], + ['vector_5fangle_2ehpp',['vector_angle.hpp',['../a00188.html',1,'']]], + ['vector_5fbool1_2ehpp',['vector_bool1.hpp',['../a00189.html',1,'']]], + ['vector_5fbool1_5fprecision_2ehpp',['vector_bool1_precision.hpp',['../a00190.html',1,'']]], + ['vector_5fbool2_2ehpp',['vector_bool2.hpp',['../a00191.html',1,'']]], + ['vector_5fbool2_5fprecision_2ehpp',['vector_bool2_precision.hpp',['../a00192.html',1,'']]], + ['vector_5fbool3_2ehpp',['vector_bool3.hpp',['../a00193.html',1,'']]], + ['vector_5fbool3_5fprecision_2ehpp',['vector_bool3_precision.hpp',['../a00194.html',1,'']]], + ['vector_5fbool4_2ehpp',['vector_bool4.hpp',['../a00195.html',1,'']]], + ['vector_5fbool4_5fprecision_2ehpp',['vector_bool4_precision.hpp',['../a00196.html',1,'']]], + ['vector_5fcommon_2ehpp',['vector_common.hpp',['../a00197.html',1,'']]], + ['vector_5fdouble1_2ehpp',['vector_double1.hpp',['../a00198.html',1,'']]], + ['vector_5fdouble1_5fprecision_2ehpp',['vector_double1_precision.hpp',['../a00199.html',1,'']]], + ['vector_5fdouble2_2ehpp',['vector_double2.hpp',['../a00200.html',1,'']]], + ['vector_5fdouble2_5fprecision_2ehpp',['vector_double2_precision.hpp',['../a00201.html',1,'']]], + ['vector_5fdouble3_2ehpp',['vector_double3.hpp',['../a00202.html',1,'']]], + ['vector_5fdouble3_5fprecision_2ehpp',['vector_double3_precision.hpp',['../a00203.html',1,'']]], + ['vector_5fdouble4_2ehpp',['vector_double4.hpp',['../a00204.html',1,'']]], + ['vector_5fdouble4_5fprecision_2ehpp',['vector_double4_precision.hpp',['../a00205.html',1,'']]], + ['vector_5ffloat1_2ehpp',['vector_float1.hpp',['../a00206.html',1,'']]], + ['vector_5ffloat1_5fprecision_2ehpp',['vector_float1_precision.hpp',['../a00207.html',1,'']]], + ['vector_5ffloat2_2ehpp',['vector_float2.hpp',['../a00208.html',1,'']]], + ['vector_5ffloat2_5fprecision_2ehpp',['vector_float2_precision.hpp',['../a00209.html',1,'']]], + ['vector_5ffloat3_2ehpp',['vector_float3.hpp',['../a00210.html',1,'']]], + ['vector_5ffloat3_5fprecision_2ehpp',['vector_float3_precision.hpp',['../a00211.html',1,'']]], + ['vector_5ffloat4_2ehpp',['vector_float4.hpp',['../a00212.html',1,'']]], + ['vector_5ffloat4_5fprecision_2ehpp',['vector_float4_precision.hpp',['../a00213.html',1,'']]], + ['vector_5fint1_2ehpp',['vector_int1.hpp',['../a00214.html',1,'']]], + ['vector_5fint1_5fprecision_2ehpp',['vector_int1_precision.hpp',['../a00215.html',1,'']]], + ['vector_5fint2_2ehpp',['vector_int2.hpp',['../a00216.html',1,'']]], + ['vector_5fint2_5fprecision_2ehpp',['vector_int2_precision.hpp',['../a00217.html',1,'']]], + ['vector_5fint3_2ehpp',['vector_int3.hpp',['../a00218.html',1,'']]], + ['vector_5fint3_5fprecision_2ehpp',['vector_int3_precision.hpp',['../a00219.html',1,'']]], + ['vector_5fint4_2ehpp',['vector_int4.hpp',['../a00220.html',1,'']]], + ['vector_5fint4_5fprecision_2ehpp',['vector_int4_precision.hpp',['../a00221.html',1,'']]], + ['vector_5finteger_2ehpp',['vector_integer.hpp',['../a00222.html',1,'']]], + ['vector_5fquery_2ehpp',['vector_query.hpp',['../a00223.html',1,'']]], + ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00225.html',1,'']]], + ['vector_5fuint1_2ehpp',['vector_uint1.hpp',['../a00226.html',1,'']]], + ['vector_5fuint1_5fprecision_2ehpp',['vector_uint1_precision.hpp',['../a00227.html',1,'']]], + ['vector_5fuint2_2ehpp',['vector_uint2.hpp',['../a00228.html',1,'']]], + ['vector_5fuint2_5fprecision_2ehpp',['vector_uint2_precision.hpp',['../a00229.html',1,'']]], + ['vector_5fuint3_2ehpp',['vector_uint3.hpp',['../a00230.html',1,'']]], + ['vector_5fuint3_5fprecision_2ehpp',['vector_uint3_precision.hpp',['../a00231.html',1,'']]], + ['vector_5fuint4_2ehpp',['vector_uint4.hpp',['../a00232.html',1,'']]], + ['vector_5fuint4_5fprecision_2ehpp',['vector_uint4_precision.hpp',['../a00233.html',1,'']]], + ['vector_5fulp_2ehpp',['vector_ulp.hpp',['../a00234.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_14.html b/external/include/glm-0.9.9.8/doc/api/search/files_14.html index c7774b6b79..6f6f1a2ebd 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_14.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_14.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_14.js b/external/include/glm-0.9.9.8/doc/api/search/files_14.js index 70a8d1af8c..459eecd84c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_14.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_14.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]] -]; +var searchData= +[ + ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_2.html b/external/include/glm-0.9.9.8/doc/api/search/files_2.html index 5711194d26..04348f907d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_2.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_2.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_2.js b/external/include/glm-0.9.9.8/doc/api/search/files_2.js index 446712a101..67e6bfee1c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_2.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_2.js @@ -1,10 +1,10 @@ -var searchData= -[ - ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]], - ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]], - ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]], - ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]], - ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]], - ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]], - ['constants_2ehpp',['constants.hpp',['../a00021.html',1,'']]] -]; +var searchData= +[ + ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]], + ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]], + ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]], + ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]], + ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]], + ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]], + ['constants_2ehpp',['constants.hpp',['../a00021.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_3.html b/external/include/glm-0.9.9.8/doc/api/search/files_3.html index 9e89d19291..77942003d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_3.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_3.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_3.js b/external/include/glm-0.9.9.8/doc/api/search/files_3.js index 15b8445d3c..86a16b804a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_3.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_3.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00022.html',1,'']]] -]; +var searchData= +[ + ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00022.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_4.html b/external/include/glm-0.9.9.8/doc/api/search/files_4.html index 9282ffb29f..e6bc2852df 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_4.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_4.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_4.js b/external/include/glm-0.9.9.8/doc/api/search/files_4.js index e23bb5cfd7..ac40ef7d66 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_4.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_4.js @@ -1,14 +1,14 @@ -var searchData= -[ - ['easing_2ehpp',['easing.hpp',['../a00023.html',1,'']]], - ['epsilon_2ehpp',['epsilon.hpp',['../a00024.html',1,'']]], - ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00025.html',1,'']]], - ['exponential_2ehpp',['exponential.hpp',['../a00026.html',1,'']]], - ['ext_2ehpp',['ext.hpp',['../a00027.html',1,'']]], - ['extend_2ehpp',['extend.hpp',['../a00028.html',1,'']]], - ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00029.html',1,'']]], - ['exterior_5fproduct_2ehpp',['exterior_product.hpp',['../a00030.html',1,'']]], - ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00108.html',1,'']]], - ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00149.html',1,'']]], - ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00224.html',1,'']]] -]; +var searchData= +[ + ['easing_2ehpp',['easing.hpp',['../a00023.html',1,'']]], + ['epsilon_2ehpp',['epsilon.hpp',['../a00024.html',1,'']]], + ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00025.html',1,'']]], + ['exponential_2ehpp',['exponential.hpp',['../a00026.html',1,'']]], + ['ext_2ehpp',['ext.hpp',['../a00027.html',1,'']]], + ['extend_2ehpp',['extend.hpp',['../a00028.html',1,'']]], + ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00029.html',1,'']]], + ['exterior_5fproduct_2ehpp',['exterior_product.hpp',['../a00030.html',1,'']]], + ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00108.html',1,'']]], + ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00149.html',1,'']]], + ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00224.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_5.html b/external/include/glm-0.9.9.8/doc/api/search/files_5.html index 4b0c188d4f..5ab2ed6a5b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_5.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_5.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_5.js b/external/include/glm-0.9.9.8/doc/api/search/files_5.js index 4bd93273fa..828375ff1a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_5.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_5.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00031.html',1,'']]], - ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00032.html',1,'']]], - ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00033.html',1,'']]], - ['functions_2ehpp',['functions.hpp',['../a00034.html',1,'']]] -]; +var searchData= +[ + ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00031.html',1,'']]], + ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00032.html',1,'']]], + ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00033.html',1,'']]], + ['functions_2ehpp',['functions.hpp',['../a00034.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_6.html b/external/include/glm-0.9.9.8/doc/api/search/files_6.html index 96e3e19301..9453495a2e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_6.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_6.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_6.js b/external/include/glm-0.9.9.8/doc/api/search/files_6.js index e980f50d14..4221be565b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_6.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_6.js @@ -1,18 +1,18 @@ -var searchData= -[ - ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]], - ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]], - ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]], - ['geometric_2ehpp',['geometric.hpp',['../a00036.html',1,'']]], - ['glm_2ehpp',['glm.hpp',['../a00037.html',1,'']]], - ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00038.html',1,'']]], - ['integer_2ehpp',['integer.hpp',['../a00042.html',1,'']]], - ['integer_2ehpp',['integer.hpp',['../a00041.html',1,'']]], - ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00109.html',1,'']]], - ['packing_2ehpp',['packing.hpp',['../a00119.html',1,'']]], - ['quaternion_2ehpp',['quaternion.hpp',['../a00125.html',1,'']]], - ['quaternion_2ehpp',['quaternion.hpp',['../a00126.html',1,'']]], - ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00150.html',1,'']]], - ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00162.html',1,'']]], - ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00161.html',1,'']]] -]; +var searchData= +[ + ['color_5fspace_2ehpp',['color_space.hpp',['../a00012.html',1,'']]], + ['color_5fspace_2ehpp',['color_space.hpp',['../a00013.html',1,'']]], + ['common_2ehpp',['common.hpp',['../a00016.html',1,'']]], + ['geometric_2ehpp',['geometric.hpp',['../a00036.html',1,'']]], + ['glm_2ehpp',['glm.hpp',['../a00037.html',1,'']]], + ['gradient_5fpaint_2ehpp',['gradient_paint.hpp',['../a00038.html',1,'']]], + ['integer_2ehpp',['integer.hpp',['../a00042.html',1,'']]], + ['integer_2ehpp',['integer.hpp',['../a00041.html',1,'']]], + ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00109.html',1,'']]], + ['packing_2ehpp',['packing.hpp',['../a00119.html',1,'']]], + ['quaternion_2ehpp',['quaternion.hpp',['../a00125.html',1,'']]], + ['quaternion_2ehpp',['quaternion.hpp',['../a00126.html',1,'']]], + ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00150.html',1,'']]], + ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00162.html',1,'']]], + ['type_5faligned_2ehpp',['type_aligned.hpp',['../a00161.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_7.html b/external/include/glm-0.9.9.8/doc/api/search/files_7.html index 16b930523a..d3f6533988 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_7.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_7.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_7.js b/external/include/glm-0.9.9.8/doc/api/search/files_7.js index 7b8753e5e8..4f23c6e541 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_7.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_7.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00039.html',1,'']]], - ['hash_2ehpp',['hash.hpp',['../a00040.html',1,'']]] -]; +var searchData= +[ + ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00039.html',1,'']]], + ['hash_2ehpp',['hash.hpp',['../a00040.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_8.html b/external/include/glm-0.9.9.8/doc/api/search/files_8.html index 05d447430f..ec56765fea 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_8.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_8.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_8.js b/external/include/glm-0.9.9.8/doc/api/search/files_8.js index e9e4f0b3b2..f3efa1d634 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_8.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_8.js @@ -1,6 +1,6 @@ -var searchData= -[ - ['integer_2ehpp',['integer.hpp',['../a00043.html',1,'']]], - ['intersect_2ehpp',['intersect.hpp',['../a00044.html',1,'']]], - ['io_2ehpp',['io.hpp',['../a00045.html',1,'']]] -]; +var searchData= +[ + ['integer_2ehpp',['integer.hpp',['../a00043.html',1,'']]], + ['intersect_2ehpp',['intersect.hpp',['../a00044.html',1,'']]], + ['io_2ehpp',['io.hpp',['../a00045.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_9.html b/external/include/glm-0.9.9.8/doc/api/search/files_9.html index b6856f239f..62a6c97a15 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_9.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_9.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_9.js b/external/include/glm-0.9.9.8/doc/api/search/files_9.js index 788082d246..70f5879187 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_9.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_9.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['log_5fbase_2ehpp',['log_base.hpp',['../a00046.html',1,'']]] -]; +var searchData= +[ + ['log_5fbase_2ehpp',['log_base.hpp',['../a00046.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_a.html b/external/include/glm-0.9.9.8/doc/api/search/files_a.html index 29ba141eba..d0b6fa8932 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_a.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_a.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_a.js b/external/include/glm-0.9.9.8/doc/api/search/files_a.js index 74b85ef696..e7ae0a311c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_a.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_a.js @@ -1,64 +1,64 @@ -var searchData= -[ - ['mat2x2_2ehpp',['mat2x2.hpp',['../a00048.html',1,'']]], - ['mat2x3_2ehpp',['mat2x3.hpp',['../a00049.html',1,'']]], - ['mat2x4_2ehpp',['mat2x4.hpp',['../a00050.html',1,'']]], - ['mat3x2_2ehpp',['mat3x2.hpp',['../a00051.html',1,'']]], - ['mat3x3_2ehpp',['mat3x3.hpp',['../a00052.html',1,'']]], - ['mat3x4_2ehpp',['mat3x4.hpp',['../a00053.html',1,'']]], - ['mat4x2_2ehpp',['mat4x2.hpp',['../a00054.html',1,'']]], - ['mat4x3_2ehpp',['mat4x3.hpp',['../a00055.html',1,'']]], - ['mat4x4_2ehpp',['mat4x4.hpp',['../a00056.html',1,'']]], - ['matrix_2ehpp',['matrix.hpp',['../a00057.html',1,'']]], - ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00058.html',1,'']]], - ['matrix_5fclip_5fspace_2ehpp',['matrix_clip_space.hpp',['../a00059.html',1,'']]], - ['matrix_5fcommon_2ehpp',['matrix_common.hpp',['../a00060.html',1,'']]], - ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00061.html',1,'']]], - ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00062.html',1,'']]], - ['matrix_5fdouble2x2_2ehpp',['matrix_double2x2.hpp',['../a00063.html',1,'']]], - ['matrix_5fdouble2x2_5fprecision_2ehpp',['matrix_double2x2_precision.hpp',['../a00064.html',1,'']]], - ['matrix_5fdouble2x3_2ehpp',['matrix_double2x3.hpp',['../a00065.html',1,'']]], - ['matrix_5fdouble2x3_5fprecision_2ehpp',['matrix_double2x3_precision.hpp',['../a00066.html',1,'']]], - ['matrix_5fdouble2x4_2ehpp',['matrix_double2x4.hpp',['../a00067.html',1,'']]], - ['matrix_5fdouble2x4_5fprecision_2ehpp',['matrix_double2x4_precision.hpp',['../a00068.html',1,'']]], - ['matrix_5fdouble3x2_2ehpp',['matrix_double3x2.hpp',['../a00069.html',1,'']]], - ['matrix_5fdouble3x2_5fprecision_2ehpp',['matrix_double3x2_precision.hpp',['../a00070.html',1,'']]], - ['matrix_5fdouble3x3_2ehpp',['matrix_double3x3.hpp',['../a00071.html',1,'']]], - ['matrix_5fdouble3x3_5fprecision_2ehpp',['matrix_double3x3_precision.hpp',['../a00072.html',1,'']]], - ['matrix_5fdouble3x4_2ehpp',['matrix_double3x4.hpp',['../a00073.html',1,'']]], - ['matrix_5fdouble3x4_5fprecision_2ehpp',['matrix_double3x4_precision.hpp',['../a00074.html',1,'']]], - ['matrix_5fdouble4x2_2ehpp',['matrix_double4x2.hpp',['../a00075.html',1,'']]], - ['matrix_5fdouble4x2_5fprecision_2ehpp',['matrix_double4x2_precision.hpp',['../a00076.html',1,'']]], - ['matrix_5fdouble4x3_2ehpp',['matrix_double4x3.hpp',['../a00077.html',1,'']]], - ['matrix_5fdouble4x3_5fprecision_2ehpp',['matrix_double4x3_precision.hpp',['../a00078.html',1,'']]], - ['matrix_5fdouble4x4_2ehpp',['matrix_double4x4.hpp',['../a00079.html',1,'']]], - ['matrix_5fdouble4x4_5fprecision_2ehpp',['matrix_double4x4_precision.hpp',['../a00080.html',1,'']]], - ['matrix_5ffactorisation_2ehpp',['matrix_factorisation.hpp',['../a00081.html',1,'']]], - ['matrix_5ffloat2x2_2ehpp',['matrix_float2x2.hpp',['../a00082.html',1,'']]], - ['matrix_5ffloat2x2_5fprecision_2ehpp',['matrix_float2x2_precision.hpp',['../a00083.html',1,'']]], - ['matrix_5ffloat2x3_2ehpp',['matrix_float2x3.hpp',['../a00084.html',1,'']]], - ['matrix_5ffloat2x3_5fprecision_2ehpp',['matrix_float2x3_precision.hpp',['../a00085.html',1,'']]], - ['matrix_5ffloat2x4_2ehpp',['matrix_float2x4.hpp',['../a00086.html',1,'']]], - ['matrix_5ffloat2x4_5fprecision_2ehpp',['matrix_float2x4_precision.hpp',['../a00087.html',1,'']]], - ['matrix_5ffloat3x2_2ehpp',['matrix_float3x2.hpp',['../a00088.html',1,'']]], - ['matrix_5ffloat3x2_5fprecision_2ehpp',['matrix_float3x2_precision.hpp',['../a00089.html',1,'']]], - ['matrix_5ffloat3x3_2ehpp',['matrix_float3x3.hpp',['../a00090.html',1,'']]], - ['matrix_5ffloat3x3_5fprecision_2ehpp',['matrix_float3x3_precision.hpp',['../a00091.html',1,'']]], - ['matrix_5ffloat3x4_2ehpp',['matrix_float3x4.hpp',['../a00092.html',1,'']]], - ['matrix_5ffloat3x4_5fprecision_2ehpp',['matrix_float3x4_precision.hpp',['../a00093.html',1,'']]], - ['matrix_5ffloat4x2_2ehpp',['matrix_float4x2.hpp',['../a00094.html',1,'']]], - ['matrix_5ffloat4x3_2ehpp',['matrix_float4x3.hpp',['../a00096.html',1,'']]], - ['matrix_5ffloat4x3_5fprecision_2ehpp',['matrix_float4x3_precision.hpp',['../a00097.html',1,'']]], - ['matrix_5ffloat4x4_2ehpp',['matrix_float4x4.hpp',['../a00098.html',1,'']]], - ['matrix_5ffloat4x4_5fprecision_2ehpp',['matrix_float4x4_precision.hpp',['../a00099.html',1,'']]], - ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00100.html',1,'']]], - ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00101.html',1,'']]], - ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00102.html',1,'']]], - ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00103.html',1,'']]], - ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00104.html',1,'']]], - ['matrix_5fprojection_2ehpp',['matrix_projection.hpp',['../a00105.html',1,'']]], - ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00106.html',1,'']]], - ['matrix_5frelational_2ehpp',['matrix_relational.hpp',['../a00107.html',1,'']]], - ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00110.html',1,'']]], - ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00111.html',1,'']]] -]; +var searchData= +[ + ['mat2x2_2ehpp',['mat2x2.hpp',['../a00048.html',1,'']]], + ['mat2x3_2ehpp',['mat2x3.hpp',['../a00049.html',1,'']]], + ['mat2x4_2ehpp',['mat2x4.hpp',['../a00050.html',1,'']]], + ['mat3x2_2ehpp',['mat3x2.hpp',['../a00051.html',1,'']]], + ['mat3x3_2ehpp',['mat3x3.hpp',['../a00052.html',1,'']]], + ['mat3x4_2ehpp',['mat3x4.hpp',['../a00053.html',1,'']]], + ['mat4x2_2ehpp',['mat4x2.hpp',['../a00054.html',1,'']]], + ['mat4x3_2ehpp',['mat4x3.hpp',['../a00055.html',1,'']]], + ['mat4x4_2ehpp',['mat4x4.hpp',['../a00056.html',1,'']]], + ['matrix_2ehpp',['matrix.hpp',['../a00057.html',1,'']]], + ['matrix_5faccess_2ehpp',['matrix_access.hpp',['../a00058.html',1,'']]], + ['matrix_5fclip_5fspace_2ehpp',['matrix_clip_space.hpp',['../a00059.html',1,'']]], + ['matrix_5fcommon_2ehpp',['matrix_common.hpp',['../a00060.html',1,'']]], + ['matrix_5fcross_5fproduct_2ehpp',['matrix_cross_product.hpp',['../a00061.html',1,'']]], + ['matrix_5fdecompose_2ehpp',['matrix_decompose.hpp',['../a00062.html',1,'']]], + ['matrix_5fdouble2x2_2ehpp',['matrix_double2x2.hpp',['../a00063.html',1,'']]], + ['matrix_5fdouble2x2_5fprecision_2ehpp',['matrix_double2x2_precision.hpp',['../a00064.html',1,'']]], + ['matrix_5fdouble2x3_2ehpp',['matrix_double2x3.hpp',['../a00065.html',1,'']]], + ['matrix_5fdouble2x3_5fprecision_2ehpp',['matrix_double2x3_precision.hpp',['../a00066.html',1,'']]], + ['matrix_5fdouble2x4_2ehpp',['matrix_double2x4.hpp',['../a00067.html',1,'']]], + ['matrix_5fdouble2x4_5fprecision_2ehpp',['matrix_double2x4_precision.hpp',['../a00068.html',1,'']]], + ['matrix_5fdouble3x2_2ehpp',['matrix_double3x2.hpp',['../a00069.html',1,'']]], + ['matrix_5fdouble3x2_5fprecision_2ehpp',['matrix_double3x2_precision.hpp',['../a00070.html',1,'']]], + ['matrix_5fdouble3x3_2ehpp',['matrix_double3x3.hpp',['../a00071.html',1,'']]], + ['matrix_5fdouble3x3_5fprecision_2ehpp',['matrix_double3x3_precision.hpp',['../a00072.html',1,'']]], + ['matrix_5fdouble3x4_2ehpp',['matrix_double3x4.hpp',['../a00073.html',1,'']]], + ['matrix_5fdouble3x4_5fprecision_2ehpp',['matrix_double3x4_precision.hpp',['../a00074.html',1,'']]], + ['matrix_5fdouble4x2_2ehpp',['matrix_double4x2.hpp',['../a00075.html',1,'']]], + ['matrix_5fdouble4x2_5fprecision_2ehpp',['matrix_double4x2_precision.hpp',['../a00076.html',1,'']]], + ['matrix_5fdouble4x3_2ehpp',['matrix_double4x3.hpp',['../a00077.html',1,'']]], + ['matrix_5fdouble4x3_5fprecision_2ehpp',['matrix_double4x3_precision.hpp',['../a00078.html',1,'']]], + ['matrix_5fdouble4x4_2ehpp',['matrix_double4x4.hpp',['../a00079.html',1,'']]], + ['matrix_5fdouble4x4_5fprecision_2ehpp',['matrix_double4x4_precision.hpp',['../a00080.html',1,'']]], + ['matrix_5ffactorisation_2ehpp',['matrix_factorisation.hpp',['../a00081.html',1,'']]], + ['matrix_5ffloat2x2_2ehpp',['matrix_float2x2.hpp',['../a00082.html',1,'']]], + ['matrix_5ffloat2x2_5fprecision_2ehpp',['matrix_float2x2_precision.hpp',['../a00083.html',1,'']]], + ['matrix_5ffloat2x3_2ehpp',['matrix_float2x3.hpp',['../a00084.html',1,'']]], + ['matrix_5ffloat2x3_5fprecision_2ehpp',['matrix_float2x3_precision.hpp',['../a00085.html',1,'']]], + ['matrix_5ffloat2x4_2ehpp',['matrix_float2x4.hpp',['../a00086.html',1,'']]], + ['matrix_5ffloat2x4_5fprecision_2ehpp',['matrix_float2x4_precision.hpp',['../a00087.html',1,'']]], + ['matrix_5ffloat3x2_2ehpp',['matrix_float3x2.hpp',['../a00088.html',1,'']]], + ['matrix_5ffloat3x2_5fprecision_2ehpp',['matrix_float3x2_precision.hpp',['../a00089.html',1,'']]], + ['matrix_5ffloat3x3_2ehpp',['matrix_float3x3.hpp',['../a00090.html',1,'']]], + ['matrix_5ffloat3x3_5fprecision_2ehpp',['matrix_float3x3_precision.hpp',['../a00091.html',1,'']]], + ['matrix_5ffloat3x4_2ehpp',['matrix_float3x4.hpp',['../a00092.html',1,'']]], + ['matrix_5ffloat3x4_5fprecision_2ehpp',['matrix_float3x4_precision.hpp',['../a00093.html',1,'']]], + ['matrix_5ffloat4x2_2ehpp',['matrix_float4x2.hpp',['../a00094.html',1,'']]], + ['matrix_5ffloat4x3_2ehpp',['matrix_float4x3.hpp',['../a00096.html',1,'']]], + ['matrix_5ffloat4x3_5fprecision_2ehpp',['matrix_float4x3_precision.hpp',['../a00097.html',1,'']]], + ['matrix_5ffloat4x4_2ehpp',['matrix_float4x4.hpp',['../a00098.html',1,'']]], + ['matrix_5ffloat4x4_5fprecision_2ehpp',['matrix_float4x4_precision.hpp',['../a00099.html',1,'']]], + ['matrix_5finteger_2ehpp',['matrix_integer.hpp',['../a00100.html',1,'']]], + ['matrix_5finterpolation_2ehpp',['matrix_interpolation.hpp',['../a00101.html',1,'']]], + ['matrix_5finverse_2ehpp',['matrix_inverse.hpp',['../a00102.html',1,'']]], + ['matrix_5fmajor_5fstorage_2ehpp',['matrix_major_storage.hpp',['../a00103.html',1,'']]], + ['matrix_5foperation_2ehpp',['matrix_operation.hpp',['../a00104.html',1,'']]], + ['matrix_5fprojection_2ehpp',['matrix_projection.hpp',['../a00105.html',1,'']]], + ['matrix_5fquery_2ehpp',['matrix_query.hpp',['../a00106.html',1,'']]], + ['matrix_5frelational_2ehpp',['matrix_relational.hpp',['../a00107.html',1,'']]], + ['matrix_5ftransform_5f2d_2ehpp',['matrix_transform_2d.hpp',['../a00110.html',1,'']]], + ['mixed_5fproduct_2ehpp',['mixed_product.hpp',['../a00111.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_b.html b/external/include/glm-0.9.9.8/doc/api/search/files_b.html index 9534001f4b..5d4f023113 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_b.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_b.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_b.js b/external/include/glm-0.9.9.8/doc/api/search/files_b.js index 4756edea3e..0ac9ed3fd7 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_b.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_b.js @@ -1,8 +1,8 @@ -var searchData= -[ - ['noise_2ehpp',['noise.hpp',['../a00112.html',1,'']]], - ['norm_2ehpp',['norm.hpp',['../a00113.html',1,'']]], - ['normal_2ehpp',['normal.hpp',['../a00114.html',1,'']]], - ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00115.html',1,'']]], - ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00116.html',1,'']]] -]; +var searchData= +[ + ['noise_2ehpp',['noise.hpp',['../a00112.html',1,'']]], + ['norm_2ehpp',['norm.hpp',['../a00113.html',1,'']]], + ['normal_2ehpp',['normal.hpp',['../a00114.html',1,'']]], + ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00115.html',1,'']]], + ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00116.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_c.html b/external/include/glm-0.9.9.8/doc/api/search/files_c.html index 54c25f0fca..888d5dfd4f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_c.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_c.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_c.js b/external/include/glm-0.9.9.8/doc/api/search/files_c.js index e617396a19..9f04be85e3 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_c.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_c.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00117.html',1,'']]], - ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00118.html',1,'']]] -]; +var searchData= +[ + ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00117.html',1,'']]], + ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00118.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_d.html b/external/include/glm-0.9.9.8/doc/api/search/files_d.html index a017662d7a..b4496e5aa4 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_d.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_d.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_d.js b/external/include/glm-0.9.9.8/doc/api/search/files_d.js index 62381a3d21..128bcb4b97 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_d.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_d.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['packing_2ehpp',['packing.hpp',['../a00120.html',1,'']]], - ['perpendicular_2ehpp',['perpendicular.hpp',['../a00121.html',1,'']]], - ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00122.html',1,'']]], - ['projection_2ehpp',['projection.hpp',['../a00123.html',1,'']]] -]; +var searchData= +[ + ['packing_2ehpp',['packing.hpp',['../a00120.html',1,'']]], + ['perpendicular_2ehpp',['perpendicular.hpp',['../a00121.html',1,'']]], + ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00122.html',1,'']]], + ['projection_2ehpp',['projection.hpp',['../a00123.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_e.html b/external/include/glm-0.9.9.8/doc/api/search/files_e.html index 7a2cce503b..52be6aaa34 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_e.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_e.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_e.js b/external/include/glm-0.9.9.8/doc/api/search/files_e.js index f917d37900..197e97a531 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_e.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_e.js @@ -1,13 +1,13 @@ -var searchData= -[ - ['quaternion_5fcommon_2ehpp',['quaternion_common.hpp',['../a00127.html',1,'']]], - ['quaternion_5fdouble_2ehpp',['quaternion_double.hpp',['../a00128.html',1,'']]], - ['quaternion_5fdouble_5fprecision_2ehpp',['quaternion_double_precision.hpp',['../a00129.html',1,'']]], - ['quaternion_5fexponential_2ehpp',['quaternion_exponential.hpp',['../a00130.html',1,'']]], - ['quaternion_5ffloat_2ehpp',['quaternion_float.hpp',['../a00131.html',1,'']]], - ['quaternion_5ffloat_5fprecision_2ehpp',['quaternion_float_precision.hpp',['../a00132.html',1,'']]], - ['quaternion_5fgeometric_2ehpp',['quaternion_geometric.hpp',['../a00133.html',1,'']]], - ['quaternion_5frelational_2ehpp',['quaternion_relational.hpp',['../a00134.html',1,'']]], - ['quaternion_5ftransform_2ehpp',['quaternion_transform.hpp',['../a00135.html',1,'']]], - ['quaternion_5ftrigonometric_2ehpp',['quaternion_trigonometric.hpp',['../a00136.html',1,'']]] -]; +var searchData= +[ + ['quaternion_5fcommon_2ehpp',['quaternion_common.hpp',['../a00127.html',1,'']]], + ['quaternion_5fdouble_2ehpp',['quaternion_double.hpp',['../a00128.html',1,'']]], + ['quaternion_5fdouble_5fprecision_2ehpp',['quaternion_double_precision.hpp',['../a00129.html',1,'']]], + ['quaternion_5fexponential_2ehpp',['quaternion_exponential.hpp',['../a00130.html',1,'']]], + ['quaternion_5ffloat_2ehpp',['quaternion_float.hpp',['../a00131.html',1,'']]], + ['quaternion_5ffloat_5fprecision_2ehpp',['quaternion_float_precision.hpp',['../a00132.html',1,'']]], + ['quaternion_5fgeometric_2ehpp',['quaternion_geometric.hpp',['../a00133.html',1,'']]], + ['quaternion_5frelational_2ehpp',['quaternion_relational.hpp',['../a00134.html',1,'']]], + ['quaternion_5ftransform_2ehpp',['quaternion_transform.hpp',['../a00135.html',1,'']]], + ['quaternion_5ftrigonometric_2ehpp',['quaternion_trigonometric.hpp',['../a00136.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_f.html b/external/include/glm-0.9.9.8/doc/api/search/files_f.html index fd6ca3ab54..3249d4250a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_f.html +++ b/external/include/glm-0.9.9.8/doc/api/search/files_f.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/files_f.js b/external/include/glm-0.9.9.8/doc/api/search/files_f.js index ef5c7726bf..d8f7ae1d59 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/files_f.js +++ b/external/include/glm-0.9.9.8/doc/api/search/files_f.js @@ -1,10 +1,10 @@ -var searchData= -[ - ['random_2ehpp',['random.hpp',['../a00137.html',1,'']]], - ['range_2ehpp',['range.hpp',['../a00138.html',1,'']]], - ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00139.html',1,'']]], - ['reciprocal_2ehpp',['reciprocal.hpp',['../a00140.html',1,'']]], - ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00141.html',1,'']]], - ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00142.html',1,'']]], - ['round_2ehpp',['round.hpp',['../a00143.html',1,'']]] -]; +var searchData= +[ + ['random_2ehpp',['random.hpp',['../a00137.html',1,'']]], + ['range_2ehpp',['range.hpp',['../a00138.html',1,'']]], + ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00139.html',1,'']]], + ['reciprocal_2ehpp',['reciprocal.hpp',['../a00140.html',1,'']]], + ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00141.html',1,'']]], + ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00142.html',1,'']]], + ['round_2ehpp',['round.hpp',['../a00143.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_0.html b/external/include/glm-0.9.9.8/doc/api/search/functions_0.html index c0da3f5f98..246d167210 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_0.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_0.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_0.js b/external/include/glm-0.9.9.8/doc/api/search/functions_0.js index b5c2f0bd70..f23832ad22 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_0.js @@ -1,31 +1,31 @@ -var searchData= -[ - ['abs',['abs',['../a00241.html#ga439e60a72eadecfeda2df5449c613a64',1,'glm::abs(genType x)'],['../a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6',1,'glm::abs(vec< L, T, Q > const &x)']]], - ['acos',['acos',['../a00373.html#gacc9b092df8257c68f19c9053703e2563',1,'glm']]], - ['acosh',['acosh',['../a00373.html#ga858f35dc66fd2688f20c52b5f25be76a',1,'glm']]], - ['acot',['acot',['../a00301.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]], - ['acoth',['acoth',['../a00301.html#gafaca98a7100170db8841f446282debfa',1,'glm']]], - ['acsc',['acsc',['../a00301.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]], - ['acsch',['acsch',['../a00301.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]], - ['adjugate',['adjugate',['../a00339.html#ga40a38402a30860af6e508fe76211e659',1,'glm::adjugate(mat< 2, 2, T, Q > const &m)'],['../a00339.html#gaddb09f7abc1a9c56a243d32ff3538be6',1,'glm::adjugate(mat< 3, 3, T, Q > const &m)'],['../a00339.html#ga9aaa7d1f40391b0b5cacccb60e104ba8',1,'glm::adjugate(mat< 4, 4, T, Q > const &m)']]], - ['affineinverse',['affineInverse',['../a00295.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]], - ['all',['all',['../a00374.html#ga87e53f50b679f5f95c5cb4780311b3dd',1,'glm']]], - ['angle',['angle',['../a00257.html#ga8aa248b31d5ade470c87304df5eb7bd8',1,'glm::angle(qua< T, Q > const &x)'],['../a00367.html#ga2e2917b4cb75ca3d043ac15ff88f14e1',1,'glm::angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['angleaxis',['angleAxis',['../a00257.html#ga5c0095cfcb218c75a4b79d7687950036',1,'glm']]], - ['any',['any',['../a00374.html#ga911b3f8e41459dd551ccb6d385d91061',1,'glm']]], - ['arecollinear',['areCollinear',['../a00368.html#ga13da4a787a2ff70e95d561fb19ff91b4',1,'glm']]], - ['areorthogonal',['areOrthogonal',['../a00368.html#gac7b95b3f798e3c293262b2bdaad47c57',1,'glm']]], - ['areorthonormal',['areOrthonormal',['../a00368.html#ga1b091c3d7f9ee3b0708311c001c293e3',1,'glm']]], - ['asec',['asec',['../a00301.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]], - ['asech',['asech',['../a00301.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]], - ['asin',['asin',['../a00373.html#ga0552d2df4865fa8c3d7cfc3ec2caac73',1,'glm']]], - ['asinh',['asinh',['../a00373.html#ga3ef16b501ee859fddde88e22192a5950',1,'glm']]], - ['associatedmax',['associatedMax',['../a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00308.html#ga5c6758bc50aa7fbe700f87123a045aad',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#ga0d169d6ce26b03248df175f39005d77f',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)'],['../a00308.html#ga4086269afabcb81dd7ded33cb3448653',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)'],['../a00308.html#ga19f59d1141a51a3b2108a9807af78f7f',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)'],['../a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], - ['associatedmin',['associatedMin',['../a00308.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00308.html#gac2f0dff90948f2e44386a5eafd941d1c',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#gacfec519c820331d023ef53a511749319',1,'glm::associatedMin(T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)'],['../a00308.html#ga4757c7cab2d809124a8525d0a9deeb37',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#ga66b08118bc88f0494bcacb7cdb940556',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68',1,'glm::associatedMin(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#ga2db7e351994baee78540a562d4bb6d3b',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], - ['atan',['atan',['../a00373.html#gac61629f3a4aa14057e7a8cae002291db',1,'glm::atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)'],['../a00373.html#ga5229f087eaccbc466f1c609ce3107b95',1,'glm::atan(vec< L, T, Q > const &y_over_x)']]], - ['atan2',['atan2',['../a00315.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00315.html#ga83bc41bd6f89113ee8006576b12bfc50',1,'glm::atan2(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)'],['../a00315.html#gac39314f5087e7e51e592897cabbc1927',1,'glm::atan2(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)'],['../a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3',1,'glm::atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)']]], - ['atanh',['atanh',['../a00373.html#gabc925650e618357d07da255531658b87',1,'glm']]], - ['axis',['axis',['../a00257.html#ga764254f10248b505e936e5309a88c23d',1,'glm']]], - ['axisangle',['axisAngle',['../a00337.html#gafefe32ce5a90a135287ba34fac3623bc',1,'glm']]], - ['axisanglematrix',['axisAngleMatrix',['../a00337.html#ga3a788e2f5223397df5c426413ecc2f6b',1,'glm']]] -]; +var searchData= +[ + ['abs',['abs',['../a00241.html#ga439e60a72eadecfeda2df5449c613a64',1,'glm::abs(genType x)'],['../a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6',1,'glm::abs(vec< L, T, Q > const &x)']]], + ['acos',['acos',['../a00373.html#gacc9b092df8257c68f19c9053703e2563',1,'glm']]], + ['acosh',['acosh',['../a00373.html#ga858f35dc66fd2688f20c52b5f25be76a',1,'glm']]], + ['acot',['acot',['../a00301.html#gaeadfb9c9d71093f7865b2ba2ca8d104d',1,'glm']]], + ['acoth',['acoth',['../a00301.html#gafaca98a7100170db8841f446282debfa',1,'glm']]], + ['acsc',['acsc',['../a00301.html#ga1b4bed91476b9b915e76b4a30236d330',1,'glm']]], + ['acsch',['acsch',['../a00301.html#ga4b50aa5e5afc7e19ec113ab91596c576',1,'glm']]], + ['adjugate',['adjugate',['../a00339.html#ga40a38402a30860af6e508fe76211e659',1,'glm::adjugate(mat< 2, 2, T, Q > const &m)'],['../a00339.html#gaddb09f7abc1a9c56a243d32ff3538be6',1,'glm::adjugate(mat< 3, 3, T, Q > const &m)'],['../a00339.html#ga9aaa7d1f40391b0b5cacccb60e104ba8',1,'glm::adjugate(mat< 4, 4, T, Q > const &m)']]], + ['affineinverse',['affineInverse',['../a00295.html#gae0fcc5fc8783291f9702272de428fa0e',1,'glm']]], + ['all',['all',['../a00374.html#ga87e53f50b679f5f95c5cb4780311b3dd',1,'glm']]], + ['angle',['angle',['../a00257.html#ga8aa248b31d5ade470c87304df5eb7bd8',1,'glm::angle(qua< T, Q > const &x)'],['../a00367.html#ga2e2917b4cb75ca3d043ac15ff88f14e1',1,'glm::angle(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['angleaxis',['angleAxis',['../a00257.html#ga5c0095cfcb218c75a4b79d7687950036',1,'glm']]], + ['any',['any',['../a00374.html#ga911b3f8e41459dd551ccb6d385d91061',1,'glm']]], + ['arecollinear',['areCollinear',['../a00368.html#ga13da4a787a2ff70e95d561fb19ff91b4',1,'glm']]], + ['areorthogonal',['areOrthogonal',['../a00368.html#gac7b95b3f798e3c293262b2bdaad47c57',1,'glm']]], + ['areorthonormal',['areOrthonormal',['../a00368.html#ga1b091c3d7f9ee3b0708311c001c293e3',1,'glm']]], + ['asec',['asec',['../a00301.html#ga2c5b7f962c2c9ff684e6d2de48db1f10',1,'glm']]], + ['asech',['asech',['../a00301.html#gaec7586dccfe431f850d006f3824b8ca6',1,'glm']]], + ['asin',['asin',['../a00373.html#ga0552d2df4865fa8c3d7cfc3ec2caac73',1,'glm']]], + ['asinh',['asinh',['../a00373.html#ga3ef16b501ee859fddde88e22192a5950',1,'glm']]], + ['associatedmax',['associatedMax',['../a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45',1,'glm::associatedMax(T x, U a, T y, U b)'],['../a00308.html#ga5c6758bc50aa7fbe700f87123a045aad',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#ga0d169d6ce26b03248df175f39005d77f',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b)'],['../a00308.html#ga4086269afabcb81dd7ded33cb3448653',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gaec891e363d91abbf3a4443cf2f652209',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c)'],['../a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c)'],['../a00308.html#ga19f59d1141a51a3b2108a9807af78f7f',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c)'],['../a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc',1,'glm::associatedMax(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6',1,'glm::associatedMax(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d',1,'glm::associatedMax(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb',1,'glm::associatedMax(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], + ['associatedmin',['associatedMin',['../a00308.html#gacc01bd272359572fc28437ae214a02df',1,'glm::associatedMin(T x, U a, T y, U b)'],['../a00308.html#gac2f0dff90948f2e44386a5eafd941d1c',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b)'],['../a00308.html#gacfec519c820331d023ef53a511749319',1,'glm::associatedMin(T x, const vec< L, U, Q > &a, T y, const vec< L, U, Q > &b)'],['../a00308.html#ga4757c7cab2d809124a8525d0a9deeb37',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b)'],['../a00308.html#gad0aa8f86259a26d839d34a3577a923fc',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c)'],['../a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c)'],['../a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6',1,'glm::associatedMin(T x, U a, T y, U b, T z, U c, T w, U d)'],['../a00308.html#ga66b08118bc88f0494bcacb7cdb940556',1,'glm::associatedMin(vec< L, T, Q > const &x, vec< L, U, Q > const &a, vec< L, T, Q > const &y, vec< L, U, Q > const &b, vec< L, T, Q > const &z, vec< L, U, Q > const &c, vec< L, T, Q > const &w, vec< L, U, Q > const &d)'],['../a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68',1,'glm::associatedMin(T x, vec< L, U, Q > const &a, T y, vec< L, U, Q > const &b, T z, vec< L, U, Q > const &c, T w, vec< L, U, Q > const &d)'],['../a00308.html#ga2db7e351994baee78540a562d4bb6d3b',1,'glm::associatedMin(vec< L, T, Q > const &x, U a, vec< L, T, Q > const &y, U b, vec< L, T, Q > const &z, U c, vec< L, T, Q > const &w, U d)']]], + ['atan',['atan',['../a00373.html#gac61629f3a4aa14057e7a8cae002291db',1,'glm::atan(vec< L, T, Q > const &y, vec< L, T, Q > const &x)'],['../a00373.html#ga5229f087eaccbc466f1c609ce3107b95',1,'glm::atan(vec< L, T, Q > const &y_over_x)']]], + ['atan2',['atan2',['../a00315.html#gac63011205bf6d0be82589dc56dd26708',1,'glm::atan2(T x, T y)'],['../a00315.html#ga83bc41bd6f89113ee8006576b12bfc50',1,'glm::atan2(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y)'],['../a00315.html#gac39314f5087e7e51e592897cabbc1927',1,'glm::atan2(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y)'],['../a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3',1,'glm::atan2(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y)']]], + ['atanh',['atanh',['../a00373.html#gabc925650e618357d07da255531658b87',1,'glm']]], + ['axis',['axis',['../a00257.html#ga764254f10248b505e936e5309a88c23d',1,'glm']]], + ['axisangle',['axisAngle',['../a00337.html#gafefe32ce5a90a135287ba34fac3623bc',1,'glm']]], + ['axisanglematrix',['axisAngleMatrix',['../a00337.html#ga3a788e2f5223397df5c426413ecc2f6b',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_1.html b/external/include/glm-0.9.9.8/doc/api/search/functions_1.html index 4fde118f40..5f14d674ee 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_1.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_1.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_1.js b/external/include/glm-0.9.9.8/doc/api/search/functions_1.js index 6db0a1b487..bf498fce2c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_1.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_1.js @@ -1,20 +1,20 @@ -var searchData= -[ - ['backeasein',['backEaseIn',['../a00318.html#ga93cddcdb6347a44d5927cc2bf2570816',1,'glm::backEaseIn(genType const &a)'],['../a00318.html#ga33777c9dd98f61d9472f96aafdf2bd36',1,'glm::backEaseIn(genType const &a, genType const &o)']]], - ['backeaseinout',['backEaseInOut',['../a00318.html#gace6d24722a2f6722b56398206eb810bb',1,'glm::backEaseInOut(genType const &a)'],['../a00318.html#ga68a7b760f2afdfab298d5cd6d7611fb1',1,'glm::backEaseInOut(genType const &a, genType const &o)']]], - ['backeaseout',['backEaseOut',['../a00318.html#gabf25069fa906413c858fd46903d520b9',1,'glm::backEaseOut(genType const &a)'],['../a00318.html#ga640c1ac6fe9d277a197da69daf60ee4f',1,'glm::backEaseOut(genType const &a, genType const &o)']]], - ['ballrand',['ballRand',['../a00300.html#ga7c53b7797f3147af68a11c767679fa3f',1,'glm']]], - ['bitcount',['bitCount',['../a00370.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00370.html#gaac7b15e40bdea8d9aa4c4cb34049f7b5',1,'glm::bitCount(vec< L, T, Q > const &v)']]], - ['bitfielddeinterleave',['bitfieldDeinterleave',['../a00288.html#ga091d934233a2e121df91b8c7230357c8',1,'glm::bitfieldDeinterleave(glm::uint16 x)'],['../a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98',1,'glm::bitfieldDeinterleave(glm::uint32 x)'],['../a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60',1,'glm::bitfieldDeinterleave(glm::uint64 x)']]], - ['bitfieldextract',['bitfieldExtract',['../a00370.html#ga346b25ab11e793e91a4a69c8aa6819f2',1,'glm']]], - ['bitfieldfillone',['bitfieldFillOne',['../a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1',1,'glm::bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], - ['bitfieldfillzero',['bitfieldFillZero',['../a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2',1,'glm::bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], - ['bitfieldinsert',['bitfieldInsert',['../a00370.html#ga2e82992340d421fadb61a473df699b20',1,'glm']]], - ['bitfieldinterleave',['bitfieldInterleave',['../a00288.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00288.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00288.html#ga4a76bbca39c40153f3203d0a1926e142',1,'glm::bitfieldInterleave(u8vec2 const &v)'],['../a00288.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00288.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00288.html#ga406c4ee56af4ca37a73f449f154eca3e',1,'glm::bitfieldInterleave(u16vec2 const &v)'],['../a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78',1,'glm::bitfieldInterleave(u32vec2 const &v)'],['../a00288.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00288.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00288.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00288.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00288.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00288.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00288.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]], - ['bitfieldreverse',['bitfieldReverse',['../a00370.html#ga750a1d92464489b7711dee67aa3441b6',1,'glm']]], - ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00288.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00288.html#gae186317091b1a39214ebf79008d44a1e',1,'glm::bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)']]], - ['bitfieldrotateright',['bitfieldRotateRight',['../a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88',1,'glm::bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)']]], - ['bounceeasein',['bounceEaseIn',['../a00318.html#gaac30767f2e430b0c3fc859a4d59c7b5b',1,'glm']]], - ['bounceeaseinout',['bounceEaseInOut',['../a00318.html#gadf9f38eff1e5f4c2fa5b629a25ae413e',1,'glm']]], - ['bounceeaseout',['bounceEaseOut',['../a00318.html#ga94007005ff0dcfa0749ebfa2aec540b2',1,'glm']]] -]; +var searchData= +[ + ['backeasein',['backEaseIn',['../a00318.html#ga93cddcdb6347a44d5927cc2bf2570816',1,'glm::backEaseIn(genType const &a)'],['../a00318.html#ga33777c9dd98f61d9472f96aafdf2bd36',1,'glm::backEaseIn(genType const &a, genType const &o)']]], + ['backeaseinout',['backEaseInOut',['../a00318.html#gace6d24722a2f6722b56398206eb810bb',1,'glm::backEaseInOut(genType const &a)'],['../a00318.html#ga68a7b760f2afdfab298d5cd6d7611fb1',1,'glm::backEaseInOut(genType const &a, genType const &o)']]], + ['backeaseout',['backEaseOut',['../a00318.html#gabf25069fa906413c858fd46903d520b9',1,'glm::backEaseOut(genType const &a)'],['../a00318.html#ga640c1ac6fe9d277a197da69daf60ee4f',1,'glm::backEaseOut(genType const &a, genType const &o)']]], + ['ballrand',['ballRand',['../a00300.html#ga7c53b7797f3147af68a11c767679fa3f',1,'glm']]], + ['bitcount',['bitCount',['../a00370.html#ga44abfe3379e11cbd29425a843420d0d6',1,'glm::bitCount(genType v)'],['../a00370.html#gaac7b15e40bdea8d9aa4c4cb34049f7b5',1,'glm::bitCount(vec< L, T, Q > const &v)']]], + ['bitfielddeinterleave',['bitfieldDeinterleave',['../a00288.html#ga091d934233a2e121df91b8c7230357c8',1,'glm::bitfieldDeinterleave(glm::uint16 x)'],['../a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98',1,'glm::bitfieldDeinterleave(glm::uint32 x)'],['../a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60',1,'glm::bitfieldDeinterleave(glm::uint64 x)']]], + ['bitfieldextract',['bitfieldExtract',['../a00370.html#ga346b25ab11e793e91a4a69c8aa6819f2',1,'glm']]], + ['bitfieldfillone',['bitfieldFillOne',['../a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a',1,'glm::bitfieldFillOne(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1',1,'glm::bitfieldFillOne(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], + ['bitfieldfillzero',['bitfieldFillZero',['../a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee',1,'glm::bitfieldFillZero(genIUType Value, int FirstBit, int BitCount)'],['../a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2',1,'glm::bitfieldFillZero(vec< L, T, Q > const &Value, int FirstBit, int BitCount)']]], + ['bitfieldinsert',['bitfieldInsert',['../a00370.html#ga2e82992340d421fadb61a473df699b20',1,'glm']]], + ['bitfieldinterleave',['bitfieldInterleave',['../a00288.html#ga24cad0069f9a0450abd80b3e89501adf',1,'glm::bitfieldInterleave(int8 x, int8 y)'],['../a00288.html#ga9a4976a529aec2cee56525e1165da484',1,'glm::bitfieldInterleave(uint8 x, uint8 y)'],['../a00288.html#ga4a76bbca39c40153f3203d0a1926e142',1,'glm::bitfieldInterleave(u8vec2 const &v)'],['../a00288.html#gac51c33a394593f0631fa3aa5bb778809',1,'glm::bitfieldInterleave(int16 x, int16 y)'],['../a00288.html#ga94f3646a5667f4be56f8dcf3310e963f',1,'glm::bitfieldInterleave(uint16 x, uint16 y)'],['../a00288.html#ga406c4ee56af4ca37a73f449f154eca3e',1,'glm::bitfieldInterleave(u16vec2 const &v)'],['../a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a',1,'glm::bitfieldInterleave(int32 x, int32 y)'],['../a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd',1,'glm::bitfieldInterleave(uint32 x, uint32 y)'],['../a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78',1,'glm::bitfieldInterleave(u32vec2 const &v)'],['../a00288.html#ga8fdb724dccd4a07d57efc01147102137',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z)'],['../a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z)'],['../a00288.html#gaa901c36a842fa5d126ea650549f17b24',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z)'],['../a00288.html#ga3afd6d38881fe3948c53d4214d2197fd',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z)'],['../a00288.html#gad2075d96a6640121edaa98ea534102ca',1,'glm::bitfieldInterleave(int32 x, int32 y, int32 z)'],['../a00288.html#gab19fbc739fc0cf7247978602c36f7da8',1,'glm::bitfieldInterleave(uint32 x, uint32 y, uint32 z)'],['../a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d',1,'glm::bitfieldInterleave(int8 x, int8 y, int8 z, int8 w)'],['../a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36',1,'glm::bitfieldInterleave(uint8 x, uint8 y, uint8 z, uint8 w)'],['../a00288.html#ga180a63161e1319fbd5a53c84d0429c7a',1,'glm::bitfieldInterleave(int16 x, int16 y, int16 z, int16 w)'],['../a00288.html#gafca8768671a14c8016facccb66a89f26',1,'glm::bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)']]], + ['bitfieldreverse',['bitfieldReverse',['../a00370.html#ga750a1d92464489b7711dee67aa3441b6',1,'glm']]], + ['bitfieldrotateleft',['bitfieldRotateLeft',['../a00288.html#ga2eb49678a344ce1495bdb5586d9896b9',1,'glm::bitfieldRotateLeft(genIUType In, int Shift)'],['../a00288.html#gae186317091b1a39214ebf79008d44a1e',1,'glm::bitfieldRotateLeft(vec< L, T, Q > const &In, int Shift)']]], + ['bitfieldrotateright',['bitfieldRotateRight',['../a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca',1,'glm::bitfieldRotateRight(genIUType In, int Shift)'],['../a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88',1,'glm::bitfieldRotateRight(vec< L, T, Q > const &In, int Shift)']]], + ['bounceeasein',['bounceEaseIn',['../a00318.html#gaac30767f2e430b0c3fc859a4d59c7b5b',1,'glm']]], + ['bounceeaseinout',['bounceEaseInOut',['../a00318.html#gadf9f38eff1e5f4c2fa5b629a25ae413e',1,'glm']]], + ['bounceeaseout',['bounceEaseOut',['../a00318.html#ga94007005ff0dcfa0749ebfa2aec540b2',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_10.html b/external/include/glm-0.9.9.8/doc/api/search/functions_10.html index 909fe2d65a..c322f4084f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_10.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_10.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_10.js b/external/include/glm-0.9.9.8/doc/api/search/functions_10.js index 630eefbf7f..cf1f1d0aed 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_10.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_10.js @@ -1,30 +1,30 @@ -var searchData= -[ - ['saturate',['saturate',['../a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00315.html#gaee97b8001c794a78a44f5d59f62a8aba',1,'glm::saturate(const vec< 2, T, Q > &x)'],['../a00315.html#ga39bfe3a421286ee31680d45c31ccc161',1,'glm::saturate(const vec< 3, T, Q > &x)'],['../a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183',1,'glm::saturate(const vec< 4, T, Q > &x)']]], - ['saturation',['saturation',['../a00312.html#ga01a97152b44e1550edcac60bd849e884',1,'glm::saturation(T const s)'],['../a00312.html#ga2156cea600e90148ece5bc96fd6db43a',1,'glm::saturation(T const s, vec< 3, T, Q > const &color)'],['../a00312.html#gaba0eacee0736dae860e9371cc1ae4785',1,'glm::saturation(T const s, vec< 4, T, Q > const &color)']]], - ['scale',['scale',['../a00247.html#ga05051adbee603fb3c5095d8cf5cc229b',1,'glm::scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gadb47d2ad2bd984b213e8ff7d9cd8154e',1,'glm::scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#gafbeefee8fec884d566e4ada0049174d7',1,'glm::scale(vec< 3, T, Q > const &v)']]], - ['scalebias',['scaleBias',['../a00363.html#gabf249498b236e62c983d90d30d63c99c',1,'glm::scaleBias(T scale, T bias)'],['../a00363.html#gae2bdd91a76759fecfbaef97e3020aa8e',1,'glm::scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)']]], - ['sec',['sec',['../a00301.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]], - ['sech',['sech',['../a00301.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]], - ['shearx',['shearX',['../a00341.html#ga2a118ece5db1e2022112b954846012af',1,'glm']]], - ['shearx2d',['shearX2D',['../a00363.html#gabf714b8a358181572b32a45555f71948',1,'glm']]], - ['shearx3d',['shearX3D',['../a00363.html#ga73e867c6cd4d700fe2054437e56106c4',1,'glm']]], - ['sheary',['shearY',['../a00341.html#ga717f1833369c1ac4a40e4ac015af885e',1,'glm']]], - ['sheary2d',['shearY2D',['../a00363.html#gac7998d0763d9181550c77e8af09a182c',1,'glm']]], - ['sheary3d',['shearY3D',['../a00363.html#gade5bb65ffcb513973db1a1314fb5cfac',1,'glm']]], - ['shearz3d',['shearZ3D',['../a00363.html#ga6591e0a3a9d2c9c0b6577bb4dace0255',1,'glm']]], - ['shortmix',['shortMix',['../a00352.html#gadc576cc957adc2a568cdcbc3799175bc',1,'glm']]], - ['sign',['sign',['../a00241.html#ga1e2e5cfff800056540e32f6c9b604b28',1,'glm::sign(vec< L, T, Q > const &x)'],['../a00333.html#ga04ef803a24f3d4f8c67dbccb33b0fce0',1,'glm::sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)']]], - ['simplex',['simplex',['../a00297.html#ga8122468c69015ff397349a7dcc638b27',1,'glm']]], - ['sin',['sin',['../a00373.html#ga29747fd108cb7292ae5a284f69691a69',1,'glm']]], - ['sineeasein',['sineEaseIn',['../a00318.html#gafb338ac6f6b2bcafee50e3dca5201dbf',1,'glm']]], - ['sineeaseinout',['sineEaseInOut',['../a00318.html#gaa46e3d5fbf7a15caa28eff9ef192d7c7',1,'glm']]], - ['sineeaseout',['sineEaseOut',['../a00318.html#gab3e454f883afc1606ef91363881bf5a3',1,'glm']]], - ['sinh',['sinh',['../a00373.html#gac7c39ff21809e281552b4dbe46f4a39d',1,'glm']]], - ['slerp',['slerp',['../a00248.html#gae7fc3c945be366b9942b842f55da428a',1,'glm::slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00356.html#ga8b11b18ce824174ea1a5a69ea14e2cee',1,'glm::slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)']]], - ['smoothstep',['smoothstep',['../a00241.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]], - ['sphericalrand',['sphericalRand',['../a00300.html#ga22f90fcaccdf001c516ca90f6428e138',1,'glm']]], - ['sqrt',['sqrt',['../a00242.html#gaa83e5f1648b7ccdf33b87c07c76cb77c',1,'glm::sqrt(vec< L, T, Q > const &v)'],['../a00256.html#ga64b7b255ed7bcba616fe6b44470b022e',1,'glm::sqrt(qua< T, Q > const &q)'],['../a00330.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00330.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]], - ['squad',['squad',['../a00352.html#ga0b9bf3459e132ad8a18fe970669e3e35',1,'glm']]], - ['step',['step',['../a00241.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00241.html#ga8f9a911a48ef244b51654eaefc81c551',1,'glm::step(T edge, vec< L, T, Q > const &x)'],['../a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f',1,'glm::step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)']]] -]; +var searchData= +[ + ['saturate',['saturate',['../a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7',1,'glm::saturate(T x)'],['../a00315.html#gaee97b8001c794a78a44f5d59f62a8aba',1,'glm::saturate(const vec< 2, T, Q > &x)'],['../a00315.html#ga39bfe3a421286ee31680d45c31ccc161',1,'glm::saturate(const vec< 3, T, Q > &x)'],['../a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183',1,'glm::saturate(const vec< 4, T, Q > &x)']]], + ['saturation',['saturation',['../a00312.html#ga01a97152b44e1550edcac60bd849e884',1,'glm::saturation(T const s)'],['../a00312.html#ga2156cea600e90148ece5bc96fd6db43a',1,'glm::saturation(T const s, vec< 3, T, Q > const &color)'],['../a00312.html#gaba0eacee0736dae860e9371cc1ae4785',1,'glm::saturation(T const s, vec< 4, T, Q > const &color)']]], + ['scale',['scale',['../a00247.html#ga05051adbee603fb3c5095d8cf5cc229b',1,'glm::scale(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gadb47d2ad2bd984b213e8ff7d9cd8154e',1,'glm::scale(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#gafbeefee8fec884d566e4ada0049174d7',1,'glm::scale(vec< 3, T, Q > const &v)']]], + ['scalebias',['scaleBias',['../a00363.html#gabf249498b236e62c983d90d30d63c99c',1,'glm::scaleBias(T scale, T bias)'],['../a00363.html#gae2bdd91a76759fecfbaef97e3020aa8e',1,'glm::scaleBias(mat< 4, 4, T, Q > const &m, T scale, T bias)']]], + ['sec',['sec',['../a00301.html#gae4bcbebee670c5ea155f0777b3acbd84',1,'glm']]], + ['sech',['sech',['../a00301.html#ga9a5cfd1e7170104a7b33863b1b75e5ae',1,'glm']]], + ['shearx',['shearX',['../a00341.html#ga2a118ece5db1e2022112b954846012af',1,'glm']]], + ['shearx2d',['shearX2D',['../a00363.html#gabf714b8a358181572b32a45555f71948',1,'glm']]], + ['shearx3d',['shearX3D',['../a00363.html#ga73e867c6cd4d700fe2054437e56106c4',1,'glm']]], + ['sheary',['shearY',['../a00341.html#ga717f1833369c1ac4a40e4ac015af885e',1,'glm']]], + ['sheary2d',['shearY2D',['../a00363.html#gac7998d0763d9181550c77e8af09a182c',1,'glm']]], + ['sheary3d',['shearY3D',['../a00363.html#gade5bb65ffcb513973db1a1314fb5cfac',1,'glm']]], + ['shearz3d',['shearZ3D',['../a00363.html#ga6591e0a3a9d2c9c0b6577bb4dace0255',1,'glm']]], + ['shortmix',['shortMix',['../a00352.html#gadc576cc957adc2a568cdcbc3799175bc',1,'glm']]], + ['sign',['sign',['../a00241.html#ga1e2e5cfff800056540e32f6c9b604b28',1,'glm::sign(vec< L, T, Q > const &x)'],['../a00333.html#ga04ef803a24f3d4f8c67dbccb33b0fce0',1,'glm::sign(vec< L, T, Q > const &x, vec< L, T, Q > const &base)']]], + ['simplex',['simplex',['../a00297.html#ga8122468c69015ff397349a7dcc638b27',1,'glm']]], + ['sin',['sin',['../a00373.html#ga29747fd108cb7292ae5a284f69691a69',1,'glm']]], + ['sineeasein',['sineEaseIn',['../a00318.html#gafb338ac6f6b2bcafee50e3dca5201dbf',1,'glm']]], + ['sineeaseinout',['sineEaseInOut',['../a00318.html#gaa46e3d5fbf7a15caa28eff9ef192d7c7',1,'glm']]], + ['sineeaseout',['sineEaseOut',['../a00318.html#gab3e454f883afc1606ef91363881bf5a3',1,'glm']]], + ['sinh',['sinh',['../a00373.html#gac7c39ff21809e281552b4dbe46f4a39d',1,'glm']]], + ['slerp',['slerp',['../a00248.html#gae7fc3c945be366b9942b842f55da428a',1,'glm::slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00356.html#ga8b11b18ce824174ea1a5a69ea14e2cee',1,'glm::slerp(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, T const &a)']]], + ['smoothstep',['smoothstep',['../a00241.html#ga562edf7eca082cc5b7a0aaf180436daf',1,'glm']]], + ['sphericalrand',['sphericalRand',['../a00300.html#ga22f90fcaccdf001c516ca90f6428e138',1,'glm']]], + ['sqrt',['sqrt',['../a00242.html#gaa83e5f1648b7ccdf33b87c07c76cb77c',1,'glm::sqrt(vec< L, T, Q > const &v)'],['../a00256.html#ga64b7b255ed7bcba616fe6b44470b022e',1,'glm::sqrt(qua< T, Q > const &q)'],['../a00330.html#ga7ce36693a75879ccd9bb10167cfa722d',1,'glm::sqrt(int x)'],['../a00330.html#ga1975d318978d6dacf78b6444fa5ed7bc',1,'glm::sqrt(uint x)']]], + ['squad',['squad',['../a00352.html#ga0b9bf3459e132ad8a18fe970669e3e35',1,'glm']]], + ['step',['step',['../a00241.html#ga015a1261ff23e12650211aa872863cce',1,'glm::step(genType edge, genType x)'],['../a00241.html#ga8f9a911a48ef244b51654eaefc81c551',1,'glm::step(T edge, vec< L, T, Q > const &x)'],['../a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f',1,'glm::step(vec< L, T, Q > const &edge, vec< L, T, Q > const &x)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_11.html b/external/include/glm-0.9.9.8/doc/api/search/functions_11.html index b93de11448..c49fcd4ce1 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_11.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_11.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_11.js b/external/include/glm-0.9.9.8/doc/api/search/functions_11.js index 3a8e5c79f2..6c1dff5a0f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_11.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_11.js @@ -1,20 +1,20 @@ -var searchData= -[ - ['tan',['tan',['../a00373.html#ga293a34cfb9f0115cc606b4a97c84f11f',1,'glm']]], - ['tanh',['tanh',['../a00373.html#gaa1bccbfdcbe40ed2ffcddc2aa8bfd0f1',1,'glm']]], - ['third',['third',['../a00290.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]], - ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00290.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]], - ['to_5fstring',['to_string',['../a00360.html#ga8f0dced1fd45e67e2d77e80ab93c7af5',1,'glm']]], - ['tomat3',['toMat3',['../a00352.html#gaab0afabb894b28a983fb8ec610409d56',1,'glm']]], - ['tomat4',['toMat4',['../a00352.html#gadfa2c77094e8cc9adad321d938855ffb',1,'glm']]], - ['toquat',['toQuat',['../a00352.html#ga798de5d186499c9a9231cd92c8afaef1',1,'glm::toQuat(mat< 3, 3, T, Q > const &x)'],['../a00352.html#ga5eb36f51e1638e710451eba194dbc011',1,'glm::toQuat(mat< 4, 4, T, Q > const &x)']]], - ['translate',['translate',['../a00247.html#ga1a4ecc4ad82652b8fb14dcb087879284',1,'glm::translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gaf4573ae47c80938aa9053ef6a33755ab',1,'glm::translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#ga309a30e652e58c396e2c3d4db3ee7658',1,'glm::translate(vec< 3, T, Q > const &v)']]], - ['transpose',['transpose',['../a00371.html#gae679d841da8ce9dbcc6c2d454f15bc35',1,'glm']]], - ['trianglenormal',['triangleNormal',['../a00344.html#gaff1cb5496925dfa7962df457772a7f35',1,'glm']]], - ['trunc',['trunc',['../a00241.html#gaf9375e3e06173271d49e6ffa3a334259',1,'glm']]], - ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00243.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00243.html#gaf5b3c85ff6737030a1d2214474ffa7a8',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]], - ['two_5fover_5fpi',['two_over_pi',['../a00290.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]], - ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00290.html#ga5827301817640843cf02026a8d493894',1,'glm']]], - ['two_5fpi',['two_pi',['../a00290.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]], - ['two_5fthirds',['two_thirds',['../a00290.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]] -]; +var searchData= +[ + ['tan',['tan',['../a00373.html#ga293a34cfb9f0115cc606b4a97c84f11f',1,'glm']]], + ['tanh',['tanh',['../a00373.html#gaa1bccbfdcbe40ed2ffcddc2aa8bfd0f1',1,'glm']]], + ['third',['third',['../a00290.html#ga3077c6311010a214b69ddc8214ec13b5',1,'glm']]], + ['three_5fover_5ftwo_5fpi',['three_over_two_pi',['../a00290.html#gae94950df74b0ce382b1fc1d978ef7394',1,'glm']]], + ['to_5fstring',['to_string',['../a00360.html#ga8f0dced1fd45e67e2d77e80ab93c7af5',1,'glm']]], + ['tomat3',['toMat3',['../a00352.html#gaab0afabb894b28a983fb8ec610409d56',1,'glm']]], + ['tomat4',['toMat4',['../a00352.html#gadfa2c77094e8cc9adad321d938855ffb',1,'glm']]], + ['toquat',['toQuat',['../a00352.html#ga798de5d186499c9a9231cd92c8afaef1',1,'glm::toQuat(mat< 3, 3, T, Q > const &x)'],['../a00352.html#ga5eb36f51e1638e710451eba194dbc011',1,'glm::toQuat(mat< 4, 4, T, Q > const &x)']]], + ['translate',['translate',['../a00247.html#ga1a4ecc4ad82652b8fb14dcb087879284',1,'glm::translate(mat< 4, 4, T, Q > const &m, vec< 3, T, Q > const &v)'],['../a00341.html#gaf4573ae47c80938aa9053ef6a33755ab',1,'glm::translate(mat< 3, 3, T, Q > const &m, vec< 2, T, Q > const &v)'],['../a00362.html#ga309a30e652e58c396e2c3d4db3ee7658',1,'glm::translate(vec< 3, T, Q > const &v)']]], + ['transpose',['transpose',['../a00371.html#gae679d841da8ce9dbcc6c2d454f15bc35',1,'glm']]], + ['trianglenormal',['triangleNormal',['../a00344.html#gaff1cb5496925dfa7962df457772a7f35',1,'glm']]], + ['trunc',['trunc',['../a00241.html#gaf9375e3e06173271d49e6ffa3a334259',1,'glm']]], + ['tweakedinfiniteperspective',['tweakedInfinitePerspective',['../a00243.html#gaaeacc04a2a6f4b18c5899d37e7bb3ef9',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near)'],['../a00243.html#gaf5b3c85ff6737030a1d2214474ffa7a8',1,'glm::tweakedInfinitePerspective(T fovy, T aspect, T near, T ep)']]], + ['two_5fover_5fpi',['two_over_pi',['../a00290.html#ga74eadc8a211253079683219a3ea0462a',1,'glm']]], + ['two_5fover_5froot_5fpi',['two_over_root_pi',['../a00290.html#ga5827301817640843cf02026a8d493894',1,'glm']]], + ['two_5fpi',['two_pi',['../a00290.html#gaa5276a4617566abcfe49286f40e3a256',1,'glm']]], + ['two_5fthirds',['two_thirds',['../a00290.html#ga9b4d2f4322edcf63a6737b92a29dd1f5',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_12.html b/external/include/glm-0.9.9.8/doc/api/search/functions_12.html index f5a672d027..6a02772012 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_12.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_12.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_12.js b/external/include/glm-0.9.9.8/doc/api/search/functions_12.js index 9f9adf4c89..221b32861c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_12.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_12.js @@ -1,52 +1,52 @@ -var searchData= -[ - ['uaddcarry',['uaddCarry',['../a00370.html#gaedcec48743632dff6786bcc492074b1b',1,'glm']]], - ['uintbitstofloat',['uintBitsToFloat',['../a00241.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &v)'],['../a00241.html#ga97f46b5f7b42fe44482e13356eb394ae',1,'glm::uintBitsToFloat(vec< L, uint, Q > const &v)']]], - ['umulextended',['umulExtended',['../a00370.html#ga732e2fb56db57ea541c7e5c92b7121be',1,'glm']]], - ['unpackdouble2x32',['unpackDouble2x32',['../a00372.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]], - ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00298.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]], - ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00298.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]], - ['unpackhalf',['unpackHalf',['../a00298.html#ga30d6b2f1806315bcd6047131f547d33b',1,'glm']]], - ['unpackhalf1x16',['unpackHalf1x16',['../a00298.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]], - ['unpackhalf2x16',['unpackHalf2x16',['../a00372.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]], - ['unpackhalf4x16',['unpackHalf4x16',['../a00298.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]], - ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00298.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]], - ['unpackint2x16',['unpackInt2x16',['../a00298.html#gaccde055882918a3175de82f4ca8b7d8e',1,'glm']]], - ['unpackint2x32',['unpackInt2x32',['../a00298.html#gab297c0bfd38433524791eb0584d8f08d',1,'glm']]], - ['unpackint2x8',['unpackInt2x8',['../a00298.html#gab0c59f1e259fca9e68adb2207a6b665e',1,'glm']]], - ['unpackint4x16',['unpackInt4x16',['../a00298.html#ga52c154a9b232b62c22517a700cc0c78c',1,'glm']]], - ['unpackint4x8',['unpackInt4x8',['../a00298.html#ga1cd8d2038cdd33a860801aa155a26221',1,'glm']]], - ['unpackrgbm',['unpackRGBM',['../a00298.html#ga5c1ec97894b05ea21a05aea4f0204a02',1,'glm']]], - ['unpacksnorm',['unpackSnorm',['../a00298.html#ga6d49b31e5c3f9df8e1f99ab62b999482',1,'glm']]], - ['unpacksnorm1x16',['unpackSnorm1x16',['../a00298.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]], - ['unpacksnorm1x8',['unpackSnorm1x8',['../a00298.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]], - ['unpacksnorm2x16',['unpackSnorm2x16',['../a00372.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]], - ['unpacksnorm2x8',['unpackSnorm2x8',['../a00298.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]], - ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00298.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]], - ['unpacksnorm4x16',['unpackSnorm4x16',['../a00298.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]], - ['unpacksnorm4x8',['unpackSnorm4x8',['../a00372.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]], - ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00298.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]], - ['unpackuint2x16',['unpackUint2x16',['../a00298.html#ga035bbbeab7ec2b28c0529757395b645b',1,'glm']]], - ['unpackuint2x32',['unpackUint2x32',['../a00298.html#gaf942ff11b65e83eb5f77e68329ebc6ab',1,'glm']]], - ['unpackuint2x8',['unpackUint2x8',['../a00298.html#gaa7600a6c71784b637a410869d2a5adcd',1,'glm']]], - ['unpackuint4x16',['unpackUint4x16',['../a00298.html#gab173834ef14cfc23a96a959f3ff4b8dc',1,'glm']]], - ['unpackuint4x8',['unpackUint4x8',['../a00298.html#gaf6dc0e4341810a641c7ed08f10e335d1',1,'glm']]], - ['unpackunorm',['unpackUnorm',['../a00298.html#ga3e6ac9178b59f0b1b2f7599f2183eb7f',1,'glm']]], - ['unpackunorm1x16',['unpackUnorm1x16',['../a00298.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]], - ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00298.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]], - ['unpackunorm1x8',['unpackUnorm1x8',['../a00298.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]], - ['unpackunorm2x16',['unpackUnorm2x16',['../a00372.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]], - ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00298.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]], - ['unpackunorm2x4',['unpackUnorm2x4',['../a00298.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]], - ['unpackunorm2x8',['unpackUnorm2x8',['../a00298.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]], - ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00298.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]], - ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00298.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]], - ['unpackunorm4x16',['unpackUnorm4x16',['../a00298.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]], - ['unpackunorm4x4',['unpackUnorm4x4',['../a00298.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]], - ['unpackunorm4x8',['unpackUnorm4x8',['../a00372.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]], - ['unproject',['unProject',['../a00245.html#ga36641e5d60f994e01c3d8f56b10263d2',1,'glm']]], - ['unprojectno',['unProjectNO',['../a00245.html#gae089ba9fc150ff69c252a20e508857b5',1,'glm']]], - ['unprojectzo',['unProjectZO',['../a00245.html#gade5136413ce530f8e606124d570fba32',1,'glm']]], - ['uround',['uround',['../a00292.html#ga6715b9d573972a0f7763d30d45bcaec4',1,'glm']]], - ['usubborrow',['usubBorrow',['../a00370.html#gae3316ba1229ad9b9f09480833321b053',1,'glm']]] -]; +var searchData= +[ + ['uaddcarry',['uaddCarry',['../a00370.html#gaedcec48743632dff6786bcc492074b1b',1,'glm']]], + ['uintbitstofloat',['uintBitsToFloat',['../a00241.html#gab2bae0d15dcdca6093f88f76b3975d97',1,'glm::uintBitsToFloat(uint const &v)'],['../a00241.html#ga97f46b5f7b42fe44482e13356eb394ae',1,'glm::uintBitsToFloat(vec< L, uint, Q > const &v)']]], + ['umulextended',['umulExtended',['../a00370.html#ga732e2fb56db57ea541c7e5c92b7121be',1,'glm']]], + ['unpackdouble2x32',['unpackDouble2x32',['../a00372.html#ga5f4296dc5f12f0aa67ac05b8bb322483',1,'glm']]], + ['unpackf2x11_5f1x10',['unpackF2x11_1x10',['../a00298.html#ga2b1fd1e854705b1345e98409e0a25e50',1,'glm']]], + ['unpackf3x9_5fe1x5',['unpackF3x9_E1x5',['../a00298.html#gab9e60ebe3ad3eeced6a9ec6eb876d74e',1,'glm']]], + ['unpackhalf',['unpackHalf',['../a00298.html#ga30d6b2f1806315bcd6047131f547d33b',1,'glm']]], + ['unpackhalf1x16',['unpackHalf1x16',['../a00298.html#gac37dedaba24b00adb4ec6e8f92c19dbf',1,'glm']]], + ['unpackhalf2x16',['unpackHalf2x16',['../a00372.html#gaf59b52e6b28da9335322c4ae19b5d745',1,'glm']]], + ['unpackhalf4x16',['unpackHalf4x16',['../a00298.html#ga57dfc41b2eb20b0ac00efae7d9c49dcd',1,'glm']]], + ['unpacki3x10_5f1x2',['unpackI3x10_1x2',['../a00298.html#ga9a05330e5490be0908d3b117d82aff56',1,'glm']]], + ['unpackint2x16',['unpackInt2x16',['../a00298.html#gaccde055882918a3175de82f4ca8b7d8e',1,'glm']]], + ['unpackint2x32',['unpackInt2x32',['../a00298.html#gab297c0bfd38433524791eb0584d8f08d',1,'glm']]], + ['unpackint2x8',['unpackInt2x8',['../a00298.html#gab0c59f1e259fca9e68adb2207a6b665e',1,'glm']]], + ['unpackint4x16',['unpackInt4x16',['../a00298.html#ga52c154a9b232b62c22517a700cc0c78c',1,'glm']]], + ['unpackint4x8',['unpackInt4x8',['../a00298.html#ga1cd8d2038cdd33a860801aa155a26221',1,'glm']]], + ['unpackrgbm',['unpackRGBM',['../a00298.html#ga5c1ec97894b05ea21a05aea4f0204a02',1,'glm']]], + ['unpacksnorm',['unpackSnorm',['../a00298.html#ga6d49b31e5c3f9df8e1f99ab62b999482',1,'glm']]], + ['unpacksnorm1x16',['unpackSnorm1x16',['../a00298.html#ga96dd15002370627a443c835ab03a766c',1,'glm']]], + ['unpacksnorm1x8',['unpackSnorm1x8',['../a00298.html#ga4851ff86678aa1c7ace9d67846894285',1,'glm']]], + ['unpacksnorm2x16',['unpackSnorm2x16',['../a00372.html#gacd8f8971a3fe28418be0d0fa1f786b38',1,'glm']]], + ['unpacksnorm2x8',['unpackSnorm2x8',['../a00298.html#ga8b128e89be449fc71336968a66bf6e1a',1,'glm']]], + ['unpacksnorm3x10_5f1x2',['unpackSnorm3x10_1x2',['../a00298.html#ga7a4fbf79be9740e3c57737bc2af05e5b',1,'glm']]], + ['unpacksnorm4x16',['unpackSnorm4x16',['../a00298.html#gaaddf9c353528fe896106f7181219c7f4',1,'glm']]], + ['unpacksnorm4x8',['unpackSnorm4x8',['../a00372.html#ga2db488646d48b7c43d3218954523fe82',1,'glm']]], + ['unpacku3x10_5f1x2',['unpackU3x10_1x2',['../a00298.html#ga48df3042a7d079767f5891a1bfd8a60a',1,'glm']]], + ['unpackuint2x16',['unpackUint2x16',['../a00298.html#ga035bbbeab7ec2b28c0529757395b645b',1,'glm']]], + ['unpackuint2x32',['unpackUint2x32',['../a00298.html#gaf942ff11b65e83eb5f77e68329ebc6ab',1,'glm']]], + ['unpackuint2x8',['unpackUint2x8',['../a00298.html#gaa7600a6c71784b637a410869d2a5adcd',1,'glm']]], + ['unpackuint4x16',['unpackUint4x16',['../a00298.html#gab173834ef14cfc23a96a959f3ff4b8dc',1,'glm']]], + ['unpackuint4x8',['unpackUint4x8',['../a00298.html#gaf6dc0e4341810a641c7ed08f10e335d1',1,'glm']]], + ['unpackunorm',['unpackUnorm',['../a00298.html#ga3e6ac9178b59f0b1b2f7599f2183eb7f',1,'glm']]], + ['unpackunorm1x16',['unpackUnorm1x16',['../a00298.html#ga83d34160a5cb7bcb5339823210fc7501',1,'glm']]], + ['unpackunorm1x5_5f1x6_5f1x5',['unpackUnorm1x5_1x6_1x5',['../a00298.html#gab3bc08ecfc0f3339be93fb2b3b56d88a',1,'glm']]], + ['unpackunorm1x8',['unpackUnorm1x8',['../a00298.html#ga1319207e30874fb4931a9ee913983ee1',1,'glm']]], + ['unpackunorm2x16',['unpackUnorm2x16',['../a00372.html#ga1f66188e5d65afeb9ffba1ad971e4007',1,'glm']]], + ['unpackunorm2x3_5f1x2',['unpackUnorm2x3_1x2',['../a00298.html#ga6abd5a9014df3b5ce4059008d2491260',1,'glm']]], + ['unpackunorm2x4',['unpackUnorm2x4',['../a00298.html#ga2e50476132fe5f27f08e273d9c70d85b',1,'glm']]], + ['unpackunorm2x8',['unpackUnorm2x8',['../a00298.html#ga637cbe3913dd95c6e7b4c99c61bd611f',1,'glm']]], + ['unpackunorm3x10_5f1x2',['unpackUnorm3x10_1x2',['../a00298.html#ga5156d3060355fe332865da2c7f78815f',1,'glm']]], + ['unpackunorm3x5_5f1x1',['unpackUnorm3x5_1x1',['../a00298.html#ga5ff95ff5bc16f396432ab67243dbae4d',1,'glm']]], + ['unpackunorm4x16',['unpackUnorm4x16',['../a00298.html#ga2ae149c5d2473ac1e5f347bb654a242d',1,'glm']]], + ['unpackunorm4x4',['unpackUnorm4x4',['../a00298.html#gac58ee89d0e224bb6df5e8bbb18843a2d',1,'glm']]], + ['unpackunorm4x8',['unpackUnorm4x8',['../a00372.html#ga7f903259150b67e9466f5f8edffcd197',1,'glm']]], + ['unproject',['unProject',['../a00245.html#ga36641e5d60f994e01c3d8f56b10263d2',1,'glm']]], + ['unprojectno',['unProjectNO',['../a00245.html#gae089ba9fc150ff69c252a20e508857b5',1,'glm']]], + ['unprojectzo',['unProjectZO',['../a00245.html#gade5136413ce530f8e606124d570fba32',1,'glm']]], + ['uround',['uround',['../a00292.html#ga6715b9d573972a0f7763d30d45bcaec4',1,'glm']]], + ['usubborrow',['usubBorrow',['../a00370.html#gae3316ba1229ad9b9f09480833321b053',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_13.html b/external/include/glm-0.9.9.8/doc/api/search/functions_13.html index 72e8376a38..23ac5dac51 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_13.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_13.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_13.js b/external/include/glm-0.9.9.8/doc/api/search/functions_13.js index 616e780962..1aa7ad581b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_13.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_13.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['value_5fptr',['value_ptr',['../a00305.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]] -]; +var searchData= +[ + ['value_5fptr',['value_ptr',['../a00305.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_14.html b/external/include/glm-0.9.9.8/doc/api/search/functions_14.html index ab08f4e65c..16e2625ac1 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_14.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_14.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_14.js b/external/include/glm-0.9.9.8/doc/api/search/functions_14.js index f22728e4be..58cc50acc8 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_14.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_14.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] -]; +var searchData= +[ + ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_15.html b/external/include/glm-0.9.9.8/doc/api/search/functions_15.html index c85aa081e3..9c2374c969 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_15.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_15.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_15.js b/external/include/glm-0.9.9.8/doc/api/search/functions_15.js index 41dca1d760..4153a6e0f5 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_15.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_15.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], - ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], - ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], - ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] -]; +var searchData= +[ + ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], + ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], + ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], + ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_16.html b/external/include/glm-0.9.9.8/doc/api/search/functions_16.html index 14f947e7f4..39a0e6444d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_16.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_16.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_16.js b/external/include/glm-0.9.9.8/doc/api/search/functions_16.js index 0d51cc5374..66a5217081 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_16.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_16.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] -]; +var searchData= +[ + ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_2.html b/external/include/glm-0.9.9.8/doc/api/search/functions_2.html index 4a0c084ed5..3995cf8c5f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_2.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_2.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_2.js b/external/include/glm-0.9.9.8/doc/api/search/functions_2.js index 3ab03e2378..1e9c984374 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_2.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_2.js @@ -1,42 +1,42 @@ -var searchData= -[ - ['catmullrom',['catmullRom',['../a00358.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]], - ['ceil',['ceil',['../a00241.html#gafb9d2a645a23aca12d4d6de0104b7657',1,'glm']]], - ['ceilmultiple',['ceilMultiple',['../a00302.html#ga1d89ac88582aaf4d5dfa5feb4a376fd4',1,'glm::ceilMultiple(genType v, genType Multiple)'],['../a00302.html#gab77fdcc13f8e92d2e0b1b7d7aeab8e9d',1,'glm::ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00302.html#ga5c3ef36ae32aa4271f1544f92bd578b6',1,'glm::ceilPowerOfTwo(genIUType v)'],['../a00302.html#gab53d4a97c0d3e297be5f693cdfdfe5d2',1,'glm::ceilPowerOfTwo(vec< L, T, Q > const &v)']]], - ['circulareasein',['circularEaseIn',['../a00318.html#ga34508d4b204a321ec26d6086aa047997',1,'glm']]], - ['circulareaseinout',['circularEaseInOut',['../a00318.html#ga0c1027637a5b02d4bb3612aa12599d69',1,'glm']]], - ['circulareaseout',['circularEaseOut',['../a00318.html#ga26fefde9ced9b72745fe21f1a3fe8da7',1,'glm']]], - ['circularrand',['circularRand',['../a00300.html#ga9dd05c36025088fae25b97c869e88517',1,'glm']]], - ['clamp',['clamp',['../a00241.html#ga7cd77683da6361e297c56443fc70806d',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00241.html#gafba2e0674deb5953878d89483cd6323d',1,'glm::clamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d',1,'glm::clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)'],['../a00369.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &Texcoord)']]], - ['closebounded',['closeBounded',['../a00314.html#gab7d89c14c48ad01f720fb5daf8813161',1,'glm']]], - ['closestpointonline',['closestPointOnLine',['../a00310.html#ga36529c278ef716986151d58d151d697d',1,'glm::closestPointOnLine(vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)'],['../a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0',1,'glm::closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)']]], - ['colmajor2',['colMajor2',['../a00338.html#gaaff72f11286e59a4a88ed21a347f284c',1,'glm::colMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gafc25fd44196c92b1397b127aec1281ab',1,'glm::colMajor2(mat< 2, 2, T, Q > const &m)']]], - ['colmajor3',['colMajor3',['../a00338.html#ga1e25b72b085087740c92f5c70f3b051f',1,'glm::colMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#ga86bd0656e787bb7f217607572590af27',1,'glm::colMajor3(mat< 3, 3, T, Q > const &m)']]], - ['colmajor4',['colMajor4',['../a00338.html#gaf4aa6c7e17bfce41a6c13bf6469fab05',1,'glm::colMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gaf3f9511c366c20ba2e4a64c9e4cec2b3',1,'glm::colMajor4(mat< 4, 4, T, Q > const &m)']]], - ['column',['column',['../a00293.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &m, length_t index)'],['../a00293.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &m, length_t index, typename genType::col_type const &x)']]], - ['compadd',['compAdd',['../a00316.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]], - ['compmax',['compMax',['../a00316.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]], - ['compmin',['compMin',['../a00316.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]], - ['compmul',['compMul',['../a00316.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]], - ['compnormalize',['compNormalize',['../a00316.html#ga8f2b81ada8515875e58cb1667b6b9908',1,'glm']]], - ['compscale',['compScale',['../a00316.html#ga80abc2980d65d675f435d178c36880eb',1,'glm']]], - ['conjugate',['conjugate',['../a00248.html#ga10d7bda73201788ac2ab28cd8d0d409b',1,'glm']]], - ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48',1,'glm']]], - ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00311.html#ga5265386fc3ac29e4c580d37ed470859c',1,'glm']]], - ['convertlinearsrgbtod50xyz',['convertLinearSRGBToD50XYZ',['../a00311.html#ga1522ba180e3d83d554a734056da031f9',1,'glm']]], - ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00311.html#gaf9e130d9d4ccf51cc99317de7449f369',1,'glm']]], - ['convertlineartosrgb',['convertLinearToSRGB',['../a00289.html#ga42239e7b3da900f7ef37cec7e2476579',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear)'],['../a00289.html#gaace0a21167d13d26116c283009af57f6',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)']]], - ['convertsrgbtolinear',['convertSRGBToLinear',['../a00289.html#ga16c798b7a226b2c3079dedc55083d187',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB)'],['../a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)']]], - ['cos',['cos',['../a00373.html#ga6a41efc740e3b3c937447d3a6284130e',1,'glm']]], - ['cosh',['cosh',['../a00373.html#ga4e260e372742c5f517aca196cf1e62b3',1,'glm']]], - ['cot',['cot',['../a00301.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]], - ['coth',['coth',['../a00301.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]], - ['cross',['cross',['../a00254.html#ga755beaa929c75751dee646cccba37e4c',1,'glm::cross(qua< T, Q > const &q1, qua< T, Q > const &q2)'],['../a00279.html#gaeeec0794212fe84fc9d261de067c9587',1,'glm::cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00322.html#gac36e72b934ea6a9dd313772d7e78fa93',1,'glm::cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)'],['../a00352.html#ga2f32f970411c44cdd38bb98960198385',1,'glm::cross(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#ga9f5f77255756e5668dfee7f0d07ed021',1,'glm::cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)']]], - ['csc',['csc',['../a00301.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]], - ['csch',['csch',['../a00301.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]], - ['cubic',['cubic',['../a00358.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]], - ['cubiceasein',['cubicEaseIn',['../a00318.html#gaff52f746102b94864d105563ba8895ae',1,'glm']]], - ['cubiceaseinout',['cubicEaseInOut',['../a00318.html#ga55134072b42d75452189321d4a2ad91c',1,'glm']]], - ['cubiceaseout',['cubicEaseOut',['../a00318.html#ga40d746385d8bcc5973f5bc6a2340ca91',1,'glm']]] -]; +var searchData= +[ + ['catmullrom',['catmullRom',['../a00358.html#ga8119c04f8210fd0d292757565cd6918d',1,'glm']]], + ['ceil',['ceil',['../a00241.html#gafb9d2a645a23aca12d4d6de0104b7657',1,'glm']]], + ['ceilmultiple',['ceilMultiple',['../a00302.html#ga1d89ac88582aaf4d5dfa5feb4a376fd4',1,'glm::ceilMultiple(genType v, genType Multiple)'],['../a00302.html#gab77fdcc13f8e92d2e0b1b7d7aeab8e9d',1,'glm::ceilMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['ceilpoweroftwo',['ceilPowerOfTwo',['../a00302.html#ga5c3ef36ae32aa4271f1544f92bd578b6',1,'glm::ceilPowerOfTwo(genIUType v)'],['../a00302.html#gab53d4a97c0d3e297be5f693cdfdfe5d2',1,'glm::ceilPowerOfTwo(vec< L, T, Q > const &v)']]], + ['circulareasein',['circularEaseIn',['../a00318.html#ga34508d4b204a321ec26d6086aa047997',1,'glm']]], + ['circulareaseinout',['circularEaseInOut',['../a00318.html#ga0c1027637a5b02d4bb3612aa12599d69',1,'glm']]], + ['circulareaseout',['circularEaseOut',['../a00318.html#ga26fefde9ced9b72745fe21f1a3fe8da7',1,'glm']]], + ['circularrand',['circularRand',['../a00300.html#ga9dd05c36025088fae25b97c869e88517',1,'glm']]], + ['clamp',['clamp',['../a00241.html#ga7cd77683da6361e297c56443fc70806d',1,'glm::clamp(genType x, genType minVal, genType maxVal)'],['../a00241.html#gafba2e0674deb5953878d89483cd6323d',1,'glm::clamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d',1,'glm::clamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)'],['../a00369.html#ga6c0cc6bd1d67ea1008d2592e998bad33',1,'glm::clamp(genType const &Texcoord)']]], + ['closebounded',['closeBounded',['../a00314.html#gab7d89c14c48ad01f720fb5daf8813161',1,'glm']]], + ['closestpointonline',['closestPointOnLine',['../a00310.html#ga36529c278ef716986151d58d151d697d',1,'glm::closestPointOnLine(vec< 3, T, Q > const &point, vec< 3, T, Q > const &a, vec< 3, T, Q > const &b)'],['../a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0',1,'glm::closestPointOnLine(vec< 2, T, Q > const &point, vec< 2, T, Q > const &a, vec< 2, T, Q > const &b)']]], + ['colmajor2',['colMajor2',['../a00338.html#gaaff72f11286e59a4a88ed21a347f284c',1,'glm::colMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gafc25fd44196c92b1397b127aec1281ab',1,'glm::colMajor2(mat< 2, 2, T, Q > const &m)']]], + ['colmajor3',['colMajor3',['../a00338.html#ga1e25b72b085087740c92f5c70f3b051f',1,'glm::colMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#ga86bd0656e787bb7f217607572590af27',1,'glm::colMajor3(mat< 3, 3, T, Q > const &m)']]], + ['colmajor4',['colMajor4',['../a00338.html#gaf4aa6c7e17bfce41a6c13bf6469fab05',1,'glm::colMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gaf3f9511c366c20ba2e4a64c9e4cec2b3',1,'glm::colMajor4(mat< 4, 4, T, Q > const &m)']]], + ['column',['column',['../a00293.html#ga96022eb0d3fae39d89fc7a954e59b374',1,'glm::column(genType const &m, length_t index)'],['../a00293.html#ga9e757377523890e8b80c5843dbe4dd15',1,'glm::column(genType const &m, length_t index, typename genType::col_type const &x)']]], + ['compadd',['compAdd',['../a00316.html#gaf71833350e15e74d31cbf8a3e7f27051',1,'glm']]], + ['compmax',['compMax',['../a00316.html#gabfa4bb19298c8c73d4217ba759c496b6',1,'glm']]], + ['compmin',['compMin',['../a00316.html#gab5d0832b5c7bb01b8d7395973bfb1425',1,'glm']]], + ['compmul',['compMul',['../a00316.html#gae8ab88024197202c9479d33bdc5a8a5d',1,'glm']]], + ['compnormalize',['compNormalize',['../a00316.html#ga8f2b81ada8515875e58cb1667b6b9908',1,'glm']]], + ['compscale',['compScale',['../a00316.html#ga80abc2980d65d675f435d178c36880eb',1,'glm']]], + ['conjugate',['conjugate',['../a00248.html#ga10d7bda73201788ac2ab28cd8d0d409b',1,'glm']]], + ['convertd65xyztod50xyz',['convertD65XYZToD50XYZ',['../a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48',1,'glm']]], + ['convertd65xyztolinearsrgb',['convertD65XYZToLinearSRGB',['../a00311.html#ga5265386fc3ac29e4c580d37ed470859c',1,'glm']]], + ['convertlinearsrgbtod50xyz',['convertLinearSRGBToD50XYZ',['../a00311.html#ga1522ba180e3d83d554a734056da031f9',1,'glm']]], + ['convertlinearsrgbtod65xyz',['convertLinearSRGBToD65XYZ',['../a00311.html#gaf9e130d9d4ccf51cc99317de7449f369',1,'glm']]], + ['convertlineartosrgb',['convertLinearToSRGB',['../a00289.html#ga42239e7b3da900f7ef37cec7e2476579',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear)'],['../a00289.html#gaace0a21167d13d26116c283009af57f6',1,'glm::convertLinearToSRGB(vec< L, T, Q > const &ColorLinear, T Gamma)']]], + ['convertsrgbtolinear',['convertSRGBToLinear',['../a00289.html#ga16c798b7a226b2c3079dedc55083d187',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB)'],['../a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200',1,'glm::convertSRGBToLinear(vec< L, T, Q > const &ColorSRGB, T Gamma)']]], + ['cos',['cos',['../a00373.html#ga6a41efc740e3b3c937447d3a6284130e',1,'glm']]], + ['cosh',['cosh',['../a00373.html#ga4e260e372742c5f517aca196cf1e62b3',1,'glm']]], + ['cot',['cot',['../a00301.html#ga3a7b517a95bbd3ad74da3aea87a66314',1,'glm']]], + ['coth',['coth',['../a00301.html#ga6b8b770eb7198e4dea59d52e6db81442',1,'glm']]], + ['cross',['cross',['../a00254.html#ga755beaa929c75751dee646cccba37e4c',1,'glm::cross(qua< T, Q > const &q1, qua< T, Q > const &q2)'],['../a00279.html#gaeeec0794212fe84fc9d261de067c9587',1,'glm::cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00322.html#gac36e72b934ea6a9dd313772d7e78fa93',1,'glm::cross(vec< 2, T, Q > const &v, vec< 2, T, Q > const &u)'],['../a00352.html#ga2f32f970411c44cdd38bb98960198385',1,'glm::cross(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#ga9f5f77255756e5668dfee7f0d07ed021',1,'glm::cross(vec< 3, T, Q > const &v, qua< T, Q > const &q)']]], + ['csc',['csc',['../a00301.html#ga59dd0005b6474eea48af743b4f14ebbb',1,'glm']]], + ['csch',['csch',['../a00301.html#ga6d95843ff3ca6472ab399ba171d290a0',1,'glm']]], + ['cubic',['cubic',['../a00358.html#ga6b867eb52e2fc933d2e0bf26aabc9a70',1,'glm']]], + ['cubiceasein',['cubicEaseIn',['../a00318.html#gaff52f746102b94864d105563ba8895ae',1,'glm']]], + ['cubiceaseinout',['cubicEaseInOut',['../a00318.html#ga55134072b42d75452189321d4a2ad91c',1,'glm']]], + ['cubiceaseout',['cubicEaseOut',['../a00318.html#ga40d746385d8bcc5973f5bc6a2340ca91',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_3.html b/external/include/glm-0.9.9.8/doc/api/search/functions_3.html index 0d91efead6..4e302d69b9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_3.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_3.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_3.js b/external/include/glm-0.9.9.8/doc/api/search/functions_3.js index 1cd259ffaf..5ae636356b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_3.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_3.js @@ -1,24 +1,24 @@ -var searchData= -[ - ['decompose',['decompose',['../a00335.html#gac0e342656ba09a9bc97c57182ba73124',1,'glm']]], - ['degrees',['degrees',['../a00373.html#ga8faec9e303538065911ba8b3caf7326b',1,'glm']]], - ['derivedeuleranglex',['derivedEulerAngleX',['../a00319.html#ga994b8186b3b80d91cf90bc403164692f',1,'glm']]], - ['derivedeulerangley',['derivedEulerAngleY',['../a00319.html#ga0a4c56ecce7abcb69508ebe6313e9d10',1,'glm']]], - ['derivedeuleranglez',['derivedEulerAngleZ',['../a00319.html#gae8b397348201c42667be983ba3f344df',1,'glm']]], - ['determinant',['determinant',['../a00371.html#gad7928795124768e058f99dce270f5c8d',1,'glm']]], - ['diagonal2x2',['diagonal2x2',['../a00339.html#ga58a32a2beeb2478dae2a721368cdd4ac',1,'glm']]], - ['diagonal2x3',['diagonal2x3',['../a00339.html#gab69f900206a430e2875a5a073851e175',1,'glm']]], - ['diagonal2x4',['diagonal2x4',['../a00339.html#ga30b4dbfed60a919d66acc8a63bcdc549',1,'glm']]], - ['diagonal3x2',['diagonal3x2',['../a00339.html#ga832c805d5130d28ad76236958d15b47d',1,'glm']]], - ['diagonal3x3',['diagonal3x3',['../a00339.html#ga5487ff9cdbc8e04d594adef1bcb16ee0',1,'glm']]], - ['diagonal3x4',['diagonal3x4',['../a00339.html#gad7551139cff0c4208d27f0ad3437833e',1,'glm']]], - ['diagonal4x2',['diagonal4x2',['../a00339.html#gacb8969e6543ba775c6638161a37ac330',1,'glm']]], - ['diagonal4x3',['diagonal4x3',['../a00339.html#gae235def5049d6740f0028433f5e13f90',1,'glm']]], - ['diagonal4x4',['diagonal4x4',['../a00339.html#ga0b4cd8dea436791b072356231ee8578f',1,'glm']]], - ['diskrand',['diskRand',['../a00300.html#gaa0b18071f3f97dbf8bcf6f53c6fe5f73',1,'glm']]], - ['distance',['distance',['../a00279.html#gaa68de6c53e20dfb2dac2d20197562e3f',1,'glm']]], - ['distance2',['distance2',['../a00343.html#ga85660f1b79f66c09c7b5a6f80e68c89f',1,'glm']]], - ['dot',['dot',['../a00254.html#ga84865a56acb8fbd7bc4f5c0b928e3cfc',1,'glm::dot(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00279.html#gaad6c5d9d39bdc0bf43baf1b22e147a0a',1,'glm::dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['dual_5fquat_5fidentity',['dual_quat_identity',['../a00317.html#ga0b35c0e30df8a875dbaa751e0bd800e0',1,'glm']]], - ['dualquat_5fcast',['dualquat_cast',['../a00317.html#gac4064ff813759740201765350eac4236',1,'glm::dualquat_cast(mat< 2, 4, T, Q > const &x)'],['../a00317.html#ga91025ebdca0f4ea54da08497b00e8c84',1,'glm::dualquat_cast(mat< 3, 4, T, Q > const &x)']]] -]; +var searchData= +[ + ['decompose',['decompose',['../a00335.html#gac0e342656ba09a9bc97c57182ba73124',1,'glm']]], + ['degrees',['degrees',['../a00373.html#ga8faec9e303538065911ba8b3caf7326b',1,'glm']]], + ['derivedeuleranglex',['derivedEulerAngleX',['../a00319.html#ga994b8186b3b80d91cf90bc403164692f',1,'glm']]], + ['derivedeulerangley',['derivedEulerAngleY',['../a00319.html#ga0a4c56ecce7abcb69508ebe6313e9d10',1,'glm']]], + ['derivedeuleranglez',['derivedEulerAngleZ',['../a00319.html#gae8b397348201c42667be983ba3f344df',1,'glm']]], + ['determinant',['determinant',['../a00371.html#gad7928795124768e058f99dce270f5c8d',1,'glm']]], + ['diagonal2x2',['diagonal2x2',['../a00339.html#ga58a32a2beeb2478dae2a721368cdd4ac',1,'glm']]], + ['diagonal2x3',['diagonal2x3',['../a00339.html#gab69f900206a430e2875a5a073851e175',1,'glm']]], + ['diagonal2x4',['diagonal2x4',['../a00339.html#ga30b4dbfed60a919d66acc8a63bcdc549',1,'glm']]], + ['diagonal3x2',['diagonal3x2',['../a00339.html#ga832c805d5130d28ad76236958d15b47d',1,'glm']]], + ['diagonal3x3',['diagonal3x3',['../a00339.html#ga5487ff9cdbc8e04d594adef1bcb16ee0',1,'glm']]], + ['diagonal3x4',['diagonal3x4',['../a00339.html#gad7551139cff0c4208d27f0ad3437833e',1,'glm']]], + ['diagonal4x2',['diagonal4x2',['../a00339.html#gacb8969e6543ba775c6638161a37ac330',1,'glm']]], + ['diagonal4x3',['diagonal4x3',['../a00339.html#gae235def5049d6740f0028433f5e13f90',1,'glm']]], + ['diagonal4x4',['diagonal4x4',['../a00339.html#ga0b4cd8dea436791b072356231ee8578f',1,'glm']]], + ['diskrand',['diskRand',['../a00300.html#gaa0b18071f3f97dbf8bcf6f53c6fe5f73',1,'glm']]], + ['distance',['distance',['../a00279.html#gaa68de6c53e20dfb2dac2d20197562e3f',1,'glm']]], + ['distance2',['distance2',['../a00343.html#ga85660f1b79f66c09c7b5a6f80e68c89f',1,'glm']]], + ['dot',['dot',['../a00254.html#ga84865a56acb8fbd7bc4f5c0b928e3cfc',1,'glm::dot(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00279.html#gaad6c5d9d39bdc0bf43baf1b22e147a0a',1,'glm::dot(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['dual_5fquat_5fidentity',['dual_quat_identity',['../a00317.html#ga0b35c0e30df8a875dbaa751e0bd800e0',1,'glm']]], + ['dualquat_5fcast',['dualquat_cast',['../a00317.html#gac4064ff813759740201765350eac4236',1,'glm::dualquat_cast(mat< 2, 4, T, Q > const &x)'],['../a00317.html#ga91025ebdca0f4ea54da08497b00e8c84',1,'glm::dualquat_cast(mat< 3, 4, T, Q > const &x)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_4.html b/external/include/glm-0.9.9.8/doc/api/search/functions_4.html index b8441bfedb..58ca83a616 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_4.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_4.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_4.js b/external/include/glm-0.9.9.8/doc/api/search/functions_4.js index 722871e6c4..5937b38a2f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_4.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_4.js @@ -1,55 +1,55 @@ -var searchData= -[ - ['e',['e',['../a00290.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]], - ['elasticeasein',['elasticEaseIn',['../a00318.html#ga230918eccee4e113d10ec5b8cdc58695',1,'glm']]], - ['elasticeaseinout',['elasticEaseInOut',['../a00318.html#ga2db4ac8959559b11b4029e54812908d6',1,'glm']]], - ['elasticeaseout',['elasticEaseOut',['../a00318.html#gace9c9d1bdf88bf2ab1e7cdefa54c7365',1,'glm']]], - ['epsilon',['epsilon',['../a00259.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]], - ['epsilonequal',['epsilonEqual',['../a00291.html#ga91b417866cafadd076004778217a1844',1,'glm::epsilonEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &x, genType const &y, genType const &epsilon)']]], - ['epsilonnotequal',['epsilonNotEqual',['../a00291.html#gaf840d33b9a5261ec78dcd5125743b025',1,'glm::epsilonNotEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)']]], - ['equal',['equal',['../a00246.html#ga27e90dcb7941c9b70e295dc3f6f6369f',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#gaf5d687d70d11708b68c36c6db5777040',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gafa6a053e81179fa4292b35651c83c3fb',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gab3a93f19e72e9141f50527c9de21d0c0',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#ga5305af376173f1902719fa309bbae671',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gad7827af0549504ff1cd6a359786acc7a',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#gaa001eecb91106463169a8e5ef1577b39',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga2ac7651a2fa7354f2da610dbd50d28e2',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga37d261a65f69babc82cec2ae1af7145f',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga2b46cb50911e97b32f4cd743c2c69771',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga7da2b8605be7f245b39cb6fbf6d9d581',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#gab4c5cfdaa70834421397a85aa83ad946',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['euclidean',['euclidean',['../a00350.html#ga1821d5b3324201e60a9e2823d0b5d0c8',1,'glm']]], - ['euler',['euler',['../a00290.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]], - ['eulerangles',['eulerAngles',['../a00299.html#gaf4dd967dead22dd932fc7460ceecb03f',1,'glm']]], - ['euleranglex',['eulerAngleX',['../a00319.html#gafba6282e4ed3ff8b5c75331abfba3489',1,'glm']]], - ['euleranglexy',['eulerAngleXY',['../a00319.html#ga64036577ee17a2d24be0dbc05881d4e2',1,'glm']]], - ['euleranglexyx',['eulerAngleXYX',['../a00319.html#ga29bd0787a28a6648159c0d6e69706066',1,'glm']]], - ['euleranglexyz',['eulerAngleXYZ',['../a00319.html#ga1975e0f0e9bed7f716dc9946da2ab645',1,'glm']]], - ['euleranglexz',['eulerAngleXZ',['../a00319.html#gaa39bd323c65c2fc0a1508be33a237ce9',1,'glm']]], - ['euleranglexzx',['eulerAngleXZX',['../a00319.html#ga60171c79a17aec85d7891ae1d1533ec9',1,'glm']]], - ['euleranglexzy',['eulerAngleXZY',['../a00319.html#ga996dce12a60d8a674ba6737a535fa910',1,'glm']]], - ['eulerangley',['eulerAngleY',['../a00319.html#gab84bf4746805fd69b8ecbb230e3974c5',1,'glm']]], - ['eulerangleyx',['eulerAngleYX',['../a00319.html#ga4f57e6dd25c3cffbbd4daa6ef3f4486d',1,'glm']]], - ['eulerangleyxy',['eulerAngleYXY',['../a00319.html#ga750fba9894117f87bcc529d7349d11de',1,'glm']]], - ['eulerangleyxz',['eulerAngleYXZ',['../a00319.html#gab8ba99a9814f6d9edf417b6c6d5b0c10',1,'glm']]], - ['eulerangleyz',['eulerAngleYZ',['../a00319.html#ga220379e10ac8cca55e275f0c9018fed9',1,'glm']]], - ['eulerangleyzx',['eulerAngleYZX',['../a00319.html#ga08bef16357b8f9b3051b3dcaec4b7848',1,'glm']]], - ['eulerangleyzy',['eulerAngleYZY',['../a00319.html#ga5e5e40abc27630749b42b3327c76d6e4',1,'glm']]], - ['euleranglez',['eulerAngleZ',['../a00319.html#ga5b3935248bb6c3ec6b0d9297d406e251',1,'glm']]], - ['euleranglezx',['eulerAngleZX',['../a00319.html#ga483903115cd4059228961046a28d69b5',1,'glm']]], - ['euleranglezxy',['eulerAngleZXY',['../a00319.html#gab4505c54d2dd654df4569fd1f04c43aa',1,'glm']]], - ['euleranglezxz',['eulerAngleZXZ',['../a00319.html#ga178f966c52b01e4d65e31ebd007e3247',1,'glm']]], - ['euleranglezy',['eulerAngleZY',['../a00319.html#ga400b2bd5984999efab663f3a68e1d020',1,'glm']]], - ['euleranglezyx',['eulerAngleZYX',['../a00319.html#ga2e61f1e39069c47530acab9167852dd6',1,'glm']]], - ['euleranglezyz',['eulerAngleZYZ',['../a00319.html#gacd795f1dbecaf74974f9c76bbcca6830',1,'glm']]], - ['exp',['exp',['../a00242.html#ga071566cadc7505455e611f2a0353f4d4',1,'glm::exp(vec< L, T, Q > const &v)'],['../a00256.html#gaab2d37ef7265819f1d2939b9dc2c52ac',1,'glm::exp(qua< T, Q > const &q)']]], - ['exp2',['exp2',['../a00242.html#gaff17ace6b579a03bf223ed4d1ed2cd16',1,'glm']]], - ['exponentialeasein',['exponentialEaseIn',['../a00318.html#ga7f24ee9219ab4c84dc8de24be84c1e3c',1,'glm']]], - ['exponentialeaseinout',['exponentialEaseInOut',['../a00318.html#ga232fb6dc093c5ce94bee105ff2947501',1,'glm']]], - ['exponentialeaseout',['exponentialEaseOut',['../a00318.html#ga517f2bcfd15bc2c25c466ae50808efc3',1,'glm']]], - ['extend',['extend',['../a00320.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]], - ['extracteuleranglexyx',['extractEulerAngleXYX',['../a00319.html#gaf1077a72171d0f3b08f022ab5ff88af7',1,'glm']]], - ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00319.html#gacea701562f778c1da4d3a0a1cf091000',1,'glm']]], - ['extracteuleranglexzx',['extractEulerAngleXZX',['../a00319.html#gacf0bc6c031f25fa3ee0055b62c8260d0',1,'glm']]], - ['extracteuleranglexzy',['extractEulerAngleXZY',['../a00319.html#gabe5a65d8eb1cd873c8de121cce1a15ed',1,'glm']]], - ['extracteulerangleyxy',['extractEulerAngleYXY',['../a00319.html#gaab8868556361a190db94374e9983ed39',1,'glm']]], - ['extracteulerangleyxz',['extractEulerAngleYXZ',['../a00319.html#gaf0937518e63037335a0e8358b6f053c5',1,'glm']]], - ['extracteulerangleyzx',['extractEulerAngleYZX',['../a00319.html#ga9049b78466796c0de2971756e25b93d3',1,'glm']]], - ['extracteulerangleyzy',['extractEulerAngleYZY',['../a00319.html#ga11dad972c109e4bf8694c915017c44a6',1,'glm']]], - ['extracteuleranglezxy',['extractEulerAngleZXY',['../a00319.html#ga81fbbca2ba0c778b9662d5355b4e2363',1,'glm']]], - ['extracteuleranglezxz',['extractEulerAngleZXZ',['../a00319.html#ga59359fef9bad92afaca55e193f91e702',1,'glm']]], - ['extracteuleranglezyx',['extractEulerAngleZYX',['../a00319.html#ga2d6c11a4abfa60c565483cee2d3f7665',1,'glm']]], - ['extracteuleranglezyz',['extractEulerAngleZYZ',['../a00319.html#gafdfa880a64b565223550c2d3938b1aeb',1,'glm']]], - ['extractmatrixrotation',['extractMatrixRotation',['../a00337.html#gabbc1c7385a145f04b5c54228965df145',1,'glm']]], - ['extractrealcomponent',['extractRealComponent',['../a00352.html#ga321953c1b2e7befe6f5dcfddbfc6b76b',1,'glm']]] -]; +var searchData= +[ + ['e',['e',['../a00290.html#ga4b7956eb6e2fbedfc7cf2e46e85c5139',1,'glm']]], + ['elasticeasein',['elasticEaseIn',['../a00318.html#ga230918eccee4e113d10ec5b8cdc58695',1,'glm']]], + ['elasticeaseinout',['elasticEaseInOut',['../a00318.html#ga2db4ac8959559b11b4029e54812908d6',1,'glm']]], + ['elasticeaseout',['elasticEaseOut',['../a00318.html#gace9c9d1bdf88bf2ab1e7cdefa54c7365',1,'glm']]], + ['epsilon',['epsilon',['../a00259.html#ga2a1e57fc5592b69cfae84174cbfc9429',1,'glm']]], + ['epsilonequal',['epsilonEqual',['../a00291.html#ga91b417866cafadd076004778217a1844',1,'glm::epsilonEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#gaa7f227999ca09e7ca994e8b35aba47bb',1,'glm::epsilonEqual(genType const &x, genType const &y, genType const &epsilon)']]], + ['epsilonnotequal',['epsilonNotEqual',['../a00291.html#gaf840d33b9a5261ec78dcd5125743b025',1,'glm::epsilonNotEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T const &epsilon)'],['../a00291.html#ga50a92103fb0cbd796908e1bf20c79aaf',1,'glm::epsilonNotEqual(genType const &x, genType const &y, genType const &epsilon)']]], + ['equal',['equal',['../a00246.html#ga27e90dcb7941c9b70e295dc3f6f6369f',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#gaf5d687d70d11708b68c36c6db5777040',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gafa6a053e81179fa4292b35651c83c3fb',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gab3a93f19e72e9141f50527c9de21d0c0',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#ga5305af376173f1902719fa309bbae671',1,'glm::equal(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gad7827af0549504ff1cd6a359786acc7a',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#gaa001eecb91106463169a8e5ef1577b39',1,'glm::equal(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga2ac7651a2fa7354f2da610dbd50d28e2',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga37d261a65f69babc82cec2ae1af7145f',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga2b46cb50911e97b32f4cd743c2c69771',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga7da2b8605be7f245b39cb6fbf6d9d581',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#gab4c5cfdaa70834421397a85aa83ad946',1,'glm::equal(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['euclidean',['euclidean',['../a00350.html#ga1821d5b3324201e60a9e2823d0b5d0c8',1,'glm']]], + ['euler',['euler',['../a00290.html#gad8fe2e6f90bce9d829e9723b649fbd42',1,'glm']]], + ['eulerangles',['eulerAngles',['../a00299.html#gaf4dd967dead22dd932fc7460ceecb03f',1,'glm']]], + ['euleranglex',['eulerAngleX',['../a00319.html#gafba6282e4ed3ff8b5c75331abfba3489',1,'glm']]], + ['euleranglexy',['eulerAngleXY',['../a00319.html#ga64036577ee17a2d24be0dbc05881d4e2',1,'glm']]], + ['euleranglexyx',['eulerAngleXYX',['../a00319.html#ga29bd0787a28a6648159c0d6e69706066',1,'glm']]], + ['euleranglexyz',['eulerAngleXYZ',['../a00319.html#ga1975e0f0e9bed7f716dc9946da2ab645',1,'glm']]], + ['euleranglexz',['eulerAngleXZ',['../a00319.html#gaa39bd323c65c2fc0a1508be33a237ce9',1,'glm']]], + ['euleranglexzx',['eulerAngleXZX',['../a00319.html#ga60171c79a17aec85d7891ae1d1533ec9',1,'glm']]], + ['euleranglexzy',['eulerAngleXZY',['../a00319.html#ga996dce12a60d8a674ba6737a535fa910',1,'glm']]], + ['eulerangley',['eulerAngleY',['../a00319.html#gab84bf4746805fd69b8ecbb230e3974c5',1,'glm']]], + ['eulerangleyx',['eulerAngleYX',['../a00319.html#ga4f57e6dd25c3cffbbd4daa6ef3f4486d',1,'glm']]], + ['eulerangleyxy',['eulerAngleYXY',['../a00319.html#ga750fba9894117f87bcc529d7349d11de',1,'glm']]], + ['eulerangleyxz',['eulerAngleYXZ',['../a00319.html#gab8ba99a9814f6d9edf417b6c6d5b0c10',1,'glm']]], + ['eulerangleyz',['eulerAngleYZ',['../a00319.html#ga220379e10ac8cca55e275f0c9018fed9',1,'glm']]], + ['eulerangleyzx',['eulerAngleYZX',['../a00319.html#ga08bef16357b8f9b3051b3dcaec4b7848',1,'glm']]], + ['eulerangleyzy',['eulerAngleYZY',['../a00319.html#ga5e5e40abc27630749b42b3327c76d6e4',1,'glm']]], + ['euleranglez',['eulerAngleZ',['../a00319.html#ga5b3935248bb6c3ec6b0d9297d406e251',1,'glm']]], + ['euleranglezx',['eulerAngleZX',['../a00319.html#ga483903115cd4059228961046a28d69b5',1,'glm']]], + ['euleranglezxy',['eulerAngleZXY',['../a00319.html#gab4505c54d2dd654df4569fd1f04c43aa',1,'glm']]], + ['euleranglezxz',['eulerAngleZXZ',['../a00319.html#ga178f966c52b01e4d65e31ebd007e3247',1,'glm']]], + ['euleranglezy',['eulerAngleZY',['../a00319.html#ga400b2bd5984999efab663f3a68e1d020',1,'glm']]], + ['euleranglezyx',['eulerAngleZYX',['../a00319.html#ga2e61f1e39069c47530acab9167852dd6',1,'glm']]], + ['euleranglezyz',['eulerAngleZYZ',['../a00319.html#gacd795f1dbecaf74974f9c76bbcca6830',1,'glm']]], + ['exp',['exp',['../a00242.html#ga071566cadc7505455e611f2a0353f4d4',1,'glm::exp(vec< L, T, Q > const &v)'],['../a00256.html#gaab2d37ef7265819f1d2939b9dc2c52ac',1,'glm::exp(qua< T, Q > const &q)']]], + ['exp2',['exp2',['../a00242.html#gaff17ace6b579a03bf223ed4d1ed2cd16',1,'glm']]], + ['exponentialeasein',['exponentialEaseIn',['../a00318.html#ga7f24ee9219ab4c84dc8de24be84c1e3c',1,'glm']]], + ['exponentialeaseinout',['exponentialEaseInOut',['../a00318.html#ga232fb6dc093c5ce94bee105ff2947501',1,'glm']]], + ['exponentialeaseout',['exponentialEaseOut',['../a00318.html#ga517f2bcfd15bc2c25c466ae50808efc3',1,'glm']]], + ['extend',['extend',['../a00320.html#ga8140caae613b0f847ab0d7175dc03a37',1,'glm']]], + ['extracteuleranglexyx',['extractEulerAngleXYX',['../a00319.html#gaf1077a72171d0f3b08f022ab5ff88af7',1,'glm']]], + ['extracteuleranglexyz',['extractEulerAngleXYZ',['../a00319.html#gacea701562f778c1da4d3a0a1cf091000',1,'glm']]], + ['extracteuleranglexzx',['extractEulerAngleXZX',['../a00319.html#gacf0bc6c031f25fa3ee0055b62c8260d0',1,'glm']]], + ['extracteuleranglexzy',['extractEulerAngleXZY',['../a00319.html#gabe5a65d8eb1cd873c8de121cce1a15ed',1,'glm']]], + ['extracteulerangleyxy',['extractEulerAngleYXY',['../a00319.html#gaab8868556361a190db94374e9983ed39',1,'glm']]], + ['extracteulerangleyxz',['extractEulerAngleYXZ',['../a00319.html#gaf0937518e63037335a0e8358b6f053c5',1,'glm']]], + ['extracteulerangleyzx',['extractEulerAngleYZX',['../a00319.html#ga9049b78466796c0de2971756e25b93d3',1,'glm']]], + ['extracteulerangleyzy',['extractEulerAngleYZY',['../a00319.html#ga11dad972c109e4bf8694c915017c44a6',1,'glm']]], + ['extracteuleranglezxy',['extractEulerAngleZXY',['../a00319.html#ga81fbbca2ba0c778b9662d5355b4e2363',1,'glm']]], + ['extracteuleranglezxz',['extractEulerAngleZXZ',['../a00319.html#ga59359fef9bad92afaca55e193f91e702',1,'glm']]], + ['extracteuleranglezyx',['extractEulerAngleZYX',['../a00319.html#ga2d6c11a4abfa60c565483cee2d3f7665',1,'glm']]], + ['extracteuleranglezyz',['extractEulerAngleZYZ',['../a00319.html#gafdfa880a64b565223550c2d3938b1aeb',1,'glm']]], + ['extractmatrixrotation',['extractMatrixRotation',['../a00337.html#gabbc1c7385a145f04b5c54228965df145',1,'glm']]], + ['extractrealcomponent',['extractRealComponent',['../a00352.html#ga321953c1b2e7befe6f5dcfddbfc6b76b',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_5.html b/external/include/glm-0.9.9.8/doc/api/search/functions_5.html index 1931082621..5f9f05aeb2 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_5.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_5.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_5.js b/external/include/glm-0.9.9.8/doc/api/search/functions_5.js index cea2573a1f..7eab90b78e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_5.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_5.js @@ -1,51 +1,51 @@ -var searchData= -[ - ['faceforward',['faceforward',['../a00279.html#ga7aed0a36c738169402404a3a5d54e43b',1,'glm']]], - ['factorial',['factorial',['../a00330.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]], - ['fastacos',['fastAcos',['../a00325.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]], - ['fastasin',['fastAsin',['../a00325.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]], - ['fastatan',['fastAtan',['../a00325.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00325.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]], - ['fastcos',['fastCos',['../a00325.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]], - ['fastdistance',['fastDistance',['../a00324.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00324.html#ga42d3e771fa7cb3c60d828e315829df19',1,'glm::fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['fastexp',['fastExp',['../a00323.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00323.html#ga3ba6153aec6bd74628f8b00530aa8d58',1,'glm::fastExp(vec< L, T, Q > const &x)']]], - ['fastexp2',['fastExp2',['../a00323.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00323.html#gacaaed8b67d20d244b7de217e7816c1b6',1,'glm::fastExp2(vec< L, T, Q > const &x)']]], - ['fastinversesqrt',['fastInverseSqrt',['../a00324.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00324.html#gadcd7be12b1e5ee182141359d4c45dd24',1,'glm::fastInverseSqrt(vec< L, T, Q > const &x)']]], - ['fastlength',['fastLength',['../a00324.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00324.html#ga90f66be92ef61e705c005e7b3209edb8',1,'glm::fastLength(vec< L, T, Q > const &x)']]], - ['fastlog',['fastLog',['../a00323.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00323.html#ga937256993a7219e73f186bb348fe6be8',1,'glm::fastLog(vec< L, T, Q > const &x)']]], - ['fastlog2',['fastLog2',['../a00323.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00323.html#ga7562043539194ccc24649f8475bc5584',1,'glm::fastLog2(vec< L, T, Q > const &x)']]], - ['fastmix',['fastMix',['../a00352.html#ga264e10708d58dd0ff53b7902a2bd2561',1,'glm']]], - ['fastnormalize',['fastNormalize',['../a00324.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]], - ['fastnormalizedot',['fastNormalizeDot',['../a00345.html#ga2746fb9b5bd22b06b2f7c8babba5de9e',1,'glm']]], - ['fastpow',['fastPow',['../a00323.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00323.html#ga15325a8ed2d1c4ed2412c4b3b3927aa2',1,'glm::fastPow(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00323.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00323.html#ga1abe488c0829da5b9de70ac64aeaa7e5',1,'glm::fastPow(vec< L, T, Q > const &x)']]], - ['fastsin',['fastSin',['../a00325.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]], - ['fastsqrt',['fastSqrt',['../a00324.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00324.html#gae83f0c03614f73eae5478c5b6274ee6d',1,'glm::fastSqrt(vec< L, T, Q > const &x)']]], - ['fasttan',['fastTan',['../a00325.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]], - ['fclamp',['fclamp',['../a00321.html#ga1e28539d3a46965ed9ef92ec7cb3b18a',1,'glm::fclamp(genType x, genType minVal, genType maxVal)'],['../a00321.html#ga60796d08903489ee185373593bc16b9d',1,'glm::fclamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00321.html#ga5c15fa4709763c269c86c0b8b3aa2297',1,'glm::fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)']]], - ['findlsb',['findLSB',['../a00370.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00370.html#ga4454c0331d6369888c28ab677f4810c7',1,'glm::findLSB(vec< L, T, Q > const &v)']]], - ['findmsb',['findMSB',['../a00370.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00370.html#ga39ac4d52028bb6ab08db5ad6562c2872',1,'glm::findMSB(vec< L, T, Q > const &v)']]], - ['findnsb',['findNSB',['../a00261.html#ga2777901e41ad6e1e9d0ad6cc855d1075',1,'glm::findNSB(genIUType x, int significantBitCount)'],['../a00274.html#gaff61eca266da315002a3db92ff0dd604',1,'glm::findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)']]], - ['fliplr',['fliplr',['../a00336.html#gaf39f4e5f78eb29c1a90277d45b9b3feb',1,'glm']]], - ['flipud',['flipud',['../a00336.html#ga85003371f0ba97380dd25e8905de1870',1,'glm']]], - ['floatbitstoint',['floatBitsToInt',['../a00241.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &v)'],['../a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed',1,'glm::floatBitsToInt(vec< L, float, Q > const &v)']]], - ['floatbitstouint',['floatBitsToUint',['../a00241.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &v)'],['../a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db',1,'glm::floatBitsToUint(vec< L, float, Q > const &v)']]], - ['floor',['floor',['../a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d',1,'glm']]], - ['floor_5flog2',['floor_log2',['../a00330.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]], - ['floormultiple',['floorMultiple',['../a00302.html#ga2ffa3cd5f2ea746ee1bf57c46da6315e',1,'glm::floorMultiple(genType v, genType Multiple)'],['../a00302.html#gacdd8901448f51f0b192380e422fae3e4',1,'glm::floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['floorpoweroftwo',['floorPowerOfTwo',['../a00302.html#gafe273a57935d04c9db677bf67f9a71f4',1,'glm::floorPowerOfTwo(genIUType v)'],['../a00302.html#gaf0d591a8fca8ddb9289cdeb44b989c2d',1,'glm::floorPowerOfTwo(vec< L, T, Q > const &v)']]], - ['fma',['fma',['../a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]], - ['fmax',['fmax',['../a00258.html#ga36920478565cf608e93064283ce06421',1,'glm::fmax(T a, T b)'],['../a00258.html#ga0007bba71ca451ac70e99d28dfbeaab9',1,'glm::fmax(T a, T b, T C)'],['../a00258.html#ga27e260b1ff4d04c3ad4b864d26cbaf08',1,'glm::fmax(T a, T b, T C, T D)'],['../a00267.html#gad66b6441f7200db16c9f341711733c56',1,'glm::fmax(vec< L, T, Q > const &a, T b)'],['../a00267.html#ga8df4be3f48d6717c40ea788fd30deebf',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b)'],['../a00267.html#ga0f04ba924294dae4234ca93ede23229a',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4ed3eb250ccbe17bfe8ded8a6b72d230',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gae5792cb2b51190057e4aea027eb56f81',1,'glm::fmax(genType x, genType y)']]], - ['fmin',['fmin',['../a00258.html#ga7b2b438a765e2a62098c79eb212f28f0',1,'glm::fmin(T a, T b)'],['../a00258.html#ga1a95fe4cf5437e8133f1093fe9726a64',1,'glm::fmin(T a, T b, T c)'],['../a00258.html#ga3d6f9c6c16bfd6f38f2c4f8076e8b661',1,'glm::fmin(T a, T b, T c, T d)'],['../a00267.html#gae989203363cff9eab5093630df4fe071',1,'glm::fmin(vec< L, T, Q > const &x, T y)'],['../a00267.html#ga7c42e93cd778c9181d1cdeea4d3e43bd',1,'glm::fmin(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00267.html#ga7e62739055b49189d9355471f78fe000',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4a543dd7d22ad1f3b8b839f808a9d93c',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gaa3200559611ac5b9b9ae7283547916a7',1,'glm::fmin(genType x, genType y)']]], - ['fmod',['fmod',['../a00314.html#gae5e80425df9833164ad469e83b475fb4',1,'glm']]], - ['four_5fover_5fpi',['four_over_pi',['../a00290.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]], - ['fract',['fract',['../a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm::fract(genType x)'],['../a00241.html#ga2df623004f634b440d61e018d62c751b',1,'glm::fract(vec< L, T, Q > const &x)']]], - ['frexp',['frexp',['../a00241.html#gaddf5ef73283c171730e0bcc11833fa81',1,'glm']]], - ['frustum',['frustum',['../a00243.html#ga0bcd4542e0affc63a0b8c08fcb839ea9',1,'glm']]], - ['frustumlh',['frustumLH',['../a00243.html#gae4277c37f61d81da01bc9db14ea90296',1,'glm']]], - ['frustumlh_5fno',['frustumLH_NO',['../a00243.html#ga259520cad03b3f8bca9417920035ed01',1,'glm']]], - ['frustumlh_5fzo',['frustumLH_ZO',['../a00243.html#ga94218b094862d17798370242680b9030',1,'glm']]], - ['frustumno',['frustumNO',['../a00243.html#gae34ec664ad44860bf4b5ba631f0e0e90',1,'glm']]], - ['frustumrh',['frustumRH',['../a00243.html#ga4366ab45880c6c5f8b3e8c371ca4b136',1,'glm']]], - ['frustumrh_5fno',['frustumRH_NO',['../a00243.html#ga9236c8439f21be186b79c97b588836b9',1,'glm']]], - ['frustumrh_5fzo',['frustumRH_ZO',['../a00243.html#ga7654a9227f14d5382786b9fc0eb5692d',1,'glm']]], - ['frustumzo',['frustumZO',['../a00243.html#gaa73322e152edf50cf30a6edac342a757',1,'glm']]] -]; +var searchData= +[ + ['faceforward',['faceforward',['../a00279.html#ga7aed0a36c738169402404a3a5d54e43b',1,'glm']]], + ['factorial',['factorial',['../a00330.html#ga8cbd3120905f398ec321b5d1836e08fb',1,'glm']]], + ['fastacos',['fastAcos',['../a00325.html#ga9721d63356e5d94fdc4b393a426ab26b',1,'glm']]], + ['fastasin',['fastAsin',['../a00325.html#ga562cb62c51fbfe7fac7db0bce706b81f',1,'glm']]], + ['fastatan',['fastAtan',['../a00325.html#ga8d197c6ef564f5e5d59af3b3f8adcc2c',1,'glm::fastAtan(T y, T x)'],['../a00325.html#gae25de86a968490ff56856fa425ec9d30',1,'glm::fastAtan(T angle)']]], + ['fastcos',['fastCos',['../a00325.html#gab34c8b45c23c0165a64dcecfcc3b302a',1,'glm']]], + ['fastdistance',['fastDistance',['../a00324.html#gaac333418d0c4e0cc6d3d219ed606c238',1,'glm::fastDistance(genType x, genType y)'],['../a00324.html#ga42d3e771fa7cb3c60d828e315829df19',1,'glm::fastDistance(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['fastexp',['fastExp',['../a00323.html#gaa3180ac8f96ab37ab96e0cacaf608e10',1,'glm::fastExp(T x)'],['../a00323.html#ga3ba6153aec6bd74628f8b00530aa8d58',1,'glm::fastExp(vec< L, T, Q > const &x)']]], + ['fastexp2',['fastExp2',['../a00323.html#ga0af50585955eb14c60bb286297fabab2',1,'glm::fastExp2(T x)'],['../a00323.html#gacaaed8b67d20d244b7de217e7816c1b6',1,'glm::fastExp2(vec< L, T, Q > const &x)']]], + ['fastinversesqrt',['fastInverseSqrt',['../a00324.html#ga7f081b14d9c7035c8714eba5f7f75a8f',1,'glm::fastInverseSqrt(genType x)'],['../a00324.html#gadcd7be12b1e5ee182141359d4c45dd24',1,'glm::fastInverseSqrt(vec< L, T, Q > const &x)']]], + ['fastlength',['fastLength',['../a00324.html#gafe697d6287719538346bbdf8b1367c59',1,'glm::fastLength(genType x)'],['../a00324.html#ga90f66be92ef61e705c005e7b3209edb8',1,'glm::fastLength(vec< L, T, Q > const &x)']]], + ['fastlog',['fastLog',['../a00323.html#gae1bdc97b7f96a600e29c753f1cd4388a',1,'glm::fastLog(T x)'],['../a00323.html#ga937256993a7219e73f186bb348fe6be8',1,'glm::fastLog(vec< L, T, Q > const &x)']]], + ['fastlog2',['fastLog2',['../a00323.html#ga6e98118685f6dc9e05fbb13dd5e5234e',1,'glm::fastLog2(T x)'],['../a00323.html#ga7562043539194ccc24649f8475bc5584',1,'glm::fastLog2(vec< L, T, Q > const &x)']]], + ['fastmix',['fastMix',['../a00352.html#ga264e10708d58dd0ff53b7902a2bd2561',1,'glm']]], + ['fastnormalize',['fastNormalize',['../a00324.html#ga3b02c1d6e0c754144e2f1e110bf9f16c',1,'glm']]], + ['fastnormalizedot',['fastNormalizeDot',['../a00345.html#ga2746fb9b5bd22b06b2f7c8babba5de9e',1,'glm']]], + ['fastpow',['fastPow',['../a00323.html#ga5340e98a11fcbbd936ba6e983a154d50',1,'glm::fastPow(genType x, genType y)'],['../a00323.html#ga15325a8ed2d1c4ed2412c4b3b3927aa2',1,'glm::fastPow(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00323.html#ga7f2562db9c3e02ae76169c36b086c3f6',1,'glm::fastPow(genTypeT x, genTypeU y)'],['../a00323.html#ga1abe488c0829da5b9de70ac64aeaa7e5',1,'glm::fastPow(vec< L, T, Q > const &x)']]], + ['fastsin',['fastSin',['../a00325.html#ga0aab3257bb3b628d10a1e0483e2c6915',1,'glm']]], + ['fastsqrt',['fastSqrt',['../a00324.html#ga6c460e9414a50b2fc455c8f64c86cdc9',1,'glm::fastSqrt(genType x)'],['../a00324.html#gae83f0c03614f73eae5478c5b6274ee6d',1,'glm::fastSqrt(vec< L, T, Q > const &x)']]], + ['fasttan',['fastTan',['../a00325.html#gaf29b9c1101a10007b4f79ee89df27ba2',1,'glm']]], + ['fclamp',['fclamp',['../a00321.html#ga1e28539d3a46965ed9ef92ec7cb3b18a',1,'glm::fclamp(genType x, genType minVal, genType maxVal)'],['../a00321.html#ga60796d08903489ee185373593bc16b9d',1,'glm::fclamp(vec< L, T, Q > const &x, T minVal, T maxVal)'],['../a00321.html#ga5c15fa4709763c269c86c0b8b3aa2297',1,'glm::fclamp(vec< L, T, Q > const &x, vec< L, T, Q > const &minVal, vec< L, T, Q > const &maxVal)']]], + ['findlsb',['findLSB',['../a00370.html#gaf74c4d969fa34ab8acb9d390f5ca5274',1,'glm::findLSB(genIUType x)'],['../a00370.html#ga4454c0331d6369888c28ab677f4810c7',1,'glm::findLSB(vec< L, T, Q > const &v)']]], + ['findmsb',['findMSB',['../a00370.html#ga7e4a794d766861c70bc961630f8ef621',1,'glm::findMSB(genIUType x)'],['../a00370.html#ga39ac4d52028bb6ab08db5ad6562c2872',1,'glm::findMSB(vec< L, T, Q > const &v)']]], + ['findnsb',['findNSB',['../a00261.html#ga2777901e41ad6e1e9d0ad6cc855d1075',1,'glm::findNSB(genIUType x, int significantBitCount)'],['../a00274.html#gaff61eca266da315002a3db92ff0dd604',1,'glm::findNSB(vec< L, T, Q > const &Source, vec< L, int, Q > SignificantBitCount)']]], + ['fliplr',['fliplr',['../a00336.html#gaf39f4e5f78eb29c1a90277d45b9b3feb',1,'glm']]], + ['flipud',['flipud',['../a00336.html#ga85003371f0ba97380dd25e8905de1870',1,'glm']]], + ['floatbitstoint',['floatBitsToInt',['../a00241.html#ga1425c1c3160ec51214b03a0469a3013d',1,'glm::floatBitsToInt(float const &v)'],['../a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed',1,'glm::floatBitsToInt(vec< L, float, Q > const &v)']]], + ['floatbitstouint',['floatBitsToUint',['../a00241.html#ga70e0271c34af52f3100c7960e18c3f2b',1,'glm::floatBitsToUint(float const &v)'],['../a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db',1,'glm::floatBitsToUint(vec< L, float, Q > const &v)']]], + ['floor',['floor',['../a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d',1,'glm']]], + ['floor_5flog2',['floor_log2',['../a00330.html#ga7011b4e1c1e1ed492149b028feacc00e',1,'glm']]], + ['floormultiple',['floorMultiple',['../a00302.html#ga2ffa3cd5f2ea746ee1bf57c46da6315e',1,'glm::floorMultiple(genType v, genType Multiple)'],['../a00302.html#gacdd8901448f51f0b192380e422fae3e4',1,'glm::floorMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['floorpoweroftwo',['floorPowerOfTwo',['../a00302.html#gafe273a57935d04c9db677bf67f9a71f4',1,'glm::floorPowerOfTwo(genIUType v)'],['../a00302.html#gaf0d591a8fca8ddb9289cdeb44b989c2d',1,'glm::floorPowerOfTwo(vec< L, T, Q > const &v)']]], + ['fma',['fma',['../a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2',1,'glm']]], + ['fmax',['fmax',['../a00258.html#ga36920478565cf608e93064283ce06421',1,'glm::fmax(T a, T b)'],['../a00258.html#ga0007bba71ca451ac70e99d28dfbeaab9',1,'glm::fmax(T a, T b, T C)'],['../a00258.html#ga27e260b1ff4d04c3ad4b864d26cbaf08',1,'glm::fmax(T a, T b, T C, T D)'],['../a00267.html#gad66b6441f7200db16c9f341711733c56',1,'glm::fmax(vec< L, T, Q > const &a, T b)'],['../a00267.html#ga8df4be3f48d6717c40ea788fd30deebf',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b)'],['../a00267.html#ga0f04ba924294dae4234ca93ede23229a',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4ed3eb250ccbe17bfe8ded8a6b72d230',1,'glm::fmax(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gae5792cb2b51190057e4aea027eb56f81',1,'glm::fmax(genType x, genType y)']]], + ['fmin',['fmin',['../a00258.html#ga7b2b438a765e2a62098c79eb212f28f0',1,'glm::fmin(T a, T b)'],['../a00258.html#ga1a95fe4cf5437e8133f1093fe9726a64',1,'glm::fmin(T a, T b, T c)'],['../a00258.html#ga3d6f9c6c16bfd6f38f2c4f8076e8b661',1,'glm::fmin(T a, T b, T c, T d)'],['../a00267.html#gae989203363cff9eab5093630df4fe071',1,'glm::fmin(vec< L, T, Q > const &x, T y)'],['../a00267.html#ga7c42e93cd778c9181d1cdeea4d3e43bd',1,'glm::fmin(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00267.html#ga7e62739055b49189d9355471f78fe000',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#ga4a543dd7d22ad1f3b8b839f808a9d93c',1,'glm::fmin(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#gaa3200559611ac5b9b9ae7283547916a7',1,'glm::fmin(genType x, genType y)']]], + ['fmod',['fmod',['../a00314.html#gae5e80425df9833164ad469e83b475fb4',1,'glm']]], + ['four_5fover_5fpi',['four_over_pi',['../a00290.html#ga753950e5140e4ea6a88e4a18ba61dc09',1,'glm']]], + ['fract',['fract',['../a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7',1,'glm::fract(genType x)'],['../a00241.html#ga2df623004f634b440d61e018d62c751b',1,'glm::fract(vec< L, T, Q > const &x)']]], + ['frexp',['frexp',['../a00241.html#gaddf5ef73283c171730e0bcc11833fa81',1,'glm']]], + ['frustum',['frustum',['../a00243.html#ga0bcd4542e0affc63a0b8c08fcb839ea9',1,'glm']]], + ['frustumlh',['frustumLH',['../a00243.html#gae4277c37f61d81da01bc9db14ea90296',1,'glm']]], + ['frustumlh_5fno',['frustumLH_NO',['../a00243.html#ga259520cad03b3f8bca9417920035ed01',1,'glm']]], + ['frustumlh_5fzo',['frustumLH_ZO',['../a00243.html#ga94218b094862d17798370242680b9030',1,'glm']]], + ['frustumno',['frustumNO',['../a00243.html#gae34ec664ad44860bf4b5ba631f0e0e90',1,'glm']]], + ['frustumrh',['frustumRH',['../a00243.html#ga4366ab45880c6c5f8b3e8c371ca4b136',1,'glm']]], + ['frustumrh_5fno',['frustumRH_NO',['../a00243.html#ga9236c8439f21be186b79c97b588836b9',1,'glm']]], + ['frustumrh_5fzo',['frustumRH_ZO',['../a00243.html#ga7654a9227f14d5382786b9fc0eb5692d',1,'glm']]], + ['frustumzo',['frustumZO',['../a00243.html#gaa73322e152edf50cf30a6edac342a757',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_6.html b/external/include/glm-0.9.9.8/doc/api/search/functions_6.html index 7cba3f79e3..c980da25be 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_6.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_6.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_6.js b/external/include/glm-0.9.9.8/doc/api/search/functions_6.js index b2d5bcd048..d99a7ae6f8 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_6.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_6.js @@ -1,9 +1,9 @@ -var searchData= -[ - ['gauss',['gauss',['../a00326.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00326.html#gad19ec8754a83c0b9a8dc16b7e60705ab',1,'glm::gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)']]], - ['gaussrand',['gaussRand',['../a00300.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]], - ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00364.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00364.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00364.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00364.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00364.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00364.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00364.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00364.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00364.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00364.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00364.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00364.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00364.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00364.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00364.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00364.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00364.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00364.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00364.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00364.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00364.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00364.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00364.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00364.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00364.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00364.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00364.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00364.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00364.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00364.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00364.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00364.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00364.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00364.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00364.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00364.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00364.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00364.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00364.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00364.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00364.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00364.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00364.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00364.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00364.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00364.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00364.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00364.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00364.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00364.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00364.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00364.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00364.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00364.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00364.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00364.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00364.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00364.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00364.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00364.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00364.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00364.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00364.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00364.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00364.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00364.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00364.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00364.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00364.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00364.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00364.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00364.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00364.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00364.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00364.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00364.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00364.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00364.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00364.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00364.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00364.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00364.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00364.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00364.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00364.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00364.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00364.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00364.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00364.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00364.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00364.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00364.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00364.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00364.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00364.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00364.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00364.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00364.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00364.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00364.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00364.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00364.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00364.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00364.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00364.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00364.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00364.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00364.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00364.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00364.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00364.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00364.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00364.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00364.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00364.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00364.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00364.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00364.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00364.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00364.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00364.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00364.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00364.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00364.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00364.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00364.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00364.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00364.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00364.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00364.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00364.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00364.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00364.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00364.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00364.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00364.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00364.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00364.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00364.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00364.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00364.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00364.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00364.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00364.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00364.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00364.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00364.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00364.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00364.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00364.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00364.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00364.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00364.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00364.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00364.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00364.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00364.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00364.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00364.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00364.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00364.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00364.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00364.html#gacce4ac532880b8c7469d3c31974420a1',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00364.html#ga0498e0e249a6faddaf96aa55d7f81c3b',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00364.html#ga7435d87de82a0d652b35dc5b9cc718d5',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00364.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00364.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00364.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00364.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00364.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00364.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00364.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00364.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00364.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00364.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00364.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00364.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00364.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00364.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00364.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00364.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00364.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00364.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00364.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00364.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00364.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00364.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00364.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00364.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00364.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00364.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00364.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00364.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00364.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00364.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00364.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00364.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00364.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00364.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00364.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00364.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00364.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00364.html#ga19c2ba545d1f2f36bcb7b60c9a228622',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16)'],['../a00364.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00364.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00364.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]], - ['golden_5fratio',['golden_ratio',['../a00290.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]], - ['greaterthan',['greaterThan',['../a00299.html#ga8f7fa76e06c417b757ddfd438f3f677b',1,'glm::greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gadfdb8ea82deca869ddc7e63ea5a63ae4',1,'glm::greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['greaterthanequal',['greaterThanEqual',['../a00299.html#ga388cbeba987dae7b5937f742efa49a5a',1,'glm::greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#ga859975f538940f8d18fe62f916b9abd7',1,'glm::greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]] -]; +var searchData= +[ + ['gauss',['gauss',['../a00326.html#ga0b50b197ff74261a0fad90f4b8d24702',1,'glm::gauss(T x, T ExpectedValue, T StandardDeviation)'],['../a00326.html#gad19ec8754a83c0b9a8dc16b7e60705ab',1,'glm::gauss(vec< 2, T, Q > const &Coord, vec< 2, T, Q > const &ExpectedValue, vec< 2, T, Q > const &StandardDeviation)']]], + ['gaussrand',['gaussRand',['../a00300.html#ga5193a83e49e4fdc5652c084711083574',1,'glm']]], + ['glm_5faligned_5ftypedef',['GLM_ALIGNED_TYPEDEF',['../a00364.html#gab5cd5c5fad228b25c782084f1cc30114',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8, aligned_lowp_int8, 1)'],['../a00364.html#ga5bb5dd895ef625c1b113f2cf400186b0',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16, aligned_lowp_int16, 2)'],['../a00364.html#gac6efa54cf7c6c86f7158922abdb1a430',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32, aligned_lowp_int32, 4)'],['../a00364.html#ga6612eb77c8607048e7552279a11eeb5f',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64, aligned_lowp_int64, 8)'],['../a00364.html#ga7ddc1848ff2223026db8968ce0c97497',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int8_t, aligned_lowp_int8_t, 1)'],['../a00364.html#ga22240dd9458b0f8c11fbcc4f48714f68',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int16_t, aligned_lowp_int16_t, 2)'],['../a00364.html#ga8130ea381d76a2cc34a93ccbb6cf487d',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int32_t, aligned_lowp_int32_t, 4)'],['../a00364.html#ga7ccb60f3215d293fd62b33b31ed0e7be',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_int64_t, aligned_lowp_int64_t, 8)'],['../a00364.html#gac20d508d2ef5cc95ad3daf083c57ec2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i8, aligned_lowp_i8, 1)'],['../a00364.html#ga50257b48069a31d0c8d9c1f644d267de',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i16, aligned_lowp_i16, 2)'],['../a00364.html#gaa07e98e67b7a3435c0746018c7a2a839',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i32, aligned_lowp_i32, 4)'],['../a00364.html#ga62601fc6f8ca298b77285bedf03faffd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_i64, aligned_lowp_i64, 8)'],['../a00364.html#gac8cff825951aeb54dd846037113c72db',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8, aligned_mediump_int8, 1)'],['../a00364.html#ga78f443d88f438575a62b5df497cdf66b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16, aligned_mediump_int16, 2)'],['../a00364.html#ga0680cd3b5d4e8006985fb41a4f9b57af',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32, aligned_mediump_int32, 4)'],['../a00364.html#gad9e5babb1dd3e3531b42c37bf25dd951',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64, aligned_mediump_int64, 8)'],['../a00364.html#ga353fd9fa8a9ad952fcabd0d53ad9a6dd',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int8_t, aligned_mediump_int8_t, 1)'],['../a00364.html#ga2196442c0e5c5e8c77842de388c42521',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int16_t, aligned_mediump_int16_t, 2)'],['../a00364.html#ga1284488189daf897cf095c5eefad9744',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int32_t, aligned_mediump_int32_t, 4)'],['../a00364.html#ga73fdc86a539808af58808b7c60a1c4d8',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_int64_t, aligned_mediump_int64_t, 8)'],['../a00364.html#gafafeea923e1983262c972e2b83922d3b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i8, aligned_mediump_i8, 1)'],['../a00364.html#ga4b35ca5fe8f55c9d2fe54fdb8d8896f4',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i16, aligned_mediump_i16, 2)'],['../a00364.html#ga63b882e29170d428463d99c3d630acc6',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i32, aligned_mediump_i32, 4)'],['../a00364.html#ga8b20507bb048c1edea2d441cc953e6f0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_i64, aligned_mediump_i64, 8)'],['../a00364.html#ga56c5ca60813027b603c7b61425a0479d',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8, aligned_highp_int8, 1)'],['../a00364.html#ga7a751b3aff24c0259f4a7357c2969089',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16, aligned_highp_int16, 2)'],['../a00364.html#ga70cd2144351c556469ee6119e59971fc',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32, aligned_highp_int32, 4)'],['../a00364.html#ga46bbf08dc004d8c433041e0b5018a5d3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64, aligned_highp_int64, 8)'],['../a00364.html#gab3e10c77a20d1abad2de1c561c7a5c18',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int8_t, aligned_highp_int8_t, 1)'],['../a00364.html#ga968f30319ebeaca9ebcd3a25a8e139fb',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int16_t, aligned_highp_int16_t, 2)'],['../a00364.html#gaae773c28e6390c6aa76f5b678b7098a3',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int32_t, aligned_highp_int32_t, 4)'],['../a00364.html#ga790cfff1ca39d0ed696ffed980809311',1,'glm::GLM_ALIGNED_TYPEDEF(highp_int64_t, aligned_highp_int64_t, 8)'],['../a00364.html#ga8265b91eb23c120a9b0c3e381bc37b96',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i8, aligned_highp_i8, 1)'],['../a00364.html#gae6d384de17588d8edb894fbe06e0d410',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i16, aligned_highp_i16, 2)'],['../a00364.html#ga9c8172b745ee03fc5b2b91c350c2922f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i32, aligned_highp_i32, 4)'],['../a00364.html#ga77e0dff12aa4020ddc3f8cabbea7b2e6',1,'glm::GLM_ALIGNED_TYPEDEF(highp_i64, aligned_highp_i64, 8)'],['../a00364.html#gabd82b9faa9d4d618dbbe0fc8a1efee63',1,'glm::GLM_ALIGNED_TYPEDEF(int8, aligned_int8, 1)'],['../a00364.html#ga285649744560be21000cfd81bbb5d507',1,'glm::GLM_ALIGNED_TYPEDEF(int16, aligned_int16, 2)'],['../a00364.html#ga07732da630b2deda428ce95c0ecaf3ff',1,'glm::GLM_ALIGNED_TYPEDEF(int32, aligned_int32, 4)'],['../a00364.html#ga1a8da2a8c51f69c07a2e7f473aa420f4',1,'glm::GLM_ALIGNED_TYPEDEF(int64, aligned_int64, 8)'],['../a00364.html#ga848aedf13e2d9738acf0bb482c590174',1,'glm::GLM_ALIGNED_TYPEDEF(int8_t, aligned_int8_t, 1)'],['../a00364.html#gafd2803d39049dd45a37a63931e25d943',1,'glm::GLM_ALIGNED_TYPEDEF(int16_t, aligned_int16_t, 2)'],['../a00364.html#gae553b33349d6da832cf0724f1e024094',1,'glm::GLM_ALIGNED_TYPEDEF(int32_t, aligned_int32_t, 4)'],['../a00364.html#ga16d223a2b3409e812e1d3bd87f0e9e5c',1,'glm::GLM_ALIGNED_TYPEDEF(int64_t, aligned_int64_t, 8)'],['../a00364.html#ga2de065d2ddfdb366bcd0febca79ae2ad',1,'glm::GLM_ALIGNED_TYPEDEF(i8, aligned_i8, 1)'],['../a00364.html#gabd786bdc20a11c8cb05c92c8212e28d3',1,'glm::GLM_ALIGNED_TYPEDEF(i16, aligned_i16, 2)'],['../a00364.html#gad4aefe56691cdb640c72f0d46d3fb532',1,'glm::GLM_ALIGNED_TYPEDEF(i32, aligned_i32, 4)'],['../a00364.html#ga8fe9745f7de24a8394518152ff9fccdc',1,'glm::GLM_ALIGNED_TYPEDEF(i64, aligned_i64, 8)'],['../a00364.html#gaaad735483450099f7f882d4e3a3569bd',1,'glm::GLM_ALIGNED_TYPEDEF(ivec1, aligned_ivec1, 4)'],['../a00364.html#gac7b6f823802edbd6edbaf70ea25bf068',1,'glm::GLM_ALIGNED_TYPEDEF(ivec2, aligned_ivec2, 8)'],['../a00364.html#ga3e235bcd2b8029613f25b8d40a2d3ef7',1,'glm::GLM_ALIGNED_TYPEDEF(ivec3, aligned_ivec3, 16)'],['../a00364.html#ga50d8a9523968c77f8325b4c9bfbff41e',1,'glm::GLM_ALIGNED_TYPEDEF(ivec4, aligned_ivec4, 16)'],['../a00364.html#ga9ec20fdfb729c702032da9378c79679f',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec1, aligned_i8vec1, 1)'],['../a00364.html#ga25b3fe1d9e8d0a5e86c1949c1acd8131',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec2, aligned_i8vec2, 2)'],['../a00364.html#ga2958f907719d94d8109b562540c910e2',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec3, aligned_i8vec3, 4)'],['../a00364.html#ga1fe6fc032a978f1c845fac9aa0668714',1,'glm::GLM_ALIGNED_TYPEDEF(i8vec4, aligned_i8vec4, 4)'],['../a00364.html#gaa4161e7a496dc96972254143fe873e55',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec1, aligned_i16vec1, 2)'],['../a00364.html#ga9d7cb211ccda69b1c22ddeeb0f3e7aba',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec2, aligned_i16vec2, 4)'],['../a00364.html#gaaee91dd2ab34423bcc11072ef6bd0f02',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec3, aligned_i16vec3, 8)'],['../a00364.html#ga49f047ccaa8b31fad9f26c67bf9b3510',1,'glm::GLM_ALIGNED_TYPEDEF(i16vec4, aligned_i16vec4, 8)'],['../a00364.html#ga904e9c2436bb099397c0823506a0771f',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec1, aligned_i32vec1, 4)'],['../a00364.html#gaf90651cf2f5e7ee2b11cfdc5a6749534',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec2, aligned_i32vec2, 8)'],['../a00364.html#ga7354a4ead8cb17868aec36b9c30d6010',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec3, aligned_i32vec3, 16)'],['../a00364.html#gad2ecbdea18732163e2636e27b37981ee',1,'glm::GLM_ALIGNED_TYPEDEF(i32vec4, aligned_i32vec4, 16)'],['../a00364.html#ga965b1c9aa1800e93d4abc2eb2b5afcbf',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec1, aligned_i64vec1, 8)'],['../a00364.html#ga1f9e9c2ea2768675dff9bae5cde2d829',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec2, aligned_i64vec2, 16)'],['../a00364.html#gad77c317b7d942322cd5be4c8127b3187',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec3, aligned_i64vec3, 32)'],['../a00364.html#ga716f8ea809bdb11b5b542d8b71aeb04f',1,'glm::GLM_ALIGNED_TYPEDEF(i64vec4, aligned_i64vec4, 32)'],['../a00364.html#gad46f8e9082d5878b1bc04f9c1471cdaa',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8, aligned_lowp_uint8, 1)'],['../a00364.html#ga1246094581af624aca6c7499aaabf801',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16, aligned_lowp_uint16, 2)'],['../a00364.html#ga7a5009a1d0196bbf21dd7518f61f0249',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32, aligned_lowp_uint32, 4)'],['../a00364.html#ga45213fd18b3bb1df391671afefe4d1e7',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64, aligned_lowp_uint64, 8)'],['../a00364.html#ga0ba26b4e3fd9ecbc25358efd68d8a4ca',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint8_t, aligned_lowp_uint8_t, 1)'],['../a00364.html#gaf2b58f5fb6d4ec8ce7b76221d3af43e1',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint16_t, aligned_lowp_uint16_t, 2)'],['../a00364.html#gadc246401847dcba155f0699425e49dcd',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint32_t, aligned_lowp_uint32_t, 4)'],['../a00364.html#gaace64bddf51a9def01498da9a94fb01c',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_uint64_t, aligned_lowp_uint64_t, 8)'],['../a00364.html#gad7bb97c29d664bd86ffb1bed4abc5534',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u8, aligned_lowp_u8, 1)'],['../a00364.html#ga404bba7785130e0b1384d695a9450b28',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u16, aligned_lowp_u16, 2)'],['../a00364.html#ga31ba41fd896257536958ec6080203d2a',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u32, aligned_lowp_u32, 4)'],['../a00364.html#gacca5f13627f57b3505676e40a6e43e5e',1,'glm::GLM_ALIGNED_TYPEDEF(lowp_u64, aligned_lowp_u64, 8)'],['../a00364.html#ga5faf1d3e70bf33174dd7f3d01d5b883b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8, aligned_mediump_uint8, 1)'],['../a00364.html#ga727e2bf2c433bb3b0182605860a48363',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16, aligned_mediump_uint16, 2)'],['../a00364.html#ga12566ca66d5962dadb4a5eb4c74e891e',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32, aligned_mediump_uint32, 4)'],['../a00364.html#ga7b66a97a8acaa35c5a377b947318c6bc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64, aligned_mediump_uint64, 8)'],['../a00364.html#gaa9cde002439b74fa66120a16a9f55fcc',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint8_t, aligned_mediump_uint8_t, 1)'],['../a00364.html#ga1ca98c67f7d1e975f7c5202f1da1df1f',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint16_t, aligned_mediump_uint16_t, 2)'],['../a00364.html#ga1dc8bc6199d785f235576948d80a597c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint32_t, aligned_mediump_uint32_t, 4)'],['../a00364.html#gad14a0f2ec93519682b73d70b8e401d81',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_uint64_t, aligned_mediump_uint64_t, 8)'],['../a00364.html#gada8b996eb6526dc1ead813bd49539d1b',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u8, aligned_mediump_u8, 1)'],['../a00364.html#ga28948f6bfb52b42deb9d73ae1ea8d8b0',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u16, aligned_mediump_u16, 2)'],['../a00364.html#gad6a7c0b5630f89d3f1c5b4ef2919bb4c',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u32, aligned_mediump_u32, 4)'],['../a00364.html#gaa0fc531cbaa972ac3a0b86d21ef4a7fa',1,'glm::GLM_ALIGNED_TYPEDEF(mediump_u64, aligned_mediump_u64, 8)'],['../a00364.html#ga0ee829f7b754b262bbfe6317c0d678ac',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8, aligned_highp_uint8, 1)'],['../a00364.html#ga447848a817a626cae08cedc9778b331c',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16, aligned_highp_uint16, 2)'],['../a00364.html#ga6027ae13b2734f542a6e7beee11b8820',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32, aligned_highp_uint32, 4)'],['../a00364.html#ga2aca46c8608c95ef991ee4c332acde5f',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64, aligned_highp_uint64, 8)'],['../a00364.html#gaff50b10dd1c48be324fdaffd18e2c7ea',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint8_t, aligned_highp_uint8_t, 1)'],['../a00364.html#ga9fc4421dbb833d5461e6d4e59dcfde55',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint16_t, aligned_highp_uint16_t, 2)'],['../a00364.html#ga329f1e2b94b33ba5e3918197030bcf03',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint32_t, aligned_highp_uint32_t, 4)'],['../a00364.html#ga71e646f7e301aa422328194162c9c998',1,'glm::GLM_ALIGNED_TYPEDEF(highp_uint64_t, aligned_highp_uint64_t, 8)'],['../a00364.html#ga8942e09f479489441a7a5004c6d8cb66',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u8, aligned_highp_u8, 1)'],['../a00364.html#gaab32497d6e4db16ee439dbedd64c5865',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u16, aligned_highp_u16, 2)'],['../a00364.html#gaaadbb34952eca8e3d7fe122c3e167742',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u32, aligned_highp_u32, 4)'],['../a00364.html#ga92024d27c74a3650afb55ec8e024ed25',1,'glm::GLM_ALIGNED_TYPEDEF(highp_u64, aligned_highp_u64, 8)'],['../a00364.html#gabde1d0b4072df35453db76075ab896a6',1,'glm::GLM_ALIGNED_TYPEDEF(uint8, aligned_uint8, 1)'],['../a00364.html#ga06c296c9e398b294c8c9dd2a7693dcbb',1,'glm::GLM_ALIGNED_TYPEDEF(uint16, aligned_uint16, 2)'],['../a00364.html#gacf1744488c96ebd33c9f36ad33b2010a',1,'glm::GLM_ALIGNED_TYPEDEF(uint32, aligned_uint32, 4)'],['../a00364.html#ga3328061a64c20ba59d5f9da24c2cd059',1,'glm::GLM_ALIGNED_TYPEDEF(uint64, aligned_uint64, 8)'],['../a00364.html#gaf6ced36f13bae57f377bafa6f5fcc299',1,'glm::GLM_ALIGNED_TYPEDEF(uint8_t, aligned_uint8_t, 1)'],['../a00364.html#gafbc7fb7847bfc78a339d1d371c915c73',1,'glm::GLM_ALIGNED_TYPEDEF(uint16_t, aligned_uint16_t, 2)'],['../a00364.html#gaa86bc56a73fd8120b1121b5f5e6245ae',1,'glm::GLM_ALIGNED_TYPEDEF(uint32_t, aligned_uint32_t, 4)'],['../a00364.html#ga68c0b9e669060d0eb5ab8c3ddeb483d8',1,'glm::GLM_ALIGNED_TYPEDEF(uint64_t, aligned_uint64_t, 8)'],['../a00364.html#ga4f3bab577daf3343e99cc005134bce86',1,'glm::GLM_ALIGNED_TYPEDEF(u8, aligned_u8, 1)'],['../a00364.html#ga13a2391339d0790d43b76d00a7611c4f',1,'glm::GLM_ALIGNED_TYPEDEF(u16, aligned_u16, 2)'],['../a00364.html#ga197570e03acbc3d18ab698e342971e8f',1,'glm::GLM_ALIGNED_TYPEDEF(u32, aligned_u32, 4)'],['../a00364.html#ga0f033b21e145a1faa32c62ede5878993',1,'glm::GLM_ALIGNED_TYPEDEF(u64, aligned_u64, 8)'],['../a00364.html#ga509af83527f5cd512e9a7873590663aa',1,'glm::GLM_ALIGNED_TYPEDEF(uvec1, aligned_uvec1, 4)'],['../a00364.html#ga94e86186978c502c6dc0c0d9c4a30679',1,'glm::GLM_ALIGNED_TYPEDEF(uvec2, aligned_uvec2, 8)'],['../a00364.html#ga5cec574686a7f3c8ed24bb195c5e2d0a',1,'glm::GLM_ALIGNED_TYPEDEF(uvec3, aligned_uvec3, 16)'],['../a00364.html#ga47edfdcee9c89b1ebdaf20450323b1d4',1,'glm::GLM_ALIGNED_TYPEDEF(uvec4, aligned_uvec4, 16)'],['../a00364.html#ga5611d6718e3a00096918a64192e73a45',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec1, aligned_u8vec1, 1)'],['../a00364.html#ga19837e6f72b60d994a805ef564c6c326',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec2, aligned_u8vec2, 2)'],['../a00364.html#ga9740cf8e34f068049b42a2753f9601c2',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec3, aligned_u8vec3, 4)'],['../a00364.html#ga8b8588bb221448f5541a858903822a57',1,'glm::GLM_ALIGNED_TYPEDEF(u8vec4, aligned_u8vec4, 4)'],['../a00364.html#ga991abe990c16de26b2129d6bc2f4c051',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec1, aligned_u16vec1, 2)'],['../a00364.html#gac01bb9fc32a1cd76c2b80d030f71df4c',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec2, aligned_u16vec2, 4)'],['../a00364.html#ga09540dbca093793a36a8997e0d4bee77',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec3, aligned_u16vec3, 8)'],['../a00364.html#gaecafb5996f5a44f57e34d29c8670741e',1,'glm::GLM_ALIGNED_TYPEDEF(u16vec4, aligned_u16vec4, 8)'],['../a00364.html#gac6b161a04d2f8408fe1c9d857e8daac0',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec1, aligned_u32vec1, 4)'],['../a00364.html#ga1fa0dfc8feb0fa17dab2acd43e05342b',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec2, aligned_u32vec2, 8)'],['../a00364.html#ga0019500abbfa9c66eff61ca75eaaed94',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec3, aligned_u32vec3, 16)'],['../a00364.html#ga14fd29d01dae7b08a04e9facbcc18824',1,'glm::GLM_ALIGNED_TYPEDEF(u32vec4, aligned_u32vec4, 16)'],['../a00364.html#gab253845f534a67136f9619843cade903',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec1, aligned_u64vec1, 8)'],['../a00364.html#ga929427a7627940cdf3304f9c050b677d',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec2, aligned_u64vec2, 16)'],['../a00364.html#gae373b6c04fdf9879f33d63e6949c037e',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec3, aligned_u64vec3, 32)'],['../a00364.html#ga53a8a03dca2015baec4584f45b8e9cdc',1,'glm::GLM_ALIGNED_TYPEDEF(u64vec4, aligned_u64vec4, 32)'],['../a00364.html#gab3301bae94ef5bf59fbdd9a24e7d2a01',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_float32, 4)'],['../a00364.html#gada9b0bea273d3ae0286f891533b9568f',1,'glm::GLM_ALIGNED_TYPEDEF(float32_t, aligned_float32_t, 4)'],['../a00364.html#gadbce23b9f23d77bb3884e289a574ebd5',1,'glm::GLM_ALIGNED_TYPEDEF(float32, aligned_f32, 4)'],['../a00364.html#ga75930684ff2233171c573e603f216162',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_float64, 8)'],['../a00364.html#ga6e3a2d83b131336219a0f4c7cbba2a48',1,'glm::GLM_ALIGNED_TYPEDEF(float64_t, aligned_float64_t, 8)'],['../a00364.html#gaa4deaa0dea930c393d55e7a4352b0a20',1,'glm::GLM_ALIGNED_TYPEDEF(float64, aligned_f64, 8)'],['../a00364.html#ga81bc497b2bfc6f80bab690c6ee28f0f9',1,'glm::GLM_ALIGNED_TYPEDEF(vec1, aligned_vec1, 4)'],['../a00364.html#gada3e8f783e9d4b90006695a16c39d4d4',1,'glm::GLM_ALIGNED_TYPEDEF(vec2, aligned_vec2, 8)'],['../a00364.html#gab8d081fac3a38d6f55fa552f32168d32',1,'glm::GLM_ALIGNED_TYPEDEF(vec3, aligned_vec3, 16)'],['../a00364.html#ga12fe7b9769c964c5b48dcfd8b7f40198',1,'glm::GLM_ALIGNED_TYPEDEF(vec4, aligned_vec4, 16)'],['../a00364.html#gaefab04611c7f8fe1fd9be3071efea6cc',1,'glm::GLM_ALIGNED_TYPEDEF(fvec1, aligned_fvec1, 4)'],['../a00364.html#ga2543c05ba19b3bd19d45b1227390c5b4',1,'glm::GLM_ALIGNED_TYPEDEF(fvec2, aligned_fvec2, 8)'],['../a00364.html#ga009afd727fd657ef33a18754d6d28f60',1,'glm::GLM_ALIGNED_TYPEDEF(fvec3, aligned_fvec3, 16)'],['../a00364.html#ga2f26177e74bfb301a3d0e02ec3c3ef53',1,'glm::GLM_ALIGNED_TYPEDEF(fvec4, aligned_fvec4, 16)'],['../a00364.html#ga309f495a1d6b75ddf195b674b65cb1e4',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec1, aligned_f32vec1, 4)'],['../a00364.html#ga5e185865a2217d0cd47187644683a8c3',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec2, aligned_f32vec2, 8)'],['../a00364.html#gade4458b27b039b9ca34f8ec049f3115a',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec3, aligned_f32vec3, 16)'],['../a00364.html#ga2e8a12c5e6a9c4ae4ddaeda1d1cffe3b',1,'glm::GLM_ALIGNED_TYPEDEF(f32vec4, aligned_f32vec4, 16)'],['../a00364.html#ga3e0f35fa0c626285a8bad41707e7316c',1,'glm::GLM_ALIGNED_TYPEDEF(dvec1, aligned_dvec1, 8)'],['../a00364.html#ga78bfec2f185d1d365ea0a9ef1e3d45b8',1,'glm::GLM_ALIGNED_TYPEDEF(dvec2, aligned_dvec2, 16)'],['../a00364.html#ga01fe6fee6db5df580b6724a7e681f069',1,'glm::GLM_ALIGNED_TYPEDEF(dvec3, aligned_dvec3, 32)'],['../a00364.html#ga687d5b8f551d5af32425c0b2fba15e99',1,'glm::GLM_ALIGNED_TYPEDEF(dvec4, aligned_dvec4, 32)'],['../a00364.html#ga8e842371d46842ff8f1813419ba49d0f',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec1, aligned_f64vec1, 8)'],['../a00364.html#ga32814aa0f19316b43134fc25f2aad2b9',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec2, aligned_f64vec2, 16)'],['../a00364.html#gaf3d3bbc1e93909b689123b085e177a14',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec3, aligned_f64vec3, 32)'],['../a00364.html#ga804c654cead1139bd250f90f9bb01fad',1,'glm::GLM_ALIGNED_TYPEDEF(f64vec4, aligned_f64vec4, 32)'],['../a00364.html#gacce4ac532880b8c7469d3c31974420a1',1,'glm::GLM_ALIGNED_TYPEDEF(mat2, aligned_mat2, 16)'],['../a00364.html#ga0498e0e249a6faddaf96aa55d7f81c3b',1,'glm::GLM_ALIGNED_TYPEDEF(mat3, aligned_mat3, 16)'],['../a00364.html#ga7435d87de82a0d652b35dc5b9cc718d5',1,'glm::GLM_ALIGNED_TYPEDEF(mat4, aligned_mat4, 16)'],['../a00364.html#ga719da577361541a4c43a2dd1d0e361e1',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2, 16)'],['../a00364.html#ga6e7ee4f541e1d7db66cd1a224caacafb',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3, 16)'],['../a00364.html#gae5d672d359f2a39f63f98c7975057486',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4, 16)'],['../a00364.html#ga6fa2df037dbfc5fe8c8e0b4db8a34953',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x2, aligned_fmat2x2, 16)'],['../a00364.html#ga0743b4f4f69a3227b82ff58f6abbad62',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x3, aligned_fmat2x3, 16)'],['../a00364.html#ga1a76b325fdf70f961d835edd182c63dd',1,'glm::GLM_ALIGNED_TYPEDEF(fmat2x4, aligned_fmat2x4, 16)'],['../a00364.html#ga4b4e181cd041ba28c3163e7b8074aef0',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x2, aligned_fmat3x2, 16)'],['../a00364.html#ga27b13f465abc8a40705698145e222c3f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x3, aligned_fmat3x3, 16)'],['../a00364.html#ga2608d19cc275830a6f8c0b6405625a4f',1,'glm::GLM_ALIGNED_TYPEDEF(fmat3x4, aligned_fmat3x4, 16)'],['../a00364.html#ga93f09768241358a287c4cca538f1f7e7',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x2, aligned_fmat4x2, 16)'],['../a00364.html#ga7c117e3ecca089e10247b1d41d88aff9',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x3, aligned_fmat4x3, 16)'],['../a00364.html#ga07c75cd04ba42dc37fa3e105f89455c5',1,'glm::GLM_ALIGNED_TYPEDEF(fmat4x4, aligned_fmat4x4, 16)'],['../a00364.html#ga65ff0d690a34a4d7f46f9b2eb51525ee',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2, 16)'],['../a00364.html#gadd8ddbe2bf65ccede865ba2f510176dc',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3, 16)'],['../a00364.html#gaf18dbff14bf13d3ff540c517659ec045',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4, 16)'],['../a00364.html#ga66339f6139bf7ff19e245beb33f61cc8',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x2, aligned_f32mat2x2, 16)'],['../a00364.html#ga1558a48b3934011b52612809f443e46d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x3, aligned_f32mat2x3, 16)'],['../a00364.html#gaa52e5732daa62851627021ad551c7680',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat2x4, aligned_f32mat2x4, 16)'],['../a00364.html#gac09663c42566bcb58d23c6781ac4e85a',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x2, aligned_f32mat3x2, 16)'],['../a00364.html#ga3f510999e59e1b309113e1d561162b29',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x3, aligned_f32mat3x3, 16)'],['../a00364.html#ga2c9c94f0c89cd71ce56551db6cf4aaec',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat3x4, aligned_f32mat3x4, 16)'],['../a00364.html#ga99ce8274c750fbfdf0e70c95946a2875',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x2, aligned_f32mat4x2, 16)'],['../a00364.html#ga9476ef66790239df53dbe66f3989c3b5',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x3, aligned_f32mat4x3, 16)'],['../a00364.html#gacc429b3b0b49921e12713b6d31e14e1d',1,'glm::GLM_ALIGNED_TYPEDEF(f32mat4x4, aligned_f32mat4x4, 16)'],['../a00364.html#ga88f6c6fa06e6e64479763e69444669cf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2, 32)'],['../a00364.html#gaae8e4639c991e64754145ab8e4c32083',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3, 32)'],['../a00364.html#ga6e9094f3feb3b5b49d0f83683a101fde',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4, 32)'],['../a00364.html#gadbd2c639c03de1c3e9591b5a39f65559',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x2, aligned_f64mat2x2, 32)'],['../a00364.html#gab059d7b9fe2094acc563b7223987499f',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x3, aligned_f64mat2x3, 32)'],['../a00364.html#gabbc811d1c52ed2b8cfcaff1378f75c69',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat2x4, aligned_f64mat2x4, 32)'],['../a00364.html#ga9ddf5212777734d2fd841a84439f3bdf',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x2, aligned_f64mat3x2, 32)'],['../a00364.html#gad1dda32ed09f94bfcf0a7d8edfb6cf13',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x3, aligned_f64mat3x3, 32)'],['../a00364.html#ga5875e0fa72f07e271e7931811cbbf31a',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat3x4, aligned_f64mat3x4, 32)'],['../a00364.html#ga41e82cd6ac07f912ba2a2d45799dcf0d',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x2, aligned_f64mat4x2, 32)'],['../a00364.html#ga0892638d6ba773043b3d63d1d092622e',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x3, aligned_f64mat4x3, 32)'],['../a00364.html#ga912a16432608b822f1e13607529934c1',1,'glm::GLM_ALIGNED_TYPEDEF(f64mat4x4, aligned_f64mat4x4, 32)'],['../a00364.html#gafd945a8ea86b042aba410e0560df9a3d',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_quat, 16)'],['../a00364.html#ga19c2ba545d1f2f36bcb7b60c9a228622',1,'glm::GLM_ALIGNED_TYPEDEF(quat, aligned_fquat, 16)'],['../a00364.html#gaabc28c84a3288b697605d4688686f9a9',1,'glm::GLM_ALIGNED_TYPEDEF(dquat, aligned_dquat, 32)'],['../a00364.html#ga1ed8aeb5ca67fade269a46105f1bf273',1,'glm::GLM_ALIGNED_TYPEDEF(f32quat, aligned_f32quat, 16)'],['../a00364.html#ga95cc03b8b475993fa50e05e38e203303',1,'glm::GLM_ALIGNED_TYPEDEF(f64quat, aligned_f64quat, 32)']]], + ['golden_5fratio',['golden_ratio',['../a00290.html#ga748cf8642830657c5b7eae04d0a80899',1,'glm']]], + ['greaterthan',['greaterThan',['../a00299.html#ga8f7fa76e06c417b757ddfd438f3f677b',1,'glm::greaterThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gadfdb8ea82deca869ddc7e63ea5a63ae4',1,'glm::greaterThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['greaterthanequal',['greaterThanEqual',['../a00299.html#ga388cbeba987dae7b5937f742efa49a5a',1,'glm::greaterThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#ga859975f538940f8d18fe62f916b9abd7',1,'glm::greaterThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_7.html b/external/include/glm-0.9.9.8/doc/api/search/functions_7.html index 50a50e6893..385732931d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_7.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_7.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_7.js b/external/include/glm-0.9.9.8/doc/api/search/functions_7.js index b7dbf9e462..85d4bbea6c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_7.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_7.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['half_5fpi',['half_pi',['../a00290.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]], - ['hermite',['hermite',['../a00358.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]], - ['highestbitvalue',['highestBitValue',['../a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00309.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]], - ['hsvcolor',['hsvColor',['../a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]] -]; +var searchData= +[ + ['half_5fpi',['half_pi',['../a00290.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]], + ['hermite',['hermite',['../a00358.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]], + ['highestbitvalue',['highestBitValue',['../a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00309.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]], + ['hsvcolor',['hsvColor',['../a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_8.html b/external/include/glm-0.9.9.8/doc/api/search/functions_8.html index 302e547b69..088e437fbd 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_8.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_8.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_8.js b/external/include/glm-0.9.9.8/doc/api/search/functions_8.js index 31160b565f..fcf43b87f6 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_8.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_8.js @@ -1,31 +1,31 @@ -var searchData= -[ - ['identity',['identity',['../a00247.html#ga81696f2b8d1db02ea1aff8da8f269314',1,'glm']]], - ['imulextended',['imulExtended',['../a00370.html#gac0c510a70e852f57594a9141848642e3',1,'glm']]], - ['infiniteperspective',['infinitePerspective',['../a00243.html#ga44fa38a18349450325cae2661bb115ca',1,'glm']]], - ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00243.html#ga3201b30f5b3ea0f933246d87bfb992a9',1,'glm']]], - ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00243.html#ga99672ffe5714ef478dab2437255fe7e1',1,'glm']]], - ['intbitstofloat',['intBitsToFloat',['../a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &v)'],['../a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0',1,'glm::intBitsToFloat(vec< L, int, Q > const &v)']]], - ['intermediate',['intermediate',['../a00352.html#gacc5cd5f3e78de61d141c2355417424de',1,'glm']]], - ['interpolate',['interpolate',['../a00337.html#ga4e67863d150724b10c1ac00972dc958c',1,'glm']]], - ['intersectlinesphere',['intersectLineSphere',['../a00331.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]], - ['intersectlinetriangle',['intersectLineTriangle',['../a00331.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]], - ['intersectrayplane',['intersectRayPlane',['../a00331.html#gad3697a9700ea379739a667ea02573488',1,'glm']]], - ['intersectraysphere',['intersectRaySphere',['../a00331.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)'],['../a00331.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)']]], - ['intersectraytriangle',['intersectRayTriangle',['../a00331.html#ga65bf2c594482f04881c36bc761f9e946',1,'glm']]], - ['inverse',['inverse',['../a00248.html#gab41da854ae678e23e114b598cbca4065',1,'glm::inverse(qua< T, Q > const &q)'],['../a00317.html#ga070f521a953f6461af4ab4cf8ccbf27e',1,'glm::inverse(tdualquat< T, Q > const &q)'],['../a00371.html#gaed509fe8129b01e4f20a6d0de5690091',1,'glm::inverse(mat< C, R, T, Q > const &m)']]], - ['inversesqrt',['inversesqrt',['../a00242.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a',1,'glm']]], - ['inversetranspose',['inverseTranspose',['../a00295.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]], - ['iround',['iround',['../a00292.html#ga57824268ebe13a922f1d69a5d37f637f',1,'glm']]], - ['iscompnull',['isCompNull',['../a00368.html#gaf6ec1688eab7442fe96fe4941d5d4e76',1,'glm']]], - ['isdenormal',['isdenormal',['../a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]], - ['isfinite',['isfinite',['../a00315.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &x)'],['../a00315.html#gac3b12b8ac3014418fe53c299478b6603',1,'glm::isfinite(const vec< 1, T, Q > &x)'],['../a00315.html#ga8e76dc3e406ce6a4155c2b12a2e4b084',1,'glm::isfinite(const vec< 2, T, Q > &x)'],['../a00315.html#ga929ef27f896d902c1771a2e5e150fc97',1,'glm::isfinite(const vec< 3, T, Q > &x)'],['../a00315.html#ga19925badbe10ce61df1d0de00be0b5ad',1,'glm::isfinite(const vec< 4, T, Q > &x)']]], - ['isidentity',['isIdentity',['../a00340.html#gaee935d145581c82e82b154ccfd78ad91',1,'glm']]], - ['isinf',['isinf',['../a00241.html#ga2885587c23a106301f20443896365b62',1,'glm::isinf(vec< L, T, Q > const &x)'],['../a00248.html#ga45722741ea266b4e861938b365c5f362',1,'glm::isinf(qua< T, Q > const &x)']]], - ['ismultiple',['isMultiple',['../a00261.html#gaec593d33956a8fe43f78fccc63ddde9a',1,'glm::isMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga354caf634ef333d9cb4844407416256a',1,'glm::isMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gabb4360e38c0943d8981ba965dead519d',1,'glm::isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['isnan',['isnan',['../a00241.html#ga29ef934c00306490de837b4746b4e14d',1,'glm::isnan(vec< L, T, Q > const &x)'],['../a00248.html#ga1bb55f8963616502e96dc564384d8a03',1,'glm::isnan(qua< T, Q > const &x)']]], - ['isnormalized',['isNormalized',['../a00340.html#gae785af56f47ce220a1609f7f84aa077a',1,'glm::isNormalized(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gaa068311695f28f5f555f5f746a6a66fb',1,'glm::isNormalized(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga4d9bb4d0465df49fedfad79adc6ce4ad',1,'glm::isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gac3c974f459fd75453134fad7ae89a39e',1,'glm::isNormalized(vec< L, T, Q > const &v, T const &epsilon)']]], - ['isnull',['isNull',['../a00340.html#ga9790ec222ce948c0ff0d8ce927340dba',1,'glm::isNull(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gae14501c6b14ccda6014cc5350080103d',1,'glm::isNull(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga2b98bb30a9fefa7cdea5f1dcddba677b',1,'glm::isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gab4a3637dbcb4bb42dc55caea7a1e0495',1,'glm::isNull(vec< L, T, Q > const &v, T const &epsilon)']]], - ['isorthogonal',['isOrthogonal',['../a00340.html#ga58f3289f74dcab653387dd78ad93ca40',1,'glm']]], - ['ispoweroftwo',['isPowerOfTwo',['../a00261.html#gadf491730354aa7da67fbe23d4d688763',1,'glm::isPowerOfTwo(genIUType v)'],['../a00274.html#gabf2b61ded7049bcb13e25164f832a290',1,'glm::isPowerOfTwo(vec< L, T, Q > const &v)']]] -]; +var searchData= +[ + ['identity',['identity',['../a00247.html#ga81696f2b8d1db02ea1aff8da8f269314',1,'glm']]], + ['imulextended',['imulExtended',['../a00370.html#gac0c510a70e852f57594a9141848642e3',1,'glm']]], + ['infiniteperspective',['infinitePerspective',['../a00243.html#ga44fa38a18349450325cae2661bb115ca',1,'glm']]], + ['infiniteperspectivelh',['infinitePerspectiveLH',['../a00243.html#ga3201b30f5b3ea0f933246d87bfb992a9',1,'glm']]], + ['infiniteperspectiverh',['infinitePerspectiveRH',['../a00243.html#ga99672ffe5714ef478dab2437255fe7e1',1,'glm']]], + ['intbitstofloat',['intBitsToFloat',['../a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4',1,'glm::intBitsToFloat(int const &v)'],['../a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0',1,'glm::intBitsToFloat(vec< L, int, Q > const &v)']]], + ['intermediate',['intermediate',['../a00352.html#gacc5cd5f3e78de61d141c2355417424de',1,'glm']]], + ['interpolate',['interpolate',['../a00337.html#ga4e67863d150724b10c1ac00972dc958c',1,'glm']]], + ['intersectlinesphere',['intersectLineSphere',['../a00331.html#ga9c68139f3d8a4f3d7fe45f9dbc0de5b7',1,'glm']]], + ['intersectlinetriangle',['intersectLineTriangle',['../a00331.html#ga9d29b9b3acb504d43986502f42740df4',1,'glm']]], + ['intersectrayplane',['intersectRayPlane',['../a00331.html#gad3697a9700ea379739a667ea02573488',1,'glm']]], + ['intersectraysphere',['intersectRaySphere',['../a00331.html#gac88f8cd84c4bcb5b947d56acbbcfa56e',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, typename genType::value_type const sphereRadiusSquered, typename genType::value_type &intersectionDistance)'],['../a00331.html#gad28c00515b823b579c608aafa1100c1d',1,'glm::intersectRaySphere(genType const &rayStarting, genType const &rayNormalizedDirection, genType const &sphereCenter, const typename genType::value_type sphereRadius, genType &intersectionPosition, genType &intersectionNormal)']]], + ['intersectraytriangle',['intersectRayTriangle',['../a00331.html#ga65bf2c594482f04881c36bc761f9e946',1,'glm']]], + ['inverse',['inverse',['../a00248.html#gab41da854ae678e23e114b598cbca4065',1,'glm::inverse(qua< T, Q > const &q)'],['../a00317.html#ga070f521a953f6461af4ab4cf8ccbf27e',1,'glm::inverse(tdualquat< T, Q > const &q)'],['../a00371.html#gaed509fe8129b01e4f20a6d0de5690091',1,'glm::inverse(mat< C, R, T, Q > const &m)']]], + ['inversesqrt',['inversesqrt',['../a00242.html#ga523dd6bd0ad9f75ae2d24c8e4b017b7a',1,'glm']]], + ['inversetranspose',['inverseTranspose',['../a00295.html#gab213cd0e3ead5f316d583f99d6312008',1,'glm']]], + ['iround',['iround',['../a00292.html#ga57824268ebe13a922f1d69a5d37f637f',1,'glm']]], + ['iscompnull',['isCompNull',['../a00368.html#gaf6ec1688eab7442fe96fe4941d5d4e76',1,'glm']]], + ['isdenormal',['isdenormal',['../a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91',1,'glm']]], + ['isfinite',['isfinite',['../a00315.html#gaf4b04dcd3526996d68c1bfe17bfc8657',1,'glm::isfinite(genType const &x)'],['../a00315.html#gac3b12b8ac3014418fe53c299478b6603',1,'glm::isfinite(const vec< 1, T, Q > &x)'],['../a00315.html#ga8e76dc3e406ce6a4155c2b12a2e4b084',1,'glm::isfinite(const vec< 2, T, Q > &x)'],['../a00315.html#ga929ef27f896d902c1771a2e5e150fc97',1,'glm::isfinite(const vec< 3, T, Q > &x)'],['../a00315.html#ga19925badbe10ce61df1d0de00be0b5ad',1,'glm::isfinite(const vec< 4, T, Q > &x)']]], + ['isidentity',['isIdentity',['../a00340.html#gaee935d145581c82e82b154ccfd78ad91',1,'glm']]], + ['isinf',['isinf',['../a00241.html#ga2885587c23a106301f20443896365b62',1,'glm::isinf(vec< L, T, Q > const &x)'],['../a00248.html#ga45722741ea266b4e861938b365c5f362',1,'glm::isinf(qua< T, Q > const &x)']]], + ['ismultiple',['isMultiple',['../a00261.html#gaec593d33956a8fe43f78fccc63ddde9a',1,'glm::isMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga354caf634ef333d9cb4844407416256a',1,'glm::isMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gabb4360e38c0943d8981ba965dead519d',1,'glm::isMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['isnan',['isnan',['../a00241.html#ga29ef934c00306490de837b4746b4e14d',1,'glm::isnan(vec< L, T, Q > const &x)'],['../a00248.html#ga1bb55f8963616502e96dc564384d8a03',1,'glm::isnan(qua< T, Q > const &x)']]], + ['isnormalized',['isNormalized',['../a00340.html#gae785af56f47ce220a1609f7f84aa077a',1,'glm::isNormalized(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gaa068311695f28f5f555f5f746a6a66fb',1,'glm::isNormalized(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga4d9bb4d0465df49fedfad79adc6ce4ad',1,'glm::isNormalized(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gac3c974f459fd75453134fad7ae89a39e',1,'glm::isNormalized(vec< L, T, Q > const &v, T const &epsilon)']]], + ['isnull',['isNull',['../a00340.html#ga9790ec222ce948c0ff0d8ce927340dba',1,'glm::isNull(mat< 2, 2, T, Q > const &m, T const &epsilon)'],['../a00340.html#gae14501c6b14ccda6014cc5350080103d',1,'glm::isNull(mat< 3, 3, T, Q > const &m, T const &epsilon)'],['../a00340.html#ga2b98bb30a9fefa7cdea5f1dcddba677b',1,'glm::isNull(mat< 4, 4, T, Q > const &m, T const &epsilon)'],['../a00368.html#gab4a3637dbcb4bb42dc55caea7a1e0495',1,'glm::isNull(vec< L, T, Q > const &v, T const &epsilon)']]], + ['isorthogonal',['isOrthogonal',['../a00340.html#ga58f3289f74dcab653387dd78ad93ca40',1,'glm']]], + ['ispoweroftwo',['isPowerOfTwo',['../a00261.html#gadf491730354aa7da67fbe23d4d688763',1,'glm::isPowerOfTwo(genIUType v)'],['../a00274.html#gabf2b61ded7049bcb13e25164f832a290',1,'glm::isPowerOfTwo(vec< L, T, Q > const &v)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_9.html b/external/include/glm-0.9.9.8/doc/api/search/functions_9.html index e636fc8248..61de44ad4e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_9.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_9.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_9.js b/external/include/glm-0.9.9.8/doc/api/search/functions_9.js index abc477d2f8..a62d9c3fcc 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_9.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_9.js @@ -1,28 +1,28 @@ -var searchData= -[ - ['l1norm',['l1Norm',['../a00343.html#gae2fc0b2aa967bebfd6a244700bff6997',1,'glm::l1Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga1a7491e2037ceeb37f83ce41addfc0be',1,'glm::l1Norm(vec< 3, T, Q > const &v)']]], - ['l2norm',['l2Norm',['../a00343.html#ga41340b2ef40a9307ab0f137181565168',1,'glm::l2Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#gae288bde8f0e41fb4ed62e65137b18cba',1,'glm::l2Norm(vec< 3, T, Q > const &x)']]], - ['ldexp',['ldexp',['../a00241.html#gac3010e0a0c35a1b514540f2fb579c58c',1,'glm']]], - ['lefthanded',['leftHanded',['../a00328.html#ga6f1bad193b9a3b048543d1935cf04dd3',1,'glm']]], - ['length',['length',['../a00254.html#gab703732449be6c7199369b3f9a91ed38',1,'glm::length(qua< T, Q > const &q)'],['../a00279.html#ga0cdabbb000834d994a1d6dc56f8f5263',1,'glm::length(vec< L, T, Q > const &x)']]], - ['length2',['length2',['../a00343.html#ga8d1789651050adb7024917984b41c3de',1,'glm::length2(vec< L, T, Q > const &x)'],['../a00352.html#ga58a609b1b8ab965f5df2702e8ca4e75b',1,'glm::length2(qua< T, Q > const &q)']]], - ['lerp',['lerp',['../a00248.html#ga6033dc0741051fa463a0a147ba29f293',1,'glm::lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00315.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00315.html#gaa551c0a0e16d2d4608e49f7696df897f',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)'],['../a00315.html#ga44a8b5fd776320f1713413dec959b32a',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)'],['../a00315.html#ga89ac8e000199292ec7875519d27e214b',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)'],['../a00315.html#gaf68de5baf72d16135368b8ef4f841604',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)'],['../a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)'],['../a00315.html#gab5477ab69c40de4db5d58d3359529724',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)'],['../a00317.html#gace8380112d16d33f520839cb35a4d173',1,'glm::lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)']]], - ['lessthan',['lessThan',['../a00299.html#gad091a2d22c8acfebfa92bcfca1dfe9c4',1,'glm::lessThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gae90ed1592c395f93e3f3dfce6b2f39c6',1,'glm::lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['lessthanequal',['lessThanEqual',['../a00299.html#gac00012eea281800d2403f4ea8443134d',1,'glm::lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gab0bdafc019d227257ff73fb5bcca1718',1,'glm::lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], - ['levels',['levels',['../a00361.html#gaa8c377f4e63486db4fa872d77880da73',1,'glm']]], - ['lineargradient',['linearGradient',['../a00327.html#ga849241df1e55129b8ce9476200307419',1,'glm']]], - ['linearinterpolation',['linearInterpolation',['../a00318.html#ga290c3e47cb0a49f2e8abe90b1872b649',1,'glm']]], - ['linearrand',['linearRand',['../a00300.html#ga04e241ab88374a477a2c2ceadd2fa03d',1,'glm::linearRand(genType Min, genType Max)'],['../a00300.html#ga94731130c298a9ff5e5025fdee6d97a0',1,'glm::linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)']]], - ['lmaxnorm',['lMaxNorm',['../a00343.html#gad58a8231fc32e38104a9e1c4d3c0cb64',1,'glm::lMaxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga6968a324837a8e899396d44de23d5aae',1,'glm::lMaxNorm(vec< 3, T, Q > const &x)']]], - ['ln_5fln_5ftwo',['ln_ln_two',['../a00290.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]], - ['ln_5ften',['ln_ten',['../a00290.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]], - ['ln_5ftwo',['ln_two',['../a00290.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]], - ['log',['log',['../a00242.html#ga918c9f3fd086ce20e6760c903bd30fa9',1,'glm::log(vec< L, T, Q > const &v)'],['../a00256.html#gaa5f7b20e296671b16ce25a2ab7ad5473',1,'glm::log(qua< T, Q > const &q)'],['../a00333.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &x, genType const &base)']]], - ['log2',['log2',['../a00242.html#ga82831c7d9cca777cebedfe03a19c8d75',1,'glm::log2(vec< L, T, Q > const &v)'],['../a00292.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]], - ['lookat',['lookAt',['../a00247.html#gaa64aa951a0e99136bba9008d2b59c78e',1,'glm']]], - ['lookatlh',['lookAtLH',['../a00247.html#gab2c09e25b0a16d3a9d89cc85bbae41b0',1,'glm']]], - ['lookatrh',['lookAtRH',['../a00247.html#gacfa12c8889c754846bc20c65d9b5c701',1,'glm']]], - ['lowestbitvalue',['lowestBitValue',['../a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]], - ['luminosity',['luminosity',['../a00312.html#gad028e0a4f1a9c812b39439b746295b34',1,'glm']]], - ['lxnorm',['lxNorm',['../a00343.html#gacad23d30497eb16f67709f2375d1f66a',1,'glm::lxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)'],['../a00343.html#gac61b6d81d796d6eb4d4183396a19ab91',1,'glm::lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)']]] -]; +var searchData= +[ + ['l1norm',['l1Norm',['../a00343.html#gae2fc0b2aa967bebfd6a244700bff6997',1,'glm::l1Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga1a7491e2037ceeb37f83ce41addfc0be',1,'glm::l1Norm(vec< 3, T, Q > const &v)']]], + ['l2norm',['l2Norm',['../a00343.html#ga41340b2ef40a9307ab0f137181565168',1,'glm::l2Norm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#gae288bde8f0e41fb4ed62e65137b18cba',1,'glm::l2Norm(vec< 3, T, Q > const &x)']]], + ['ldexp',['ldexp',['../a00241.html#gac3010e0a0c35a1b514540f2fb579c58c',1,'glm']]], + ['lefthanded',['leftHanded',['../a00328.html#ga6f1bad193b9a3b048543d1935cf04dd3',1,'glm']]], + ['length',['length',['../a00254.html#gab703732449be6c7199369b3f9a91ed38',1,'glm::length(qua< T, Q > const &q)'],['../a00279.html#ga0cdabbb000834d994a1d6dc56f8f5263',1,'glm::length(vec< L, T, Q > const &x)']]], + ['length2',['length2',['../a00343.html#ga8d1789651050adb7024917984b41c3de',1,'glm::length2(vec< L, T, Q > const &x)'],['../a00352.html#ga58a609b1b8ab965f5df2702e8ca4e75b',1,'glm::length2(qua< T, Q > const &q)']]], + ['lerp',['lerp',['../a00248.html#ga6033dc0741051fa463a0a147ba29f293',1,'glm::lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)'],['../a00315.html#ga5494ba3a95ea6594c86fc75236886864',1,'glm::lerp(T x, T y, T a)'],['../a00315.html#gaa551c0a0e16d2d4608e49f7696df897f',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, T a)'],['../a00315.html#ga44a8b5fd776320f1713413dec959b32a',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, T a)'],['../a00315.html#ga89ac8e000199292ec7875519d27e214b',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, T a)'],['../a00315.html#gaf68de5baf72d16135368b8ef4f841604',1,'glm::lerp(const vec< 2, T, Q > &x, const vec< 2, T, Q > &y, const vec< 2, T, Q > &a)'],['../a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3',1,'glm::lerp(const vec< 3, T, Q > &x, const vec< 3, T, Q > &y, const vec< 3, T, Q > &a)'],['../a00315.html#gab5477ab69c40de4db5d58d3359529724',1,'glm::lerp(const vec< 4, T, Q > &x, const vec< 4, T, Q > &y, const vec< 4, T, Q > &a)'],['../a00317.html#gace8380112d16d33f520839cb35a4d173',1,'glm::lerp(tdualquat< T, Q > const &x, tdualquat< T, Q > const &y, T const &a)']]], + ['lessthan',['lessThan',['../a00299.html#gad091a2d22c8acfebfa92bcfca1dfe9c4',1,'glm::lessThan(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gae90ed1592c395f93e3f3dfce6b2f39c6',1,'glm::lessThan(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['lessthanequal',['lessThanEqual',['../a00299.html#gac00012eea281800d2403f4ea8443134d',1,'glm::lessThanEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00374.html#gab0bdafc019d227257ff73fb5bcca1718',1,'glm::lessThanEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]], + ['levels',['levels',['../a00361.html#gaa8c377f4e63486db4fa872d77880da73',1,'glm']]], + ['lineargradient',['linearGradient',['../a00327.html#ga849241df1e55129b8ce9476200307419',1,'glm']]], + ['linearinterpolation',['linearInterpolation',['../a00318.html#ga290c3e47cb0a49f2e8abe90b1872b649',1,'glm']]], + ['linearrand',['linearRand',['../a00300.html#ga04e241ab88374a477a2c2ceadd2fa03d',1,'glm::linearRand(genType Min, genType Max)'],['../a00300.html#ga94731130c298a9ff5e5025fdee6d97a0',1,'glm::linearRand(vec< L, T, Q > const &Min, vec< L, T, Q > const &Max)']]], + ['lmaxnorm',['lMaxNorm',['../a00343.html#gad58a8231fc32e38104a9e1c4d3c0cb64',1,'glm::lMaxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)'],['../a00343.html#ga6968a324837a8e899396d44de23d5aae',1,'glm::lMaxNorm(vec< 3, T, Q > const &x)']]], + ['ln_5fln_5ftwo',['ln_ln_two',['../a00290.html#gaca94292c839ed31a405ab7a81ae7e850',1,'glm']]], + ['ln_5ften',['ln_ten',['../a00290.html#gaf97ebc6c059ffd788e6c4946f71ef66c',1,'glm']]], + ['ln_5ftwo',['ln_two',['../a00290.html#ga24f4d27765678116f41a2f336ab7975c',1,'glm']]], + ['log',['log',['../a00242.html#ga918c9f3fd086ce20e6760c903bd30fa9',1,'glm::log(vec< L, T, Q > const &v)'],['../a00256.html#gaa5f7b20e296671b16ce25a2ab7ad5473',1,'glm::log(qua< T, Q > const &q)'],['../a00333.html#ga60a7b0a401da660869946b2b77c710c9',1,'glm::log(genType const &x, genType const &base)']]], + ['log2',['log2',['../a00242.html#ga82831c7d9cca777cebedfe03a19c8d75',1,'glm::log2(vec< L, T, Q > const &v)'],['../a00292.html#ga9bd682e74bfacb005c735305207ec417',1,'glm::log2(genIUType x)']]], + ['lookat',['lookAt',['../a00247.html#gaa64aa951a0e99136bba9008d2b59c78e',1,'glm']]], + ['lookatlh',['lookAtLH',['../a00247.html#gab2c09e25b0a16d3a9d89cc85bbae41b0',1,'glm']]], + ['lookatrh',['lookAtRH',['../a00247.html#gacfa12c8889c754846bc20c65d9b5c701',1,'glm']]], + ['lowestbitvalue',['lowestBitValue',['../a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f',1,'glm']]], + ['luminosity',['luminosity',['../a00312.html#gad028e0a4f1a9c812b39439b746295b34',1,'glm']]], + ['lxnorm',['lxNorm',['../a00343.html#gacad23d30497eb16f67709f2375d1f66a',1,'glm::lxNorm(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, unsigned int Depth)'],['../a00343.html#gac61b6d81d796d6eb4d4183396a19ab91',1,'glm::lxNorm(vec< 3, T, Q > const &x, unsigned int Depth)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_a.html b/external/include/glm-0.9.9.8/doc/api/search/functions_a.html index 1d68dba91e..a46b662ed7 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_a.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_a.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_a.js b/external/include/glm-0.9.9.8/doc/api/search/functions_a.js index b6d527ec82..6cd742861c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_a.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_a.js @@ -1,36 +1,36 @@ -var searchData= -[ - ['make_5fmat2',['make_mat2',['../a00305.html#ga04409e74dc3da251d2501acf5b4b546c',1,'glm']]], - ['make_5fmat2x2',['make_mat2x2',['../a00305.html#gae49e1c7bcd5abec74d1c34155031f663',1,'glm']]], - ['make_5fmat2x3',['make_mat2x3',['../a00305.html#ga21982104164789cf8985483aaefc25e8',1,'glm']]], - ['make_5fmat2x4',['make_mat2x4',['../a00305.html#ga078b862c90b0e9a79ed43a58997d8388',1,'glm']]], - ['make_5fmat3',['make_mat3',['../a00305.html#ga611ee7c4d4cadfc83a8fa8e1d10a170f',1,'glm']]], - ['make_5fmat3x2',['make_mat3x2',['../a00305.html#ga27a24e121dc39e6857620e0f85b6e1a8',1,'glm']]], - ['make_5fmat3x3',['make_mat3x3',['../a00305.html#gaf2e8337b15c3362aaeb6e5849e1c0536',1,'glm']]], - ['make_5fmat3x4',['make_mat3x4',['../a00305.html#ga05dd66232aedb993e3b8e7b35eaf932b',1,'glm']]], - ['make_5fmat4',['make_mat4',['../a00305.html#gae7bcedb710d1446c87fd1fc93ed8ee9a',1,'glm']]], - ['make_5fmat4x2',['make_mat4x2',['../a00305.html#ga8b34c9b25bf3310d8ff9c828c7e2d97c',1,'glm']]], - ['make_5fmat4x3',['make_mat4x3',['../a00305.html#ga0330bf6640092d7985fac92927bbd42b',1,'glm']]], - ['make_5fmat4x4',['make_mat4x4',['../a00305.html#ga8f084be30e404844bfbb4a551ac2728c',1,'glm']]], - ['make_5fquat',['make_quat',['../a00305.html#ga58110d7d81cf7d029e2bab7f8cd9b246',1,'glm']]], - ['make_5fvec1',['make_vec1',['../a00305.html#ga4135f03f3049f0a4eb76545c4967957c',1,'glm::make_vec1(vec< 1, T, Q > const &v)'],['../a00305.html#ga13c92b81e55f201b052a6404d57da220',1,'glm::make_vec1(vec< 2, T, Q > const &v)'],['../a00305.html#ga3c23cc74086d361e22bbd5e91a334e03',1,'glm::make_vec1(vec< 3, T, Q > const &v)'],['../a00305.html#ga6af06bb60d64ca8bcd169e3c93bc2419',1,'glm::make_vec1(vec< 4, T, Q > const &v)']]], - ['make_5fvec2',['make_vec2',['../a00305.html#ga8476d0e6f1b9b4a6193cc25f59d8a896',1,'glm::make_vec2(vec< 1, T, Q > const &v)'],['../a00305.html#gae54bd325a08ad26edf63929201adebc7',1,'glm::make_vec2(vec< 2, T, Q > const &v)'],['../a00305.html#ga0084fea4694cf47276e9cccbe7b1015a',1,'glm::make_vec2(vec< 3, T, Q > const &v)'],['../a00305.html#ga2b81f71f3a222fe5bba81e3983751249',1,'glm::make_vec2(vec< 4, T, Q > const &v)'],['../a00305.html#ga81253cf7b0ebfbb1e70540c5774e6824',1,'glm::make_vec2(T const *const ptr)']]], - ['make_5fvec3',['make_vec3',['../a00305.html#ga9147e4b3a5d0f4772edfbfd179d7ea0b',1,'glm::make_vec3(vec< 1, T, Q > const &v)'],['../a00305.html#ga482b60a842a5b154d3eed392417a9511',1,'glm::make_vec3(vec< 2, T, Q > const &v)'],['../a00305.html#gacd57046034df557b8b1c457f58613623',1,'glm::make_vec3(vec< 3, T, Q > const &v)'],['../a00305.html#ga8b589ed7d41a298b516d2a69169248f1',1,'glm::make_vec3(vec< 4, T, Q > const &v)'],['../a00305.html#gad9e0d36ff489cb30c65ad1fa40351651',1,'glm::make_vec3(T const *const ptr)']]], - ['make_5fvec4',['make_vec4',['../a00305.html#ga600cb97f70c5d50d3a4a145e1cafbf37',1,'glm::make_vec4(vec< 1, T, Q > const &v)'],['../a00305.html#gaa9bd116caf28196fd1cf00b278286fa7',1,'glm::make_vec4(vec< 2, T, Q > const &v)'],['../a00305.html#ga4036328ba4702c74cbdfad1fc03d1b8f',1,'glm::make_vec4(vec< 3, T, Q > const &v)'],['../a00305.html#gaa95cb15732f708f613e65a0578895ae5',1,'glm::make_vec4(vec< 4, T, Q > const &v)'],['../a00305.html#ga63f576518993efc22a969f18f80e29bb',1,'glm::make_vec4(T const *const ptr)']]], - ['mask',['mask',['../a00288.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00288.html#ga2e64e3b922a296033b825311e7f5fff1',1,'glm::mask(vec< L, T, Q > const &v)']]], - ['mat2x4_5fcast',['mat2x4_cast',['../a00317.html#gae99d143b37f9cad4cd9285571aab685a',1,'glm']]], - ['mat3_5fcast',['mat3_cast',['../a00299.html#ga333ab70047fbe4132406100c292dbc89',1,'glm']]], - ['mat3x4_5fcast',['mat3x4_cast',['../a00317.html#gaf59f5bb69620d2891c3795c6f2639179',1,'glm']]], - ['mat4_5fcast',['mat4_cast',['../a00299.html#ga1113212d9bdefc2e31ad40e5bbb506f3',1,'glm']]], - ['matrixcompmult',['matrixCompMult',['../a00371.html#gaf14569404c779fedca98d0b9b8e58c1f',1,'glm']]], - ['matrixcross3',['matrixCross3',['../a00334.html#ga5802386bb4c37b3332a3b6fd8b6960ff',1,'glm']]], - ['matrixcross4',['matrixCross4',['../a00334.html#ga20057fff91ddafa102934adb25458cde',1,'glm']]], - ['max',['max',['../a00241.html#gae02d42887fc5570451f880e3c624b9ac',1,'glm::max(genType x, genType y)'],['../a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31',1,'glm::max(vec< L, T, Q > const &x, T y)'],['../a00241.html#gac1fec0c3303b572a6d4697a637213870',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#gaa20839d9ab14514f8966f69877ea0de8',1,'glm::max(T a, T b, T c)'],['../a00258.html#ga2274b5e75ed84b0b1e50d8d22f1f2f67',1,'glm::max(T a, T b, T c, T d)'],['../a00267.html#gaa45d34f6a2906f8bf58ab2ba5429234d',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)'],['../a00267.html#ga94d42b8da2b4ded5ddf7504fbdc6bf10',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)'],['../a00321.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &x, T const &y, T const &z)'],['../a00321.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], - ['min',['min',['../a00241.html#ga6cf8098827054a270ee36b18e30d471d',1,'glm::min(genType x, genType y)'],['../a00241.html#gaa7d015eba1f9f48519251f4abe69b14d',1,'glm::min(vec< L, T, Q > const &x, T y)'],['../a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48',1,'glm::min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#ga420b37cbd98c395b93dab0278305cd46',1,'glm::min(T a, T b, T c)'],['../a00258.html#ga0d24a9acb8178df77e4aff90cbb2010d',1,'glm::min(T a, T b, T c, T d)'],['../a00267.html#ga3cd83d80fd4f433d8e333593ec56dddf',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#gab66920ed064ab518d6859c5a889c4be4',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &x, T const &y, T const &z)'],['../a00321.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], - ['mirrorclamp',['mirrorClamp',['../a00369.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]], - ['mirrorrepeat',['mirrorRepeat',['../a00369.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]], - ['mix',['mix',['../a00241.html#ga8e93f374aae27d1a88b921860351f8d4',1,'glm::mix(genTypeT x, genTypeT y, genTypeU a)'],['../a00248.html#gafbfe587b8da11fb89a30c3d67dd5ccc2',1,'glm::mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)']]], - ['mixedproduct',['mixedProduct',['../a00342.html#gab3c6048fbb67f7243b088a4fee48d020',1,'glm']]], - ['mod',['mod',['../a00241.html#ga9b197a452cd52db3c5c18bac72bd7798',1,'glm::mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00330.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00330.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]], - ['modf',['modf',['../a00241.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]] -]; +var searchData= +[ + ['make_5fmat2',['make_mat2',['../a00305.html#ga04409e74dc3da251d2501acf5b4b546c',1,'glm']]], + ['make_5fmat2x2',['make_mat2x2',['../a00305.html#gae49e1c7bcd5abec74d1c34155031f663',1,'glm']]], + ['make_5fmat2x3',['make_mat2x3',['../a00305.html#ga21982104164789cf8985483aaefc25e8',1,'glm']]], + ['make_5fmat2x4',['make_mat2x4',['../a00305.html#ga078b862c90b0e9a79ed43a58997d8388',1,'glm']]], + ['make_5fmat3',['make_mat3',['../a00305.html#ga611ee7c4d4cadfc83a8fa8e1d10a170f',1,'glm']]], + ['make_5fmat3x2',['make_mat3x2',['../a00305.html#ga27a24e121dc39e6857620e0f85b6e1a8',1,'glm']]], + ['make_5fmat3x3',['make_mat3x3',['../a00305.html#gaf2e8337b15c3362aaeb6e5849e1c0536',1,'glm']]], + ['make_5fmat3x4',['make_mat3x4',['../a00305.html#ga05dd66232aedb993e3b8e7b35eaf932b',1,'glm']]], + ['make_5fmat4',['make_mat4',['../a00305.html#gae7bcedb710d1446c87fd1fc93ed8ee9a',1,'glm']]], + ['make_5fmat4x2',['make_mat4x2',['../a00305.html#ga8b34c9b25bf3310d8ff9c828c7e2d97c',1,'glm']]], + ['make_5fmat4x3',['make_mat4x3',['../a00305.html#ga0330bf6640092d7985fac92927bbd42b',1,'glm']]], + ['make_5fmat4x4',['make_mat4x4',['../a00305.html#ga8f084be30e404844bfbb4a551ac2728c',1,'glm']]], + ['make_5fquat',['make_quat',['../a00305.html#ga58110d7d81cf7d029e2bab7f8cd9b246',1,'glm']]], + ['make_5fvec1',['make_vec1',['../a00305.html#ga4135f03f3049f0a4eb76545c4967957c',1,'glm::make_vec1(vec< 1, T, Q > const &v)'],['../a00305.html#ga13c92b81e55f201b052a6404d57da220',1,'glm::make_vec1(vec< 2, T, Q > const &v)'],['../a00305.html#ga3c23cc74086d361e22bbd5e91a334e03',1,'glm::make_vec1(vec< 3, T, Q > const &v)'],['../a00305.html#ga6af06bb60d64ca8bcd169e3c93bc2419',1,'glm::make_vec1(vec< 4, T, Q > const &v)']]], + ['make_5fvec2',['make_vec2',['../a00305.html#ga8476d0e6f1b9b4a6193cc25f59d8a896',1,'glm::make_vec2(vec< 1, T, Q > const &v)'],['../a00305.html#gae54bd325a08ad26edf63929201adebc7',1,'glm::make_vec2(vec< 2, T, Q > const &v)'],['../a00305.html#ga0084fea4694cf47276e9cccbe7b1015a',1,'glm::make_vec2(vec< 3, T, Q > const &v)'],['../a00305.html#ga2b81f71f3a222fe5bba81e3983751249',1,'glm::make_vec2(vec< 4, T, Q > const &v)'],['../a00305.html#ga81253cf7b0ebfbb1e70540c5774e6824',1,'glm::make_vec2(T const *const ptr)']]], + ['make_5fvec3',['make_vec3',['../a00305.html#ga9147e4b3a5d0f4772edfbfd179d7ea0b',1,'glm::make_vec3(vec< 1, T, Q > const &v)'],['../a00305.html#ga482b60a842a5b154d3eed392417a9511',1,'glm::make_vec3(vec< 2, T, Q > const &v)'],['../a00305.html#gacd57046034df557b8b1c457f58613623',1,'glm::make_vec3(vec< 3, T, Q > const &v)'],['../a00305.html#ga8b589ed7d41a298b516d2a69169248f1',1,'glm::make_vec3(vec< 4, T, Q > const &v)'],['../a00305.html#gad9e0d36ff489cb30c65ad1fa40351651',1,'glm::make_vec3(T const *const ptr)']]], + ['make_5fvec4',['make_vec4',['../a00305.html#ga600cb97f70c5d50d3a4a145e1cafbf37',1,'glm::make_vec4(vec< 1, T, Q > const &v)'],['../a00305.html#gaa9bd116caf28196fd1cf00b278286fa7',1,'glm::make_vec4(vec< 2, T, Q > const &v)'],['../a00305.html#ga4036328ba4702c74cbdfad1fc03d1b8f',1,'glm::make_vec4(vec< 3, T, Q > const &v)'],['../a00305.html#gaa95cb15732f708f613e65a0578895ae5',1,'glm::make_vec4(vec< 4, T, Q > const &v)'],['../a00305.html#ga63f576518993efc22a969f18f80e29bb',1,'glm::make_vec4(T const *const ptr)']]], + ['mask',['mask',['../a00288.html#gad7eba518a0b71662114571ee76939f8a',1,'glm::mask(genIUType Bits)'],['../a00288.html#ga2e64e3b922a296033b825311e7f5fff1',1,'glm::mask(vec< L, T, Q > const &v)']]], + ['mat2x4_5fcast',['mat2x4_cast',['../a00317.html#gae99d143b37f9cad4cd9285571aab685a',1,'glm']]], + ['mat3_5fcast',['mat3_cast',['../a00299.html#ga333ab70047fbe4132406100c292dbc89',1,'glm']]], + ['mat3x4_5fcast',['mat3x4_cast',['../a00317.html#gaf59f5bb69620d2891c3795c6f2639179',1,'glm']]], + ['mat4_5fcast',['mat4_cast',['../a00299.html#ga1113212d9bdefc2e31ad40e5bbb506f3',1,'glm']]], + ['matrixcompmult',['matrixCompMult',['../a00371.html#gaf14569404c779fedca98d0b9b8e58c1f',1,'glm']]], + ['matrixcross3',['matrixCross3',['../a00334.html#ga5802386bb4c37b3332a3b6fd8b6960ff',1,'glm']]], + ['matrixcross4',['matrixCross4',['../a00334.html#ga20057fff91ddafa102934adb25458cde',1,'glm']]], + ['max',['max',['../a00241.html#gae02d42887fc5570451f880e3c624b9ac',1,'glm::max(genType x, genType y)'],['../a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31',1,'glm::max(vec< L, T, Q > const &x, T y)'],['../a00241.html#gac1fec0c3303b572a6d4697a637213870',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#gaa20839d9ab14514f8966f69877ea0de8',1,'glm::max(T a, T b, T c)'],['../a00258.html#ga2274b5e75ed84b0b1e50d8d22f1f2f67',1,'glm::max(T a, T b, T c, T d)'],['../a00267.html#gaa45d34f6a2906f8bf58ab2ba5429234d',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z)'],['../a00267.html#ga94d42b8da2b4ded5ddf7504fbdc6bf10',1,'glm::max(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &z, vec< L, T, Q > const &w)'],['../a00321.html#ga04991ccb9865c4c4e58488cfb209ce69',1,'glm::max(T const &x, T const &y, T const &z)'],['../a00321.html#gae1b7bbe5c91de4924835ea3e14530744',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#gaf832e9d4ab4826b2dda2fda25935a3a4',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga78e04a0cef1c4863fcae1a2130500d87',1,'glm::max(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga7cca8b53cfda402040494cdf40fbdf4a',1,'glm::max(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#gaacffbc466c2d08c140b181e7fd8a4858',1,'glm::max(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], + ['min',['min',['../a00241.html#ga6cf8098827054a270ee36b18e30d471d',1,'glm::min(genType x, genType y)'],['../a00241.html#gaa7d015eba1f9f48519251f4abe69b14d',1,'glm::min(vec< L, T, Q > const &x, T y)'],['../a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48',1,'glm::min(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00258.html#ga420b37cbd98c395b93dab0278305cd46',1,'glm::min(T a, T b, T c)'],['../a00258.html#ga0d24a9acb8178df77e4aff90cbb2010d',1,'glm::min(T a, T b, T c, T d)'],['../a00267.html#ga3cd83d80fd4f433d8e333593ec56dddf',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c)'],['../a00267.html#gab66920ed064ab518d6859c5a889c4be4',1,'glm::min(vec< L, T, Q > const &a, vec< L, T, Q > const &b, vec< L, T, Q > const &c, vec< L, T, Q > const &d)'],['../a00321.html#ga713d3f9b3e76312c0d314e0c8611a6a6',1,'glm::min(T const &x, T const &y, T const &z)'],['../a00321.html#ga74d1a96e7cdbac40f6d35142d3bcbbd4',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z)'],['../a00321.html#ga42b5c3fc027fd3d9a50d2ccc9126d9f0',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z)'],['../a00321.html#ga95466987024d03039607f09e69813d69',1,'glm::min(T const &x, T const &y, T const &z, T const &w)'],['../a00321.html#ga4fe35dd31dd0c45693c9b60b830b8d47',1,'glm::min(C< T > const &x, typename C< T >::T const &y, typename C< T >::T const &z, typename C< T >::T const &w)'],['../a00321.html#ga7471ea4159eed8dd9ea4ac5d46c2fead',1,'glm::min(C< T > const &x, C< T > const &y, C< T > const &z, C< T > const &w)']]], + ['mirrorclamp',['mirrorClamp',['../a00369.html#gaa6856a0a048d2749252848da35e10c8b',1,'glm']]], + ['mirrorrepeat',['mirrorRepeat',['../a00369.html#ga16a89b0661b60d5bea85137bbae74d73',1,'glm']]], + ['mix',['mix',['../a00241.html#ga8e93f374aae27d1a88b921860351f8d4',1,'glm::mix(genTypeT x, genTypeT y, genTypeU a)'],['../a00248.html#gafbfe587b8da11fb89a30c3d67dd5ccc2',1,'glm::mix(qua< T, Q > const &x, qua< T, Q > const &y, T a)']]], + ['mixedproduct',['mixedProduct',['../a00342.html#gab3c6048fbb67f7243b088a4fee48d020',1,'glm']]], + ['mod',['mod',['../a00241.html#ga9b197a452cd52db3c5c18bac72bd7798',1,'glm::mod(vec< L, T, Q > const &x, vec< L, T, Q > const &y)'],['../a00330.html#gaabfbb41531ab7ad8d06fc176edfba785',1,'glm::mod(int x, int y)'],['../a00330.html#ga63fc8d63e7da1706439233b386ba8b6f',1,'glm::mod(uint x, uint y)']]], + ['modf',['modf',['../a00241.html#ga85e33f139b8db1b39b590a5713b9e679',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_b.html b/external/include/glm-0.9.9.8/doc/api/search/functions_b.html index 7450914165..3b49416d51 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_b.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_b.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_b.js b/external/include/glm-0.9.9.8/doc/api/search/functions_b.js index e282a510a6..827bbd43ab 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_b.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_b.js @@ -1,10 +1,10 @@ -var searchData= -[ - ['nextmultiple',['nextMultiple',['../a00261.html#gab770a3835c44c8a6fd225be4f4e6b317',1,'glm::nextMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#gace38d00601cbf49cd4dc03f003ab42b7',1,'glm::nextMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gacda365edad320c7aff19cc283a3b8ca2',1,'glm::nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['nextpoweroftwo',['nextPowerOfTwo',['../a00261.html#ga3a37c2f2fd347886c9af6a3ca3db04dc',1,'glm::nextPowerOfTwo(genIUType v)'],['../a00274.html#gabba67f8aac9915e10fca727277274502',1,'glm::nextPowerOfTwo(vec< L, T, Q > const &v)']]], - ['nlz',['nlz',['../a00330.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]], - ['normalize',['normalize',['../a00254.html#gabf30e3263fffe8dcc6659aea76ae8927',1,'glm::normalize(qua< T, Q > const &q)'],['../a00279.html#ga3b8d3dcae77870781392ed2902cce597',1,'glm::normalize(vec< L, T, Q > const &x)'],['../a00317.html#ga299b8641509606b1958ffa104a162cfe',1,'glm::normalize(tdualquat< T, Q > const &q)']]], - ['normalizedot',['normalizeDot',['../a00345.html#gacb140a2b903115d318c8b0a2fb5a5daa',1,'glm']]], - ['not_5f',['not_',['../a00374.html#ga610fcd175791fd246e328ffee10dbf1e',1,'glm']]], - ['notequal',['notEqual',['../a00246.html#ga8504f18a7e2bf315393032c2137dad83',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#ga29071147d118569344d10944b7d5c378',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gad7959e14fbc35b4ed2617daf4d67f6cd',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gaa1cd7fc228ef6e26c73583fd0d9c6552',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#gaa5517341754149ffba742d230afd1f32',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gab441cee0de5867a868f3a586ee68cfe1',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#ga5117a44c1bf21af857cd23e44a96d313',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga4a99cc41341567567a608719449c1fac',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga417cf51304359db18e819dda9bce5767',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga8b5c2c3f83422ae5b71fa960d03b0339',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga0b15ffe32987a6029b14398eb0def01a',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#ga17c19dc1b76cd5aef63e9e7ff3aa3c27',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]] -]; +var searchData= +[ + ['nextmultiple',['nextMultiple',['../a00261.html#gab770a3835c44c8a6fd225be4f4e6b317',1,'glm::nextMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#gace38d00601cbf49cd4dc03f003ab42b7',1,'glm::nextMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#gacda365edad320c7aff19cc283a3b8ca2',1,'glm::nextMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['nextpoweroftwo',['nextPowerOfTwo',['../a00261.html#ga3a37c2f2fd347886c9af6a3ca3db04dc',1,'glm::nextPowerOfTwo(genIUType v)'],['../a00274.html#gabba67f8aac9915e10fca727277274502',1,'glm::nextPowerOfTwo(vec< L, T, Q > const &v)']]], + ['nlz',['nlz',['../a00330.html#ga78dff8bdb361bf0061194c93e003d189',1,'glm']]], + ['normalize',['normalize',['../a00254.html#gabf30e3263fffe8dcc6659aea76ae8927',1,'glm::normalize(qua< T, Q > const &q)'],['../a00279.html#ga3b8d3dcae77870781392ed2902cce597',1,'glm::normalize(vec< L, T, Q > const &x)'],['../a00317.html#ga299b8641509606b1958ffa104a162cfe',1,'glm::normalize(tdualquat< T, Q > const &q)']]], + ['normalizedot',['normalizeDot',['../a00345.html#gacb140a2b903115d318c8b0a2fb5a5daa',1,'glm']]], + ['not_5f',['not_',['../a00374.html#ga610fcd175791fd246e328ffee10dbf1e',1,'glm']]], + ['notequal',['notEqual',['../a00246.html#ga8504f18a7e2bf315393032c2137dad83',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y)'],['../a00246.html#ga29071147d118569344d10944b7d5c378',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, T epsilon)'],['../a00246.html#gad7959e14fbc35b4ed2617daf4d67f6cd',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, T, Q > const &epsilon)'],['../a00246.html#gaa1cd7fc228ef6e26c73583fd0d9c6552',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, int ULPs)'],['../a00246.html#gaa5517341754149ffba742d230afd1f32',1,'glm::notEqual(mat< C, R, T, Q > const &x, mat< C, R, T, Q > const &y, vec< C, int, Q > const &ULPs)'],['../a00255.html#gab441cee0de5867a868f3a586ee68cfe1',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y)'],['../a00255.html#ga5117a44c1bf21af857cd23e44a96d313',1,'glm::notEqual(qua< T, Q > const &x, qua< T, Q > const &y, T epsilon)'],['../a00275.html#ga4a99cc41341567567a608719449c1fac',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, T epsilon)'],['../a00275.html#ga417cf51304359db18e819dda9bce5767',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, T, Q > const &epsilon)'],['../a00275.html#ga8b5c2c3f83422ae5b71fa960d03b0339',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, int ULPs)'],['../a00275.html#ga0b15ffe32987a6029b14398eb0def01a',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y, vec< L, int, Q > const &ULPs)'],['../a00374.html#ga17c19dc1b76cd5aef63e9e7ff3aa3c27',1,'glm::notEqual(vec< L, T, Q > const &x, vec< L, T, Q > const &y)']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_c.html b/external/include/glm-0.9.9.8/doc/api/search/functions_c.html index da5bded43f..57c64555ce 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_c.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_c.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_c.js b/external/include/glm-0.9.9.8/doc/api/search/functions_c.js index cfa0833ac4..0b832b7b21 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_c.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_c.js @@ -1,24 +1,24 @@ -var searchData= -[ - ['one',['one',['../a00290.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]], - ['one_5fover_5fpi',['one_over_pi',['../a00290.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]], - ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00290.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]], - ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00290.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]], - ['openbounded',['openBounded',['../a00314.html#gafd303042ba2ba695bf53b2315f53f93f',1,'glm']]], - ['orientate2',['orientate2',['../a00319.html#gae16738a9f1887cf4e4db6a124637608d',1,'glm']]], - ['orientate3',['orientate3',['../a00319.html#ga7ca98668a5786f19c7b38299ebbc9b4c',1,'glm::orientate3(T const &angle)'],['../a00319.html#ga7238c8e15c7720e3ca6a45ab151eeabb',1,'glm::orientate3(vec< 3, T, Q > const &angles)']]], - ['orientate4',['orientate4',['../a00319.html#ga4a044653f71a4ecec68e0b623382b48a',1,'glm']]], - ['orientation',['orientation',['../a00356.html#ga1a32fceb71962e6160e8af295c91930a',1,'glm']]], - ['orientedangle',['orientedAngle',['../a00367.html#ga9556a803dce87fe0f42fdabe4ebba1d5',1,'glm::orientedAngle(vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)'],['../a00367.html#ga706fce3d111f485839756a64f5a48553',1,'glm::orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)']]], - ['ortho',['ortho',['../a00243.html#gae5b6b40ed882cd56cd7cb97701909c06',1,'glm::ortho(T left, T right, T bottom, T top)'],['../a00243.html#ga6615d8a9d39432e279c4575313ecb456',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)']]], - ['ortholh',['orthoLH',['../a00243.html#gad122a79aadaa5529cec4ac197203db7f',1,'glm']]], - ['ortholh_5fno',['orthoLH_NO',['../a00243.html#ga526416735ea7c5c5cd255bf99d051bd8',1,'glm']]], - ['ortholh_5fzo',['orthoLH_ZO',['../a00243.html#gab37ac3eec8d61f22fceda7775e836afa',1,'glm']]], - ['orthono',['orthoNO',['../a00243.html#gab219d28a8f178d4517448fcd6395a073',1,'glm']]], - ['orthonormalize',['orthonormalize',['../a00348.html#ga4cab5d698e6e2eccea30c8e81c74371f',1,'glm::orthonormalize(mat< 3, 3, T, Q > const &m)'],['../a00348.html#gac3bc7ef498815026bc3d361ae0b7138e',1,'glm::orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)']]], - ['orthorh',['orthoRH',['../a00243.html#ga16264c9b838edeb9dd1de7a1010a13a4',1,'glm']]], - ['orthorh_5fno',['orthoRH_NO',['../a00243.html#gaa2f7a1373170bf0a4a2ddef9b0706780',1,'glm']]], - ['orthorh_5fzo',['orthoRH_ZO',['../a00243.html#ga9aea2e515b08fd7dce47b7b6ec34d588',1,'glm']]], - ['orthozo',['orthoZO',['../a00243.html#gaea11a70817af2c0801c869dea0b7a5bc',1,'glm']]], - ['outerproduct',['outerProduct',['../a00371.html#gac29fb7bae75a8e4c1b74cbbf85520e50',1,'glm']]] -]; +var searchData= +[ + ['one',['one',['../a00290.html#ga39c2fb227631ca25894326529bdd1ee5',1,'glm']]], + ['one_5fover_5fpi',['one_over_pi',['../a00290.html#ga555150da2b06d23c8738981d5013e0eb',1,'glm']]], + ['one_5fover_5froot_5ftwo',['one_over_root_two',['../a00290.html#ga788fa23a0939bac4d1d0205fb4f35818',1,'glm']]], + ['one_5fover_5ftwo_5fpi',['one_over_two_pi',['../a00290.html#ga7c922b427986cbb2e4c6ac69874eefbc',1,'glm']]], + ['openbounded',['openBounded',['../a00314.html#gafd303042ba2ba695bf53b2315f53f93f',1,'glm']]], + ['orientate2',['orientate2',['../a00319.html#gae16738a9f1887cf4e4db6a124637608d',1,'glm']]], + ['orientate3',['orientate3',['../a00319.html#ga7ca98668a5786f19c7b38299ebbc9b4c',1,'glm::orientate3(T const &angle)'],['../a00319.html#ga7238c8e15c7720e3ca6a45ab151eeabb',1,'glm::orientate3(vec< 3, T, Q > const &angles)']]], + ['orientate4',['orientate4',['../a00319.html#ga4a044653f71a4ecec68e0b623382b48a',1,'glm']]], + ['orientation',['orientation',['../a00356.html#ga1a32fceb71962e6160e8af295c91930a',1,'glm']]], + ['orientedangle',['orientedAngle',['../a00367.html#ga9556a803dce87fe0f42fdabe4ebba1d5',1,'glm::orientedAngle(vec< 2, T, Q > const &x, vec< 2, T, Q > const &y)'],['../a00367.html#ga706fce3d111f485839756a64f5a48553',1,'glm::orientedAngle(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y, vec< 3, T, Q > const &ref)']]], + ['ortho',['ortho',['../a00243.html#gae5b6b40ed882cd56cd7cb97701909c06',1,'glm::ortho(T left, T right, T bottom, T top)'],['../a00243.html#ga6615d8a9d39432e279c4575313ecb456',1,'glm::ortho(T left, T right, T bottom, T top, T zNear, T zFar)']]], + ['ortholh',['orthoLH',['../a00243.html#gad122a79aadaa5529cec4ac197203db7f',1,'glm']]], + ['ortholh_5fno',['orthoLH_NO',['../a00243.html#ga526416735ea7c5c5cd255bf99d051bd8',1,'glm']]], + ['ortholh_5fzo',['orthoLH_ZO',['../a00243.html#gab37ac3eec8d61f22fceda7775e836afa',1,'glm']]], + ['orthono',['orthoNO',['../a00243.html#gab219d28a8f178d4517448fcd6395a073',1,'glm']]], + ['orthonormalize',['orthonormalize',['../a00348.html#ga4cab5d698e6e2eccea30c8e81c74371f',1,'glm::orthonormalize(mat< 3, 3, T, Q > const &m)'],['../a00348.html#gac3bc7ef498815026bc3d361ae0b7138e',1,'glm::orthonormalize(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)']]], + ['orthorh',['orthoRH',['../a00243.html#ga16264c9b838edeb9dd1de7a1010a13a4',1,'glm']]], + ['orthorh_5fno',['orthoRH_NO',['../a00243.html#gaa2f7a1373170bf0a4a2ddef9b0706780',1,'glm']]], + ['orthorh_5fzo',['orthoRH_ZO',['../a00243.html#ga9aea2e515b08fd7dce47b7b6ec34d588',1,'glm']]], + ['orthozo',['orthoZO',['../a00243.html#gaea11a70817af2c0801c869dea0b7a5bc',1,'glm']]], + ['outerproduct',['outerProduct',['../a00371.html#gac29fb7bae75a8e4c1b74cbbf85520e50',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_d.html b/external/include/glm-0.9.9.8/doc/api/search/functions_d.html index 87c59fa537..58b3d31f0b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_d.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_d.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_d.js b/external/include/glm-0.9.9.8/doc/api/search/functions_d.js index ca044a7650..06f07e2057 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_d.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_d.js @@ -1,83 +1,83 @@ -var searchData= -[ - ['packdouble2x32',['packDouble2x32',['../a00372.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]], - ['packf2x11_5f1x10',['packF2x11_1x10',['../a00298.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]], - ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00298.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]], - ['packhalf',['packHalf',['../a00298.html#ga2d8bbce673ebc04831c1fb05c47f5251',1,'glm']]], - ['packhalf1x16',['packHalf1x16',['../a00298.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]], - ['packhalf2x16',['packHalf2x16',['../a00372.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]], - ['packhalf4x16',['packHalf4x16',['../a00298.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]], - ['packi3x10_5f1x2',['packI3x10_1x2',['../a00298.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]], - ['packint2x16',['packInt2x16',['../a00298.html#ga3644163cf3a47bf1d4af1f4b03013a7e',1,'glm']]], - ['packint2x32',['packInt2x32',['../a00298.html#gad1e4c8a9e67d86b61a6eec86703a827a',1,'glm']]], - ['packint2x8',['packInt2x8',['../a00298.html#ga8884b1f2292414f36d59ef3be5d62914',1,'glm']]], - ['packint4x16',['packInt4x16',['../a00298.html#ga1989f093a27ae69cf9207145be48b3d7',1,'glm']]], - ['packint4x8',['packInt4x8',['../a00298.html#gaf2238401d5ce2aaade1a44ba19709072',1,'glm']]], - ['packrgbm',['packRGBM',['../a00298.html#ga0466daf4c90f76cc64b3f105ce727295',1,'glm']]], - ['packsnorm',['packSnorm',['../a00298.html#gaa54b5855a750d6aeb12c1c902f5939b8',1,'glm']]], - ['packsnorm1x16',['packSnorm1x16',['../a00298.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]], - ['packsnorm1x8',['packSnorm1x8',['../a00298.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]], - ['packsnorm2x16',['packSnorm2x16',['../a00372.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]], - ['packsnorm2x8',['packSnorm2x8',['../a00298.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]], - ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00298.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]], - ['packsnorm4x16',['packSnorm4x16',['../a00298.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]], - ['packsnorm4x8',['packSnorm4x8',['../a00372.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]], - ['packu3x10_5f1x2',['packU3x10_1x2',['../a00298.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]], - ['packuint2x16',['packUint2x16',['../a00298.html#ga5eecc9e8cbaf51ac6cf57501e670ee19',1,'glm']]], - ['packuint2x32',['packUint2x32',['../a00298.html#gaa864081097b86e83d8e4a4d79c382b22',1,'glm']]], - ['packuint2x8',['packUint2x8',['../a00298.html#ga3c3c9fb53ae7823b10fa083909357590',1,'glm']]], - ['packuint4x16',['packUint4x16',['../a00298.html#ga2ceb62cca347d8ace42ee90317a3f1f9',1,'glm']]], - ['packuint4x8',['packUint4x8',['../a00298.html#gaa0fe2f09aeb403cd66c1a062f58861ab',1,'glm']]], - ['packunorm',['packUnorm',['../a00298.html#gaccd3f27e6ba5163eb7aa9bc8ff96251a',1,'glm']]], - ['packunorm1x16',['packUnorm1x16',['../a00298.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]], - ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00298.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]], - ['packunorm1x8',['packUnorm1x8',['../a00298.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]], - ['packunorm2x16',['packUnorm2x16',['../a00372.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]], - ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00298.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]], - ['packunorm2x4',['packUnorm2x4',['../a00298.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]], - ['packunorm2x8',['packUnorm2x8',['../a00298.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]], - ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00298.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]], - ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00298.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]], - ['packunorm4x16',['packUnorm4x16',['../a00298.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]], - ['packunorm4x4',['packUnorm4x4',['../a00298.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]], - ['packunorm4x8',['packUnorm4x8',['../a00372.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]], - ['perlin',['perlin',['../a00297.html#ga1e043ce3b51510e9bc4469227cefc38a',1,'glm::perlin(vec< L, T, Q > const &p)'],['../a00297.html#gac270edc54c5fc52f5985a45f940bb103',1,'glm::perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)']]], - ['perp',['perp',['../a00349.html#ga264cfc4e180cf9b852e943b35089003c',1,'glm']]], - ['perspective',['perspective',['../a00243.html#ga747c8cf99458663dd7ad1bb3a2f07787',1,'glm']]], - ['perspectivefov',['perspectiveFov',['../a00243.html#gaebd02240fd36e85ad754f02ddd9a560d',1,'glm']]], - ['perspectivefovlh',['perspectiveFovLH',['../a00243.html#ga6aebe16c164bd8e52554cbe0304ef4aa',1,'glm']]], - ['perspectivefovlh_5fno',['perspectiveFovLH_NO',['../a00243.html#gad18a4495b77530317327e8d466488c1a',1,'glm']]], - ['perspectivefovlh_5fzo',['perspectiveFovLH_ZO',['../a00243.html#gabdd37014f529e25b2fa1b3ba06c10d5c',1,'glm']]], - ['perspectivefovno',['perspectiveFovNO',['../a00243.html#gaf30e7bd3b1387a6776433dd5383e6633',1,'glm']]], - ['perspectivefovrh',['perspectiveFovRH',['../a00243.html#gaf32bf563f28379c68554a44ee60c6a85',1,'glm']]], - ['perspectivefovrh_5fno',['perspectiveFovRH_NO',['../a00243.html#ga257b733ff883c9a065801023cf243eb2',1,'glm']]], - ['perspectivefovrh_5fzo',['perspectiveFovRH_ZO',['../a00243.html#ga7dcbb25331676f5b0795aced1a905c44',1,'glm']]], - ['perspectivefovzo',['perspectiveFovZO',['../a00243.html#ga4bc69fa1d1f95128430aa3d2a712390b',1,'glm']]], - ['perspectivelh',['perspectiveLH',['../a00243.html#ga9bd34951dc7022ac256fcb51d7f6fc2f',1,'glm']]], - ['perspectivelh_5fno',['perspectiveLH_NO',['../a00243.html#gaead4d049d1feab463b700b5641aa590e',1,'glm']]], - ['perspectivelh_5fzo',['perspectiveLH_ZO',['../a00243.html#gaca32af88c2719005c02817ad1142986c',1,'glm']]], - ['perspectiveno',['perspectiveNO',['../a00243.html#gaf497e6bca61e7c87088370b126a93758',1,'glm']]], - ['perspectiverh',['perspectiveRH',['../a00243.html#ga26b88757fbd90601b80768a7e1ad3aa1',1,'glm']]], - ['perspectiverh_5fno',['perspectiveRH_NO',['../a00243.html#gad1526cb2cbe796095284e8f34b01c582',1,'glm']]], - ['perspectiverh_5fzo',['perspectiveRH_ZO',['../a00243.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a',1,'glm']]], - ['perspectivezo',['perspectiveZO',['../a00243.html#gaa9dfba5c2322da54f72b1eb7c7c11b47',1,'glm']]], - ['pi',['pi',['../a00259.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]], - ['pickmatrix',['pickMatrix',['../a00245.html#gaf6b21eadb7ac2ecbbe258a9a233b4c82',1,'glm']]], - ['pitch',['pitch',['../a00299.html#ga7603e81477b46ddb448896909bc04928',1,'glm']]], - ['polar',['polar',['../a00350.html#gab83ac2c0e55b684b06b6c46c28b1590d',1,'glm']]], - ['pow',['pow',['../a00242.html#ga2254981952d4f333b900a6bf5167a6c4',1,'glm::pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)'],['../a00256.html#ga4975ffcacd312a8c0bbd046a76c5607e',1,'glm::pow(qua< T, Q > const &q, T y)'],['../a00330.html#ga465016030a81d513fa2fac881ebdaa83',1,'glm::pow(int x, uint y)'],['../a00330.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)']]], - ['pow2',['pow2',['../a00347.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]], - ['pow3',['pow3',['../a00347.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]], - ['pow4',['pow4',['../a00347.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]], - ['poweroftwoabove',['powerOfTwoAbove',['../a00309.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00309.html#ga2bbded187c5febfefc1e524ba31b3fab',1,'glm::powerOfTwoAbove(vec< L, T, Q > const &value)']]], - ['poweroftwobelow',['powerOfTwoBelow',['../a00309.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00309.html#gaf78ddcc4152c051b2a21e68fecb10980',1,'glm::powerOfTwoBelow(vec< L, T, Q > const &value)']]], - ['poweroftwonearest',['powerOfTwoNearest',['../a00309.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b',1,'glm::powerOfTwoNearest(vec< L, T, Q > const &value)']]], - ['prevmultiple',['prevMultiple',['../a00261.html#gada3bdd871ffe31f2d484aa668362f636',1,'glm::prevMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga7b3915a7cd3d50ff4976ab7a75a6880a',1,'glm::prevMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#ga51e04379e8aebbf83e2e5ab094578ee9',1,'glm::prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['prevpoweroftwo',['prevPowerOfTwo',['../a00261.html#gab21902a0e7e5a8451a7ad80333618727',1,'glm::prevPowerOfTwo(genIUType v)'],['../a00274.html#ga759db73f14d79f63612bd2398b577e7a',1,'glm::prevPowerOfTwo(vec< L, T, Q > const &v)']]], - ['proj',['proj',['../a00351.html#ga58384b7170801dd513de46f87c7fb00e',1,'glm']]], - ['proj2d',['proj2D',['../a00363.html#ga5b992a0cdc8298054edb68e228f0d93e',1,'glm']]], - ['proj3d',['proj3D',['../a00363.html#gaa2b7f4f15b98f697caede11bef50509e',1,'glm']]], - ['project',['project',['../a00245.html#gaf36e96033f456659e6705472a06b6e11',1,'glm']]], - ['projectno',['projectNO',['../a00245.html#ga05249751f48d14cb282e4979802b8111',1,'glm']]], - ['projectzo',['projectZO',['../a00245.html#ga77d157525063dec83a557186873ee080',1,'glm']]] -]; +var searchData= +[ + ['packdouble2x32',['packDouble2x32',['../a00372.html#gaa916ca426b2bb0343ba17e3753e245c2',1,'glm']]], + ['packf2x11_5f1x10',['packF2x11_1x10',['../a00298.html#ga4944ad465ff950e926d49621f916c78d',1,'glm']]], + ['packf3x9_5fe1x5',['packF3x9_E1x5',['../a00298.html#ga3f648fc205467792dc6d8c59c748f8a6',1,'glm']]], + ['packhalf',['packHalf',['../a00298.html#ga2d8bbce673ebc04831c1fb05c47f5251',1,'glm']]], + ['packhalf1x16',['packHalf1x16',['../a00298.html#ga43f2093b6ff192a79058ff7834fc3528',1,'glm']]], + ['packhalf2x16',['packHalf2x16',['../a00372.html#ga20f134b07db3a3d3a38efb2617388c92',1,'glm']]], + ['packhalf4x16',['packHalf4x16',['../a00298.html#gafe2f7b39caf8f5ec555e1c059ec530e6',1,'glm']]], + ['packi3x10_5f1x2',['packI3x10_1x2',['../a00298.html#ga06ecb6afb902dba45419008171db9023',1,'glm']]], + ['packint2x16',['packInt2x16',['../a00298.html#ga3644163cf3a47bf1d4af1f4b03013a7e',1,'glm']]], + ['packint2x32',['packInt2x32',['../a00298.html#gad1e4c8a9e67d86b61a6eec86703a827a',1,'glm']]], + ['packint2x8',['packInt2x8',['../a00298.html#ga8884b1f2292414f36d59ef3be5d62914',1,'glm']]], + ['packint4x16',['packInt4x16',['../a00298.html#ga1989f093a27ae69cf9207145be48b3d7',1,'glm']]], + ['packint4x8',['packInt4x8',['../a00298.html#gaf2238401d5ce2aaade1a44ba19709072',1,'glm']]], + ['packrgbm',['packRGBM',['../a00298.html#ga0466daf4c90f76cc64b3f105ce727295',1,'glm']]], + ['packsnorm',['packSnorm',['../a00298.html#gaa54b5855a750d6aeb12c1c902f5939b8',1,'glm']]], + ['packsnorm1x16',['packSnorm1x16',['../a00298.html#gab22f8bcfdb5fc65af4701b25f143c1af',1,'glm']]], + ['packsnorm1x8',['packSnorm1x8',['../a00298.html#gae3592e0795e62aaa1865b3a10496a7a1',1,'glm']]], + ['packsnorm2x16',['packSnorm2x16',['../a00372.html#ga977ab172da5494e5ac63e952afacfbe2',1,'glm']]], + ['packsnorm2x8',['packSnorm2x8',['../a00298.html#ga6be3cfb2cce3702f03e91bbeb5286d7e',1,'glm']]], + ['packsnorm3x10_5f1x2',['packSnorm3x10_1x2',['../a00298.html#gab997545661877d2c7362a5084d3897d3',1,'glm']]], + ['packsnorm4x16',['packSnorm4x16',['../a00298.html#ga358943934d21da947d5bcc88c2ab7832',1,'glm']]], + ['packsnorm4x8',['packSnorm4x8',['../a00372.html#ga85e8f17627516445026ab7a9c2e3531a',1,'glm']]], + ['packu3x10_5f1x2',['packU3x10_1x2',['../a00298.html#gada3d88d59f0f458f9c51a9fd359a4bc0',1,'glm']]], + ['packuint2x16',['packUint2x16',['../a00298.html#ga5eecc9e8cbaf51ac6cf57501e670ee19',1,'glm']]], + ['packuint2x32',['packUint2x32',['../a00298.html#gaa864081097b86e83d8e4a4d79c382b22',1,'glm']]], + ['packuint2x8',['packUint2x8',['../a00298.html#ga3c3c9fb53ae7823b10fa083909357590',1,'glm']]], + ['packuint4x16',['packUint4x16',['../a00298.html#ga2ceb62cca347d8ace42ee90317a3f1f9',1,'glm']]], + ['packuint4x8',['packUint4x8',['../a00298.html#gaa0fe2f09aeb403cd66c1a062f58861ab',1,'glm']]], + ['packunorm',['packUnorm',['../a00298.html#gaccd3f27e6ba5163eb7aa9bc8ff96251a',1,'glm']]], + ['packunorm1x16',['packUnorm1x16',['../a00298.html#ga9f82737bf2a44bedff1d286b76837886',1,'glm']]], + ['packunorm1x5_5f1x6_5f1x5',['packUnorm1x5_1x6_1x5',['../a00298.html#ga768e0337dd6246773f14aa0a421fe9a8',1,'glm']]], + ['packunorm1x8',['packUnorm1x8',['../a00298.html#ga4b2fa60df3460403817d28b082ee0736',1,'glm']]], + ['packunorm2x16',['packUnorm2x16',['../a00372.html#ga0e2d107039fe608a209497af867b85fb',1,'glm']]], + ['packunorm2x3_5f1x2',['packUnorm2x3_1x2',['../a00298.html#ga7f9abdb50f9be1aa1c14912504a0d98d',1,'glm']]], + ['packunorm2x4',['packUnorm2x4',['../a00298.html#gab6bbd5be3b8e6db538ecb33a7844481c',1,'glm']]], + ['packunorm2x8',['packUnorm2x8',['../a00298.html#ga9a666b1c688ab54100061ed06526de6e',1,'glm']]], + ['packunorm3x10_5f1x2',['packUnorm3x10_1x2',['../a00298.html#ga8a1ee625d2707c60530fb3fca2980b19',1,'glm']]], + ['packunorm3x5_5f1x1',['packUnorm3x5_1x1',['../a00298.html#gaec4112086d7fb133bea104a7c237de52',1,'glm']]], + ['packunorm4x16',['packUnorm4x16',['../a00298.html#ga1f63c264e7ab63264e2b2a99fd393897',1,'glm']]], + ['packunorm4x4',['packUnorm4x4',['../a00298.html#gad3e7e3ce521513584a53aedc5f9765c1',1,'glm']]], + ['packunorm4x8',['packUnorm4x8',['../a00372.html#gaf7d2f7341a9eeb4a436929d6f9ad08f2',1,'glm']]], + ['perlin',['perlin',['../a00297.html#ga1e043ce3b51510e9bc4469227cefc38a',1,'glm::perlin(vec< L, T, Q > const &p)'],['../a00297.html#gac270edc54c5fc52f5985a45f940bb103',1,'glm::perlin(vec< L, T, Q > const &p, vec< L, T, Q > const &rep)']]], + ['perp',['perp',['../a00349.html#ga264cfc4e180cf9b852e943b35089003c',1,'glm']]], + ['perspective',['perspective',['../a00243.html#ga747c8cf99458663dd7ad1bb3a2f07787',1,'glm']]], + ['perspectivefov',['perspectiveFov',['../a00243.html#gaebd02240fd36e85ad754f02ddd9a560d',1,'glm']]], + ['perspectivefovlh',['perspectiveFovLH',['../a00243.html#ga6aebe16c164bd8e52554cbe0304ef4aa',1,'glm']]], + ['perspectivefovlh_5fno',['perspectiveFovLH_NO',['../a00243.html#gad18a4495b77530317327e8d466488c1a',1,'glm']]], + ['perspectivefovlh_5fzo',['perspectiveFovLH_ZO',['../a00243.html#gabdd37014f529e25b2fa1b3ba06c10d5c',1,'glm']]], + ['perspectivefovno',['perspectiveFovNO',['../a00243.html#gaf30e7bd3b1387a6776433dd5383e6633',1,'glm']]], + ['perspectivefovrh',['perspectiveFovRH',['../a00243.html#gaf32bf563f28379c68554a44ee60c6a85',1,'glm']]], + ['perspectivefovrh_5fno',['perspectiveFovRH_NO',['../a00243.html#ga257b733ff883c9a065801023cf243eb2',1,'glm']]], + ['perspectivefovrh_5fzo',['perspectiveFovRH_ZO',['../a00243.html#ga7dcbb25331676f5b0795aced1a905c44',1,'glm']]], + ['perspectivefovzo',['perspectiveFovZO',['../a00243.html#ga4bc69fa1d1f95128430aa3d2a712390b',1,'glm']]], + ['perspectivelh',['perspectiveLH',['../a00243.html#ga9bd34951dc7022ac256fcb51d7f6fc2f',1,'glm']]], + ['perspectivelh_5fno',['perspectiveLH_NO',['../a00243.html#gaead4d049d1feab463b700b5641aa590e',1,'glm']]], + ['perspectivelh_5fzo',['perspectiveLH_ZO',['../a00243.html#gaca32af88c2719005c02817ad1142986c',1,'glm']]], + ['perspectiveno',['perspectiveNO',['../a00243.html#gaf497e6bca61e7c87088370b126a93758',1,'glm']]], + ['perspectiverh',['perspectiveRH',['../a00243.html#ga26b88757fbd90601b80768a7e1ad3aa1',1,'glm']]], + ['perspectiverh_5fno',['perspectiveRH_NO',['../a00243.html#gad1526cb2cbe796095284e8f34b01c582',1,'glm']]], + ['perspectiverh_5fzo',['perspectiveRH_ZO',['../a00243.html#ga4da358d6e1b8e5b9ae35d1f3f2dc3b9a',1,'glm']]], + ['perspectivezo',['perspectiveZO',['../a00243.html#gaa9dfba5c2322da54f72b1eb7c7c11b47',1,'glm']]], + ['pi',['pi',['../a00259.html#ga94bafeb2a0f23ab6450fed1f98ee4e45',1,'glm']]], + ['pickmatrix',['pickMatrix',['../a00245.html#gaf6b21eadb7ac2ecbbe258a9a233b4c82',1,'glm']]], + ['pitch',['pitch',['../a00299.html#ga7603e81477b46ddb448896909bc04928',1,'glm']]], + ['polar',['polar',['../a00350.html#gab83ac2c0e55b684b06b6c46c28b1590d',1,'glm']]], + ['pow',['pow',['../a00242.html#ga2254981952d4f333b900a6bf5167a6c4',1,'glm::pow(vec< L, T, Q > const &base, vec< L, T, Q > const &exponent)'],['../a00256.html#ga4975ffcacd312a8c0bbd046a76c5607e',1,'glm::pow(qua< T, Q > const &q, T y)'],['../a00330.html#ga465016030a81d513fa2fac881ebdaa83',1,'glm::pow(int x, uint y)'],['../a00330.html#ga998e5ee915d3769255519e2fbaa2bbf0',1,'glm::pow(uint x, uint y)']]], + ['pow2',['pow2',['../a00347.html#ga19aaff3213bf23bdec3ef124ace237e9',1,'glm::gtx']]], + ['pow3',['pow3',['../a00347.html#ga35689d03cd434d6ea819f1942d3bf82e',1,'glm::gtx']]], + ['pow4',['pow4',['../a00347.html#gacef0968763026e180e53e735007dbf5a',1,'glm::gtx']]], + ['poweroftwoabove',['powerOfTwoAbove',['../a00309.html#ga8cda2459871f574a0aecbe702ac93291',1,'glm::powerOfTwoAbove(genIUType Value)'],['../a00309.html#ga2bbded187c5febfefc1e524ba31b3fab',1,'glm::powerOfTwoAbove(vec< L, T, Q > const &value)']]], + ['poweroftwobelow',['powerOfTwoBelow',['../a00309.html#ga3de7df63c589325101a2817a56f8e29d',1,'glm::powerOfTwoBelow(genIUType Value)'],['../a00309.html#gaf78ddcc4152c051b2a21e68fecb10980',1,'glm::powerOfTwoBelow(vec< L, T, Q > const &value)']]], + ['poweroftwonearest',['powerOfTwoNearest',['../a00309.html#ga5f65973a5d2ea38c719e6a663149ead9',1,'glm::powerOfTwoNearest(genIUType Value)'],['../a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b',1,'glm::powerOfTwoNearest(vec< L, T, Q > const &value)']]], + ['prevmultiple',['prevMultiple',['../a00261.html#gada3bdd871ffe31f2d484aa668362f636',1,'glm::prevMultiple(genIUType v, genIUType Multiple)'],['../a00274.html#ga7b3915a7cd3d50ff4976ab7a75a6880a',1,'glm::prevMultiple(vec< L, T, Q > const &v, T Multiple)'],['../a00274.html#ga51e04379e8aebbf83e2e5ab094578ee9',1,'glm::prevMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['prevpoweroftwo',['prevPowerOfTwo',['../a00261.html#gab21902a0e7e5a8451a7ad80333618727',1,'glm::prevPowerOfTwo(genIUType v)'],['../a00274.html#ga759db73f14d79f63612bd2398b577e7a',1,'glm::prevPowerOfTwo(vec< L, T, Q > const &v)']]], + ['proj',['proj',['../a00351.html#ga58384b7170801dd513de46f87c7fb00e',1,'glm']]], + ['proj2d',['proj2D',['../a00363.html#ga5b992a0cdc8298054edb68e228f0d93e',1,'glm']]], + ['proj3d',['proj3D',['../a00363.html#gaa2b7f4f15b98f697caede11bef50509e',1,'glm']]], + ['project',['project',['../a00245.html#gaf36e96033f456659e6705472a06b6e11',1,'glm']]], + ['projectno',['projectNO',['../a00245.html#ga05249751f48d14cb282e4979802b8111',1,'glm']]], + ['projectzo',['projectZO',['../a00245.html#ga77d157525063dec83a557186873ee080',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_e.html b/external/include/glm-0.9.9.8/doc/api/search/functions_e.html index 21c200e7b5..b44e5c5fbf 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_e.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_e.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_e.js b/external/include/glm-0.9.9.8/doc/api/search/functions_e.js index 0d67b39237..abcb998730 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_e.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_e.js @@ -1,19 +1,19 @@ -var searchData= -[ - ['qr_5fdecompose',['qr_decompose',['../a00336.html#gac62d7bfc8dc661e616620d70552cd566',1,'glm']]], - ['quadraticeasein',['quadraticEaseIn',['../a00318.html#gaf42089d35855695132d217cd902304a0',1,'glm']]], - ['quadraticeaseinout',['quadraticEaseInOut',['../a00318.html#ga03e8fc2d7945a4e63ee33b2159c14cea',1,'glm']]], - ['quadraticeaseout',['quadraticEaseOut',['../a00318.html#ga283717bc2d937547ad34ec0472234ee3',1,'glm']]], - ['quarter_5fpi',['quarter_pi',['../a00290.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]], - ['quarticeasein',['quarticEaseIn',['../a00318.html#ga808b41f14514f47dad5dcc69eb924afd',1,'glm']]], - ['quarticeaseinout',['quarticEaseInOut',['../a00318.html#ga6d000f852de12b197e154f234b20c505',1,'glm']]], - ['quarticeaseout',['quarticEaseOut',['../a00318.html#ga4dfb33fa7664aa888eb647999d329b98',1,'glm']]], - ['quat_5fcast',['quat_cast',['../a00299.html#ga1108a4ab88ca87bac321454eea7702f8',1,'glm::quat_cast(mat< 3, 3, T, Q > const &x)'],['../a00299.html#ga4524810f07f72e8c7bdc7764fa11cb58',1,'glm::quat_cast(mat< 4, 4, T, Q > const &x)']]], - ['quat_5fidentity',['quat_identity',['../a00352.html#ga5ee8332600b2aca3a77622a28d857b55',1,'glm']]], - ['quatlookat',['quatLookAt',['../a00299.html#gabe7fc5ec5feb41ab234d5d2b6254697f',1,'glm']]], - ['quatlookatlh',['quatLookAtLH',['../a00299.html#ga2da350c73411be3bb19441b226b81a74',1,'glm']]], - ['quatlookatrh',['quatLookAtRH',['../a00299.html#gaf6529ac8c04a57fcc35865b5c9437cc8',1,'glm']]], - ['quinticeasein',['quinticEaseIn',['../a00318.html#ga097579d8e087dcf48037588140a21640',1,'glm']]], - ['quinticeaseinout',['quinticEaseInOut',['../a00318.html#ga2a82d5c46df7e2d21cc0108eb7b83934',1,'glm']]], - ['quinticeaseout',['quinticEaseOut',['../a00318.html#ga7dbd4d5c8da3f5353121f615e7b591d7',1,'glm']]] -]; +var searchData= +[ + ['qr_5fdecompose',['qr_decompose',['../a00336.html#gac62d7bfc8dc661e616620d70552cd566',1,'glm']]], + ['quadraticeasein',['quadraticEaseIn',['../a00318.html#gaf42089d35855695132d217cd902304a0',1,'glm']]], + ['quadraticeaseinout',['quadraticEaseInOut',['../a00318.html#ga03e8fc2d7945a4e63ee33b2159c14cea',1,'glm']]], + ['quadraticeaseout',['quadraticEaseOut',['../a00318.html#ga283717bc2d937547ad34ec0472234ee3',1,'glm']]], + ['quarter_5fpi',['quarter_pi',['../a00290.html#ga3c9df42bd73c519a995c43f0f99e77e0',1,'glm']]], + ['quarticeasein',['quarticEaseIn',['../a00318.html#ga808b41f14514f47dad5dcc69eb924afd',1,'glm']]], + ['quarticeaseinout',['quarticEaseInOut',['../a00318.html#ga6d000f852de12b197e154f234b20c505',1,'glm']]], + ['quarticeaseout',['quarticEaseOut',['../a00318.html#ga4dfb33fa7664aa888eb647999d329b98',1,'glm']]], + ['quat_5fcast',['quat_cast',['../a00299.html#ga1108a4ab88ca87bac321454eea7702f8',1,'glm::quat_cast(mat< 3, 3, T, Q > const &x)'],['../a00299.html#ga4524810f07f72e8c7bdc7764fa11cb58',1,'glm::quat_cast(mat< 4, 4, T, Q > const &x)']]], + ['quat_5fidentity',['quat_identity',['../a00352.html#ga5ee8332600b2aca3a77622a28d857b55',1,'glm']]], + ['quatlookat',['quatLookAt',['../a00299.html#gabe7fc5ec5feb41ab234d5d2b6254697f',1,'glm']]], + ['quatlookatlh',['quatLookAtLH',['../a00299.html#ga2da350c73411be3bb19441b226b81a74',1,'glm']]], + ['quatlookatrh',['quatLookAtRH',['../a00299.html#gaf6529ac8c04a57fcc35865b5c9437cc8',1,'glm']]], + ['quinticeasein',['quinticEaseIn',['../a00318.html#ga097579d8e087dcf48037588140a21640',1,'glm']]], + ['quinticeaseinout',['quinticEaseInOut',['../a00318.html#ga2a82d5c46df7e2d21cc0108eb7b83934',1,'glm']]], + ['quinticeaseout',['quinticEaseOut',['../a00318.html#ga7dbd4d5c8da3f5353121f615e7b591d7',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_f.html b/external/include/glm-0.9.9.8/doc/api/search/functions_f.html index a61e500d1e..db9a07c0c0 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_f.html +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_f.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/functions_f.js b/external/include/glm-0.9.9.8/doc/api/search/functions_f.js index 8602918e34..a48bd4f587 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/functions_f.js +++ b/external/include/glm-0.9.9.8/doc/api/search/functions_f.js @@ -1,35 +1,35 @@ -var searchData= -[ - ['radialgradient',['radialGradient',['../a00327.html#gaaecb1e93de4cbe0758b882812d4da294',1,'glm']]], - ['radians',['radians',['../a00373.html#ga6e1db4862c5e25afd553930e2fdd6a68',1,'glm']]], - ['reflect',['reflect',['../a00279.html#ga5631dd1d5618de5450b1ea3cf3e94905',1,'glm']]], - ['refract',['refract',['../a00279.html#ga01da3dff9e2ef6b9d4915c3047e22b74',1,'glm']]], - ['repeat',['repeat',['../a00369.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]], - ['rgb2ycocg',['rgb2YCoCg',['../a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5',1,'glm']]], - ['rgb2ycocgr',['rgb2YCoCgR',['../a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898',1,'glm']]], - ['rgbcolor',['rgbColor',['../a00312.html#ga5f9193be46f45f0655c05a0cdca006db',1,'glm']]], - ['righthanded',['rightHanded',['../a00328.html#ga99386a5ab5491871b947076e21699cc8',1,'glm']]], - ['roll',['roll',['../a00299.html#ga0cc5ad970d0b00829b139fe0fe5a1e13',1,'glm']]], - ['root_5ffive',['root_five',['../a00290.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]], - ['root_5fhalf_5fpi',['root_half_pi',['../a00290.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]], - ['root_5fln_5ffour',['root_ln_four',['../a00290.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]], - ['root_5fpi',['root_pi',['../a00290.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]], - ['root_5fthree',['root_three',['../a00290.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]], - ['root_5ftwo',['root_two',['../a00290.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]], - ['root_5ftwo_5fpi',['root_two_pi',['../a00290.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]], - ['rotate',['rotate',['../a00247.html#gaee9e865eaa9776370996da2940873fd4',1,'glm::rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)'],['../a00256.html#gabfc57de6d4d2e11970f54119c5ccf0f5',1,'glm::rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)'],['../a00341.html#gad5c84a4932a758f385a87098ce1b1660',1,'glm::rotate(mat< 3, 3, T, Q > const &m, T angle)'],['../a00352.html#ga07da6ef58646442efe93b0c273d73776',1,'glm::rotate(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#gafcb78dfff45fbf19a7fcb2bd03fbf196',1,'glm::rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)'],['../a00356.html#gab64a67b52ff4f86c3ba16595a5a25af6',1,'glm::rotate(vec< 2, T, Q > const &v, T const &angle)'],['../a00356.html#ga1ba501ef83d1a009a17ac774cc560f21',1,'glm::rotate(vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00356.html#ga1005f1267ed9c57faa3f24cf6873b961',1,'glm::rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00362.html#gaf599be4c0e9d99be1f9cddba79b6018b',1,'glm::rotate(T angle, vec< 3, T, Q > const &v)']]], - ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00355.html#ga50efd7ebca0f7a603bb3cc11e34c708d',1,'glm::rotateNormalizedAxis(mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)'],['../a00355.html#ga08f9c5411437d528019a25bfc01473d1',1,'glm::rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)']]], - ['rotatex',['rotateX',['../a00356.html#ga059fdbdba4cca35cdff172a9d0d0afc9',1,'glm::rotateX(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga4333b1ea8ebf1bd52bc3801a7617398a',1,'glm::rotateX(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotatey',['rotateY',['../a00356.html#gaebdc8b054ace27d9f62e054531c6f44d',1,'glm::rotateY(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga3ce3db0867b7f8efd878ee34f95a623b',1,'glm::rotateY(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotatez',['rotateZ',['../a00356.html#ga5a048838a03f6249acbacb4dbacf79c4',1,'glm::rotateZ(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga923b75c6448161053768822d880702e6',1,'glm::rotateZ(vec< 4, T, Q > const &v, T const &angle)']]], - ['rotation',['rotation',['../a00352.html#ga03e61282831cc3f52cc76f72f52ad2c5',1,'glm']]], - ['round',['round',['../a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e',1,'glm']]], - ['roundeven',['roundEven',['../a00241.html#ga76b81785045a057989a84d99aeeb1578',1,'glm']]], - ['roundmultiple',['roundMultiple',['../a00302.html#gab892defcc9c0b0618df7251253dc0fbb',1,'glm::roundMultiple(genType v, genType Multiple)'],['../a00302.html#ga2f1a68332d761804c054460a612e3a4b',1,'glm::roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], - ['roundpoweroftwo',['roundPowerOfTwo',['../a00302.html#gae4e1bf5d1cd179f59261a7342bdcafca',1,'glm::roundPowerOfTwo(genIUType v)'],['../a00302.html#ga258802a7d55c03c918f28cf4d241c4d0',1,'glm::roundPowerOfTwo(vec< L, T, Q > const &v)']]], - ['row',['row',['../a00293.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &m, length_t index)'],['../a00293.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &m, length_t index, typename genType::row_type const &x)']]], - ['rowmajor2',['rowMajor2',['../a00338.html#gaf5b1aee9e3eb1acf9d6c3c8be1e73bb8',1,'glm::rowMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gaf66c75ed69ca9e87462550708c2c6726',1,'glm::rowMajor2(mat< 2, 2, T, Q > const &m)']]], - ['rowmajor3',['rowMajor3',['../a00338.html#ga2ae46497493339f745754e40f438442e',1,'glm::rowMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#gad8a3a50ab47bbe8d36cdb81d90dfcf77',1,'glm::rowMajor3(mat< 3, 3, T, Q > const &m)']]], - ['rowmajor4',['rowMajor4',['../a00338.html#ga9636cd6bbe2c32a8d0c03ffb8b1ef284',1,'glm::rowMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gac92ad1c2acdf18d3eb7be45a32f9566b',1,'glm::rowMajor4(mat< 4, 4, T, Q > const &m)']]], - ['rq_5fdecompose',['rq_decompose',['../a00336.html#ga82874e2ebe891ba35ac21d9993873758',1,'glm']]] -]; +var searchData= +[ + ['radialgradient',['radialGradient',['../a00327.html#gaaecb1e93de4cbe0758b882812d4da294',1,'glm']]], + ['radians',['radians',['../a00373.html#ga6e1db4862c5e25afd553930e2fdd6a68',1,'glm']]], + ['reflect',['reflect',['../a00279.html#ga5631dd1d5618de5450b1ea3cf3e94905',1,'glm']]], + ['refract',['refract',['../a00279.html#ga01da3dff9e2ef6b9d4915c3047e22b74',1,'glm']]], + ['repeat',['repeat',['../a00369.html#ga809650c6310ea7c42666e918c117fb6f',1,'glm']]], + ['rgb2ycocg',['rgb2YCoCg',['../a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5',1,'glm']]], + ['rgb2ycocgr',['rgb2YCoCgR',['../a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898',1,'glm']]], + ['rgbcolor',['rgbColor',['../a00312.html#ga5f9193be46f45f0655c05a0cdca006db',1,'glm']]], + ['righthanded',['rightHanded',['../a00328.html#ga99386a5ab5491871b947076e21699cc8',1,'glm']]], + ['roll',['roll',['../a00299.html#ga0cc5ad970d0b00829b139fe0fe5a1e13',1,'glm']]], + ['root_5ffive',['root_five',['../a00290.html#gae9ebbded75b53d4faeb1e4ef8b3347a2',1,'glm']]], + ['root_5fhalf_5fpi',['root_half_pi',['../a00290.html#ga4e276cb823cc5e612d4f89ed99c75039',1,'glm']]], + ['root_5fln_5ffour',['root_ln_four',['../a00290.html#ga4129412e96b33707a77c1a07652e23e2',1,'glm']]], + ['root_5fpi',['root_pi',['../a00290.html#ga261380796b2cd496f68d2cf1d08b8eb9',1,'glm']]], + ['root_5fthree',['root_three',['../a00290.html#ga4f286be4abe88be1eed7d2a9f6cb193e',1,'glm']]], + ['root_5ftwo',['root_two',['../a00290.html#ga74e607d29020f100c0d0dc46ce2ca950',1,'glm']]], + ['root_5ftwo_5fpi',['root_two_pi',['../a00290.html#ga2bcedc575039fe0cd765742f8bbb0bd3',1,'glm']]], + ['rotate',['rotate',['../a00247.html#gaee9e865eaa9776370996da2940873fd4',1,'glm::rotate(mat< 4, 4, T, Q > const &m, T angle, vec< 3, T, Q > const &axis)'],['../a00256.html#gabfc57de6d4d2e11970f54119c5ccf0f5',1,'glm::rotate(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)'],['../a00341.html#gad5c84a4932a758f385a87098ce1b1660',1,'glm::rotate(mat< 3, 3, T, Q > const &m, T angle)'],['../a00352.html#ga07da6ef58646442efe93b0c273d73776',1,'glm::rotate(qua< T, Q > const &q, vec< 3, T, Q > const &v)'],['../a00352.html#gafcb78dfff45fbf19a7fcb2bd03fbf196',1,'glm::rotate(qua< T, Q > const &q, vec< 4, T, Q > const &v)'],['../a00356.html#gab64a67b52ff4f86c3ba16595a5a25af6',1,'glm::rotate(vec< 2, T, Q > const &v, T const &angle)'],['../a00356.html#ga1ba501ef83d1a009a17ac774cc560f21',1,'glm::rotate(vec< 3, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00356.html#ga1005f1267ed9c57faa3f24cf6873b961',1,'glm::rotate(vec< 4, T, Q > const &v, T const &angle, vec< 3, T, Q > const &normal)'],['../a00362.html#gaf599be4c0e9d99be1f9cddba79b6018b',1,'glm::rotate(T angle, vec< 3, T, Q > const &v)']]], + ['rotatenormalizedaxis',['rotateNormalizedAxis',['../a00355.html#ga50efd7ebca0f7a603bb3cc11e34c708d',1,'glm::rotateNormalizedAxis(mat< 4, 4, T, Q > const &m, T const &angle, vec< 3, T, Q > const &axis)'],['../a00355.html#ga08f9c5411437d528019a25bfc01473d1',1,'glm::rotateNormalizedAxis(qua< T, Q > const &q, T const &angle, vec< 3, T, Q > const &axis)']]], + ['rotatex',['rotateX',['../a00356.html#ga059fdbdba4cca35cdff172a9d0d0afc9',1,'glm::rotateX(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga4333b1ea8ebf1bd52bc3801a7617398a',1,'glm::rotateX(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotatey',['rotateY',['../a00356.html#gaebdc8b054ace27d9f62e054531c6f44d',1,'glm::rotateY(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga3ce3db0867b7f8efd878ee34f95a623b',1,'glm::rotateY(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotatez',['rotateZ',['../a00356.html#ga5a048838a03f6249acbacb4dbacf79c4',1,'glm::rotateZ(vec< 3, T, Q > const &v, T const &angle)'],['../a00356.html#ga923b75c6448161053768822d880702e6',1,'glm::rotateZ(vec< 4, T, Q > const &v, T const &angle)']]], + ['rotation',['rotation',['../a00352.html#ga03e61282831cc3f52cc76f72f52ad2c5',1,'glm']]], + ['round',['round',['../a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e',1,'glm']]], + ['roundeven',['roundEven',['../a00241.html#ga76b81785045a057989a84d99aeeb1578',1,'glm']]], + ['roundmultiple',['roundMultiple',['../a00302.html#gab892defcc9c0b0618df7251253dc0fbb',1,'glm::roundMultiple(genType v, genType Multiple)'],['../a00302.html#ga2f1a68332d761804c054460a612e3a4b',1,'glm::roundMultiple(vec< L, T, Q > const &v, vec< L, T, Q > const &Multiple)']]], + ['roundpoweroftwo',['roundPowerOfTwo',['../a00302.html#gae4e1bf5d1cd179f59261a7342bdcafca',1,'glm::roundPowerOfTwo(genIUType v)'],['../a00302.html#ga258802a7d55c03c918f28cf4d241c4d0',1,'glm::roundPowerOfTwo(vec< L, T, Q > const &v)']]], + ['row',['row',['../a00293.html#ga259e5ebd0f31ec3f83440f8cae7f5dba',1,'glm::row(genType const &m, length_t index)'],['../a00293.html#gaadcc64829aadf4103477679e48c7594f',1,'glm::row(genType const &m, length_t index, typename genType::row_type const &x)']]], + ['rowmajor2',['rowMajor2',['../a00338.html#gaf5b1aee9e3eb1acf9d6c3c8be1e73bb8',1,'glm::rowMajor2(vec< 2, T, Q > const &v1, vec< 2, T, Q > const &v2)'],['../a00338.html#gaf66c75ed69ca9e87462550708c2c6726',1,'glm::rowMajor2(mat< 2, 2, T, Q > const &m)']]], + ['rowmajor3',['rowMajor3',['../a00338.html#ga2ae46497493339f745754e40f438442e',1,'glm::rowMajor3(vec< 3, T, Q > const &v1, vec< 3, T, Q > const &v2, vec< 3, T, Q > const &v3)'],['../a00338.html#gad8a3a50ab47bbe8d36cdb81d90dfcf77',1,'glm::rowMajor3(mat< 3, 3, T, Q > const &m)']]], + ['rowmajor4',['rowMajor4',['../a00338.html#ga9636cd6bbe2c32a8d0c03ffb8b1ef284',1,'glm::rowMajor4(vec< 4, T, Q > const &v1, vec< 4, T, Q > const &v2, vec< 4, T, Q > const &v3, vec< 4, T, Q > const &v4)'],['../a00338.html#gac92ad1c2acdf18d3eb7be45a32f9566b',1,'glm::rowMajor4(mat< 4, 4, T, Q > const &m)']]], + ['rq_5fdecompose',['rq_decompose',['../a00336.html#ga82874e2ebe891ba35ac21d9993873758',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_0.html b/external/include/glm-0.9.9.8/doc/api/search/groups_0.html index 8221db5dc8..aaba07e5c2 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_0.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_0.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_0.js b/external/include/glm-0.9.9.8/doc/api/search/groups_0.js index f5f8b9cbfd..73fd73e4c4 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_0.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00373.html',1,'']]] -]; +var searchData= +[ + ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00373.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_1.html b/external/include/glm-0.9.9.8/doc/api/search/groups_1.html index 34dd0b84c5..d287bfa38e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_1.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_1.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_1.js b/external/include/glm-0.9.9.8/doc/api/search/groups_1.js index 6c6626527b..8ff844ab06 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_1.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_1.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['core_20features',['Core features',['../a00280.html',1,'']]], - ['common_20functions',['Common functions',['../a00241.html',1,'']]] -]; +var searchData= +[ + ['core_20features',['Core features',['../a00280.html',1,'']]], + ['common_20functions',['Common functions',['../a00241.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_2.html b/external/include/glm-0.9.9.8/doc/api/search/groups_2.html index d0687b7b82..29681b2071 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_2.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_2.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_2.js b/external/include/glm-0.9.9.8/doc/api/search/groups_2.js index c668d1d93a..f2535119d9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_2.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_2.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['exponential_20functions',['Exponential functions',['../a00242.html',1,'']]], - ['experimental_20extensions',['Experimental extensions',['../a00287.html',1,'']]] -]; +var searchData= +[ + ['exponential_20functions',['Exponential functions',['../a00242.html',1,'']]], + ['experimental_20extensions',['Experimental extensions',['../a00287.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_3.html b/external/include/glm-0.9.9.8/doc/api/search/groups_3.html index 6269fde2ac..b51e57ff2f 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_3.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_3.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_3.js b/external/include/glm-0.9.9.8/doc/api/search/groups_3.js index 904dc2f906..4ae9ff3e78 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_3.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_3.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00372.html',1,'']]] -]; +var searchData= +[ + ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00372.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_4.html b/external/include/glm-0.9.9.8/doc/api/search/groups_4.html index c8afe0d13c..987621be0b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_4.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_4.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_4.js b/external/include/glm-0.9.9.8/doc/api/search/groups_4.js index 56197f168a..8bb9f41fb0 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_4.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_4.js @@ -1,122 +1,122 @@ -var searchData= -[ - ['geometric_20functions',['Geometric functions',['../a00279.html',1,'']]], - ['glm_5fext_5fmatrix_5fclip_5fspace',['GLM_EXT_matrix_clip_space',['../a00243.html',1,'']]], - ['glm_5fext_5fmatrix_5fcommon',['GLM_EXT_matrix_common',['../a00244.html',1,'']]], - ['glm_5fext_5fmatrix_5fprojection',['GLM_EXT_matrix_projection',['../a00245.html',1,'']]], - ['glm_5fext_5fmatrix_5frelational',['GLM_EXT_matrix_relational',['../a00246.html',1,'']]], - ['glm_5fext_5fmatrix_5ftransform',['GLM_EXT_matrix_transform',['../a00247.html',1,'']]], - ['glm_5fext_5fquaternion_5fcommon',['GLM_EXT_quaternion_common',['../a00248.html',1,'']]], - ['glm_5fext_5fquaternion_5fdouble',['GLM_EXT_quaternion_double',['../a00249.html',1,'']]], - ['glm_5fext_5fquaternion_5fdouble_5fprecision',['GLM_EXT_quaternion_double_precision',['../a00250.html',1,'']]], - ['glm_5fext_5fquaternion_5fexponential',['GLM_EXT_quaternion_exponential',['../a00251.html',1,'']]], - ['glm_5fext_5fquaternion_5ffloat',['GLM_EXT_quaternion_float',['../a00252.html',1,'']]], - ['glm_5fext_5fquaternion_5ffloat_5fprecision',['GLM_EXT_quaternion_float_precision',['../a00253.html',1,'']]], - ['glm_5fext_5fquaternion_5fgeometric',['GLM_EXT_quaternion_geometric',['../a00254.html',1,'']]], - ['glm_5fext_5fquaternion_5frelational',['GLM_EXT_quaternion_relational',['../a00255.html',1,'']]], - ['glm_5fext_5fquaternion_5ftransform',['GLM_EXT_quaternion_transform',['../a00256.html',1,'']]], - ['glm_5fext_5fquaternion_5ftrigonometric',['GLM_EXT_quaternion_trigonometric',['../a00257.html',1,'']]], - ['glm_5fext_5fscalar_5fcommon',['GLM_EXT_scalar_common',['../a00258.html',1,'']]], - ['glm_5fext_5fscalar_5fconstants',['GLM_EXT_scalar_constants',['../a00259.html',1,'']]], - ['glm_5fext_5fscalar_5fint_5fsized',['GLM_EXT_scalar_int_sized',['../a00260.html',1,'']]], - ['glm_5fext_5fscalar_5finteger',['GLM_EXT_scalar_integer',['../a00261.html',1,'']]], - ['glm_5fext_5fscalar_5frelational',['GLM_EXT_scalar_relational',['../a00262.html',1,'']]], - ['glm_5fext_5fscalar_5fuint_5fsized',['GLM_EXT_scalar_uint_sized',['../a00263.html',1,'']]], - ['glm_5fext_5fscalar_5fulp',['GLM_EXT_scalar_ulp',['../a00264.html',1,'']]], - ['glm_5fext_5fvector_5fbool1',['GLM_EXT_vector_bool1',['../a00265.html',1,'']]], - ['glm_5fext_5fvector_5fbool1_5fprecision',['GLM_EXT_vector_bool1_precision',['../a00266.html',1,'']]], - ['glm_5fext_5fvector_5fcommon',['GLM_EXT_vector_common',['../a00267.html',1,'']]], - ['glm_5fext_5fvector_5fdouble1',['GLM_EXT_vector_double1',['../a00268.html',1,'']]], - ['glm_5fext_5fvector_5fdouble1_5fprecision',['GLM_EXT_vector_double1_precision',['../a00269.html',1,'']]], - ['glm_5fext_5fvector_5ffloat1',['GLM_EXT_vector_float1',['../a00270.html',1,'']]], - ['glm_5fext_5fvector_5ffloat1_5fprecision',['GLM_EXT_vector_float1_precision',['../a00271.html',1,'']]], - ['glm_5fext_5fvector_5fint1',['GLM_EXT_vector_int1',['../a00272.html',1,'']]], - ['glm_5fext_5fvector_5fint1_5fprecision',['GLM_EXT_vector_int1_precision',['../a00273.html',1,'']]], - ['glm_5fext_5fvector_5finteger',['GLM_EXT_vector_integer',['../a00274.html',1,'']]], - ['glm_5fext_5fvector_5frelational',['GLM_EXT_vector_relational',['../a00275.html',1,'']]], - ['glm_5fext_5fvector_5fuint1',['GLM_EXT_vector_uint1',['../a00276.html',1,'']]], - ['glm_5fext_5fvector_5fuint1_5fprecision',['GLM_EXT_vector_uint1_precision',['../a00277.html',1,'']]], - ['glm_5fext_5fvector_5fulp',['GLM_EXT_vector_ulp',['../a00278.html',1,'']]], - ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00288.html',1,'']]], - ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00289.html',1,'']]], - ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00290.html',1,'']]], - ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00291.html',1,'']]], - ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00292.html',1,'']]], - ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00293.html',1,'']]], - ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00294.html',1,'']]], - ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00295.html',1,'']]], - ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00296.html',1,'']]], - ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00297.html',1,'']]], - ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00298.html',1,'']]], - ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00299.html',1,'']]], - ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00300.html',1,'']]], - ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00301.html',1,'']]], - ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00302.html',1,'']]], - ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00303.html',1,'']]], - ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00304.html',1,'']]], - ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00305.html',1,'']]], - ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00306.html',1,'']]], - ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00307.html',1,'']]], - ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00308.html',1,'']]], - ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00309.html',1,'']]], - ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00310.html',1,'']]], - ['glm_5fgtx_5fcolor_5fencoding',['GLM_GTX_color_encoding',['../a00311.html',1,'']]], - ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00312.html',1,'']]], - ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00313.html',1,'']]], - ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00314.html',1,'']]], - ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00315.html',1,'']]], - ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00316.html',1,'']]], - ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00317.html',1,'']]], - ['glm_5fgtx_5feasing',['GLM_GTX_easing',['../a00318.html',1,'']]], - ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00319.html',1,'']]], - ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00320.html',1,'']]], - ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00321.html',1,'']]], - ['glm_5fgtx_5fexterior_5fproduct',['GLM_GTX_exterior_product',['../a00322.html',1,'']]], - ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00323.html',1,'']]], - ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00324.html',1,'']]], - ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00325.html',1,'']]], - ['glm_5fgtx_5ffunctions',['GLM_GTX_functions',['../a00326.html',1,'']]], - ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00327.html',1,'']]], - ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00328.html',1,'']]], - ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00329.html',1,'']]], - ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00330.html',1,'']]], - ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00331.html',1,'']]], - ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00332.html',1,'']]], - ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00333.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00334.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00335.html',1,'']]], - ['glm_5fgtx_5fmatrix_5ffactorisation',['GLM_GTX_matrix_factorisation',['../a00336.html',1,'']]], - ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00337.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00338.html',1,'']]], - ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00339.html',1,'']]], - ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00340.html',1,'']]], - ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00341.html',1,'']]], - ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00342.html',1,'']]], - ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00343.html',1,'']]], - ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00344.html',1,'']]], - ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00345.html',1,'']]], - ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00346.html',1,'']]], - ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00347.html',1,'']]], - ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00348.html',1,'']]], - ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00349.html',1,'']]], - ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00350.html',1,'']]], - ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00351.html',1,'']]], - ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00352.html',1,'']]], - ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00353.html',1,'']]], - ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00354.html',1,'']]], - ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00355.html',1,'']]], - ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00356.html',1,'']]], - ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00357.html',1,'']]], - ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00358.html',1,'']]], - ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00359.html',1,'']]], - ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00360.html',1,'']]], - ['glm_5fgtx_5ftexture',['GLM_GTX_texture',['../a00361.html',1,'']]], - ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00362.html',1,'']]], - ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00363.html',1,'']]], - ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00364.html',1,'']]], - ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00365.html',1,'']]], - ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00366.html',1,'']]], - ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00367.html',1,'']]], - ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00368.html',1,'']]], - ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00369.html',1,'']]] -]; +var searchData= +[ + ['geometric_20functions',['Geometric functions',['../a00279.html',1,'']]], + ['glm_5fext_5fmatrix_5fclip_5fspace',['GLM_EXT_matrix_clip_space',['../a00243.html',1,'']]], + ['glm_5fext_5fmatrix_5fcommon',['GLM_EXT_matrix_common',['../a00244.html',1,'']]], + ['glm_5fext_5fmatrix_5fprojection',['GLM_EXT_matrix_projection',['../a00245.html',1,'']]], + ['glm_5fext_5fmatrix_5frelational',['GLM_EXT_matrix_relational',['../a00246.html',1,'']]], + ['glm_5fext_5fmatrix_5ftransform',['GLM_EXT_matrix_transform',['../a00247.html',1,'']]], + ['glm_5fext_5fquaternion_5fcommon',['GLM_EXT_quaternion_common',['../a00248.html',1,'']]], + ['glm_5fext_5fquaternion_5fdouble',['GLM_EXT_quaternion_double',['../a00249.html',1,'']]], + ['glm_5fext_5fquaternion_5fdouble_5fprecision',['GLM_EXT_quaternion_double_precision',['../a00250.html',1,'']]], + ['glm_5fext_5fquaternion_5fexponential',['GLM_EXT_quaternion_exponential',['../a00251.html',1,'']]], + ['glm_5fext_5fquaternion_5ffloat',['GLM_EXT_quaternion_float',['../a00252.html',1,'']]], + ['glm_5fext_5fquaternion_5ffloat_5fprecision',['GLM_EXT_quaternion_float_precision',['../a00253.html',1,'']]], + ['glm_5fext_5fquaternion_5fgeometric',['GLM_EXT_quaternion_geometric',['../a00254.html',1,'']]], + ['glm_5fext_5fquaternion_5frelational',['GLM_EXT_quaternion_relational',['../a00255.html',1,'']]], + ['glm_5fext_5fquaternion_5ftransform',['GLM_EXT_quaternion_transform',['../a00256.html',1,'']]], + ['glm_5fext_5fquaternion_5ftrigonometric',['GLM_EXT_quaternion_trigonometric',['../a00257.html',1,'']]], + ['glm_5fext_5fscalar_5fcommon',['GLM_EXT_scalar_common',['../a00258.html',1,'']]], + ['glm_5fext_5fscalar_5fconstants',['GLM_EXT_scalar_constants',['../a00259.html',1,'']]], + ['glm_5fext_5fscalar_5fint_5fsized',['GLM_EXT_scalar_int_sized',['../a00260.html',1,'']]], + ['glm_5fext_5fscalar_5finteger',['GLM_EXT_scalar_integer',['../a00261.html',1,'']]], + ['glm_5fext_5fscalar_5frelational',['GLM_EXT_scalar_relational',['../a00262.html',1,'']]], + ['glm_5fext_5fscalar_5fuint_5fsized',['GLM_EXT_scalar_uint_sized',['../a00263.html',1,'']]], + ['glm_5fext_5fscalar_5fulp',['GLM_EXT_scalar_ulp',['../a00264.html',1,'']]], + ['glm_5fext_5fvector_5fbool1',['GLM_EXT_vector_bool1',['../a00265.html',1,'']]], + ['glm_5fext_5fvector_5fbool1_5fprecision',['GLM_EXT_vector_bool1_precision',['../a00266.html',1,'']]], + ['glm_5fext_5fvector_5fcommon',['GLM_EXT_vector_common',['../a00267.html',1,'']]], + ['glm_5fext_5fvector_5fdouble1',['GLM_EXT_vector_double1',['../a00268.html',1,'']]], + ['glm_5fext_5fvector_5fdouble1_5fprecision',['GLM_EXT_vector_double1_precision',['../a00269.html',1,'']]], + ['glm_5fext_5fvector_5ffloat1',['GLM_EXT_vector_float1',['../a00270.html',1,'']]], + ['glm_5fext_5fvector_5ffloat1_5fprecision',['GLM_EXT_vector_float1_precision',['../a00271.html',1,'']]], + ['glm_5fext_5fvector_5fint1',['GLM_EXT_vector_int1',['../a00272.html',1,'']]], + ['glm_5fext_5fvector_5fint1_5fprecision',['GLM_EXT_vector_int1_precision',['../a00273.html',1,'']]], + ['glm_5fext_5fvector_5finteger',['GLM_EXT_vector_integer',['../a00274.html',1,'']]], + ['glm_5fext_5fvector_5frelational',['GLM_EXT_vector_relational',['../a00275.html',1,'']]], + ['glm_5fext_5fvector_5fuint1',['GLM_EXT_vector_uint1',['../a00276.html',1,'']]], + ['glm_5fext_5fvector_5fuint1_5fprecision',['GLM_EXT_vector_uint1_precision',['../a00277.html',1,'']]], + ['glm_5fext_5fvector_5fulp',['GLM_EXT_vector_ulp',['../a00278.html',1,'']]], + ['glm_5fgtc_5fbitfield',['GLM_GTC_bitfield',['../a00288.html',1,'']]], + ['glm_5fgtc_5fcolor_5fspace',['GLM_GTC_color_space',['../a00289.html',1,'']]], + ['glm_5fgtc_5fconstants',['GLM_GTC_constants',['../a00290.html',1,'']]], + ['glm_5fgtc_5fepsilon',['GLM_GTC_epsilon',['../a00291.html',1,'']]], + ['glm_5fgtc_5finteger',['GLM_GTC_integer',['../a00292.html',1,'']]], + ['glm_5fgtc_5fmatrix_5faccess',['GLM_GTC_matrix_access',['../a00293.html',1,'']]], + ['glm_5fgtc_5fmatrix_5finteger',['GLM_GTC_matrix_integer',['../a00294.html',1,'']]], + ['glm_5fgtc_5fmatrix_5finverse',['GLM_GTC_matrix_inverse',['../a00295.html',1,'']]], + ['glm_5fgtc_5fmatrix_5ftransform',['GLM_GTC_matrix_transform',['../a00296.html',1,'']]], + ['glm_5fgtc_5fnoise',['GLM_GTC_noise',['../a00297.html',1,'']]], + ['glm_5fgtc_5fpacking',['GLM_GTC_packing',['../a00298.html',1,'']]], + ['glm_5fgtc_5fquaternion',['GLM_GTC_quaternion',['../a00299.html',1,'']]], + ['glm_5fgtc_5frandom',['GLM_GTC_random',['../a00300.html',1,'']]], + ['glm_5fgtc_5freciprocal',['GLM_GTC_reciprocal',['../a00301.html',1,'']]], + ['glm_5fgtc_5fround',['GLM_GTC_round',['../a00302.html',1,'']]], + ['glm_5fgtc_5ftype_5faligned',['GLM_GTC_type_aligned',['../a00303.html',1,'']]], + ['glm_5fgtc_5ftype_5fprecision',['GLM_GTC_type_precision',['../a00304.html',1,'']]], + ['glm_5fgtc_5ftype_5fptr',['GLM_GTC_type_ptr',['../a00305.html',1,'']]], + ['glm_5fgtc_5fulp',['GLM_GTC_ulp',['../a00306.html',1,'']]], + ['glm_5fgtc_5fvec1',['GLM_GTC_vec1',['../a00307.html',1,'']]], + ['glm_5fgtx_5fassociated_5fmin_5fmax',['GLM_GTX_associated_min_max',['../a00308.html',1,'']]], + ['glm_5fgtx_5fbit',['GLM_GTX_bit',['../a00309.html',1,'']]], + ['glm_5fgtx_5fclosest_5fpoint',['GLM_GTX_closest_point',['../a00310.html',1,'']]], + ['glm_5fgtx_5fcolor_5fencoding',['GLM_GTX_color_encoding',['../a00311.html',1,'']]], + ['glm_5fgtx_5fcolor_5fspace',['GLM_GTX_color_space',['../a00312.html',1,'']]], + ['glm_5fgtx_5fcolor_5fspace_5fycocg',['GLM_GTX_color_space_YCoCg',['../a00313.html',1,'']]], + ['glm_5fgtx_5fcommon',['GLM_GTX_common',['../a00314.html',1,'']]], + ['glm_5fgtx_5fcompatibility',['GLM_GTX_compatibility',['../a00315.html',1,'']]], + ['glm_5fgtx_5fcomponent_5fwise',['GLM_GTX_component_wise',['../a00316.html',1,'']]], + ['glm_5fgtx_5fdual_5fquaternion',['GLM_GTX_dual_quaternion',['../a00317.html',1,'']]], + ['glm_5fgtx_5feasing',['GLM_GTX_easing',['../a00318.html',1,'']]], + ['glm_5fgtx_5feuler_5fangles',['GLM_GTX_euler_angles',['../a00319.html',1,'']]], + ['glm_5fgtx_5fextend',['GLM_GTX_extend',['../a00320.html',1,'']]], + ['glm_5fgtx_5fextented_5fmin_5fmax',['GLM_GTX_extented_min_max',['../a00321.html',1,'']]], + ['glm_5fgtx_5fexterior_5fproduct',['GLM_GTX_exterior_product',['../a00322.html',1,'']]], + ['glm_5fgtx_5ffast_5fexponential',['GLM_GTX_fast_exponential',['../a00323.html',1,'']]], + ['glm_5fgtx_5ffast_5fsquare_5froot',['GLM_GTX_fast_square_root',['../a00324.html',1,'']]], + ['glm_5fgtx_5ffast_5ftrigonometry',['GLM_GTX_fast_trigonometry',['../a00325.html',1,'']]], + ['glm_5fgtx_5ffunctions',['GLM_GTX_functions',['../a00326.html',1,'']]], + ['glm_5fgtx_5fgradient_5fpaint',['GLM_GTX_gradient_paint',['../a00327.html',1,'']]], + ['glm_5fgtx_5fhanded_5fcoordinate_5fspace',['GLM_GTX_handed_coordinate_space',['../a00328.html',1,'']]], + ['glm_5fgtx_5fhash',['GLM_GTX_hash',['../a00329.html',1,'']]], + ['glm_5fgtx_5finteger',['GLM_GTX_integer',['../a00330.html',1,'']]], + ['glm_5fgtx_5fintersect',['GLM_GTX_intersect',['../a00331.html',1,'']]], + ['glm_5fgtx_5fio',['GLM_GTX_io',['../a00332.html',1,'']]], + ['glm_5fgtx_5flog_5fbase',['GLM_GTX_log_base',['../a00333.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fcross_5fproduct',['GLM_GTX_matrix_cross_product',['../a00334.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fdecompose',['GLM_GTX_matrix_decompose',['../a00335.html',1,'']]], + ['glm_5fgtx_5fmatrix_5ffactorisation',['GLM_GTX_matrix_factorisation',['../a00336.html',1,'']]], + ['glm_5fgtx_5fmatrix_5finterpolation',['GLM_GTX_matrix_interpolation',['../a00337.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fmajor_5fstorage',['GLM_GTX_matrix_major_storage',['../a00338.html',1,'']]], + ['glm_5fgtx_5fmatrix_5foperation',['GLM_GTX_matrix_operation',['../a00339.html',1,'']]], + ['glm_5fgtx_5fmatrix_5fquery',['GLM_GTX_matrix_query',['../a00340.html',1,'']]], + ['glm_5fgtx_5fmatrix_5ftransform_5f2d',['GLM_GTX_matrix_transform_2d',['../a00341.html',1,'']]], + ['glm_5fgtx_5fmixed_5fproducte',['GLM_GTX_mixed_producte',['../a00342.html',1,'']]], + ['glm_5fgtx_5fnorm',['GLM_GTX_norm',['../a00343.html',1,'']]], + ['glm_5fgtx_5fnormal',['GLM_GTX_normal',['../a00344.html',1,'']]], + ['glm_5fgtx_5fnormalize_5fdot',['GLM_GTX_normalize_dot',['../a00345.html',1,'']]], + ['glm_5fgtx_5fnumber_5fprecision',['GLM_GTX_number_precision',['../a00346.html',1,'']]], + ['glm_5fgtx_5foptimum_5fpow',['GLM_GTX_optimum_pow',['../a00347.html',1,'']]], + ['glm_5fgtx_5forthonormalize',['GLM_GTX_orthonormalize',['../a00348.html',1,'']]], + ['glm_5fgtx_5fperpendicular',['GLM_GTX_perpendicular',['../a00349.html',1,'']]], + ['glm_5fgtx_5fpolar_5fcoordinates',['GLM_GTX_polar_coordinates',['../a00350.html',1,'']]], + ['glm_5fgtx_5fprojection',['GLM_GTX_projection',['../a00351.html',1,'']]], + ['glm_5fgtx_5fquaternion',['GLM_GTX_quaternion',['../a00352.html',1,'']]], + ['glm_5fgtx_5frange',['GLM_GTX_range',['../a00353.html',1,'']]], + ['glm_5fgtx_5fraw_5fdata',['GLM_GTX_raw_data',['../a00354.html',1,'']]], + ['glm_5fgtx_5frotate_5fnormalized_5faxis',['GLM_GTX_rotate_normalized_axis',['../a00355.html',1,'']]], + ['glm_5fgtx_5frotate_5fvector',['GLM_GTX_rotate_vector',['../a00356.html',1,'']]], + ['glm_5fgtx_5fscalar_5frelational',['GLM_GTX_scalar_relational',['../a00357.html',1,'']]], + ['glm_5fgtx_5fspline',['GLM_GTX_spline',['../a00358.html',1,'']]], + ['glm_5fgtx_5fstd_5fbased_5ftype',['GLM_GTX_std_based_type',['../a00359.html',1,'']]], + ['glm_5fgtx_5fstring_5fcast',['GLM_GTX_string_cast',['../a00360.html',1,'']]], + ['glm_5fgtx_5ftexture',['GLM_GTX_texture',['../a00361.html',1,'']]], + ['glm_5fgtx_5ftransform',['GLM_GTX_transform',['../a00362.html',1,'']]], + ['glm_5fgtx_5ftransform2',['GLM_GTX_transform2',['../a00363.html',1,'']]], + ['glm_5fgtx_5ftype_5faligned',['GLM_GTX_type_aligned',['../a00364.html',1,'']]], + ['glm_5fgtx_5ftype_5ftrait',['GLM_GTX_type_trait',['../a00365.html',1,'']]], + ['glm_5fgtx_5fvec_5fswizzle',['GLM_GTX_vec_swizzle',['../a00366.html',1,'']]], + ['glm_5fgtx_5fvector_5fangle',['GLM_GTX_vector_angle',['../a00367.html',1,'']]], + ['glm_5fgtx_5fvector_5fquery',['GLM_GTX_vector_query',['../a00368.html',1,'']]], + ['glm_5fgtx_5fwrap',['GLM_GTX_wrap',['../a00369.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_5.html b/external/include/glm-0.9.9.8/doc/api/search/groups_5.html index 96826e69a8..2ccec277e5 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_5.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_5.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_5.js b/external/include/glm-0.9.9.8/doc/api/search/groups_5.js index 0ddec69a7d..daa0eab45e 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_5.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_5.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['integer_20functions',['Integer functions',['../a00370.html',1,'']]] -]; +var searchData= +[ + ['integer_20functions',['Integer functions',['../a00370.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_6.html b/external/include/glm-0.9.9.8/doc/api/search/groups_6.html index 5c945a19c9..ed69c070a6 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_6.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_6.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_6.js b/external/include/glm-0.9.9.8/doc/api/search/groups_6.js index d2068707ed..818cd91eb2 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_6.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_6.js @@ -1,6 +1,6 @@ -var searchData= -[ - ['matrix_20functions',['Matrix functions',['../a00371.html',1,'']]], - ['matrix_20types',['Matrix types',['../a00283.html',1,'']]], - ['matrix_20types_20with_20precision_20qualifiers',['Matrix types with precision qualifiers',['../a00284.html',1,'']]] -]; +var searchData= +[ + ['matrix_20functions',['Matrix functions',['../a00371.html',1,'']]], + ['matrix_20types',['Matrix types',['../a00283.html',1,'']]], + ['matrix_20types_20with_20precision_20qualifiers',['Matrix types with precision qualifiers',['../a00284.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_7.html b/external/include/glm-0.9.9.8/doc/api/search/groups_7.html index 97884ed096..027daaa175 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_7.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_7.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_7.js b/external/include/glm-0.9.9.8/doc/api/search/groups_7.js index d5f4a403ae..a0c182270b 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_7.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_7.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['recommended_20extensions',['Recommended extensions',['../a00286.html',1,'']]] -]; +var searchData= +[ + ['recommended_20extensions',['Recommended extensions',['../a00286.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_8.html b/external/include/glm-0.9.9.8/doc/api/search/groups_8.html index d8caab6239..936f141d70 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_8.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_8.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_8.js b/external/include/glm-0.9.9.8/doc/api/search/groups_8.js index c531778066..b98bb0f027 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_8.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_8.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['stable_20extensions',['Stable extensions',['../a00285.html',1,'']]] -]; +var searchData= +[ + ['stable_20extensions',['Stable extensions',['../a00285.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_9.html b/external/include/glm-0.9.9.8/doc/api/search/groups_9.html index 6d6978256a..c66e6a6793 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_9.html +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_9.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/groups_9.js b/external/include/glm-0.9.9.8/doc/api/search/groups_9.js index 0945040809..ceff484ba9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/groups_9.js +++ b/external/include/glm-0.9.9.8/doc/api/search/groups_9.js @@ -1,6 +1,6 @@ -var searchData= -[ - ['vector_20relational_20functions',['Vector Relational Functions',['../a00374.html',1,'']]], - ['vector_20types',['Vector types',['../a00281.html',1,'']]], - ['vector_20types_20with_20precision_20qualifiers',['Vector types with precision qualifiers',['../a00282.html',1,'']]] -]; +var searchData= +[ + ['vector_20relational_20functions',['Vector Relational Functions',['../a00374.html',1,'']]], + ['vector_20types',['Vector types',['../a00281.html',1,'']]], + ['vector_20types_20with_20precision_20qualifiers',['Vector types with precision qualifiers',['../a00282.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/nomatches.html b/external/include/glm-0.9.9.8/doc/api/search/nomatches.html index 529a265854..b1ded27e9a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/nomatches.html +++ b/external/include/glm-0.9.9.8/doc/api/search/nomatches.html @@ -1,12 +1,12 @@ - - - - - - - -
-
No Matches
-
- - + + + + + + + +
+
No Matches
+
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/pages_0.html b/external/include/glm-0.9.9.8/doc/api/search/pages_0.html index 5cb6873ef6..75d203dc81 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/pages_0.html +++ b/external/include/glm-0.9.9.8/doc/api/search/pages_0.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/pages_0.js b/external/include/glm-0.9.9.8/doc/api/search/pages_0.js index 056e235222..5d97ea1656 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/pages_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/pages_0.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['opengl_20mathematics_20_28glm_29',['OpenGL Mathematics (GLM)',['../index.html',1,'']]] -]; +var searchData= +[ + ['opengl_20mathematics_20_28glm_29',['OpenGL Mathematics (GLM)',['../index.html',1,'']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/search.css b/external/include/glm-0.9.9.8/doc/api/search/search.css index cccf76c62c..4d7612ff63 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/search.css +++ b/external/include/glm-0.9.9.8/doc/api/search/search.css @@ -1,271 +1,271 @@ -/*---------------- Search Box */ - -#FSearchBox { - float: left; -} - -#MSearchBox { - white-space : nowrap; - position: absolute; - float: none; - display: inline; - margin-top: 8px; - right: 0px; - width: 170px; - z-index: 102; - background-color: white; -} - -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; -} - -#MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; -} - -#MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; - border:none; - width:111px; - margin-left:20px; - padding-left:4px; - color: #909090; - outline: none; - font: 9pt Arial, Verdana, sans-serif; -} - -#FSearchBox #MSearchField { - margin-left:15px; -} - -#MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:0px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; -} - -#MSearchClose { - display: none; - position: absolute; - top: 4px; - background : none; - border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; - outline: none; -} - -.left #MSearchClose { - left: 6px; -} - -.right #MSearchClose { - right: 2px; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 1; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; -} - -.SRResult { - display: none; -} - -DIV.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/external/include/glm-0.9.9.8/doc/api/search/search.js b/external/include/glm-0.9.9.8/doc/api/search/search.js index 6ebf1342e4..dedce3bf09 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/search.js +++ b/external/include/glm-0.9.9.8/doc/api/search/search.js @@ -1,791 +1,791 @@ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches.html'; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName == 'DIV' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_0.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_0.js index e133239be7..883249957c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_0.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_0.js @@ -1,179 +1,179 @@ -var searchData= -[ - ['aligned_5fbvec1',['aligned_bvec1',['../a00303.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]], - ['aligned_5fbvec2',['aligned_bvec2',['../a00303.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]], - ['aligned_5fbvec3',['aligned_bvec3',['../a00303.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]], - ['aligned_5fbvec4',['aligned_bvec4',['../a00303.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]], - ['aligned_5fdmat2',['aligned_dmat2',['../a00303.html#ga6783859382677d35fcd5dac7dcbefdbd',1,'glm']]], - ['aligned_5fdmat2x2',['aligned_dmat2x2',['../a00303.html#ga449a3ec2dde6b6bb4bb94c49a6aad388',1,'glm']]], - ['aligned_5fdmat2x3',['aligned_dmat2x3',['../a00303.html#ga53d519a7b1bfb69076b3ec206a6b3bd1',1,'glm']]], - ['aligned_5fdmat2x4',['aligned_dmat2x4',['../a00303.html#ga5ccb2baeb0ab57b818c24e0d486c59d0',1,'glm']]], - ['aligned_5fdmat3',['aligned_dmat3',['../a00303.html#ga19aa695ffdb45ce29f7ea0b5029627de',1,'glm']]], - ['aligned_5fdmat3x2',['aligned_dmat3x2',['../a00303.html#ga5f5123d834bd1170edf8c386834e112c',1,'glm']]], - ['aligned_5fdmat3x3',['aligned_dmat3x3',['../a00303.html#ga635bf3732281a2c2ca54d8f9d33d178f',1,'glm']]], - ['aligned_5fdmat3x4',['aligned_dmat3x4',['../a00303.html#gaf488c6ad88c185054595d4d5c7ba5b9d',1,'glm']]], - ['aligned_5fdmat4',['aligned_dmat4',['../a00303.html#ga001bb387ae8192fa94dbd8b23b600439',1,'glm']]], - ['aligned_5fdmat4x2',['aligned_dmat4x2',['../a00303.html#gaa409cfb737bd59b68dc683e9b03930cc',1,'glm']]], - ['aligned_5fdmat4x3',['aligned_dmat4x3',['../a00303.html#ga621e89ca1dbdcb7b5a3e7de237c44121',1,'glm']]], - ['aligned_5fdmat4x4',['aligned_dmat4x4',['../a00303.html#gac9bda778d0b7ad82f656dab99b71857a',1,'glm']]], - ['aligned_5fdvec1',['aligned_dvec1',['../a00303.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]], - ['aligned_5fdvec2',['aligned_dvec2',['../a00303.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]], - ['aligned_5fdvec3',['aligned_dvec3',['../a00303.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]], - ['aligned_5fdvec4',['aligned_dvec4',['../a00303.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]], - ['aligned_5fhighp_5fbvec1',['aligned_highp_bvec1',['../a00303.html#ga862843a45b01c35ffe4d44c47ea774ad',1,'glm']]], - ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00303.html#ga0731b593c5e33559954c80f8687e76c6',1,'glm']]], - ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00303.html#ga0913bdf048d0cb74af1d2512aec675bc',1,'glm']]], - ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00303.html#ga9df1d0c425852cf63a57e533b7a83f4f',1,'glm']]], - ['aligned_5fhighp_5fdmat2',['aligned_highp_dmat2',['../a00303.html#ga3a7eeae43cb7673e14cc89bf02f7dd45',1,'glm']]], - ['aligned_5fhighp_5fdmat2x2',['aligned_highp_dmat2x2',['../a00303.html#gaef26dfe3855a91644665b55c9096a8c8',1,'glm']]], - ['aligned_5fhighp_5fdmat2x3',['aligned_highp_dmat2x3',['../a00303.html#gaa7c9d4ab7ab651cdf8001fe7843e238b',1,'glm']]], - ['aligned_5fhighp_5fdmat2x4',['aligned_highp_dmat2x4',['../a00303.html#gaa0d2b8a75f1908dcf32c27f8524bdced',1,'glm']]], - ['aligned_5fhighp_5fdmat3',['aligned_highp_dmat3',['../a00303.html#gad8f6abb2c9994850b5d5c04a5f979ed8',1,'glm']]], - ['aligned_5fhighp_5fdmat3x2',['aligned_highp_dmat3x2',['../a00303.html#gab069b2fc2ec785fc4e193cf26c022679',1,'glm']]], - ['aligned_5fhighp_5fdmat3x3',['aligned_highp_dmat3x3',['../a00303.html#ga66073b1ddef34b681741f572338ddb8e',1,'glm']]], - ['aligned_5fhighp_5fdmat3x4',['aligned_highp_dmat3x4',['../a00303.html#ga683c8ca66de323ea533a760abedd0efc',1,'glm']]], - ['aligned_5fhighp_5fdmat4',['aligned_highp_dmat4',['../a00303.html#gacaa7407ea00ffdd322ce86a57adb547e',1,'glm']]], - ['aligned_5fhighp_5fdmat4x2',['aligned_highp_dmat4x2',['../a00303.html#ga93a23ca3d42818d56e0702213c66354b',1,'glm']]], - ['aligned_5fhighp_5fdmat4x3',['aligned_highp_dmat4x3',['../a00303.html#gacab7374b560745cb1d0a306a90353f58',1,'glm']]], - ['aligned_5fhighp_5fdmat4x4',['aligned_highp_dmat4x4',['../a00303.html#ga1fbfba14368b742972d3b58a0a303682',1,'glm']]], - ['aligned_5fhighp_5fdvec1',['aligned_highp_dvec1',['../a00303.html#gaf0448b0f7ceb8273f7eda3a92205eefc',1,'glm']]], - ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00303.html#gab173a333e6b7ce153ceba66ac4a321cf',1,'glm']]], - ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00303.html#gae94ef61edfa047d05bc69b6065fc42ba',1,'glm']]], - ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00303.html#ga8fad35c5677f228e261fe541f15363a4',1,'glm']]], - ['aligned_5fhighp_5fivec1',['aligned_highp_ivec1',['../a00303.html#gad63b8c5b4dc0500d54d7414ef555178f',1,'glm']]], - ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00303.html#ga41563650f36cb7f479e080de21e08418',1,'glm']]], - ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00303.html#ga6eca5170bb35eac90b4972590fd31a06',1,'glm']]], - ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00303.html#ga31bfa801e1579fdba752ec3f7a45ec91',1,'glm']]], - ['aligned_5fhighp_5fmat2',['aligned_highp_mat2',['../a00303.html#gaf9db5e8a929c317da5aa12cc53741b63',1,'glm']]], - ['aligned_5fhighp_5fmat2x2',['aligned_highp_mat2x2',['../a00303.html#gab559d943abf92bc588bcd3f4c0e4664b',1,'glm']]], - ['aligned_5fhighp_5fmat2x3',['aligned_highp_mat2x3',['../a00303.html#ga50c9af5aa3a848956d625fc64dc8488e',1,'glm']]], - ['aligned_5fhighp_5fmat2x4',['aligned_highp_mat2x4',['../a00303.html#ga0edcfdd179f8a158342eead48a4d0c2a',1,'glm']]], - ['aligned_5fhighp_5fmat3',['aligned_highp_mat3',['../a00303.html#gabab3afcc04459c7b123604ae5dc663f6',1,'glm']]], - ['aligned_5fhighp_5fmat3x2',['aligned_highp_mat3x2',['../a00303.html#ga9fc2167b47c9be9295f2d8eea7f0ca75',1,'glm']]], - ['aligned_5fhighp_5fmat3x3',['aligned_highp_mat3x3',['../a00303.html#ga2f7b8c99ba6f2d07c73a195a8143c259',1,'glm']]], - ['aligned_5fhighp_5fmat3x4',['aligned_highp_mat3x4',['../a00303.html#ga52e00afd0eb181e6738f40cf41787049',1,'glm']]], - ['aligned_5fhighp_5fmat4',['aligned_highp_mat4',['../a00303.html#ga058ae939bfdbcbb80521dd4a3b01afba',1,'glm']]], - ['aligned_5fhighp_5fmat4x2',['aligned_highp_mat4x2',['../a00303.html#ga84e1f5e0718952a079b748825c03f956',1,'glm']]], - ['aligned_5fhighp_5fmat4x3',['aligned_highp_mat4x3',['../a00303.html#gafff1684c4ff19b4a818138ccacc1e78d',1,'glm']]], - ['aligned_5fhighp_5fmat4x4',['aligned_highp_mat4x4',['../a00303.html#ga40d49648083a0498a12a4bb41ae6ece8',1,'glm']]], - ['aligned_5fhighp_5fuvec1',['aligned_highp_uvec1',['../a00303.html#ga5b80e28396c6ef7d32c6fd18df498451',1,'glm']]], - ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00303.html#ga04db692662a4908beeaf5a5ba6e19483',1,'glm']]], - ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00303.html#ga073fd6e8b241afade6d8afbd676b2667',1,'glm']]], - ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00303.html#gabdd60462042859f876c17c7346c732a5',1,'glm']]], - ['aligned_5fhighp_5fvec1',['aligned_highp_vec1',['../a00303.html#ga4d0bd70d5fac49b800546d608b707513',1,'glm']]], - ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00303.html#gac9f8482dde741fb6bab7248b81a45465',1,'glm']]], - ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00303.html#ga65415d2d68c9cc0ca554524a8f5510b2',1,'glm']]], - ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00303.html#ga7cb26d354dd69d23849c34c4fba88da9',1,'glm']]], - ['aligned_5fivec1',['aligned_ivec1',['../a00303.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]], - ['aligned_5fivec2',['aligned_ivec2',['../a00303.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]], - ['aligned_5fivec3',['aligned_ivec3',['../a00303.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]], - ['aligned_5fivec4',['aligned_ivec4',['../a00303.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]], - ['aligned_5flowp_5fbvec1',['aligned_lowp_bvec1',['../a00303.html#gac6036449ab1c4abf8efe1ea00fcdd1c9',1,'glm']]], - ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00303.html#ga59fadcd3835646e419372ae8b43c5d37',1,'glm']]], - ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00303.html#ga83aab4d191053f169c93a3e364f2e118',1,'glm']]], - ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00303.html#gaa7a76555ee4853614e5755181a8dd54e',1,'glm']]], - ['aligned_5flowp_5fdmat2',['aligned_lowp_dmat2',['../a00303.html#ga79a90173d8faa9816dc852ce447d66ca',1,'glm']]], - ['aligned_5flowp_5fdmat2x2',['aligned_lowp_dmat2x2',['../a00303.html#ga07cb8e846666cbf56045b064fb553d2e',1,'glm']]], - ['aligned_5flowp_5fdmat2x3',['aligned_lowp_dmat2x3',['../a00303.html#ga7a4536b6e1f2ebb690f63816b5d7e48b',1,'glm']]], - ['aligned_5flowp_5fdmat2x4',['aligned_lowp_dmat2x4',['../a00303.html#gab0cf4f7c9a264941519acad286e055ea',1,'glm']]], - ['aligned_5flowp_5fdmat3',['aligned_lowp_dmat3',['../a00303.html#gac00e15efded8a57c9dec3aed0fb547e7',1,'glm']]], - ['aligned_5flowp_5fdmat3x2',['aligned_lowp_dmat3x2',['../a00303.html#gaa281a47d5d627313984d0f8df993b648',1,'glm']]], - ['aligned_5flowp_5fdmat3x3',['aligned_lowp_dmat3x3',['../a00303.html#ga7f3148a72355e39932d6855baca42ebc',1,'glm']]], - ['aligned_5flowp_5fdmat3x4',['aligned_lowp_dmat3x4',['../a00303.html#gaea3ccc5ef5b178e6e49b4fa1427605d3',1,'glm']]], - ['aligned_5flowp_5fdmat4',['aligned_lowp_dmat4',['../a00303.html#gab92c6d7d58d43dfb8147e9aedfe8351b',1,'glm']]], - ['aligned_5flowp_5fdmat4x2',['aligned_lowp_dmat4x2',['../a00303.html#gaf806dfdaffb2e9f7681b1cd2825898ce',1,'glm']]], - ['aligned_5flowp_5fdmat4x3',['aligned_lowp_dmat4x3',['../a00303.html#gab0931ac7807fa1428c7bbf249efcdf0d',1,'glm']]], - ['aligned_5flowp_5fdmat4x4',['aligned_lowp_dmat4x4',['../a00303.html#gad8220a93d2fca2dd707821b4ab6f809e',1,'glm']]], - ['aligned_5flowp_5fdvec1',['aligned_lowp_dvec1',['../a00303.html#ga7f8a2cc5a686e52b1615761f4978ca62',1,'glm']]], - ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00303.html#ga0e37cff4a43cca866101f0a35f01db6d',1,'glm']]], - ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00303.html#gab9e669c4efd52d3347fc6d5f6b20fd59',1,'glm']]], - ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00303.html#ga226f5ec7a953cea559c16fe3aff9924f',1,'glm']]], - ['aligned_5flowp_5fivec1',['aligned_lowp_ivec1',['../a00303.html#ga1101d3a82b2e3f5f8828bd8f3adab3e1',1,'glm']]], - ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00303.html#ga44c4accad582cfbd7226a19b83b0cadc',1,'glm']]], - ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00303.html#ga65663f10a02e52cedcddbcfe36ddf38d',1,'glm']]], - ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00303.html#gaae92fcec8b2e0328ffbeac31cc4fc419',1,'glm']]], - ['aligned_5flowp_5fmat2',['aligned_lowp_mat2',['../a00303.html#ga17c424412207b00dba1cf587b099eea3',1,'glm']]], - ['aligned_5flowp_5fmat2x2',['aligned_lowp_mat2x2',['../a00303.html#ga0e44aeb930a47f9cbf2db15b56433b0f',1,'glm']]], - ['aligned_5flowp_5fmat2x3',['aligned_lowp_mat2x3',['../a00303.html#ga7dec6d96bc61312b1e56d137c9c74030',1,'glm']]], - ['aligned_5flowp_5fmat2x4',['aligned_lowp_mat2x4',['../a00303.html#gaa694fab1f8df5f658846573ba8ffc563',1,'glm']]], - ['aligned_5flowp_5fmat3',['aligned_lowp_mat3',['../a00303.html#ga1eb9076cc28ead5020fd3029fd0472c5',1,'glm']]], - ['aligned_5flowp_5fmat3x2',['aligned_lowp_mat3x2',['../a00303.html#ga2d6639f0bd777bae1ee0eba71cd7bfdc',1,'glm']]], - ['aligned_5flowp_5fmat3x3',['aligned_lowp_mat3x3',['../a00303.html#gaeaab04e378a90956eec8d68a99d777ed',1,'glm']]], - ['aligned_5flowp_5fmat3x4',['aligned_lowp_mat3x4',['../a00303.html#ga1f03696ab066572c6c044e63edf635a2',1,'glm']]], - ['aligned_5flowp_5fmat4',['aligned_lowp_mat4',['../a00303.html#ga25ea2f684e36aa5e978b4f2f86593824',1,'glm']]], - ['aligned_5flowp_5fmat4x2',['aligned_lowp_mat4x2',['../a00303.html#ga2cb16c3fdfb15e0719d942ee3b548bc4',1,'glm']]], - ['aligned_5flowp_5fmat4x3',['aligned_lowp_mat4x3',['../a00303.html#ga7e96981e872f17a780d9f1c22dc1f512',1,'glm']]], - ['aligned_5flowp_5fmat4x4',['aligned_lowp_mat4x4',['../a00303.html#gadae3dcfc22d28c64d0548cbfd9d08719',1,'glm']]], - ['aligned_5flowp_5fuvec1',['aligned_lowp_uvec1',['../a00303.html#gad09b93acc43c43423408d17a64f6d7ca',1,'glm']]], - ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00303.html#ga6f94fcd28dde906fc6cad5f742b55c1a',1,'glm']]], - ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00303.html#ga9e9f006970b1a00862e3e6e599eedd4c',1,'glm']]], - ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00303.html#ga46b1b0b9eb8625a5d69137bd66cd13dc',1,'glm']]], - ['aligned_5flowp_5fvec1',['aligned_lowp_vec1',['../a00303.html#gab34aee3d5e121c543fea11d2c50ecc43',1,'glm']]], - ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00303.html#ga53ac5d252317f1fa43c2ef921857bf13',1,'glm']]], - ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00303.html#ga98f0b5cd65fce164ff1367c2a3b3aa1e',1,'glm']]], - ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00303.html#ga82f7275d6102593a69ce38cdad680409',1,'glm']]], - ['aligned_5fmat2',['aligned_mat2',['../a00303.html#ga5a8a5f8c47cd7d5502dd9932f83472b9',1,'glm']]], - ['aligned_5fmat2x2',['aligned_mat2x2',['../a00303.html#gabb04f459d81d753d278b2072e2375e8e',1,'glm']]], - ['aligned_5fmat2x3',['aligned_mat2x3',['../a00303.html#ga832476bb1c59ef673db37433ff34e399',1,'glm']]], - ['aligned_5fmat2x4',['aligned_mat2x4',['../a00303.html#gadab11a7504430825b648ff7c7e36b725',1,'glm']]], - ['aligned_5fmat3',['aligned_mat3',['../a00303.html#ga43a92a24ca863e0e0f3b65834b3cf714',1,'glm']]], - ['aligned_5fmat3x2',['aligned_mat3x2',['../a00303.html#ga5c0df24ba85eafafc0eb0c90690510ed',1,'glm']]], - ['aligned_5fmat3x3',['aligned_mat3x3',['../a00303.html#gadb065dbe5c11271fef8cf2ea8608f187',1,'glm']]], - ['aligned_5fmat3x4',['aligned_mat3x4',['../a00303.html#ga88061c72c997b94c420f2b0a60d9df26',1,'glm']]], - ['aligned_5fmat4',['aligned_mat4',['../a00303.html#gab0fddcf95dd51cbcbf624ea7c40dfeb8',1,'glm']]], - ['aligned_5fmat4x2',['aligned_mat4x2',['../a00303.html#gac9a2d0fb815fd5c2bd58b869c55e32d3',1,'glm']]], - ['aligned_5fmat4x3',['aligned_mat4x3',['../a00303.html#ga452bbbfd26e244de216e4d004d50bb74',1,'glm']]], - ['aligned_5fmat4x4',['aligned_mat4x4',['../a00303.html#ga8b8fb86973a0b768c5bd802c92fac1a1',1,'glm']]], - ['aligned_5fmediump_5fbvec1',['aligned_mediump_bvec1',['../a00303.html#gadd3b8bd71a758f7fb0da8e525156f34e',1,'glm']]], - ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00303.html#gacb183eb5e67ec0d0ea5a016cba962810',1,'glm']]], - ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00303.html#gacfa4a542f1b20a5b63ad702dfb6fd587',1,'glm']]], - ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00303.html#ga91bc1f513bb9b0fd60281d57ded9a48c',1,'glm']]], - ['aligned_5fmediump_5fdmat2',['aligned_mediump_dmat2',['../a00303.html#ga62a2dfd668c91072b72c3109fc6cda28',1,'glm']]], - ['aligned_5fmediump_5fdmat2x2',['aligned_mediump_dmat2x2',['../a00303.html#ga9b7feec247d378dd407ba81f56ea96c8',1,'glm']]], - ['aligned_5fmediump_5fdmat2x3',['aligned_mediump_dmat2x3',['../a00303.html#gafcb189f4f93648fe7ca802ca4aca2eb8',1,'glm']]], - ['aligned_5fmediump_5fdmat2x4',['aligned_mediump_dmat2x4',['../a00303.html#ga92f8873e3bbd5ca1323c8bbe5725cc5e',1,'glm']]], - ['aligned_5fmediump_5fdmat3',['aligned_mediump_dmat3',['../a00303.html#ga6dc2832b747c00e0a0df621aba196960',1,'glm']]], - ['aligned_5fmediump_5fdmat3x2',['aligned_mediump_dmat3x2',['../a00303.html#ga5a97f0355d801de3444d42c1d5b40438',1,'glm']]], - ['aligned_5fmediump_5fdmat3x3',['aligned_mediump_dmat3x3',['../a00303.html#ga649d0acf01054b17e679cf00e150e025',1,'glm']]], - ['aligned_5fmediump_5fdmat3x4',['aligned_mediump_dmat3x4',['../a00303.html#ga45e155a4840f69b2fa4ed8047a676860',1,'glm']]], - ['aligned_5fmediump_5fdmat4',['aligned_mediump_dmat4',['../a00303.html#ga8a9376d82f0e946e25137eb55543e6ce',1,'glm']]], - ['aligned_5fmediump_5fdmat4x2',['aligned_mediump_dmat4x2',['../a00303.html#gabc25e547f4de4af62403492532cd1b6d',1,'glm']]], - ['aligned_5fmediump_5fdmat4x3',['aligned_mediump_dmat4x3',['../a00303.html#gae84f4763ecdc7457ecb7930bad12057c',1,'glm']]], - ['aligned_5fmediump_5fdmat4x4',['aligned_mediump_dmat4x4',['../a00303.html#gaa292ebaa907afdecb2d5967fb4fb1247',1,'glm']]], - ['aligned_5fmediump_5fdvec1',['aligned_mediump_dvec1',['../a00303.html#ga7180b685c581adb224406a7f831608e3',1,'glm']]], - ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00303.html#ga9af1eabe22f569e70d9893be72eda0f5',1,'glm']]], - ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00303.html#ga058e7ddab1428e47f2197bdd3a5a6953',1,'glm']]], - ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00303.html#gaffd747ea2aea1e69c2ecb04e68521b21',1,'glm']]], - ['aligned_5fmediump_5fivec1',['aligned_mediump_ivec1',['../a00303.html#ga20e63dd980b81af10cadbbe219316650',1,'glm']]], - ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00303.html#gaea13d89d49daca2c796aeaa82fc2c2f2',1,'glm']]], - ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00303.html#gabbf0f15e9c3d9868e43241ad018f82bd',1,'glm']]], - ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00303.html#ga6099dd7878d0a78101a4250d8cd2d736',1,'glm']]], - ['aligned_5fmediump_5fmat2',['aligned_mediump_mat2',['../a00303.html#gaf6f041b212c57664d88bc6aefb7e36f3',1,'glm']]], - ['aligned_5fmediump_5fmat2x2',['aligned_mediump_mat2x2',['../a00303.html#ga04bf49316ee777d42fcfe681ee37d7be',1,'glm']]], - ['aligned_5fmediump_5fmat2x3',['aligned_mediump_mat2x3',['../a00303.html#ga26a0b61e444a51a37b9737cf4d84291b',1,'glm']]], - ['aligned_5fmediump_5fmat2x4',['aligned_mediump_mat2x4',['../a00303.html#ga163facc9ed2692ea1300ed57c5d12b17',1,'glm']]], - ['aligned_5fmediump_5fmat3',['aligned_mediump_mat3',['../a00303.html#ga3b76ba17ae5d53debeb6f7e55919a57c',1,'glm']]], - ['aligned_5fmediump_5fmat3x2',['aligned_mediump_mat3x2',['../a00303.html#ga80dee705d714300378e0847f45059097',1,'glm']]], - ['aligned_5fmediump_5fmat3x3',['aligned_mediump_mat3x3',['../a00303.html#ga721f5404caf40d68962dcc0529de71d9',1,'glm']]], - ['aligned_5fmediump_5fmat3x4',['aligned_mediump_mat3x4',['../a00303.html#ga98f4dc6722a2541a990918c074075359',1,'glm']]], - ['aligned_5fmediump_5fmat4',['aligned_mediump_mat4',['../a00303.html#gaeefee8317192174596852ce19b602720',1,'glm']]], - ['aligned_5fmediump_5fmat4x2',['aligned_mediump_mat4x2',['../a00303.html#ga46f372a006345c252a41267657cc22c0',1,'glm']]], - ['aligned_5fmediump_5fmat4x3',['aligned_mediump_mat4x3',['../a00303.html#ga0effece4545acdebdc2a5512a303110e',1,'glm']]], - ['aligned_5fmediump_5fmat4x4',['aligned_mediump_mat4x4',['../a00303.html#ga312864244cae4e8f10f478cffd0f76de',1,'glm']]], - ['aligned_5fmediump_5fuvec1',['aligned_mediump_uvec1',['../a00303.html#gacb78126ea2eb779b41c7511128ff1283',1,'glm']]], - ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00303.html#ga081d53e0a71443d0b68ea61c870f9adc',1,'glm']]], - ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00303.html#gad6fc921bdde2bdbc7e09b028e1e9b379',1,'glm']]], - ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00303.html#ga73ea0c1ba31580e107d21270883f51fc',1,'glm']]], - ['aligned_5fmediump_5fvec1',['aligned_mediump_vec1',['../a00303.html#ga6b797eec76fa471e300158f3453b3b2e',1,'glm']]], - ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00303.html#ga026a55ddbf2bafb1432f1157a2708616',1,'glm']]], - ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00303.html#ga3a25e494173f6a64637b08a1b50a2132',1,'glm']]], - ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00303.html#ga320d1c661cff2ef214eb50241f2928b2',1,'glm']]], - ['aligned_5fuvec1',['aligned_uvec1',['../a00303.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]], - ['aligned_5fuvec2',['aligned_uvec2',['../a00303.html#ga074137e3be58528d67041c223d49f398',1,'glm']]], - ['aligned_5fuvec3',['aligned_uvec3',['../a00303.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]], - ['aligned_5fuvec4',['aligned_uvec4',['../a00303.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]], - ['aligned_5fvec1',['aligned_vec1',['../a00303.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]], - ['aligned_5fvec2',['aligned_vec2',['../a00303.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]], - ['aligned_5fvec3',['aligned_vec3',['../a00303.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]], - ['aligned_5fvec4',['aligned_vec4',['../a00303.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]] -]; +var searchData= +[ + ['aligned_5fbvec1',['aligned_bvec1',['../a00303.html#ga780a35f764020f553a9601a3fcdcd059',1,'glm']]], + ['aligned_5fbvec2',['aligned_bvec2',['../a00303.html#gae766b317c5afec852bfb3d74a3c54bc8',1,'glm']]], + ['aligned_5fbvec3',['aligned_bvec3',['../a00303.html#gae1964ba70d15915e5b710926decbb3cb',1,'glm']]], + ['aligned_5fbvec4',['aligned_bvec4',['../a00303.html#gae164a1f7879f828bc35e50b79d786b05',1,'glm']]], + ['aligned_5fdmat2',['aligned_dmat2',['../a00303.html#ga6783859382677d35fcd5dac7dcbefdbd',1,'glm']]], + ['aligned_5fdmat2x2',['aligned_dmat2x2',['../a00303.html#ga449a3ec2dde6b6bb4bb94c49a6aad388',1,'glm']]], + ['aligned_5fdmat2x3',['aligned_dmat2x3',['../a00303.html#ga53d519a7b1bfb69076b3ec206a6b3bd1',1,'glm']]], + ['aligned_5fdmat2x4',['aligned_dmat2x4',['../a00303.html#ga5ccb2baeb0ab57b818c24e0d486c59d0',1,'glm']]], + ['aligned_5fdmat3',['aligned_dmat3',['../a00303.html#ga19aa695ffdb45ce29f7ea0b5029627de',1,'glm']]], + ['aligned_5fdmat3x2',['aligned_dmat3x2',['../a00303.html#ga5f5123d834bd1170edf8c386834e112c',1,'glm']]], + ['aligned_5fdmat3x3',['aligned_dmat3x3',['../a00303.html#ga635bf3732281a2c2ca54d8f9d33d178f',1,'glm']]], + ['aligned_5fdmat3x4',['aligned_dmat3x4',['../a00303.html#gaf488c6ad88c185054595d4d5c7ba5b9d',1,'glm']]], + ['aligned_5fdmat4',['aligned_dmat4',['../a00303.html#ga001bb387ae8192fa94dbd8b23b600439',1,'glm']]], + ['aligned_5fdmat4x2',['aligned_dmat4x2',['../a00303.html#gaa409cfb737bd59b68dc683e9b03930cc',1,'glm']]], + ['aligned_5fdmat4x3',['aligned_dmat4x3',['../a00303.html#ga621e89ca1dbdcb7b5a3e7de237c44121',1,'glm']]], + ['aligned_5fdmat4x4',['aligned_dmat4x4',['../a00303.html#gac9bda778d0b7ad82f656dab99b71857a',1,'glm']]], + ['aligned_5fdvec1',['aligned_dvec1',['../a00303.html#ga4974f46ae5a19415d91316960a53617a',1,'glm']]], + ['aligned_5fdvec2',['aligned_dvec2',['../a00303.html#ga18d859f87122b2b3b2992ffe86dbebc0',1,'glm']]], + ['aligned_5fdvec3',['aligned_dvec3',['../a00303.html#gaa37869eea77d28419b2fb0ff70b69bf0',1,'glm']]], + ['aligned_5fdvec4',['aligned_dvec4',['../a00303.html#ga8a9f0a4795ccc442fa9901845026f9f5',1,'glm']]], + ['aligned_5fhighp_5fbvec1',['aligned_highp_bvec1',['../a00303.html#ga862843a45b01c35ffe4d44c47ea774ad',1,'glm']]], + ['aligned_5fhighp_5fbvec2',['aligned_highp_bvec2',['../a00303.html#ga0731b593c5e33559954c80f8687e76c6',1,'glm']]], + ['aligned_5fhighp_5fbvec3',['aligned_highp_bvec3',['../a00303.html#ga0913bdf048d0cb74af1d2512aec675bc',1,'glm']]], + ['aligned_5fhighp_5fbvec4',['aligned_highp_bvec4',['../a00303.html#ga9df1d0c425852cf63a57e533b7a83f4f',1,'glm']]], + ['aligned_5fhighp_5fdmat2',['aligned_highp_dmat2',['../a00303.html#ga3a7eeae43cb7673e14cc89bf02f7dd45',1,'glm']]], + ['aligned_5fhighp_5fdmat2x2',['aligned_highp_dmat2x2',['../a00303.html#gaef26dfe3855a91644665b55c9096a8c8',1,'glm']]], + ['aligned_5fhighp_5fdmat2x3',['aligned_highp_dmat2x3',['../a00303.html#gaa7c9d4ab7ab651cdf8001fe7843e238b',1,'glm']]], + ['aligned_5fhighp_5fdmat2x4',['aligned_highp_dmat2x4',['../a00303.html#gaa0d2b8a75f1908dcf32c27f8524bdced',1,'glm']]], + ['aligned_5fhighp_5fdmat3',['aligned_highp_dmat3',['../a00303.html#gad8f6abb2c9994850b5d5c04a5f979ed8',1,'glm']]], + ['aligned_5fhighp_5fdmat3x2',['aligned_highp_dmat3x2',['../a00303.html#gab069b2fc2ec785fc4e193cf26c022679',1,'glm']]], + ['aligned_5fhighp_5fdmat3x3',['aligned_highp_dmat3x3',['../a00303.html#ga66073b1ddef34b681741f572338ddb8e',1,'glm']]], + ['aligned_5fhighp_5fdmat3x4',['aligned_highp_dmat3x4',['../a00303.html#ga683c8ca66de323ea533a760abedd0efc',1,'glm']]], + ['aligned_5fhighp_5fdmat4',['aligned_highp_dmat4',['../a00303.html#gacaa7407ea00ffdd322ce86a57adb547e',1,'glm']]], + ['aligned_5fhighp_5fdmat4x2',['aligned_highp_dmat4x2',['../a00303.html#ga93a23ca3d42818d56e0702213c66354b',1,'glm']]], + ['aligned_5fhighp_5fdmat4x3',['aligned_highp_dmat4x3',['../a00303.html#gacab7374b560745cb1d0a306a90353f58',1,'glm']]], + ['aligned_5fhighp_5fdmat4x4',['aligned_highp_dmat4x4',['../a00303.html#ga1fbfba14368b742972d3b58a0a303682',1,'glm']]], + ['aligned_5fhighp_5fdvec1',['aligned_highp_dvec1',['../a00303.html#gaf0448b0f7ceb8273f7eda3a92205eefc',1,'glm']]], + ['aligned_5fhighp_5fdvec2',['aligned_highp_dvec2',['../a00303.html#gab173a333e6b7ce153ceba66ac4a321cf',1,'glm']]], + ['aligned_5fhighp_5fdvec3',['aligned_highp_dvec3',['../a00303.html#gae94ef61edfa047d05bc69b6065fc42ba',1,'glm']]], + ['aligned_5fhighp_5fdvec4',['aligned_highp_dvec4',['../a00303.html#ga8fad35c5677f228e261fe541f15363a4',1,'glm']]], + ['aligned_5fhighp_5fivec1',['aligned_highp_ivec1',['../a00303.html#gad63b8c5b4dc0500d54d7414ef555178f',1,'glm']]], + ['aligned_5fhighp_5fivec2',['aligned_highp_ivec2',['../a00303.html#ga41563650f36cb7f479e080de21e08418',1,'glm']]], + ['aligned_5fhighp_5fivec3',['aligned_highp_ivec3',['../a00303.html#ga6eca5170bb35eac90b4972590fd31a06',1,'glm']]], + ['aligned_5fhighp_5fivec4',['aligned_highp_ivec4',['../a00303.html#ga31bfa801e1579fdba752ec3f7a45ec91',1,'glm']]], + ['aligned_5fhighp_5fmat2',['aligned_highp_mat2',['../a00303.html#gaf9db5e8a929c317da5aa12cc53741b63',1,'glm']]], + ['aligned_5fhighp_5fmat2x2',['aligned_highp_mat2x2',['../a00303.html#gab559d943abf92bc588bcd3f4c0e4664b',1,'glm']]], + ['aligned_5fhighp_5fmat2x3',['aligned_highp_mat2x3',['../a00303.html#ga50c9af5aa3a848956d625fc64dc8488e',1,'glm']]], + ['aligned_5fhighp_5fmat2x4',['aligned_highp_mat2x4',['../a00303.html#ga0edcfdd179f8a158342eead48a4d0c2a',1,'glm']]], + ['aligned_5fhighp_5fmat3',['aligned_highp_mat3',['../a00303.html#gabab3afcc04459c7b123604ae5dc663f6',1,'glm']]], + ['aligned_5fhighp_5fmat3x2',['aligned_highp_mat3x2',['../a00303.html#ga9fc2167b47c9be9295f2d8eea7f0ca75',1,'glm']]], + ['aligned_5fhighp_5fmat3x3',['aligned_highp_mat3x3',['../a00303.html#ga2f7b8c99ba6f2d07c73a195a8143c259',1,'glm']]], + ['aligned_5fhighp_5fmat3x4',['aligned_highp_mat3x4',['../a00303.html#ga52e00afd0eb181e6738f40cf41787049',1,'glm']]], + ['aligned_5fhighp_5fmat4',['aligned_highp_mat4',['../a00303.html#ga058ae939bfdbcbb80521dd4a3b01afba',1,'glm']]], + ['aligned_5fhighp_5fmat4x2',['aligned_highp_mat4x2',['../a00303.html#ga84e1f5e0718952a079b748825c03f956',1,'glm']]], + ['aligned_5fhighp_5fmat4x3',['aligned_highp_mat4x3',['../a00303.html#gafff1684c4ff19b4a818138ccacc1e78d',1,'glm']]], + ['aligned_5fhighp_5fmat4x4',['aligned_highp_mat4x4',['../a00303.html#ga40d49648083a0498a12a4bb41ae6ece8',1,'glm']]], + ['aligned_5fhighp_5fuvec1',['aligned_highp_uvec1',['../a00303.html#ga5b80e28396c6ef7d32c6fd18df498451',1,'glm']]], + ['aligned_5fhighp_5fuvec2',['aligned_highp_uvec2',['../a00303.html#ga04db692662a4908beeaf5a5ba6e19483',1,'glm']]], + ['aligned_5fhighp_5fuvec3',['aligned_highp_uvec3',['../a00303.html#ga073fd6e8b241afade6d8afbd676b2667',1,'glm']]], + ['aligned_5fhighp_5fuvec4',['aligned_highp_uvec4',['../a00303.html#gabdd60462042859f876c17c7346c732a5',1,'glm']]], + ['aligned_5fhighp_5fvec1',['aligned_highp_vec1',['../a00303.html#ga4d0bd70d5fac49b800546d608b707513',1,'glm']]], + ['aligned_5fhighp_5fvec2',['aligned_highp_vec2',['../a00303.html#gac9f8482dde741fb6bab7248b81a45465',1,'glm']]], + ['aligned_5fhighp_5fvec3',['aligned_highp_vec3',['../a00303.html#ga65415d2d68c9cc0ca554524a8f5510b2',1,'glm']]], + ['aligned_5fhighp_5fvec4',['aligned_highp_vec4',['../a00303.html#ga7cb26d354dd69d23849c34c4fba88da9',1,'glm']]], + ['aligned_5fivec1',['aligned_ivec1',['../a00303.html#ga76298aed82a439063c3d55980c84aa0b',1,'glm']]], + ['aligned_5fivec2',['aligned_ivec2',['../a00303.html#gae4f38fd2c86cee6940986197777b3ca4',1,'glm']]], + ['aligned_5fivec3',['aligned_ivec3',['../a00303.html#ga32794322d294e5ace7fed4a61896f270',1,'glm']]], + ['aligned_5fivec4',['aligned_ivec4',['../a00303.html#ga7f79eae5927c9033d84617e49f6f34e4',1,'glm']]], + ['aligned_5flowp_5fbvec1',['aligned_lowp_bvec1',['../a00303.html#gac6036449ab1c4abf8efe1ea00fcdd1c9',1,'glm']]], + ['aligned_5flowp_5fbvec2',['aligned_lowp_bvec2',['../a00303.html#ga59fadcd3835646e419372ae8b43c5d37',1,'glm']]], + ['aligned_5flowp_5fbvec3',['aligned_lowp_bvec3',['../a00303.html#ga83aab4d191053f169c93a3e364f2e118',1,'glm']]], + ['aligned_5flowp_5fbvec4',['aligned_lowp_bvec4',['../a00303.html#gaa7a76555ee4853614e5755181a8dd54e',1,'glm']]], + ['aligned_5flowp_5fdmat2',['aligned_lowp_dmat2',['../a00303.html#ga79a90173d8faa9816dc852ce447d66ca',1,'glm']]], + ['aligned_5flowp_5fdmat2x2',['aligned_lowp_dmat2x2',['../a00303.html#ga07cb8e846666cbf56045b064fb553d2e',1,'glm']]], + ['aligned_5flowp_5fdmat2x3',['aligned_lowp_dmat2x3',['../a00303.html#ga7a4536b6e1f2ebb690f63816b5d7e48b',1,'glm']]], + ['aligned_5flowp_5fdmat2x4',['aligned_lowp_dmat2x4',['../a00303.html#gab0cf4f7c9a264941519acad286e055ea',1,'glm']]], + ['aligned_5flowp_5fdmat3',['aligned_lowp_dmat3',['../a00303.html#gac00e15efded8a57c9dec3aed0fb547e7',1,'glm']]], + ['aligned_5flowp_5fdmat3x2',['aligned_lowp_dmat3x2',['../a00303.html#gaa281a47d5d627313984d0f8df993b648',1,'glm']]], + ['aligned_5flowp_5fdmat3x3',['aligned_lowp_dmat3x3',['../a00303.html#ga7f3148a72355e39932d6855baca42ebc',1,'glm']]], + ['aligned_5flowp_5fdmat3x4',['aligned_lowp_dmat3x4',['../a00303.html#gaea3ccc5ef5b178e6e49b4fa1427605d3',1,'glm']]], + ['aligned_5flowp_5fdmat4',['aligned_lowp_dmat4',['../a00303.html#gab92c6d7d58d43dfb8147e9aedfe8351b',1,'glm']]], + ['aligned_5flowp_5fdmat4x2',['aligned_lowp_dmat4x2',['../a00303.html#gaf806dfdaffb2e9f7681b1cd2825898ce',1,'glm']]], + ['aligned_5flowp_5fdmat4x3',['aligned_lowp_dmat4x3',['../a00303.html#gab0931ac7807fa1428c7bbf249efcdf0d',1,'glm']]], + ['aligned_5flowp_5fdmat4x4',['aligned_lowp_dmat4x4',['../a00303.html#gad8220a93d2fca2dd707821b4ab6f809e',1,'glm']]], + ['aligned_5flowp_5fdvec1',['aligned_lowp_dvec1',['../a00303.html#ga7f8a2cc5a686e52b1615761f4978ca62',1,'glm']]], + ['aligned_5flowp_5fdvec2',['aligned_lowp_dvec2',['../a00303.html#ga0e37cff4a43cca866101f0a35f01db6d',1,'glm']]], + ['aligned_5flowp_5fdvec3',['aligned_lowp_dvec3',['../a00303.html#gab9e669c4efd52d3347fc6d5f6b20fd59',1,'glm']]], + ['aligned_5flowp_5fdvec4',['aligned_lowp_dvec4',['../a00303.html#ga226f5ec7a953cea559c16fe3aff9924f',1,'glm']]], + ['aligned_5flowp_5fivec1',['aligned_lowp_ivec1',['../a00303.html#ga1101d3a82b2e3f5f8828bd8f3adab3e1',1,'glm']]], + ['aligned_5flowp_5fivec2',['aligned_lowp_ivec2',['../a00303.html#ga44c4accad582cfbd7226a19b83b0cadc',1,'glm']]], + ['aligned_5flowp_5fivec3',['aligned_lowp_ivec3',['../a00303.html#ga65663f10a02e52cedcddbcfe36ddf38d',1,'glm']]], + ['aligned_5flowp_5fivec4',['aligned_lowp_ivec4',['../a00303.html#gaae92fcec8b2e0328ffbeac31cc4fc419',1,'glm']]], + ['aligned_5flowp_5fmat2',['aligned_lowp_mat2',['../a00303.html#ga17c424412207b00dba1cf587b099eea3',1,'glm']]], + ['aligned_5flowp_5fmat2x2',['aligned_lowp_mat2x2',['../a00303.html#ga0e44aeb930a47f9cbf2db15b56433b0f',1,'glm']]], + ['aligned_5flowp_5fmat2x3',['aligned_lowp_mat2x3',['../a00303.html#ga7dec6d96bc61312b1e56d137c9c74030',1,'glm']]], + ['aligned_5flowp_5fmat2x4',['aligned_lowp_mat2x4',['../a00303.html#gaa694fab1f8df5f658846573ba8ffc563',1,'glm']]], + ['aligned_5flowp_5fmat3',['aligned_lowp_mat3',['../a00303.html#ga1eb9076cc28ead5020fd3029fd0472c5',1,'glm']]], + ['aligned_5flowp_5fmat3x2',['aligned_lowp_mat3x2',['../a00303.html#ga2d6639f0bd777bae1ee0eba71cd7bfdc',1,'glm']]], + ['aligned_5flowp_5fmat3x3',['aligned_lowp_mat3x3',['../a00303.html#gaeaab04e378a90956eec8d68a99d777ed',1,'glm']]], + ['aligned_5flowp_5fmat3x4',['aligned_lowp_mat3x4',['../a00303.html#ga1f03696ab066572c6c044e63edf635a2',1,'glm']]], + ['aligned_5flowp_5fmat4',['aligned_lowp_mat4',['../a00303.html#ga25ea2f684e36aa5e978b4f2f86593824',1,'glm']]], + ['aligned_5flowp_5fmat4x2',['aligned_lowp_mat4x2',['../a00303.html#ga2cb16c3fdfb15e0719d942ee3b548bc4',1,'glm']]], + ['aligned_5flowp_5fmat4x3',['aligned_lowp_mat4x3',['../a00303.html#ga7e96981e872f17a780d9f1c22dc1f512',1,'glm']]], + ['aligned_5flowp_5fmat4x4',['aligned_lowp_mat4x4',['../a00303.html#gadae3dcfc22d28c64d0548cbfd9d08719',1,'glm']]], + ['aligned_5flowp_5fuvec1',['aligned_lowp_uvec1',['../a00303.html#gad09b93acc43c43423408d17a64f6d7ca',1,'glm']]], + ['aligned_5flowp_5fuvec2',['aligned_lowp_uvec2',['../a00303.html#ga6f94fcd28dde906fc6cad5f742b55c1a',1,'glm']]], + ['aligned_5flowp_5fuvec3',['aligned_lowp_uvec3',['../a00303.html#ga9e9f006970b1a00862e3e6e599eedd4c',1,'glm']]], + ['aligned_5flowp_5fuvec4',['aligned_lowp_uvec4',['../a00303.html#ga46b1b0b9eb8625a5d69137bd66cd13dc',1,'glm']]], + ['aligned_5flowp_5fvec1',['aligned_lowp_vec1',['../a00303.html#gab34aee3d5e121c543fea11d2c50ecc43',1,'glm']]], + ['aligned_5flowp_5fvec2',['aligned_lowp_vec2',['../a00303.html#ga53ac5d252317f1fa43c2ef921857bf13',1,'glm']]], + ['aligned_5flowp_5fvec3',['aligned_lowp_vec3',['../a00303.html#ga98f0b5cd65fce164ff1367c2a3b3aa1e',1,'glm']]], + ['aligned_5flowp_5fvec4',['aligned_lowp_vec4',['../a00303.html#ga82f7275d6102593a69ce38cdad680409',1,'glm']]], + ['aligned_5fmat2',['aligned_mat2',['../a00303.html#ga5a8a5f8c47cd7d5502dd9932f83472b9',1,'glm']]], + ['aligned_5fmat2x2',['aligned_mat2x2',['../a00303.html#gabb04f459d81d753d278b2072e2375e8e',1,'glm']]], + ['aligned_5fmat2x3',['aligned_mat2x3',['../a00303.html#ga832476bb1c59ef673db37433ff34e399',1,'glm']]], + ['aligned_5fmat2x4',['aligned_mat2x4',['../a00303.html#gadab11a7504430825b648ff7c7e36b725',1,'glm']]], + ['aligned_5fmat3',['aligned_mat3',['../a00303.html#ga43a92a24ca863e0e0f3b65834b3cf714',1,'glm']]], + ['aligned_5fmat3x2',['aligned_mat3x2',['../a00303.html#ga5c0df24ba85eafafc0eb0c90690510ed',1,'glm']]], + ['aligned_5fmat3x3',['aligned_mat3x3',['../a00303.html#gadb065dbe5c11271fef8cf2ea8608f187',1,'glm']]], + ['aligned_5fmat3x4',['aligned_mat3x4',['../a00303.html#ga88061c72c997b94c420f2b0a60d9df26',1,'glm']]], + ['aligned_5fmat4',['aligned_mat4',['../a00303.html#gab0fddcf95dd51cbcbf624ea7c40dfeb8',1,'glm']]], + ['aligned_5fmat4x2',['aligned_mat4x2',['../a00303.html#gac9a2d0fb815fd5c2bd58b869c55e32d3',1,'glm']]], + ['aligned_5fmat4x3',['aligned_mat4x3',['../a00303.html#ga452bbbfd26e244de216e4d004d50bb74',1,'glm']]], + ['aligned_5fmat4x4',['aligned_mat4x4',['../a00303.html#ga8b8fb86973a0b768c5bd802c92fac1a1',1,'glm']]], + ['aligned_5fmediump_5fbvec1',['aligned_mediump_bvec1',['../a00303.html#gadd3b8bd71a758f7fb0da8e525156f34e',1,'glm']]], + ['aligned_5fmediump_5fbvec2',['aligned_mediump_bvec2',['../a00303.html#gacb183eb5e67ec0d0ea5a016cba962810',1,'glm']]], + ['aligned_5fmediump_5fbvec3',['aligned_mediump_bvec3',['../a00303.html#gacfa4a542f1b20a5b63ad702dfb6fd587',1,'glm']]], + ['aligned_5fmediump_5fbvec4',['aligned_mediump_bvec4',['../a00303.html#ga91bc1f513bb9b0fd60281d57ded9a48c',1,'glm']]], + ['aligned_5fmediump_5fdmat2',['aligned_mediump_dmat2',['../a00303.html#ga62a2dfd668c91072b72c3109fc6cda28',1,'glm']]], + ['aligned_5fmediump_5fdmat2x2',['aligned_mediump_dmat2x2',['../a00303.html#ga9b7feec247d378dd407ba81f56ea96c8',1,'glm']]], + ['aligned_5fmediump_5fdmat2x3',['aligned_mediump_dmat2x3',['../a00303.html#gafcb189f4f93648fe7ca802ca4aca2eb8',1,'glm']]], + ['aligned_5fmediump_5fdmat2x4',['aligned_mediump_dmat2x4',['../a00303.html#ga92f8873e3bbd5ca1323c8bbe5725cc5e',1,'glm']]], + ['aligned_5fmediump_5fdmat3',['aligned_mediump_dmat3',['../a00303.html#ga6dc2832b747c00e0a0df621aba196960',1,'glm']]], + ['aligned_5fmediump_5fdmat3x2',['aligned_mediump_dmat3x2',['../a00303.html#ga5a97f0355d801de3444d42c1d5b40438',1,'glm']]], + ['aligned_5fmediump_5fdmat3x3',['aligned_mediump_dmat3x3',['../a00303.html#ga649d0acf01054b17e679cf00e150e025',1,'glm']]], + ['aligned_5fmediump_5fdmat3x4',['aligned_mediump_dmat3x4',['../a00303.html#ga45e155a4840f69b2fa4ed8047a676860',1,'glm']]], + ['aligned_5fmediump_5fdmat4',['aligned_mediump_dmat4',['../a00303.html#ga8a9376d82f0e946e25137eb55543e6ce',1,'glm']]], + ['aligned_5fmediump_5fdmat4x2',['aligned_mediump_dmat4x2',['../a00303.html#gabc25e547f4de4af62403492532cd1b6d',1,'glm']]], + ['aligned_5fmediump_5fdmat4x3',['aligned_mediump_dmat4x3',['../a00303.html#gae84f4763ecdc7457ecb7930bad12057c',1,'glm']]], + ['aligned_5fmediump_5fdmat4x4',['aligned_mediump_dmat4x4',['../a00303.html#gaa292ebaa907afdecb2d5967fb4fb1247',1,'glm']]], + ['aligned_5fmediump_5fdvec1',['aligned_mediump_dvec1',['../a00303.html#ga7180b685c581adb224406a7f831608e3',1,'glm']]], + ['aligned_5fmediump_5fdvec2',['aligned_mediump_dvec2',['../a00303.html#ga9af1eabe22f569e70d9893be72eda0f5',1,'glm']]], + ['aligned_5fmediump_5fdvec3',['aligned_mediump_dvec3',['../a00303.html#ga058e7ddab1428e47f2197bdd3a5a6953',1,'glm']]], + ['aligned_5fmediump_5fdvec4',['aligned_mediump_dvec4',['../a00303.html#gaffd747ea2aea1e69c2ecb04e68521b21',1,'glm']]], + ['aligned_5fmediump_5fivec1',['aligned_mediump_ivec1',['../a00303.html#ga20e63dd980b81af10cadbbe219316650',1,'glm']]], + ['aligned_5fmediump_5fivec2',['aligned_mediump_ivec2',['../a00303.html#gaea13d89d49daca2c796aeaa82fc2c2f2',1,'glm']]], + ['aligned_5fmediump_5fivec3',['aligned_mediump_ivec3',['../a00303.html#gabbf0f15e9c3d9868e43241ad018f82bd',1,'glm']]], + ['aligned_5fmediump_5fivec4',['aligned_mediump_ivec4',['../a00303.html#ga6099dd7878d0a78101a4250d8cd2d736',1,'glm']]], + ['aligned_5fmediump_5fmat2',['aligned_mediump_mat2',['../a00303.html#gaf6f041b212c57664d88bc6aefb7e36f3',1,'glm']]], + ['aligned_5fmediump_5fmat2x2',['aligned_mediump_mat2x2',['../a00303.html#ga04bf49316ee777d42fcfe681ee37d7be',1,'glm']]], + ['aligned_5fmediump_5fmat2x3',['aligned_mediump_mat2x3',['../a00303.html#ga26a0b61e444a51a37b9737cf4d84291b',1,'glm']]], + ['aligned_5fmediump_5fmat2x4',['aligned_mediump_mat2x4',['../a00303.html#ga163facc9ed2692ea1300ed57c5d12b17',1,'glm']]], + ['aligned_5fmediump_5fmat3',['aligned_mediump_mat3',['../a00303.html#ga3b76ba17ae5d53debeb6f7e55919a57c',1,'glm']]], + ['aligned_5fmediump_5fmat3x2',['aligned_mediump_mat3x2',['../a00303.html#ga80dee705d714300378e0847f45059097',1,'glm']]], + ['aligned_5fmediump_5fmat3x3',['aligned_mediump_mat3x3',['../a00303.html#ga721f5404caf40d68962dcc0529de71d9',1,'glm']]], + ['aligned_5fmediump_5fmat3x4',['aligned_mediump_mat3x4',['../a00303.html#ga98f4dc6722a2541a990918c074075359',1,'glm']]], + ['aligned_5fmediump_5fmat4',['aligned_mediump_mat4',['../a00303.html#gaeefee8317192174596852ce19b602720',1,'glm']]], + ['aligned_5fmediump_5fmat4x2',['aligned_mediump_mat4x2',['../a00303.html#ga46f372a006345c252a41267657cc22c0',1,'glm']]], + ['aligned_5fmediump_5fmat4x3',['aligned_mediump_mat4x3',['../a00303.html#ga0effece4545acdebdc2a5512a303110e',1,'glm']]], + ['aligned_5fmediump_5fmat4x4',['aligned_mediump_mat4x4',['../a00303.html#ga312864244cae4e8f10f478cffd0f76de',1,'glm']]], + ['aligned_5fmediump_5fuvec1',['aligned_mediump_uvec1',['../a00303.html#gacb78126ea2eb779b41c7511128ff1283',1,'glm']]], + ['aligned_5fmediump_5fuvec2',['aligned_mediump_uvec2',['../a00303.html#ga081d53e0a71443d0b68ea61c870f9adc',1,'glm']]], + ['aligned_5fmediump_5fuvec3',['aligned_mediump_uvec3',['../a00303.html#gad6fc921bdde2bdbc7e09b028e1e9b379',1,'glm']]], + ['aligned_5fmediump_5fuvec4',['aligned_mediump_uvec4',['../a00303.html#ga73ea0c1ba31580e107d21270883f51fc',1,'glm']]], + ['aligned_5fmediump_5fvec1',['aligned_mediump_vec1',['../a00303.html#ga6b797eec76fa471e300158f3453b3b2e',1,'glm']]], + ['aligned_5fmediump_5fvec2',['aligned_mediump_vec2',['../a00303.html#ga026a55ddbf2bafb1432f1157a2708616',1,'glm']]], + ['aligned_5fmediump_5fvec3',['aligned_mediump_vec3',['../a00303.html#ga3a25e494173f6a64637b08a1b50a2132',1,'glm']]], + ['aligned_5fmediump_5fvec4',['aligned_mediump_vec4',['../a00303.html#ga320d1c661cff2ef214eb50241f2928b2',1,'glm']]], + ['aligned_5fuvec1',['aligned_uvec1',['../a00303.html#ga1ff8ed402c93d280ff0597c1c5e7c548',1,'glm']]], + ['aligned_5fuvec2',['aligned_uvec2',['../a00303.html#ga074137e3be58528d67041c223d49f398',1,'glm']]], + ['aligned_5fuvec3',['aligned_uvec3',['../a00303.html#ga2a8d9c3046f89d854eb758adfa0811c0',1,'glm']]], + ['aligned_5fuvec4',['aligned_uvec4',['../a00303.html#gabf842c45eea186170c267a328e3f3b7d',1,'glm']]], + ['aligned_5fvec1',['aligned_vec1',['../a00303.html#ga05e6d4c908965d04191c2070a8d0a65e',1,'glm']]], + ['aligned_5fvec2',['aligned_vec2',['../a00303.html#ga0682462f8096a226773e20fac993cde5',1,'glm']]], + ['aligned_5fvec3',['aligned_vec3',['../a00303.html#ga7cf643b66664e0cd3c48759ae66c2bd0',1,'glm']]], + ['aligned_5fvec4',['aligned_vec4',['../a00303.html#ga85d89e83cb8137e1be1446de8c3b643a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.html index 6654493c6c..c44c36f9dc 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.js index c027e17fe4..45d4b645e4 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_1.js @@ -1,22 +1,22 @@ -var searchData= -[ - ['bool1',['bool1',['../a00315.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]], - ['bool1x1',['bool1x1',['../a00315.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]], - ['bool2',['bool2',['../a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9',1,'glm']]], - ['bool2x2',['bool2x2',['../a00315.html#gadb3703955e513632f98ba12fe051ba3e',1,'glm']]], - ['bool2x3',['bool2x3',['../a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0',1,'glm']]], - ['bool2x4',['bool2x4',['../a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f',1,'glm']]], - ['bool3',['bool3',['../a00315.html#ga99629f818737f342204071ef8296b2ed',1,'glm']]], - ['bool3x2',['bool3x2',['../a00315.html#gac7d7311f7e0fa8b6163d96dab033a755',1,'glm']]], - ['bool3x3',['bool3x3',['../a00315.html#ga6c97b99aac3e302053ffb58aace9033c',1,'glm']]], - ['bool3x4',['bool3x4',['../a00315.html#gae7d6b679463d37d6c527d478fb470fdf',1,'glm']]], - ['bool4',['bool4',['../a00315.html#ga13c3200b82708f73faac6d7f09ec91a3',1,'glm']]], - ['bool4x2',['bool4x2',['../a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0',1,'glm']]], - ['bool4x3',['bool4x3',['../a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe',1,'glm']]], - ['bool4x4',['bool4x4',['../a00315.html#ga7d2a7d13986602ae2896bfaa394235d4',1,'glm']]], - ['bvec1',['bvec1',['../a00265.html#ga067af382616d93f8e850baae5154cdcc',1,'glm']]], - ['bvec2',['bvec2',['../a00281.html#ga0b6123e03653cc1bbe366fc55238a934',1,'glm']]], - ['bvec3',['bvec3',['../a00281.html#ga197151b72dfaf289daf98b361760ffe7',1,'glm']]], - ['bvec4',['bvec4',['../a00281.html#ga9f7b9712373ff4342d9114619b55f5e3',1,'glm']]], - ['byte',['byte',['../a00354.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]] -]; +var searchData= +[ + ['bool1',['bool1',['../a00315.html#gaddcd7aa2e30e61af5b38660613d3979e',1,'glm']]], + ['bool1x1',['bool1x1',['../a00315.html#ga7f895c936f0c29c8729afbbf22806090',1,'glm']]], + ['bool2',['bool2',['../a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9',1,'glm']]], + ['bool2x2',['bool2x2',['../a00315.html#gadb3703955e513632f98ba12fe051ba3e',1,'glm']]], + ['bool2x3',['bool2x3',['../a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0',1,'glm']]], + ['bool2x4',['bool2x4',['../a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f',1,'glm']]], + ['bool3',['bool3',['../a00315.html#ga99629f818737f342204071ef8296b2ed',1,'glm']]], + ['bool3x2',['bool3x2',['../a00315.html#gac7d7311f7e0fa8b6163d96dab033a755',1,'glm']]], + ['bool3x3',['bool3x3',['../a00315.html#ga6c97b99aac3e302053ffb58aace9033c',1,'glm']]], + ['bool3x4',['bool3x4',['../a00315.html#gae7d6b679463d37d6c527d478fb470fdf',1,'glm']]], + ['bool4',['bool4',['../a00315.html#ga13c3200b82708f73faac6d7f09ec91a3',1,'glm']]], + ['bool4x2',['bool4x2',['../a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0',1,'glm']]], + ['bool4x3',['bool4x3',['../a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe',1,'glm']]], + ['bool4x4',['bool4x4',['../a00315.html#ga7d2a7d13986602ae2896bfaa394235d4',1,'glm']]], + ['bvec1',['bvec1',['../a00265.html#ga067af382616d93f8e850baae5154cdcc',1,'glm']]], + ['bvec2',['bvec2',['../a00281.html#ga0b6123e03653cc1bbe366fc55238a934',1,'glm']]], + ['bvec3',['bvec3',['../a00281.html#ga197151b72dfaf289daf98b361760ffe7',1,'glm']]], + ['bvec4',['bvec4',['../a00281.html#ga9f7b9712373ff4342d9114619b55f5e3',1,'glm']]], + ['byte',['byte',['../a00354.html#ga3005cb0d839d546c616becfa6602c607',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.html index 394c4cfbc0..d64bac3cbc 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.js index 4e608e3e09..ad938367bd 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_2.js @@ -1,37 +1,37 @@ -var searchData= -[ - ['ddualquat',['ddualquat',['../a00317.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]], - ['dmat2',['dmat2',['../a00283.html#ga21dbd1f987775d7cc7607c139531c7e6',1,'glm']]], - ['dmat2x2',['dmat2x2',['../a00283.html#ga66b6a9af787e468a46dfe24189e87f9b',1,'glm']]], - ['dmat2x3',['dmat2x3',['../a00283.html#ga92cd388753d48e20de69ea2dbedf826a',1,'glm']]], - ['dmat2x4',['dmat2x4',['../a00283.html#gaef2198807e937072803ae0ae45e1965e',1,'glm']]], - ['dmat3',['dmat3',['../a00283.html#ga6f40aa56265b4b0ccad41b86802efe33',1,'glm']]], - ['dmat3x2',['dmat3x2',['../a00283.html#ga001e3e0638fbf8719788fc64c5b8cf39',1,'glm']]], - ['dmat3x3',['dmat3x3',['../a00283.html#ga970cb3306be25a5ca5db5a9456831228',1,'glm']]], - ['dmat3x4',['dmat3x4',['../a00283.html#ga0412a634d183587e6188e9b11869f8f4',1,'glm']]], - ['dmat4',['dmat4',['../a00283.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca',1,'glm']]], - ['dmat4x2',['dmat4x2',['../a00283.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156',1,'glm']]], - ['dmat4x3',['dmat4x3',['../a00283.html#gacd18864049f8c83799babe7e596ca05b',1,'glm']]], - ['dmat4x4',['dmat4x4',['../a00283.html#gad5a6484b983b74f9d801cab8bc4e6a10',1,'glm']]], - ['double1',['double1',['../a00315.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]], - ['double1x1',['double1x1',['../a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]], - ['double2',['double2',['../a00315.html#ga31b729b04facccda73f07ed26958b3c2',1,'glm']]], - ['double2x2',['double2x2',['../a00315.html#gae57d0201096834d25f2b91b319e7cdbd',1,'glm']]], - ['double2x3',['double2x3',['../a00315.html#ga3655bc324008553ca61f39952d0b2d08',1,'glm']]], - ['double2x4',['double2x4',['../a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a',1,'glm']]], - ['double3',['double3',['../a00315.html#ga3d8b9028a1053a44a98902cd1c389472',1,'glm']]], - ['double3x2',['double3x2',['../a00315.html#ga5ec08fc39c9d783dfcc488be240fe975',1,'glm']]], - ['double3x3',['double3x3',['../a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180',1,'glm']]], - ['double3x4',['double3x4',['../a00315.html#ga2ef022e453d663d70aec414b2a80f756',1,'glm']]], - ['double4',['double4',['../a00315.html#gaf92f58af24f35617518aeb3d4f63fda6',1,'glm']]], - ['double4x2',['double4x2',['../a00315.html#gabca29ccceea53669618b751aae0ba83d',1,'glm']]], - ['double4x3',['double4x3',['../a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c',1,'glm']]], - ['double4x4',['double4x4',['../a00315.html#gaab541bed2e788e4537852a2492860806',1,'glm']]], - ['dquat',['dquat',['../a00249.html#ga1181459aa5d640a3ea43861b118f3f0b',1,'glm']]], - ['dualquat',['dualquat',['../a00317.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]], - ['dvec1',['dvec1',['../a00268.html#ga6221af17edc2d4477a4583d2cd53e569',1,'glm']]], - ['dvec2',['dvec2',['../a00281.html#ga8b09c71aaac7da7867ae58377fe219a8',1,'glm']]], - ['dvec3',['dvec3',['../a00281.html#ga5b83ae3d0fdec519c038e4d2cf967cf0',1,'glm']]], - ['dvec4',['dvec4',['../a00281.html#ga57debab5d98ce618f7b2a97fe26eb3ac',1,'glm']]], - ['dword',['dword',['../a00354.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]] -]; +var searchData= +[ + ['ddualquat',['ddualquat',['../a00317.html#ga3d71f98d84ba59dfe4e369fde4714cd6',1,'glm']]], + ['dmat2',['dmat2',['../a00283.html#ga21dbd1f987775d7cc7607c139531c7e6',1,'glm']]], + ['dmat2x2',['dmat2x2',['../a00283.html#ga66b6a9af787e468a46dfe24189e87f9b',1,'glm']]], + ['dmat2x3',['dmat2x3',['../a00283.html#ga92cd388753d48e20de69ea2dbedf826a',1,'glm']]], + ['dmat2x4',['dmat2x4',['../a00283.html#gaef2198807e937072803ae0ae45e1965e',1,'glm']]], + ['dmat3',['dmat3',['../a00283.html#ga6f40aa56265b4b0ccad41b86802efe33',1,'glm']]], + ['dmat3x2',['dmat3x2',['../a00283.html#ga001e3e0638fbf8719788fc64c5b8cf39',1,'glm']]], + ['dmat3x3',['dmat3x3',['../a00283.html#ga970cb3306be25a5ca5db5a9456831228',1,'glm']]], + ['dmat3x4',['dmat3x4',['../a00283.html#ga0412a634d183587e6188e9b11869f8f4',1,'glm']]], + ['dmat4',['dmat4',['../a00283.html#ga0f34486bb7fec8e5a5b3830b6a6cbeca',1,'glm']]], + ['dmat4x2',['dmat4x2',['../a00283.html#ga9bc0b3ab8b6ba2cb6782e179ad7ad156',1,'glm']]], + ['dmat4x3',['dmat4x3',['../a00283.html#gacd18864049f8c83799babe7e596ca05b',1,'glm']]], + ['dmat4x4',['dmat4x4',['../a00283.html#gad5a6484b983b74f9d801cab8bc4e6a10',1,'glm']]], + ['double1',['double1',['../a00315.html#ga20b861a9b6e2a300323671c57a02525b',1,'glm']]], + ['double1x1',['double1x1',['../a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8',1,'glm']]], + ['double2',['double2',['../a00315.html#ga31b729b04facccda73f07ed26958b3c2',1,'glm']]], + ['double2x2',['double2x2',['../a00315.html#gae57d0201096834d25f2b91b319e7cdbd',1,'glm']]], + ['double2x3',['double2x3',['../a00315.html#ga3655bc324008553ca61f39952d0b2d08',1,'glm']]], + ['double2x4',['double2x4',['../a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a',1,'glm']]], + ['double3',['double3',['../a00315.html#ga3d8b9028a1053a44a98902cd1c389472',1,'glm']]], + ['double3x2',['double3x2',['../a00315.html#ga5ec08fc39c9d783dfcc488be240fe975',1,'glm']]], + ['double3x3',['double3x3',['../a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180',1,'glm']]], + ['double3x4',['double3x4',['../a00315.html#ga2ef022e453d663d70aec414b2a80f756',1,'glm']]], + ['double4',['double4',['../a00315.html#gaf92f58af24f35617518aeb3d4f63fda6',1,'glm']]], + ['double4x2',['double4x2',['../a00315.html#gabca29ccceea53669618b751aae0ba83d',1,'glm']]], + ['double4x3',['double4x3',['../a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c',1,'glm']]], + ['double4x4',['double4x4',['../a00315.html#gaab541bed2e788e4537852a2492860806',1,'glm']]], + ['dquat',['dquat',['../a00249.html#ga1181459aa5d640a3ea43861b118f3f0b',1,'glm']]], + ['dualquat',['dualquat',['../a00317.html#gae93abee0c979902fbec6a7bee0f6fae1',1,'glm']]], + ['dvec1',['dvec1',['../a00268.html#ga6221af17edc2d4477a4583d2cd53e569',1,'glm']]], + ['dvec2',['dvec2',['../a00281.html#ga8b09c71aaac7da7867ae58377fe219a8',1,'glm']]], + ['dvec3',['dvec3',['../a00281.html#ga5b83ae3d0fdec519c038e4d2cf967cf0',1,'glm']]], + ['dvec4',['dvec4',['../a00281.html#ga57debab5d98ce618f7b2a97fe26eb3ac',1,'glm']]], + ['dword',['dword',['../a00354.html#ga86e46fff9f80ae33893d8d697f2ca98a',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.html index 55ada50f09..10b9917f92 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.js index 38dae382a6..a64f129540 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_3.js @@ -1,78 +1,78 @@ -var searchData= -[ - ['f32',['f32',['../a00304.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]], - ['f32mat1',['f32mat1',['../a00346.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]], - ['f32mat1x1',['f32mat1x1',['../a00346.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]], - ['f32mat2',['f32mat2',['../a00304.html#gab12383ed6ac7595ed6fde4d266c58425',1,'glm']]], - ['f32mat2x2',['f32mat2x2',['../a00304.html#ga04100c76f7d55a0dd0983ccf05142bff',1,'glm']]], - ['f32mat2x3',['f32mat2x3',['../a00304.html#gab256cdab5eb582e426d749ae77b5b566',1,'glm']]], - ['f32mat2x4',['f32mat2x4',['../a00304.html#gaf512b74c4400b68f9fdf9388b3d6aac8',1,'glm']]], - ['f32mat3',['f32mat3',['../a00304.html#ga856f3905ee7cc2e4890a8a1d56c150be',1,'glm']]], - ['f32mat3x2',['f32mat3x2',['../a00304.html#ga1320a08e14fdff3821241eefab6947e9',1,'glm']]], - ['f32mat3x3',['f32mat3x3',['../a00304.html#ga65261fa8a21045c8646ddff114a56174',1,'glm']]], - ['f32mat3x4',['f32mat3x4',['../a00304.html#gab90ade28222f8b861d5ceaf81a3a7f5d',1,'glm']]], - ['f32mat4',['f32mat4',['../a00304.html#ga99d1b85ff99956b33da7e9992aad129a',1,'glm']]], - ['f32mat4x2',['f32mat4x2',['../a00304.html#ga3b32ca1e57a4ef91babbc3d35a34ea20',1,'glm']]], - ['f32mat4x3',['f32mat4x3',['../a00304.html#ga239b96198771b7add8eea7e6b59840c0',1,'glm']]], - ['f32mat4x4',['f32mat4x4',['../a00304.html#gaee4da0e9fbd8cfa2f89cb80889719dc3',1,'glm']]], - ['f32quat',['f32quat',['../a00304.html#ga38e674196ba411d642be40c47bf33939',1,'glm']]], - ['f32vec1',['f32vec1',['../a00304.html#ga701f32ab5b3fb06996b41f5c0d643805',1,'glm::f32vec1()'],['../a00346.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]], - ['f32vec2',['f32vec2',['../a00304.html#ga5d6c70e080409a76a257dc55bd8ea2c8',1,'glm']]], - ['f32vec3',['f32vec3',['../a00304.html#gaea5c4518e175162e306d2c2b5ef5ac79',1,'glm']]], - ['f32vec4',['f32vec4',['../a00304.html#ga31c6ca0e074a44007f49a9a3720b18c8',1,'glm']]], - ['f64',['f64',['../a00304.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]], - ['f64mat1',['f64mat1',['../a00346.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]], - ['f64mat1x1',['f64mat1x1',['../a00346.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]], - ['f64mat2',['f64mat2',['../a00304.html#gad9771450a54785d13080cdde0fe20c1d',1,'glm']]], - ['f64mat2x2',['f64mat2x2',['../a00304.html#ga9ec7c4c79e303c053e30729a95fb2c37',1,'glm']]], - ['f64mat2x3',['f64mat2x3',['../a00304.html#gae3ab5719fc4c1e966631dbbcba8d412a',1,'glm']]], - ['f64mat2x4',['f64mat2x4',['../a00304.html#gac87278e0c702ba8afff76316d4eeb769',1,'glm']]], - ['f64mat3',['f64mat3',['../a00304.html#ga9b69181efbf8f37ae934f135137b29c0',1,'glm']]], - ['f64mat3x2',['f64mat3x2',['../a00304.html#ga2473d8bf3f4abf967c4d0e18175be6f7',1,'glm']]], - ['f64mat3x3',['f64mat3x3',['../a00304.html#ga916c1aed91cf91f7b41399ebe7c6e185',1,'glm']]], - ['f64mat3x4',['f64mat3x4',['../a00304.html#gaab239fa9e35b65a67cbaa6ac082f3675',1,'glm']]], - ['f64mat4',['f64mat4',['../a00304.html#ga0ecd3f4952536e5ef12702b44d2626fc',1,'glm']]], - ['f64mat4x2',['f64mat4x2',['../a00304.html#gab7daf79d6bc06a68bea1c6f5e11b5512',1,'glm']]], - ['f64mat4x3',['f64mat4x3',['../a00304.html#ga3e2e66ffbe341a80bc005ba2b9552110',1,'glm']]], - ['f64mat4x4',['f64mat4x4',['../a00304.html#gae52e2b7077a9ff928a06ab5ce600b81e',1,'glm']]], - ['f64quat',['f64quat',['../a00304.html#ga2b114a2f2af0fe1dfeb569c767822940',1,'glm']]], - ['f64vec1',['f64vec1',['../a00304.html#gade502df1ce14f837fae7f60a03ddb9b0',1,'glm::f64vec1()'],['../a00346.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]], - ['f64vec2',['f64vec2',['../a00304.html#gadc4e1594f9555d919131ee02b17822a2',1,'glm']]], - ['f64vec3',['f64vec3',['../a00304.html#gaa7a1ddca75c5f629173bf4772db7a635',1,'glm']]], - ['f64vec4',['f64vec4',['../a00304.html#ga66e92e57260bdb910609b9a56bf83e97',1,'glm']]], - ['fdualquat',['fdualquat',['../a00317.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]], - ['float1',['float1',['../a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]], - ['float1x1',['float1x1',['../a00315.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]], - ['float2',['float2',['../a00315.html#ga02d3c013982c183906c61d74aa3166ce',1,'glm']]], - ['float2x2',['float2x2',['../a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f',1,'glm']]], - ['float2x3',['float2x3',['../a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe',1,'glm']]], - ['float2x4',['float2x4',['../a00315.html#gafec3cfd901ab334a92e0242b8f2269b4',1,'glm']]], - ['float3',['float3',['../a00315.html#ga821ff110fc8533a053cbfcc93e078cc0',1,'glm']]], - ['float32',['float32',['../a00304.html#gaacdc525d6f7bddb3ae95d5c311bd06a1',1,'glm']]], - ['float32_5ft',['float32_t',['../a00304.html#gaa4947bc8b47c72fceea9bda730ecf603',1,'glm']]], - ['float3x2',['float3x2',['../a00315.html#gaa6c69f04ba95f3faedf95dae874de576',1,'glm']]], - ['float3x3',['float3x3',['../a00315.html#ga6ceb5d38a58becdf420026e12a6562f3',1,'glm']]], - ['float3x4',['float3x4',['../a00315.html#ga4d2679c321b793ca3784fe0315bb5332',1,'glm']]], - ['float4',['float4',['../a00315.html#gae2da7345087db3815a25d8837a727ef1',1,'glm']]], - ['float4x2',['float4x2',['../a00315.html#ga308b9af0c221145bcfe9bfc129d9098e',1,'glm']]], - ['float4x3',['float4x3',['../a00315.html#gac0a51b4812038aa81d73ffcc37f741ac',1,'glm']]], - ['float4x4',['float4x4',['../a00315.html#gad3051649b3715d828a4ab92cdae7c3bf',1,'glm']]], - ['float64',['float64',['../a00304.html#ga232fad1b0d6dcc7c16aabde98b2e2a80',1,'glm']]], - ['float64_5ft',['float64_t',['../a00304.html#ga728366fef72cd96f0a5fa6429f05469e',1,'glm']]], - ['fmat2',['fmat2',['../a00304.html#ga4541dc2feb2a31d6ecb5a303f3dd3280',1,'glm']]], - ['fmat2x2',['fmat2x2',['../a00304.html#ga3350c93c3275298f940a42875388e4b4',1,'glm']]], - ['fmat2x3',['fmat2x3',['../a00304.html#ga55a2d2a8eb09b5633668257eb3cad453',1,'glm']]], - ['fmat2x4',['fmat2x4',['../a00304.html#ga681381f19f11c9e5ee45cda2c56937ff',1,'glm']]], - ['fmat3',['fmat3',['../a00304.html#ga253d453c20e037730023fea0215cb6f6',1,'glm']]], - ['fmat3x2',['fmat3x2',['../a00304.html#ga6af54d70d9beb0a7ef992a879e86b04f',1,'glm']]], - ['fmat3x3',['fmat3x3',['../a00304.html#gaa07c86650253672a19dbfb898f3265b8',1,'glm']]], - ['fmat3x4',['fmat3x4',['../a00304.html#ga44e158af77a670ee1b58c03cda9e1619',1,'glm']]], - ['fmat4',['fmat4',['../a00304.html#ga8cb400c0f4438f2640035d7b9824a0ca',1,'glm']]], - ['fmat4x2',['fmat4x2',['../a00304.html#ga8c8aa45aafcc23238edb1d5aeb801774',1,'glm']]], - ['fmat4x3',['fmat4x3',['../a00304.html#ga4295048a78bdf46b8a7de77ec665b497',1,'glm']]], - ['fmat4x4',['fmat4x4',['../a00304.html#gad01cc6479bde1fd1870f13d3ed9530b3',1,'glm']]], - ['fvec1',['fvec1',['../a00304.html#ga98b9ed43cf8c5cf1d354b23c7df9119f',1,'glm']]], - ['fvec2',['fvec2',['../a00304.html#ga24273aa02abaecaab7f160bac437a339',1,'glm']]], - ['fvec3',['fvec3',['../a00304.html#ga89930533646b30d021759298aa6bf04a',1,'glm']]], - ['fvec4',['fvec4',['../a00304.html#ga713c796c54875cf4092d42ff9d9096b0',1,'glm']]] -]; +var searchData= +[ + ['f32',['f32',['../a00304.html#gabe6a542dd6c1d5ffd847f1b9b4c9c9b7',1,'glm']]], + ['f32mat1',['f32mat1',['../a00346.html#ga145ad477a2a3e152855511c3b52469a6',1,'glm::gtx']]], + ['f32mat1x1',['f32mat1x1',['../a00346.html#gac88c6a4dbfc380aa26e3adbbade36348',1,'glm::gtx']]], + ['f32mat2',['f32mat2',['../a00304.html#gab12383ed6ac7595ed6fde4d266c58425',1,'glm']]], + ['f32mat2x2',['f32mat2x2',['../a00304.html#ga04100c76f7d55a0dd0983ccf05142bff',1,'glm']]], + ['f32mat2x3',['f32mat2x3',['../a00304.html#gab256cdab5eb582e426d749ae77b5b566',1,'glm']]], + ['f32mat2x4',['f32mat2x4',['../a00304.html#gaf512b74c4400b68f9fdf9388b3d6aac8',1,'glm']]], + ['f32mat3',['f32mat3',['../a00304.html#ga856f3905ee7cc2e4890a8a1d56c150be',1,'glm']]], + ['f32mat3x2',['f32mat3x2',['../a00304.html#ga1320a08e14fdff3821241eefab6947e9',1,'glm']]], + ['f32mat3x3',['f32mat3x3',['../a00304.html#ga65261fa8a21045c8646ddff114a56174',1,'glm']]], + ['f32mat3x4',['f32mat3x4',['../a00304.html#gab90ade28222f8b861d5ceaf81a3a7f5d',1,'glm']]], + ['f32mat4',['f32mat4',['../a00304.html#ga99d1b85ff99956b33da7e9992aad129a',1,'glm']]], + ['f32mat4x2',['f32mat4x2',['../a00304.html#ga3b32ca1e57a4ef91babbc3d35a34ea20',1,'glm']]], + ['f32mat4x3',['f32mat4x3',['../a00304.html#ga239b96198771b7add8eea7e6b59840c0',1,'glm']]], + ['f32mat4x4',['f32mat4x4',['../a00304.html#gaee4da0e9fbd8cfa2f89cb80889719dc3',1,'glm']]], + ['f32quat',['f32quat',['../a00304.html#ga38e674196ba411d642be40c47bf33939',1,'glm']]], + ['f32vec1',['f32vec1',['../a00304.html#ga701f32ab5b3fb06996b41f5c0d643805',1,'glm::f32vec1()'],['../a00346.html#ga07f8d7348eb7ae059a84c118fdfeb943',1,'glm::gtx::f32vec1()']]], + ['f32vec2',['f32vec2',['../a00304.html#ga5d6c70e080409a76a257dc55bd8ea2c8',1,'glm']]], + ['f32vec3',['f32vec3',['../a00304.html#gaea5c4518e175162e306d2c2b5ef5ac79',1,'glm']]], + ['f32vec4',['f32vec4',['../a00304.html#ga31c6ca0e074a44007f49a9a3720b18c8',1,'glm']]], + ['f64',['f64',['../a00304.html#ga1d794d240091678f602e8de225b8d8c9',1,'glm']]], + ['f64mat1',['f64mat1',['../a00346.html#ga59bfa589419b5265d01314fcecd33435',1,'glm::gtx']]], + ['f64mat1x1',['f64mat1x1',['../a00346.html#ga448eeb08d0b7d8c43a8b292c981955fd',1,'glm::gtx']]], + ['f64mat2',['f64mat2',['../a00304.html#gad9771450a54785d13080cdde0fe20c1d',1,'glm']]], + ['f64mat2x2',['f64mat2x2',['../a00304.html#ga9ec7c4c79e303c053e30729a95fb2c37',1,'glm']]], + ['f64mat2x3',['f64mat2x3',['../a00304.html#gae3ab5719fc4c1e966631dbbcba8d412a',1,'glm']]], + ['f64mat2x4',['f64mat2x4',['../a00304.html#gac87278e0c702ba8afff76316d4eeb769',1,'glm']]], + ['f64mat3',['f64mat3',['../a00304.html#ga9b69181efbf8f37ae934f135137b29c0',1,'glm']]], + ['f64mat3x2',['f64mat3x2',['../a00304.html#ga2473d8bf3f4abf967c4d0e18175be6f7',1,'glm']]], + ['f64mat3x3',['f64mat3x3',['../a00304.html#ga916c1aed91cf91f7b41399ebe7c6e185',1,'glm']]], + ['f64mat3x4',['f64mat3x4',['../a00304.html#gaab239fa9e35b65a67cbaa6ac082f3675',1,'glm']]], + ['f64mat4',['f64mat4',['../a00304.html#ga0ecd3f4952536e5ef12702b44d2626fc',1,'glm']]], + ['f64mat4x2',['f64mat4x2',['../a00304.html#gab7daf79d6bc06a68bea1c6f5e11b5512',1,'glm']]], + ['f64mat4x3',['f64mat4x3',['../a00304.html#ga3e2e66ffbe341a80bc005ba2b9552110',1,'glm']]], + ['f64mat4x4',['f64mat4x4',['../a00304.html#gae52e2b7077a9ff928a06ab5ce600b81e',1,'glm']]], + ['f64quat',['f64quat',['../a00304.html#ga2b114a2f2af0fe1dfeb569c767822940',1,'glm']]], + ['f64vec1',['f64vec1',['../a00304.html#gade502df1ce14f837fae7f60a03ddb9b0',1,'glm::f64vec1()'],['../a00346.html#gae5987a61b8c03d5c432a9e62f0b3efe1',1,'glm::gtx::f64vec1()']]], + ['f64vec2',['f64vec2',['../a00304.html#gadc4e1594f9555d919131ee02b17822a2',1,'glm']]], + ['f64vec3',['f64vec3',['../a00304.html#gaa7a1ddca75c5f629173bf4772db7a635',1,'glm']]], + ['f64vec4',['f64vec4',['../a00304.html#ga66e92e57260bdb910609b9a56bf83e97',1,'glm']]], + ['fdualquat',['fdualquat',['../a00317.html#ga237c2b9b42c9a930e49de5840ae0f930',1,'glm']]], + ['float1',['float1',['../a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead',1,'glm']]], + ['float1x1',['float1x1',['../a00315.html#ga73720b8dc4620835b17f74d428f98c0c',1,'glm']]], + ['float2',['float2',['../a00315.html#ga02d3c013982c183906c61d74aa3166ce',1,'glm']]], + ['float2x2',['float2x2',['../a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f',1,'glm']]], + ['float2x3',['float2x3',['../a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe',1,'glm']]], + ['float2x4',['float2x4',['../a00315.html#gafec3cfd901ab334a92e0242b8f2269b4',1,'glm']]], + ['float3',['float3',['../a00315.html#ga821ff110fc8533a053cbfcc93e078cc0',1,'glm']]], + ['float32',['float32',['../a00304.html#gaacdc525d6f7bddb3ae95d5c311bd06a1',1,'glm']]], + ['float32_5ft',['float32_t',['../a00304.html#gaa4947bc8b47c72fceea9bda730ecf603',1,'glm']]], + ['float3x2',['float3x2',['../a00315.html#gaa6c69f04ba95f3faedf95dae874de576',1,'glm']]], + ['float3x3',['float3x3',['../a00315.html#ga6ceb5d38a58becdf420026e12a6562f3',1,'glm']]], + ['float3x4',['float3x4',['../a00315.html#ga4d2679c321b793ca3784fe0315bb5332',1,'glm']]], + ['float4',['float4',['../a00315.html#gae2da7345087db3815a25d8837a727ef1',1,'glm']]], + ['float4x2',['float4x2',['../a00315.html#ga308b9af0c221145bcfe9bfc129d9098e',1,'glm']]], + ['float4x3',['float4x3',['../a00315.html#gac0a51b4812038aa81d73ffcc37f741ac',1,'glm']]], + ['float4x4',['float4x4',['../a00315.html#gad3051649b3715d828a4ab92cdae7c3bf',1,'glm']]], + ['float64',['float64',['../a00304.html#ga232fad1b0d6dcc7c16aabde98b2e2a80',1,'glm']]], + ['float64_5ft',['float64_t',['../a00304.html#ga728366fef72cd96f0a5fa6429f05469e',1,'glm']]], + ['fmat2',['fmat2',['../a00304.html#ga4541dc2feb2a31d6ecb5a303f3dd3280',1,'glm']]], + ['fmat2x2',['fmat2x2',['../a00304.html#ga3350c93c3275298f940a42875388e4b4',1,'glm']]], + ['fmat2x3',['fmat2x3',['../a00304.html#ga55a2d2a8eb09b5633668257eb3cad453',1,'glm']]], + ['fmat2x4',['fmat2x4',['../a00304.html#ga681381f19f11c9e5ee45cda2c56937ff',1,'glm']]], + ['fmat3',['fmat3',['../a00304.html#ga253d453c20e037730023fea0215cb6f6',1,'glm']]], + ['fmat3x2',['fmat3x2',['../a00304.html#ga6af54d70d9beb0a7ef992a879e86b04f',1,'glm']]], + ['fmat3x3',['fmat3x3',['../a00304.html#gaa07c86650253672a19dbfb898f3265b8',1,'glm']]], + ['fmat3x4',['fmat3x4',['../a00304.html#ga44e158af77a670ee1b58c03cda9e1619',1,'glm']]], + ['fmat4',['fmat4',['../a00304.html#ga8cb400c0f4438f2640035d7b9824a0ca',1,'glm']]], + ['fmat4x2',['fmat4x2',['../a00304.html#ga8c8aa45aafcc23238edb1d5aeb801774',1,'glm']]], + ['fmat4x3',['fmat4x3',['../a00304.html#ga4295048a78bdf46b8a7de77ec665b497',1,'glm']]], + ['fmat4x4',['fmat4x4',['../a00304.html#gad01cc6479bde1fd1870f13d3ed9530b3',1,'glm']]], + ['fvec1',['fvec1',['../a00304.html#ga98b9ed43cf8c5cf1d354b23c7df9119f',1,'glm']]], + ['fvec2',['fvec2',['../a00304.html#ga24273aa02abaecaab7f160bac437a339',1,'glm']]], + ['fvec3',['fvec3',['../a00304.html#ga89930533646b30d021759298aa6bf04a',1,'glm']]], + ['fvec4',['fvec4',['../a00304.html#ga713c796c54875cf4092d42ff9d9096b0',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.html index 1499151566..c1ff64d1a9 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.js index ceb078e3e0..acc3573610 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_4.js @@ -1,188 +1,188 @@ -var searchData= -[ - ['highp_5fbvec1',['highp_bvec1',['../a00266.html#gae8a1e14abae1387274f57741750c06a2',1,'glm']]], - ['highp_5fbvec2',['highp_bvec2',['../a00282.html#gac6c781a85f012d77a75310a3058702c2',1,'glm']]], - ['highp_5fbvec3',['highp_bvec3',['../a00282.html#gaedb70027d89a0a405046aefda4eabaa6',1,'glm']]], - ['highp_5fbvec4',['highp_bvec4',['../a00282.html#gaee663ff64429443ab07a5327074192f6',1,'glm']]], - ['highp_5fddualquat',['highp_ddualquat',['../a00317.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]], - ['highp_5fdmat2',['highp_dmat2',['../a00284.html#ga369b447bb1b312449b679ea1f90f3cea',1,'glm']]], - ['highp_5fdmat2x2',['highp_dmat2x2',['../a00284.html#gae27ac20302c2e39b6c78e7fe18e62ef7',1,'glm']]], - ['highp_5fdmat2x3',['highp_dmat2x3',['../a00284.html#gad4689ec33bc2c26e10132b174b49001a',1,'glm']]], - ['highp_5fdmat2x4',['highp_dmat2x4',['../a00284.html#ga5ceeb46670fdc000a0701910cc5061c9',1,'glm']]], - ['highp_5fdmat3',['highp_dmat3',['../a00284.html#ga86d6d4dbad92ffdcc759773340e15a97',1,'glm']]], - ['highp_5fdmat3x2',['highp_dmat3x2',['../a00284.html#ga3647309010a2160e9ec89bc6f7c95c35',1,'glm']]], - ['highp_5fdmat3x3',['highp_dmat3x3',['../a00284.html#gae367ea93c4ad8a7c101dd27b8b2b04ce',1,'glm']]], - ['highp_5fdmat3x4',['highp_dmat3x4',['../a00284.html#ga6543eeeb64f48d79a0b96484308c50f0',1,'glm']]], - ['highp_5fdmat4',['highp_dmat4',['../a00284.html#ga945254f459860741138bceb74da496b9',1,'glm']]], - ['highp_5fdmat4x2',['highp_dmat4x2',['../a00284.html#gaeda1f474c668eaecc443bea85a4a4eca',1,'glm']]], - ['highp_5fdmat4x3',['highp_dmat4x3',['../a00284.html#gacf237c2d8832fe8db2d7e187585d34bd',1,'glm']]], - ['highp_5fdmat4x4',['highp_dmat4x4',['../a00284.html#ga118d24a3d12c034e7cccef7bf2f01b8a',1,'glm']]], - ['highp_5fdquat',['highp_dquat',['../a00250.html#gaf13a25f41afc03480b40fc71bd249cec',1,'glm']]], - ['highp_5fdualquat',['highp_dualquat',['../a00317.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]], - ['highp_5fdvec1',['highp_dvec1',['../a00269.html#ga77c22c4426da3a6865c88d3fc907e3fe',1,'glm']]], - ['highp_5fdvec2',['highp_dvec2',['../a00282.html#gab98d77cca255914f5e29697fcbc2d975',1,'glm']]], - ['highp_5fdvec3',['highp_dvec3',['../a00282.html#gab24dc20dcdc5b71282634bdbf6b70105',1,'glm']]], - ['highp_5fdvec4',['highp_dvec4',['../a00282.html#gab654f4ed4a99d64a6cfc65320c2a7590',1,'glm']]], - ['highp_5ff32',['highp_f32',['../a00304.html#ga6906e1ef0b34064b4b675489c5c38725',1,'glm']]], - ['highp_5ff32mat2',['highp_f32mat2',['../a00304.html#ga298f7d4d273678d0282812368da27fda',1,'glm']]], - ['highp_5ff32mat2x2',['highp_f32mat2x2',['../a00304.html#gae5eb02d92b7d4605a4b7f37ae5cb2968',1,'glm']]], - ['highp_5ff32mat2x3',['highp_f32mat2x3',['../a00304.html#ga0aeb5cb001473b08c88175012708a379',1,'glm']]], - ['highp_5ff32mat2x4',['highp_f32mat2x4',['../a00304.html#ga88938ee1e7981fa3402e88da6ad74531',1,'glm']]], - ['highp_5ff32mat3',['highp_f32mat3',['../a00304.html#ga24f9ef3263b1638564713892cc37981f',1,'glm']]], - ['highp_5ff32mat3x2',['highp_f32mat3x2',['../a00304.html#ga36537e701456f12c20e73f469cac4967',1,'glm']]], - ['highp_5ff32mat3x3',['highp_f32mat3x3',['../a00304.html#gaab691ae40c37976d268d8cac0096e0e1',1,'glm']]], - ['highp_5ff32mat3x4',['highp_f32mat3x4',['../a00304.html#gaa5086dbd6efb272d13fc88829330861d',1,'glm']]], - ['highp_5ff32mat4',['highp_f32mat4',['../a00304.html#ga14c90ca49885723f51d06e295587236f',1,'glm']]], - ['highp_5ff32mat4x2',['highp_f32mat4x2',['../a00304.html#ga602e119c6b246b4f6edcf66845f2aa0f',1,'glm']]], - ['highp_5ff32mat4x3',['highp_f32mat4x3',['../a00304.html#ga66bffdd8e5c0d3ef9958bbab9ca1ba59',1,'glm']]], - ['highp_5ff32mat4x4',['highp_f32mat4x4',['../a00304.html#gaf1b712b97b2322685fbbed28febe5f84',1,'glm']]], - ['highp_5ff32quat',['highp_f32quat',['../a00304.html#ga4252cf7f5b0e3cd47c3d3badf0ef43b3',1,'glm']]], - ['highp_5ff32vec1',['highp_f32vec1',['../a00304.html#gab1b1c9e8667902b78b2c330e4d383a61',1,'glm']]], - ['highp_5ff32vec2',['highp_f32vec2',['../a00304.html#ga0b8ebd4262331e139ff257d7cf2a4b77',1,'glm']]], - ['highp_5ff32vec3',['highp_f32vec3',['../a00304.html#ga522775dbcc6d96246a1c5cf02344fd8c',1,'glm']]], - ['highp_5ff32vec4',['highp_f32vec4',['../a00304.html#ga0f038d4e09862a74f03d102c59eda73e',1,'glm']]], - ['highp_5ff64',['highp_f64',['../a00304.html#ga51d5266017d88f62737c1973923a7cf4',1,'glm']]], - ['highp_5ff64mat2',['highp_f64mat2',['../a00304.html#gaf7adb92ce8de0afaff01436b039fd924',1,'glm']]], - ['highp_5ff64mat2x2',['highp_f64mat2x2',['../a00304.html#ga773ea237a051827cfc20de960bc73ff0',1,'glm']]], - ['highp_5ff64mat2x3',['highp_f64mat2x3',['../a00304.html#ga8342c7469384c6d769cacc9e309278d9',1,'glm']]], - ['highp_5ff64mat2x4',['highp_f64mat2x4',['../a00304.html#ga5a67a7440b9c0d1538533540f99036a5',1,'glm']]], - ['highp_5ff64mat3',['highp_f64mat3',['../a00304.html#ga609bf0ace941d6ab1bb2f9522a04e546',1,'glm']]], - ['highp_5ff64mat3x2',['highp_f64mat3x2',['../a00304.html#ga5bdbfb4ce7d05ce1e1b663f50be17e8a',1,'glm']]], - ['highp_5ff64mat3x3',['highp_f64mat3x3',['../a00304.html#ga7c2cadb9b85cc7e0d125db21ca19dea4',1,'glm']]], - ['highp_5ff64mat3x4',['highp_f64mat3x4',['../a00304.html#gad310b1dddeec9ec837a104e7db8de580',1,'glm']]], - ['highp_5ff64mat4',['highp_f64mat4',['../a00304.html#gad308e0ed27d64daa4213fb257fcbd5a5',1,'glm']]], - ['highp_5ff64mat4x2',['highp_f64mat4x2',['../a00304.html#ga58c4631421e323e252fc716b6103e38c',1,'glm']]], - ['highp_5ff64mat4x3',['highp_f64mat4x3',['../a00304.html#gae94823d65648e44d972863c6caa13103',1,'glm']]], - ['highp_5ff64mat4x4',['highp_f64mat4x4',['../a00304.html#ga09a2374b725c4246d263ee36fb66434c',1,'glm']]], - ['highp_5ff64quat',['highp_f64quat',['../a00304.html#gafcfdd74a115163af2ce1093551747352',1,'glm']]], - ['highp_5ff64vec1',['highp_f64vec1',['../a00304.html#ga62c31b133ceee9984fbee05ac4c434a9',1,'glm']]], - ['highp_5ff64vec2',['highp_f64vec2',['../a00304.html#ga670ea1b0a1172bc73b1d7c1e0c26cce2',1,'glm']]], - ['highp_5ff64vec3',['highp_f64vec3',['../a00304.html#gacd1196090ece7a69fb5c3e43a7d4d851',1,'glm']]], - ['highp_5ff64vec4',['highp_f64vec4',['../a00304.html#ga61185c44c8cc0b25d9a0f67d8a267444',1,'glm']]], - ['highp_5ffdualquat',['highp_fdualquat',['../a00317.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]], - ['highp_5ffloat32',['highp_float32',['../a00304.html#gac5a7f21136e0a78d0a1b9f60ef2f8aea',1,'glm']]], - ['highp_5ffloat32_5ft',['highp_float32_t',['../a00304.html#ga5376ef18dca9d248897c3363ef5a06b2',1,'glm']]], - ['highp_5ffloat64',['highp_float64',['../a00304.html#gadbb198a4d7aad82a0f4dc466ef6f6215',1,'glm']]], - ['highp_5ffloat64_5ft',['highp_float64_t',['../a00304.html#gaaeeb0077198cff40e3f48b1108ece139',1,'glm']]], - ['highp_5ffmat2',['highp_fmat2',['../a00304.html#gae98c88d9a7befa9b5877f49176225535',1,'glm']]], - ['highp_5ffmat2x2',['highp_fmat2x2',['../a00304.html#ga28635abcddb2f3e92c33c3f0fcc682ad',1,'glm']]], - ['highp_5ffmat2x3',['highp_fmat2x3',['../a00304.html#gacf111095594996fef29067b2454fccad',1,'glm']]], - ['highp_5ffmat2x4',['highp_fmat2x4',['../a00304.html#ga4920a1536f161f7ded1d6909b7fef0d2',1,'glm']]], - ['highp_5ffmat3',['highp_fmat3',['../a00304.html#gaed2dc69e0d507d4191092dbd44b3eb75',1,'glm']]], - ['highp_5ffmat3x2',['highp_fmat3x2',['../a00304.html#gae54e4d1aeb5a0f0c64822e6f1b299e19',1,'glm']]], - ['highp_5ffmat3x3',['highp_fmat3x3',['../a00304.html#gaa5b44d3ef6efcf33f44876673a7a936e',1,'glm']]], - ['highp_5ffmat3x4',['highp_fmat3x4',['../a00304.html#ga961fac2a885907ffcf4d40daac6615c5',1,'glm']]], - ['highp_5ffmat4',['highp_fmat4',['../a00304.html#gabf28443ce0cc0959077ec39b21f32c39',1,'glm']]], - ['highp_5ffmat4x2',['highp_fmat4x2',['../a00304.html#ga076961cf2d120c7168b957cb2ed107b3',1,'glm']]], - ['highp_5ffmat4x3',['highp_fmat4x3',['../a00304.html#gae406ec670f64170a7437b5e302eeb2cb',1,'glm']]], - ['highp_5ffmat4x4',['highp_fmat4x4',['../a00304.html#gaee80c7cd3caa0f2635058656755f6f69',1,'glm']]], - ['highp_5ffvec1',['highp_fvec1',['../a00304.html#gaa1040342c4efdedc8f90e6267db8d41c',1,'glm']]], - ['highp_5ffvec2',['highp_fvec2',['../a00304.html#ga7c0d196f5fa79f7e892a2f323a0be1ae',1,'glm']]], - ['highp_5ffvec3',['highp_fvec3',['../a00304.html#ga6ef77413883f48d6b53b4169b25edbd0',1,'glm']]], - ['highp_5ffvec4',['highp_fvec4',['../a00304.html#ga8b839abbb44f5102609eed89f6ed61f7',1,'glm']]], - ['highp_5fi16',['highp_i16',['../a00304.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]], - ['highp_5fi16vec1',['highp_i16vec1',['../a00304.html#ga70fdfcc1fd38084bde83c3f06a8b9f19',1,'glm']]], - ['highp_5fi16vec2',['highp_i16vec2',['../a00304.html#gaa7db3ad10947cf70cae6474d05ebd227',1,'glm']]], - ['highp_5fi16vec3',['highp_i16vec3',['../a00304.html#ga5609c8fa2b7eac3dec337d321cb0ca96',1,'glm']]], - ['highp_5fi16vec4',['highp_i16vec4',['../a00304.html#ga7a18659438828f91ccca28f1a1e067b4',1,'glm']]], - ['highp_5fi32',['highp_i32',['../a00304.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]], - ['highp_5fi32vec1',['highp_i32vec1',['../a00304.html#ga6a9d71cc62745302f70422b7dc98755c',1,'glm']]], - ['highp_5fi32vec2',['highp_i32vec2',['../a00304.html#gaa9b4579f8e6f3d9b649a965bcb785530',1,'glm']]], - ['highp_5fi32vec3',['highp_i32vec3',['../a00304.html#ga31e070ea3bdee623e6e18a61ba5718b1',1,'glm']]], - ['highp_5fi32vec4',['highp_i32vec4',['../a00304.html#gadf70eaaa230aeed5a4c9f4c9c5c55902',1,'glm']]], - ['highp_5fi64',['highp_i64',['../a00304.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]], - ['highp_5fi64vec1',['highp_i64vec1',['../a00304.html#gabd2fda3cd208acf5a370ec9b5b3c58d4',1,'glm']]], - ['highp_5fi64vec2',['highp_i64vec2',['../a00304.html#gad9d1903cb20899966e8ebe0670889a5f',1,'glm']]], - ['highp_5fi64vec3',['highp_i64vec3',['../a00304.html#ga62324224b9c6cce9c6b4db96bb704a8a',1,'glm']]], - ['highp_5fi64vec4',['highp_i64vec4',['../a00304.html#gad23b1be9b3bf20352089a6b738f0ebba',1,'glm']]], - ['highp_5fi8',['highp_i8',['../a00304.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]], - ['highp_5fi8vec1',['highp_i8vec1',['../a00304.html#ga1d8c10949691b0fd990253476f47beb3',1,'glm']]], - ['highp_5fi8vec2',['highp_i8vec2',['../a00304.html#ga50542e4cb9b2f9bec213b66e06145d07',1,'glm']]], - ['highp_5fi8vec3',['highp_i8vec3',['../a00304.html#ga8396bfdc081d9113190d0c39c9f67084',1,'glm']]], - ['highp_5fi8vec4',['highp_i8vec4',['../a00304.html#ga4824e3ddf6e608117dfe4809430737b4',1,'glm']]], - ['highp_5fimat2',['highp_imat2',['../a00294.html#ga8499cc3b016003f835314c1c756e9db9',1,'glm']]], - ['highp_5fimat2x2',['highp_imat2x2',['../a00294.html#gaa389e2d1c3b10941cae870bc0aeba5b3',1,'glm']]], - ['highp_5fimat2x3',['highp_imat2x3',['../a00294.html#gaba49d890e06c9444795f5a133fbf1336',1,'glm']]], - ['highp_5fimat2x4',['highp_imat2x4',['../a00294.html#ga05a970fd4366dad6c8a0be676b1eae5b',1,'glm']]], - ['highp_5fimat3',['highp_imat3',['../a00294.html#gaca4506a3efa679eff7c006d9826291fd',1,'glm']]], - ['highp_5fimat3x2',['highp_imat3x2',['../a00294.html#ga91c671c3ff9706c2393e78b22fd84bcb',1,'glm']]], - ['highp_5fimat3x3',['highp_imat3x3',['../a00294.html#ga07d7b7173e2a6f843ff5f1c615a95b41',1,'glm']]], - ['highp_5fimat3x4',['highp_imat3x4',['../a00294.html#ga53008f580be99018a17b357b5a4ffc0d',1,'glm']]], - ['highp_5fimat4',['highp_imat4',['../a00294.html#ga7cfb09b34e0fcf73eaf6512d6483ef56',1,'glm']]], - ['highp_5fimat4x2',['highp_imat4x2',['../a00294.html#ga1858820fb292cae396408b2034407f72',1,'glm']]], - ['highp_5fimat4x3',['highp_imat4x3',['../a00294.html#ga6be0b80ae74bb309bc5b964d93d68fc5',1,'glm']]], - ['highp_5fimat4x4',['highp_imat4x4',['../a00294.html#ga2c783ee6f8f040ab37df2f70392c8b44',1,'glm']]], - ['highp_5fint16',['highp_int16',['../a00304.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]], - ['highp_5fint16_5ft',['highp_int16_t',['../a00304.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]], - ['highp_5fint32',['highp_int32',['../a00304.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]], - ['highp_5fint32_5ft',['highp_int32_t',['../a00304.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]], - ['highp_5fint64',['highp_int64',['../a00304.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]], - ['highp_5fint64_5ft',['highp_int64_t',['../a00304.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]], - ['highp_5fint8',['highp_int8',['../a00304.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]], - ['highp_5fint8_5ft',['highp_int8_t',['../a00304.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]], - ['highp_5fivec1',['highp_ivec1',['../a00273.html#ga7e02566f2bd2caa68e61be45a477c77e',1,'glm']]], - ['highp_5fivec2',['highp_ivec2',['../a00282.html#gaa18f6b80b41c214f10666948539c1f93',1,'glm']]], - ['highp_5fivec3',['highp_ivec3',['../a00282.html#ga7dd782c3ef5719bc6d5c3ca826b8ad18',1,'glm']]], - ['highp_5fivec4',['highp_ivec4',['../a00282.html#gafb84dccdf5d82443df3ffc8428dcaf3e',1,'glm']]], - ['highp_5fmat2',['highp_mat2',['../a00284.html#ga4d5a0055544a516237dcdace049b143d',1,'glm']]], - ['highp_5fmat2x2',['highp_mat2x2',['../a00284.html#ga2352ae43b284c9f71446674c0208c05d',1,'glm']]], - ['highp_5fmat2x3',['highp_mat2x3',['../a00284.html#ga7a0e3fe41512b0494e598f5c58722f19',1,'glm']]], - ['highp_5fmat2x4',['highp_mat2x4',['../a00284.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f',1,'glm']]], - ['highp_5fmat3',['highp_mat3',['../a00284.html#ga3fd9849f3da5ed6e3decc3fb10a20b3e',1,'glm']]], - ['highp_5fmat3x2',['highp_mat3x2',['../a00284.html#ga1eda47a00027ec440eac05d63739c71b',1,'glm']]], - ['highp_5fmat3x3',['highp_mat3x3',['../a00284.html#ga2ea82e12f4d7afcfce8f59894d400230',1,'glm']]], - ['highp_5fmat3x4',['highp_mat3x4',['../a00284.html#ga6454b3a26ea30f69de8e44c08a63d1b7',1,'glm']]], - ['highp_5fmat4',['highp_mat4',['../a00284.html#gad72e13d669d039f12ae5afa23148adc1',1,'glm']]], - ['highp_5fmat4x2',['highp_mat4x2',['../a00284.html#gab68b66e6d2c37b804d0baf970fa4f0e5',1,'glm']]], - ['highp_5fmat4x3',['highp_mat4x3',['../a00284.html#ga8d5a4e65fb976e4553b84995b95ecb38',1,'glm']]], - ['highp_5fmat4x4',['highp_mat4x4',['../a00284.html#ga58cc504be0e3b61c48bc91554a767b9f',1,'glm']]], - ['highp_5fquat',['highp_quat',['../a00253.html#gaa2fd8085774376310aeb80588e0eab6e',1,'glm']]], - ['highp_5fu16',['highp_u16',['../a00304.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]], - ['highp_5fu16vec1',['highp_u16vec1',['../a00304.html#gad064202b4cf9a2972475c03de657cb39',1,'glm']]], - ['highp_5fu16vec2',['highp_u16vec2',['../a00304.html#ga791b15ceb3f1e09d1a0ec6f3057ca159',1,'glm']]], - ['highp_5fu16vec3',['highp_u16vec3',['../a00304.html#gacfd806749008f0ade6ac4bb9dd91082f',1,'glm']]], - ['highp_5fu16vec4',['highp_u16vec4',['../a00304.html#ga8a85a3d54a8a9e14fe7a1f96196c4f61',1,'glm']]], - ['highp_5fu32',['highp_u32',['../a00304.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]], - ['highp_5fu32vec1',['highp_u32vec1',['../a00304.html#ga0e35a565b9036bfc3989f5e23a0792e3',1,'glm']]], - ['highp_5fu32vec2',['highp_u32vec2',['../a00304.html#ga2f256334f83fba4c2d219e414b51df6c',1,'glm']]], - ['highp_5fu32vec3',['highp_u32vec3',['../a00304.html#gaf14d7a50502464e7cbfa074f24684cb1',1,'glm']]], - ['highp_5fu32vec4',['highp_u32vec4',['../a00304.html#ga22166f0da65038b447f3c5e534fff1c2',1,'glm']]], - ['highp_5fu64',['highp_u64',['../a00304.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]], - ['highp_5fu64vec1',['highp_u64vec1',['../a00304.html#gae4fe774744852c4d7d069be2e05257ab',1,'glm']]], - ['highp_5fu64vec2',['highp_u64vec2',['../a00304.html#ga78f77b8b2d17b431ac5a68c0b5d7050d',1,'glm']]], - ['highp_5fu64vec3',['highp_u64vec3',['../a00304.html#ga41bdabea6e589029659331ba47eb78c1',1,'glm']]], - ['highp_5fu64vec4',['highp_u64vec4',['../a00304.html#ga4f15b41aa24b11cc42ad5798c04a2325',1,'glm']]], - ['highp_5fu8',['highp_u8',['../a00304.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]], - ['highp_5fu8vec1',['highp_u8vec1',['../a00304.html#ga8408cb76b6550ff01fa0a3024e7b68d2',1,'glm']]], - ['highp_5fu8vec2',['highp_u8vec2',['../a00304.html#ga27585b7c3ab300059f11fcba465f6fd2',1,'glm']]], - ['highp_5fu8vec3',['highp_u8vec3',['../a00304.html#ga45721c13b956eb691cbd6c6c1429167a',1,'glm']]], - ['highp_5fu8vec4',['highp_u8vec4',['../a00304.html#gae0b75ad0fed8c00ddc0b5ce335d31060',1,'glm']]], - ['highp_5fuint16',['highp_uint16',['../a00304.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]], - ['highp_5fuint16_5ft',['highp_uint16_t',['../a00304.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]], - ['highp_5fuint32',['highp_uint32',['../a00304.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]], - ['highp_5fuint32_5ft',['highp_uint32_t',['../a00304.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]], - ['highp_5fuint64',['highp_uint64',['../a00304.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]], - ['highp_5fuint64_5ft',['highp_uint64_t',['../a00304.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]], - ['highp_5fuint8',['highp_uint8',['../a00304.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]], - ['highp_5fuint8_5ft',['highp_uint8_t',['../a00304.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]], - ['highp_5fumat2',['highp_umat2',['../a00294.html#ga42cbce64c4c1cd121b8437daa6e110de',1,'glm']]], - ['highp_5fumat2x2',['highp_umat2x2',['../a00294.html#ga5337b7bc95f9cbac08a0c00b3f936b28',1,'glm']]], - ['highp_5fumat2x3',['highp_umat2x3',['../a00294.html#ga90718c7128320b24b52f9ea70e643ad4',1,'glm']]], - ['highp_5fumat2x4',['highp_umat2x4',['../a00294.html#gadca0a4724b4a6f56a2355b6f6e19248b',1,'glm']]], - ['highp_5fumat3',['highp_umat3',['../a00294.html#gaa1143120339b7d2d469d327662e8a172',1,'glm']]], - ['highp_5fumat3x2',['highp_umat3x2',['../a00294.html#ga844a5da2e7fc03fc7cccc7f1b70809c4',1,'glm']]], - ['highp_5fumat3x3',['highp_umat3x3',['../a00294.html#ga1f7d41c36b980774a4d2e7c1647fb4b2',1,'glm']]], - ['highp_5fumat3x4',['highp_umat3x4',['../a00294.html#ga25ee15c323924f2d0fe9896d329e5086',1,'glm']]], - ['highp_5fumat4',['highp_umat4',['../a00294.html#gaf665e4e78c2cc32a54ab40325738f9c9',1,'glm']]], - ['highp_5fumat4x2',['highp_umat4x2',['../a00294.html#gae69eb82ec08b0dc9bf2ead2a339ff801',1,'glm']]], - ['highp_5fumat4x3',['highp_umat4x3',['../a00294.html#ga45a8163d02c43216252056b0c120f3a5',1,'glm']]], - ['highp_5fumat4x4',['highp_umat4x4',['../a00294.html#ga6a56cbb769aed334c95241664415f9ba',1,'glm']]], - ['highp_5fuvec1',['highp_uvec1',['../a00277.html#gacda57dd8c2bff4934c7f09ddd87c0f39',1,'glm']]], - ['highp_5fuvec2',['highp_uvec2',['../a00282.html#gad5dd50da9e37387ca6b4e6f9c80fe6f8',1,'glm']]], - ['highp_5fuvec3',['highp_uvec3',['../a00282.html#gaef61508dd40ec523416697982f9ceaae',1,'glm']]], - ['highp_5fuvec4',['highp_uvec4',['../a00282.html#gaeebd7dd9f3e678691f8620241e5f9221',1,'glm']]], - ['highp_5fvec1',['highp_vec1',['../a00271.html#ga9e8ed21862a897c156c0b2abca70b1e9',1,'glm']]], - ['highp_5fvec2',['highp_vec2',['../a00282.html#gaa92c1954d71b1e7914874bd787b43d1c',1,'glm']]], - ['highp_5fvec3',['highp_vec3',['../a00282.html#gaca61dfaccbf2f58f2d8063a4e76b44a9',1,'glm']]], - ['highp_5fvec4',['highp_vec4',['../a00282.html#gad281decae52948b82feb3a9db8f63a7b',1,'glm']]] -]; +var searchData= +[ + ['highp_5fbvec1',['highp_bvec1',['../a00266.html#gae8a1e14abae1387274f57741750c06a2',1,'glm']]], + ['highp_5fbvec2',['highp_bvec2',['../a00282.html#gac6c781a85f012d77a75310a3058702c2',1,'glm']]], + ['highp_5fbvec3',['highp_bvec3',['../a00282.html#gaedb70027d89a0a405046aefda4eabaa6',1,'glm']]], + ['highp_5fbvec4',['highp_bvec4',['../a00282.html#gaee663ff64429443ab07a5327074192f6',1,'glm']]], + ['highp_5fddualquat',['highp_ddualquat',['../a00317.html#ga8f67eafa7197d7a668dad5105a463d2a',1,'glm']]], + ['highp_5fdmat2',['highp_dmat2',['../a00284.html#ga369b447bb1b312449b679ea1f90f3cea',1,'glm']]], + ['highp_5fdmat2x2',['highp_dmat2x2',['../a00284.html#gae27ac20302c2e39b6c78e7fe18e62ef7',1,'glm']]], + ['highp_5fdmat2x3',['highp_dmat2x3',['../a00284.html#gad4689ec33bc2c26e10132b174b49001a',1,'glm']]], + ['highp_5fdmat2x4',['highp_dmat2x4',['../a00284.html#ga5ceeb46670fdc000a0701910cc5061c9',1,'glm']]], + ['highp_5fdmat3',['highp_dmat3',['../a00284.html#ga86d6d4dbad92ffdcc759773340e15a97',1,'glm']]], + ['highp_5fdmat3x2',['highp_dmat3x2',['../a00284.html#ga3647309010a2160e9ec89bc6f7c95c35',1,'glm']]], + ['highp_5fdmat3x3',['highp_dmat3x3',['../a00284.html#gae367ea93c4ad8a7c101dd27b8b2b04ce',1,'glm']]], + ['highp_5fdmat3x4',['highp_dmat3x4',['../a00284.html#ga6543eeeb64f48d79a0b96484308c50f0',1,'glm']]], + ['highp_5fdmat4',['highp_dmat4',['../a00284.html#ga945254f459860741138bceb74da496b9',1,'glm']]], + ['highp_5fdmat4x2',['highp_dmat4x2',['../a00284.html#gaeda1f474c668eaecc443bea85a4a4eca',1,'glm']]], + ['highp_5fdmat4x3',['highp_dmat4x3',['../a00284.html#gacf237c2d8832fe8db2d7e187585d34bd',1,'glm']]], + ['highp_5fdmat4x4',['highp_dmat4x4',['../a00284.html#ga118d24a3d12c034e7cccef7bf2f01b8a',1,'glm']]], + ['highp_5fdquat',['highp_dquat',['../a00250.html#gaf13a25f41afc03480b40fc71bd249cec',1,'glm']]], + ['highp_5fdualquat',['highp_dualquat',['../a00317.html#ga9ef5bf1da52a9d4932335a517086ceaf',1,'glm']]], + ['highp_5fdvec1',['highp_dvec1',['../a00269.html#ga77c22c4426da3a6865c88d3fc907e3fe',1,'glm']]], + ['highp_5fdvec2',['highp_dvec2',['../a00282.html#gab98d77cca255914f5e29697fcbc2d975',1,'glm']]], + ['highp_5fdvec3',['highp_dvec3',['../a00282.html#gab24dc20dcdc5b71282634bdbf6b70105',1,'glm']]], + ['highp_5fdvec4',['highp_dvec4',['../a00282.html#gab654f4ed4a99d64a6cfc65320c2a7590',1,'glm']]], + ['highp_5ff32',['highp_f32',['../a00304.html#ga6906e1ef0b34064b4b675489c5c38725',1,'glm']]], + ['highp_5ff32mat2',['highp_f32mat2',['../a00304.html#ga298f7d4d273678d0282812368da27fda',1,'glm']]], + ['highp_5ff32mat2x2',['highp_f32mat2x2',['../a00304.html#gae5eb02d92b7d4605a4b7f37ae5cb2968',1,'glm']]], + ['highp_5ff32mat2x3',['highp_f32mat2x3',['../a00304.html#ga0aeb5cb001473b08c88175012708a379',1,'glm']]], + ['highp_5ff32mat2x4',['highp_f32mat2x4',['../a00304.html#ga88938ee1e7981fa3402e88da6ad74531',1,'glm']]], + ['highp_5ff32mat3',['highp_f32mat3',['../a00304.html#ga24f9ef3263b1638564713892cc37981f',1,'glm']]], + ['highp_5ff32mat3x2',['highp_f32mat3x2',['../a00304.html#ga36537e701456f12c20e73f469cac4967',1,'glm']]], + ['highp_5ff32mat3x3',['highp_f32mat3x3',['../a00304.html#gaab691ae40c37976d268d8cac0096e0e1',1,'glm']]], + ['highp_5ff32mat3x4',['highp_f32mat3x4',['../a00304.html#gaa5086dbd6efb272d13fc88829330861d',1,'glm']]], + ['highp_5ff32mat4',['highp_f32mat4',['../a00304.html#ga14c90ca49885723f51d06e295587236f',1,'glm']]], + ['highp_5ff32mat4x2',['highp_f32mat4x2',['../a00304.html#ga602e119c6b246b4f6edcf66845f2aa0f',1,'glm']]], + ['highp_5ff32mat4x3',['highp_f32mat4x3',['../a00304.html#ga66bffdd8e5c0d3ef9958bbab9ca1ba59',1,'glm']]], + ['highp_5ff32mat4x4',['highp_f32mat4x4',['../a00304.html#gaf1b712b97b2322685fbbed28febe5f84',1,'glm']]], + ['highp_5ff32quat',['highp_f32quat',['../a00304.html#ga4252cf7f5b0e3cd47c3d3badf0ef43b3',1,'glm']]], + ['highp_5ff32vec1',['highp_f32vec1',['../a00304.html#gab1b1c9e8667902b78b2c330e4d383a61',1,'glm']]], + ['highp_5ff32vec2',['highp_f32vec2',['../a00304.html#ga0b8ebd4262331e139ff257d7cf2a4b77',1,'glm']]], + ['highp_5ff32vec3',['highp_f32vec3',['../a00304.html#ga522775dbcc6d96246a1c5cf02344fd8c',1,'glm']]], + ['highp_5ff32vec4',['highp_f32vec4',['../a00304.html#ga0f038d4e09862a74f03d102c59eda73e',1,'glm']]], + ['highp_5ff64',['highp_f64',['../a00304.html#ga51d5266017d88f62737c1973923a7cf4',1,'glm']]], + ['highp_5ff64mat2',['highp_f64mat2',['../a00304.html#gaf7adb92ce8de0afaff01436b039fd924',1,'glm']]], + ['highp_5ff64mat2x2',['highp_f64mat2x2',['../a00304.html#ga773ea237a051827cfc20de960bc73ff0',1,'glm']]], + ['highp_5ff64mat2x3',['highp_f64mat2x3',['../a00304.html#ga8342c7469384c6d769cacc9e309278d9',1,'glm']]], + ['highp_5ff64mat2x4',['highp_f64mat2x4',['../a00304.html#ga5a67a7440b9c0d1538533540f99036a5',1,'glm']]], + ['highp_5ff64mat3',['highp_f64mat3',['../a00304.html#ga609bf0ace941d6ab1bb2f9522a04e546',1,'glm']]], + ['highp_5ff64mat3x2',['highp_f64mat3x2',['../a00304.html#ga5bdbfb4ce7d05ce1e1b663f50be17e8a',1,'glm']]], + ['highp_5ff64mat3x3',['highp_f64mat3x3',['../a00304.html#ga7c2cadb9b85cc7e0d125db21ca19dea4',1,'glm']]], + ['highp_5ff64mat3x4',['highp_f64mat3x4',['../a00304.html#gad310b1dddeec9ec837a104e7db8de580',1,'glm']]], + ['highp_5ff64mat4',['highp_f64mat4',['../a00304.html#gad308e0ed27d64daa4213fb257fcbd5a5',1,'glm']]], + ['highp_5ff64mat4x2',['highp_f64mat4x2',['../a00304.html#ga58c4631421e323e252fc716b6103e38c',1,'glm']]], + ['highp_5ff64mat4x3',['highp_f64mat4x3',['../a00304.html#gae94823d65648e44d972863c6caa13103',1,'glm']]], + ['highp_5ff64mat4x4',['highp_f64mat4x4',['../a00304.html#ga09a2374b725c4246d263ee36fb66434c',1,'glm']]], + ['highp_5ff64quat',['highp_f64quat',['../a00304.html#gafcfdd74a115163af2ce1093551747352',1,'glm']]], + ['highp_5ff64vec1',['highp_f64vec1',['../a00304.html#ga62c31b133ceee9984fbee05ac4c434a9',1,'glm']]], + ['highp_5ff64vec2',['highp_f64vec2',['../a00304.html#ga670ea1b0a1172bc73b1d7c1e0c26cce2',1,'glm']]], + ['highp_5ff64vec3',['highp_f64vec3',['../a00304.html#gacd1196090ece7a69fb5c3e43a7d4d851',1,'glm']]], + ['highp_5ff64vec4',['highp_f64vec4',['../a00304.html#ga61185c44c8cc0b25d9a0f67d8a267444',1,'glm']]], + ['highp_5ffdualquat',['highp_fdualquat',['../a00317.html#ga4c4e55e9c99dc57b299ed590968da564',1,'glm']]], + ['highp_5ffloat32',['highp_float32',['../a00304.html#gac5a7f21136e0a78d0a1b9f60ef2f8aea',1,'glm']]], + ['highp_5ffloat32_5ft',['highp_float32_t',['../a00304.html#ga5376ef18dca9d248897c3363ef5a06b2',1,'glm']]], + ['highp_5ffloat64',['highp_float64',['../a00304.html#gadbb198a4d7aad82a0f4dc466ef6f6215',1,'glm']]], + ['highp_5ffloat64_5ft',['highp_float64_t',['../a00304.html#gaaeeb0077198cff40e3f48b1108ece139',1,'glm']]], + ['highp_5ffmat2',['highp_fmat2',['../a00304.html#gae98c88d9a7befa9b5877f49176225535',1,'glm']]], + ['highp_5ffmat2x2',['highp_fmat2x2',['../a00304.html#ga28635abcddb2f3e92c33c3f0fcc682ad',1,'glm']]], + ['highp_5ffmat2x3',['highp_fmat2x3',['../a00304.html#gacf111095594996fef29067b2454fccad',1,'glm']]], + ['highp_5ffmat2x4',['highp_fmat2x4',['../a00304.html#ga4920a1536f161f7ded1d6909b7fef0d2',1,'glm']]], + ['highp_5ffmat3',['highp_fmat3',['../a00304.html#gaed2dc69e0d507d4191092dbd44b3eb75',1,'glm']]], + ['highp_5ffmat3x2',['highp_fmat3x2',['../a00304.html#gae54e4d1aeb5a0f0c64822e6f1b299e19',1,'glm']]], + ['highp_5ffmat3x3',['highp_fmat3x3',['../a00304.html#gaa5b44d3ef6efcf33f44876673a7a936e',1,'glm']]], + ['highp_5ffmat3x4',['highp_fmat3x4',['../a00304.html#ga961fac2a885907ffcf4d40daac6615c5',1,'glm']]], + ['highp_5ffmat4',['highp_fmat4',['../a00304.html#gabf28443ce0cc0959077ec39b21f32c39',1,'glm']]], + ['highp_5ffmat4x2',['highp_fmat4x2',['../a00304.html#ga076961cf2d120c7168b957cb2ed107b3',1,'glm']]], + ['highp_5ffmat4x3',['highp_fmat4x3',['../a00304.html#gae406ec670f64170a7437b5e302eeb2cb',1,'glm']]], + ['highp_5ffmat4x4',['highp_fmat4x4',['../a00304.html#gaee80c7cd3caa0f2635058656755f6f69',1,'glm']]], + ['highp_5ffvec1',['highp_fvec1',['../a00304.html#gaa1040342c4efdedc8f90e6267db8d41c',1,'glm']]], + ['highp_5ffvec2',['highp_fvec2',['../a00304.html#ga7c0d196f5fa79f7e892a2f323a0be1ae',1,'glm']]], + ['highp_5ffvec3',['highp_fvec3',['../a00304.html#ga6ef77413883f48d6b53b4169b25edbd0',1,'glm']]], + ['highp_5ffvec4',['highp_fvec4',['../a00304.html#ga8b839abbb44f5102609eed89f6ed61f7',1,'glm']]], + ['highp_5fi16',['highp_i16',['../a00304.html#ga0336abc2604dd2c20c30e036454b64f8',1,'glm']]], + ['highp_5fi16vec1',['highp_i16vec1',['../a00304.html#ga70fdfcc1fd38084bde83c3f06a8b9f19',1,'glm']]], + ['highp_5fi16vec2',['highp_i16vec2',['../a00304.html#gaa7db3ad10947cf70cae6474d05ebd227',1,'glm']]], + ['highp_5fi16vec3',['highp_i16vec3',['../a00304.html#ga5609c8fa2b7eac3dec337d321cb0ca96',1,'glm']]], + ['highp_5fi16vec4',['highp_i16vec4',['../a00304.html#ga7a18659438828f91ccca28f1a1e067b4',1,'glm']]], + ['highp_5fi32',['highp_i32',['../a00304.html#ga727675ac6b5d2fc699520e0059735e25',1,'glm']]], + ['highp_5fi32vec1',['highp_i32vec1',['../a00304.html#ga6a9d71cc62745302f70422b7dc98755c',1,'glm']]], + ['highp_5fi32vec2',['highp_i32vec2',['../a00304.html#gaa9b4579f8e6f3d9b649a965bcb785530',1,'glm']]], + ['highp_5fi32vec3',['highp_i32vec3',['../a00304.html#ga31e070ea3bdee623e6e18a61ba5718b1',1,'glm']]], + ['highp_5fi32vec4',['highp_i32vec4',['../a00304.html#gadf70eaaa230aeed5a4c9f4c9c5c55902',1,'glm']]], + ['highp_5fi64',['highp_i64',['../a00304.html#gac25db6d2b1e2a0f351b77ba3409ac4cd',1,'glm']]], + ['highp_5fi64vec1',['highp_i64vec1',['../a00304.html#gabd2fda3cd208acf5a370ec9b5b3c58d4',1,'glm']]], + ['highp_5fi64vec2',['highp_i64vec2',['../a00304.html#gad9d1903cb20899966e8ebe0670889a5f',1,'glm']]], + ['highp_5fi64vec3',['highp_i64vec3',['../a00304.html#ga62324224b9c6cce9c6b4db96bb704a8a',1,'glm']]], + ['highp_5fi64vec4',['highp_i64vec4',['../a00304.html#gad23b1be9b3bf20352089a6b738f0ebba',1,'glm']]], + ['highp_5fi8',['highp_i8',['../a00304.html#gacb88796f2d08ef253d0345aff20c3aee',1,'glm']]], + ['highp_5fi8vec1',['highp_i8vec1',['../a00304.html#ga1d8c10949691b0fd990253476f47beb3',1,'glm']]], + ['highp_5fi8vec2',['highp_i8vec2',['../a00304.html#ga50542e4cb9b2f9bec213b66e06145d07',1,'glm']]], + ['highp_5fi8vec3',['highp_i8vec3',['../a00304.html#ga8396bfdc081d9113190d0c39c9f67084',1,'glm']]], + ['highp_5fi8vec4',['highp_i8vec4',['../a00304.html#ga4824e3ddf6e608117dfe4809430737b4',1,'glm']]], + ['highp_5fimat2',['highp_imat2',['../a00294.html#ga8499cc3b016003f835314c1c756e9db9',1,'glm']]], + ['highp_5fimat2x2',['highp_imat2x2',['../a00294.html#gaa389e2d1c3b10941cae870bc0aeba5b3',1,'glm']]], + ['highp_5fimat2x3',['highp_imat2x3',['../a00294.html#gaba49d890e06c9444795f5a133fbf1336',1,'glm']]], + ['highp_5fimat2x4',['highp_imat2x4',['../a00294.html#ga05a970fd4366dad6c8a0be676b1eae5b',1,'glm']]], + ['highp_5fimat3',['highp_imat3',['../a00294.html#gaca4506a3efa679eff7c006d9826291fd',1,'glm']]], + ['highp_5fimat3x2',['highp_imat3x2',['../a00294.html#ga91c671c3ff9706c2393e78b22fd84bcb',1,'glm']]], + ['highp_5fimat3x3',['highp_imat3x3',['../a00294.html#ga07d7b7173e2a6f843ff5f1c615a95b41',1,'glm']]], + ['highp_5fimat3x4',['highp_imat3x4',['../a00294.html#ga53008f580be99018a17b357b5a4ffc0d',1,'glm']]], + ['highp_5fimat4',['highp_imat4',['../a00294.html#ga7cfb09b34e0fcf73eaf6512d6483ef56',1,'glm']]], + ['highp_5fimat4x2',['highp_imat4x2',['../a00294.html#ga1858820fb292cae396408b2034407f72',1,'glm']]], + ['highp_5fimat4x3',['highp_imat4x3',['../a00294.html#ga6be0b80ae74bb309bc5b964d93d68fc5',1,'glm']]], + ['highp_5fimat4x4',['highp_imat4x4',['../a00294.html#ga2c783ee6f8f040ab37df2f70392c8b44',1,'glm']]], + ['highp_5fint16',['highp_int16',['../a00304.html#ga5fde0fa4a3852a9dd5d637a92ee74718',1,'glm']]], + ['highp_5fint16_5ft',['highp_int16_t',['../a00304.html#gacaea06d0a79ef3172e887a7a6ba434ff',1,'glm']]], + ['highp_5fint32',['highp_int32',['../a00304.html#ga84ed04b4e0de18c977e932d617e7c223',1,'glm']]], + ['highp_5fint32_5ft',['highp_int32_t',['../a00304.html#ga2c71c8bd9e2fe7d2e93ca250d8b6157f',1,'glm']]], + ['highp_5fint64',['highp_int64',['../a00304.html#ga226a8d52b4e3f77aaa6231135e886aac',1,'glm']]], + ['highp_5fint64_5ft',['highp_int64_t',['../a00304.html#ga73c6abb280a45feeff60f9accaee91f3',1,'glm']]], + ['highp_5fint8',['highp_int8',['../a00304.html#gad0549c902a96a7164e4ac858d5f39dbf',1,'glm']]], + ['highp_5fint8_5ft',['highp_int8_t',['../a00304.html#ga1085c50dd8fbeb5e7e609b1c127492a5',1,'glm']]], + ['highp_5fivec1',['highp_ivec1',['../a00273.html#ga7e02566f2bd2caa68e61be45a477c77e',1,'glm']]], + ['highp_5fivec2',['highp_ivec2',['../a00282.html#gaa18f6b80b41c214f10666948539c1f93',1,'glm']]], + ['highp_5fivec3',['highp_ivec3',['../a00282.html#ga7dd782c3ef5719bc6d5c3ca826b8ad18',1,'glm']]], + ['highp_5fivec4',['highp_ivec4',['../a00282.html#gafb84dccdf5d82443df3ffc8428dcaf3e',1,'glm']]], + ['highp_5fmat2',['highp_mat2',['../a00284.html#ga4d5a0055544a516237dcdace049b143d',1,'glm']]], + ['highp_5fmat2x2',['highp_mat2x2',['../a00284.html#ga2352ae43b284c9f71446674c0208c05d',1,'glm']]], + ['highp_5fmat2x3',['highp_mat2x3',['../a00284.html#ga7a0e3fe41512b0494e598f5c58722f19',1,'glm']]], + ['highp_5fmat2x4',['highp_mat2x4',['../a00284.html#ga61f36a81f2ed1b5f9fc8bc3b26faec8f',1,'glm']]], + ['highp_5fmat3',['highp_mat3',['../a00284.html#ga3fd9849f3da5ed6e3decc3fb10a20b3e',1,'glm']]], + ['highp_5fmat3x2',['highp_mat3x2',['../a00284.html#ga1eda47a00027ec440eac05d63739c71b',1,'glm']]], + ['highp_5fmat3x3',['highp_mat3x3',['../a00284.html#ga2ea82e12f4d7afcfce8f59894d400230',1,'glm']]], + ['highp_5fmat3x4',['highp_mat3x4',['../a00284.html#ga6454b3a26ea30f69de8e44c08a63d1b7',1,'glm']]], + ['highp_5fmat4',['highp_mat4',['../a00284.html#gad72e13d669d039f12ae5afa23148adc1',1,'glm']]], + ['highp_5fmat4x2',['highp_mat4x2',['../a00284.html#gab68b66e6d2c37b804d0baf970fa4f0e5',1,'glm']]], + ['highp_5fmat4x3',['highp_mat4x3',['../a00284.html#ga8d5a4e65fb976e4553b84995b95ecb38',1,'glm']]], + ['highp_5fmat4x4',['highp_mat4x4',['../a00284.html#ga58cc504be0e3b61c48bc91554a767b9f',1,'glm']]], + ['highp_5fquat',['highp_quat',['../a00253.html#gaa2fd8085774376310aeb80588e0eab6e',1,'glm']]], + ['highp_5fu16',['highp_u16',['../a00304.html#ga8e62c883d13f47015f3b70ed88751369',1,'glm']]], + ['highp_5fu16vec1',['highp_u16vec1',['../a00304.html#gad064202b4cf9a2972475c03de657cb39',1,'glm']]], + ['highp_5fu16vec2',['highp_u16vec2',['../a00304.html#ga791b15ceb3f1e09d1a0ec6f3057ca159',1,'glm']]], + ['highp_5fu16vec3',['highp_u16vec3',['../a00304.html#gacfd806749008f0ade6ac4bb9dd91082f',1,'glm']]], + ['highp_5fu16vec4',['highp_u16vec4',['../a00304.html#ga8a85a3d54a8a9e14fe7a1f96196c4f61',1,'glm']]], + ['highp_5fu32',['highp_u32',['../a00304.html#ga7a6f1929464dcc680b16381a4ee5f2cf',1,'glm']]], + ['highp_5fu32vec1',['highp_u32vec1',['../a00304.html#ga0e35a565b9036bfc3989f5e23a0792e3',1,'glm']]], + ['highp_5fu32vec2',['highp_u32vec2',['../a00304.html#ga2f256334f83fba4c2d219e414b51df6c',1,'glm']]], + ['highp_5fu32vec3',['highp_u32vec3',['../a00304.html#gaf14d7a50502464e7cbfa074f24684cb1',1,'glm']]], + ['highp_5fu32vec4',['highp_u32vec4',['../a00304.html#ga22166f0da65038b447f3c5e534fff1c2',1,'glm']]], + ['highp_5fu64',['highp_u64',['../a00304.html#ga0c181fdf06a309691999926b6690c969',1,'glm']]], + ['highp_5fu64vec1',['highp_u64vec1',['../a00304.html#gae4fe774744852c4d7d069be2e05257ab',1,'glm']]], + ['highp_5fu64vec2',['highp_u64vec2',['../a00304.html#ga78f77b8b2d17b431ac5a68c0b5d7050d',1,'glm']]], + ['highp_5fu64vec3',['highp_u64vec3',['../a00304.html#ga41bdabea6e589029659331ba47eb78c1',1,'glm']]], + ['highp_5fu64vec4',['highp_u64vec4',['../a00304.html#ga4f15b41aa24b11cc42ad5798c04a2325',1,'glm']]], + ['highp_5fu8',['highp_u8',['../a00304.html#gacd1259f3a9e8d2a9df5be2d74322ef9c',1,'glm']]], + ['highp_5fu8vec1',['highp_u8vec1',['../a00304.html#ga8408cb76b6550ff01fa0a3024e7b68d2',1,'glm']]], + ['highp_5fu8vec2',['highp_u8vec2',['../a00304.html#ga27585b7c3ab300059f11fcba465f6fd2',1,'glm']]], + ['highp_5fu8vec3',['highp_u8vec3',['../a00304.html#ga45721c13b956eb691cbd6c6c1429167a',1,'glm']]], + ['highp_5fu8vec4',['highp_u8vec4',['../a00304.html#gae0b75ad0fed8c00ddc0b5ce335d31060',1,'glm']]], + ['highp_5fuint16',['highp_uint16',['../a00304.html#ga746dc6da204f5622e395f492997dbf57',1,'glm']]], + ['highp_5fuint16_5ft',['highp_uint16_t',['../a00304.html#gacf54c3330ef60aa3d16cb676c7bcb8c7',1,'glm']]], + ['highp_5fuint32',['highp_uint32',['../a00304.html#ga256b12b650c3f2fb86878fd1c5db8bc3',1,'glm']]], + ['highp_5fuint32_5ft',['highp_uint32_t',['../a00304.html#gae978599c9711ac263ba732d4ac225b0e',1,'glm']]], + ['highp_5fuint64',['highp_uint64',['../a00304.html#gaa38d732f5d4a7bc42a1b43b9d3c141ce',1,'glm']]], + ['highp_5fuint64_5ft',['highp_uint64_t',['../a00304.html#gaa46172d7dc1c7ffe3e78107ff88adf08',1,'glm']]], + ['highp_5fuint8',['highp_uint8',['../a00304.html#ga97432f9979e73e66567361fd01e4cffb',1,'glm']]], + ['highp_5fuint8_5ft',['highp_uint8_t',['../a00304.html#gac4e00a26a2adb5f2c0a7096810df29e5',1,'glm']]], + ['highp_5fumat2',['highp_umat2',['../a00294.html#ga42cbce64c4c1cd121b8437daa6e110de',1,'glm']]], + ['highp_5fumat2x2',['highp_umat2x2',['../a00294.html#ga5337b7bc95f9cbac08a0c00b3f936b28',1,'glm']]], + ['highp_5fumat2x3',['highp_umat2x3',['../a00294.html#ga90718c7128320b24b52f9ea70e643ad4',1,'glm']]], + ['highp_5fumat2x4',['highp_umat2x4',['../a00294.html#gadca0a4724b4a6f56a2355b6f6e19248b',1,'glm']]], + ['highp_5fumat3',['highp_umat3',['../a00294.html#gaa1143120339b7d2d469d327662e8a172',1,'glm']]], + ['highp_5fumat3x2',['highp_umat3x2',['../a00294.html#ga844a5da2e7fc03fc7cccc7f1b70809c4',1,'glm']]], + ['highp_5fumat3x3',['highp_umat3x3',['../a00294.html#ga1f7d41c36b980774a4d2e7c1647fb4b2',1,'glm']]], + ['highp_5fumat3x4',['highp_umat3x4',['../a00294.html#ga25ee15c323924f2d0fe9896d329e5086',1,'glm']]], + ['highp_5fumat4',['highp_umat4',['../a00294.html#gaf665e4e78c2cc32a54ab40325738f9c9',1,'glm']]], + ['highp_5fumat4x2',['highp_umat4x2',['../a00294.html#gae69eb82ec08b0dc9bf2ead2a339ff801',1,'glm']]], + ['highp_5fumat4x3',['highp_umat4x3',['../a00294.html#ga45a8163d02c43216252056b0c120f3a5',1,'glm']]], + ['highp_5fumat4x4',['highp_umat4x4',['../a00294.html#ga6a56cbb769aed334c95241664415f9ba',1,'glm']]], + ['highp_5fuvec1',['highp_uvec1',['../a00277.html#gacda57dd8c2bff4934c7f09ddd87c0f39',1,'glm']]], + ['highp_5fuvec2',['highp_uvec2',['../a00282.html#gad5dd50da9e37387ca6b4e6f9c80fe6f8',1,'glm']]], + ['highp_5fuvec3',['highp_uvec3',['../a00282.html#gaef61508dd40ec523416697982f9ceaae',1,'glm']]], + ['highp_5fuvec4',['highp_uvec4',['../a00282.html#gaeebd7dd9f3e678691f8620241e5f9221',1,'glm']]], + ['highp_5fvec1',['highp_vec1',['../a00271.html#ga9e8ed21862a897c156c0b2abca70b1e9',1,'glm']]], + ['highp_5fvec2',['highp_vec2',['../a00282.html#gaa92c1954d71b1e7914874bd787b43d1c',1,'glm']]], + ['highp_5fvec3',['highp_vec3',['../a00282.html#gaca61dfaccbf2f58f2d8063a4e76b44a9',1,'glm']]], + ['highp_5fvec4',['highp_vec4',['../a00282.html#gad281decae52948b82feb3a9db8f63a7b',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.html index dd4db3ba88..14adc8ed8c 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.js index 48d2a6fe51..39c29f2847 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_5.js @@ -1,61 +1,61 @@ -var searchData= -[ - ['i16',['i16',['../a00304.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]], - ['i16vec1',['i16vec1',['../a00304.html#gafe730798732aa7b0647096a004db1b1c',1,'glm']]], - ['i16vec2',['i16vec2',['../a00304.html#ga2996630ba7b10535af8e065cf326f761',1,'glm']]], - ['i16vec3',['i16vec3',['../a00304.html#gae9c90a867a6026b1f6eab00456f3fb8b',1,'glm']]], - ['i16vec4',['i16vec4',['../a00304.html#ga550831bfc26d1e0101c1cb3d79938c06',1,'glm']]], - ['i32',['i32',['../a00304.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]], - ['i32vec1',['i32vec1',['../a00304.html#ga54b8a4e0f5a7203a821bf8e9c1265bcf',1,'glm']]], - ['i32vec2',['i32vec2',['../a00304.html#ga8b44026374982dcd1e52d22bac99247e',1,'glm']]], - ['i32vec3',['i32vec3',['../a00304.html#ga7f526b5cccef126a2ebcf9bdd890394e',1,'glm']]], - ['i32vec4',['i32vec4',['../a00304.html#ga866a05905c49912309ed1fa5f5980e61',1,'glm']]], - ['i64',['i64',['../a00304.html#gadb997e409103d4da18abd837e636a496',1,'glm']]], - ['i64vec1',['i64vec1',['../a00304.html#ga2b65767f8b5aed1bd1cf86c541662b50',1,'glm']]], - ['i64vec2',['i64vec2',['../a00304.html#ga48310188e1d0c616bf8d78c92447523b',1,'glm']]], - ['i64vec3',['i64vec3',['../a00304.html#ga667948cfe6fb3d6606c750729ec49f77',1,'glm']]], - ['i64vec4',['i64vec4',['../a00304.html#gaa4e31c3d9de067029efeb161a44b0232',1,'glm']]], - ['i8',['i8',['../a00304.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]], - ['i8vec1',['i8vec1',['../a00304.html#ga7e80d927ff0a3861ced68dfff8a4020b',1,'glm']]], - ['i8vec2',['i8vec2',['../a00304.html#gad06935764d78f43f9d542c784c2212ec',1,'glm']]], - ['i8vec3',['i8vec3',['../a00304.html#ga5a08d36cf7917cd19d081a603d0eae3e',1,'glm']]], - ['i8vec4',['i8vec4',['../a00304.html#ga4177a44206121dabc8c4ff1c0f544574',1,'glm']]], - ['imat2',['imat2',['../a00294.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]], - ['imat2x2',['imat2x2',['../a00294.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]], - ['imat2x3',['imat2x3',['../a00294.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]], - ['imat2x4',['imat2x4',['../a00294.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]], - ['imat3',['imat3',['../a00294.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]], - ['imat3x2',['imat3x2',['../a00294.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]], - ['imat3x3',['imat3x3',['../a00294.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]], - ['imat3x4',['imat3x4',['../a00294.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]], - ['imat4',['imat4',['../a00294.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]], - ['imat4x2',['imat4x2',['../a00294.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]], - ['imat4x3',['imat4x3',['../a00294.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]], - ['imat4x4',['imat4x4',['../a00294.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]], - ['int1',['int1',['../a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]], - ['int16',['int16',['../a00260.html#ga259fa4834387bd68627ddf37bb3ebdb9',1,'glm']]], - ['int16_5ft',['int16_t',['../a00304.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]], - ['int1x1',['int1x1',['../a00315.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]], - ['int2',['int2',['../a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a',1,'glm']]], - ['int2x2',['int2x2',['../a00315.html#ga4e5ce477c15836b21e3c42daac68554d',1,'glm']]], - ['int2x3',['int2x3',['../a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3',1,'glm']]], - ['int2x4',['int2x4',['../a00315.html#ga2749d59a7fddbac44f34ba78e57ef807',1,'glm']]], - ['int3',['int3',['../a00315.html#ga909c38a425f215a50c847145d7da09f0',1,'glm']]], - ['int32',['int32',['../a00260.html#ga43d43196463bde49cb067f5c20ab8481',1,'glm']]], - ['int32_5ft',['int32_t',['../a00304.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]], - ['int3x2',['int3x2',['../a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8',1,'glm']]], - ['int3x3',['int3x3',['../a00315.html#ga15c9649286f0bf431bdf9b3509580048',1,'glm']]], - ['int3x4',['int3x4',['../a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f',1,'glm']]], - ['int4',['int4',['../a00315.html#gaecdef18c819c205aeee9f94dc93de56a',1,'glm']]], - ['int4x2',['int4x2',['../a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1',1,'glm']]], - ['int4x3',['int4x3',['../a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d',1,'glm']]], - ['int4x4',['int4x4',['../a00315.html#ga04dee1552424198b8f58b377c2ee00d8',1,'glm']]], - ['int64',['int64',['../a00260.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]], - ['int64_5ft',['int64_t',['../a00304.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]], - ['int8',['int8',['../a00260.html#ga1b956fe1df85f3c132b21edb4e116458',1,'glm']]], - ['int8_5ft',['int8_t',['../a00304.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]], - ['ivec1',['ivec1',['../a00272.html#gaedd0562c2e77714929d7723a7e2e0dba',1,'glm']]], - ['ivec2',['ivec2',['../a00281.html#ga6f9269106d91b2d2b91bcf27cd5f5560',1,'glm']]], - ['ivec3',['ivec3',['../a00281.html#gad0d784d8eee201aca362484d2daee46c',1,'glm']]], - ['ivec4',['ivec4',['../a00281.html#ga5abb4603dae0ce58c595e66d9123d812',1,'glm']]] -]; +var searchData= +[ + ['i16',['i16',['../a00304.html#ga3ab5fe184343d394fb6c2723c3ee3699',1,'glm']]], + ['i16vec1',['i16vec1',['../a00304.html#gafe730798732aa7b0647096a004db1b1c',1,'glm']]], + ['i16vec2',['i16vec2',['../a00304.html#ga2996630ba7b10535af8e065cf326f761',1,'glm']]], + ['i16vec3',['i16vec3',['../a00304.html#gae9c90a867a6026b1f6eab00456f3fb8b',1,'glm']]], + ['i16vec4',['i16vec4',['../a00304.html#ga550831bfc26d1e0101c1cb3d79938c06',1,'glm']]], + ['i32',['i32',['../a00304.html#ga96faea43ac5f875d2d3ffbf8d213e3eb',1,'glm']]], + ['i32vec1',['i32vec1',['../a00304.html#ga54b8a4e0f5a7203a821bf8e9c1265bcf',1,'glm']]], + ['i32vec2',['i32vec2',['../a00304.html#ga8b44026374982dcd1e52d22bac99247e',1,'glm']]], + ['i32vec3',['i32vec3',['../a00304.html#ga7f526b5cccef126a2ebcf9bdd890394e',1,'glm']]], + ['i32vec4',['i32vec4',['../a00304.html#ga866a05905c49912309ed1fa5f5980e61',1,'glm']]], + ['i64',['i64',['../a00304.html#gadb997e409103d4da18abd837e636a496',1,'glm']]], + ['i64vec1',['i64vec1',['../a00304.html#ga2b65767f8b5aed1bd1cf86c541662b50',1,'glm']]], + ['i64vec2',['i64vec2',['../a00304.html#ga48310188e1d0c616bf8d78c92447523b',1,'glm']]], + ['i64vec3',['i64vec3',['../a00304.html#ga667948cfe6fb3d6606c750729ec49f77',1,'glm']]], + ['i64vec4',['i64vec4',['../a00304.html#gaa4e31c3d9de067029efeb161a44b0232',1,'glm']]], + ['i8',['i8',['../a00304.html#ga302ec977b0c0c3ea245b6c9275495355',1,'glm']]], + ['i8vec1',['i8vec1',['../a00304.html#ga7e80d927ff0a3861ced68dfff8a4020b',1,'glm']]], + ['i8vec2',['i8vec2',['../a00304.html#gad06935764d78f43f9d542c784c2212ec',1,'glm']]], + ['i8vec3',['i8vec3',['../a00304.html#ga5a08d36cf7917cd19d081a603d0eae3e',1,'glm']]], + ['i8vec4',['i8vec4',['../a00304.html#ga4177a44206121dabc8c4ff1c0f544574',1,'glm']]], + ['imat2',['imat2',['../a00294.html#gaabe04f9948d4a213bb1c20137de03e01',1,'glm']]], + ['imat2x2',['imat2x2',['../a00294.html#gaa4732a240522ad9bc28144fda2fc14ec',1,'glm']]], + ['imat2x3',['imat2x3',['../a00294.html#ga3f42dd3d5d94a0fd5706f7ec8dd0c605',1,'glm']]], + ['imat2x4',['imat2x4',['../a00294.html#ga9d8faafdca42583d67e792dd038fc668',1,'glm']]], + ['imat3',['imat3',['../a00294.html#ga038f68437155ffa3c2583a15264a8195',1,'glm']]], + ['imat3x2',['imat3x2',['../a00294.html#ga7b33bbe4f12c060892bd3cc8d4cd737f',1,'glm']]], + ['imat3x3',['imat3x3',['../a00294.html#ga6aacc960f62e8f7d2fe9d32d5050e7a4',1,'glm']]], + ['imat3x4',['imat3x4',['../a00294.html#ga6e9ce23496d8b08dfc302d4039694b58',1,'glm']]], + ['imat4',['imat4',['../a00294.html#ga96b0d26a33b81bb6a60ca0f39682f7eb',1,'glm']]], + ['imat4x2',['imat4x2',['../a00294.html#ga8ce7ef51d8b2c1901fa5414deccbc3fa',1,'glm']]], + ['imat4x3',['imat4x3',['../a00294.html#ga705ee0bf49d6c3de4404ce2481bf0df5',1,'glm']]], + ['imat4x4',['imat4x4',['../a00294.html#ga43ed5e4f475b6f4cad7cba78f29c405b',1,'glm']]], + ['int1',['int1',['../a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3',1,'glm']]], + ['int16',['int16',['../a00260.html#ga259fa4834387bd68627ddf37bb3ebdb9',1,'glm']]], + ['int16_5ft',['int16_t',['../a00304.html#gae8f5e3e964ca2ae240adc2c0d74adede',1,'glm']]], + ['int1x1',['int1x1',['../a00315.html#ga056ffe02d3a45af626f8e62221881c7a',1,'glm']]], + ['int2',['int2',['../a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a',1,'glm']]], + ['int2x2',['int2x2',['../a00315.html#ga4e5ce477c15836b21e3c42daac68554d',1,'glm']]], + ['int2x3',['int2x3',['../a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3',1,'glm']]], + ['int2x4',['int2x4',['../a00315.html#ga2749d59a7fddbac44f34ba78e57ef807',1,'glm']]], + ['int3',['int3',['../a00315.html#ga909c38a425f215a50c847145d7da09f0',1,'glm']]], + ['int32',['int32',['../a00260.html#ga43d43196463bde49cb067f5c20ab8481',1,'glm']]], + ['int32_5ft',['int32_t',['../a00304.html#ga042ef09ff2f0cb24a36f541bcb3a3710',1,'glm']]], + ['int3x2',['int3x2',['../a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8',1,'glm']]], + ['int3x3',['int3x3',['../a00315.html#ga15c9649286f0bf431bdf9b3509580048',1,'glm']]], + ['int3x4',['int3x4',['../a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f',1,'glm']]], + ['int4',['int4',['../a00315.html#gaecdef18c819c205aeee9f94dc93de56a',1,'glm']]], + ['int4x2',['int4x2',['../a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1',1,'glm']]], + ['int4x3',['int4x3',['../a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d',1,'glm']]], + ['int4x4',['int4x4',['../a00315.html#ga04dee1552424198b8f58b377c2ee00d8',1,'glm']]], + ['int64',['int64',['../a00260.html#gaff5189f97f9e842d9636a0f240001b2e',1,'glm']]], + ['int64_5ft',['int64_t',['../a00304.html#ga322a7d7d2c2c68994dc872a33de63c61',1,'glm']]], + ['int8',['int8',['../a00260.html#ga1b956fe1df85f3c132b21edb4e116458',1,'glm']]], + ['int8_5ft',['int8_t',['../a00304.html#ga4bf09d8838a86866b39ee6e109341645',1,'glm']]], + ['ivec1',['ivec1',['../a00272.html#gaedd0562c2e77714929d7723a7e2e0dba',1,'glm']]], + ['ivec2',['ivec2',['../a00281.html#ga6f9269106d91b2d2b91bcf27cd5f5560',1,'glm']]], + ['ivec3',['ivec3',['../a00281.html#gad0d784d8eee201aca362484d2daee46c',1,'glm']]], + ['ivec4',['ivec4',['../a00281.html#ga5abb4603dae0ce58c595e66d9123d812',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.html index 5f5acf8fd4..742e92b543 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.js index cfc19f811b..f6a4f5679d 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_6.js @@ -1,188 +1,188 @@ -var searchData= -[ - ['lowp_5fbvec1',['lowp_bvec1',['../a00266.html#ga24a3d364e2ddd444f5b9e7975bbef8f9',1,'glm']]], - ['lowp_5fbvec2',['lowp_bvec2',['../a00282.html#ga5a5452140650988b94d5716e4d872465',1,'glm']]], - ['lowp_5fbvec3',['lowp_bvec3',['../a00282.html#ga79e0922a977662a8fd39d7829be3908b',1,'glm']]], - ['lowp_5fbvec4',['lowp_bvec4',['../a00282.html#ga15ac87724048ab7169bb5d3572939dd3',1,'glm']]], - ['lowp_5fddualquat',['lowp_ddualquat',['../a00317.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]], - ['lowp_5fdmat2',['lowp_dmat2',['../a00284.html#gad8e2727a6e7aa68280245bb0022118e1',1,'glm']]], - ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00284.html#gac61b94f5d9775f83f321bac899322fe2',1,'glm']]], - ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00284.html#gaf6bf2f5bde7ad5b9c289f777b93094af',1,'glm']]], - ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00284.html#ga97507a31ecee8609887d0f23bbde92c7',1,'glm']]], - ['lowp_5fdmat3',['lowp_dmat3',['../a00284.html#ga0cab80beee64a5f8d2ae4e823983063a',1,'glm']]], - ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00284.html#ga1e0ea3fba496bc7c6f620d2590acb66b',1,'glm']]], - ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00284.html#gac017848a9df570f60916a21a297b1e8e',1,'glm']]], - ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00284.html#ga93add35d2a44c5830978b827e8c295e8',1,'glm']]], - ['lowp_5fdmat4',['lowp_dmat4',['../a00284.html#ga708bc5b91bbfedd21debac8dcf2a64cd',1,'glm']]], - ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00284.html#ga382dc5295cead78766239a8457abfa98',1,'glm']]], - ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00284.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e',1,'glm']]], - ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00284.html#ga5b0413198b7e9f061f7534a221c9dac9',1,'glm']]], - ['lowp_5fdquat',['lowp_dquat',['../a00250.html#ga9e6e5f42e67dd5877350ba485c191f1c',1,'glm']]], - ['lowp_5fdualquat',['lowp_dualquat',['../a00317.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]], - ['lowp_5fdvec1',['lowp_dvec1',['../a00269.html#gaf906eb86b6e96c35138d0e4928e1435a',1,'glm']]], - ['lowp_5fdvec2',['lowp_dvec2',['../a00282.html#ga108086730d086b7f6f7a033955dfb9c3',1,'glm']]], - ['lowp_5fdvec3',['lowp_dvec3',['../a00282.html#ga42c518b2917e19ce6946a84c64a3a4b2',1,'glm']]], - ['lowp_5fdvec4',['lowp_dvec4',['../a00282.html#ga0b4432cb8d910e406576d10d802e190d',1,'glm']]], - ['lowp_5ff32',['lowp_f32',['../a00304.html#gaeea53879fc327293cf3352a409b7867b',1,'glm']]], - ['lowp_5ff32mat2',['lowp_f32mat2',['../a00304.html#ga52409bc6d4a2ce3421526c069220d685',1,'glm']]], - ['lowp_5ff32mat2x2',['lowp_f32mat2x2',['../a00304.html#ga1d091b6abfba1772450e1745a06525bc',1,'glm']]], - ['lowp_5ff32mat2x3',['lowp_f32mat2x3',['../a00304.html#ga961ccb34cd1a5654c772c8709e001dc5',1,'glm']]], - ['lowp_5ff32mat2x4',['lowp_f32mat2x4',['../a00304.html#gacc6bf0209dda0c7c14851a646071c974',1,'glm']]], - ['lowp_5ff32mat3',['lowp_f32mat3',['../a00304.html#ga4187f89f196505b40e63f516139511e5',1,'glm']]], - ['lowp_5ff32mat3x2',['lowp_f32mat3x2',['../a00304.html#gac53f9d7ab04eace67adad026092fb1e8',1,'glm']]], - ['lowp_5ff32mat3x3',['lowp_f32mat3x3',['../a00304.html#ga841211b641cff1fcf861bdb14e5e4abc',1,'glm']]], - ['lowp_5ff32mat3x4',['lowp_f32mat3x4',['../a00304.html#ga21b1b22dec013a72656e3644baf8a1e1',1,'glm']]], - ['lowp_5ff32mat4',['lowp_f32mat4',['../a00304.html#ga766aed2871e6173a81011a877f398f04',1,'glm']]], - ['lowp_5ff32mat4x2',['lowp_f32mat4x2',['../a00304.html#gae6f3fcb702a666de07650c149cfa845a',1,'glm']]], - ['lowp_5ff32mat4x3',['lowp_f32mat4x3',['../a00304.html#gac21eda58a1475449a5709b412ebd776c',1,'glm']]], - ['lowp_5ff32mat4x4',['lowp_f32mat4x4',['../a00304.html#ga4143d129898f91545948c46859adce44',1,'glm']]], - ['lowp_5ff32quat',['lowp_f32quat',['../a00304.html#gaa3ba60ef8f69c6aeb1629594eaa95347',1,'glm']]], - ['lowp_5ff32vec1',['lowp_f32vec1',['../a00304.html#ga43e5b41c834fcaf4db5a831c0e28128e',1,'glm']]], - ['lowp_5ff32vec2',['lowp_f32vec2',['../a00304.html#gaf3b694b2b8ded7e0b9f07b061917e1a0',1,'glm']]], - ['lowp_5ff32vec3',['lowp_f32vec3',['../a00304.html#gaf739a2cd7b81783a43148b53e40d983b',1,'glm']]], - ['lowp_5ff32vec4',['lowp_f32vec4',['../a00304.html#ga4e2e1debe022074ab224c9faf856d374',1,'glm']]], - ['lowp_5ff64',['lowp_f64',['../a00304.html#gabc7a97c07cbfac8e35eb5e63beb4b679',1,'glm']]], - ['lowp_5ff64mat2',['lowp_f64mat2',['../a00304.html#gafc730f6b4242763b0eda0ffa25150292',1,'glm']]], - ['lowp_5ff64mat2x2',['lowp_f64mat2x2',['../a00304.html#ga771fda9109933db34f808d92b9b84d7e',1,'glm']]], - ['lowp_5ff64mat2x3',['lowp_f64mat2x3',['../a00304.html#ga39e90adcffe33264bd608fa9c6bd184b',1,'glm']]], - ['lowp_5ff64mat2x4',['lowp_f64mat2x4',['../a00304.html#ga50265a202fbfe0a25fc70066c31d9336',1,'glm']]], - ['lowp_5ff64mat3',['lowp_f64mat3',['../a00304.html#ga58119a41d143ebaea0df70fe882e8a40',1,'glm']]], - ['lowp_5ff64mat3x2',['lowp_f64mat3x2',['../a00304.html#gab0eb2d65514ee3e49905aa2caad8c0ad',1,'glm']]], - ['lowp_5ff64mat3x3',['lowp_f64mat3x3',['../a00304.html#gac8f8a12ee03105ef8861dc652434e3b7',1,'glm']]], - ['lowp_5ff64mat3x4',['lowp_f64mat3x4',['../a00304.html#gade8d1edfb23996ab6c622e65e3893271',1,'glm']]], - ['lowp_5ff64mat4',['lowp_f64mat4',['../a00304.html#ga7451266e67794bd1125163502bc4a570',1,'glm']]], - ['lowp_5ff64mat4x2',['lowp_f64mat4x2',['../a00304.html#gab0cecb80fd106bc369b9e46a165815ce',1,'glm']]], - ['lowp_5ff64mat4x3',['lowp_f64mat4x3',['../a00304.html#gae731613b25db3a5ef5a05d21e57a57d3',1,'glm']]], - ['lowp_5ff64mat4x4',['lowp_f64mat4x4',['../a00304.html#ga8c9cd734e03cd49674f3e287aa4a6f95',1,'glm']]], - ['lowp_5ff64quat',['lowp_f64quat',['../a00304.html#gaa3ee2bc4af03cc06578b66b3e3f878ae',1,'glm']]], - ['lowp_5ff64vec1',['lowp_f64vec1',['../a00304.html#gaf2d02c5f4d59135b9bc524fe317fd26b',1,'glm']]], - ['lowp_5ff64vec2',['lowp_f64vec2',['../a00304.html#ga4e641a54d70c81eabf56c25c966d04bd',1,'glm']]], - ['lowp_5ff64vec3',['lowp_f64vec3',['../a00304.html#gae7a4711107b7d078fc5f03ce2227b90b',1,'glm']]], - ['lowp_5ff64vec4',['lowp_f64vec4',['../a00304.html#gaa666bb9e6d204d3bea0b3a39a3a335f4',1,'glm']]], - ['lowp_5ffdualquat',['lowp_fdualquat',['../a00317.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]], - ['lowp_5ffloat32',['lowp_float32',['../a00304.html#ga41b0d390bd8cc827323b1b3816ff4bf8',1,'glm']]], - ['lowp_5ffloat32_5ft',['lowp_float32_t',['../a00304.html#gaea881cae4ddc6c0fbf7cc5b08177ca5b',1,'glm']]], - ['lowp_5ffloat64',['lowp_float64',['../a00304.html#ga3714dab2c16a6545a405cb0c3b3aaa6f',1,'glm']]], - ['lowp_5ffloat64_5ft',['lowp_float64_t',['../a00304.html#ga7286a37076a09da140df18bfa75d4e38',1,'glm']]], - ['lowp_5ffmat2',['lowp_fmat2',['../a00304.html#ga5bba0ce31210e274f73efacd3364c03f',1,'glm']]], - ['lowp_5ffmat2x2',['lowp_fmat2x2',['../a00304.html#gab0feb11edd0d3ab3e8ed996d349a5066',1,'glm']]], - ['lowp_5ffmat2x3',['lowp_fmat2x3',['../a00304.html#ga71cdb53801ed4c3aadb3603c04723210',1,'glm']]], - ['lowp_5ffmat2x4',['lowp_fmat2x4',['../a00304.html#gaab217601c74974a84acbca428123ecf7',1,'glm']]], - ['lowp_5ffmat3',['lowp_fmat3',['../a00304.html#ga83079315e230e8f39728f4bf0d2f9a9b',1,'glm']]], - ['lowp_5ffmat3x2',['lowp_fmat3x2',['../a00304.html#ga49b98e7d71804af45d86886a489e633c',1,'glm']]], - ['lowp_5ffmat3x3',['lowp_fmat3x3',['../a00304.html#gaba56275dd04a7a61560b0e8fa5d365b4',1,'glm']]], - ['lowp_5ffmat3x4',['lowp_fmat3x4',['../a00304.html#ga28733aec7288191b314d42154fd0b690',1,'glm']]], - ['lowp_5ffmat4',['lowp_fmat4',['../a00304.html#ga5803cb9ae26399762d8bba9e0b2fc09f',1,'glm']]], - ['lowp_5ffmat4x2',['lowp_fmat4x2',['../a00304.html#ga5868c2dcce41cc3ea5edcaeae239f62c',1,'glm']]], - ['lowp_5ffmat4x3',['lowp_fmat4x3',['../a00304.html#ga5e649bbdb135fbcb4bfe950f4c73a444',1,'glm']]], - ['lowp_5ffmat4x4',['lowp_fmat4x4',['../a00304.html#gac2f5263708ac847b361a9841e74ddf9f',1,'glm']]], - ['lowp_5ffvec1',['lowp_fvec1',['../a00304.html#ga346b2336fff168a7e0df1583aae3e5a5',1,'glm']]], - ['lowp_5ffvec2',['lowp_fvec2',['../a00304.html#ga62a32c31f4e2e8ca859663b6e3289a2d',1,'glm']]], - ['lowp_5ffvec3',['lowp_fvec3',['../a00304.html#ga40b5c557efebb5bb99d6b9aa81095afa',1,'glm']]], - ['lowp_5ffvec4',['lowp_fvec4',['../a00304.html#ga755484ffbe39ae3db2875953ed04e7b7',1,'glm']]], - ['lowp_5fi16',['lowp_i16',['../a00304.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]], - ['lowp_5fi16vec1',['lowp_i16vec1',['../a00304.html#ga501a2f313f1c220eef4ab02bdabdc3c6',1,'glm']]], - ['lowp_5fi16vec2',['lowp_i16vec2',['../a00304.html#ga7cac84b520a6b57f2fbd880d3d63c51b',1,'glm']]], - ['lowp_5fi16vec3',['lowp_i16vec3',['../a00304.html#gab69ef9cbc2a9214bf5596c528c801b72',1,'glm']]], - ['lowp_5fi16vec4',['lowp_i16vec4',['../a00304.html#ga1d47d94d17c2406abdd1f087a816e387',1,'glm']]], - ['lowp_5fi32',['lowp_i32',['../a00304.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]], - ['lowp_5fi32vec1',['lowp_i32vec1',['../a00304.html#gae31ac3608cf643ceffd6554874bec4a0',1,'glm']]], - ['lowp_5fi32vec2',['lowp_i32vec2',['../a00304.html#ga867a3c2d99ab369a454167d2c0a24dbd',1,'glm']]], - ['lowp_5fi32vec3',['lowp_i32vec3',['../a00304.html#ga5fe17c87ede1b1b4d92454cff4da076d',1,'glm']]], - ['lowp_5fi32vec4',['lowp_i32vec4',['../a00304.html#gac9b2eb4296ffe50a32eacca9ed932c08',1,'glm']]], - ['lowp_5fi64',['lowp_i64',['../a00304.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]], - ['lowp_5fi64vec1',['lowp_i64vec1',['../a00304.html#gab0f7d875db5f3cc9f3168c5a0ed56437',1,'glm']]], - ['lowp_5fi64vec2',['lowp_i64vec2',['../a00304.html#gab485c48f06a4fdd6b8d58d343bb49f3c',1,'glm']]], - ['lowp_5fi64vec3',['lowp_i64vec3',['../a00304.html#ga5cb1dc9e8d300c2cdb0d7ff2308fa36c',1,'glm']]], - ['lowp_5fi64vec4',['lowp_i64vec4',['../a00304.html#gabb4229a4c1488bf063eed0c45355bb9c',1,'glm']]], - ['lowp_5fi8',['lowp_i8',['../a00304.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]], - ['lowp_5fi8vec1',['lowp_i8vec1',['../a00304.html#ga036d6c7ca9fbbdc5f3871bfcb937c85c',1,'glm']]], - ['lowp_5fi8vec2',['lowp_i8vec2',['../a00304.html#gac03e5099d27eeaa74b6016ea435a1df2',1,'glm']]], - ['lowp_5fi8vec3',['lowp_i8vec3',['../a00304.html#gae2f43ace6b5b33ab49516d9e40af1845',1,'glm']]], - ['lowp_5fi8vec4',['lowp_i8vec4',['../a00304.html#ga6d388e9b9aa1b389f0672d9c7dfc61c5',1,'glm']]], - ['lowp_5fimat2',['lowp_imat2',['../a00294.html#gaa0bff0be804142bb16d441aec0a7962e',1,'glm']]], - ['lowp_5fimat2x2',['lowp_imat2x2',['../a00294.html#ga92b95b679975d408645547ab45a8dcd8',1,'glm']]], - ['lowp_5fimat2x3',['lowp_imat2x3',['../a00294.html#ga8c9e7a388f8e7c52f1e6857dee8afb65',1,'glm']]], - ['lowp_5fimat2x4',['lowp_imat2x4',['../a00294.html#ga9cc13bd1f8dd2933e9fa31fe3f70e16e',1,'glm']]], - ['lowp_5fimat3',['lowp_imat3',['../a00294.html#ga69bfe668f4170379fc1f35d82b060c43',1,'glm']]], - ['lowp_5fimat3x2',['lowp_imat3x2',['../a00294.html#ga33db8f27491d30906cd37c0d86b3f432',1,'glm']]], - ['lowp_5fimat3x3',['lowp_imat3x3',['../a00294.html#ga664f061df00020048c3f8530329ace45',1,'glm']]], - ['lowp_5fimat3x4',['lowp_imat3x4',['../a00294.html#ga9273faab33623d944af4080befbb2c80',1,'glm']]], - ['lowp_5fimat4',['lowp_imat4',['../a00294.html#gad1e77f7270cad461ca4fcb4c3ec2e98c',1,'glm']]], - ['lowp_5fimat4x2',['lowp_imat4x2',['../a00294.html#ga26ec1a2ba08a1488f5f05336858a0f09',1,'glm']]], - ['lowp_5fimat4x3',['lowp_imat4x3',['../a00294.html#ga8f40483a3ae634ead8ad22272c543a33',1,'glm']]], - ['lowp_5fimat4x4',['lowp_imat4x4',['../a00294.html#gaf65677e53ac8e31a107399340d5e2451',1,'glm']]], - ['lowp_5fint16',['lowp_int16',['../a00304.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]], - ['lowp_5fint16_5ft',['lowp_int16_t',['../a00304.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]], - ['lowp_5fint32',['lowp_int32',['../a00304.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]], - ['lowp_5fint32_5ft',['lowp_int32_t',['../a00304.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]], - ['lowp_5fint64',['lowp_int64',['../a00304.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]], - ['lowp_5fint64_5ft',['lowp_int64_t',['../a00304.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]], - ['lowp_5fint8',['lowp_int8',['../a00304.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]], - ['lowp_5fint8_5ft',['lowp_int8_t',['../a00304.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]], - ['lowp_5fivec1',['lowp_ivec1',['../a00273.html#ga836dbb1dc516c233b7f5fe9763bc15dc',1,'glm']]], - ['lowp_5fivec2',['lowp_ivec2',['../a00282.html#ga8433c6c1fdd80c0a83941d94aff73fa0',1,'glm']]], - ['lowp_5fivec3',['lowp_ivec3',['../a00282.html#gac1a86a75b3c68ebb704d7094043669d6',1,'glm']]], - ['lowp_5fivec4',['lowp_ivec4',['../a00282.html#ga27fc23da61859cd6356326c5f1c796de',1,'glm']]], - ['lowp_5fmat2',['lowp_mat2',['../a00284.html#gae400c4ce1f5f3e1fa12861b2baed331a',1,'glm']]], - ['lowp_5fmat2x2',['lowp_mat2x2',['../a00284.html#ga2df7cdaf9a571ce7a1b09435f502c694',1,'glm']]], - ['lowp_5fmat2x3',['lowp_mat2x3',['../a00284.html#ga3eee3a74d0f1de8635d846dfb29ec4bb',1,'glm']]], - ['lowp_5fmat2x4',['lowp_mat2x4',['../a00284.html#gade27f8324a16626cbce5d3e7da66b070',1,'glm']]], - ['lowp_5fmat3',['lowp_mat3',['../a00284.html#ga6271ebc85ed778ccc15458c3d86fc854',1,'glm']]], - ['lowp_5fmat3x2',['lowp_mat3x2',['../a00284.html#gaabf6cf90fd31efe25c94965507e98390',1,'glm']]], - ['lowp_5fmat3x3',['lowp_mat3x3',['../a00284.html#ga63362cb4a63fc1be7d2e49cd5d574c84',1,'glm']]], - ['lowp_5fmat3x4',['lowp_mat3x4',['../a00284.html#gac5fc6786688eff02904ca5e7d6960092',1,'glm']]], - ['lowp_5fmat4',['lowp_mat4',['../a00284.html#ga2dedee030500865267cd5851c00c139d',1,'glm']]], - ['lowp_5fmat4x2',['lowp_mat4x2',['../a00284.html#gafa3cdb8f24d09d761ec9ae2a4c7e5e21',1,'glm']]], - ['lowp_5fmat4x3',['lowp_mat4x3',['../a00284.html#ga534c3ef5c3b8fdd8656b6afc205b4b77',1,'glm']]], - ['lowp_5fmat4x4',['lowp_mat4x4',['../a00284.html#ga686468a9a815bd4db8cddae42a6d6b87',1,'glm']]], - ['lowp_5fquat',['lowp_quat',['../a00253.html#gade62c5316c1c11a79c34c00c189558eb',1,'glm']]], - ['lowp_5fu16',['lowp_u16',['../a00304.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]], - ['lowp_5fu16vec1',['lowp_u16vec1',['../a00304.html#gaa6aab4ee7189b86716f5d7015d43021d',1,'glm']]], - ['lowp_5fu16vec2',['lowp_u16vec2',['../a00304.html#ga2a7d997da9ac29cb931e35bd399f58df',1,'glm']]], - ['lowp_5fu16vec3',['lowp_u16vec3',['../a00304.html#gac0253db6c3d3bae1f591676307a9dd8c',1,'glm']]], - ['lowp_5fu16vec4',['lowp_u16vec4',['../a00304.html#gaa7f00459b9a2e5b2757e70afc0c189e1',1,'glm']]], - ['lowp_5fu32',['lowp_u32',['../a00304.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]], - ['lowp_5fu32vec1',['lowp_u32vec1',['../a00304.html#gabed3be8dfdc4a0df4bf3271dbd7344c4',1,'glm']]], - ['lowp_5fu32vec2',['lowp_u32vec2',['../a00304.html#gaf7e286e81347011e257ee779524e73b9',1,'glm']]], - ['lowp_5fu32vec3',['lowp_u32vec3',['../a00304.html#gad3ad390560a671b1f676fbf03cd3aa15',1,'glm']]], - ['lowp_5fu32vec4',['lowp_u32vec4',['../a00304.html#ga4502885718742aa238c36a312c3f3f20',1,'glm']]], - ['lowp_5fu64',['lowp_u64',['../a00304.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]], - ['lowp_5fu64vec1',['lowp_u64vec1',['../a00304.html#ga859be7b9d3a3765c1cafc14dbcf249a6',1,'glm']]], - ['lowp_5fu64vec2',['lowp_u64vec2',['../a00304.html#ga581485db4ba6ddb501505ee711fd8e42',1,'glm']]], - ['lowp_5fu64vec3',['lowp_u64vec3',['../a00304.html#gaa4a8682bec7ec8af666ef87fae38d5d1',1,'glm']]], - ['lowp_5fu64vec4',['lowp_u64vec4',['../a00304.html#ga6fccc89c34045c86339f6fa781ce96de',1,'glm']]], - ['lowp_5fu8',['lowp_u8',['../a00304.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]], - ['lowp_5fu8vec1',['lowp_u8vec1',['../a00304.html#ga4b2e0e10d8d154fec9cab50e216588ec',1,'glm']]], - ['lowp_5fu8vec2',['lowp_u8vec2',['../a00304.html#gae6f63fa38635431e51a8f2602f15c566',1,'glm']]], - ['lowp_5fu8vec3',['lowp_u8vec3',['../a00304.html#ga150dc47e31c6b8cf8461803c8d56f7bd',1,'glm']]], - ['lowp_5fu8vec4',['lowp_u8vec4',['../a00304.html#ga9910927f3a4d1addb3da6a82542a8287',1,'glm']]], - ['lowp_5fuint16',['lowp_uint16',['../a00304.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]], - ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00304.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]], - ['lowp_5fuint32',['lowp_uint32',['../a00304.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]], - ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00304.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]], - ['lowp_5fuint64',['lowp_uint64',['../a00304.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]], - ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00304.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]], - ['lowp_5fuint8',['lowp_uint8',['../a00304.html#gaf49470869e9be2c059629b250619804e',1,'glm']]], - ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00304.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]], - ['lowp_5fumat2',['lowp_umat2',['../a00294.html#gaf2fba702d990437fc88ff3f3a76846ee',1,'glm']]], - ['lowp_5fumat2x2',['lowp_umat2x2',['../a00294.html#ga7b2e9d89745f7175051284e54c81d81c',1,'glm']]], - ['lowp_5fumat2x3',['lowp_umat2x3',['../a00294.html#ga3072f90fd86f17a862e21589fbb14c0f',1,'glm']]], - ['lowp_5fumat2x4',['lowp_umat2x4',['../a00294.html#ga8bb45fec4bd77bd81b4ae7eb961a270d',1,'glm']]], - ['lowp_5fumat3',['lowp_umat3',['../a00294.html#gaf1145f72bcdd590f5808c4bc170c2924',1,'glm']]], - ['lowp_5fumat3x2',['lowp_umat3x2',['../a00294.html#ga56ea68c6a6cba8d8c21d17bb14e69c6b',1,'glm']]], - ['lowp_5fumat3x3',['lowp_umat3x3',['../a00294.html#ga4f660a39a395cc14f018f985e7dfbeb5',1,'glm']]], - ['lowp_5fumat3x4',['lowp_umat3x4',['../a00294.html#gaec3d624306bd59649f021864709d56b5',1,'glm']]], - ['lowp_5fumat4',['lowp_umat4',['../a00294.html#gac092c6105827bf9ea080db38074b78eb',1,'glm']]], - ['lowp_5fumat4x2',['lowp_umat4x2',['../a00294.html#ga7716c2b210d141846f1ac4e774adef5e',1,'glm']]], - ['lowp_5fumat4x3',['lowp_umat4x3',['../a00294.html#ga09ab33a2636f5f43f7fae29cfbc20fff',1,'glm']]], - ['lowp_5fumat4x4',['lowp_umat4x4',['../a00294.html#ga10aafc66cf1a0ece336b1c5ae13d0cc0',1,'glm']]], - ['lowp_5fuvec1',['lowp_uvec1',['../a00277.html#ga8bf3fc8a7863d140f48b29341c750402',1,'glm']]], - ['lowp_5fuvec2',['lowp_uvec2',['../a00282.html#ga752ee45136011301b64afd8c310c47a4',1,'glm']]], - ['lowp_5fuvec3',['lowp_uvec3',['../a00282.html#ga7b2efbdd6bdc2f8250c57f3e5dc9a292',1,'glm']]], - ['lowp_5fuvec4',['lowp_uvec4',['../a00282.html#ga5e6a632ec1165cf9f54ceeaa5e9b2b1e',1,'glm']]], - ['lowp_5fvec1',['lowp_vec1',['../a00271.html#ga0a57630f03031706b1d26a7d70d9184c',1,'glm']]], - ['lowp_5fvec2',['lowp_vec2',['../a00282.html#ga30e8baef5d56d5c166872a2bc00f36e9',1,'glm']]], - ['lowp_5fvec3',['lowp_vec3',['../a00282.html#ga868e8e4470a3ef97c7ee3032bf90dc79',1,'glm']]], - ['lowp_5fvec4',['lowp_vec4',['../a00282.html#gace3acb313c800552a9411953eb8b2ed7',1,'glm']]] -]; +var searchData= +[ + ['lowp_5fbvec1',['lowp_bvec1',['../a00266.html#ga24a3d364e2ddd444f5b9e7975bbef8f9',1,'glm']]], + ['lowp_5fbvec2',['lowp_bvec2',['../a00282.html#ga5a5452140650988b94d5716e4d872465',1,'glm']]], + ['lowp_5fbvec3',['lowp_bvec3',['../a00282.html#ga79e0922a977662a8fd39d7829be3908b',1,'glm']]], + ['lowp_5fbvec4',['lowp_bvec4',['../a00282.html#ga15ac87724048ab7169bb5d3572939dd3',1,'glm']]], + ['lowp_5fddualquat',['lowp_ddualquat',['../a00317.html#gab4c5103338af3dac7e0fbc86895a3f1a',1,'glm']]], + ['lowp_5fdmat2',['lowp_dmat2',['../a00284.html#gad8e2727a6e7aa68280245bb0022118e1',1,'glm']]], + ['lowp_5fdmat2x2',['lowp_dmat2x2',['../a00284.html#gac61b94f5d9775f83f321bac899322fe2',1,'glm']]], + ['lowp_5fdmat2x3',['lowp_dmat2x3',['../a00284.html#gaf6bf2f5bde7ad5b9c289f777b93094af',1,'glm']]], + ['lowp_5fdmat2x4',['lowp_dmat2x4',['../a00284.html#ga97507a31ecee8609887d0f23bbde92c7',1,'glm']]], + ['lowp_5fdmat3',['lowp_dmat3',['../a00284.html#ga0cab80beee64a5f8d2ae4e823983063a',1,'glm']]], + ['lowp_5fdmat3x2',['lowp_dmat3x2',['../a00284.html#ga1e0ea3fba496bc7c6f620d2590acb66b',1,'glm']]], + ['lowp_5fdmat3x3',['lowp_dmat3x3',['../a00284.html#gac017848a9df570f60916a21a297b1e8e',1,'glm']]], + ['lowp_5fdmat3x4',['lowp_dmat3x4',['../a00284.html#ga93add35d2a44c5830978b827e8c295e8',1,'glm']]], + ['lowp_5fdmat4',['lowp_dmat4',['../a00284.html#ga708bc5b91bbfedd21debac8dcf2a64cd',1,'glm']]], + ['lowp_5fdmat4x2',['lowp_dmat4x2',['../a00284.html#ga382dc5295cead78766239a8457abfa98',1,'glm']]], + ['lowp_5fdmat4x3',['lowp_dmat4x3',['../a00284.html#ga3d7ea07da7c6e5c81a3f4c8b3d44056e',1,'glm']]], + ['lowp_5fdmat4x4',['lowp_dmat4x4',['../a00284.html#ga5b0413198b7e9f061f7534a221c9dac9',1,'glm']]], + ['lowp_5fdquat',['lowp_dquat',['../a00250.html#ga9e6e5f42e67dd5877350ba485c191f1c',1,'glm']]], + ['lowp_5fdualquat',['lowp_dualquat',['../a00317.html#gade05d29ebd4deea0f883d0e1bb4169aa',1,'glm']]], + ['lowp_5fdvec1',['lowp_dvec1',['../a00269.html#gaf906eb86b6e96c35138d0e4928e1435a',1,'glm']]], + ['lowp_5fdvec2',['lowp_dvec2',['../a00282.html#ga108086730d086b7f6f7a033955dfb9c3',1,'glm']]], + ['lowp_5fdvec3',['lowp_dvec3',['../a00282.html#ga42c518b2917e19ce6946a84c64a3a4b2',1,'glm']]], + ['lowp_5fdvec4',['lowp_dvec4',['../a00282.html#ga0b4432cb8d910e406576d10d802e190d',1,'glm']]], + ['lowp_5ff32',['lowp_f32',['../a00304.html#gaeea53879fc327293cf3352a409b7867b',1,'glm']]], + ['lowp_5ff32mat2',['lowp_f32mat2',['../a00304.html#ga52409bc6d4a2ce3421526c069220d685',1,'glm']]], + ['lowp_5ff32mat2x2',['lowp_f32mat2x2',['../a00304.html#ga1d091b6abfba1772450e1745a06525bc',1,'glm']]], + ['lowp_5ff32mat2x3',['lowp_f32mat2x3',['../a00304.html#ga961ccb34cd1a5654c772c8709e001dc5',1,'glm']]], + ['lowp_5ff32mat2x4',['lowp_f32mat2x4',['../a00304.html#gacc6bf0209dda0c7c14851a646071c974',1,'glm']]], + ['lowp_5ff32mat3',['lowp_f32mat3',['../a00304.html#ga4187f89f196505b40e63f516139511e5',1,'glm']]], + ['lowp_5ff32mat3x2',['lowp_f32mat3x2',['../a00304.html#gac53f9d7ab04eace67adad026092fb1e8',1,'glm']]], + ['lowp_5ff32mat3x3',['lowp_f32mat3x3',['../a00304.html#ga841211b641cff1fcf861bdb14e5e4abc',1,'glm']]], + ['lowp_5ff32mat3x4',['lowp_f32mat3x4',['../a00304.html#ga21b1b22dec013a72656e3644baf8a1e1',1,'glm']]], + ['lowp_5ff32mat4',['lowp_f32mat4',['../a00304.html#ga766aed2871e6173a81011a877f398f04',1,'glm']]], + ['lowp_5ff32mat4x2',['lowp_f32mat4x2',['../a00304.html#gae6f3fcb702a666de07650c149cfa845a',1,'glm']]], + ['lowp_5ff32mat4x3',['lowp_f32mat4x3',['../a00304.html#gac21eda58a1475449a5709b412ebd776c',1,'glm']]], + ['lowp_5ff32mat4x4',['lowp_f32mat4x4',['../a00304.html#ga4143d129898f91545948c46859adce44',1,'glm']]], + ['lowp_5ff32quat',['lowp_f32quat',['../a00304.html#gaa3ba60ef8f69c6aeb1629594eaa95347',1,'glm']]], + ['lowp_5ff32vec1',['lowp_f32vec1',['../a00304.html#ga43e5b41c834fcaf4db5a831c0e28128e',1,'glm']]], + ['lowp_5ff32vec2',['lowp_f32vec2',['../a00304.html#gaf3b694b2b8ded7e0b9f07b061917e1a0',1,'glm']]], + ['lowp_5ff32vec3',['lowp_f32vec3',['../a00304.html#gaf739a2cd7b81783a43148b53e40d983b',1,'glm']]], + ['lowp_5ff32vec4',['lowp_f32vec4',['../a00304.html#ga4e2e1debe022074ab224c9faf856d374',1,'glm']]], + ['lowp_5ff64',['lowp_f64',['../a00304.html#gabc7a97c07cbfac8e35eb5e63beb4b679',1,'glm']]], + ['lowp_5ff64mat2',['lowp_f64mat2',['../a00304.html#gafc730f6b4242763b0eda0ffa25150292',1,'glm']]], + ['lowp_5ff64mat2x2',['lowp_f64mat2x2',['../a00304.html#ga771fda9109933db34f808d92b9b84d7e',1,'glm']]], + ['lowp_5ff64mat2x3',['lowp_f64mat2x3',['../a00304.html#ga39e90adcffe33264bd608fa9c6bd184b',1,'glm']]], + ['lowp_5ff64mat2x4',['lowp_f64mat2x4',['../a00304.html#ga50265a202fbfe0a25fc70066c31d9336',1,'glm']]], + ['lowp_5ff64mat3',['lowp_f64mat3',['../a00304.html#ga58119a41d143ebaea0df70fe882e8a40',1,'glm']]], + ['lowp_5ff64mat3x2',['lowp_f64mat3x2',['../a00304.html#gab0eb2d65514ee3e49905aa2caad8c0ad',1,'glm']]], + ['lowp_5ff64mat3x3',['lowp_f64mat3x3',['../a00304.html#gac8f8a12ee03105ef8861dc652434e3b7',1,'glm']]], + ['lowp_5ff64mat3x4',['lowp_f64mat3x4',['../a00304.html#gade8d1edfb23996ab6c622e65e3893271',1,'glm']]], + ['lowp_5ff64mat4',['lowp_f64mat4',['../a00304.html#ga7451266e67794bd1125163502bc4a570',1,'glm']]], + ['lowp_5ff64mat4x2',['lowp_f64mat4x2',['../a00304.html#gab0cecb80fd106bc369b9e46a165815ce',1,'glm']]], + ['lowp_5ff64mat4x3',['lowp_f64mat4x3',['../a00304.html#gae731613b25db3a5ef5a05d21e57a57d3',1,'glm']]], + ['lowp_5ff64mat4x4',['lowp_f64mat4x4',['../a00304.html#ga8c9cd734e03cd49674f3e287aa4a6f95',1,'glm']]], + ['lowp_5ff64quat',['lowp_f64quat',['../a00304.html#gaa3ee2bc4af03cc06578b66b3e3f878ae',1,'glm']]], + ['lowp_5ff64vec1',['lowp_f64vec1',['../a00304.html#gaf2d02c5f4d59135b9bc524fe317fd26b',1,'glm']]], + ['lowp_5ff64vec2',['lowp_f64vec2',['../a00304.html#ga4e641a54d70c81eabf56c25c966d04bd',1,'glm']]], + ['lowp_5ff64vec3',['lowp_f64vec3',['../a00304.html#gae7a4711107b7d078fc5f03ce2227b90b',1,'glm']]], + ['lowp_5ff64vec4',['lowp_f64vec4',['../a00304.html#gaa666bb9e6d204d3bea0b3a39a3a335f4',1,'glm']]], + ['lowp_5ffdualquat',['lowp_fdualquat',['../a00317.html#gaa38f671be25a7f3b136a452a8bb42860',1,'glm']]], + ['lowp_5ffloat32',['lowp_float32',['../a00304.html#ga41b0d390bd8cc827323b1b3816ff4bf8',1,'glm']]], + ['lowp_5ffloat32_5ft',['lowp_float32_t',['../a00304.html#gaea881cae4ddc6c0fbf7cc5b08177ca5b',1,'glm']]], + ['lowp_5ffloat64',['lowp_float64',['../a00304.html#ga3714dab2c16a6545a405cb0c3b3aaa6f',1,'glm']]], + ['lowp_5ffloat64_5ft',['lowp_float64_t',['../a00304.html#ga7286a37076a09da140df18bfa75d4e38',1,'glm']]], + ['lowp_5ffmat2',['lowp_fmat2',['../a00304.html#ga5bba0ce31210e274f73efacd3364c03f',1,'glm']]], + ['lowp_5ffmat2x2',['lowp_fmat2x2',['../a00304.html#gab0feb11edd0d3ab3e8ed996d349a5066',1,'glm']]], + ['lowp_5ffmat2x3',['lowp_fmat2x3',['../a00304.html#ga71cdb53801ed4c3aadb3603c04723210',1,'glm']]], + ['lowp_5ffmat2x4',['lowp_fmat2x4',['../a00304.html#gaab217601c74974a84acbca428123ecf7',1,'glm']]], + ['lowp_5ffmat3',['lowp_fmat3',['../a00304.html#ga83079315e230e8f39728f4bf0d2f9a9b',1,'glm']]], + ['lowp_5ffmat3x2',['lowp_fmat3x2',['../a00304.html#ga49b98e7d71804af45d86886a489e633c',1,'glm']]], + ['lowp_5ffmat3x3',['lowp_fmat3x3',['../a00304.html#gaba56275dd04a7a61560b0e8fa5d365b4',1,'glm']]], + ['lowp_5ffmat3x4',['lowp_fmat3x4',['../a00304.html#ga28733aec7288191b314d42154fd0b690',1,'glm']]], + ['lowp_5ffmat4',['lowp_fmat4',['../a00304.html#ga5803cb9ae26399762d8bba9e0b2fc09f',1,'glm']]], + ['lowp_5ffmat4x2',['lowp_fmat4x2',['../a00304.html#ga5868c2dcce41cc3ea5edcaeae239f62c',1,'glm']]], + ['lowp_5ffmat4x3',['lowp_fmat4x3',['../a00304.html#ga5e649bbdb135fbcb4bfe950f4c73a444',1,'glm']]], + ['lowp_5ffmat4x4',['lowp_fmat4x4',['../a00304.html#gac2f5263708ac847b361a9841e74ddf9f',1,'glm']]], + ['lowp_5ffvec1',['lowp_fvec1',['../a00304.html#ga346b2336fff168a7e0df1583aae3e5a5',1,'glm']]], + ['lowp_5ffvec2',['lowp_fvec2',['../a00304.html#ga62a32c31f4e2e8ca859663b6e3289a2d',1,'glm']]], + ['lowp_5ffvec3',['lowp_fvec3',['../a00304.html#ga40b5c557efebb5bb99d6b9aa81095afa',1,'glm']]], + ['lowp_5ffvec4',['lowp_fvec4',['../a00304.html#ga755484ffbe39ae3db2875953ed04e7b7',1,'glm']]], + ['lowp_5fi16',['lowp_i16',['../a00304.html#ga392b673fd10847bfb78fb808c6cf8ff7',1,'glm']]], + ['lowp_5fi16vec1',['lowp_i16vec1',['../a00304.html#ga501a2f313f1c220eef4ab02bdabdc3c6',1,'glm']]], + ['lowp_5fi16vec2',['lowp_i16vec2',['../a00304.html#ga7cac84b520a6b57f2fbd880d3d63c51b',1,'glm']]], + ['lowp_5fi16vec3',['lowp_i16vec3',['../a00304.html#gab69ef9cbc2a9214bf5596c528c801b72',1,'glm']]], + ['lowp_5fi16vec4',['lowp_i16vec4',['../a00304.html#ga1d47d94d17c2406abdd1f087a816e387',1,'glm']]], + ['lowp_5fi32',['lowp_i32',['../a00304.html#ga7ff73a45cea9613ebf1a9fad0b9f82ac',1,'glm']]], + ['lowp_5fi32vec1',['lowp_i32vec1',['../a00304.html#gae31ac3608cf643ceffd6554874bec4a0',1,'glm']]], + ['lowp_5fi32vec2',['lowp_i32vec2',['../a00304.html#ga867a3c2d99ab369a454167d2c0a24dbd',1,'glm']]], + ['lowp_5fi32vec3',['lowp_i32vec3',['../a00304.html#ga5fe17c87ede1b1b4d92454cff4da076d',1,'glm']]], + ['lowp_5fi32vec4',['lowp_i32vec4',['../a00304.html#gac9b2eb4296ffe50a32eacca9ed932c08',1,'glm']]], + ['lowp_5fi64',['lowp_i64',['../a00304.html#ga354736e0c645099cd44c42fb2f87c2b8',1,'glm']]], + ['lowp_5fi64vec1',['lowp_i64vec1',['../a00304.html#gab0f7d875db5f3cc9f3168c5a0ed56437',1,'glm']]], + ['lowp_5fi64vec2',['lowp_i64vec2',['../a00304.html#gab485c48f06a4fdd6b8d58d343bb49f3c',1,'glm']]], + ['lowp_5fi64vec3',['lowp_i64vec3',['../a00304.html#ga5cb1dc9e8d300c2cdb0d7ff2308fa36c',1,'glm']]], + ['lowp_5fi64vec4',['lowp_i64vec4',['../a00304.html#gabb4229a4c1488bf063eed0c45355bb9c',1,'glm']]], + ['lowp_5fi8',['lowp_i8',['../a00304.html#ga552a6bde5e75984efb0f863278da2e54',1,'glm']]], + ['lowp_5fi8vec1',['lowp_i8vec1',['../a00304.html#ga036d6c7ca9fbbdc5f3871bfcb937c85c',1,'glm']]], + ['lowp_5fi8vec2',['lowp_i8vec2',['../a00304.html#gac03e5099d27eeaa74b6016ea435a1df2',1,'glm']]], + ['lowp_5fi8vec3',['lowp_i8vec3',['../a00304.html#gae2f43ace6b5b33ab49516d9e40af1845',1,'glm']]], + ['lowp_5fi8vec4',['lowp_i8vec4',['../a00304.html#ga6d388e9b9aa1b389f0672d9c7dfc61c5',1,'glm']]], + ['lowp_5fimat2',['lowp_imat2',['../a00294.html#gaa0bff0be804142bb16d441aec0a7962e',1,'glm']]], + ['lowp_5fimat2x2',['lowp_imat2x2',['../a00294.html#ga92b95b679975d408645547ab45a8dcd8',1,'glm']]], + ['lowp_5fimat2x3',['lowp_imat2x3',['../a00294.html#ga8c9e7a388f8e7c52f1e6857dee8afb65',1,'glm']]], + ['lowp_5fimat2x4',['lowp_imat2x4',['../a00294.html#ga9cc13bd1f8dd2933e9fa31fe3f70e16e',1,'glm']]], + ['lowp_5fimat3',['lowp_imat3',['../a00294.html#ga69bfe668f4170379fc1f35d82b060c43',1,'glm']]], + ['lowp_5fimat3x2',['lowp_imat3x2',['../a00294.html#ga33db8f27491d30906cd37c0d86b3f432',1,'glm']]], + ['lowp_5fimat3x3',['lowp_imat3x3',['../a00294.html#ga664f061df00020048c3f8530329ace45',1,'glm']]], + ['lowp_5fimat3x4',['lowp_imat3x4',['../a00294.html#ga9273faab33623d944af4080befbb2c80',1,'glm']]], + ['lowp_5fimat4',['lowp_imat4',['../a00294.html#gad1e77f7270cad461ca4fcb4c3ec2e98c',1,'glm']]], + ['lowp_5fimat4x2',['lowp_imat4x2',['../a00294.html#ga26ec1a2ba08a1488f5f05336858a0f09',1,'glm']]], + ['lowp_5fimat4x3',['lowp_imat4x3',['../a00294.html#ga8f40483a3ae634ead8ad22272c543a33',1,'glm']]], + ['lowp_5fimat4x4',['lowp_imat4x4',['../a00294.html#gaf65677e53ac8e31a107399340d5e2451',1,'glm']]], + ['lowp_5fint16',['lowp_int16',['../a00304.html#ga698e36b01167fc0f037889334dce8def',1,'glm']]], + ['lowp_5fint16_5ft',['lowp_int16_t',['../a00304.html#ga8b2cd8d31eb345b2d641d9261c38db1a',1,'glm']]], + ['lowp_5fint32',['lowp_int32',['../a00304.html#ga864aabca5f3296e176e0c3ed9cc16b02',1,'glm']]], + ['lowp_5fint32_5ft',['lowp_int32_t',['../a00304.html#ga0350631d35ff800e6133ac6243b13cbc',1,'glm']]], + ['lowp_5fint64',['lowp_int64',['../a00304.html#gaf645b1a60203b39c0207baff5e3d8c3c',1,'glm']]], + ['lowp_5fint64_5ft',['lowp_int64_t',['../a00304.html#gaebf341fc4a5be233f7dde962c2e33847',1,'glm']]], + ['lowp_5fint8',['lowp_int8',['../a00304.html#ga760bcf26fdb23a2c3ecad3c928a19ae6',1,'glm']]], + ['lowp_5fint8_5ft',['lowp_int8_t',['../a00304.html#ga119c41d73fe9977358174eb3ac1035a3',1,'glm']]], + ['lowp_5fivec1',['lowp_ivec1',['../a00273.html#ga836dbb1dc516c233b7f5fe9763bc15dc',1,'glm']]], + ['lowp_5fivec2',['lowp_ivec2',['../a00282.html#ga8433c6c1fdd80c0a83941d94aff73fa0',1,'glm']]], + ['lowp_5fivec3',['lowp_ivec3',['../a00282.html#gac1a86a75b3c68ebb704d7094043669d6',1,'glm']]], + ['lowp_5fivec4',['lowp_ivec4',['../a00282.html#ga27fc23da61859cd6356326c5f1c796de',1,'glm']]], + ['lowp_5fmat2',['lowp_mat2',['../a00284.html#gae400c4ce1f5f3e1fa12861b2baed331a',1,'glm']]], + ['lowp_5fmat2x2',['lowp_mat2x2',['../a00284.html#ga2df7cdaf9a571ce7a1b09435f502c694',1,'glm']]], + ['lowp_5fmat2x3',['lowp_mat2x3',['../a00284.html#ga3eee3a74d0f1de8635d846dfb29ec4bb',1,'glm']]], + ['lowp_5fmat2x4',['lowp_mat2x4',['../a00284.html#gade27f8324a16626cbce5d3e7da66b070',1,'glm']]], + ['lowp_5fmat3',['lowp_mat3',['../a00284.html#ga6271ebc85ed778ccc15458c3d86fc854',1,'glm']]], + ['lowp_5fmat3x2',['lowp_mat3x2',['../a00284.html#gaabf6cf90fd31efe25c94965507e98390',1,'glm']]], + ['lowp_5fmat3x3',['lowp_mat3x3',['../a00284.html#ga63362cb4a63fc1be7d2e49cd5d574c84',1,'glm']]], + ['lowp_5fmat3x4',['lowp_mat3x4',['../a00284.html#gac5fc6786688eff02904ca5e7d6960092',1,'glm']]], + ['lowp_5fmat4',['lowp_mat4',['../a00284.html#ga2dedee030500865267cd5851c00c139d',1,'glm']]], + ['lowp_5fmat4x2',['lowp_mat4x2',['../a00284.html#gafa3cdb8f24d09d761ec9ae2a4c7e5e21',1,'glm']]], + ['lowp_5fmat4x3',['lowp_mat4x3',['../a00284.html#ga534c3ef5c3b8fdd8656b6afc205b4b77',1,'glm']]], + ['lowp_5fmat4x4',['lowp_mat4x4',['../a00284.html#ga686468a9a815bd4db8cddae42a6d6b87',1,'glm']]], + ['lowp_5fquat',['lowp_quat',['../a00253.html#gade62c5316c1c11a79c34c00c189558eb',1,'glm']]], + ['lowp_5fu16',['lowp_u16',['../a00304.html#ga504ce1631cb2ac02fcf1d44d8c2aa126',1,'glm']]], + ['lowp_5fu16vec1',['lowp_u16vec1',['../a00304.html#gaa6aab4ee7189b86716f5d7015d43021d',1,'glm']]], + ['lowp_5fu16vec2',['lowp_u16vec2',['../a00304.html#ga2a7d997da9ac29cb931e35bd399f58df',1,'glm']]], + ['lowp_5fu16vec3',['lowp_u16vec3',['../a00304.html#gac0253db6c3d3bae1f591676307a9dd8c',1,'glm']]], + ['lowp_5fu16vec4',['lowp_u16vec4',['../a00304.html#gaa7f00459b9a2e5b2757e70afc0c189e1',1,'glm']]], + ['lowp_5fu32',['lowp_u32',['../a00304.html#ga4f072ada9552e1e480bbb3b1acde5250',1,'glm']]], + ['lowp_5fu32vec1',['lowp_u32vec1',['../a00304.html#gabed3be8dfdc4a0df4bf3271dbd7344c4',1,'glm']]], + ['lowp_5fu32vec2',['lowp_u32vec2',['../a00304.html#gaf7e286e81347011e257ee779524e73b9',1,'glm']]], + ['lowp_5fu32vec3',['lowp_u32vec3',['../a00304.html#gad3ad390560a671b1f676fbf03cd3aa15',1,'glm']]], + ['lowp_5fu32vec4',['lowp_u32vec4',['../a00304.html#ga4502885718742aa238c36a312c3f3f20',1,'glm']]], + ['lowp_5fu64',['lowp_u64',['../a00304.html#ga30069d1f02b19599cbfadf98c23ac6ed',1,'glm']]], + ['lowp_5fu64vec1',['lowp_u64vec1',['../a00304.html#ga859be7b9d3a3765c1cafc14dbcf249a6',1,'glm']]], + ['lowp_5fu64vec2',['lowp_u64vec2',['../a00304.html#ga581485db4ba6ddb501505ee711fd8e42',1,'glm']]], + ['lowp_5fu64vec3',['lowp_u64vec3',['../a00304.html#gaa4a8682bec7ec8af666ef87fae38d5d1',1,'glm']]], + ['lowp_5fu64vec4',['lowp_u64vec4',['../a00304.html#ga6fccc89c34045c86339f6fa781ce96de',1,'glm']]], + ['lowp_5fu8',['lowp_u8',['../a00304.html#ga1b09f03da7ac43055c68a349d5445083',1,'glm']]], + ['lowp_5fu8vec1',['lowp_u8vec1',['../a00304.html#ga4b2e0e10d8d154fec9cab50e216588ec',1,'glm']]], + ['lowp_5fu8vec2',['lowp_u8vec2',['../a00304.html#gae6f63fa38635431e51a8f2602f15c566',1,'glm']]], + ['lowp_5fu8vec3',['lowp_u8vec3',['../a00304.html#ga150dc47e31c6b8cf8461803c8d56f7bd',1,'glm']]], + ['lowp_5fu8vec4',['lowp_u8vec4',['../a00304.html#ga9910927f3a4d1addb3da6a82542a8287',1,'glm']]], + ['lowp_5fuint16',['lowp_uint16',['../a00304.html#gad68bfd9f881856fc863a6ebca0b67f78',1,'glm']]], + ['lowp_5fuint16_5ft',['lowp_uint16_t',['../a00304.html#ga91c4815f93177eb423362fd296a87e9f',1,'glm']]], + ['lowp_5fuint32',['lowp_uint32',['../a00304.html#gaa6a5b461bbf5fe20982472aa51896d4b',1,'glm']]], + ['lowp_5fuint32_5ft',['lowp_uint32_t',['../a00304.html#gaf1b735b4b1145174f4e4167d13778f9b',1,'glm']]], + ['lowp_5fuint64',['lowp_uint64',['../a00304.html#gaa212b805736a759998e312cbdd550fae',1,'glm']]], + ['lowp_5fuint64_5ft',['lowp_uint64_t',['../a00304.html#ga8dd3a3281ae5c970ffe0c41d538aa153',1,'glm']]], + ['lowp_5fuint8',['lowp_uint8',['../a00304.html#gaf49470869e9be2c059629b250619804e',1,'glm']]], + ['lowp_5fuint8_5ft',['lowp_uint8_t',['../a00304.html#ga667b2ece2b258be898812dc2177995d1',1,'glm']]], + ['lowp_5fumat2',['lowp_umat2',['../a00294.html#gaf2fba702d990437fc88ff3f3a76846ee',1,'glm']]], + ['lowp_5fumat2x2',['lowp_umat2x2',['../a00294.html#ga7b2e9d89745f7175051284e54c81d81c',1,'glm']]], + ['lowp_5fumat2x3',['lowp_umat2x3',['../a00294.html#ga3072f90fd86f17a862e21589fbb14c0f',1,'glm']]], + ['lowp_5fumat2x4',['lowp_umat2x4',['../a00294.html#ga8bb45fec4bd77bd81b4ae7eb961a270d',1,'glm']]], + ['lowp_5fumat3',['lowp_umat3',['../a00294.html#gaf1145f72bcdd590f5808c4bc170c2924',1,'glm']]], + ['lowp_5fumat3x2',['lowp_umat3x2',['../a00294.html#ga56ea68c6a6cba8d8c21d17bb14e69c6b',1,'glm']]], + ['lowp_5fumat3x3',['lowp_umat3x3',['../a00294.html#ga4f660a39a395cc14f018f985e7dfbeb5',1,'glm']]], + ['lowp_5fumat3x4',['lowp_umat3x4',['../a00294.html#gaec3d624306bd59649f021864709d56b5',1,'glm']]], + ['lowp_5fumat4',['lowp_umat4',['../a00294.html#gac092c6105827bf9ea080db38074b78eb',1,'glm']]], + ['lowp_5fumat4x2',['lowp_umat4x2',['../a00294.html#ga7716c2b210d141846f1ac4e774adef5e',1,'glm']]], + ['lowp_5fumat4x3',['lowp_umat4x3',['../a00294.html#ga09ab33a2636f5f43f7fae29cfbc20fff',1,'glm']]], + ['lowp_5fumat4x4',['lowp_umat4x4',['../a00294.html#ga10aafc66cf1a0ece336b1c5ae13d0cc0',1,'glm']]], + ['lowp_5fuvec1',['lowp_uvec1',['../a00277.html#ga8bf3fc8a7863d140f48b29341c750402',1,'glm']]], + ['lowp_5fuvec2',['lowp_uvec2',['../a00282.html#ga752ee45136011301b64afd8c310c47a4',1,'glm']]], + ['lowp_5fuvec3',['lowp_uvec3',['../a00282.html#ga7b2efbdd6bdc2f8250c57f3e5dc9a292',1,'glm']]], + ['lowp_5fuvec4',['lowp_uvec4',['../a00282.html#ga5e6a632ec1165cf9f54ceeaa5e9b2b1e',1,'glm']]], + ['lowp_5fvec1',['lowp_vec1',['../a00271.html#ga0a57630f03031706b1d26a7d70d9184c',1,'glm']]], + ['lowp_5fvec2',['lowp_vec2',['../a00282.html#ga30e8baef5d56d5c166872a2bc00f36e9',1,'glm']]], + ['lowp_5fvec3',['lowp_vec3',['../a00282.html#ga868e8e4470a3ef97c7ee3032bf90dc79',1,'glm']]], + ['lowp_5fvec4',['lowp_vec4',['../a00282.html#gace3acb313c800552a9411953eb8b2ed7',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.html index 99e06df1f3..ad03564b81 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.js index 243fbd95fd..1df66ce900 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_7.js @@ -1,200 +1,200 @@ -var searchData= -[ - ['mat2',['mat2',['../a00283.html#ga8dd59e7fc6913ac5d61b86553e9148ba',1,'glm']]], - ['mat2x2',['mat2x2',['../a00283.html#gaaa17ef6bfa4e4f2692348b1460c8efcb',1,'glm']]], - ['mat2x3',['mat2x3',['../a00283.html#ga493ab21243abe564b3f7d381e677d29a',1,'glm']]], - ['mat2x4',['mat2x4',['../a00283.html#ga8e879b57ddd81e5bf5a88929844e8b40',1,'glm']]], - ['mat3',['mat3',['../a00283.html#gaefb0fc7a4960b782c18708bb6b655262',1,'glm']]], - ['mat3x2',['mat3x2',['../a00280.html#ga2c27aea32de57d58aec8e92d5d2181e2',1,'glm']]], - ['mat3x3',['mat3x3',['../a00283.html#gab91887d7565059dac640e3a1921c914a',1,'glm']]], - ['mat3x4',['mat3x4',['../a00283.html#gaf991cad0b34f64e33af186326dbc4d66',1,'glm']]], - ['mat4',['mat4',['../a00283.html#ga0db98d836c5549d31cf64ecd043b7af7',1,'glm']]], - ['mat4x2',['mat4x2',['../a00283.html#gad941c947ad6cdd117a0e8554a4754983',1,'glm']]], - ['mat4x3',['mat4x3',['../a00283.html#gac7574544bb94777bdbd2eb224eb72fd0',1,'glm']]], - ['mat4x4',['mat4x4',['../a00283.html#gab2d35cc2655f44d60958d60a1de34e81',1,'glm']]], - ['mediump_5fbvec1',['mediump_bvec1',['../a00266.html#ga7b4ccb989ba179fa44f7b0879c782621',1,'glm']]], - ['mediump_5fbvec2',['mediump_bvec2',['../a00282.html#ga1e743764869efa9223c2bcefccedaddc',1,'glm']]], - ['mediump_5fbvec3',['mediump_bvec3',['../a00282.html#ga50c783c25082882ef00fe2e5cddba4aa',1,'glm']]], - ['mediump_5fbvec4',['mediump_bvec4',['../a00282.html#ga0be2c682258604a35004f088782a9645',1,'glm']]], - ['mediump_5fddualquat',['mediump_ddualquat',['../a00317.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]], - ['mediump_5fdmat2',['mediump_dmat2',['../a00284.html#ga6205fd19be355600334edef6af0b27cb',1,'glm']]], - ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00284.html#ga51dc36a7719cb458fa5114831c20d64f',1,'glm']]], - ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00284.html#ga741e05adf1f12d5d913f67088db1009a',1,'glm']]], - ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00284.html#ga685bda24922d112786af385deb4deb43',1,'glm']]], - ['mediump_5fdmat3',['mediump_dmat3',['../a00284.html#ga939fbf9c53008a8e84c7dd7cf8de29e2',1,'glm']]], - ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00284.html#ga2076157df85e49b8c021e03e46a376c1',1,'glm']]], - ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00284.html#ga47bd2aae4701ee2fc865674a9df3d7a6',1,'glm']]], - ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00284.html#ga3a132bd05675c2e46556f67cf738600b',1,'glm']]], - ['mediump_5fdmat4',['mediump_dmat4',['../a00284.html#gaf650bc667bf2a0e496b5a9182bc8d378',1,'glm']]], - ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00284.html#gae220fa4c5a7b13ef2ab0420340de645c',1,'glm']]], - ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00284.html#ga43ef60e4d996db15c9c8f069a96ff763',1,'glm']]], - ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00284.html#ga5389b3ab32dc0d72bea00057ab6d1dd3',1,'glm']]], - ['mediump_5fdquat',['mediump_dquat',['../a00250.html#gacdf73b1f7fd8f5a0c79a3934e99c1a14',1,'glm']]], - ['mediump_5fdualquat',['mediump_dualquat',['../a00317.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]], - ['mediump_5fdvec1',['mediump_dvec1',['../a00269.html#ga79a789ebb176b37a45848f7ccdd3b3dd',1,'glm']]], - ['mediump_5fdvec2',['mediump_dvec2',['../a00282.html#ga2f4f6e9a69a0281d06940fd0990cafc3',1,'glm']]], - ['mediump_5fdvec3',['mediump_dvec3',['../a00282.html#ga61c3b1dff4ec7c878af80503141b9f37',1,'glm']]], - ['mediump_5fdvec4',['mediump_dvec4',['../a00282.html#ga23a8bca00914a51542bfea13a4778186',1,'glm']]], - ['mediump_5ff32',['mediump_f32',['../a00304.html#ga3b27fcd9eaa2757f0aaf6b0ce0d85c80',1,'glm']]], - ['mediump_5ff32mat2',['mediump_f32mat2',['../a00304.html#gaf9020c6176a75bc84828ab01ea7dac25',1,'glm']]], - ['mediump_5ff32mat2x2',['mediump_f32mat2x2',['../a00304.html#gaa3ca74a44102035b3ffb5c9c52dfdd3f',1,'glm']]], - ['mediump_5ff32mat2x3',['mediump_f32mat2x3',['../a00304.html#gad4cc829ab1ad3e05ac0a24828a3c95cf',1,'glm']]], - ['mediump_5ff32mat2x4',['mediump_f32mat2x4',['../a00304.html#gae71445ac6cd0b9fba3e5c905cd030fb1',1,'glm']]], - ['mediump_5ff32mat3',['mediump_f32mat3',['../a00304.html#gaaaf878d0d7bfc0aac054fe269a886ca8',1,'glm']]], - ['mediump_5ff32mat3x2',['mediump_f32mat3x2',['../a00304.html#gaaab39454f56cf9fc6d940358ce5e6a0f',1,'glm']]], - ['mediump_5ff32mat3x3',['mediump_f32mat3x3',['../a00304.html#gacd80ad7640e9e32f2edcb8330b1ffe4f',1,'glm']]], - ['mediump_5ff32mat3x4',['mediump_f32mat3x4',['../a00304.html#ga8df705d775b776f5ae6b39e2ab892899',1,'glm']]], - ['mediump_5ff32mat4',['mediump_f32mat4',['../a00304.html#ga4491baaebbc46a20f1cb5da985576bf4',1,'glm']]], - ['mediump_5ff32mat4x2',['mediump_f32mat4x2',['../a00304.html#gab005efe0fa4de1a928e8ddec4bc2c43f',1,'glm']]], - ['mediump_5ff32mat4x3',['mediump_f32mat4x3',['../a00304.html#gade108f16633cf95fa500b5b8c36c8b00',1,'glm']]], - ['mediump_5ff32mat4x4',['mediump_f32mat4x4',['../a00304.html#ga936e95b881ecd2d109459ca41913fa99',1,'glm']]], - ['mediump_5ff32quat',['mediump_f32quat',['../a00304.html#gaa40c03d52dbfbfaf03e75773b9606ff3',1,'glm']]], - ['mediump_5ff32vec1',['mediump_f32vec1',['../a00304.html#gabb33cab7d7c74cc14aa95455d0690865',1,'glm']]], - ['mediump_5ff32vec2',['mediump_f32vec2',['../a00304.html#gad6eb11412a3161ca8dc1d63b2a307c4b',1,'glm']]], - ['mediump_5ff32vec3',['mediump_f32vec3',['../a00304.html#ga062ffef2973bd8241df993c3b30b327c',1,'glm']]], - ['mediump_5ff32vec4',['mediump_f32vec4',['../a00304.html#gad80c84bcd5f585840faa6179f6fd446c',1,'glm']]], - ['mediump_5ff64',['mediump_f64',['../a00304.html#ga6d40381d78472553f878f66e443feeef',1,'glm']]], - ['mediump_5ff64mat2',['mediump_f64mat2',['../a00304.html#gac1281da5ded55047e8892b0e1f1ae965',1,'glm']]], - ['mediump_5ff64mat2x2',['mediump_f64mat2x2',['../a00304.html#ga4fd527644cccbca4cb205320eab026f3',1,'glm']]], - ['mediump_5ff64mat2x3',['mediump_f64mat2x3',['../a00304.html#gafd9a6ebc0c7b95f5c581d00d16a17c54',1,'glm']]], - ['mediump_5ff64mat2x4',['mediump_f64mat2x4',['../a00304.html#gaf306dd69e53633636aee38cea79d4cb7',1,'glm']]], - ['mediump_5ff64mat3',['mediump_f64mat3',['../a00304.html#gad35fb67eb1d03c5a514f0bd7aed1c776',1,'glm']]], - ['mediump_5ff64mat3x2',['mediump_f64mat3x2',['../a00304.html#gacd926d36a72433f6cac51dd60fa13107',1,'glm']]], - ['mediump_5ff64mat3x3',['mediump_f64mat3x3',['../a00304.html#ga84d88a6e3a54ccd2b67e195af4a4c23e',1,'glm']]], - ['mediump_5ff64mat3x4',['mediump_f64mat3x4',['../a00304.html#gad38c544d332b8c4bd0b70b1bd9feccc2',1,'glm']]], - ['mediump_5ff64mat4',['mediump_f64mat4',['../a00304.html#gaa805ef691c711dc41e2776cfb67f5cf5',1,'glm']]], - ['mediump_5ff64mat4x2',['mediump_f64mat4x2',['../a00304.html#ga17d36f0ea22314117e1cec9594b33945',1,'glm']]], - ['mediump_5ff64mat4x3',['mediump_f64mat4x3',['../a00304.html#ga54697a78f9a4643af6a57fc2e626ec0d',1,'glm']]], - ['mediump_5ff64mat4x4',['mediump_f64mat4x4',['../a00304.html#ga66edb8de17b9235029472f043ae107e9',1,'glm']]], - ['mediump_5ff64quat',['mediump_f64quat',['../a00304.html#ga5e52f485059ce6e3010c590b882602c9',1,'glm']]], - ['mediump_5ff64vec1',['mediump_f64vec1',['../a00304.html#gac30fdf8afa489400053275b6a3350127',1,'glm']]], - ['mediump_5ff64vec2',['mediump_f64vec2',['../a00304.html#ga8ebc04ecf6440c4ee24718a16600ce6b',1,'glm']]], - ['mediump_5ff64vec3',['mediump_f64vec3',['../a00304.html#ga461c4c7d0757404dd0dba931760b25cf',1,'glm']]], - ['mediump_5ff64vec4',['mediump_f64vec4',['../a00304.html#gacfea053bd6bb3eddb996a4f94de22a3e',1,'glm']]], - ['mediump_5ffdualquat',['mediump_fdualquat',['../a00317.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]], - ['mediump_5ffloat32',['mediump_float32',['../a00304.html#ga7812bf00676fb1a86dcd62cca354d2c7',1,'glm']]], - ['mediump_5ffloat32_5ft',['mediump_float32_t',['../a00304.html#gae4dee61f8fe1caccec309fbed02faf12',1,'glm']]], - ['mediump_5ffloat64',['mediump_float64',['../a00304.html#gab83d8aae6e4f115e97a785e8574a115f',1,'glm']]], - ['mediump_5ffloat64_5ft',['mediump_float64_t',['../a00304.html#gac61843e4fa96c1f4e9d8316454f32a8e',1,'glm']]], - ['mediump_5ffmat2',['mediump_fmat2',['../a00304.html#ga74e9133378fd0b4da8ac0bc0876702ff',1,'glm']]], - ['mediump_5ffmat2x2',['mediump_fmat2x2',['../a00304.html#ga98a687c17b174ea316b5f397b64f44bc',1,'glm']]], - ['mediump_5ffmat2x3',['mediump_fmat2x3',['../a00304.html#gaa03f939d90d5ef157df957d93f0b9a64',1,'glm']]], - ['mediump_5ffmat2x4',['mediump_fmat2x4',['../a00304.html#ga35223623e9ccebd8a281873b71b7d213',1,'glm']]], - ['mediump_5ffmat3',['mediump_fmat3',['../a00304.html#ga80823dfad5dba98512c76af498343847',1,'glm']]], - ['mediump_5ffmat3x2',['mediump_fmat3x2',['../a00304.html#ga42569e5b92f8635cedeadb1457ee1467',1,'glm']]], - ['mediump_5ffmat3x3',['mediump_fmat3x3',['../a00304.html#gaa6f526388c74a66b3d52315a14d434ae',1,'glm']]], - ['mediump_5ffmat3x4',['mediump_fmat3x4',['../a00304.html#gaefe8ef520c6cb78590ebbefe648da4d4',1,'glm']]], - ['mediump_5ffmat4',['mediump_fmat4',['../a00304.html#gac1c38778c0b5a1263f07753c05a4f7b9',1,'glm']]], - ['mediump_5ffmat4x2',['mediump_fmat4x2',['../a00304.html#gacea38a85893e17e6834b6cb09a9ad0cf',1,'glm']]], - ['mediump_5ffmat4x3',['mediump_fmat4x3',['../a00304.html#ga41ad497f7eae211556aefd783cb02b90',1,'glm']]], - ['mediump_5ffmat4x4',['mediump_fmat4x4',['../a00304.html#ga22e27beead07bff4d5ce9d6065a57279',1,'glm']]], - ['mediump_5ffvec1',['mediump_fvec1',['../a00304.html#ga367964fc2133d3f1b5b3755ff9cf6c9b',1,'glm']]], - ['mediump_5ffvec2',['mediump_fvec2',['../a00304.html#ga44bfa55cda5dbf53f24a1fb7610393d6',1,'glm']]], - ['mediump_5ffvec3',['mediump_fvec3',['../a00304.html#ga999dc6703ad16e3d3c26b74ea8083f07',1,'glm']]], - ['mediump_5ffvec4',['mediump_fvec4',['../a00304.html#ga1bed890513c0f50b7e7ba4f7f359dbfb',1,'glm']]], - ['mediump_5fi16',['mediump_i16',['../a00304.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]], - ['mediump_5fi16vec1',['mediump_i16vec1',['../a00304.html#gacc44265ed440bf5e6e566782570de842',1,'glm']]], - ['mediump_5fi16vec2',['mediump_i16vec2',['../a00304.html#ga4b5e2c9aaa5d7717bf71179aefa12e88',1,'glm']]], - ['mediump_5fi16vec3',['mediump_i16vec3',['../a00304.html#ga3be6c7fc5fe08fa2274bdb001d5f2633',1,'glm']]], - ['mediump_5fi16vec4',['mediump_i16vec4',['../a00304.html#gaf52982bb23e3a3772649b2c5bb84b107',1,'glm']]], - ['mediump_5fi32',['mediump_i32',['../a00304.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]], - ['mediump_5fi32vec1',['mediump_i32vec1',['../a00304.html#ga46a57f71e430637559097a732b550a7e',1,'glm']]], - ['mediump_5fi32vec2',['mediump_i32vec2',['../a00304.html#ga20bf224bd4f8a24ecc4ed2004a40c219',1,'glm']]], - ['mediump_5fi32vec3',['mediump_i32vec3',['../a00304.html#ga13a221b910aa9eb1b04ca1c86e81015a',1,'glm']]], - ['mediump_5fi32vec4',['mediump_i32vec4',['../a00304.html#ga6addd4dfee87fc09ab9525e3d07db4c8',1,'glm']]], - ['mediump_5fi64',['mediump_i64',['../a00304.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]], - ['mediump_5fi64vec1',['mediump_i64vec1',['../a00304.html#ga8343e9d244fb17a5bbf0d94d36b3695e',1,'glm']]], - ['mediump_5fi64vec2',['mediump_i64vec2',['../a00304.html#ga2c94aeae3457325944ca1059b0b68330',1,'glm']]], - ['mediump_5fi64vec3',['mediump_i64vec3',['../a00304.html#ga8089722ffdf868cdfe721dea1fb6a90e',1,'glm']]], - ['mediump_5fi64vec4',['mediump_i64vec4',['../a00304.html#gabf1f16c5ab8cb0484bd1e846ae4368f1',1,'glm']]], - ['mediump_5fi8',['mediump_i8',['../a00304.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]], - ['mediump_5fi8vec1',['mediump_i8vec1',['../a00304.html#ga85e8893f4ae3630065690a9000c0c483',1,'glm']]], - ['mediump_5fi8vec2',['mediump_i8vec2',['../a00304.html#ga2a8bdc32184ea0a522ef7bd90640cf67',1,'glm']]], - ['mediump_5fi8vec3',['mediump_i8vec3',['../a00304.html#ga6dd1c1618378c6f94d522a61c28773c9',1,'glm']]], - ['mediump_5fi8vec4',['mediump_i8vec4',['../a00304.html#gac7bb04fb857ef7b520e49f6c381432be',1,'glm']]], - ['mediump_5fimat2',['mediump_imat2',['../a00294.html#ga20f4cc7ab23e2aa1f4db9fdb5496d378',1,'glm']]], - ['mediump_5fimat2x2',['mediump_imat2x2',['../a00294.html#ga4b2aeb11a329940721dda9583e71f856',1,'glm']]], - ['mediump_5fimat2x3',['mediump_imat2x3',['../a00294.html#ga74362470ba99843ac70aee5ac38cc674',1,'glm']]], - ['mediump_5fimat2x4',['mediump_imat2x4',['../a00294.html#ga8da25cd380ba30fc5b68a4687deb3e09',1,'glm']]], - ['mediump_5fimat3',['mediump_imat3',['../a00294.html#ga6c63bdc736efd3466e0730de0251cb71',1,'glm']]], - ['mediump_5fimat3x2',['mediump_imat3x2',['../a00294.html#gac0b4e42d648fb3eaf4bb88da82ecc809',1,'glm']]], - ['mediump_5fimat3x3',['mediump_imat3x3',['../a00294.html#gad99cc2aad8fc57f068cfa7719dbbea12',1,'glm']]], - ['mediump_5fimat3x4',['mediump_imat3x4',['../a00294.html#ga67689a518b181a26540bc44a163525cd',1,'glm']]], - ['mediump_5fimat4',['mediump_imat4',['../a00294.html#gaf348552978553630d2a00b78eb887ced',1,'glm']]], - ['mediump_5fimat4x2',['mediump_imat4x2',['../a00294.html#ga8b2d35816f7103f0f4c82dd2f27571fc',1,'glm']]], - ['mediump_5fimat4x3',['mediump_imat4x3',['../a00294.html#ga5b10acc696759e03f6ab918f4467e94c',1,'glm']]], - ['mediump_5fimat4x4',['mediump_imat4x4',['../a00294.html#ga2596869d154dec1180beadbb9df80501',1,'glm']]], - ['mediump_5fint16',['mediump_int16',['../a00304.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]], - ['mediump_5fint16_5ft',['mediump_int16_t',['../a00304.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]], - ['mediump_5fint32',['mediump_int32',['../a00304.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]], - ['mediump_5fint32_5ft',['mediump_int32_t',['../a00304.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]], - ['mediump_5fint64',['mediump_int64',['../a00304.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]], - ['mediump_5fint64_5ft',['mediump_int64_t',['../a00304.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]], - ['mediump_5fint8',['mediump_int8',['../a00304.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]], - ['mediump_5fint8_5ft',['mediump_int8_t',['../a00304.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]], - ['mediump_5fivec1',['mediump_ivec1',['../a00273.html#gad628c608970b3d0aa6cfb63ce6e53e56',1,'glm']]], - ['mediump_5fivec2',['mediump_ivec2',['../a00282.html#gac57496299d276ed97044074097bd5e2c',1,'glm']]], - ['mediump_5fivec3',['mediump_ivec3',['../a00282.html#ga27cfb51e0dbe15bba27a14a8590e8466',1,'glm']]], - ['mediump_5fivec4',['mediump_ivec4',['../a00282.html#ga92a204c37e66ac6c1dc7ae91142f2ea5',1,'glm']]], - ['mediump_5fmat2',['mediump_mat2',['../a00284.html#ga745452bd9c89f5ad948203e4fb4b4ea3',1,'glm']]], - ['mediump_5fmat2x2',['mediump_mat2x2',['../a00284.html#ga0cdf57d29f9448864237b2fb3e39aa1d',1,'glm']]], - ['mediump_5fmat2x3',['mediump_mat2x3',['../a00284.html#ga497d513d552d927537d61fa11e3701ab',1,'glm']]], - ['mediump_5fmat2x4',['mediump_mat2x4',['../a00284.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5',1,'glm']]], - ['mediump_5fmat3',['mediump_mat3',['../a00284.html#ga5aae49834d02732942f44e61d7bce136',1,'glm']]], - ['mediump_5fmat3x2',['mediump_mat3x2',['../a00284.html#ga9e1c9ee65fef547bde793e69723e24eb',1,'glm']]], - ['mediump_5fmat3x3',['mediump_mat3x3',['../a00284.html#gabc0f2f4ad21c90b341881cf056f8650e',1,'glm']]], - ['mediump_5fmat3x4',['mediump_mat3x4',['../a00284.html#gaa669c6675c3405f76c0b14020d1c0d61',1,'glm']]], - ['mediump_5fmat4',['mediump_mat4',['../a00284.html#gab8531bc3f269aa45835cd6e1972b7fc7',1,'glm']]], - ['mediump_5fmat4x2',['mediump_mat4x2',['../a00284.html#gad75706b70545412ba9ac27d5ee210f66',1,'glm']]], - ['mediump_5fmat4x3',['mediump_mat4x3',['../a00284.html#ga4a1440b5ea3cf84d5b06c79b534bd770',1,'glm']]], - ['mediump_5fmat4x4',['mediump_mat4x4',['../a00284.html#ga15bca2b70917d9752231160d9da74b01',1,'glm']]], - ['mediump_5fquat',['mediump_quat',['../a00253.html#gad2a59409de1bb12ccb6eb692ee7e9d8d',1,'glm']]], - ['mediump_5fu16',['mediump_u16',['../a00304.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]], - ['mediump_5fu16vec1',['mediump_u16vec1',['../a00304.html#ga400ce8cc566de093a9b28e59e220d6e4',1,'glm']]], - ['mediump_5fu16vec2',['mediump_u16vec2',['../a00304.html#ga429c201b3e92c90b4ef4356f2be52ee1',1,'glm']]], - ['mediump_5fu16vec3',['mediump_u16vec3',['../a00304.html#gac9ba20234b0c3751d45ce575fc71e551',1,'glm']]], - ['mediump_5fu16vec4',['mediump_u16vec4',['../a00304.html#ga5793393686ce5bd2d5968ff9144762b8',1,'glm']]], - ['mediump_5fu32',['mediump_u32',['../a00304.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]], - ['mediump_5fu32vec1',['mediump_u32vec1',['../a00304.html#ga8a11ccd2e38f674bbf3c2d1afc232aee',1,'glm']]], - ['mediump_5fu32vec2',['mediump_u32vec2',['../a00304.html#ga94f74851fce338549c705b5f0d601c4f',1,'glm']]], - ['mediump_5fu32vec3',['mediump_u32vec3',['../a00304.html#ga012c24c8fc69707b90260474c70275a2',1,'glm']]], - ['mediump_5fu32vec4',['mediump_u32vec4',['../a00304.html#ga5d43ee8b5dbaa06c327b03b83682598a',1,'glm']]], - ['mediump_5fu64',['mediump_u64',['../a00304.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]], - ['mediump_5fu64vec1',['mediump_u64vec1',['../a00304.html#ga659f372ccb8307d5db5beca942cde5e8',1,'glm']]], - ['mediump_5fu64vec2',['mediump_u64vec2',['../a00304.html#ga73a08ef5a74798f3a1a99250b5f86a7d',1,'glm']]], - ['mediump_5fu64vec3',['mediump_u64vec3',['../a00304.html#ga1900c6ab74acd392809425953359ef52',1,'glm']]], - ['mediump_5fu64vec4',['mediump_u64vec4',['../a00304.html#gaec7ee455cb379ec2993e81482123e1cc',1,'glm']]], - ['mediump_5fu8',['mediump_u8',['../a00304.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]], - ['mediump_5fu8vec1',['mediump_u8vec1',['../a00304.html#ga4a43050843b141bdc7e85437faef6f55',1,'glm']]], - ['mediump_5fu8vec2',['mediump_u8vec2',['../a00304.html#ga907f85d4a0eac3d8aaf571e5c2647194',1,'glm']]], - ['mediump_5fu8vec3',['mediump_u8vec3',['../a00304.html#gaddc6f7748b699254942c5216b68f8f7f',1,'glm']]], - ['mediump_5fu8vec4',['mediump_u8vec4',['../a00304.html#gaaf4ee3b76d43d98da02ec399b99bda4b',1,'glm']]], - ['mediump_5fuint16',['mediump_uint16',['../a00304.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]], - ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00304.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]], - ['mediump_5fuint32',['mediump_uint32',['../a00304.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]], - ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00304.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]], - ['mediump_5fuint64',['mediump_uint64',['../a00304.html#ga30652709815ad9404272a31957daa59e',1,'glm']]], - ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00304.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]], - ['mediump_5fuint8',['mediump_uint8',['../a00304.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]], - ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00304.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]], - ['mediump_5fumat2',['mediump_umat2',['../a00294.html#ga43041378b3410ea951b7de0dfd2bc7ee',1,'glm']]], - ['mediump_5fumat2x2',['mediump_umat2x2',['../a00294.html#ga3b209b1b751f041422137e3c065dfa98',1,'glm']]], - ['mediump_5fumat2x3',['mediump_umat2x3',['../a00294.html#gaee2c1f13b41f4c92ea5b3efe367a1306',1,'glm']]], - ['mediump_5fumat2x4',['mediump_umat2x4',['../a00294.html#gae1317ddca16d01e119a40b7f0ee85f95',1,'glm']]], - ['mediump_5fumat3',['mediump_umat3',['../a00294.html#ga1730dbe3c67801f53520b06d1aa0a34a',1,'glm']]], - ['mediump_5fumat3x2',['mediump_umat3x2',['../a00294.html#gaadc28bfdc8ebca81ae85121b11994970',1,'glm']]], - ['mediump_5fumat3x3',['mediump_umat3x3',['../a00294.html#ga48f2fc38d3f7fab3cfbc961278ced53d',1,'glm']]], - ['mediump_5fumat3x4',['mediump_umat3x4',['../a00294.html#ga78009a1e4ca64217e46b418535e52546',1,'glm']]], - ['mediump_5fumat4',['mediump_umat4',['../a00294.html#ga5087c2beb26a11d9af87432e554cf9d1',1,'glm']]], - ['mediump_5fumat4x2',['mediump_umat4x2',['../a00294.html#gaf35aefd81cc13718f6b059623f7425fa',1,'glm']]], - ['mediump_5fumat4x3',['mediump_umat4x3',['../a00294.html#ga4e1bed14fbc7f4b376aaed064f89f0fb',1,'glm']]], - ['mediump_5fumat4x4',['mediump_umat4x4',['../a00294.html#gaa9428fc8430dc552aad920653f822ef3',1,'glm']]], - ['mediump_5fuvec1',['mediump_uvec1',['../a00277.html#ga38fde73aaf1420175ece8d4882558a3f',1,'glm']]], - ['mediump_5fuvec2',['mediump_uvec2',['../a00282.html#gaa3b4f7806dad03d83bb3da0baa1e3b9b',1,'glm']]], - ['mediump_5fuvec3',['mediump_uvec3',['../a00282.html#ga83b7df38feefbb357f3673d950fafef7',1,'glm']]], - ['mediump_5fuvec4',['mediump_uvec4',['../a00282.html#ga64ed0deb6573375b7016daf82ffd53a7',1,'glm']]], - ['mediump_5fvec1',['mediump_vec1',['../a00271.html#ga645f53e6b8056609023a894b4e2beef4',1,'glm']]], - ['mediump_5fvec2',['mediump_vec2',['../a00282.html#gabc61976261c406520c7a8e4d946dc3f0',1,'glm']]], - ['mediump_5fvec3',['mediump_vec3',['../a00282.html#ga2384e263df19f1404b733016eff78fca',1,'glm']]], - ['mediump_5fvec4',['mediump_vec4',['../a00282.html#ga5c6978d3ffba06738416a33083853fc0',1,'glm']]] -]; +var searchData= +[ + ['mat2',['mat2',['../a00283.html#ga8dd59e7fc6913ac5d61b86553e9148ba',1,'glm']]], + ['mat2x2',['mat2x2',['../a00283.html#gaaa17ef6bfa4e4f2692348b1460c8efcb',1,'glm']]], + ['mat2x3',['mat2x3',['../a00283.html#ga493ab21243abe564b3f7d381e677d29a',1,'glm']]], + ['mat2x4',['mat2x4',['../a00283.html#ga8e879b57ddd81e5bf5a88929844e8b40',1,'glm']]], + ['mat3',['mat3',['../a00283.html#gaefb0fc7a4960b782c18708bb6b655262',1,'glm']]], + ['mat3x2',['mat3x2',['../a00280.html#ga2c27aea32de57d58aec8e92d5d2181e2',1,'glm']]], + ['mat3x3',['mat3x3',['../a00283.html#gab91887d7565059dac640e3a1921c914a',1,'glm']]], + ['mat3x4',['mat3x4',['../a00283.html#gaf991cad0b34f64e33af186326dbc4d66',1,'glm']]], + ['mat4',['mat4',['../a00283.html#ga0db98d836c5549d31cf64ecd043b7af7',1,'glm']]], + ['mat4x2',['mat4x2',['../a00283.html#gad941c947ad6cdd117a0e8554a4754983',1,'glm']]], + ['mat4x3',['mat4x3',['../a00283.html#gac7574544bb94777bdbd2eb224eb72fd0',1,'glm']]], + ['mat4x4',['mat4x4',['../a00283.html#gab2d35cc2655f44d60958d60a1de34e81',1,'glm']]], + ['mediump_5fbvec1',['mediump_bvec1',['../a00266.html#ga7b4ccb989ba179fa44f7b0879c782621',1,'glm']]], + ['mediump_5fbvec2',['mediump_bvec2',['../a00282.html#ga1e743764869efa9223c2bcefccedaddc',1,'glm']]], + ['mediump_5fbvec3',['mediump_bvec3',['../a00282.html#ga50c783c25082882ef00fe2e5cddba4aa',1,'glm']]], + ['mediump_5fbvec4',['mediump_bvec4',['../a00282.html#ga0be2c682258604a35004f088782a9645',1,'glm']]], + ['mediump_5fddualquat',['mediump_ddualquat',['../a00317.html#ga0fb11e48e2d16348ccb06a25213641b4',1,'glm']]], + ['mediump_5fdmat2',['mediump_dmat2',['../a00284.html#ga6205fd19be355600334edef6af0b27cb',1,'glm']]], + ['mediump_5fdmat2x2',['mediump_dmat2x2',['../a00284.html#ga51dc36a7719cb458fa5114831c20d64f',1,'glm']]], + ['mediump_5fdmat2x3',['mediump_dmat2x3',['../a00284.html#ga741e05adf1f12d5d913f67088db1009a',1,'glm']]], + ['mediump_5fdmat2x4',['mediump_dmat2x4',['../a00284.html#ga685bda24922d112786af385deb4deb43',1,'glm']]], + ['mediump_5fdmat3',['mediump_dmat3',['../a00284.html#ga939fbf9c53008a8e84c7dd7cf8de29e2',1,'glm']]], + ['mediump_5fdmat3x2',['mediump_dmat3x2',['../a00284.html#ga2076157df85e49b8c021e03e46a376c1',1,'glm']]], + ['mediump_5fdmat3x3',['mediump_dmat3x3',['../a00284.html#ga47bd2aae4701ee2fc865674a9df3d7a6',1,'glm']]], + ['mediump_5fdmat3x4',['mediump_dmat3x4',['../a00284.html#ga3a132bd05675c2e46556f67cf738600b',1,'glm']]], + ['mediump_5fdmat4',['mediump_dmat4',['../a00284.html#gaf650bc667bf2a0e496b5a9182bc8d378',1,'glm']]], + ['mediump_5fdmat4x2',['mediump_dmat4x2',['../a00284.html#gae220fa4c5a7b13ef2ab0420340de645c',1,'glm']]], + ['mediump_5fdmat4x3',['mediump_dmat4x3',['../a00284.html#ga43ef60e4d996db15c9c8f069a96ff763',1,'glm']]], + ['mediump_5fdmat4x4',['mediump_dmat4x4',['../a00284.html#ga5389b3ab32dc0d72bea00057ab6d1dd3',1,'glm']]], + ['mediump_5fdquat',['mediump_dquat',['../a00250.html#gacdf73b1f7fd8f5a0c79a3934e99c1a14',1,'glm']]], + ['mediump_5fdualquat',['mediump_dualquat',['../a00317.html#gaa7aeb54c167712b38f2178a1be2360ad',1,'glm']]], + ['mediump_5fdvec1',['mediump_dvec1',['../a00269.html#ga79a789ebb176b37a45848f7ccdd3b3dd',1,'glm']]], + ['mediump_5fdvec2',['mediump_dvec2',['../a00282.html#ga2f4f6e9a69a0281d06940fd0990cafc3',1,'glm']]], + ['mediump_5fdvec3',['mediump_dvec3',['../a00282.html#ga61c3b1dff4ec7c878af80503141b9f37',1,'glm']]], + ['mediump_5fdvec4',['mediump_dvec4',['../a00282.html#ga23a8bca00914a51542bfea13a4778186',1,'glm']]], + ['mediump_5ff32',['mediump_f32',['../a00304.html#ga3b27fcd9eaa2757f0aaf6b0ce0d85c80',1,'glm']]], + ['mediump_5ff32mat2',['mediump_f32mat2',['../a00304.html#gaf9020c6176a75bc84828ab01ea7dac25',1,'glm']]], + ['mediump_5ff32mat2x2',['mediump_f32mat2x2',['../a00304.html#gaa3ca74a44102035b3ffb5c9c52dfdd3f',1,'glm']]], + ['mediump_5ff32mat2x3',['mediump_f32mat2x3',['../a00304.html#gad4cc829ab1ad3e05ac0a24828a3c95cf',1,'glm']]], + ['mediump_5ff32mat2x4',['mediump_f32mat2x4',['../a00304.html#gae71445ac6cd0b9fba3e5c905cd030fb1',1,'glm']]], + ['mediump_5ff32mat3',['mediump_f32mat3',['../a00304.html#gaaaf878d0d7bfc0aac054fe269a886ca8',1,'glm']]], + ['mediump_5ff32mat3x2',['mediump_f32mat3x2',['../a00304.html#gaaab39454f56cf9fc6d940358ce5e6a0f',1,'glm']]], + ['mediump_5ff32mat3x3',['mediump_f32mat3x3',['../a00304.html#gacd80ad7640e9e32f2edcb8330b1ffe4f',1,'glm']]], + ['mediump_5ff32mat3x4',['mediump_f32mat3x4',['../a00304.html#ga8df705d775b776f5ae6b39e2ab892899',1,'glm']]], + ['mediump_5ff32mat4',['mediump_f32mat4',['../a00304.html#ga4491baaebbc46a20f1cb5da985576bf4',1,'glm']]], + ['mediump_5ff32mat4x2',['mediump_f32mat4x2',['../a00304.html#gab005efe0fa4de1a928e8ddec4bc2c43f',1,'glm']]], + ['mediump_5ff32mat4x3',['mediump_f32mat4x3',['../a00304.html#gade108f16633cf95fa500b5b8c36c8b00',1,'glm']]], + ['mediump_5ff32mat4x4',['mediump_f32mat4x4',['../a00304.html#ga936e95b881ecd2d109459ca41913fa99',1,'glm']]], + ['mediump_5ff32quat',['mediump_f32quat',['../a00304.html#gaa40c03d52dbfbfaf03e75773b9606ff3',1,'glm']]], + ['mediump_5ff32vec1',['mediump_f32vec1',['../a00304.html#gabb33cab7d7c74cc14aa95455d0690865',1,'glm']]], + ['mediump_5ff32vec2',['mediump_f32vec2',['../a00304.html#gad6eb11412a3161ca8dc1d63b2a307c4b',1,'glm']]], + ['mediump_5ff32vec3',['mediump_f32vec3',['../a00304.html#ga062ffef2973bd8241df993c3b30b327c',1,'glm']]], + ['mediump_5ff32vec4',['mediump_f32vec4',['../a00304.html#gad80c84bcd5f585840faa6179f6fd446c',1,'glm']]], + ['mediump_5ff64',['mediump_f64',['../a00304.html#ga6d40381d78472553f878f66e443feeef',1,'glm']]], + ['mediump_5ff64mat2',['mediump_f64mat2',['../a00304.html#gac1281da5ded55047e8892b0e1f1ae965',1,'glm']]], + ['mediump_5ff64mat2x2',['mediump_f64mat2x2',['../a00304.html#ga4fd527644cccbca4cb205320eab026f3',1,'glm']]], + ['mediump_5ff64mat2x3',['mediump_f64mat2x3',['../a00304.html#gafd9a6ebc0c7b95f5c581d00d16a17c54',1,'glm']]], + ['mediump_5ff64mat2x4',['mediump_f64mat2x4',['../a00304.html#gaf306dd69e53633636aee38cea79d4cb7',1,'glm']]], + ['mediump_5ff64mat3',['mediump_f64mat3',['../a00304.html#gad35fb67eb1d03c5a514f0bd7aed1c776',1,'glm']]], + ['mediump_5ff64mat3x2',['mediump_f64mat3x2',['../a00304.html#gacd926d36a72433f6cac51dd60fa13107',1,'glm']]], + ['mediump_5ff64mat3x3',['mediump_f64mat3x3',['../a00304.html#ga84d88a6e3a54ccd2b67e195af4a4c23e',1,'glm']]], + ['mediump_5ff64mat3x4',['mediump_f64mat3x4',['../a00304.html#gad38c544d332b8c4bd0b70b1bd9feccc2',1,'glm']]], + ['mediump_5ff64mat4',['mediump_f64mat4',['../a00304.html#gaa805ef691c711dc41e2776cfb67f5cf5',1,'glm']]], + ['mediump_5ff64mat4x2',['mediump_f64mat4x2',['../a00304.html#ga17d36f0ea22314117e1cec9594b33945',1,'glm']]], + ['mediump_5ff64mat4x3',['mediump_f64mat4x3',['../a00304.html#ga54697a78f9a4643af6a57fc2e626ec0d',1,'glm']]], + ['mediump_5ff64mat4x4',['mediump_f64mat4x4',['../a00304.html#ga66edb8de17b9235029472f043ae107e9',1,'glm']]], + ['mediump_5ff64quat',['mediump_f64quat',['../a00304.html#ga5e52f485059ce6e3010c590b882602c9',1,'glm']]], + ['mediump_5ff64vec1',['mediump_f64vec1',['../a00304.html#gac30fdf8afa489400053275b6a3350127',1,'glm']]], + ['mediump_5ff64vec2',['mediump_f64vec2',['../a00304.html#ga8ebc04ecf6440c4ee24718a16600ce6b',1,'glm']]], + ['mediump_5ff64vec3',['mediump_f64vec3',['../a00304.html#ga461c4c7d0757404dd0dba931760b25cf',1,'glm']]], + ['mediump_5ff64vec4',['mediump_f64vec4',['../a00304.html#gacfea053bd6bb3eddb996a4f94de22a3e',1,'glm']]], + ['mediump_5ffdualquat',['mediump_fdualquat',['../a00317.html#ga4a6b594ff7e81150d8143001367a9431',1,'glm']]], + ['mediump_5ffloat32',['mediump_float32',['../a00304.html#ga7812bf00676fb1a86dcd62cca354d2c7',1,'glm']]], + ['mediump_5ffloat32_5ft',['mediump_float32_t',['../a00304.html#gae4dee61f8fe1caccec309fbed02faf12',1,'glm']]], + ['mediump_5ffloat64',['mediump_float64',['../a00304.html#gab83d8aae6e4f115e97a785e8574a115f',1,'glm']]], + ['mediump_5ffloat64_5ft',['mediump_float64_t',['../a00304.html#gac61843e4fa96c1f4e9d8316454f32a8e',1,'glm']]], + ['mediump_5ffmat2',['mediump_fmat2',['../a00304.html#ga74e9133378fd0b4da8ac0bc0876702ff',1,'glm']]], + ['mediump_5ffmat2x2',['mediump_fmat2x2',['../a00304.html#ga98a687c17b174ea316b5f397b64f44bc',1,'glm']]], + ['mediump_5ffmat2x3',['mediump_fmat2x3',['../a00304.html#gaa03f939d90d5ef157df957d93f0b9a64',1,'glm']]], + ['mediump_5ffmat2x4',['mediump_fmat2x4',['../a00304.html#ga35223623e9ccebd8a281873b71b7d213',1,'glm']]], + ['mediump_5ffmat3',['mediump_fmat3',['../a00304.html#ga80823dfad5dba98512c76af498343847',1,'glm']]], + ['mediump_5ffmat3x2',['mediump_fmat3x2',['../a00304.html#ga42569e5b92f8635cedeadb1457ee1467',1,'glm']]], + ['mediump_5ffmat3x3',['mediump_fmat3x3',['../a00304.html#gaa6f526388c74a66b3d52315a14d434ae',1,'glm']]], + ['mediump_5ffmat3x4',['mediump_fmat3x4',['../a00304.html#gaefe8ef520c6cb78590ebbefe648da4d4',1,'glm']]], + ['mediump_5ffmat4',['mediump_fmat4',['../a00304.html#gac1c38778c0b5a1263f07753c05a4f7b9',1,'glm']]], + ['mediump_5ffmat4x2',['mediump_fmat4x2',['../a00304.html#gacea38a85893e17e6834b6cb09a9ad0cf',1,'glm']]], + ['mediump_5ffmat4x3',['mediump_fmat4x3',['../a00304.html#ga41ad497f7eae211556aefd783cb02b90',1,'glm']]], + ['mediump_5ffmat4x4',['mediump_fmat4x4',['../a00304.html#ga22e27beead07bff4d5ce9d6065a57279',1,'glm']]], + ['mediump_5ffvec1',['mediump_fvec1',['../a00304.html#ga367964fc2133d3f1b5b3755ff9cf6c9b',1,'glm']]], + ['mediump_5ffvec2',['mediump_fvec2',['../a00304.html#ga44bfa55cda5dbf53f24a1fb7610393d6',1,'glm']]], + ['mediump_5ffvec3',['mediump_fvec3',['../a00304.html#ga999dc6703ad16e3d3c26b74ea8083f07',1,'glm']]], + ['mediump_5ffvec4',['mediump_fvec4',['../a00304.html#ga1bed890513c0f50b7e7ba4f7f359dbfb',1,'glm']]], + ['mediump_5fi16',['mediump_i16',['../a00304.html#ga62a17cddeb4dffb4e18fe3aea23f051a',1,'glm']]], + ['mediump_5fi16vec1',['mediump_i16vec1',['../a00304.html#gacc44265ed440bf5e6e566782570de842',1,'glm']]], + ['mediump_5fi16vec2',['mediump_i16vec2',['../a00304.html#ga4b5e2c9aaa5d7717bf71179aefa12e88',1,'glm']]], + ['mediump_5fi16vec3',['mediump_i16vec3',['../a00304.html#ga3be6c7fc5fe08fa2274bdb001d5f2633',1,'glm']]], + ['mediump_5fi16vec4',['mediump_i16vec4',['../a00304.html#gaf52982bb23e3a3772649b2c5bb84b107',1,'glm']]], + ['mediump_5fi32',['mediump_i32',['../a00304.html#gaf5e94bf2a20af7601787c154751dc2e1',1,'glm']]], + ['mediump_5fi32vec1',['mediump_i32vec1',['../a00304.html#ga46a57f71e430637559097a732b550a7e',1,'glm']]], + ['mediump_5fi32vec2',['mediump_i32vec2',['../a00304.html#ga20bf224bd4f8a24ecc4ed2004a40c219',1,'glm']]], + ['mediump_5fi32vec3',['mediump_i32vec3',['../a00304.html#ga13a221b910aa9eb1b04ca1c86e81015a',1,'glm']]], + ['mediump_5fi32vec4',['mediump_i32vec4',['../a00304.html#ga6addd4dfee87fc09ab9525e3d07db4c8',1,'glm']]], + ['mediump_5fi64',['mediump_i64',['../a00304.html#ga3ebcb1f6d8d8387253de8bccb058d77f',1,'glm']]], + ['mediump_5fi64vec1',['mediump_i64vec1',['../a00304.html#ga8343e9d244fb17a5bbf0d94d36b3695e',1,'glm']]], + ['mediump_5fi64vec2',['mediump_i64vec2',['../a00304.html#ga2c94aeae3457325944ca1059b0b68330',1,'glm']]], + ['mediump_5fi64vec3',['mediump_i64vec3',['../a00304.html#ga8089722ffdf868cdfe721dea1fb6a90e',1,'glm']]], + ['mediump_5fi64vec4',['mediump_i64vec4',['../a00304.html#gabf1f16c5ab8cb0484bd1e846ae4368f1',1,'glm']]], + ['mediump_5fi8',['mediump_i8',['../a00304.html#gacf1ded173e1e2d049c511d095b259e21',1,'glm']]], + ['mediump_5fi8vec1',['mediump_i8vec1',['../a00304.html#ga85e8893f4ae3630065690a9000c0c483',1,'glm']]], + ['mediump_5fi8vec2',['mediump_i8vec2',['../a00304.html#ga2a8bdc32184ea0a522ef7bd90640cf67',1,'glm']]], + ['mediump_5fi8vec3',['mediump_i8vec3',['../a00304.html#ga6dd1c1618378c6f94d522a61c28773c9',1,'glm']]], + ['mediump_5fi8vec4',['mediump_i8vec4',['../a00304.html#gac7bb04fb857ef7b520e49f6c381432be',1,'glm']]], + ['mediump_5fimat2',['mediump_imat2',['../a00294.html#ga20f4cc7ab23e2aa1f4db9fdb5496d378',1,'glm']]], + ['mediump_5fimat2x2',['mediump_imat2x2',['../a00294.html#ga4b2aeb11a329940721dda9583e71f856',1,'glm']]], + ['mediump_5fimat2x3',['mediump_imat2x3',['../a00294.html#ga74362470ba99843ac70aee5ac38cc674',1,'glm']]], + ['mediump_5fimat2x4',['mediump_imat2x4',['../a00294.html#ga8da25cd380ba30fc5b68a4687deb3e09',1,'glm']]], + ['mediump_5fimat3',['mediump_imat3',['../a00294.html#ga6c63bdc736efd3466e0730de0251cb71',1,'glm']]], + ['mediump_5fimat3x2',['mediump_imat3x2',['../a00294.html#gac0b4e42d648fb3eaf4bb88da82ecc809',1,'glm']]], + ['mediump_5fimat3x3',['mediump_imat3x3',['../a00294.html#gad99cc2aad8fc57f068cfa7719dbbea12',1,'glm']]], + ['mediump_5fimat3x4',['mediump_imat3x4',['../a00294.html#ga67689a518b181a26540bc44a163525cd',1,'glm']]], + ['mediump_5fimat4',['mediump_imat4',['../a00294.html#gaf348552978553630d2a00b78eb887ced',1,'glm']]], + ['mediump_5fimat4x2',['mediump_imat4x2',['../a00294.html#ga8b2d35816f7103f0f4c82dd2f27571fc',1,'glm']]], + ['mediump_5fimat4x3',['mediump_imat4x3',['../a00294.html#ga5b10acc696759e03f6ab918f4467e94c',1,'glm']]], + ['mediump_5fimat4x4',['mediump_imat4x4',['../a00294.html#ga2596869d154dec1180beadbb9df80501',1,'glm']]], + ['mediump_5fint16',['mediump_int16',['../a00304.html#gadff3608baa4b5bd3ed28f95c1c2c345d',1,'glm']]], + ['mediump_5fint16_5ft',['mediump_int16_t',['../a00304.html#ga80e72fe94c88498537e8158ba7591c54',1,'glm']]], + ['mediump_5fint32',['mediump_int32',['../a00304.html#ga5244cef85d6e870e240c76428a262ae8',1,'glm']]], + ['mediump_5fint32_5ft',['mediump_int32_t',['../a00304.html#ga26fc7ced1ad7ca5024f1c973c8dc9180',1,'glm']]], + ['mediump_5fint64',['mediump_int64',['../a00304.html#ga7b968f2b86a0442a89c7359171e1d866',1,'glm']]], + ['mediump_5fint64_5ft',['mediump_int64_t',['../a00304.html#gac3bc41bcac61d1ba8f02a6f68ce23f64',1,'glm']]], + ['mediump_5fint8',['mediump_int8',['../a00304.html#ga6fbd69cbdaa44345bff923a2cf63de7e',1,'glm']]], + ['mediump_5fint8_5ft',['mediump_int8_t',['../a00304.html#ga6d7b3789ecb932c26430009478cac7ae',1,'glm']]], + ['mediump_5fivec1',['mediump_ivec1',['../a00273.html#gad628c608970b3d0aa6cfb63ce6e53e56',1,'glm']]], + ['mediump_5fivec2',['mediump_ivec2',['../a00282.html#gac57496299d276ed97044074097bd5e2c',1,'glm']]], + ['mediump_5fivec3',['mediump_ivec3',['../a00282.html#ga27cfb51e0dbe15bba27a14a8590e8466',1,'glm']]], + ['mediump_5fivec4',['mediump_ivec4',['../a00282.html#ga92a204c37e66ac6c1dc7ae91142f2ea5',1,'glm']]], + ['mediump_5fmat2',['mediump_mat2',['../a00284.html#ga745452bd9c89f5ad948203e4fb4b4ea3',1,'glm']]], + ['mediump_5fmat2x2',['mediump_mat2x2',['../a00284.html#ga0cdf57d29f9448864237b2fb3e39aa1d',1,'glm']]], + ['mediump_5fmat2x3',['mediump_mat2x3',['../a00284.html#ga497d513d552d927537d61fa11e3701ab',1,'glm']]], + ['mediump_5fmat2x4',['mediump_mat2x4',['../a00284.html#gae7b75ea2e09fa686a79bbe9b6ca68ee5',1,'glm']]], + ['mediump_5fmat3',['mediump_mat3',['../a00284.html#ga5aae49834d02732942f44e61d7bce136',1,'glm']]], + ['mediump_5fmat3x2',['mediump_mat3x2',['../a00284.html#ga9e1c9ee65fef547bde793e69723e24eb',1,'glm']]], + ['mediump_5fmat3x3',['mediump_mat3x3',['../a00284.html#gabc0f2f4ad21c90b341881cf056f8650e',1,'glm']]], + ['mediump_5fmat3x4',['mediump_mat3x4',['../a00284.html#gaa669c6675c3405f76c0b14020d1c0d61',1,'glm']]], + ['mediump_5fmat4',['mediump_mat4',['../a00284.html#gab8531bc3f269aa45835cd6e1972b7fc7',1,'glm']]], + ['mediump_5fmat4x2',['mediump_mat4x2',['../a00284.html#gad75706b70545412ba9ac27d5ee210f66',1,'glm']]], + ['mediump_5fmat4x3',['mediump_mat4x3',['../a00284.html#ga4a1440b5ea3cf84d5b06c79b534bd770',1,'glm']]], + ['mediump_5fmat4x4',['mediump_mat4x4',['../a00284.html#ga15bca2b70917d9752231160d9da74b01',1,'glm']]], + ['mediump_5fquat',['mediump_quat',['../a00253.html#gad2a59409de1bb12ccb6eb692ee7e9d8d',1,'glm']]], + ['mediump_5fu16',['mediump_u16',['../a00304.html#ga9df98857be695d5a30cb30f5bfa38a80',1,'glm']]], + ['mediump_5fu16vec1',['mediump_u16vec1',['../a00304.html#ga400ce8cc566de093a9b28e59e220d6e4',1,'glm']]], + ['mediump_5fu16vec2',['mediump_u16vec2',['../a00304.html#ga429c201b3e92c90b4ef4356f2be52ee1',1,'glm']]], + ['mediump_5fu16vec3',['mediump_u16vec3',['../a00304.html#gac9ba20234b0c3751d45ce575fc71e551',1,'glm']]], + ['mediump_5fu16vec4',['mediump_u16vec4',['../a00304.html#ga5793393686ce5bd2d5968ff9144762b8',1,'glm']]], + ['mediump_5fu32',['mediump_u32',['../a00304.html#ga1bd0e914158bf03135f8a317de6debe9',1,'glm']]], + ['mediump_5fu32vec1',['mediump_u32vec1',['../a00304.html#ga8a11ccd2e38f674bbf3c2d1afc232aee',1,'glm']]], + ['mediump_5fu32vec2',['mediump_u32vec2',['../a00304.html#ga94f74851fce338549c705b5f0d601c4f',1,'glm']]], + ['mediump_5fu32vec3',['mediump_u32vec3',['../a00304.html#ga012c24c8fc69707b90260474c70275a2',1,'glm']]], + ['mediump_5fu32vec4',['mediump_u32vec4',['../a00304.html#ga5d43ee8b5dbaa06c327b03b83682598a',1,'glm']]], + ['mediump_5fu64',['mediump_u64',['../a00304.html#ga2af9490085ae3bdf36a544e9dd073610',1,'glm']]], + ['mediump_5fu64vec1',['mediump_u64vec1',['../a00304.html#ga659f372ccb8307d5db5beca942cde5e8',1,'glm']]], + ['mediump_5fu64vec2',['mediump_u64vec2',['../a00304.html#ga73a08ef5a74798f3a1a99250b5f86a7d',1,'glm']]], + ['mediump_5fu64vec3',['mediump_u64vec3',['../a00304.html#ga1900c6ab74acd392809425953359ef52',1,'glm']]], + ['mediump_5fu64vec4',['mediump_u64vec4',['../a00304.html#gaec7ee455cb379ec2993e81482123e1cc',1,'glm']]], + ['mediump_5fu8',['mediump_u8',['../a00304.html#gad1213a22bbb9e4107f07eaa4956f8281',1,'glm']]], + ['mediump_5fu8vec1',['mediump_u8vec1',['../a00304.html#ga4a43050843b141bdc7e85437faef6f55',1,'glm']]], + ['mediump_5fu8vec2',['mediump_u8vec2',['../a00304.html#ga907f85d4a0eac3d8aaf571e5c2647194',1,'glm']]], + ['mediump_5fu8vec3',['mediump_u8vec3',['../a00304.html#gaddc6f7748b699254942c5216b68f8f7f',1,'glm']]], + ['mediump_5fu8vec4',['mediump_u8vec4',['../a00304.html#gaaf4ee3b76d43d98da02ec399b99bda4b',1,'glm']]], + ['mediump_5fuint16',['mediump_uint16',['../a00304.html#ga2885a6c89916911e418c06bb76b9bdbb',1,'glm']]], + ['mediump_5fuint16_5ft',['mediump_uint16_t',['../a00304.html#ga3963b1050fc65a383ee28e3f827b6e3e',1,'glm']]], + ['mediump_5fuint32',['mediump_uint32',['../a00304.html#ga34dd5ec1988c443bae80f1b20a8ade5f',1,'glm']]], + ['mediump_5fuint32_5ft',['mediump_uint32_t',['../a00304.html#gaf4dae276fd29623950de14a6ca2586b5',1,'glm']]], + ['mediump_5fuint64',['mediump_uint64',['../a00304.html#ga30652709815ad9404272a31957daa59e',1,'glm']]], + ['mediump_5fuint64_5ft',['mediump_uint64_t',['../a00304.html#ga9b170dd4a8f38448a2dc93987c7875e9',1,'glm']]], + ['mediump_5fuint8',['mediump_uint8',['../a00304.html#ga1fa92a233b9110861cdbc8c2ccf0b5a3',1,'glm']]], + ['mediump_5fuint8_5ft',['mediump_uint8_t',['../a00304.html#gadfe65c78231039e90507770db50c98c7',1,'glm']]], + ['mediump_5fumat2',['mediump_umat2',['../a00294.html#ga43041378b3410ea951b7de0dfd2bc7ee',1,'glm']]], + ['mediump_5fumat2x2',['mediump_umat2x2',['../a00294.html#ga3b209b1b751f041422137e3c065dfa98',1,'glm']]], + ['mediump_5fumat2x3',['mediump_umat2x3',['../a00294.html#gaee2c1f13b41f4c92ea5b3efe367a1306',1,'glm']]], + ['mediump_5fumat2x4',['mediump_umat2x4',['../a00294.html#gae1317ddca16d01e119a40b7f0ee85f95',1,'glm']]], + ['mediump_5fumat3',['mediump_umat3',['../a00294.html#ga1730dbe3c67801f53520b06d1aa0a34a',1,'glm']]], + ['mediump_5fumat3x2',['mediump_umat3x2',['../a00294.html#gaadc28bfdc8ebca81ae85121b11994970',1,'glm']]], + ['mediump_5fumat3x3',['mediump_umat3x3',['../a00294.html#ga48f2fc38d3f7fab3cfbc961278ced53d',1,'glm']]], + ['mediump_5fumat3x4',['mediump_umat3x4',['../a00294.html#ga78009a1e4ca64217e46b418535e52546',1,'glm']]], + ['mediump_5fumat4',['mediump_umat4',['../a00294.html#ga5087c2beb26a11d9af87432e554cf9d1',1,'glm']]], + ['mediump_5fumat4x2',['mediump_umat4x2',['../a00294.html#gaf35aefd81cc13718f6b059623f7425fa',1,'glm']]], + ['mediump_5fumat4x3',['mediump_umat4x3',['../a00294.html#ga4e1bed14fbc7f4b376aaed064f89f0fb',1,'glm']]], + ['mediump_5fumat4x4',['mediump_umat4x4',['../a00294.html#gaa9428fc8430dc552aad920653f822ef3',1,'glm']]], + ['mediump_5fuvec1',['mediump_uvec1',['../a00277.html#ga38fde73aaf1420175ece8d4882558a3f',1,'glm']]], + ['mediump_5fuvec2',['mediump_uvec2',['../a00282.html#gaa3b4f7806dad03d83bb3da0baa1e3b9b',1,'glm']]], + ['mediump_5fuvec3',['mediump_uvec3',['../a00282.html#ga83b7df38feefbb357f3673d950fafef7',1,'glm']]], + ['mediump_5fuvec4',['mediump_uvec4',['../a00282.html#ga64ed0deb6573375b7016daf82ffd53a7',1,'glm']]], + ['mediump_5fvec1',['mediump_vec1',['../a00271.html#ga645f53e6b8056609023a894b4e2beef4',1,'glm']]], + ['mediump_5fvec2',['mediump_vec2',['../a00282.html#gabc61976261c406520c7a8e4d946dc3f0',1,'glm']]], + ['mediump_5fvec3',['mediump_vec3',['../a00282.html#ga2384e263df19f1404b733016eff78fca',1,'glm']]], + ['mediump_5fvec4',['mediump_vec4',['../a00282.html#ga5c6978d3ffba06738416a33083853fc0',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.html index 7ea2e620a9..4e9ac73db4 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.js index 526e77efdb..4f7da519f8 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_8.js @@ -1,179 +1,179 @@ -var searchData= -[ - ['packed_5fbvec1',['packed_bvec1',['../a00303.html#ga88632cea9008ac0ac1388e94e804a53c',1,'glm']]], - ['packed_5fbvec2',['packed_bvec2',['../a00303.html#gab85245913eaa40ab82adabcae37086cb',1,'glm']]], - ['packed_5fbvec3',['packed_bvec3',['../a00303.html#ga0c48f9417f649e27f3fb0c9f733a18bd',1,'glm']]], - ['packed_5fbvec4',['packed_bvec4',['../a00303.html#ga3180d7db84a74c402157df3bbc0ae3ed',1,'glm']]], - ['packed_5fdmat2',['packed_dmat2',['../a00303.html#gad87408a8350918711f845f071bbe43fb',1,'glm']]], - ['packed_5fdmat2x2',['packed_dmat2x2',['../a00303.html#gaaa33d8e06657a777efb0c72c44ce87a9',1,'glm']]], - ['packed_5fdmat2x3',['packed_dmat2x3',['../a00303.html#gac3a5315f588ba04ad255188071ec4e22',1,'glm']]], - ['packed_5fdmat2x4',['packed_dmat2x4',['../a00303.html#gae398fc3156f51d3684b08f62c1a5a6d4',1,'glm']]], - ['packed_5fdmat3',['packed_dmat3',['../a00303.html#ga03dfc90d539cc87ea3a15a9caa5d2245',1,'glm']]], - ['packed_5fdmat3x2',['packed_dmat3x2',['../a00303.html#gae36de20a4c0e0b1444b7903ae811d94e',1,'glm']]], - ['packed_5fdmat3x3',['packed_dmat3x3',['../a00303.html#gab9b909f1392d86854334350efcae85f5',1,'glm']]], - ['packed_5fdmat3x4',['packed_dmat3x4',['../a00303.html#ga199131fd279c92c2ac12df6d978f1dd6',1,'glm']]], - ['packed_5fdmat4',['packed_dmat4',['../a00303.html#gada980a3485640aa8151f368f17ad3086',1,'glm']]], - ['packed_5fdmat4x2',['packed_dmat4x2',['../a00303.html#ga6dc65249730698d3cc9ac5d7e1bc4d72',1,'glm']]], - ['packed_5fdmat4x3',['packed_dmat4x3',['../a00303.html#gadf202aaa9ed71c09f9bbe347e43f8764',1,'glm']]], - ['packed_5fdmat4x4',['packed_dmat4x4',['../a00303.html#gae20617435a6d042d7c38da2badd64a09',1,'glm']]], - ['packed_5fdvec1',['packed_dvec1',['../a00303.html#ga532f0c940649b1ee303acd572fc35531',1,'glm']]], - ['packed_5fdvec2',['packed_dvec2',['../a00303.html#ga5c194b11fbda636f2ab20c3bd0079196',1,'glm']]], - ['packed_5fdvec3',['packed_dvec3',['../a00303.html#ga0581ea552d86b2b5de7a2804bed80e72',1,'glm']]], - ['packed_5fdvec4',['packed_dvec4',['../a00303.html#gae8a9b181f9dc813ad6e125a52b14b935',1,'glm']]], - ['packed_5fhighp_5fbvec1',['packed_highp_bvec1',['../a00303.html#ga439e97795314b81cd15abd4e5c2e6e7a',1,'glm']]], - ['packed_5fhighp_5fbvec2',['packed_highp_bvec2',['../a00303.html#gad791d671f4fcf1ed1ea41f752916b70a',1,'glm']]], - ['packed_5fhighp_5fbvec3',['packed_highp_bvec3',['../a00303.html#ga6a5a3250b57dfadc66735bc72911437f',1,'glm']]], - ['packed_5fhighp_5fbvec4',['packed_highp_bvec4',['../a00303.html#ga09f517d88b996ef1b2f42fd54222b82d',1,'glm']]], - ['packed_5fhighp_5fdmat2',['packed_highp_dmat2',['../a00303.html#gae29686632fd05efac0675d9a6370d77b',1,'glm']]], - ['packed_5fhighp_5fdmat2x2',['packed_highp_dmat2x2',['../a00303.html#ga22bd6382b16052e301edbfc031b9f37a',1,'glm']]], - ['packed_5fhighp_5fdmat2x3',['packed_highp_dmat2x3',['../a00303.html#ga999d82719696d4c59f4d236dd08f273d',1,'glm']]], - ['packed_5fhighp_5fdmat2x4',['packed_highp_dmat2x4',['../a00303.html#ga6998ac2a8d7fe456b651a6336ed26bb0',1,'glm']]], - ['packed_5fhighp_5fdmat3',['packed_highp_dmat3',['../a00303.html#gadac7c040c4810dd52b36fcd09d097400',1,'glm']]], - ['packed_5fhighp_5fdmat3x2',['packed_highp_dmat3x2',['../a00303.html#gab462744977beb85fb5c782bc2eea7b15',1,'glm']]], - ['packed_5fhighp_5fdmat3x3',['packed_highp_dmat3x3',['../a00303.html#ga49e5a709d098523823b2f824e48672a6',1,'glm']]], - ['packed_5fhighp_5fdmat3x4',['packed_highp_dmat3x4',['../a00303.html#ga2c67b3b0adab71c8680c3d819f1fa9b7',1,'glm']]], - ['packed_5fhighp_5fdmat4',['packed_highp_dmat4',['../a00303.html#ga6718822cd7af005a9b5bd6ee282f6ba6',1,'glm']]], - ['packed_5fhighp_5fdmat4x2',['packed_highp_dmat4x2',['../a00303.html#ga12e39e797fb724a5b51fcbea2513a7da',1,'glm']]], - ['packed_5fhighp_5fdmat4x3',['packed_highp_dmat4x3',['../a00303.html#ga79c2e9f82e67963c1ecad0ad6d0ec72e',1,'glm']]], - ['packed_5fhighp_5fdmat4x4',['packed_highp_dmat4x4',['../a00303.html#ga2df58e03e5afded28707b4f7d077afb4',1,'glm']]], - ['packed_5fhighp_5fdvec1',['packed_highp_dvec1',['../a00303.html#gab472b2d917b5e6efd76e8c7dbfbbf9f1',1,'glm']]], - ['packed_5fhighp_5fdvec2',['packed_highp_dvec2',['../a00303.html#ga5b2dc48fa19b684d207d69c6b145eb63',1,'glm']]], - ['packed_5fhighp_5fdvec3',['packed_highp_dvec3',['../a00303.html#gaaac6b356ef00154da41aaae7d1549193',1,'glm']]], - ['packed_5fhighp_5fdvec4',['packed_highp_dvec4',['../a00303.html#ga81b5368fe485e2630aa9b44832d592e7',1,'glm']]], - ['packed_5fhighp_5fivec1',['packed_highp_ivec1',['../a00303.html#ga7245acc887a5438f46fd85fdf076bb3b',1,'glm']]], - ['packed_5fhighp_5fivec2',['packed_highp_ivec2',['../a00303.html#ga54f368ec6b514a5aa4f28d40e6f93ef7',1,'glm']]], - ['packed_5fhighp_5fivec3',['packed_highp_ivec3',['../a00303.html#ga865a9c7bb22434b1b8c5ac31e164b628',1,'glm']]], - ['packed_5fhighp_5fivec4',['packed_highp_ivec4',['../a00303.html#gad6f1b4e3a51c2c051814b60d5d1b8895',1,'glm']]], - ['packed_5fhighp_5fmat2',['packed_highp_mat2',['../a00303.html#ga2f2d913d8cca2f935b2522964408c0b2',1,'glm']]], - ['packed_5fhighp_5fmat2x2',['packed_highp_mat2x2',['../a00303.html#ga245c12d2daf67feecaa2d3277c8f6661',1,'glm']]], - ['packed_5fhighp_5fmat2x3',['packed_highp_mat2x3',['../a00303.html#ga069cc8892aadae144c00f35297617d44',1,'glm']]], - ['packed_5fhighp_5fmat2x4',['packed_highp_mat2x4',['../a00303.html#ga6904d09b62141d09712b76983892f95b',1,'glm']]], - ['packed_5fhighp_5fmat3',['packed_highp_mat3',['../a00303.html#gabdd5fbffe8b8b8a7b33523f25b120dbe',1,'glm']]], - ['packed_5fhighp_5fmat3x2',['packed_highp_mat3x2',['../a00303.html#ga2624719cb251d8de8cad1beaefc3a3f9',1,'glm']]], - ['packed_5fhighp_5fmat3x3',['packed_highp_mat3x3',['../a00303.html#gaf2e07527d678440bf0c20adbeb9177c5',1,'glm']]], - ['packed_5fhighp_5fmat3x4',['packed_highp_mat3x4',['../a00303.html#ga72102fa6ac2445aa3bb203128ad52449',1,'glm']]], - ['packed_5fhighp_5fmat4',['packed_highp_mat4',['../a00303.html#ga253e8379b08d2dc6fe2800b2fb913203',1,'glm']]], - ['packed_5fhighp_5fmat4x2',['packed_highp_mat4x2',['../a00303.html#gae389c2071cf3cdb33e7812c6fd156710',1,'glm']]], - ['packed_5fhighp_5fmat4x3',['packed_highp_mat4x3',['../a00303.html#ga4584f64394bd7123b7a8534741e4916c',1,'glm']]], - ['packed_5fhighp_5fmat4x4',['packed_highp_mat4x4',['../a00303.html#ga0149fe15668925147e07c94fd2c2d6ae',1,'glm']]], - ['packed_5fhighp_5fuvec1',['packed_highp_uvec1',['../a00303.html#ga8c32b53f628a3616aa5061e58d66fe74',1,'glm']]], - ['packed_5fhighp_5fuvec2',['packed_highp_uvec2',['../a00303.html#gab704d4fb15f6f96d70e363d5db7060cd',1,'glm']]], - ['packed_5fhighp_5fuvec3',['packed_highp_uvec3',['../a00303.html#ga0b570da473fec4619db5aa0dce5133b0',1,'glm']]], - ['packed_5fhighp_5fuvec4',['packed_highp_uvec4',['../a00303.html#gaa582f38c82aef61dea7aaedf15bb06a6',1,'glm']]], - ['packed_5fhighp_5fvec1',['packed_highp_vec1',['../a00303.html#ga56473759d2702ee19ab7f91d0017fa70',1,'glm']]], - ['packed_5fhighp_5fvec2',['packed_highp_vec2',['../a00303.html#ga6b8b9475e7c3b16aed13edbc460bbc4d',1,'glm']]], - ['packed_5fhighp_5fvec3',['packed_highp_vec3',['../a00303.html#ga3815661df0e2de79beff8168c09adf1e',1,'glm']]], - ['packed_5fhighp_5fvec4',['packed_highp_vec4',['../a00303.html#ga4015f36bf5a5adb6ac5d45beed959867',1,'glm']]], - ['packed_5fivec1',['packed_ivec1',['../a00303.html#ga11581a06fc7bf941fa4d4b6aca29812c',1,'glm']]], - ['packed_5fivec2',['packed_ivec2',['../a00303.html#ga1fe4c5f56b8087d773aa90dc88a257a7',1,'glm']]], - ['packed_5fivec3',['packed_ivec3',['../a00303.html#gae157682a7847161787951ba1db4cf325',1,'glm']]], - ['packed_5fivec4',['packed_ivec4',['../a00303.html#gac228b70372abd561340d5f926a7c1778',1,'glm']]], - ['packed_5flowp_5fbvec1',['packed_lowp_bvec1',['../a00303.html#gae3c8750f53259ece334d3aa3b3649a40',1,'glm']]], - ['packed_5flowp_5fbvec2',['packed_lowp_bvec2',['../a00303.html#gac969befedbda69eb78d4e23f751fdbee',1,'glm']]], - ['packed_5flowp_5fbvec3',['packed_lowp_bvec3',['../a00303.html#ga7c20adbe1409e3fe4544677a7f6fe954',1,'glm']]], - ['packed_5flowp_5fbvec4',['packed_lowp_bvec4',['../a00303.html#gae473587cff3092edc0877fc691c26a0b',1,'glm']]], - ['packed_5flowp_5fdmat2',['packed_lowp_dmat2',['../a00303.html#gac93f9b1a35b9de4f456b9f2dfeaf1097',1,'glm']]], - ['packed_5flowp_5fdmat2x2',['packed_lowp_dmat2x2',['../a00303.html#gaeeaff6c132ec91ebd21da3a2399548ea',1,'glm']]], - ['packed_5flowp_5fdmat2x3',['packed_lowp_dmat2x3',['../a00303.html#ga2ccdcd4846775cbe4f9d12e71d55b5d2',1,'glm']]], - ['packed_5flowp_5fdmat2x4',['packed_lowp_dmat2x4',['../a00303.html#gac870c47d2d9d48503f6c9ee3baec8ce1',1,'glm']]], - ['packed_5flowp_5fdmat3',['packed_lowp_dmat3',['../a00303.html#ga3894a059eeaacec8791c25de398d9955',1,'glm']]], - ['packed_5flowp_5fdmat3x2',['packed_lowp_dmat3x2',['../a00303.html#ga23ec236950f5859f59197663266b535d',1,'glm']]], - ['packed_5flowp_5fdmat3x3',['packed_lowp_dmat3x3',['../a00303.html#ga4a7c7d8c3a663d0ec2a858cbfa14e54c',1,'glm']]], - ['packed_5flowp_5fdmat3x4',['packed_lowp_dmat3x4',['../a00303.html#ga8fc0e66da83599071b7ec17510686cd9',1,'glm']]], - ['packed_5flowp_5fdmat4',['packed_lowp_dmat4',['../a00303.html#ga03e1edf5666c40affe39aee35c87956f',1,'glm']]], - ['packed_5flowp_5fdmat4x2',['packed_lowp_dmat4x2',['../a00303.html#ga39658fb13369db869d363684bd8399c0',1,'glm']]], - ['packed_5flowp_5fdmat4x3',['packed_lowp_dmat4x3',['../a00303.html#ga30b0351eebc18c6056101359bdd3a359',1,'glm']]], - ['packed_5flowp_5fdmat4x4',['packed_lowp_dmat4x4',['../a00303.html#ga0294d4c45151425c86a11deee7693c0e',1,'glm']]], - ['packed_5flowp_5fdvec1',['packed_lowp_dvec1',['../a00303.html#ga054050e9d4e78d81db0e6d1573b1c624',1,'glm']]], - ['packed_5flowp_5fdvec2',['packed_lowp_dvec2',['../a00303.html#gadc19938ddb204bfcb4d9ef35b1e2bf93',1,'glm']]], - ['packed_5flowp_5fdvec3',['packed_lowp_dvec3',['../a00303.html#ga9189210cabd6651a5e14a4c46fb20598',1,'glm']]], - ['packed_5flowp_5fdvec4',['packed_lowp_dvec4',['../a00303.html#ga262dafd0c001c3a38d1cc91d024ca738',1,'glm']]], - ['packed_5flowp_5fivec1',['packed_lowp_ivec1',['../a00303.html#gaf22b77f1cf3e73b8b1dddfe7f959357c',1,'glm']]], - ['packed_5flowp_5fivec2',['packed_lowp_ivec2',['../a00303.html#ga52635859f5ef660ab999d22c11b7867f',1,'glm']]], - ['packed_5flowp_5fivec3',['packed_lowp_ivec3',['../a00303.html#ga98c9d122a959e9f3ce10a5623c310f5d',1,'glm']]], - ['packed_5flowp_5fivec4',['packed_lowp_ivec4',['../a00303.html#ga931731b8ae3b54c7ecc221509dae96bc',1,'glm']]], - ['packed_5flowp_5fmat2',['packed_lowp_mat2',['../a00303.html#ga70dcb9ef0b24e832772a7405efa9669a',1,'glm']]], - ['packed_5flowp_5fmat2x2',['packed_lowp_mat2x2',['../a00303.html#gac70667c7642ec8d50245e6e6936a3927',1,'glm']]], - ['packed_5flowp_5fmat2x3',['packed_lowp_mat2x3',['../a00303.html#ga3e7df5a11e1be27bc29a4c0d3956f234',1,'glm']]], - ['packed_5flowp_5fmat2x4',['packed_lowp_mat2x4',['../a00303.html#gaea9c555e669dc56c45d95dcc75d59bf3',1,'glm']]], - ['packed_5flowp_5fmat3',['packed_lowp_mat3',['../a00303.html#ga0d22400969dd223465b2900fecfb4f53',1,'glm']]], - ['packed_5flowp_5fmat3x2',['packed_lowp_mat3x2',['../a00303.html#ga128cd52649621861635fab746df91735',1,'glm']]], - ['packed_5flowp_5fmat3x3',['packed_lowp_mat3x3',['../a00303.html#ga5adf1802c5375a9dfb1729691bedd94e',1,'glm']]], - ['packed_5flowp_5fmat3x4',['packed_lowp_mat3x4',['../a00303.html#ga92247ca09fa03c4013ba364f3a0fca7f',1,'glm']]], - ['packed_5flowp_5fmat4',['packed_lowp_mat4',['../a00303.html#ga2a1dd2387725a335413d4c4fee8609c4',1,'glm']]], - ['packed_5flowp_5fmat4x2',['packed_lowp_mat4x2',['../a00303.html#ga8f22607dcd090cd280071ccc689f4079',1,'glm']]], - ['packed_5flowp_5fmat4x3',['packed_lowp_mat4x3',['../a00303.html#ga7661d759d6ad218e132e3d051e7b2c6c',1,'glm']]], - ['packed_5flowp_5fmat4x4',['packed_lowp_mat4x4',['../a00303.html#ga776f18d1a6e7d399f05d386167dc60f5',1,'glm']]], - ['packed_5flowp_5fuvec1',['packed_lowp_uvec1',['../a00303.html#gaf111fed760ecce16cb1988807569bee5',1,'glm']]], - ['packed_5flowp_5fuvec2',['packed_lowp_uvec2',['../a00303.html#ga958210fe245a75b058325d367c951132',1,'glm']]], - ['packed_5flowp_5fuvec3',['packed_lowp_uvec3',['../a00303.html#ga576a3f8372197a56a79dee1c8280f485',1,'glm']]], - ['packed_5flowp_5fuvec4',['packed_lowp_uvec4',['../a00303.html#gafdd97922b4a2a42cd0c99a13877ff4da',1,'glm']]], - ['packed_5flowp_5fvec1',['packed_lowp_vec1',['../a00303.html#ga0a6198fe64166a6a61084d43c71518a9',1,'glm']]], - ['packed_5flowp_5fvec2',['packed_lowp_vec2',['../a00303.html#gafbf1c2cce307c5594b165819ed83bf5d',1,'glm']]], - ['packed_5flowp_5fvec3',['packed_lowp_vec3',['../a00303.html#ga3a30c137c1f8cce478c28eab0427a570',1,'glm']]], - ['packed_5flowp_5fvec4',['packed_lowp_vec4',['../a00303.html#ga3cc94fb8de80bbd8a4aa7a5b206d304a',1,'glm']]], - ['packed_5fmat2',['packed_mat2',['../a00303.html#gadd019b43fcf42e1590d45dddaa504a1a',1,'glm']]], - ['packed_5fmat2x2',['packed_mat2x2',['../a00303.html#ga51eaadcdc292c8750f746a5dc3e6c517',1,'glm']]], - ['packed_5fmat2x3',['packed_mat2x3',['../a00303.html#ga301b76a89b8a9625501ca58815017f20',1,'glm']]], - ['packed_5fmat2x4',['packed_mat2x4',['../a00303.html#gac401da1dd9177ad81d7618a2a5541e23',1,'glm']]], - ['packed_5fmat3',['packed_mat3',['../a00303.html#ga9bc12b0ab7be8448836711b77cc7b83a',1,'glm']]], - ['packed_5fmat3x2',['packed_mat3x2',['../a00303.html#ga134f0d99fbd2459c13cd9ebd056509fa',1,'glm']]], - ['packed_5fmat3x3',['packed_mat3x3',['../a00303.html#ga6c1dbe8cde9fbb231284b01f8aeaaa99',1,'glm']]], - ['packed_5fmat3x4',['packed_mat3x4',['../a00303.html#gad63515526cccfe88ffa8fe5ed64f95f8',1,'glm']]], - ['packed_5fmat4',['packed_mat4',['../a00303.html#ga2c139854e5b04cf08a957dee3b510441',1,'glm']]], - ['packed_5fmat4x2',['packed_mat4x2',['../a00303.html#ga379c1153f1339bdeaefd592bebf538e8',1,'glm']]], - ['packed_5fmat4x3',['packed_mat4x3',['../a00303.html#gab286466e19f7399c8d25089da9400d43',1,'glm']]], - ['packed_5fmat4x4',['packed_mat4x4',['../a00303.html#ga67e7102557d6067bb6ac00d4ad0e1374',1,'glm']]], - ['packed_5fmediump_5fbvec1',['packed_mediump_bvec1',['../a00303.html#ga5546d828d63010a8f9cf81161ad0275a',1,'glm']]], - ['packed_5fmediump_5fbvec2',['packed_mediump_bvec2',['../a00303.html#gab4c6414a59539e66a242ad4cf4b476b4',1,'glm']]], - ['packed_5fmediump_5fbvec3',['packed_mediump_bvec3',['../a00303.html#ga70147763edff3fe96b03a0b98d6339a2',1,'glm']]], - ['packed_5fmediump_5fbvec4',['packed_mediump_bvec4',['../a00303.html#ga7b1620f259595b9da47a6374fc44588a',1,'glm']]], - ['packed_5fmediump_5fdmat2',['packed_mediump_dmat2',['../a00303.html#ga9d60e32d3fcb51f817046cd881fdbf57',1,'glm']]], - ['packed_5fmediump_5fdmat2x2',['packed_mediump_dmat2x2',['../a00303.html#ga39e8bb9b70e5694964e8266a21ba534e',1,'glm']]], - ['packed_5fmediump_5fdmat2x3',['packed_mediump_dmat2x3',['../a00303.html#ga8897c6d9adb4140b1c3b0a07b8f0a430',1,'glm']]], - ['packed_5fmediump_5fdmat2x4',['packed_mediump_dmat2x4',['../a00303.html#gaaa4126969c765e7faa2ebf6951c22ffb',1,'glm']]], - ['packed_5fmediump_5fdmat3',['packed_mediump_dmat3',['../a00303.html#gaf969eb879c76a5f4576e4a1e10095cf6',1,'glm']]], - ['packed_5fmediump_5fdmat3x2',['packed_mediump_dmat3x2',['../a00303.html#ga86efe91cdaa2864c828a5d6d46356c6a',1,'glm']]], - ['packed_5fmediump_5fdmat3x3',['packed_mediump_dmat3x3',['../a00303.html#gaf85877d38d8cfbc21d59d939afd72375',1,'glm']]], - ['packed_5fmediump_5fdmat3x4',['packed_mediump_dmat3x4',['../a00303.html#gad5dcaf93df267bc3029174e430e0907f',1,'glm']]], - ['packed_5fmediump_5fdmat4',['packed_mediump_dmat4',['../a00303.html#ga4b0ee7996651ddd04eaa0c4cdbb66332',1,'glm']]], - ['packed_5fmediump_5fdmat4x2',['packed_mediump_dmat4x2',['../a00303.html#ga9a15514a0631f700de6312b9d5db3a73',1,'glm']]], - ['packed_5fmediump_5fdmat4x3',['packed_mediump_dmat4x3',['../a00303.html#gab5b36cc9caee1bb1c5178fe191bf5713',1,'glm']]], - ['packed_5fmediump_5fdmat4x4',['packed_mediump_dmat4x4',['../a00303.html#ga21e86cf2f6c126bacf31b8985db06bd4',1,'glm']]], - ['packed_5fmediump_5fdvec1',['packed_mediump_dvec1',['../a00303.html#ga8920e90ea9c01d9c97e604a938ce2cbd',1,'glm']]], - ['packed_5fmediump_5fdvec2',['packed_mediump_dvec2',['../a00303.html#ga0c754a783b6fcf80374c013371c4dae9',1,'glm']]], - ['packed_5fmediump_5fdvec3',['packed_mediump_dvec3',['../a00303.html#ga1f18ada6f7cdd8c46db33ba987280fc4',1,'glm']]], - ['packed_5fmediump_5fdvec4',['packed_mediump_dvec4',['../a00303.html#ga568b850f1116b667043533cf77826968',1,'glm']]], - ['packed_5fmediump_5fivec1',['packed_mediump_ivec1',['../a00303.html#ga09507ef020a49517a7bcd50438f05056',1,'glm']]], - ['packed_5fmediump_5fivec2',['packed_mediump_ivec2',['../a00303.html#gaaa891048dddef4627df33809ec726219',1,'glm']]], - ['packed_5fmediump_5fivec3',['packed_mediump_ivec3',['../a00303.html#ga06f26d54dca30994eb1fdadb8e69f4a2',1,'glm']]], - ['packed_5fmediump_5fivec4',['packed_mediump_ivec4',['../a00303.html#ga70130dc8ed9c966ec2a221ce586d45d8',1,'glm']]], - ['packed_5fmediump_5fmat2',['packed_mediump_mat2',['../a00303.html#ga43cd36d430c5187bfdca34a23cb41581',1,'glm']]], - ['packed_5fmediump_5fmat2x2',['packed_mediump_mat2x2',['../a00303.html#ga2d2a73e662759e301c22b8931ff6a526',1,'glm']]], - ['packed_5fmediump_5fmat2x3',['packed_mediump_mat2x3',['../a00303.html#ga99049db01faf1e95ed9fb875a47dffe2',1,'glm']]], - ['packed_5fmediump_5fmat2x4',['packed_mediump_mat2x4',['../a00303.html#gad43a240533f388ce0504b495d9df3d52',1,'glm']]], - ['packed_5fmediump_5fmat3',['packed_mediump_mat3',['../a00303.html#ga13a75c6cbd0a411f694bc82486cd1e55',1,'glm']]], - ['packed_5fmediump_5fmat3x2',['packed_mediump_mat3x2',['../a00303.html#ga04cfaf1421284df3c24ea0985dab24e7',1,'glm']]], - ['packed_5fmediump_5fmat3x3',['packed_mediump_mat3x3',['../a00303.html#gaaa9cea174d342dd9650e3436823cab23',1,'glm']]], - ['packed_5fmediump_5fmat3x4',['packed_mediump_mat3x4',['../a00303.html#gabc93a9560593bd32e099c908531305f5',1,'glm']]], - ['packed_5fmediump_5fmat4',['packed_mediump_mat4',['../a00303.html#gae89d72ffc149147f61df701bbc8755bf',1,'glm']]], - ['packed_5fmediump_5fmat4x2',['packed_mediump_mat4x2',['../a00303.html#gaa458f9d9e0934bae3097e2a373b24707',1,'glm']]], - ['packed_5fmediump_5fmat4x3',['packed_mediump_mat4x3',['../a00303.html#ga02ca6255394aa778abaeb0f733c4d2b6',1,'glm']]], - ['packed_5fmediump_5fmat4x4',['packed_mediump_mat4x4',['../a00303.html#gaf304f64c06743c1571401504d3f50259',1,'glm']]], - ['packed_5fmediump_5fuvec1',['packed_mediump_uvec1',['../a00303.html#ga2c29fb42bab9a4f9b66bc60b2e514a34',1,'glm']]], - ['packed_5fmediump_5fuvec2',['packed_mediump_uvec2',['../a00303.html#gaa1f95690a78dc12e39da32943243aeef',1,'glm']]], - ['packed_5fmediump_5fuvec3',['packed_mediump_uvec3',['../a00303.html#ga1ea2bbdbcb0a69242f6d884663c1b0ab',1,'glm']]], - ['packed_5fmediump_5fuvec4',['packed_mediump_uvec4',['../a00303.html#ga63a73be86a4f07ea7a7499ab0bfebe45',1,'glm']]], - ['packed_5fmediump_5fvec1',['packed_mediump_vec1',['../a00303.html#ga71d63cead1e113fca0bcdaaa33aad050',1,'glm']]], - ['packed_5fmediump_5fvec2',['packed_mediump_vec2',['../a00303.html#ga6844c6f4691d1bf67673240850430948',1,'glm']]], - ['packed_5fmediump_5fvec3',['packed_mediump_vec3',['../a00303.html#gab0eb771b708c5b2205d9b14dd1434fd8',1,'glm']]], - ['packed_5fmediump_5fvec4',['packed_mediump_vec4',['../a00303.html#ga68c9bb24f387b312bae6a0a68e74d95e',1,'glm']]], - ['packed_5fuvec1',['packed_uvec1',['../a00303.html#ga5621493caac01bdd22ab6be4416b0314',1,'glm']]], - ['packed_5fuvec2',['packed_uvec2',['../a00303.html#gabcc33efb4d5e83b8fe4706360e75b932',1,'glm']]], - ['packed_5fuvec3',['packed_uvec3',['../a00303.html#gab96804e99e3a72a35740fec690c79617',1,'glm']]], - ['packed_5fuvec4',['packed_uvec4',['../a00303.html#ga8e5d92e84ebdbe2480cf96bc17d6e2f2',1,'glm']]], - ['packed_5fvec1',['packed_vec1',['../a00303.html#ga14741e3d9da9ae83765389927f837331',1,'glm']]], - ['packed_5fvec2',['packed_vec2',['../a00303.html#ga3254defa5a8f0ae4b02b45fedba84a66',1,'glm']]], - ['packed_5fvec3',['packed_vec3',['../a00303.html#gaccccd090e185450caa28b5b63ad4e8f0',1,'glm']]], - ['packed_5fvec4',['packed_vec4',['../a00303.html#ga37a0e0bf653169b581c5eea3d547fa5d',1,'glm']]] -]; +var searchData= +[ + ['packed_5fbvec1',['packed_bvec1',['../a00303.html#ga88632cea9008ac0ac1388e94e804a53c',1,'glm']]], + ['packed_5fbvec2',['packed_bvec2',['../a00303.html#gab85245913eaa40ab82adabcae37086cb',1,'glm']]], + ['packed_5fbvec3',['packed_bvec3',['../a00303.html#ga0c48f9417f649e27f3fb0c9f733a18bd',1,'glm']]], + ['packed_5fbvec4',['packed_bvec4',['../a00303.html#ga3180d7db84a74c402157df3bbc0ae3ed',1,'glm']]], + ['packed_5fdmat2',['packed_dmat2',['../a00303.html#gad87408a8350918711f845f071bbe43fb',1,'glm']]], + ['packed_5fdmat2x2',['packed_dmat2x2',['../a00303.html#gaaa33d8e06657a777efb0c72c44ce87a9',1,'glm']]], + ['packed_5fdmat2x3',['packed_dmat2x3',['../a00303.html#gac3a5315f588ba04ad255188071ec4e22',1,'glm']]], + ['packed_5fdmat2x4',['packed_dmat2x4',['../a00303.html#gae398fc3156f51d3684b08f62c1a5a6d4',1,'glm']]], + ['packed_5fdmat3',['packed_dmat3',['../a00303.html#ga03dfc90d539cc87ea3a15a9caa5d2245',1,'glm']]], + ['packed_5fdmat3x2',['packed_dmat3x2',['../a00303.html#gae36de20a4c0e0b1444b7903ae811d94e',1,'glm']]], + ['packed_5fdmat3x3',['packed_dmat3x3',['../a00303.html#gab9b909f1392d86854334350efcae85f5',1,'glm']]], + ['packed_5fdmat3x4',['packed_dmat3x4',['../a00303.html#ga199131fd279c92c2ac12df6d978f1dd6',1,'glm']]], + ['packed_5fdmat4',['packed_dmat4',['../a00303.html#gada980a3485640aa8151f368f17ad3086',1,'glm']]], + ['packed_5fdmat4x2',['packed_dmat4x2',['../a00303.html#ga6dc65249730698d3cc9ac5d7e1bc4d72',1,'glm']]], + ['packed_5fdmat4x3',['packed_dmat4x3',['../a00303.html#gadf202aaa9ed71c09f9bbe347e43f8764',1,'glm']]], + ['packed_5fdmat4x4',['packed_dmat4x4',['../a00303.html#gae20617435a6d042d7c38da2badd64a09',1,'glm']]], + ['packed_5fdvec1',['packed_dvec1',['../a00303.html#ga532f0c940649b1ee303acd572fc35531',1,'glm']]], + ['packed_5fdvec2',['packed_dvec2',['../a00303.html#ga5c194b11fbda636f2ab20c3bd0079196',1,'glm']]], + ['packed_5fdvec3',['packed_dvec3',['../a00303.html#ga0581ea552d86b2b5de7a2804bed80e72',1,'glm']]], + ['packed_5fdvec4',['packed_dvec4',['../a00303.html#gae8a9b181f9dc813ad6e125a52b14b935',1,'glm']]], + ['packed_5fhighp_5fbvec1',['packed_highp_bvec1',['../a00303.html#ga439e97795314b81cd15abd4e5c2e6e7a',1,'glm']]], + ['packed_5fhighp_5fbvec2',['packed_highp_bvec2',['../a00303.html#gad791d671f4fcf1ed1ea41f752916b70a',1,'glm']]], + ['packed_5fhighp_5fbvec3',['packed_highp_bvec3',['../a00303.html#ga6a5a3250b57dfadc66735bc72911437f',1,'glm']]], + ['packed_5fhighp_5fbvec4',['packed_highp_bvec4',['../a00303.html#ga09f517d88b996ef1b2f42fd54222b82d',1,'glm']]], + ['packed_5fhighp_5fdmat2',['packed_highp_dmat2',['../a00303.html#gae29686632fd05efac0675d9a6370d77b',1,'glm']]], + ['packed_5fhighp_5fdmat2x2',['packed_highp_dmat2x2',['../a00303.html#ga22bd6382b16052e301edbfc031b9f37a',1,'glm']]], + ['packed_5fhighp_5fdmat2x3',['packed_highp_dmat2x3',['../a00303.html#ga999d82719696d4c59f4d236dd08f273d',1,'glm']]], + ['packed_5fhighp_5fdmat2x4',['packed_highp_dmat2x4',['../a00303.html#ga6998ac2a8d7fe456b651a6336ed26bb0',1,'glm']]], + ['packed_5fhighp_5fdmat3',['packed_highp_dmat3',['../a00303.html#gadac7c040c4810dd52b36fcd09d097400',1,'glm']]], + ['packed_5fhighp_5fdmat3x2',['packed_highp_dmat3x2',['../a00303.html#gab462744977beb85fb5c782bc2eea7b15',1,'glm']]], + ['packed_5fhighp_5fdmat3x3',['packed_highp_dmat3x3',['../a00303.html#ga49e5a709d098523823b2f824e48672a6',1,'glm']]], + ['packed_5fhighp_5fdmat3x4',['packed_highp_dmat3x4',['../a00303.html#ga2c67b3b0adab71c8680c3d819f1fa9b7',1,'glm']]], + ['packed_5fhighp_5fdmat4',['packed_highp_dmat4',['../a00303.html#ga6718822cd7af005a9b5bd6ee282f6ba6',1,'glm']]], + ['packed_5fhighp_5fdmat4x2',['packed_highp_dmat4x2',['../a00303.html#ga12e39e797fb724a5b51fcbea2513a7da',1,'glm']]], + ['packed_5fhighp_5fdmat4x3',['packed_highp_dmat4x3',['../a00303.html#ga79c2e9f82e67963c1ecad0ad6d0ec72e',1,'glm']]], + ['packed_5fhighp_5fdmat4x4',['packed_highp_dmat4x4',['../a00303.html#ga2df58e03e5afded28707b4f7d077afb4',1,'glm']]], + ['packed_5fhighp_5fdvec1',['packed_highp_dvec1',['../a00303.html#gab472b2d917b5e6efd76e8c7dbfbbf9f1',1,'glm']]], + ['packed_5fhighp_5fdvec2',['packed_highp_dvec2',['../a00303.html#ga5b2dc48fa19b684d207d69c6b145eb63',1,'glm']]], + ['packed_5fhighp_5fdvec3',['packed_highp_dvec3',['../a00303.html#gaaac6b356ef00154da41aaae7d1549193',1,'glm']]], + ['packed_5fhighp_5fdvec4',['packed_highp_dvec4',['../a00303.html#ga81b5368fe485e2630aa9b44832d592e7',1,'glm']]], + ['packed_5fhighp_5fivec1',['packed_highp_ivec1',['../a00303.html#ga7245acc887a5438f46fd85fdf076bb3b',1,'glm']]], + ['packed_5fhighp_5fivec2',['packed_highp_ivec2',['../a00303.html#ga54f368ec6b514a5aa4f28d40e6f93ef7',1,'glm']]], + ['packed_5fhighp_5fivec3',['packed_highp_ivec3',['../a00303.html#ga865a9c7bb22434b1b8c5ac31e164b628',1,'glm']]], + ['packed_5fhighp_5fivec4',['packed_highp_ivec4',['../a00303.html#gad6f1b4e3a51c2c051814b60d5d1b8895',1,'glm']]], + ['packed_5fhighp_5fmat2',['packed_highp_mat2',['../a00303.html#ga2f2d913d8cca2f935b2522964408c0b2',1,'glm']]], + ['packed_5fhighp_5fmat2x2',['packed_highp_mat2x2',['../a00303.html#ga245c12d2daf67feecaa2d3277c8f6661',1,'glm']]], + ['packed_5fhighp_5fmat2x3',['packed_highp_mat2x3',['../a00303.html#ga069cc8892aadae144c00f35297617d44',1,'glm']]], + ['packed_5fhighp_5fmat2x4',['packed_highp_mat2x4',['../a00303.html#ga6904d09b62141d09712b76983892f95b',1,'glm']]], + ['packed_5fhighp_5fmat3',['packed_highp_mat3',['../a00303.html#gabdd5fbffe8b8b8a7b33523f25b120dbe',1,'glm']]], + ['packed_5fhighp_5fmat3x2',['packed_highp_mat3x2',['../a00303.html#ga2624719cb251d8de8cad1beaefc3a3f9',1,'glm']]], + ['packed_5fhighp_5fmat3x3',['packed_highp_mat3x3',['../a00303.html#gaf2e07527d678440bf0c20adbeb9177c5',1,'glm']]], + ['packed_5fhighp_5fmat3x4',['packed_highp_mat3x4',['../a00303.html#ga72102fa6ac2445aa3bb203128ad52449',1,'glm']]], + ['packed_5fhighp_5fmat4',['packed_highp_mat4',['../a00303.html#ga253e8379b08d2dc6fe2800b2fb913203',1,'glm']]], + ['packed_5fhighp_5fmat4x2',['packed_highp_mat4x2',['../a00303.html#gae389c2071cf3cdb33e7812c6fd156710',1,'glm']]], + ['packed_5fhighp_5fmat4x3',['packed_highp_mat4x3',['../a00303.html#ga4584f64394bd7123b7a8534741e4916c',1,'glm']]], + ['packed_5fhighp_5fmat4x4',['packed_highp_mat4x4',['../a00303.html#ga0149fe15668925147e07c94fd2c2d6ae',1,'glm']]], + ['packed_5fhighp_5fuvec1',['packed_highp_uvec1',['../a00303.html#ga8c32b53f628a3616aa5061e58d66fe74',1,'glm']]], + ['packed_5fhighp_5fuvec2',['packed_highp_uvec2',['../a00303.html#gab704d4fb15f6f96d70e363d5db7060cd',1,'glm']]], + ['packed_5fhighp_5fuvec3',['packed_highp_uvec3',['../a00303.html#ga0b570da473fec4619db5aa0dce5133b0',1,'glm']]], + ['packed_5fhighp_5fuvec4',['packed_highp_uvec4',['../a00303.html#gaa582f38c82aef61dea7aaedf15bb06a6',1,'glm']]], + ['packed_5fhighp_5fvec1',['packed_highp_vec1',['../a00303.html#ga56473759d2702ee19ab7f91d0017fa70',1,'glm']]], + ['packed_5fhighp_5fvec2',['packed_highp_vec2',['../a00303.html#ga6b8b9475e7c3b16aed13edbc460bbc4d',1,'glm']]], + ['packed_5fhighp_5fvec3',['packed_highp_vec3',['../a00303.html#ga3815661df0e2de79beff8168c09adf1e',1,'glm']]], + ['packed_5fhighp_5fvec4',['packed_highp_vec4',['../a00303.html#ga4015f36bf5a5adb6ac5d45beed959867',1,'glm']]], + ['packed_5fivec1',['packed_ivec1',['../a00303.html#ga11581a06fc7bf941fa4d4b6aca29812c',1,'glm']]], + ['packed_5fivec2',['packed_ivec2',['../a00303.html#ga1fe4c5f56b8087d773aa90dc88a257a7',1,'glm']]], + ['packed_5fivec3',['packed_ivec3',['../a00303.html#gae157682a7847161787951ba1db4cf325',1,'glm']]], + ['packed_5fivec4',['packed_ivec4',['../a00303.html#gac228b70372abd561340d5f926a7c1778',1,'glm']]], + ['packed_5flowp_5fbvec1',['packed_lowp_bvec1',['../a00303.html#gae3c8750f53259ece334d3aa3b3649a40',1,'glm']]], + ['packed_5flowp_5fbvec2',['packed_lowp_bvec2',['../a00303.html#gac969befedbda69eb78d4e23f751fdbee',1,'glm']]], + ['packed_5flowp_5fbvec3',['packed_lowp_bvec3',['../a00303.html#ga7c20adbe1409e3fe4544677a7f6fe954',1,'glm']]], + ['packed_5flowp_5fbvec4',['packed_lowp_bvec4',['../a00303.html#gae473587cff3092edc0877fc691c26a0b',1,'glm']]], + ['packed_5flowp_5fdmat2',['packed_lowp_dmat2',['../a00303.html#gac93f9b1a35b9de4f456b9f2dfeaf1097',1,'glm']]], + ['packed_5flowp_5fdmat2x2',['packed_lowp_dmat2x2',['../a00303.html#gaeeaff6c132ec91ebd21da3a2399548ea',1,'glm']]], + ['packed_5flowp_5fdmat2x3',['packed_lowp_dmat2x3',['../a00303.html#ga2ccdcd4846775cbe4f9d12e71d55b5d2',1,'glm']]], + ['packed_5flowp_5fdmat2x4',['packed_lowp_dmat2x4',['../a00303.html#gac870c47d2d9d48503f6c9ee3baec8ce1',1,'glm']]], + ['packed_5flowp_5fdmat3',['packed_lowp_dmat3',['../a00303.html#ga3894a059eeaacec8791c25de398d9955',1,'glm']]], + ['packed_5flowp_5fdmat3x2',['packed_lowp_dmat3x2',['../a00303.html#ga23ec236950f5859f59197663266b535d',1,'glm']]], + ['packed_5flowp_5fdmat3x3',['packed_lowp_dmat3x3',['../a00303.html#ga4a7c7d8c3a663d0ec2a858cbfa14e54c',1,'glm']]], + ['packed_5flowp_5fdmat3x4',['packed_lowp_dmat3x4',['../a00303.html#ga8fc0e66da83599071b7ec17510686cd9',1,'glm']]], + ['packed_5flowp_5fdmat4',['packed_lowp_dmat4',['../a00303.html#ga03e1edf5666c40affe39aee35c87956f',1,'glm']]], + ['packed_5flowp_5fdmat4x2',['packed_lowp_dmat4x2',['../a00303.html#ga39658fb13369db869d363684bd8399c0',1,'glm']]], + ['packed_5flowp_5fdmat4x3',['packed_lowp_dmat4x3',['../a00303.html#ga30b0351eebc18c6056101359bdd3a359',1,'glm']]], + ['packed_5flowp_5fdmat4x4',['packed_lowp_dmat4x4',['../a00303.html#ga0294d4c45151425c86a11deee7693c0e',1,'glm']]], + ['packed_5flowp_5fdvec1',['packed_lowp_dvec1',['../a00303.html#ga054050e9d4e78d81db0e6d1573b1c624',1,'glm']]], + ['packed_5flowp_5fdvec2',['packed_lowp_dvec2',['../a00303.html#gadc19938ddb204bfcb4d9ef35b1e2bf93',1,'glm']]], + ['packed_5flowp_5fdvec3',['packed_lowp_dvec3',['../a00303.html#ga9189210cabd6651a5e14a4c46fb20598',1,'glm']]], + ['packed_5flowp_5fdvec4',['packed_lowp_dvec4',['../a00303.html#ga262dafd0c001c3a38d1cc91d024ca738',1,'glm']]], + ['packed_5flowp_5fivec1',['packed_lowp_ivec1',['../a00303.html#gaf22b77f1cf3e73b8b1dddfe7f959357c',1,'glm']]], + ['packed_5flowp_5fivec2',['packed_lowp_ivec2',['../a00303.html#ga52635859f5ef660ab999d22c11b7867f',1,'glm']]], + ['packed_5flowp_5fivec3',['packed_lowp_ivec3',['../a00303.html#ga98c9d122a959e9f3ce10a5623c310f5d',1,'glm']]], + ['packed_5flowp_5fivec4',['packed_lowp_ivec4',['../a00303.html#ga931731b8ae3b54c7ecc221509dae96bc',1,'glm']]], + ['packed_5flowp_5fmat2',['packed_lowp_mat2',['../a00303.html#ga70dcb9ef0b24e832772a7405efa9669a',1,'glm']]], + ['packed_5flowp_5fmat2x2',['packed_lowp_mat2x2',['../a00303.html#gac70667c7642ec8d50245e6e6936a3927',1,'glm']]], + ['packed_5flowp_5fmat2x3',['packed_lowp_mat2x3',['../a00303.html#ga3e7df5a11e1be27bc29a4c0d3956f234',1,'glm']]], + ['packed_5flowp_5fmat2x4',['packed_lowp_mat2x4',['../a00303.html#gaea9c555e669dc56c45d95dcc75d59bf3',1,'glm']]], + ['packed_5flowp_5fmat3',['packed_lowp_mat3',['../a00303.html#ga0d22400969dd223465b2900fecfb4f53',1,'glm']]], + ['packed_5flowp_5fmat3x2',['packed_lowp_mat3x2',['../a00303.html#ga128cd52649621861635fab746df91735',1,'glm']]], + ['packed_5flowp_5fmat3x3',['packed_lowp_mat3x3',['../a00303.html#ga5adf1802c5375a9dfb1729691bedd94e',1,'glm']]], + ['packed_5flowp_5fmat3x4',['packed_lowp_mat3x4',['../a00303.html#ga92247ca09fa03c4013ba364f3a0fca7f',1,'glm']]], + ['packed_5flowp_5fmat4',['packed_lowp_mat4',['../a00303.html#ga2a1dd2387725a335413d4c4fee8609c4',1,'glm']]], + ['packed_5flowp_5fmat4x2',['packed_lowp_mat4x2',['../a00303.html#ga8f22607dcd090cd280071ccc689f4079',1,'glm']]], + ['packed_5flowp_5fmat4x3',['packed_lowp_mat4x3',['../a00303.html#ga7661d759d6ad218e132e3d051e7b2c6c',1,'glm']]], + ['packed_5flowp_5fmat4x4',['packed_lowp_mat4x4',['../a00303.html#ga776f18d1a6e7d399f05d386167dc60f5',1,'glm']]], + ['packed_5flowp_5fuvec1',['packed_lowp_uvec1',['../a00303.html#gaf111fed760ecce16cb1988807569bee5',1,'glm']]], + ['packed_5flowp_5fuvec2',['packed_lowp_uvec2',['../a00303.html#ga958210fe245a75b058325d367c951132',1,'glm']]], + ['packed_5flowp_5fuvec3',['packed_lowp_uvec3',['../a00303.html#ga576a3f8372197a56a79dee1c8280f485',1,'glm']]], + ['packed_5flowp_5fuvec4',['packed_lowp_uvec4',['../a00303.html#gafdd97922b4a2a42cd0c99a13877ff4da',1,'glm']]], + ['packed_5flowp_5fvec1',['packed_lowp_vec1',['../a00303.html#ga0a6198fe64166a6a61084d43c71518a9',1,'glm']]], + ['packed_5flowp_5fvec2',['packed_lowp_vec2',['../a00303.html#gafbf1c2cce307c5594b165819ed83bf5d',1,'glm']]], + ['packed_5flowp_5fvec3',['packed_lowp_vec3',['../a00303.html#ga3a30c137c1f8cce478c28eab0427a570',1,'glm']]], + ['packed_5flowp_5fvec4',['packed_lowp_vec4',['../a00303.html#ga3cc94fb8de80bbd8a4aa7a5b206d304a',1,'glm']]], + ['packed_5fmat2',['packed_mat2',['../a00303.html#gadd019b43fcf42e1590d45dddaa504a1a',1,'glm']]], + ['packed_5fmat2x2',['packed_mat2x2',['../a00303.html#ga51eaadcdc292c8750f746a5dc3e6c517',1,'glm']]], + ['packed_5fmat2x3',['packed_mat2x3',['../a00303.html#ga301b76a89b8a9625501ca58815017f20',1,'glm']]], + ['packed_5fmat2x4',['packed_mat2x4',['../a00303.html#gac401da1dd9177ad81d7618a2a5541e23',1,'glm']]], + ['packed_5fmat3',['packed_mat3',['../a00303.html#ga9bc12b0ab7be8448836711b77cc7b83a',1,'glm']]], + ['packed_5fmat3x2',['packed_mat3x2',['../a00303.html#ga134f0d99fbd2459c13cd9ebd056509fa',1,'glm']]], + ['packed_5fmat3x3',['packed_mat3x3',['../a00303.html#ga6c1dbe8cde9fbb231284b01f8aeaaa99',1,'glm']]], + ['packed_5fmat3x4',['packed_mat3x4',['../a00303.html#gad63515526cccfe88ffa8fe5ed64f95f8',1,'glm']]], + ['packed_5fmat4',['packed_mat4',['../a00303.html#ga2c139854e5b04cf08a957dee3b510441',1,'glm']]], + ['packed_5fmat4x2',['packed_mat4x2',['../a00303.html#ga379c1153f1339bdeaefd592bebf538e8',1,'glm']]], + ['packed_5fmat4x3',['packed_mat4x3',['../a00303.html#gab286466e19f7399c8d25089da9400d43',1,'glm']]], + ['packed_5fmat4x4',['packed_mat4x4',['../a00303.html#ga67e7102557d6067bb6ac00d4ad0e1374',1,'glm']]], + ['packed_5fmediump_5fbvec1',['packed_mediump_bvec1',['../a00303.html#ga5546d828d63010a8f9cf81161ad0275a',1,'glm']]], + ['packed_5fmediump_5fbvec2',['packed_mediump_bvec2',['../a00303.html#gab4c6414a59539e66a242ad4cf4b476b4',1,'glm']]], + ['packed_5fmediump_5fbvec3',['packed_mediump_bvec3',['../a00303.html#ga70147763edff3fe96b03a0b98d6339a2',1,'glm']]], + ['packed_5fmediump_5fbvec4',['packed_mediump_bvec4',['../a00303.html#ga7b1620f259595b9da47a6374fc44588a',1,'glm']]], + ['packed_5fmediump_5fdmat2',['packed_mediump_dmat2',['../a00303.html#ga9d60e32d3fcb51f817046cd881fdbf57',1,'glm']]], + ['packed_5fmediump_5fdmat2x2',['packed_mediump_dmat2x2',['../a00303.html#ga39e8bb9b70e5694964e8266a21ba534e',1,'glm']]], + ['packed_5fmediump_5fdmat2x3',['packed_mediump_dmat2x3',['../a00303.html#ga8897c6d9adb4140b1c3b0a07b8f0a430',1,'glm']]], + ['packed_5fmediump_5fdmat2x4',['packed_mediump_dmat2x4',['../a00303.html#gaaa4126969c765e7faa2ebf6951c22ffb',1,'glm']]], + ['packed_5fmediump_5fdmat3',['packed_mediump_dmat3',['../a00303.html#gaf969eb879c76a5f4576e4a1e10095cf6',1,'glm']]], + ['packed_5fmediump_5fdmat3x2',['packed_mediump_dmat3x2',['../a00303.html#ga86efe91cdaa2864c828a5d6d46356c6a',1,'glm']]], + ['packed_5fmediump_5fdmat3x3',['packed_mediump_dmat3x3',['../a00303.html#gaf85877d38d8cfbc21d59d939afd72375',1,'glm']]], + ['packed_5fmediump_5fdmat3x4',['packed_mediump_dmat3x4',['../a00303.html#gad5dcaf93df267bc3029174e430e0907f',1,'glm']]], + ['packed_5fmediump_5fdmat4',['packed_mediump_dmat4',['../a00303.html#ga4b0ee7996651ddd04eaa0c4cdbb66332',1,'glm']]], + ['packed_5fmediump_5fdmat4x2',['packed_mediump_dmat4x2',['../a00303.html#ga9a15514a0631f700de6312b9d5db3a73',1,'glm']]], + ['packed_5fmediump_5fdmat4x3',['packed_mediump_dmat4x3',['../a00303.html#gab5b36cc9caee1bb1c5178fe191bf5713',1,'glm']]], + ['packed_5fmediump_5fdmat4x4',['packed_mediump_dmat4x4',['../a00303.html#ga21e86cf2f6c126bacf31b8985db06bd4',1,'glm']]], + ['packed_5fmediump_5fdvec1',['packed_mediump_dvec1',['../a00303.html#ga8920e90ea9c01d9c97e604a938ce2cbd',1,'glm']]], + ['packed_5fmediump_5fdvec2',['packed_mediump_dvec2',['../a00303.html#ga0c754a783b6fcf80374c013371c4dae9',1,'glm']]], + ['packed_5fmediump_5fdvec3',['packed_mediump_dvec3',['../a00303.html#ga1f18ada6f7cdd8c46db33ba987280fc4',1,'glm']]], + ['packed_5fmediump_5fdvec4',['packed_mediump_dvec4',['../a00303.html#ga568b850f1116b667043533cf77826968',1,'glm']]], + ['packed_5fmediump_5fivec1',['packed_mediump_ivec1',['../a00303.html#ga09507ef020a49517a7bcd50438f05056',1,'glm']]], + ['packed_5fmediump_5fivec2',['packed_mediump_ivec2',['../a00303.html#gaaa891048dddef4627df33809ec726219',1,'glm']]], + ['packed_5fmediump_5fivec3',['packed_mediump_ivec3',['../a00303.html#ga06f26d54dca30994eb1fdadb8e69f4a2',1,'glm']]], + ['packed_5fmediump_5fivec4',['packed_mediump_ivec4',['../a00303.html#ga70130dc8ed9c966ec2a221ce586d45d8',1,'glm']]], + ['packed_5fmediump_5fmat2',['packed_mediump_mat2',['../a00303.html#ga43cd36d430c5187bfdca34a23cb41581',1,'glm']]], + ['packed_5fmediump_5fmat2x2',['packed_mediump_mat2x2',['../a00303.html#ga2d2a73e662759e301c22b8931ff6a526',1,'glm']]], + ['packed_5fmediump_5fmat2x3',['packed_mediump_mat2x3',['../a00303.html#ga99049db01faf1e95ed9fb875a47dffe2',1,'glm']]], + ['packed_5fmediump_5fmat2x4',['packed_mediump_mat2x4',['../a00303.html#gad43a240533f388ce0504b495d9df3d52',1,'glm']]], + ['packed_5fmediump_5fmat3',['packed_mediump_mat3',['../a00303.html#ga13a75c6cbd0a411f694bc82486cd1e55',1,'glm']]], + ['packed_5fmediump_5fmat3x2',['packed_mediump_mat3x2',['../a00303.html#ga04cfaf1421284df3c24ea0985dab24e7',1,'glm']]], + ['packed_5fmediump_5fmat3x3',['packed_mediump_mat3x3',['../a00303.html#gaaa9cea174d342dd9650e3436823cab23',1,'glm']]], + ['packed_5fmediump_5fmat3x4',['packed_mediump_mat3x4',['../a00303.html#gabc93a9560593bd32e099c908531305f5',1,'glm']]], + ['packed_5fmediump_5fmat4',['packed_mediump_mat4',['../a00303.html#gae89d72ffc149147f61df701bbc8755bf',1,'glm']]], + ['packed_5fmediump_5fmat4x2',['packed_mediump_mat4x2',['../a00303.html#gaa458f9d9e0934bae3097e2a373b24707',1,'glm']]], + ['packed_5fmediump_5fmat4x3',['packed_mediump_mat4x3',['../a00303.html#ga02ca6255394aa778abaeb0f733c4d2b6',1,'glm']]], + ['packed_5fmediump_5fmat4x4',['packed_mediump_mat4x4',['../a00303.html#gaf304f64c06743c1571401504d3f50259',1,'glm']]], + ['packed_5fmediump_5fuvec1',['packed_mediump_uvec1',['../a00303.html#ga2c29fb42bab9a4f9b66bc60b2e514a34',1,'glm']]], + ['packed_5fmediump_5fuvec2',['packed_mediump_uvec2',['../a00303.html#gaa1f95690a78dc12e39da32943243aeef',1,'glm']]], + ['packed_5fmediump_5fuvec3',['packed_mediump_uvec3',['../a00303.html#ga1ea2bbdbcb0a69242f6d884663c1b0ab',1,'glm']]], + ['packed_5fmediump_5fuvec4',['packed_mediump_uvec4',['../a00303.html#ga63a73be86a4f07ea7a7499ab0bfebe45',1,'glm']]], + ['packed_5fmediump_5fvec1',['packed_mediump_vec1',['../a00303.html#ga71d63cead1e113fca0bcdaaa33aad050',1,'glm']]], + ['packed_5fmediump_5fvec2',['packed_mediump_vec2',['../a00303.html#ga6844c6f4691d1bf67673240850430948',1,'glm']]], + ['packed_5fmediump_5fvec3',['packed_mediump_vec3',['../a00303.html#gab0eb771b708c5b2205d9b14dd1434fd8',1,'glm']]], + ['packed_5fmediump_5fvec4',['packed_mediump_vec4',['../a00303.html#ga68c9bb24f387b312bae6a0a68e74d95e',1,'glm']]], + ['packed_5fuvec1',['packed_uvec1',['../a00303.html#ga5621493caac01bdd22ab6be4416b0314',1,'glm']]], + ['packed_5fuvec2',['packed_uvec2',['../a00303.html#gabcc33efb4d5e83b8fe4706360e75b932',1,'glm']]], + ['packed_5fuvec3',['packed_uvec3',['../a00303.html#gab96804e99e3a72a35740fec690c79617',1,'glm']]], + ['packed_5fuvec4',['packed_uvec4',['../a00303.html#ga8e5d92e84ebdbe2480cf96bc17d6e2f2',1,'glm']]], + ['packed_5fvec1',['packed_vec1',['../a00303.html#ga14741e3d9da9ae83765389927f837331',1,'glm']]], + ['packed_5fvec2',['packed_vec2',['../a00303.html#ga3254defa5a8f0ae4b02b45fedba84a66',1,'glm']]], + ['packed_5fvec3',['packed_vec3',['../a00303.html#gaccccd090e185450caa28b5b63ad4e8f0',1,'glm']]], + ['packed_5fvec4',['packed_vec4',['../a00303.html#ga37a0e0bf653169b581c5eea3d547fa5d',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.html index 7be38e1b52..b07ee409cd 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.js index 2f530303a2..12213dc743 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_9.js @@ -1,5 +1,5 @@ -var searchData= -[ - ['quat',['quat',['../a00252.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]], - ['qword',['qword',['../a00354.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]] -]; +var searchData= +[ + ['quat',['quat',['../a00252.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]], + ['qword',['qword',['../a00354.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.html index 6a4b197df1..b1a32661d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.js index 393208f4cf..47df88c5d6 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_a.js @@ -1,12 +1,12 @@ -var searchData= -[ - ['sint',['sint',['../a00330.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]], - ['size1',['size1',['../a00359.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]], - ['size1_5ft',['size1_t',['../a00359.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]], - ['size2',['size2',['../a00359.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]], - ['size2_5ft',['size2_t',['../a00359.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]], - ['size3',['size3',['../a00359.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]], - ['size3_5ft',['size3_t',['../a00359.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]], - ['size4',['size4',['../a00359.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]], - ['size4_5ft',['size4_t',['../a00359.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]] -]; +var searchData= +[ + ['sint',['sint',['../a00330.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]], + ['size1',['size1',['../a00359.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]], + ['size1_5ft',['size1_t',['../a00359.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]], + ['size2',['size2',['../a00359.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]], + ['size2_5ft',['size2_t',['../a00359.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]], + ['size3',['size3',['../a00359.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]], + ['size3_5ft',['size3_t',['../a00359.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]], + ['size4',['size4',['../a00359.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]], + ['size4_5ft',['size4_t',['../a00359.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.html index 81a2062c16..eded260db5 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.js index daa3896e94..e2eadd53be 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_b.js @@ -1,47 +1,47 @@ -var searchData= -[ - ['u16',['u16',['../a00304.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]], - ['u16vec1',['u16vec1',['../a00304.html#ga08c05ba8ffb19f5d14ab584e1e9e9ee5',1,'glm::u16vec1()'],['../a00346.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]], - ['u16vec2',['u16vec2',['../a00304.html#ga2a78447eb9d66a114b193f4a25899c16',1,'glm']]], - ['u16vec3',['u16vec3',['../a00304.html#ga1c522ca821c27b862fe51cf4024b064b',1,'glm']]], - ['u16vec4',['u16vec4',['../a00304.html#ga529496d75775fb656a07993ea9af2450',1,'glm']]], - ['u32',['u32',['../a00304.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]], - ['u32vec1',['u32vec1',['../a00304.html#gae627372cfd5f20dd87db490387b71195',1,'glm::u32vec1()'],['../a00346.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]], - ['u32vec2',['u32vec2',['../a00304.html#ga2a266e46ee218d0c680f12b35c500cc0',1,'glm']]], - ['u32vec3',['u32vec3',['../a00304.html#gae267358ff2a41d156d97f5762630235a',1,'glm']]], - ['u32vec4',['u32vec4',['../a00304.html#ga31cef34e4cd04840c54741ff2f7005f0',1,'glm']]], - ['u64',['u64',['../a00304.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]], - ['u64vec1',['u64vec1',['../a00304.html#gaf09f3ca4b671a4a4f84505eb4cc865fd',1,'glm::u64vec1()'],['../a00346.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]], - ['u64vec2',['u64vec2',['../a00304.html#gaef3824ed4fe435a019c5b9dddf53fec5',1,'glm']]], - ['u64vec3',['u64vec3',['../a00304.html#ga489b89ba93d4f7b3934df78debc52276',1,'glm']]], - ['u64vec4',['u64vec4',['../a00304.html#ga3945dd6515d4498cb603e65ff867ab03',1,'glm']]], - ['u8',['u8',['../a00304.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]], - ['u8vec1',['u8vec1',['../a00304.html#ga29b349e037f0b24320b4548a143daee2',1,'glm::u8vec1()'],['../a00346.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]], - ['u8vec2',['u8vec2',['../a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611',1,'glm']]], - ['u8vec3',['u8vec3',['../a00304.html#ga7c5706f6bbe5282e5598acf7e7b377e2',1,'glm']]], - ['u8vec4',['u8vec4',['../a00304.html#ga20779a61de2fd526a17f12fe53ec46b1',1,'glm']]], - ['uint16',['uint16',['../a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e',1,'glm']]], - ['uint16_5ft',['uint16_t',['../a00304.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]], - ['uint32',['uint32',['../a00263.html#ga1134b580f8da4de94ca6b1de4d37975e',1,'glm']]], - ['uint32_5ft',['uint32_t',['../a00304.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]], - ['uint64',['uint64',['../a00263.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]], - ['uint64_5ft',['uint64_t',['../a00304.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]], - ['uint8',['uint8',['../a00263.html#gadde6aaee8457bee49c2a92621fe22b79',1,'glm']]], - ['uint8_5ft',['uint8_t',['../a00304.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]], - ['umat2',['umat2',['../a00294.html#ga4cae85566f900debf930c41944b64691',1,'glm']]], - ['umat2x2',['umat2x2',['../a00294.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]], - ['umat2x3',['umat2x3',['../a00294.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]], - ['umat2x4',['umat2x4',['../a00294.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]], - ['umat3',['umat3',['../a00294.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]], - ['umat3x2',['umat3x2',['../a00294.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]], - ['umat3x3',['umat3x3',['../a00294.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]], - ['umat3x4',['umat3x4',['../a00294.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]], - ['umat4',['umat4',['../a00294.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]], - ['umat4x2',['umat4x2',['../a00294.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]], - ['umat4x3',['umat4x3',['../a00294.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]], - ['umat4x4',['umat4x4',['../a00294.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]], - ['uvec1',['uvec1',['../a00276.html#gac3bdd96183d23876c58a1424585fefe7',1,'glm']]], - ['uvec2',['uvec2',['../a00281.html#ga2f6d9ec3ae14813ade37d6aee3715fdb',1,'glm']]], - ['uvec3',['uvec3',['../a00281.html#ga3d3e55874babd4bf93baa7bbc83ae418',1,'glm']]], - ['uvec4',['uvec4',['../a00281.html#gaa57e96bb337867329d5f43bcc27c1095',1,'glm']]] -]; +var searchData= +[ + ['u16',['u16',['../a00304.html#gaa2d7acc0adb536fab71fe261232a40ff',1,'glm']]], + ['u16vec1',['u16vec1',['../a00304.html#ga08c05ba8ffb19f5d14ab584e1e9e9ee5',1,'glm::u16vec1()'],['../a00346.html#ga52cc069a92e126c3a8dcde93424d2ef0',1,'glm::gtx::u16vec1()']]], + ['u16vec2',['u16vec2',['../a00304.html#ga2a78447eb9d66a114b193f4a25899c16',1,'glm']]], + ['u16vec3',['u16vec3',['../a00304.html#ga1c522ca821c27b862fe51cf4024b064b',1,'glm']]], + ['u16vec4',['u16vec4',['../a00304.html#ga529496d75775fb656a07993ea9af2450',1,'glm']]], + ['u32',['u32',['../a00304.html#ga8165913e068444f7842302d40ba897b9',1,'glm']]], + ['u32vec1',['u32vec1',['../a00304.html#gae627372cfd5f20dd87db490387b71195',1,'glm::u32vec1()'],['../a00346.html#ga9bbc1e14aea65cba5e2dcfef6a67d9f3',1,'glm::gtx::u32vec1()']]], + ['u32vec2',['u32vec2',['../a00304.html#ga2a266e46ee218d0c680f12b35c500cc0',1,'glm']]], + ['u32vec3',['u32vec3',['../a00304.html#gae267358ff2a41d156d97f5762630235a',1,'glm']]], + ['u32vec4',['u32vec4',['../a00304.html#ga31cef34e4cd04840c54741ff2f7005f0',1,'glm']]], + ['u64',['u64',['../a00304.html#gaf3f312156984c365e9f65620354da70b',1,'glm']]], + ['u64vec1',['u64vec1',['../a00304.html#gaf09f3ca4b671a4a4f84505eb4cc865fd',1,'glm::u64vec1()'],['../a00346.html#ga818de170e2584ab037130f2881925974',1,'glm::gtx::u64vec1()']]], + ['u64vec2',['u64vec2',['../a00304.html#gaef3824ed4fe435a019c5b9dddf53fec5',1,'glm']]], + ['u64vec3',['u64vec3',['../a00304.html#ga489b89ba93d4f7b3934df78debc52276',1,'glm']]], + ['u64vec4',['u64vec4',['../a00304.html#ga3945dd6515d4498cb603e65ff867ab03',1,'glm']]], + ['u8',['u8',['../a00304.html#gaecc7082561fc9028b844b6cf3d305d36',1,'glm']]], + ['u8vec1',['u8vec1',['../a00304.html#ga29b349e037f0b24320b4548a143daee2',1,'glm::u8vec1()'],['../a00346.html#ga5853fe457f4c8a6bc09343d0e9833980',1,'glm::gtx::u8vec1()']]], + ['u8vec2',['u8vec2',['../a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611',1,'glm']]], + ['u8vec3',['u8vec3',['../a00304.html#ga7c5706f6bbe5282e5598acf7e7b377e2',1,'glm']]], + ['u8vec4',['u8vec4',['../a00304.html#ga20779a61de2fd526a17f12fe53ec46b1',1,'glm']]], + ['uint16',['uint16',['../a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e',1,'glm']]], + ['uint16_5ft',['uint16_t',['../a00304.html#ga91f91f411080c37730856ff5887f5bcf',1,'glm']]], + ['uint32',['uint32',['../a00263.html#ga1134b580f8da4de94ca6b1de4d37975e',1,'glm']]], + ['uint32_5ft',['uint32_t',['../a00304.html#ga2171d9dc1fefb1c82e2817f45b622eac',1,'glm']]], + ['uint64',['uint64',['../a00263.html#gab630f76c26b50298187f7889104d4b9c',1,'glm']]], + ['uint64_5ft',['uint64_t',['../a00304.html#ga3999d3e7ff22025c16ddb601e14dfdee',1,'glm']]], + ['uint8',['uint8',['../a00263.html#gadde6aaee8457bee49c2a92621fe22b79',1,'glm']]], + ['uint8_5ft',['uint8_t',['../a00304.html#ga28d97808322d3c92186e4a0c067d7e8e',1,'glm']]], + ['umat2',['umat2',['../a00294.html#ga4cae85566f900debf930c41944b64691',1,'glm']]], + ['umat2x2',['umat2x2',['../a00294.html#gabf8acdd33ce8951051edbca5200898aa',1,'glm']]], + ['umat2x3',['umat2x3',['../a00294.html#ga1870da7578d5022b973a83155d386ab3',1,'glm']]], + ['umat2x4',['umat2x4',['../a00294.html#ga57936a3998e992370e59a223e0ee4fd4',1,'glm']]], + ['umat3',['umat3',['../a00294.html#ga5085e3ff02abbac5e537eb7b89ab63b6',1,'glm']]], + ['umat3x2',['umat3x2',['../a00294.html#ga9cd7fa637a4a6788337f45231fad9e1a',1,'glm']]], + ['umat3x3',['umat3x3',['../a00294.html#ga1f2cfcf3357db0cdf31fcb15e3c6bafb',1,'glm']]], + ['umat3x4',['umat3x4',['../a00294.html#gae7c78ff3fc4309605ab0fa186c8d48ba',1,'glm']]], + ['umat4',['umat4',['../a00294.html#ga38bc7bb6494e344185df596deeb4544c',1,'glm']]], + ['umat4x2',['umat4x2',['../a00294.html#ga70fa2d05896aa83cbc8c07672a429b53',1,'glm']]], + ['umat4x3',['umat4x3',['../a00294.html#ga87581417945411f75cb31dd6ca1dba98',1,'glm']]], + ['umat4x4',['umat4x4',['../a00294.html#gaf72e6d399c42985db6872c50f53d7eb8',1,'glm']]], + ['uvec1',['uvec1',['../a00276.html#gac3bdd96183d23876c58a1424585fefe7',1,'glm']]], + ['uvec2',['uvec2',['../a00281.html#ga2f6d9ec3ae14813ade37d6aee3715fdb',1,'glm']]], + ['uvec3',['uvec3',['../a00281.html#ga3d3e55874babd4bf93baa7bbc83ae418',1,'glm']]], + ['uvec4',['uvec4',['../a00281.html#gaa57e96bb337867329d5f43bcc27c1095',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.html index 6e1592a45c..0ff00dda26 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.js index d228eab302..ff80f0dba7 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_c.js @@ -1,7 +1,7 @@ -var searchData= -[ - ['vec1',['vec1',['../a00270.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]], - ['vec2',['vec2',['../a00281.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]], - ['vec3',['vec3',['../a00281.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]], - ['vec4',['vec4',['../a00281.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]] -]; +var searchData= +[ + ['vec1',['vec1',['../a00270.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]], + ['vec2',['vec2',['../a00281.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]], + ['vec3',['vec3',['../a00281.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]], + ['vec4',['vec4',['../a00281.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.html b/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.html index 8218474ea3..61e1cda86a 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.html +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.html @@ -1,26 +1,26 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.js b/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.js index 787c0fa621..5e9c6bf4f7 100644 --- a/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.js +++ b/external/include/glm-0.9.9.8/doc/api/search/typedefs_d.js @@ -1,4 +1,4 @@ -var searchData= -[ - ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]] -]; +var searchData= +[ + ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]] +]; diff --git a/external/include/glm-0.9.9.8/doc/api/tabs.css b/external/include/glm-0.9.9.8/doc/api/tabs.css index 25af4141ec..9cf578f23a 100644 --- a/external/include/glm-0.9.9.8/doc/api/tabs.css +++ b/external/include/glm-0.9.9.8/doc/api/tabs.css @@ -1,60 +1,60 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/external/include/glm-0.9.9.8/doc/man.doxy b/external/include/glm-0.9.9.8/doc/man.doxy index 66ba1a1401..8eab2f6417 100644 --- a/external/include/glm-0.9.9.8/doc/man.doxy +++ b/external/include/glm-0.9.9.8/doc/man.doxy @@ -1,2415 +1,2415 @@ -# Doxyfile 1.8.10 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "0.9.9 API documentation" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = theme/logo-mini.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = . - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class " \ - "The $name widget " \ - "The $name file " \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = NO - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = "C:/Documents and Settings/Groove/ " - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = NO - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = YES - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = YES - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = YES - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = YES - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = YES - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = NO - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = NO - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = YES - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = YES - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = ../glm \ - . - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, -# *.vhdl, *.ucf, *.qsf, *.as and *.js. - -FILE_PATTERNS = *.hpp \ - *.doxy - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = NO - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /