├── .appveyor.yml
├── .github
└── workflows
│ ├── ci.yml
│ └── make_light_release.yml
├── .gitignore
├── .travis.yml
├── CMakeLists.txt
├── cmake
└── cmake_uninstall.cmake.in
├── copying.txt
├── doc
├── api
│ ├── a00001_source.html
│ ├── a00002.html
│ ├── a00002_source.html
│ ├── a00003_source.html
│ ├── a00004_source.html
│ ├── a00005_source.html
│ ├── a00006_source.html
│ ├── a00007.html
│ ├── a00007_source.html
│ ├── a00008.html
│ ├── a00008_source.html
│ ├── a00009.html
│ ├── a00009_source.html
│ ├── a00010.html
│ ├── a00010_source.html
│ ├── a00011.html
│ ├── a00011_source.html
│ ├── a00012.html
│ ├── a00012_source.html
│ ├── a00013.html
│ ├── a00013_source.html
│ ├── a00014.html
│ ├── a00014_source.html
│ ├── a00015.html
│ ├── a00015_source.html
│ ├── a00016.html
│ ├── a00016_source.html
│ ├── a00017.html
│ ├── a00017_source.html
│ ├── a00018.html
│ ├── a00018_source.html
│ ├── a00019_source.html
│ ├── a00020_source.html
│ ├── a00021.html
│ ├── a00021_source.html
│ ├── a00022.html
│ ├── a00022_source.html
│ ├── a00023.html
│ ├── a00023_source.html
│ ├── a00024.html
│ ├── a00024_source.html
│ ├── a00025.html
│ ├── a00025_source.html
│ ├── a00026.html
│ ├── a00026_source.html
│ ├── a00027.html
│ ├── a00027_source.html
│ ├── a00028.html
│ ├── a00028_source.html
│ ├── a00029.html
│ ├── a00029_source.html
│ ├── a00030.html
│ ├── a00030_source.html
│ ├── a00031.html
│ ├── a00031_source.html
│ ├── a00032.html
│ ├── a00032_source.html
│ ├── a00033.html
│ ├── a00033_source.html
│ ├── a00034.html
│ ├── a00034_source.html
│ ├── a00035_source.html
│ ├── a00036.html
│ ├── a00036_source.html
│ ├── a00037.html
│ ├── a00037_source.html
│ ├── a00038.html
│ ├── a00038_source.html
│ ├── a00039.html
│ ├── a00039_source.html
│ ├── a00040.html
│ ├── a00040_source.html
│ ├── a00041.html
│ ├── a00041_source.html
│ ├── a00042.html
│ ├── a00042_source.html
│ ├── a00043.html
│ ├── a00043_source.html
│ ├── a00044.html
│ ├── a00044_source.html
│ ├── a00045.html
│ ├── a00045_source.html
│ ├── a00046.html
│ ├── a00046_source.html
│ ├── a00047.html
│ ├── a00047_source.html
│ ├── a00048.html
│ ├── a00048_source.html
│ ├── a00049.html
│ ├── a00049_source.html
│ ├── a00050.html
│ ├── a00050_source.html
│ ├── a00051.html
│ ├── a00051_source.html
│ ├── a00052.html
│ ├── a00052_source.html
│ ├── a00053.html
│ ├── a00053_source.html
│ ├── a00054.html
│ ├── a00054_source.html
│ ├── a00055.html
│ ├── a00055_source.html
│ ├── a00056.html
│ ├── a00056_source.html
│ ├── a00057.html
│ ├── a00057_source.html
│ ├── a00058.html
│ ├── a00058_source.html
│ ├── a00059.html
│ ├── a00059_source.html
│ ├── a00060.html
│ ├── a00060_source.html
│ ├── a00061.html
│ ├── a00061_source.html
│ ├── a00062.html
│ ├── a00062_source.html
│ ├── a00063.html
│ ├── a00063_source.html
│ ├── a00064.html
│ ├── a00064_source.html
│ ├── a00065.html
│ ├── a00065_source.html
│ ├── a00066.html
│ ├── a00066_source.html
│ ├── a00067.html
│ ├── a00067_source.html
│ ├── a00068.html
│ ├── a00068_source.html
│ ├── a00069.html
│ ├── a00069_source.html
│ ├── a00070.html
│ ├── a00070_source.html
│ ├── a00071.html
│ ├── a00071_source.html
│ ├── a00072.html
│ ├── a00072_source.html
│ ├── a00073.html
│ ├── a00073_source.html
│ ├── a00074.html
│ ├── a00074_source.html
│ ├── a00075.html
│ ├── a00075_source.html
│ ├── a00076.html
│ ├── a00076_source.html
│ ├── a00077.html
│ ├── a00077_source.html
│ ├── a00078.html
│ ├── a00078_source.html
│ ├── a00079.html
│ ├── a00079_source.html
│ ├── a00080.html
│ ├── a00080_source.html
│ ├── a00081.html
│ ├── a00081_source.html
│ ├── a00082.html
│ ├── a00082_source.html
│ ├── a00083.html
│ ├── a00083_source.html
│ ├── a00084.html
│ ├── a00084_source.html
│ ├── a00085.html
│ ├── a00085_source.html
│ ├── a00086.html
│ ├── a00086_source.html
│ ├── a00087.html
│ ├── a00087_source.html
│ ├── a00088.html
│ ├── a00088_source.html
│ ├── a00089.html
│ ├── a00089_source.html
│ ├── a00090.html
│ ├── a00090_source.html
│ ├── a00091.html
│ ├── a00091_source.html
│ ├── a00092.html
│ ├── a00092_source.html
│ ├── a00093.html
│ ├── a00093_source.html
│ ├── a00094.html
│ ├── a00094_source.html
│ ├── a00095.html
│ ├── a00095_source.html
│ ├── a00096.html
│ ├── a00096_source.html
│ ├── a00097.html
│ ├── a00097_source.html
│ ├── a00098.html
│ ├── a00098_source.html
│ ├── a00099.html
│ ├── a00099_source.html
│ ├── a00100.html
│ ├── a00100_source.html
│ ├── a00101.html
│ ├── a00101_source.html
│ ├── a00102.html
│ ├── a00102_source.html
│ ├── a00103.html
│ ├── a00103_source.html
│ ├── a00104.html
│ ├── a00104_source.html
│ ├── a00105.html
│ ├── a00105_source.html
│ ├── a00106.html
│ ├── a00106_source.html
│ ├── a00107.html
│ ├── a00107_source.html
│ ├── a00108.html
│ ├── a00108_source.html
│ ├── a00109.html
│ ├── a00109_source.html
│ ├── a00110.html
│ ├── a00110_source.html
│ ├── a00111.html
│ ├── a00111_source.html
│ ├── a00112.html
│ ├── a00112_source.html
│ ├── a00113.html
│ ├── a00113_source.html
│ ├── a00114.html
│ ├── a00114_source.html
│ ├── a00115.html
│ ├── a00115_source.html
│ ├── a00116.html
│ ├── a00116_source.html
│ ├── a00117.html
│ ├── a00117_source.html
│ ├── a00118.html
│ ├── a00118_source.html
│ ├── a00119.html
│ ├── a00119_source.html
│ ├── a00120.html
│ ├── a00120_source.html
│ ├── a00121.html
│ ├── a00121_source.html
│ ├── a00122.html
│ ├── a00122_source.html
│ ├── a00123.html
│ ├── a00123_source.html
│ ├── a00124_source.html
│ ├── a00125.html
│ ├── a00125_source.html
│ ├── a00126.html
│ ├── a00126_source.html
│ ├── a00127.html
│ ├── a00127_source.html
│ ├── a00128.html
│ ├── a00128_source.html
│ ├── a00129.html
│ ├── a00129_source.html
│ ├── a00130.html
│ ├── a00130_source.html
│ ├── a00131.html
│ ├── a00131_source.html
│ ├── a00132.html
│ ├── a00132_source.html
│ ├── a00133.html
│ ├── a00133_source.html
│ ├── a00134.html
│ ├── a00134_source.html
│ ├── a00135.html
│ ├── a00135_source.html
│ ├── a00136.html
│ ├── a00136_source.html
│ ├── a00137.html
│ ├── a00137_source.html
│ ├── a00138.html
│ ├── a00138_source.html
│ ├── a00139.html
│ ├── a00139_source.html
│ ├── a00140.html
│ ├── a00140_source.html
│ ├── a00141.html
│ ├── a00141_source.html
│ ├── a00142.html
│ ├── a00142_source.html
│ ├── a00143.html
│ ├── a00143_source.html
│ ├── a00144.html
│ ├── a00144_source.html
│ ├── a00145.html
│ ├── a00145_source.html
│ ├── a00146.html
│ ├── a00146_source.html
│ ├── a00147.html
│ ├── a00147_source.html
│ ├── a00148.html
│ ├── a00148_source.html
│ ├── a00149.html
│ ├── a00149_source.html
│ ├── a00150.html
│ ├── a00150_source.html
│ ├── a00151.html
│ ├── a00151_source.html
│ ├── a00152.html
│ ├── a00152_source.html
│ ├── a00153_source.html
│ ├── a00154.html
│ ├── a00154_source.html
│ ├── a00155.html
│ ├── a00155_source.html
│ ├── a00156.html
│ ├── a00156_source.html
│ ├── a00157.html
│ ├── a00157_source.html
│ ├── a00158.html
│ ├── a00158_source.html
│ ├── a00159.html
│ ├── a00159_source.html
│ ├── a00160.html
│ ├── a00160_source.html
│ ├── a00161.html
│ ├── a00161_source.html
│ ├── a00162.html
│ ├── a00162_source.html
│ ├── a00163_source.html
│ ├── a00164.html
│ ├── a00164_source.html
│ ├── a00165.html
│ ├── a00165_source.html
│ ├── a00166.html
│ ├── a00166_source.html
│ ├── a00167.html
│ ├── a00167_source.html
│ ├── a00168.html
│ ├── a00168_source.html
│ ├── a00169.html
│ ├── a00169_source.html
│ ├── a00170.html
│ ├── a00170_source.html
│ ├── a00171.html
│ ├── a00171_source.html
│ ├── a00172.html
│ ├── a00172_source.html
│ ├── a00173.html
│ ├── a00173_source.html
│ ├── a00174.html
│ ├── a00174_source.html
│ ├── a00175.html
│ ├── a00175_source.html
│ ├── a00176.html
│ ├── a00176_source.html
│ ├── a00177.html
│ ├── a00177_source.html
│ ├── a00178.html
│ ├── a00178_source.html
│ ├── a00179.html
│ ├── a00179_source.html
│ ├── a00180.html
│ ├── a00180_source.html
│ ├── a00181.html
│ ├── a00181_source.html
│ ├── a00182.html
│ ├── a00182_source.html
│ ├── a00183.html
│ ├── a00183_source.html
│ ├── a00184.html
│ ├── a00184_source.html
│ ├── a00185.html
│ ├── a00185_source.html
│ ├── a00186.html
│ ├── a00186_source.html
│ ├── a00187.html
│ ├── a00187_source.html
│ ├── a00188.html
│ ├── a00188_source.html
│ ├── a00189.html
│ ├── a00189_source.html
│ ├── a00190.html
│ ├── a00190_source.html
│ ├── a00191.html
│ ├── a00191_source.html
│ ├── a00192.html
│ ├── a00192_source.html
│ ├── a00193.html
│ ├── a00193_source.html
│ ├── a00194.html
│ ├── a00194_source.html
│ ├── a00195.html
│ ├── a00195_source.html
│ ├── a00196.html
│ ├── a00196_source.html
│ ├── a00197.html
│ ├── a00197_source.html
│ ├── a00198.html
│ ├── a00198_source.html
│ ├── a00199.html
│ ├── a00199_source.html
│ ├── a00200.html
│ ├── a00200_source.html
│ ├── a00201.html
│ ├── a00201_source.html
│ ├── a00202.html
│ ├── a00202_source.html
│ ├── a00203.html
│ ├── a00203_source.html
│ ├── a00204.html
│ ├── a00204_source.html
│ ├── a00205.html
│ ├── a00205_source.html
│ ├── a00206.html
│ ├── a00206_source.html
│ ├── a00207.html
│ ├── a00207_source.html
│ ├── a00208.html
│ ├── a00208_source.html
│ ├── a00209.html
│ ├── a00209_source.html
│ ├── a00210.html
│ ├── a00210_source.html
│ ├── a00211.html
│ ├── a00211_source.html
│ ├── a00212.html
│ ├── a00212_source.html
│ ├── a00213.html
│ ├── a00213_source.html
│ ├── a00214.html
│ ├── a00214_source.html
│ ├── a00215.html
│ ├── a00215_source.html
│ ├── a00216.html
│ ├── a00216_source.html
│ ├── a00217.html
│ ├── a00217_source.html
│ ├── a00218.html
│ ├── a00218_source.html
│ ├── a00219.html
│ ├── a00219_source.html
│ ├── a00220.html
│ ├── a00220_source.html
│ ├── a00221.html
│ ├── a00221_source.html
│ ├── a00222.html
│ ├── a00222_source.html
│ ├── a00223.html
│ ├── a00223_source.html
│ ├── a00224.html
│ ├── a00224_source.html
│ ├── a00225.html
│ ├── a00225_source.html
│ ├── a00226.html
│ ├── a00226_source.html
│ ├── a00227.html
│ ├── a00227_source.html
│ ├── a00228.html
│ ├── a00228_source.html
│ ├── a00229.html
│ ├── a00229_source.html
│ ├── a00230.html
│ ├── a00230_source.html
│ ├── a00231.html
│ ├── a00231_source.html
│ ├── a00232.html
│ ├── a00232_source.html
│ ├── a00233.html
│ ├── a00233_source.html
│ ├── a00234.html
│ ├── a00234_source.html
│ ├── a00235.html
│ ├── a00235_source.html
│ ├── a00236_source.html
│ ├── a00239.html
│ ├── a00239_source.html
│ ├── a00241.html
│ ├── a00242.html
│ ├── a00242_source.html
│ ├── a00243.html
│ ├── a00244.html
│ ├── a00245.html
│ ├── a00245_source.html
│ ├── a00246.html
│ ├── a00247.html
│ ├── a00248.html
│ ├── a00248_source.html
│ ├── a00249.html
│ ├── a00250.html
│ ├── a00251.html
│ ├── a00251_source.html
│ ├── a00252.html
│ ├── a00253.html
│ ├── a00254.html
│ ├── a00254_source.html
│ ├── a00255.html
│ ├── a00256.html
│ ├── a00257.html
│ ├── a00258.html
│ ├── a00259.html
│ ├── a00260.html
│ ├── a00260_source.html
│ ├── a00261.html
│ ├── a00262.html
│ ├── a00263.html
│ ├── a00263_source.html
│ ├── a00264.html
│ ├── a00265.html
│ ├── a00266.html
│ ├── a00267.html
│ ├── a00268.html
│ ├── a00269.html
│ ├── a00269_source.html
│ ├── a00270.html
│ ├── a00271.html
│ ├── a00272.html
│ ├── a00272_source.html
│ ├── a00273.html
│ ├── a00274.html
│ ├── a00275.html
│ ├── a00275_source.html
│ ├── a00276.html
│ ├── a00277.html
│ ├── a00278.html
│ ├── a00278_source.html
│ ├── a00279.html
│ ├── a00280.html
│ ├── a00281.html
│ ├── a00281_source.html
│ ├── a00282.html
│ ├── a00283.html
│ ├── a00284.html
│ ├── a00284_source.html
│ ├── a00285.html
│ ├── a00286.html
│ ├── a00287.html
│ ├── a00287_source.html
│ ├── a00288.html
│ ├── a00289.html
│ ├── a00290.html
│ ├── a00290_source.html
│ ├── a00291.html
│ ├── a00292.html
│ ├── a00293.html
│ ├── a00293_source.html
│ ├── a00294.html
│ ├── a00295.html
│ ├── a00296.html
│ ├── a00296_source.html
│ ├── a00297.html
│ ├── a00298.html
│ ├── a00299.html
│ ├── a00299_source.html
│ ├── a00300.html
│ ├── a00301.html
│ ├── a00302.html
│ ├── a00302_source.html
│ ├── a00303.html
│ ├── a00304.html
│ ├── a00305.html
│ ├── a00305_source.html
│ ├── a00306.html
│ ├── a00307.html
│ ├── a00308.html
│ ├── a00308_source.html
│ ├── a00309.html
│ ├── a00310.html
│ ├── a00311.html
│ ├── a00311_source.html
│ ├── a00312.html
│ ├── a00313.html
│ ├── a00314.html
│ ├── a00314_source.html
│ ├── a00315.html
│ ├── a00316.html
│ ├── a00317.html
│ ├── a00317_source.html
│ ├── a00318.html
│ ├── a00319.html
│ ├── a00320.html
│ ├── a00320_source.html
│ ├── a00321.html
│ ├── a00322.html
│ ├── a00323.html
│ ├── a00323_source.html
│ ├── a00324.html
│ ├── a00325.html
│ ├── a00326.html
│ ├── a00326_source.html
│ ├── a00327.html
│ ├── a00328.html
│ ├── a00329.html
│ ├── a00329_source.html
│ ├── a00330.html
│ ├── a00331.html
│ ├── a00332.html
│ ├── a00332_source.html
│ ├── a00333.html
│ ├── a00334.html
│ ├── a00335.html
│ ├── a00335_source.html
│ ├── a00336.html
│ ├── a00337.html
│ ├── a00338.html
│ ├── a00338_source.html
│ ├── a00339.html
│ ├── a00340.html
│ ├── a00341.html
│ ├── a00341_source.html
│ ├── a00342.html
│ ├── a00343.html
│ ├── a00344.html
│ ├── a00344_source.html
│ ├── a00345.html
│ ├── a00346.html
│ ├── a00347.html
│ ├── a00347_source.html
│ ├── a00348.html
│ ├── a00349.html
│ ├── a00350.html
│ ├── a00350_source.html
│ ├── a00351.html
│ ├── a00352.html
│ ├── a00353.html
│ ├── a00353_source.html
│ ├── a00354.html
│ ├── a00355.html
│ ├── a00356.html
│ ├── a00356_source.html
│ ├── a00357.html
│ ├── a00358.html
│ ├── a00359.html
│ ├── a00359_source.html
│ ├── a00360.html
│ ├── a00361.html
│ ├── a00362.html
│ ├── a00362_source.html
│ ├── a00363.html
│ ├── a00364.html
│ ├── a00365.html
│ ├── a00365_source.html
│ ├── a00366.html
│ ├── a00367.html
│ ├── a00368.html
│ ├── a00368_source.html
│ ├── a00369.html
│ ├── a00370.html
│ ├── a00371.html
│ ├── a00372.html
│ ├── a00373.html
│ ├── a00374.html
│ ├── a00374_source.html
│ ├── a00377.html
│ ├── a00377_source.html
│ ├── a00380.html
│ ├── a00380_source.html
│ ├── a00383.html
│ ├── a00383_source.html
│ ├── a00386.html
│ ├── a00386_source.html
│ ├── a00389.html
│ ├── a00389_source.html
│ ├── a00392.html
│ ├── a00392_source.html
│ ├── a00395.html
│ ├── a00395_source.html
│ ├── a00398.html
│ ├── a00398_source.html
│ ├── a00401.html
│ ├── a00401_source.html
│ ├── a00404.html
│ ├── a00404_source.html
│ ├── a00407.html
│ ├── a00407_source.html
│ ├── a00410.html
│ ├── a00410_source.html
│ ├── a00413.html
│ ├── a00413_source.html
│ ├── a00416.html
│ ├── a00416_source.html
│ ├── a00419.html
│ ├── a00419_source.html
│ ├── a00422.html
│ ├── a00422_source.html
│ ├── a00425.html
│ ├── a00425_source.html
│ ├── a00428.html
│ ├── a00428_source.html
│ ├── a00431.html
│ ├── a00431_source.html
│ ├── a00434.html
│ ├── a00434_source.html
│ ├── a00437.html
│ ├── a00437_source.html
│ ├── a00440.html
│ ├── a00440_source.html
│ ├── a00443.html
│ ├── a00443_source.html
│ ├── a00446.html
│ ├── a00446_source.html
│ ├── a00449.html
│ ├── a00449_source.html
│ ├── a00452.html
│ ├── a00452_source.html
│ ├── a00455.html
│ ├── a00455_source.html
│ ├── a00458.html
│ ├── a00458_source.html
│ ├── a00461.html
│ ├── a00461_source.html
│ ├── a00464.html
│ ├── a00464_source.html
│ ├── a00467.html
│ ├── a00467_source.html
│ ├── a00470.html
│ ├── a00470_source.html
│ ├── a00473.html
│ ├── a00473_source.html
│ ├── a00476.html
│ ├── a00476_source.html
│ ├── a00479.html
│ ├── a00479_source.html
│ ├── a00482.html
│ ├── a00482_source.html
│ ├── a00485.html
│ ├── a00485_source.html
│ ├── a00488.html
│ ├── a00488_source.html
│ ├── a00491.html
│ ├── a00491_source.html
│ ├── a00494.html
│ ├── a00494_source.html
│ ├── a00497.html
│ ├── a00497_source.html
│ ├── a00500.html
│ ├── a00500_source.html
│ ├── a00503.html
│ ├── a00503_source.html
│ ├── a00506.html
│ ├── a00506_source.html
│ ├── a00509.html
│ ├── a00509_source.html
│ ├── a00512.html
│ ├── a00512_source.html
│ ├── a00515.html
│ ├── a00515_source.html
│ ├── a00518.html
│ ├── a00518_source.html
│ ├── a00521_source.html
│ ├── a00524.html
│ ├── a00524_source.html
│ ├── a00527_source.html
│ ├── a00530.html
│ ├── a00530_source.html
│ ├── a00536.html
│ ├── a00536_source.html
│ ├── a00539.html
│ ├── a00539_source.html
│ ├── a00542.html
│ ├── a00542_source.html
│ ├── a00545.html
│ ├── a00545_source.html
│ ├── a00548.html
│ ├── a00548_source.html
│ ├── a00551.html
│ ├── a00551_source.html
│ ├── a00554.html
│ ├── a00554_source.html
│ ├── a00560.html
│ ├── a00560_source.html
│ ├── a00563.html
│ ├── a00563_source.html
│ ├── a00566.html
│ ├── a00566_source.html
│ ├── a00572.html
│ ├── a00572_source.html
│ ├── a00575.html
│ ├── a00575_source.html
│ ├── a00578.html
│ ├── a00578_source.html
│ ├── a00581.html
│ ├── a00581_source.html
│ ├── a00584.html
│ ├── a00584_source.html
│ ├── a00587.html
│ ├── a00587_source.html
│ ├── a00590.html
│ ├── a00590_source.html
│ ├── a00593.html
│ ├── a00593_source.html
│ ├── a00596.html
│ ├── a00596_source.html
│ ├── a00599.html
│ ├── a00599_source.html
│ ├── a00602.html
│ ├── a00602_source.html
│ ├── a00605.html
│ ├── a00605_source.html
│ ├── a00608.html
│ ├── a00608_source.html
│ ├── a00611.html
│ ├── a00611_source.html
│ ├── a00614.html
│ ├── a00614_source.html
│ ├── a00617.html
│ ├── a00617_source.html
│ ├── a00620.html
│ ├── a00620_source.html
│ ├── a00623.html
│ ├── a00623_source.html
│ ├── a00626.html
│ ├── a00626_source.html
│ ├── a00629.html
│ ├── a00629_source.html
│ ├── a00632.html
│ ├── a00632_source.html
│ ├── a00635.html
│ ├── a00635_source.html
│ ├── a00638.html
│ ├── a00638_source.html
│ ├── a00641.html
│ ├── a00641_source.html
│ ├── a00644.html
│ ├── a00644_source.html
│ ├── a00647.html
│ ├── a00647_source.html
│ ├── a00650.html
│ ├── a00650_source.html
│ ├── a00653.html
│ ├── a00653_source.html
│ ├── a00656.html
│ ├── a00656_source.html
│ ├── a00659.html
│ ├── a00659_source.html
│ ├── a00662.html
│ ├── a00662_source.html
│ ├── a00665.html
│ ├── a00665_source.html
│ ├── a00668.html
│ ├── a00668_source.html
│ ├── a00671.html
│ ├── a00671_source.html
│ ├── a00674.html
│ ├── a00674_source.html
│ ├── a00677.html
│ ├── a00677_source.html
│ ├── a00680.html
│ ├── a00680_source.html
│ ├── a00683.html
│ ├── a00683_source.html
│ ├── a00686.html
│ ├── a00686_source.html
│ ├── a00689.html
│ ├── a00689_source.html
│ ├── a00692.html
│ ├── a00692_source.html
│ ├── a00695.html
│ ├── a00695_source.html
│ ├── a00698.html
│ ├── a00698_source.html
│ ├── a00701.html
│ ├── a00701_source.html
│ ├── a00704.html
│ ├── a00704_source.html
│ ├── a00707.html
│ ├── a00707_source.html
│ ├── a00710.html
│ ├── a00710_source.html
│ ├── a00713.html
│ ├── a00713_source.html
│ ├── a00716.html
│ ├── a00716_source.html
│ ├── a00719.html
│ ├── a00719_source.html
│ ├── a00722.html
│ ├── a00722_source.html
│ ├── a00725.html
│ ├── a00725_source.html
│ ├── a00728.html
│ ├── a00728_source.html
│ ├── a00731.html
│ ├── a00731_source.html
│ ├── a00734.html
│ ├── a00734_source.html
│ ├── a00737.html
│ ├── a00737_source.html
│ ├── a00740.html
│ ├── a00740_source.html
│ ├── a00743.html
│ ├── a00743_source.html
│ ├── a00746.html
│ ├── a00746_source.html
│ ├── a00749.html
│ ├── a00749_source.html
│ ├── a00752.html
│ ├── a00752_source.html
│ ├── a00755.html
│ ├── a00755_source.html
│ ├── a00758.html
│ ├── a00758_source.html
│ ├── a00761.html
│ ├── a00761_source.html
│ ├── a00764.html
│ ├── a00764_source.html
│ ├── a00767.html
│ ├── a00767_source.html
│ ├── a00770.html
│ ├── a00770_source.html
│ ├── a00773.html
│ ├── a00773_source.html
│ ├── a00776.html
│ ├── a00776_source.html
│ ├── a00779.html
│ ├── a00779_source.html
│ ├── a00782.html
│ ├── a00782_source.html
│ ├── a00785.html
│ ├── a00785_source.html
│ ├── a00788.html
│ ├── a00788_source.html
│ ├── a00791.html
│ ├── a00791_source.html
│ ├── a00794.html
│ ├── a00794_source.html
│ ├── a00797.html
│ ├── a00797_source.html
│ ├── a00800_source.html
│ ├── a00803.html
│ ├── a00804.html
│ ├── a00805.html
│ ├── a00806.html
│ ├── a00807.html
│ ├── a00808.html
│ ├── a00809.html
│ ├── a00810.html
│ ├── a00811.html
│ ├── a00812.html
│ ├── a00813.html
│ ├── a00814.html
│ ├── a00815.html
│ ├── a00816.html
│ ├── a00817.html
│ ├── a00818.html
│ ├── a00819.html
│ ├── a00820.html
│ ├── a00821.html
│ ├── a00822.html
│ ├── a00823.html
│ ├── a00824.html
│ ├── a00825.html
│ ├── a00826.html
│ ├── a00827.html
│ ├── a00828.html
│ ├── a00829.html
│ ├── a00830.html
│ ├── a00831.html
│ ├── a00832.html
│ ├── a00833.html
│ ├── a00834.html
│ ├── a00835.html
│ ├── a00836.html
│ ├── a00837.html
│ ├── a00838.html
│ ├── a00839.html
│ ├── a00840.html
│ ├── a00841.html
│ ├── a00842.html
│ ├── a00843.html
│ ├── a00844.html
│ ├── a00845.html
│ ├── a00846.html
│ ├── a00847.html
│ ├── a00848.html
│ ├── a00849.html
│ ├── a00850.html
│ ├── a00851.html
│ ├── a00852.html
│ ├── a00853.html
│ ├── a00854.html
│ ├── a00855.html
│ ├── a00856.html
│ ├── a00857.html
│ ├── a00858.html
│ ├── a00859.html
│ ├── a00860.html
│ ├── a00861.html
│ ├── a00862.html
│ ├── a00863.html
│ ├── a00864.html
│ ├── a00865.html
│ ├── a00866.html
│ ├── a00867.html
│ ├── a00868.html
│ ├── a00869.html
│ ├── a00870.html
│ ├── a00871.html
│ ├── a00872.html
│ ├── a00873.html
│ ├── a00874.html
│ ├── a00875.html
│ ├── a00876.html
│ ├── a00877.html
│ ├── a00878.html
│ ├── a00879.html
│ ├── a00880.html
│ ├── a00881.html
│ ├── a00882.html
│ ├── a00883.html
│ ├── a00884.html
│ ├── a00885.html
│ ├── a00886.html
│ ├── a00887.html
│ ├── a00888.html
│ ├── a00889.html
│ ├── a00890.html
│ ├── a00891.html
│ ├── a00892.html
│ ├── a00893.html
│ ├── a00894.html
│ ├── a00895.html
│ ├── a00896.html
│ ├── a00897.html
│ ├── a00898.html
│ ├── a00899.html
│ ├── a00900.html
│ ├── a00901.html
│ ├── a00902.html
│ ├── a00903.html
│ ├── a00904.html
│ ├── a00905.html
│ ├── a00906.html
│ ├── a00907.html
│ ├── a00908.html
│ ├── a00909.html
│ ├── a00910.html
│ ├── a00911.html
│ ├── a00912.html
│ ├── a00913.html
│ ├── a00914.html
│ ├── a00915.html
│ ├── a00916.html
│ ├── a00917.html
│ ├── a00918.html
│ ├── a00919.html
│ ├── a00920.html
│ ├── a00921.html
│ ├── a00922.html
│ ├── a00923.html
│ ├── a00924.html
│ ├── a00925.html
│ ├── a00926.html
│ ├── a00927.html
│ ├── a00928.html
│ ├── a00929.html
│ ├── a00930.html
│ ├── a00931.html
│ ├── a00932.html
│ ├── a00933.html
│ ├── a00934.html
│ ├── a00935.html
│ ├── a00936.html
│ ├── a00937.html
│ ├── a00938.html
│ ├── a00939.html
│ ├── a00940.html
│ ├── a00941.html
│ ├── a00942.html
│ ├── a00943.html
│ ├── a00944.html
│ ├── a00945.html
│ ├── a00946.html
│ ├── a00947.html
│ ├── a00948.html
│ ├── a00949.html
│ ├── a00950.html
│ ├── a00951.html
│ ├── a00952.html
│ ├── a00953.html
│ ├── a00954.html
│ ├── a00955.html
│ ├── a00956.html
│ ├── a00957.html
│ ├── a00958.html
│ ├── a00959.html
│ ├── a00960.html
│ ├── a00961.html
│ ├── a00962.html
│ ├── a00963.html
│ ├── a00964.html
│ ├── a00965.html
│ ├── a00966.html
│ ├── a00967.html
│ ├── a00968.html
│ ├── a00969.html
│ ├── a00970.html
│ ├── a00971.html
│ ├── a00972.html
│ ├── a00973.html
│ ├── a00974.html
│ ├── a00975.html
│ ├── a00976.html
│ ├── a00977.html
│ ├── a00978.html
│ ├── a00979.html
│ ├── a00980.html
│ ├── a00981.html
│ ├── a00982.html
│ ├── a00983.html
│ ├── a00984.html
│ ├── a00985.html
│ ├── a01558.html
│ ├── a01558_source.html
│ ├── a01561.html
│ ├── a01561_source.html
│ ├── a01564.html
│ ├── a01564_source.html
│ ├── a01567.html
│ ├── a01567_source.html
│ ├── a01570.html
│ ├── a01570_source.html
│ ├── a01573.html
│ ├── a01573_source.html
│ ├── a01576.html
│ ├── a01576_source.html
│ ├── a01579.html
│ ├── a01579_source.html
│ ├── a01582.html
│ ├── a01582_source.html
│ ├── a01585.html
│ ├── a01585_source.html
│ ├── a01588.html
│ ├── a01588_source.html
│ ├── a01591.html
│ ├── a01591_source.html
│ ├── a01594.html
│ ├── a01594_source.html
│ ├── a01597.html
│ ├── a01597_source.html
│ ├── a01600.html
│ ├── a01600_source.html
│ ├── a01603.html
│ ├── a01603_source.html
│ ├── a01606.html
│ ├── a01606_source.html
│ ├── arrowdown.png
│ ├── arrowright.png
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── closed.png
│ ├── dir_033f5edb0915b828d2c46ed4804e5503.html
│ ├── dir_382f4fd018b81be8753cb53c0a41a09a.html
│ ├── dir_3a581ba30d25676e4b797b1f96d53b45.html
│ ├── dir_44e5e654415abd9ca6fdeaddaff8565e.html
│ ├── dir_4c6bd29c73fa4e5a2509e1c15f846751.html
│ ├── dir_50f12b6ceb23d7f6adfb377a1ae8b006.html
│ ├── dir_5189610d3ba09ec39b766fb99b34cd93.html
│ ├── dir_628fd60eb37daf5aa9a81e3983c640b7.html
│ ├── dir_63ed049134a778d525e06b63afc2c979.html
│ ├── dir_6b66465792d005310484819a0eb0b0d3.html
│ ├── dir_885cc87fac2d91e269af0a5a959fa5f6.html
│ ├── dir_9e5fe034a00e89334fd5186c3e7db156.html
│ ├── dir_a8bee7be44182a33f3820393ae0b105d.html
│ ├── dir_b11711034def6a4ce452fe9c451dd3d0.html
│ ├── dir_b171cecbb853a9ee4caace490047c53f.html
│ ├── dir_c98a9ac98258ab9f831b188d66361a70.html
│ ├── dir_cef2d71d502cb69a9252bca2297d9549.html
│ ├── dir_d9496f0844b48bc7e53b5af8c99b9ab2.html
│ ├── dir_d9678a6a9012da969e0b059b39347945.html
│ ├── dir_f35778ec600a1b9bbc4524e62e226aa2.html
│ ├── dir_fca33f1b5115d46f42c670590789c0d2.html
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dynsections.js
│ ├── files.html
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── index.html
│ ├── jquery.js
│ ├── logo-mini.png
│ ├── menu.js
│ ├── menudata.js
│ ├── modules.html
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── search
│ │ ├── all_0.html
│ │ ├── all_0.js
│ │ ├── all_1.html
│ │ ├── all_1.js
│ │ ├── all_10.html
│ │ ├── all_10.js
│ │ ├── all_11.html
│ │ ├── all_11.js
│ │ ├── all_12.html
│ │ ├── all_12.js
│ │ ├── all_13.html
│ │ ├── all_13.js
│ │ ├── all_14.html
│ │ ├── all_14.js
│ │ ├── all_15.html
│ │ ├── all_15.js
│ │ ├── all_16.html
│ │ ├── all_16.js
│ │ ├── all_2.html
│ │ ├── all_2.js
│ │ ├── all_3.html
│ │ ├── all_3.js
│ │ ├── all_4.html
│ │ ├── all_4.js
│ │ ├── all_5.html
│ │ ├── all_5.js
│ │ ├── all_6.html
│ │ ├── all_6.js
│ │ ├── all_7.html
│ │ ├── all_7.js
│ │ ├── all_8.html
│ │ ├── all_8.js
│ │ ├── all_9.html
│ │ ├── all_9.js
│ │ ├── all_a.html
│ │ ├── all_a.js
│ │ ├── all_b.html
│ │ ├── all_b.js
│ │ ├── all_c.html
│ │ ├── all_c.js
│ │ ├── all_d.html
│ │ ├── all_d.js
│ │ ├── all_e.html
│ │ ├── all_e.js
│ │ ├── all_f.html
│ │ ├── all_f.js
│ │ ├── close.png
│ │ ├── files_0.html
│ │ ├── files_0.js
│ │ ├── files_1.html
│ │ ├── files_1.js
│ │ ├── files_10.html
│ │ ├── files_10.js
│ │ ├── files_11.html
│ │ ├── files_11.js
│ │ ├── files_12.html
│ │ ├── files_12.js
│ │ ├── files_13.html
│ │ ├── files_13.js
│ │ ├── files_14.html
│ │ ├── files_14.js
│ │ ├── files_2.html
│ │ ├── files_2.js
│ │ ├── files_3.html
│ │ ├── files_3.js
│ │ ├── files_4.html
│ │ ├── files_4.js
│ │ ├── files_5.html
│ │ ├── files_5.js
│ │ ├── files_6.html
│ │ ├── files_6.js
│ │ ├── files_7.html
│ │ ├── files_7.js
│ │ ├── files_8.html
│ │ ├── files_8.js
│ │ ├── files_9.html
│ │ ├── files_9.js
│ │ ├── files_a.html
│ │ ├── files_a.js
│ │ ├── files_b.html
│ │ ├── files_b.js
│ │ ├── files_c.html
│ │ ├── files_c.js
│ │ ├── files_d.html
│ │ ├── files_d.js
│ │ ├── files_e.html
│ │ ├── files_e.js
│ │ ├── files_f.html
│ │ ├── files_f.js
│ │ ├── functions_0.html
│ │ ├── functions_0.js
│ │ ├── functions_1.html
│ │ ├── functions_1.js
│ │ ├── functions_10.html
│ │ ├── functions_10.js
│ │ ├── functions_11.html
│ │ ├── functions_11.js
│ │ ├── functions_12.html
│ │ ├── functions_12.js
│ │ ├── functions_13.html
│ │ ├── functions_13.js
│ │ ├── functions_14.html
│ │ ├── functions_14.js
│ │ ├── functions_15.html
│ │ ├── functions_15.js
│ │ ├── functions_16.html
│ │ ├── functions_16.js
│ │ ├── functions_2.html
│ │ ├── functions_2.js
│ │ ├── functions_3.html
│ │ ├── functions_3.js
│ │ ├── functions_4.html
│ │ ├── functions_4.js
│ │ ├── functions_5.html
│ │ ├── functions_5.js
│ │ ├── functions_6.html
│ │ ├── functions_6.js
│ │ ├── functions_7.html
│ │ ├── functions_7.js
│ │ ├── functions_8.html
│ │ ├── functions_8.js
│ │ ├── functions_9.html
│ │ ├── functions_9.js
│ │ ├── functions_a.html
│ │ ├── functions_a.js
│ │ ├── functions_b.html
│ │ ├── functions_b.js
│ │ ├── functions_c.html
│ │ ├── functions_c.js
│ │ ├── functions_d.html
│ │ ├── functions_d.js
│ │ ├── functions_e.html
│ │ ├── functions_e.js
│ │ ├── functions_f.html
│ │ ├── functions_f.js
│ │ ├── groups_0.html
│ │ ├── groups_0.js
│ │ ├── groups_1.html
│ │ ├── groups_1.js
│ │ ├── groups_2.html
│ │ ├── groups_2.js
│ │ ├── groups_3.html
│ │ ├── groups_3.js
│ │ ├── groups_4.html
│ │ ├── groups_4.js
│ │ ├── groups_5.html
│ │ ├── groups_5.js
│ │ ├── groups_6.html
│ │ ├── groups_6.js
│ │ ├── groups_7.html
│ │ ├── groups_7.js
│ │ ├── groups_8.html
│ │ ├── groups_8.js
│ │ ├── groups_9.html
│ │ ├── groups_9.js
│ │ ├── mag_sel.png
│ │ ├── nomatches.html
│ │ ├── pages_0.html
│ │ ├── pages_0.js
│ │ ├── search.css
│ │ ├── search.js
│ │ ├── search_l.png
│ │ ├── search_m.png
│ │ ├── search_r.png
│ │ ├── searchdata.js
│ │ ├── typedefs_0.html
│ │ ├── typedefs_0.js
│ │ ├── typedefs_1.html
│ │ ├── typedefs_1.js
│ │ ├── typedefs_2.html
│ │ ├── typedefs_2.js
│ │ ├── typedefs_3.html
│ │ ├── typedefs_3.js
│ │ ├── typedefs_4.html
│ │ ├── typedefs_4.js
│ │ ├── typedefs_5.html
│ │ ├── typedefs_5.js
│ │ ├── typedefs_6.html
│ │ ├── typedefs_6.js
│ │ ├── typedefs_7.html
│ │ ├── typedefs_7.js
│ │ ├── typedefs_8.html
│ │ ├── typedefs_8.js
│ │ ├── typedefs_9.html
│ │ ├── typedefs_9.js
│ │ ├── typedefs_a.html
│ │ ├── typedefs_a.js
│ │ ├── typedefs_b.html
│ │ ├── typedefs_b.js
│ │ ├── typedefs_c.html
│ │ ├── typedefs_c.js
│ │ ├── typedefs_d.html
│ │ └── typedefs_d.js
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ └── tabs.css
├── man.doxy
├── manual.pdf
├── manual
│ ├── frontpage1.png
│ ├── frontpage2.png
│ ├── g-truc.png
│ ├── logo-mini.png
│ ├── logo.png
│ ├── noise-perlin1.jpg
│ ├── noise-perlin2.jpg
│ ├── noise-perlin3.jpg
│ ├── noise-perlin4.png
│ ├── noise-perlin5.png
│ ├── noise-perlin6.png
│ ├── noise-simplex1.jpg
│ ├── noise-simplex2.jpg
│ ├── noise-simplex3.jpg
│ ├── random-ballrand.png
│ ├── random-circularrand.png
│ ├── random-diskrand.png
│ ├── random-gaussrand.png
│ ├── random-linearrand.png
│ ├── random-sphericalrand.png
│ ├── references-cinder.png
│ ├── references-glsl4book.jpg
│ ├── references-leosfortune.jpeg
│ ├── references-leosfortune2.jpg
│ ├── references-opencloth1.png
│ ├── references-opencloth3.png
│ ├── references-outerra1.jpg
│ ├── references-outerra2.jpg
│ ├── references-outerra3.jpg
│ └── references-outerra4.jpg
└── theme
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── closed.png
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── logo-mini.png
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ └── tab_s.png
├── glm
├── CMakeLists.txt
├── common.hpp
├── detail
│ ├── _features.hpp
│ ├── _fixes.hpp
│ ├── _noise.hpp
│ ├── _swizzle.hpp
│ ├── _swizzle_func.hpp
│ ├── _vectorize.hpp
│ ├── compute_common.hpp
│ ├── compute_vector_decl.hpp
│ ├── compute_vector_relational.hpp
│ ├── func_common.inl
│ ├── func_common_simd.inl
│ ├── func_exponential.inl
│ ├── func_exponential_simd.inl
│ ├── func_geometric.inl
│ ├── func_geometric_simd.inl
│ ├── func_integer.inl
│ ├── func_integer_simd.inl
│ ├── func_matrix.inl
│ ├── func_matrix_simd.inl
│ ├── func_packing.inl
│ ├── func_packing_simd.inl
│ ├── func_trigonometric.inl
│ ├── func_trigonometric_simd.inl
│ ├── func_vector_relational.inl
│ ├── func_vector_relational_simd.inl
│ ├── glm.cpp
│ ├── qualifier.hpp
│ ├── setup.hpp
│ ├── type_float.hpp
│ ├── type_half.hpp
│ ├── type_half.inl
│ ├── type_mat2x2.hpp
│ ├── type_mat2x2.inl
│ ├── type_mat2x3.hpp
│ ├── type_mat2x3.inl
│ ├── type_mat2x4.hpp
│ ├── type_mat2x4.inl
│ ├── type_mat3x2.hpp
│ ├── type_mat3x2.inl
│ ├── type_mat3x3.hpp
│ ├── type_mat3x3.inl
│ ├── type_mat3x4.hpp
│ ├── type_mat3x4.inl
│ ├── type_mat4x2.hpp
│ ├── type_mat4x2.inl
│ ├── type_mat4x3.hpp
│ ├── type_mat4x3.inl
│ ├── type_mat4x4.hpp
│ ├── type_mat4x4.inl
│ ├── type_mat4x4_simd.inl
│ ├── type_quat.hpp
│ ├── type_quat.inl
│ ├── type_quat_simd.inl
│ ├── type_vec1.hpp
│ ├── type_vec1.inl
│ ├── type_vec2.hpp
│ ├── type_vec2.inl
│ ├── type_vec3.hpp
│ ├── type_vec3.inl
│ ├── type_vec4.hpp
│ ├── type_vec4.inl
│ ├── type_vec4_simd.inl
│ └── type_vec_simd.inl
├── exponential.hpp
├── ext.hpp
├── ext
│ ├── _matrix_vectorize.hpp
│ ├── matrix_clip_space.hpp
│ ├── matrix_clip_space.inl
│ ├── matrix_common.hpp
│ ├── matrix_common.inl
│ ├── matrix_double2x2.hpp
│ ├── matrix_double2x2_precision.hpp
│ ├── matrix_double2x3.hpp
│ ├── matrix_double2x3_precision.hpp
│ ├── matrix_double2x4.hpp
│ ├── matrix_double2x4_precision.hpp
│ ├── matrix_double3x2.hpp
│ ├── matrix_double3x2_precision.hpp
│ ├── matrix_double3x3.hpp
│ ├── matrix_double3x3_precision.hpp
│ ├── matrix_double3x4.hpp
│ ├── matrix_double3x4_precision.hpp
│ ├── matrix_double4x2.hpp
│ ├── matrix_double4x2_precision.hpp
│ ├── matrix_double4x3.hpp
│ ├── matrix_double4x3_precision.hpp
│ ├── matrix_double4x4.hpp
│ ├── matrix_double4x4_precision.hpp
│ ├── matrix_float2x2.hpp
│ ├── matrix_float2x2_precision.hpp
│ ├── matrix_float2x3.hpp
│ ├── matrix_float2x3_precision.hpp
│ ├── matrix_float2x4.hpp
│ ├── matrix_float2x4_precision.hpp
│ ├── matrix_float3x2.hpp
│ ├── matrix_float3x2_precision.hpp
│ ├── matrix_float3x3.hpp
│ ├── matrix_float3x3_precision.hpp
│ ├── matrix_float3x4.hpp
│ ├── matrix_float3x4_precision.hpp
│ ├── matrix_float4x2.hpp
│ ├── matrix_float4x2_precision.hpp
│ ├── matrix_float4x3.hpp
│ ├── matrix_float4x3_precision.hpp
│ ├── matrix_float4x4.hpp
│ ├── matrix_float4x4_precision.hpp
│ ├── matrix_int2x2.hpp
│ ├── matrix_int2x2_sized.hpp
│ ├── matrix_int2x3.hpp
│ ├── matrix_int2x3_sized.hpp
│ ├── matrix_int2x4.hpp
│ ├── matrix_int2x4_sized.hpp
│ ├── matrix_int3x2.hpp
│ ├── matrix_int3x2_sized.hpp
│ ├── matrix_int3x3.hpp
│ ├── matrix_int3x3_sized.hpp
│ ├── matrix_int3x4.hpp
│ ├── matrix_int3x4_sized.hpp
│ ├── matrix_int4x2.hpp
│ ├── matrix_int4x2_sized.hpp
│ ├── matrix_int4x3.hpp
│ ├── matrix_int4x3_sized.hpp
│ ├── matrix_int4x4.hpp
│ ├── matrix_int4x4_sized.hpp
│ ├── matrix_integer.hpp
│ ├── matrix_integer.inl
│ ├── matrix_projection.hpp
│ ├── matrix_projection.inl
│ ├── matrix_relational.hpp
│ ├── matrix_relational.inl
│ ├── matrix_transform.hpp
│ ├── matrix_transform.inl
│ ├── matrix_uint2x2.hpp
│ ├── matrix_uint2x2_sized.hpp
│ ├── matrix_uint2x3.hpp
│ ├── matrix_uint2x3_sized.hpp
│ ├── matrix_uint2x4.hpp
│ ├── matrix_uint2x4_sized.hpp
│ ├── matrix_uint3x2.hpp
│ ├── matrix_uint3x2_sized.hpp
│ ├── matrix_uint3x3.hpp
│ ├── matrix_uint3x3_sized.hpp
│ ├── matrix_uint3x4.hpp
│ ├── matrix_uint3x4_sized.hpp
│ ├── matrix_uint4x2.hpp
│ ├── matrix_uint4x2_sized.hpp
│ ├── matrix_uint4x3.hpp
│ ├── matrix_uint4x3_sized.hpp
│ ├── matrix_uint4x4.hpp
│ ├── matrix_uint4x4_sized.hpp
│ ├── quaternion_common.hpp
│ ├── quaternion_common.inl
│ ├── quaternion_common_simd.inl
│ ├── quaternion_double.hpp
│ ├── quaternion_double_precision.hpp
│ ├── quaternion_exponential.hpp
│ ├── quaternion_exponential.inl
│ ├── quaternion_float.hpp
│ ├── quaternion_float_precision.hpp
│ ├── quaternion_geometric.hpp
│ ├── quaternion_geometric.inl
│ ├── quaternion_relational.hpp
│ ├── quaternion_relational.inl
│ ├── quaternion_transform.hpp
│ ├── quaternion_transform.inl
│ ├── quaternion_trigonometric.hpp
│ ├── quaternion_trigonometric.inl
│ ├── scalar_common.hpp
│ ├── scalar_common.inl
│ ├── scalar_constants.hpp
│ ├── scalar_constants.inl
│ ├── scalar_int_sized.hpp
│ ├── scalar_integer.hpp
│ ├── scalar_integer.inl
│ ├── scalar_packing.hpp
│ ├── scalar_packing.inl
│ ├── scalar_reciprocal.hpp
│ ├── scalar_reciprocal.inl
│ ├── scalar_relational.hpp
│ ├── scalar_relational.inl
│ ├── scalar_uint_sized.hpp
│ ├── scalar_ulp.hpp
│ ├── scalar_ulp.inl
│ ├── vector_bool1.hpp
│ ├── vector_bool1_precision.hpp
│ ├── vector_bool2.hpp
│ ├── vector_bool2_precision.hpp
│ ├── vector_bool3.hpp
│ ├── vector_bool3_precision.hpp
│ ├── vector_bool4.hpp
│ ├── vector_bool4_precision.hpp
│ ├── vector_common.hpp
│ ├── vector_common.inl
│ ├── vector_double1.hpp
│ ├── vector_double1_precision.hpp
│ ├── vector_double2.hpp
│ ├── vector_double2_precision.hpp
│ ├── vector_double3.hpp
│ ├── vector_double3_precision.hpp
│ ├── vector_double4.hpp
│ ├── vector_double4_precision.hpp
│ ├── vector_float1.hpp
│ ├── vector_float1_precision.hpp
│ ├── vector_float2.hpp
│ ├── vector_float2_precision.hpp
│ ├── vector_float3.hpp
│ ├── vector_float3_precision.hpp
│ ├── vector_float4.hpp
│ ├── vector_float4_precision.hpp
│ ├── vector_int1.hpp
│ ├── vector_int1_sized.hpp
│ ├── vector_int2.hpp
│ ├── vector_int2_sized.hpp
│ ├── vector_int3.hpp
│ ├── vector_int3_sized.hpp
│ ├── vector_int4.hpp
│ ├── vector_int4_sized.hpp
│ ├── vector_integer.hpp
│ ├── vector_integer.inl
│ ├── vector_packing.hpp
│ ├── vector_packing.inl
│ ├── vector_reciprocal.hpp
│ ├── vector_reciprocal.inl
│ ├── vector_relational.hpp
│ ├── vector_relational.inl
│ ├── vector_uint1.hpp
│ ├── vector_uint1_sized.hpp
│ ├── vector_uint2.hpp
│ ├── vector_uint2_sized.hpp
│ ├── vector_uint3.hpp
│ ├── vector_uint3_sized.hpp
│ ├── vector_uint4.hpp
│ ├── vector_uint4_sized.hpp
│ ├── vector_ulp.hpp
│ └── vector_ulp.inl
├── fwd.hpp
├── geometric.hpp
├── glm.cppm
├── glm.hpp
├── gtc
│ ├── bitfield.hpp
│ ├── bitfield.inl
│ ├── color_space.hpp
│ ├── color_space.inl
│ ├── constants.hpp
│ ├── constants.inl
│ ├── epsilon.hpp
│ ├── epsilon.inl
│ ├── integer.hpp
│ ├── integer.inl
│ ├── matrix_access.hpp
│ ├── matrix_access.inl
│ ├── matrix_integer.hpp
│ ├── matrix_inverse.hpp
│ ├── matrix_inverse.inl
│ ├── matrix_transform.hpp
│ ├── matrix_transform.inl
│ ├── noise.hpp
│ ├── noise.inl
│ ├── packing.hpp
│ ├── packing.inl
│ ├── quaternion.hpp
│ ├── quaternion.inl
│ ├── quaternion_simd.inl
│ ├── random.hpp
│ ├── random.inl
│ ├── reciprocal.hpp
│ ├── round.hpp
│ ├── round.inl
│ ├── type_aligned.hpp
│ ├── type_precision.hpp
│ ├── type_precision.inl
│ ├── type_ptr.hpp
│ ├── type_ptr.inl
│ ├── ulp.hpp
│ ├── ulp.inl
│ └── vec1.hpp
├── gtx
│ ├── associated_min_max.hpp
│ ├── associated_min_max.inl
│ ├── bit.hpp
│ ├── bit.inl
│ ├── closest_point.hpp
│ ├── closest_point.inl
│ ├── color_encoding.hpp
│ ├── color_encoding.inl
│ ├── color_space.hpp
│ ├── color_space.inl
│ ├── color_space_YCoCg.hpp
│ ├── color_space_YCoCg.inl
│ ├── common.hpp
│ ├── common.inl
│ ├── compatibility.hpp
│ ├── compatibility.inl
│ ├── component_wise.hpp
│ ├── component_wise.inl
│ ├── dual_quaternion.hpp
│ ├── dual_quaternion.inl
│ ├── easing.hpp
│ ├── easing.inl
│ ├── euler_angles.hpp
│ ├── euler_angles.inl
│ ├── extend.hpp
│ ├── extend.inl
│ ├── extended_min_max.hpp
│ ├── extended_min_max.inl
│ ├── exterior_product.hpp
│ ├── exterior_product.inl
│ ├── fast_exponential.hpp
│ ├── fast_exponential.inl
│ ├── fast_square_root.hpp
│ ├── fast_square_root.inl
│ ├── fast_trigonometry.hpp
│ ├── fast_trigonometry.inl
│ ├── float_notmalize.inl
│ ├── functions.hpp
│ ├── functions.inl
│ ├── gradient_paint.hpp
│ ├── gradient_paint.inl
│ ├── handed_coordinate_space.hpp
│ ├── handed_coordinate_space.inl
│ ├── hash.hpp
│ ├── hash.inl
│ ├── integer.hpp
│ ├── integer.inl
│ ├── intersect.hpp
│ ├── intersect.inl
│ ├── io.hpp
│ ├── io.inl
│ ├── log_base.hpp
│ ├── log_base.inl
│ ├── matrix_cross_product.hpp
│ ├── matrix_cross_product.inl
│ ├── matrix_decompose.hpp
│ ├── matrix_decompose.inl
│ ├── matrix_factorisation.hpp
│ ├── matrix_factorisation.inl
│ ├── matrix_interpolation.hpp
│ ├── matrix_interpolation.inl
│ ├── matrix_major_storage.hpp
│ ├── matrix_major_storage.inl
│ ├── matrix_operation.hpp
│ ├── matrix_operation.inl
│ ├── matrix_query.hpp
│ ├── matrix_query.inl
│ ├── matrix_transform_2d.hpp
│ ├── matrix_transform_2d.inl
│ ├── mixed_product.hpp
│ ├── mixed_product.inl
│ ├── norm.hpp
│ ├── norm.inl
│ ├── normal.hpp
│ ├── normal.inl
│ ├── normalize_dot.hpp
│ ├── normalize_dot.inl
│ ├── number_precision.hpp
│ ├── optimum_pow.hpp
│ ├── optimum_pow.inl
│ ├── orthonormalize.hpp
│ ├── orthonormalize.inl
│ ├── pca.hpp
│ ├── pca.inl
│ ├── perpendicular.hpp
│ ├── perpendicular.inl
│ ├── polar_coordinates.hpp
│ ├── polar_coordinates.inl
│ ├── projection.hpp
│ ├── projection.inl
│ ├── quaternion.hpp
│ ├── quaternion.inl
│ ├── range.hpp
│ ├── raw_data.hpp
│ ├── raw_data.inl
│ ├── rotate_normalized_axis.hpp
│ ├── rotate_normalized_axis.inl
│ ├── rotate_vector.hpp
│ ├── rotate_vector.inl
│ ├── scalar_multiplication.hpp
│ ├── scalar_relational.hpp
│ ├── scalar_relational.inl
│ ├── spline.hpp
│ ├── spline.inl
│ ├── std_based_type.hpp
│ ├── std_based_type.inl
│ ├── string_cast.hpp
│ ├── string_cast.inl
│ ├── texture.hpp
│ ├── texture.inl
│ ├── transform.hpp
│ ├── transform.inl
│ ├── transform2.hpp
│ ├── transform2.inl
│ ├── type_aligned.hpp
│ ├── type_aligned.inl
│ ├── type_trait.hpp
│ ├── type_trait.inl
│ ├── vec_swizzle.hpp
│ ├── vector_angle.hpp
│ ├── vector_angle.inl
│ ├── vector_query.hpp
│ ├── vector_query.inl
│ ├── wrap.hpp
│ └── wrap.inl
├── integer.hpp
├── mat2x2.hpp
├── mat2x3.hpp
├── mat2x4.hpp
├── mat3x2.hpp
├── mat3x3.hpp
├── mat3x4.hpp
├── mat4x2.hpp
├── mat4x3.hpp
├── mat4x4.hpp
├── matrix.hpp
├── packing.hpp
├── simd
│ ├── common.h
│ ├── exponential.h
│ ├── geometric.h
│ ├── integer.h
│ ├── matrix.h
│ ├── neon.h
│ ├── packing.h
│ ├── platform.h
│ ├── trigonometric.h
│ └── vector_relational.h
├── trigonometric.hpp
├── vec2.hpp
├── vec3.hpp
├── vec4.hpp
└── vector_relational.hpp
├── manual.md
├── readme.md
├── test
├── CMakeLists.txt
├── bug
│ ├── CMakeLists.txt
│ └── bug_ms_vec_static.cpp
├── cmake
│ ├── CMakeLists.txt
│ └── test_find_glm.cpp
├── core
│ ├── CMakeLists.txt
│ ├── core_cpp_constexpr.cpp
│ ├── core_cpp_defaulted_ctor.cpp
│ ├── core_force_aligned_gentypes.cpp
│ ├── core_force_arch_unknown.cpp
│ ├── core_force_compiler_unknown.cpp
│ ├── core_force_ctor_init.cpp
│ ├── core_force_cxx03.cpp
│ ├── core_force_cxx98.cpp
│ ├── core_force_cxx_unknown.cpp
│ ├── core_force_depth_zero_to_one.cpp
│ ├── core_force_explicit_ctor.cpp
│ ├── core_force_inline.cpp
│ ├── core_force_left_handed.cpp
│ ├── core_force_platform_unknown.cpp
│ ├── core_force_pure.cpp
│ ├── core_force_quat_wxyz.cpp
│ ├── core_force_quat_xyzw.cpp
│ ├── core_force_size_t_length.cpp
│ ├── core_force_unrestricted_gentype.cpp
│ ├── core_force_xyzw_only.cpp
│ ├── core_func_common.cpp
│ ├── core_func_exponential.cpp
│ ├── core_func_geometric.cpp
│ ├── core_func_integer.cpp
│ ├── core_func_integer_bit_count.cpp
│ ├── core_func_integer_find_lsb.cpp
│ ├── core_func_integer_find_msb.cpp
│ ├── core_func_matrix.cpp
│ ├── core_func_noise.cpp
│ ├── core_func_packing.cpp
│ ├── core_func_swizzle.cpp
│ ├── core_func_trigonometric.cpp
│ ├── core_func_vector_relational.cpp
│ ├── core_setup_force_cxx03.cpp
│ ├── core_setup_force_cxx98.cpp
│ ├── core_setup_force_cxx_unknown.cpp
│ ├── core_setup_force_size_t_length.cpp
│ ├── core_setup_message.cpp
│ ├── core_setup_platform_unknown.cpp
│ ├── core_setup_precision.cpp
│ ├── core_type_aligned.cpp
│ ├── core_type_cast.cpp
│ ├── core_type_ctor.cpp
│ ├── core_type_int.cpp
│ ├── core_type_length.cpp
│ ├── core_type_mat2x2.cpp
│ ├── core_type_mat2x3.cpp
│ ├── core_type_mat2x4.cpp
│ ├── core_type_mat3x2.cpp
│ ├── core_type_mat3x3.cpp
│ ├── core_type_mat3x4.cpp
│ ├── core_type_mat4x2.cpp
│ ├── core_type_mat4x3.cpp
│ ├── core_type_mat4x4.cpp
│ ├── core_type_vec1.cpp
│ ├── core_type_vec2.cpp
│ ├── core_type_vec3.cpp
│ └── core_type_vec4.cpp
├── ext
│ ├── CMakeLists.txt
│ ├── ext_matrix_clip_space.cpp
│ ├── ext_matrix_common.cpp
│ ├── ext_matrix_int2x2_sized.cpp
│ ├── ext_matrix_int2x3_sized.cpp
│ ├── ext_matrix_int2x4_sized.cpp
│ ├── ext_matrix_int3x2_sized.cpp
│ ├── ext_matrix_int3x3_sized.cpp
│ ├── ext_matrix_int3x4_sized.cpp
│ ├── ext_matrix_int4x2_sized.cpp
│ ├── ext_matrix_int4x3_sized.cpp
│ ├── ext_matrix_int4x4_sized.cpp
│ ├── ext_matrix_integer.cpp
│ ├── ext_matrix_projection.cpp
│ ├── ext_matrix_relational.cpp
│ ├── ext_matrix_transform.cpp
│ ├── ext_matrix_uint2x2_sized.cpp
│ ├── ext_matrix_uint2x3_sized.cpp
│ ├── ext_matrix_uint2x4_sized.cpp
│ ├── ext_matrix_uint3x2_sized.cpp
│ ├── ext_matrix_uint3x3_sized.cpp
│ ├── ext_matrix_uint3x4_sized.cpp
│ ├── ext_matrix_uint4x2_sized.cpp
│ ├── ext_matrix_uint4x3_sized.cpp
│ ├── ext_matrix_uint4x4_sized.cpp
│ ├── ext_quaternion_common.cpp
│ ├── ext_quaternion_exponential.cpp
│ ├── ext_quaternion_geometric.cpp
│ ├── ext_quaternion_relational.cpp
│ ├── ext_quaternion_transform.cpp
│ ├── ext_quaternion_trigonometric.cpp
│ ├── ext_quaternion_type.cpp
│ ├── ext_scalar_common.cpp
│ ├── ext_scalar_constants.cpp
│ ├── ext_scalar_int_sized.cpp
│ ├── ext_scalar_integer.cpp
│ ├── ext_scalar_packing.cpp
│ ├── ext_scalar_reciprocal.cpp
│ ├── ext_scalar_relational.cpp
│ ├── ext_scalar_uint_sized.cpp
│ ├── ext_scalar_ulp.cpp
│ ├── ext_vec1.cpp
│ ├── ext_vector_bool1.cpp
│ ├── ext_vector_common.cpp
│ ├── ext_vector_iec559.cpp
│ ├── ext_vector_int1_sized.cpp
│ ├── ext_vector_int2_sized.cpp
│ ├── ext_vector_int3_sized.cpp
│ ├── ext_vector_int4_sized.cpp
│ ├── ext_vector_integer.cpp
│ ├── ext_vector_integer_sized.cpp
│ ├── ext_vector_packing.cpp
│ ├── ext_vector_reciprocal.cpp
│ ├── ext_vector_relational.cpp
│ ├── ext_vector_uint1_sized.cpp
│ ├── ext_vector_uint2_sized.cpp
│ ├── ext_vector_uint3_sized.cpp
│ ├── ext_vector_uint4_sized.cpp
│ └── ext_vector_ulp.cpp
├── glm.cppcheck
├── gtc
│ ├── CMakeLists.txt
│ ├── gtc_bitfield.cpp
│ ├── gtc_color_space.cpp
│ ├── gtc_constants.cpp
│ ├── gtc_epsilon.cpp
│ ├── gtc_integer.cpp
│ ├── gtc_matrix_access.cpp
│ ├── gtc_matrix_integer.cpp
│ ├── gtc_matrix_inverse.cpp
│ ├── gtc_matrix_transform.cpp
│ ├── gtc_noise.cpp
│ ├── gtc_packing.cpp
│ ├── gtc_quaternion.cpp
│ ├── gtc_random.cpp
│ ├── gtc_reciprocal.cpp
│ ├── gtc_round.cpp
│ ├── gtc_type_aligned.cpp
│ ├── gtc_type_precision.cpp
│ ├── gtc_type_ptr.cpp
│ ├── gtc_ulp.cpp
│ ├── gtc_user_defined_types.cpp
│ └── gtc_vec1.cpp
├── gtx
│ ├── CMakeLists.txt
│ ├── gtx.cpp
│ ├── gtx_associated_min_max.cpp
│ ├── gtx_closest_point.cpp
│ ├── gtx_color_encoding.cpp
│ ├── gtx_color_space.cpp
│ ├── gtx_color_space_YCoCg.cpp
│ ├── gtx_common.cpp
│ ├── gtx_compatibility.cpp
│ ├── gtx_component_wise.cpp
│ ├── gtx_dual_quaternion.cpp
│ ├── gtx_easing.cpp
│ ├── gtx_euler_angle.cpp
│ ├── gtx_extend.cpp
│ ├── gtx_extended_min_max.cpp
│ ├── gtx_extented_min_max.cpp
│ ├── gtx_exterior_product.cpp
│ ├── gtx_fast_exponential.cpp
│ ├── gtx_fast_square_root.cpp
│ ├── gtx_fast_trigonometry.cpp
│ ├── gtx_functions.cpp
│ ├── gtx_gradient_paint.cpp
│ ├── gtx_handed_coordinate_space.cpp
│ ├── gtx_hash.cpp
│ ├── gtx_int_10_10_10_2.cpp
│ ├── gtx_integer.cpp
│ ├── gtx_intersect.cpp
│ ├── gtx_io.cpp
│ ├── gtx_load.cpp
│ ├── gtx_log_base.cpp
│ ├── gtx_matrix_cross_product.cpp
│ ├── gtx_matrix_decompose.cpp
│ ├── gtx_matrix_factorisation.cpp
│ ├── gtx_matrix_interpolation.cpp
│ ├── gtx_matrix_major_storage.cpp
│ ├── gtx_matrix_operation.cpp
│ ├── gtx_matrix_query.cpp
│ ├── gtx_matrix_transform_2d.cpp
│ ├── gtx_mixed_product.cpp
│ ├── gtx_norm.cpp
│ ├── gtx_normal.cpp
│ ├── gtx_normalize_dot.cpp
│ ├── gtx_number_precision.cpp
│ ├── gtx_optimum_pow.cpp
│ ├── gtx_orthonormalize.cpp
│ ├── gtx_pca.cpp
│ ├── gtx_perpendicular.cpp
│ ├── gtx_polar_coordinates.cpp
│ ├── gtx_projection.cpp
│ ├── gtx_quaternion.cpp
│ ├── gtx_random.cpp
│ ├── gtx_range.cpp
│ ├── gtx_rotate_normalized_axis.cpp
│ ├── gtx_rotate_vector.cpp
│ ├── gtx_scalar_multiplication.cpp
│ ├── gtx_scalar_relational.cpp
│ ├── gtx_simd_mat4.cpp
│ ├── gtx_simd_vec4.cpp
│ ├── gtx_spline.cpp
│ ├── gtx_string_cast.cpp
│ ├── gtx_texture.cpp
│ ├── gtx_type_aligned.cpp
│ ├── gtx_type_trait.cpp
│ ├── gtx_vec_swizzle.cpp
│ ├── gtx_vector_angle.cpp
│ ├── gtx_vector_query.cpp
│ └── gtx_wrap.cpp
└── perf
│ ├── CMakeLists.txt
│ ├── perf_matrix_div.cpp
│ ├── perf_matrix_inverse.cpp
│ ├── perf_matrix_mul.cpp
│ ├── perf_matrix_mul_vector.cpp
│ ├── perf_matrix_transpose.cpp
│ └── perf_vector_mul_matrix.cpp
└── util
├── autoexp.txt
├── autoexp.vc2010.dat
├── glm.natvis
└── usertype.dat
/.github/workflows/make_light_release.yml:
--------------------------------------------------------------------------------
1 | # A workflow that creates a minimal archive with only the glm/ headers and copying.txt.
2 |
3 | name: Make light release
4 |
5 | on:
6 | release:
7 | types: [published]
8 |
9 | jobs:
10 | make_zip:
11 | runs-on: ubuntu-latest
12 |
13 | steps:
14 | - name: Install dependencies
15 | run: sudo apt-get update -y && sudo apt-get install -y zip p7zip
16 |
17 | - name: Check out repository code
18 | uses: actions/checkout@v3
19 |
20 | - name: Set env
21 | run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
22 |
23 | - name: Prepare layout
24 | run: mv copying.txt glm
25 |
26 | - name: Create zip archive
27 | run: zip -r glm-${{ env.RELEASE_VERSION }}-light.zip glm
28 |
29 | - name: Create 7z archive
30 | run: 7z a glm-${{ env.RELEASE_VERSION }}-light.7z glm
31 |
32 | - uses: actions/upload-artifact@v3
33 | with:
34 | name: glm-${{ env.RELEASE_VERSION }}-light
35 | path: glm-${{ env.RELEASE_VERSION }}-light.*
36 |
37 | - name: Add to Release
38 | uses: softprops/action-gh-release@v1
39 | with:
40 | files: |
41 | glm-${{ env.RELEASE_VERSION }}-light.zip
42 | glm-${{ env.RELEASE_VERSION }}-light.7z
43 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files
2 | *.slo
3 | *.lo
4 | *.o
5 | *.obj
6 |
7 | # Precompiled Headers
8 | *.gch
9 | *.pch
10 |
11 | # Compiled Dynamic libraries
12 | *.so
13 | *.dylib
14 | *.dll
15 |
16 | # Fortran module files
17 | *.mod
18 |
19 | # Compiled Static libraries
20 | *.lai
21 | *.la
22 | *.a
23 | *.lib
24 |
25 | # Executables
26 | *.exe
27 | *.out
28 | *.app
29 |
30 | # CMake
31 | CMakeCache.txt
32 | CMakeFiles
33 | cmake_install.cmake
34 | install_manifest.txt
35 | *.cmake
36 | !glmConfig.cmake
37 | !glmConfig-version.cmake
38 | # ^ May need to add future .cmake files as exceptions
39 |
40 | # Test logs
41 | Testing/*
42 |
43 | # Test input
44 | test/gtc/*.dds
45 |
46 | # Project Files
47 | Makefile
48 | *.cbp
49 | *.user
50 |
51 | # Misc.
52 | *.log
53 |
54 | # local build(s)
55 | build*
56 |
57 | /.vs
58 | /.vscode
59 | /CMakeSettings.json
60 | .DS_Store
61 | *.swp
62 |
--------------------------------------------------------------------------------
/cmake/cmake_uninstall.cmake.in:
--------------------------------------------------------------------------------
1 | if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
2 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
3 | endif()
4 |
5 | file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
6 | string(REGEX REPLACE "\n" ";" files "${files}")
7 | foreach(file ${files})
8 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
9 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
10 | exec_program(
11 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
12 | OUTPUT_VARIABLE rm_out
13 | RETURN_VALUE rm_retval
14 | )
15 | if(NOT "${rm_retval}" STREQUAL 0)
16 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
17 | endif()
18 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
19 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
20 | endif()
21 | endforeach()
22 |
--------------------------------------------------------------------------------
/doc/api/arrowdown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/arrowdown.png
--------------------------------------------------------------------------------
/doc/api/arrowright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/arrowright.png
--------------------------------------------------------------------------------
/doc/api/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/bc_s.png
--------------------------------------------------------------------------------
/doc/api/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/bdwn.png
--------------------------------------------------------------------------------
/doc/api/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/closed.png
--------------------------------------------------------------------------------
/doc/api/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/doc.png
--------------------------------------------------------------------------------
/doc/api/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/doxygen.png
--------------------------------------------------------------------------------
/doc/api/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/folderclosed.png
--------------------------------------------------------------------------------
/doc/api/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/folderopen.png
--------------------------------------------------------------------------------
/doc/api/logo-mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/logo-mini.png
--------------------------------------------------------------------------------
/doc/api/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/nav_f.png
--------------------------------------------------------------------------------
/doc/api/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/nav_g.png
--------------------------------------------------------------------------------
/doc/api/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/nav_h.png
--------------------------------------------------------------------------------
/doc/api/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/open.png
--------------------------------------------------------------------------------
/doc/api/search/all_14.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['word_2261',['word',['../a00964.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]],
4 | ['wrap_2ehpp_2262',['wrap.hpp',['../a00755.html',1,'']]],
5 | ['wrapangle_2263',['wrapAngle',['../a00934.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/doc/api/search/all_15.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['yaw_2264',['yaw',['../a00908.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]],
4 | ['yawpitchroll_2265',['yawPitchRoll',['../a00928.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]],
5 | ['ycocg2rgb_2266',['YCoCg2rgb',['../a00922.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]],
6 | ['ycocgr2rgb_2267',['YCoCgR2rgb',['../a00922.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/api/search/all_16.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['zero_2268',['zero',['../a00899.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/search/close.png
--------------------------------------------------------------------------------
/doc/api/search/files_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['associated_5fmin_5fmax_2ehpp_2269',['associated_min_max.hpp',['../a00584.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/files_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['bit_2ehpp_2270',['bit.hpp',['../a00587.html',1,'']]],
4 | ['bitfield_2ehpp_2271',['bitfield.hpp',['../a00530.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/files_10.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['scalar_5fcommon_2ehpp_2436',['scalar_common.hpp',['../a00353.html',1,'']]],
4 | ['scalar_5fconstants_2ehpp_2437',['scalar_constants.hpp',['../a00356.html',1,'']]],
5 | ['scalar_5fint_5fsized_2ehpp_2438',['scalar_int_sized.hpp',['../a00359.html',1,'']]],
6 | ['scalar_5finteger_2ehpp_2439',['scalar_integer.hpp',['../a00362.html',1,'']]],
7 | ['scalar_5fmultiplication_2ehpp_2440',['scalar_multiplication.hpp',['../a00722.html',1,'']]],
8 | ['scalar_5fpacking_2ehpp_2441',['scalar_packing.hpp',['../a00365.html',1,'']]],
9 | ['scalar_5freciprocal_2ehpp_2442',['scalar_reciprocal.hpp',['../a00368.html',1,'']]],
10 | ['scalar_5fuint_5fsized_2ehpp_2443',['scalar_uint_sized.hpp',['../a00374.html',1,'']]],
11 | ['scalar_5fulp_2ehpp_2444',['scalar_ulp.hpp',['../a00377.html',1,'']]],
12 | ['spline_2ehpp_2445',['spline.hpp',['../a00725.html',1,'']]],
13 | ['std_5fbased_5ftype_2ehpp_2446',['std_based_type.hpp',['../a00728.html',1,'']]],
14 | ['string_5fcast_2ehpp_2447',['string_cast.hpp',['../a00731.html',1,'']]]
15 | ];
16 |
--------------------------------------------------------------------------------
/doc/api/search/files_12.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ulp_2ehpp_2469',['ulp.hpp',['../a00578.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/files_14.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['wrap_2ehpp_2523',['wrap.hpp',['../a00755.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/files_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['closest_5fpoint_2ehpp_2272',['closest_point.hpp',['../a00590.html',1,'']]],
4 | ['color_5fencoding_2ehpp_2273',['color_encoding.hpp',['../a00593.html',1,'']]],
5 | ['color_5fspace_5fycocg_2ehpp_2274',['color_space_YCoCg.hpp',['../a00596.html',1,'']]],
6 | ['common_2ehpp_2275',['common.hpp',['../a00002.html',1,'']]],
7 | ['compatibility_2ehpp_2276',['compatibility.hpp',['../a00599.html',1,'']]],
8 | ['component_5fwise_2ehpp_2277',['component_wise.hpp',['../a00602.html',1,'']]],
9 | ['constants_2ehpp_2278',['constants.hpp',['../a00536.html',1,'']]]
10 | ];
11 |
--------------------------------------------------------------------------------
/doc/api/search/files_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['dual_5fquaternion_2ehpp_2279',['dual_quaternion.hpp',['../a00605.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/files_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['easing_2ehpp_2280',['easing.hpp',['../a00608.html',1,'']]],
4 | ['epsilon_2ehpp_2281',['epsilon.hpp',['../a00539.html',1,'']]],
5 | ['euler_5fangles_2ehpp_2282',['euler_angles.hpp',['../a00611.html',1,'']]],
6 | ['exponential_2ehpp_2283',['exponential.hpp',['../a00083.html',1,'']]],
7 | ['ext_2ehpp_2284',['ext.hpp',['../a00518.html',1,'']]],
8 | ['extend_2ehpp_2285',['extend.hpp',['../a00614.html',1,'']]],
9 | ['extended_5fmin_5fmax_2ehpp_2286',['extended_min_max.hpp',['../a00617.html',1,'']]],
10 | ['exterior_5fproduct_2ehpp_2287',['exterior_product.hpp',['../a00620.html',1,'']]],
11 | ['matrix_5finteger_2ehpp_2288',['matrix_integer.hpp',['../a01573.html',1,'']]],
12 | ['matrix_5ftransform_2ehpp_2289',['matrix_transform.hpp',['../a01579.html',1,'']]],
13 | ['scalar_5frelational_2ehpp_2290',['scalar_relational.hpp',['../a01594.html',1,'']]],
14 | ['vector_5frelational_2ehpp_2291',['vector_relational.hpp',['../a01606.html',1,'']]]
15 | ];
16 |
--------------------------------------------------------------------------------
/doc/api/search/files_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['fast_5fexponential_2ehpp_2292',['fast_exponential.hpp',['../a00623.html',1,'']]],
4 | ['fast_5fsquare_5froot_2ehpp_2293',['fast_square_root.hpp',['../a00626.html',1,'']]],
5 | ['fast_5ftrigonometry_2ehpp_2294',['fast_trigonometry.hpp',['../a00629.html',1,'']]],
6 | ['functions_2ehpp_2295',['functions.hpp',['../a00632.html',1,'']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/api/search/files_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['color_5fspace_2ehpp_2296',['color_space.hpp',['../a01558.html',1,'(Global Namespace)'],['../a01561.html',1,'(Global Namespace)']]],
4 | ['common_2ehpp_2297',['common.hpp',['../a01564.html',1,'']]],
5 | ['geometric_2ehpp_2298',['geometric.hpp',['../a00524.html',1,'']]],
6 | ['gradient_5fpaint_2ehpp_2299',['gradient_paint.hpp',['../a00635.html',1,'']]],
7 | ['integer_2ehpp_2300',['integer.hpp',['../a01567.html',1,'(Global Namespace)'],['../a01570.html',1,'(Global Namespace)']]],
8 | ['matrix_5finteger_2ehpp_2301',['matrix_integer.hpp',['../a01576.html',1,'']]],
9 | ['matrix_5ftransform_2ehpp_2302',['matrix_transform.hpp',['../a01582.html',1,'']]],
10 | ['packing_2ehpp_2303',['packing.hpp',['../a01585.html',1,'']]],
11 | ['quaternion_2ehpp_2304',['quaternion.hpp',['../a01588.html',1,'(Global Namespace)'],['../a01591.html',1,'(Global Namespace)']]],
12 | ['scalar_5frelational_2ehpp_2305',['scalar_relational.hpp',['../a01597.html',1,'']]],
13 | ['type_5faligned_2ehpp_2306',['type_aligned.hpp',['../a01600.html',1,'(Global Namespace)'],['../a01603.html',1,'(Global Namespace)']]]
14 | ];
15 |
--------------------------------------------------------------------------------
/doc/api/search/files_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['handed_5fcoordinate_5fspace_2ehpp_2307',['handed_coordinate_space.hpp',['../a00638.html',1,'']]],
4 | ['hash_2ehpp_2308',['hash.hpp',['../a00641.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/files_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['integer_2ehpp_2309',['integer.hpp',['../a00542.html',1,'']]],
4 | ['intersect_2ehpp_2310',['intersect.hpp',['../a00644.html',1,'']]],
5 | ['io_2ehpp_2311',['io.hpp',['../a00647.html',1,'']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/doc/api/search/files_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['log_5fbase_2ehpp_2312',['log_base.hpp',['../a00650.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/files_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['noise_2ehpp_2407',['noise.hpp',['../a00551.html',1,'']]],
4 | ['norm_2ehpp_2408',['norm.hpp',['../a00680.html',1,'']]],
5 | ['normal_2ehpp_2409',['normal.hpp',['../a00683.html',1,'']]],
6 | ['normalize_5fdot_2ehpp_2410',['normalize_dot.hpp',['../a00686.html',1,'']]],
7 | ['number_5fprecision_2ehpp_2411',['number_precision.hpp',['../a00689.html',1,'']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/doc/api/search/files_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['optimum_5fpow_2ehpp_2412',['optimum_pow.hpp',['../a00692.html',1,'']]],
4 | ['orthonormalize_2ehpp_2413',['orthonormalize.hpp',['../a00695.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/files_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['packing_2ehpp_2414',['packing.hpp',['../a00554.html',1,'']]],
4 | ['pca_2ehpp_2415',['pca.hpp',['../a00698.html',1,'']]],
5 | ['perpendicular_2ehpp_2416',['perpendicular.hpp',['../a00701.html',1,'']]],
6 | ['polar_5fcoordinates_2ehpp_2417',['polar_coordinates.hpp',['../a00704.html',1,'']]],
7 | ['projection_2ehpp_2418',['projection.hpp',['../a00707.html',1,'']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/doc/api/search/files_e.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['quaternion_5fcommon_2ehpp_2419',['quaternion_common.hpp',['../a00323.html',1,'']]],
4 | ['quaternion_5fdouble_2ehpp_2420',['quaternion_double.hpp',['../a00326.html',1,'']]],
5 | ['quaternion_5fdouble_5fprecision_2ehpp_2421',['quaternion_double_precision.hpp',['../a00329.html',1,'']]],
6 | ['quaternion_5fexponential_2ehpp_2422',['quaternion_exponential.hpp',['../a00332.html',1,'']]],
7 | ['quaternion_5ffloat_2ehpp_2423',['quaternion_float.hpp',['../a00335.html',1,'']]],
8 | ['quaternion_5ffloat_5fprecision_2ehpp_2424',['quaternion_float_precision.hpp',['../a00338.html',1,'']]],
9 | ['quaternion_5fgeometric_2ehpp_2425',['quaternion_geometric.hpp',['../a00341.html',1,'']]],
10 | ['quaternion_5frelational_2ehpp_2426',['quaternion_relational.hpp',['../a00344.html',1,'']]],
11 | ['quaternion_5ftransform_2ehpp_2427',['quaternion_transform.hpp',['../a00347.html',1,'']]],
12 | ['quaternion_5ftrigonometric_2ehpp_2428',['quaternion_trigonometric.hpp',['../a00350.html',1,'']]]
13 | ];
14 |
--------------------------------------------------------------------------------
/doc/api/search/files_f.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['random_2ehpp_2429',['random.hpp',['../a00560.html',1,'']]],
4 | ['range_2ehpp_2430',['range.hpp',['../a00710.html',1,'']]],
5 | ['raw_5fdata_2ehpp_2431',['raw_data.hpp',['../a00713.html',1,'']]],
6 | ['reciprocal_2ehpp_2432',['reciprocal.hpp',['../a00563.html',1,'']]],
7 | ['rotate_5fnormalized_5faxis_2ehpp_2433',['rotate_normalized_axis.hpp',['../a00716.html',1,'']]],
8 | ['rotate_5fvector_2ehpp_2434',['rotate_vector.hpp',['../a00719.html',1,'']]],
9 | ['round_2ehpp_2435',['round.hpp',['../a00566.html',1,'']]]
10 | ];
11 |
--------------------------------------------------------------------------------
/doc/api/search/functions_13.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['value_5fptr_3086',['value_ptr',['../a00914.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/functions_14.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['wrapangle_3087',['wrapAngle',['../a00934.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/functions_15.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['yaw_3088',['yaw',['../a00908.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]],
4 | ['yawpitchroll_3089',['yawPitchRoll',['../a00928.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]],
5 | ['ycocg2rgb_3090',['YCoCg2rgb',['../a00922.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]],
6 | ['ycocgr2rgb_3091',['YCoCgR2rgb',['../a00922.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/api/search/functions_16.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['zero_3092',['zero',['../a00899.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/functions_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['half_5fpi_2740',['half_pi',['../a00899.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]],
4 | ['hermite_2741',['hermite',['../a00969.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]],
5 | ['highestbitvalue_2742',['highestBitValue',['../a00918.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00918.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]],
6 | ['hsvcolor_2743',['hsvColor',['../a00921.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/api/search/groups_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['angle_20and_20trigonometry_20functions_4354',['Angle and Trigonometry Functions',['../a00984.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/groups_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['core_20features_4355',['Core features',['../a00889.html',1,'']]],
4 | ['common_20functions_4356',['Common functions',['../a00803.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/groups_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['exponential_20functions_4357',['Exponential functions',['../a00804.html',1,'']]],
4 | ['experimental_20extensions_4358',['Experimental extensions',['../a00896.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/groups_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['floating_2dpoint_20pack_20and_20unpack_20functions_4359',['Floating-Point Pack and Unpack Functions',['../a00983.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/groups_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['integer_20functions_4528',['Integer functions',['../a00981.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/groups_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['matrix_20functions_4529',['Matrix functions',['../a00982.html',1,'']]],
4 | ['matrix_20types_4530',['Matrix types',['../a00892.html',1,'']]],
5 | ['matrix_20types_20with_20precision_20qualifiers_4531',['Matrix types with precision qualifiers',['../a00893.html',1,'']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/doc/api/search/groups_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['recommended_20extensions_4532',['Recommended extensions',['../a00895.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/groups_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['stable_20extensions_4533',['Stable extensions',['../a00894.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/groups_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['vector_20relational_20functions_4534',['Vector Relational Functions',['../a00985.html',1,'']]],
4 | ['vector_20types_4535',['Vector types',['../a00890.html',1,'']]],
5 | ['vector_20types_20with_20precision_20qualifiers_4536',['Vector types with precision qualifiers',['../a00891.html',1,'']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/doc/api/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/search/mag_sel.png
--------------------------------------------------------------------------------
/doc/api/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/doc/api/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['opengl_20mathematics_20_28glm_29_4537',['OpenGL Mathematics (GLM)',['../index.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/search/search_l.png
--------------------------------------------------------------------------------
/doc/api/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/search/search_m.png
--------------------------------------------------------------------------------
/doc/api/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/search/search_r.png
--------------------------------------------------------------------------------
/doc/api/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "abcdefghilmnopqrstuvwyz",
4 | 1: "abcdefghilmnopqrstuvw",
5 | 2: "abcdefghilmnopqrstuvwyz",
6 | 3: "abdfhilmpqsuvw",
7 | 4: "acefgimrsv",
8 | 5: "o"
9 | };
10 |
11 | var indexSectionNames =
12 | {
13 | 0: "all",
14 | 1: "files",
15 | 2: "functions",
16 | 3: "typedefs",
17 | 4: "groups",
18 | 5: "pages"
19 | };
20 |
21 | var indexSectionLabels =
22 | {
23 | 0: "All",
24 | 1: "Files",
25 | 2: "Functions",
26 | 3: "Typedefs",
27 | 4: "Modules",
28 | 5: "Pages"
29 | };
30 |
31 |
--------------------------------------------------------------------------------
/doc/api/search/typedefs_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['quat_4246',['quat',['../a00851.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]],
4 | ['qword_4247',['qword',['../a00964.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/doc/api/search/typedefs_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['sint_4248',['sint',['../a00939.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]],
4 | ['size1_4249',['size1',['../a00970.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]],
5 | ['size1_5ft_4250',['size1_t',['../a00970.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]],
6 | ['size2_4251',['size2',['../a00970.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]],
7 | ['size2_5ft_4252',['size2_t',['../a00970.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]],
8 | ['size3_4253',['size3',['../a00970.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]],
9 | ['size3_5ft_4254',['size3_t',['../a00970.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]],
10 | ['size4_4255',['size4',['../a00970.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]],
11 | ['size4_5ft_4256',['size4_t',['../a00970.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]]
12 | ];
13 |
--------------------------------------------------------------------------------
/doc/api/search/typedefs_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['vec1_4349',['vec1',['../a00871.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]],
4 | ['vec2_4350',['vec2',['../a00890.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]],
5 | ['vec3_4351',['vec3',['../a00890.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]],
6 | ['vec4_4352',['vec4',['../a00890.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/doc/api/search/typedefs_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['word_4353',['word',['../a00964.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/doc/api/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/splitbar.png
--------------------------------------------------------------------------------
/doc/api/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/sync_off.png
--------------------------------------------------------------------------------
/doc/api/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/sync_on.png
--------------------------------------------------------------------------------
/doc/api/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/tab_a.png
--------------------------------------------------------------------------------
/doc/api/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/tab_b.png
--------------------------------------------------------------------------------
/doc/api/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/tab_h.png
--------------------------------------------------------------------------------
/doc/api/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/api/tab_s.png
--------------------------------------------------------------------------------
/doc/manual.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual.pdf
--------------------------------------------------------------------------------
/doc/manual/frontpage1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/frontpage1.png
--------------------------------------------------------------------------------
/doc/manual/frontpage2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/frontpage2.png
--------------------------------------------------------------------------------
/doc/manual/g-truc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/g-truc.png
--------------------------------------------------------------------------------
/doc/manual/logo-mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/logo-mini.png
--------------------------------------------------------------------------------
/doc/manual/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/logo.png
--------------------------------------------------------------------------------
/doc/manual/noise-perlin1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin1.jpg
--------------------------------------------------------------------------------
/doc/manual/noise-perlin2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin2.jpg
--------------------------------------------------------------------------------
/doc/manual/noise-perlin3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin3.jpg
--------------------------------------------------------------------------------
/doc/manual/noise-perlin4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin4.png
--------------------------------------------------------------------------------
/doc/manual/noise-perlin5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin5.png
--------------------------------------------------------------------------------
/doc/manual/noise-perlin6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-perlin6.png
--------------------------------------------------------------------------------
/doc/manual/noise-simplex1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-simplex1.jpg
--------------------------------------------------------------------------------
/doc/manual/noise-simplex2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-simplex2.jpg
--------------------------------------------------------------------------------
/doc/manual/noise-simplex3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/noise-simplex3.jpg
--------------------------------------------------------------------------------
/doc/manual/random-ballrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-ballrand.png
--------------------------------------------------------------------------------
/doc/manual/random-circularrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-circularrand.png
--------------------------------------------------------------------------------
/doc/manual/random-diskrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-diskrand.png
--------------------------------------------------------------------------------
/doc/manual/random-gaussrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-gaussrand.png
--------------------------------------------------------------------------------
/doc/manual/random-linearrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-linearrand.png
--------------------------------------------------------------------------------
/doc/manual/random-sphericalrand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/random-sphericalrand.png
--------------------------------------------------------------------------------
/doc/manual/references-cinder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-cinder.png
--------------------------------------------------------------------------------
/doc/manual/references-glsl4book.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-glsl4book.jpg
--------------------------------------------------------------------------------
/doc/manual/references-leosfortune.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-leosfortune.jpeg
--------------------------------------------------------------------------------
/doc/manual/references-leosfortune2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-leosfortune2.jpg
--------------------------------------------------------------------------------
/doc/manual/references-opencloth1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-opencloth1.png
--------------------------------------------------------------------------------
/doc/manual/references-opencloth3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-opencloth3.png
--------------------------------------------------------------------------------
/doc/manual/references-outerra1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-outerra1.jpg
--------------------------------------------------------------------------------
/doc/manual/references-outerra2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-outerra2.jpg
--------------------------------------------------------------------------------
/doc/manual/references-outerra3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-outerra3.jpg
--------------------------------------------------------------------------------
/doc/manual/references-outerra4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/manual/references-outerra4.jpg
--------------------------------------------------------------------------------
/doc/theme/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/bc_s.png
--------------------------------------------------------------------------------
/doc/theme/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/bdwn.png
--------------------------------------------------------------------------------
/doc/theme/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/closed.png
--------------------------------------------------------------------------------
/doc/theme/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/doc.png
--------------------------------------------------------------------------------
/doc/theme/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/doxygen.png
--------------------------------------------------------------------------------
/doc/theme/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/folderclosed.png
--------------------------------------------------------------------------------
/doc/theme/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/folderopen.png
--------------------------------------------------------------------------------
/doc/theme/logo-mini.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/logo-mini.png
--------------------------------------------------------------------------------
/doc/theme/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/nav_f.png
--------------------------------------------------------------------------------
/doc/theme/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/nav_g.png
--------------------------------------------------------------------------------
/doc/theme/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/nav_h.png
--------------------------------------------------------------------------------
/doc/theme/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/open.png
--------------------------------------------------------------------------------
/doc/theme/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/splitbar.png
--------------------------------------------------------------------------------
/doc/theme/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/sync_off.png
--------------------------------------------------------------------------------
/doc/theme/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/sync_on.png
--------------------------------------------------------------------------------
/doc/theme/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/tab_a.png
--------------------------------------------------------------------------------
/doc/theme/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/tab_b.png
--------------------------------------------------------------------------------
/doc/theme/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/tab_h.png
--------------------------------------------------------------------------------
/doc/theme/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/doc/theme/tab_s.png
--------------------------------------------------------------------------------
/glm/detail/_fixes.hpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | //! Workaround for compatibility with other libraries
4 | #ifdef max
5 | #undef max
6 | #endif
7 |
8 | //! Workaround for compatibility with other libraries
9 | #ifdef min
10 | #undef min
11 | #endif
12 |
13 | //! Workaround for Android
14 | #ifdef isnan
15 | #undef isnan
16 | #endif
17 |
18 | //! Workaround for Android
19 | #ifdef isinf
20 | #undef isinf
21 | #endif
22 |
23 | //! Workaround for Chrone Native Client
24 | #ifdef log2
25 | #undef log2
26 | #endif
27 |
28 |
--------------------------------------------------------------------------------
/glm/detail/compute_vector_relational.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //#include "compute_common.hpp"
4 | #include "setup.hpp"
5 | #include
6 |
7 | namespace glm{
8 | namespace detail
9 | {
10 | template
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
20 | struct compute_equal
21 | {
22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
23 | {
24 | return detail::compute_abs::is_signed>::call(b - a) <= static_cast(0);
25 | //return std::memcmp(&a, &b, sizeof(T)) == 0;
26 | }
27 | };
28 | */
29 | }//namespace detail
30 | }//namespace glm
31 |
--------------------------------------------------------------------------------
/glm/detail/func_exponential_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/detail/func_exponential_simd.inl
3 |
4 | #include "../simd/exponential.h"
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | namespace glm{
9 | namespace detail
10 | {
11 | template
12 | struct compute_sqrt<4, float, Q, true>
13 | {
14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v)
15 | {
16 | vec<4, float, Q> Result;
17 | Result.data = _mm_sqrt_ps(v.data);
18 | return Result;
19 | }
20 | };
21 |
22 | # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
23 | template<>
24 | struct compute_sqrt<4, float, aligned_lowp, true>
25 | {
26 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v)
27 | {
28 | vec<4, float, aligned_lowp> Result;
29 | Result.data = glm_vec4_sqrt_lowp(v.data);
30 | return Result;
31 | }
32 | };
33 | # endif
34 | }//namespace detail
35 | }//namespace glm
36 |
37 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
38 |
--------------------------------------------------------------------------------
/glm/detail/func_packing_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/glm/detail/func_trigonometric_simd.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/glm/detail/func_trigonometric_simd.inl
--------------------------------------------------------------------------------
/glm/detail/func_vector_relational_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/glm/detail/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"
17 |
--------------------------------------------------------------------------------
/glm/detail/type_mat4x4_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 |
3 | namespace glm
4 | {
5 |
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/glm/ext/matrix_common.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_common
2 | /// @file glm/ext/matrix_common.hpp
3 | ///
4 | /// @defgroup ext_matrix_common GLM_EXT_matrix_common
5 | /// @ingroup ext
6 | ///
7 | /// Defines functions for common matrix operations.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_matrix_common
12 |
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_common extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_common
25 | /// @{
26 |
27 | template
28 | GLM_FUNC_DECL mat mix(mat const& x, mat const& y, mat const& a);
29 |
30 | template
31 | GLM_FUNC_DECL mat mix(mat const& x, mat const& y, U a);
32 |
33 | template
34 | GLM_FUNC_DECL GLM_CONSTEXPR mat abs(mat const& x);
35 |
36 | /// @}
37 | }//namespace glm
38 |
39 | #include "matrix_common.inl"
40 |
--------------------------------------------------------------------------------
/glm/ext/matrix_common.inl:
--------------------------------------------------------------------------------
1 | #include "../matrix.hpp"
2 |
3 | #include "_matrix_vectorize.hpp"
4 |
5 | namespace glm
6 | {
7 | template
8 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, U a)
9 | {
10 | return mat(x) * (static_cast(1) - a) + mat(y) * a;
11 | }
12 |
13 | template
14 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, mat const& a)
15 | {
16 | return matrixCompMult(mat(x), static_cast(1) - a) + matrixCompMult(mat(y), a);
17 | }
18 |
19 | template
20 | struct compute_abs_matrix
21 | {
22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static mat call(mat const& x)
23 | {
24 | return detail::matrix_functor_1::call(abs, x);
25 | }
26 | };
27 |
28 | template
29 | GLM_FUNC_DECL GLM_CONSTEXPR mat abs(mat const& x)
30 | {
31 | return compute_abs_matrix::value>::call(x);
32 | }
33 |
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 2, double, defaultp> dmat2x2;
16 |
17 | /// 2 columns of 2 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<2, 2, double, defaultp> dmat2;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 3, double, defaultp> dmat2x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 4, double, defaultp> dmat2x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 2, double, defaultp> dmat3x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 3, double, defaultp> dmat3x3;
16 |
17 | /// 3 columns of 3 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<3, 3, double, defaultp> dmat3;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 4, double, defaultp> dmat3x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 2, double, defaultp> dmat4x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 3, double, defaultp> dmat4x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_double4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 4, double, defaultp> dmat4x4;
16 |
17 | /// 4 columns of 4 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<4, 4, double, defaultp> dmat4;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 2, float, defaultp> mat2x2;
16 |
17 | /// 2 columns of 2 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<2, 2, float, defaultp> mat2;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 3, float, defaultp> mat2x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 4, float, defaultp> mat2x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 2, float, defaultp> mat3x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 3, float, defaultp> mat3x3;
16 |
17 | /// 3 columns of 3 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<3, 3, float, defaultp> mat3;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 4, float, defaultp> mat3x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 2, float, defaultp> mat4x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 3, float, defaultp> mat4x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/matrix_float4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @ingroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 4, float, defaultp> mat4x4;
16 |
17 | /// 4 columns of 4 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<4, 4, float, defaultp> mat4;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x2
2 | /// @file glm/ext/matrix_int2x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x2 GLM_EXT_matrix_int2x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x2
25 | /// @{
26 |
27 | /// Signed integer 2x2 matrix.
28 | ///
29 | /// @see ext_matrix_int2x2
30 | typedef mat<2, 2, int, defaultp> imat2x2;
31 |
32 | /// Signed integer 2x2 matrix.
33 | ///
34 | /// @see ext_matrix_int2x2
35 | typedef mat<2, 2, int, defaultp> imat2;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x3
2 | /// @file glm/ext/matrix_int2x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x3 GLM_EXT_matrix_int2x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x3
25 | /// @{
26 |
27 | /// Signed integer 2x3 matrix.
28 | ///
29 | /// @see ext_matrix_int2x3
30 | typedef mat<2, 3, int, defaultp> imat2x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x4
2 | /// @file glm/ext/matrix_int2x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x4 GLM_EXT_matrix_int2x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x4
25 | /// @{
26 |
27 | /// Signed integer 2x4 matrix.
28 | ///
29 | /// @see ext_matrix_int2x4
30 | typedef mat<2, 4, int, defaultp> imat2x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x2
2 | /// @file glm/ext/matrix_int3x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x2 GLM_EXT_matrix_int3x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x2
25 | /// @{
26 |
27 | /// Signed integer 3x2 matrix.
28 | ///
29 | /// @see ext_matrix_int3x2
30 | typedef mat<3, 2, int, defaultp> imat3x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x3
2 | /// @file glm/ext/matrix_int3x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x3 GLM_EXT_matrix_int3x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x3
25 | /// @{
26 |
27 | /// Signed integer 3x3 matrix.
28 | ///
29 | /// @see ext_matrix_int3x3
30 | typedef mat<3, 3, int, defaultp> imat3x3;
31 |
32 | /// Signed integer 3x3 matrix.
33 | ///
34 | /// @see ext_matrix_int3x3
35 | typedef mat<3, 3, int, defaultp> imat3;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x4
2 | /// @file glm/ext/matrix_int3x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x4 GLM_EXT_matrix_int3x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x4
25 | /// @{
26 |
27 | /// Signed integer 3x4 matrix.
28 | ///
29 | /// @see ext_matrix_int3x4
30 | typedef mat<3, 4, int, defaultp> imat3x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x2
2 | /// @file glm/ext/matrix_int4x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x2 GLM_EXT_matrix_int4x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x2
25 | /// @{
26 |
27 | /// Signed integer 4x2 matrix.
28 | ///
29 | /// @see ext_matrix_int4x2
30 | typedef mat<4, 2, int, defaultp> imat4x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x3
2 | /// @file glm/ext/matrix_int4x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x3 GLM_EXT_matrix_int4x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x3
25 | /// @{
26 |
27 | /// Signed integer 4x3 matrix.
28 | ///
29 | /// @see ext_matrix_int4x3
30 | typedef mat<4, 3, int, defaultp> imat4x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_int4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x4
2 | /// @file glm/ext/matrix_int4x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x4 GLM_EXT_matrix_int4x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x4
25 | /// @{
26 |
27 | /// Signed integer 4x4 matrix.
28 | ///
29 | /// @see ext_matrix_int4x4
30 | typedef mat<4, 4, int, defaultp> imat4x4;
31 |
32 | /// Signed integer 4x4 matrix.
33 | ///
34 | /// @see ext_matrix_int4x4
35 | typedef mat<4, 4, int, defaultp> imat4;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x2
2 | /// @file glm/ext/matrix_uint2x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x2 GLM_EXT_matrix_uint2x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x2
25 | /// @{
26 |
27 | /// Unsigned integer 2x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x2
30 | typedef mat<2, 2, uint, defaultp> umat2x2;
31 |
32 | /// Unsigned integer 2x2 matrix.
33 | ///
34 | /// @see ext_matrix_uint2x2
35 | typedef mat<2, 2, uint, defaultp> umat2;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x3
2 | /// @file glm/ext/matrix_uint2x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x3 GLM_EXT_matrix_uint2x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x3
25 | /// @{
26 |
27 | /// Unsigned integer 2x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x3
30 | typedef mat<2, 3, uint, defaultp> umat2x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x4
2 | /// @file glm/ext/matrix_uint2x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x4 GLM_EXT_matrix_int2x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x4
25 | /// @{
26 |
27 | /// Unsigned integer 2x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x4
30 | typedef mat<2, 4, uint, defaultp> umat2x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x2
2 | /// @file glm/ext/matrix_uint3x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x2 GLM_EXT_matrix_uint3x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x2
25 | /// @{
26 |
27 | /// Unsigned integer 3x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x2
30 | typedef mat<3, 2, uint, defaultp> umat3x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x3
2 | /// @file glm/ext/matrix_uint3x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x3 GLM_EXT_matrix_uint3x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x3
25 | /// @{
26 |
27 | /// Unsigned integer 3x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x3
30 | typedef mat<3, 3, uint, defaultp> umat3x3;
31 |
32 | /// Unsigned integer 3x3 matrix.
33 | ///
34 | /// @see ext_matrix_uint3x3
35 | typedef mat<3, 3, uint, defaultp> umat3;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x4
2 | /// @file glm/ext/matrix_uint3x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x4 GLM_EXT_matrix_uint3x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x4
25 | /// @{
26 |
27 | /// Signed integer 3x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x4
30 | typedef mat<3, 4, uint, defaultp> umat3x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x2
2 | /// @file glm/ext/matrix_uint4x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x2 GLM_EXT_matrix_uint4x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x2
25 | /// @{
26 |
27 | /// Unsigned integer 4x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x2
30 | typedef mat<4, 2, uint, defaultp> umat4x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x3
2 | /// @file glm/ext/matrix_uint4x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x3 GLM_EXT_matrix_uint4x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x3
25 | /// @{
26 |
27 | /// Unsigned integer 4x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x3
30 | typedef mat<4, 3, uint, defaultp> umat4x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/ext/matrix_uint4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x4
2 | /// @file glm/ext/matrix_uint4x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x4 GLM_EXT_matrix_uint4x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x4
25 | /// @{
26 |
27 | /// Unsigned integer 4x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x4
30 | typedef mat<4, 4, uint, defaultp> umat4x4;
31 |
32 | /// Unsigned integer 4x4 matrix.
33 | ///
34 | /// @see ext_matrix_uint4x4
35 | typedef mat<4, 4, uint, defaultp> umat4;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_common_simd.inl:
--------------------------------------------------------------------------------
1 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
2 |
3 | namespace glm{
4 | namespace detail
5 | {
6 | template
7 | struct compute_dot, float, true>
8 | {
9 | static GLM_FUNC_QUALIFIER float call(qua const& x, qua const& y)
10 | {
11 | return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data));
12 | }
13 | };
14 | }//namespace detail
15 | }//namespace glm
16 |
17 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
18 |
19 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_double.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_double
2 | /// @file glm/ext/quaternion_double.hpp
3 | ///
4 | /// @defgroup ext_quaternion_double GLM_EXT_quaternion_double
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_float
12 | /// @see ext_quaternion_double_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
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 | {
31 | /// @addtogroup ext_quaternion_double
32 | /// @{
33 |
34 | /// Quaternion of double-precision floating-point numbers.
35 | typedef qua dquat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_float.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float
2 | /// @file glm/ext/quaternion_float.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float GLM_EXT_quaternion_float
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_double
12 | /// @see ext_quaternion_float_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
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 | {
31 | /// @addtogroup ext_quaternion_float
32 | /// @{
33 |
34 | /// Quaternion of single-precision floating-point numbers.
35 | typedef qua quat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_float_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float_precision
2 | /// @file glm/ext/quaternion_float_precision.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float_precision GLM_EXT_quaternion_float_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type with various precision in term of ULPs.
8 | ///
9 | /// Include to use the features of this extension.
10 |
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 | {
22 | /// @addtogroup ext_quaternion_float_precision
23 | /// @{
24 |
25 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
26 | typedef qua lowp_quat;
27 |
28 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
29 | typedef qua mediump_quat;
30 |
31 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
32 | typedef qua highp_quat;
33 |
34 | /// @}
35 | } //namespace glm
36 |
37 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_relational.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y)
5 | {
6 | vec<4, bool, Q> Result;
7 | for(length_t i = 0; i < x.length(); ++i)
8 | Result[i] = x[i] == y[i];
9 | return Result;
10 | }
11 |
12 | template
13 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y, T epsilon)
14 | {
15 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
16 | return lessThan(abs(v), vec<4, T, Q>(epsilon));
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y)
21 | {
22 | vec<4, bool, Q> Result;
23 | for(length_t i = 0; i < x.length(); ++i)
24 | Result[i] = x[i] != y[i];
25 | return Result;
26 | }
27 |
28 | template
29 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y, T epsilon)
30 | {
31 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
32 | return greaterThanEqual(abs(v), vec<4, T, Q>(epsilon));
33 | }
34 | }//namespace glm
35 |
36 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_transform.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& v)
5 | {
6 | vec<3, T, Q> Tmp = v;
7 |
8 | // Axis of rotation must be normalised
9 | T len = glm::length(Tmp);
10 | if(abs(len - static_cast(1)) > static_cast(0.001))
11 | {
12 | T oneOverLen = static_cast(1) / len;
13 | Tmp.x *= oneOverLen;
14 | Tmp.y *= oneOverLen;
15 | Tmp.z *= oneOverLen;
16 | }
17 |
18 | T const AngleRad(angle);
19 | T const Sin = sin(AngleRad * static_cast(0.5));
20 |
21 | return q * qua::wxyz(cos(AngleRad * static_cast(0.5)), Tmp.x * Sin, Tmp.y * Sin, Tmp.z * Sin);
22 | }
23 | }//namespace glm
24 |
25 |
--------------------------------------------------------------------------------
/glm/ext/quaternion_trigonometric.inl:
--------------------------------------------------------------------------------
1 | #include "scalar_constants.hpp"
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T angle(qua const& x)
7 | {
8 | if (abs(x.w) > cos_one_over_two())
9 | {
10 | T const a = asin(sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) * static_cast(2);
11 | if(x.w < static_cast(0))
12 | return pi() * static_cast(2) - a;
13 | return a;
14 | }
15 |
16 | return acos(x.w) * static_cast(2);
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER vec<3, T, Q> axis(qua const& x)
21 | {
22 | T const tmp1 = static_cast(1) - x.w * x.w;
23 | if(tmp1 <= static_cast(0))
24 | return vec<3, T, Q>(0, 0, 1);
25 | T const tmp2 = static_cast(1) / sqrt(tmp1);
26 | return vec<3, T, Q>(x.x * tmp2, x.y * tmp2, x.z * tmp2);
27 | }
28 |
29 | template
30 | GLM_FUNC_QUALIFIER qua angleAxis(T const& angle, vec<3, T, Q> const& v)
31 | {
32 | T const a(angle);
33 | T const s = glm::sin(a * static_cast(0.5));
34 |
35 | return qua(glm::cos(a * static_cast(0.5)), v * s);
36 | }
37 | }//namespace glm
38 |
--------------------------------------------------------------------------------
/glm/ext/scalar_constants.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_constants
2 | /// @file glm/ext/scalar_constants.hpp
3 | ///
4 | /// @defgroup ext_scalar_constants GLM_EXT_scalar_constants
5 | /// @ingroup ext
6 | ///
7 | /// Provides a list of constants and precomputed useful values.
8 | ///
9 | /// Include to use the features of this extension.
10 |
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 | {
22 | /// @addtogroup ext_scalar_constants
23 | /// @{
24 |
25 | /// Return the epsilon constant for floating point types.
26 | template
27 | GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
28 |
29 | /// Return the pi constant for floating point types.
30 | template
31 | GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
32 |
33 | /// Return the value of cos(1 / 2) for floating point types.
34 | template
35 | GLM_FUNC_DECL GLM_CONSTEXPR genType cos_one_over_two();
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 | #include "scalar_constants.inl"
41 |
--------------------------------------------------------------------------------
/glm/ext/scalar_constants.inl:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType epsilon()
7 | {
8 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'epsilon' only accepts floating-point inputs");
9 | return std::numeric_limits::epsilon();
10 | }
11 |
12 | template
13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType pi()
14 | {
15 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'pi' only accepts floating-point inputs");
16 | return static_cast(3.14159265358979323846264338327950288);
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType cos_one_over_two()
21 | {
22 | return genType(0.877582561890372716130286068203503191);
23 | }
24 | } //namespace glm
25 |
--------------------------------------------------------------------------------
/glm/ext/scalar_packing.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_packing
2 | /// @file glm/ext/scalar_packing.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_scalar_packing GLM_EXT_scalar_packing
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// This extension provides a set of function to convert scalar values to packed
12 | /// formats.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../detail/qualifier.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_scalar_packing extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_scalar_packing
26 | /// @{
27 |
28 |
29 | /// @}
30 | }// namespace glm
31 |
32 | #include "scalar_packing.inl"
33 |
--------------------------------------------------------------------------------
/glm/ext/scalar_packing.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/glm/ext/scalar_packing.inl
--------------------------------------------------------------------------------
/glm/ext/scalar_relational.inl:
--------------------------------------------------------------------------------
1 | #include "../common.hpp"
2 | #include "../ext/scalar_int_sized.hpp"
3 | #include "../ext/scalar_uint_sized.hpp"
4 | #include "../detail/type_float.hpp"
5 |
6 | namespace glm
7 | {
8 | template
9 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, genType const& epsilon)
10 | {
11 | return abs(x - y) <= epsilon;
12 | }
13 |
14 | template
15 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, genType const& epsilon)
16 | {
17 | return abs(x - y) > epsilon;
18 | }
19 |
20 | template
21 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, int MaxULPs)
22 | {
23 | detail::float_t const a(x);
24 | detail::float_t const b(y);
25 |
26 | // Different signs means they do not match.
27 | if(a.negative() != b.negative())
28 | return false;
29 |
30 | // Find the difference in ULPs.
31 | typename detail::float_t::int_type const DiffULPs = abs(a.i - b.i);
32 | return DiffULPs <= MaxULPs;
33 | }
34 |
35 | template
36 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, int ULPs)
37 | {
38 | return !equal(x, y, ULPs);
39 | }
40 | }//namespace glm
41 |
--------------------------------------------------------------------------------
/glm/ext/vector_bool1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_bool1
2 | /// @file glm/ext/vector_bool1.hpp
3 | ///
4 | /// @defgroup ext_vector_bool1 GLM_EXT_vector_bool1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes bvec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_bool1_precision extension.
12 |
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 | {
23 | /// @addtogroup ext_vector_bool1
24 | /// @{
25 |
26 | /// 1 components vector of boolean.
27 | typedef vec<1, bool, defaultp> bvec1;
28 |
29 | /// @}
30 | }//namespace glm
31 |
--------------------------------------------------------------------------------
/glm/ext/vector_bool1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_bool1_precision
2 | /// @file glm/ext/vector_bool1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_bool1_precision GLM_EXT_vector_bool1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 |
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 | {
21 | /// @addtogroup ext_vector_bool1_precision
22 | /// @{
23 |
24 | /// 1 component vector of bool values.
25 | typedef vec<1, bool, highp> highp_bvec1;
26 |
27 | /// 1 component vector of bool values.
28 | typedef vec<1, bool, mediump> mediump_bvec1;
29 |
30 | /// 1 component vector of bool values.
31 | typedef vec<1, bool, lowp> lowp_bvec1;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/glm/ext/vector_bool2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, bool, defaultp> bvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_bool3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, bool, defaultp> bvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_bool4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, bool, defaultp> bvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_double1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_double1
2 | /// @file glm/ext/vector_double1.hpp
3 | ///
4 | /// @defgroup ext_vector_double1 GLM_EXT_vector_double1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point vector type with one component.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_double1_precision extension.
12 | /// @see ext_vector_float1 extension.
13 |
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 | {
24 | /// @addtogroup ext_vector_double1
25 | /// @{
26 |
27 | /// 1 components vector of double-precision floating-point numbers.
28 | typedef vec<1, double, defaultp> dvec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/glm/ext/vector_double1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_double1_precision
2 | /// @file glm/ext/vector_double1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_double1_precision GLM_EXT_vector_double1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_double1
12 |
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 | {
23 | /// @addtogroup ext_vector_double1_precision
24 | /// @{
25 |
26 | /// 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, double, highp> highp_dvec1;
28 |
29 | /// 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, double, mediump> mediump_dvec1;
31 |
32 | /// 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, double, lowp> lowp_dvec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/glm/ext/vector_double2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, double, defaultp> dvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_double3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, double, defaultp> dvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_double4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, double, defaultp> dvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_float1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_float1
2 | /// @file glm/ext/vector_float1.hpp
3 | ///
4 | /// @defgroup ext_vector_float1 GLM_EXT_vector_float1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point vector type with one component.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_float1_precision extension.
12 | /// @see ext_vector_double1 extension.
13 |
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 | {
24 | /// @addtogroup ext_vector_float1
25 | /// @{
26 |
27 | /// 1 components vector of single-precision floating-point numbers.
28 | typedef vec<1, float, defaultp> vec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/glm/ext/vector_float1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_float1_precision
2 | /// @file glm/ext/vector_float1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_float1_precision GLM_EXT_vector_float1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_float1 extension.
12 |
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 | {
23 | /// @addtogroup ext_vector_float1_precision
24 | /// @{
25 |
26 | /// 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, float, highp> highp_vec1;
28 |
29 | /// 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, float, mediump> mediump_vec1;
31 |
32 | /// 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, float, lowp> lowp_vec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/glm/ext/vector_float2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, float, defaultp> vec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_float3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, float, defaultp> vec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_float4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, float, defaultp> vec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_int1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int1
2 | /// @file glm/ext/vector_int1.hpp
3 | ///
4 | /// @defgroup ext_vector_int1 GLM_EXT_vector_int1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes ivec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_uint1 extension.
12 | /// @see ext_vector_int1_precision extension.
13 |
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 | {
24 | /// @addtogroup ext_vector_int1
25 | /// @{
26 |
27 | /// 1 component vector of signed integer numbers.
28 | typedef vec<1, int, defaultp> ivec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
33 |
--------------------------------------------------------------------------------
/glm/ext/vector_int2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, int, defaultp> ivec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_int3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, int, defaultp> ivec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_int4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, int, defaultp> ivec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_packing.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_packing
2 | /// @file glm/ext/vector_packing.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_vector_packing GLM_EXT_vector_packing
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// This extension provides a set of function to convert vectors to packed
12 | /// formats.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../detail/qualifier.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_packing extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_packing
26 | /// @{
27 |
28 |
29 | /// @}
30 | }// namespace glm
31 |
32 | #include "vector_packing.inl"
33 |
--------------------------------------------------------------------------------
/glm/ext/vector_packing.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/glm/ext/vector_packing.inl
--------------------------------------------------------------------------------
/glm/ext/vector_uint1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint1
2 | /// @file glm/ext/vector_uint1.hpp
3 | ///
4 | /// @defgroup ext_vector_uint1 GLM_EXT_vector_uint1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes uvec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_int1 extension.
12 | /// @see ext_vector_uint1_precision extension.
13 |
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 | {
24 | /// @addtogroup ext_vector_uint1
25 | /// @{
26 |
27 | /// 1 component vector of unsigned integer numbers.
28 | typedef vec<1, unsigned int, defaultp> uvec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
33 |
--------------------------------------------------------------------------------
/glm/ext/vector_uint2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, unsigned int, defaultp> uvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_uint3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, unsigned int, defaultp> uvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/ext/vector_uint4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, unsigned int, defaultp> uvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/glm/gtc/integer.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_integer
2 | /// @file glm/gtc/integer.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtc_integer (dependence)
6 | ///
7 | /// @defgroup gtc_integer GLM_GTC_integer
8 | /// @ingroup gtc
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// @brief Allow to perform bit operations on integer values
13 |
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 "../ext/scalar_common.hpp"
23 | #include "../ext/vector_common.hpp"
24 | #include
25 |
26 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
27 | # pragma message("GLM: GLM_GTC_integer extension included")
28 | #endif
29 |
30 | namespace glm
31 | {
32 | /// @addtogroup gtc_integer
33 | /// @{
34 |
35 | /// Returns the log2 of x for integer values. Useful to compute mipmap count from the texture size.
36 | /// @see gtc_integer
37 | template
38 | GLM_FUNC_DECL genIUType log2(genIUType x);
39 |
40 | /// @}
41 | } //namespace glm
42 |
43 | #include "integer.inl"
44 |
--------------------------------------------------------------------------------
/glm/gtc/integer.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_integer
2 |
3 | namespace glm{
4 | namespace detail
5 | {
6 | template
7 | struct compute_log2
8 | {
9 | GLM_FUNC_QUALIFIER static vec call(vec const& v)
10 | {
11 | //Equivalent to return findMSB(vec); but save one function call in ASM with VC
12 | //return findMSB(vec);
13 | return vec(detail::compute_findMSB_vec::call(v));
14 | }
15 | };
16 |
17 | # if GLM_HAS_BITSCAN_WINDOWS
18 | template
19 | struct compute_log2<4, int, Q, false, Aligned>
20 | {
21 | GLM_FUNC_QUALIFIER static vec<4, int, Q> call(vec<4, int, Q> const& v)
22 | {
23 | vec<4, int, Q> Result;
24 | _BitScanReverse(reinterpret_cast(&Result.x), v.x);
25 | _BitScanReverse(reinterpret_cast(&Result.y), v.y);
26 | _BitScanReverse(reinterpret_cast(&Result.z), v.z);
27 | _BitScanReverse(reinterpret_cast(&Result.w), v.w);
28 | return Result;
29 | }
30 | };
31 | # endif//GLM_HAS_BITSCAN_WINDOWS
32 | }//namespace detail
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/glm/gtc/matrix_transform.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_transform
2 | /// @file glm/gtc/matrix_transform.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_transform
6 | /// @see gtx_transform2
7 | ///
8 | /// @defgroup gtc_matrix_transform GLM_GTC_matrix_transform
9 | /// @ingroup gtc
10 | ///
11 | /// Include to use the features of this extension.
12 | ///
13 | /// Defines functions that generate common transformation matrices.
14 | ///
15 | /// The matrices generated by this extension use standard OpenGL fixed-function
16 | /// conventions. For example, the lookAt function generates a transform from world
17 | /// space into the specific eye space that the projective matrix functions
18 | /// (perspective, ortho, etc) are designed to expect. The OpenGL compatibility
19 | /// specifications defines the particular layout of this eye space.
20 |
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"
37 |
--------------------------------------------------------------------------------
/glm/gtc/matrix_transform.inl:
--------------------------------------------------------------------------------
1 | #include "../geometric.hpp"
2 | #include "../trigonometric.hpp"
3 | #include "../matrix.hpp"
4 |
--------------------------------------------------------------------------------
/glm/gtc/quaternion_simd.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/icaven/glm/dca38025fba63bb9284023e6de55f756b9e37cec/glm/gtc/quaternion_simd.inl
--------------------------------------------------------------------------------
/glm/gtc/reciprocal.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_reciprocal
2 | /// @file glm/gtc/reciprocal.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_reciprocal GLM_GTC_reciprocal
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Define secant, cosecant and cotangent functions.
12 |
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 | #include "../ext/scalar_reciprocal.hpp"
23 | #include "../ext/vector_reciprocal.hpp"
24 |
25 |
--------------------------------------------------------------------------------
/glm/gtc/type_precision.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_precision
2 |
3 | namespace glm
4 | {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/glm/gtc/vec1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_vec1
2 | /// @file glm/gtc/vec1.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_vec1 GLM_GTC_vec1
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Add vec1, ivec1, uvec1 and bvec1 types.
12 |
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_sized.hpp"
24 | #include "../ext/vector_uint1.hpp"
25 | #include "../ext/vector_uint1_sized.hpp"
26 |
27 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
28 | # pragma message("GLM: GLM_GTC_vec1 extension included")
29 | #endif
30 |
31 |
--------------------------------------------------------------------------------
/glm/gtx/closest_point.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_closest_point
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER vec<3, T, Q> closestPointOnLine
7 | (
8 | vec<3, T, Q> const& point,
9 | vec<3, T, Q> const& a,
10 | vec<3, T, Q> const& b
11 | )
12 | {
13 | T LineLength = distance(a, b);
14 | vec<3, T, Q> Vector = point - a;
15 | vec<3, T, Q> LineDirection = (b - a) / LineLength;
16 |
17 | // Project Vector to LineDirection to get the distance of point from a
18 | T Distance = dot(Vector, LineDirection);
19 |
20 | if(Distance <= T(0)) return a;
21 | if(Distance >= LineLength) return b;
22 | return a + LineDirection * Distance;
23 | }
24 |
25 | template
26 | GLM_FUNC_QUALIFIER vec<2, T, Q> closestPointOnLine
27 | (
28 | vec<2, T, Q> const& point,
29 | vec<2, T, Q> const& a,
30 | vec<2, T, Q> const& b
31 | )
32 | {
33 | T LineLength = distance(a, b);
34 | vec<2, T, Q> Vector = point - a;
35 | vec<2, T, Q> LineDirection = (b - a) / LineLength;
36 |
37 | // Project Vector to LineDirection to get the distance of point from a
38 | T Distance = dot(Vector, LineDirection);
39 |
40 | if(Distance <= T(0)) return a;
41 | if(Distance >= LineLength) return b;
42 | return a + LineDirection * Distance;
43 | }
44 |
45 | }//namespace glm
46 |
--------------------------------------------------------------------------------
/glm/gtx/extend.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_extend
2 | /// @file glm/gtx/extend.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_extend GLM_GTX_extend
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Extend a position from a source to a position at a defined length.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "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."
20 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_extend extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_extend
27 | /// @{
28 |
29 | /// Extends of Length the Origin position using the (Source - Origin) direction.
30 | /// @see gtx_extend
31 | template
32 | GLM_FUNC_DECL genType extend(
33 | genType const& Origin,
34 | genType const& Source,
35 | typename genType::value_type const Length);
36 |
37 | /// @}
38 | }//namespace glm
39 |
40 | #include "extend.inl"
41 |
--------------------------------------------------------------------------------
/glm/gtx/extend.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_extend
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType extend
7 | (
8 | genType const& Origin,
9 | genType const& Source,
10 | genType const& Distance
11 | )
12 | {
13 | return Origin + (Source - Origin) * Distance;
14 | }
15 |
16 | template
17 | GLM_FUNC_QUALIFIER vec<2, T, Q> extend
18 | (
19 | vec<2, T, Q> const& Origin,
20 | vec<2, T, Q> const& Source,
21 | T const& Distance
22 | )
23 | {
24 | return Origin + (Source - Origin) * Distance;
25 | }
26 |
27 | template
28 | GLM_FUNC_QUALIFIER vec<3, T, Q> extend
29 | (
30 | vec<3, T, Q> const& Origin,
31 | vec<3, T, Q> const& Source,
32 | T const& Distance
33 | )
34 | {
35 | return Origin + (Source - Origin) * Distance;
36 | }
37 |
38 | template
39 | GLM_FUNC_QUALIFIER vec<4, T, Q> extend
40 | (
41 | vec<4, T, Q> const& Origin,
42 | vec<4, T, Q> const& Source,
43 | T const& Distance
44 | )
45 | {
46 | return Origin + (Source - Origin) * Distance;
47 | }
48 | }//namespace glm
49 |
--------------------------------------------------------------------------------
/glm/gtx/exterior_product.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_exterior_product
2 |
3 | #include
4 |
5 | namespace glm {
6 | namespace detail
7 | {
8 | template
9 | struct compute_cross_vec2
10 | {
11 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static T call(vec<2, T, Q> const& v, vec<2, T, Q> const& u)
12 | {
13 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'cross' accepts only floating-point inputs");
14 |
15 | return v.x * u.y - u.x * v.y;
16 | }
17 | };
18 | }//namespace detail
19 |
20 | template
21 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR T cross(vec<2, T, Q> const& x, vec<2, T, Q> const& y)
22 | {
23 | return detail::compute_cross_vec2::value>::call(x, y);
24 | }
25 | }//namespace glm
26 |
27 |
--------------------------------------------------------------------------------
/glm/gtx/float_notmalize.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_float_normalize
2 |
3 | #include
4 |
5 | namespace glm
6 | {
7 | template
8 | GLM_FUNC_QUALIFIER vec floatNormalize(vec const& v)
9 | {
10 | return vec(v) / static_cast(std::numeric_limits::max());
11 | }
12 |
13 | }//namespace glm
14 |
--------------------------------------------------------------------------------
/glm/gtx/functions.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_functions
2 |
3 | #include "../exponential.hpp"
4 |
5 | namespace glm
6 | {
7 | template
8 | GLM_FUNC_QUALIFIER T gauss
9 | (
10 | T x,
11 | T ExpectedValue,
12 | T StandardDeviation
13 | )
14 | {
15 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576)));
16 | }
17 |
18 | template
19 | GLM_FUNC_QUALIFIER T gauss
20 | (
21 | vec<2, T, Q> const& Coord,
22 | vec<2, T, Q> const& ExpectedValue,
23 | vec<2, T, Q> const& StandardDeviation
24 | )
25 | {
26 | vec<2, T, Q> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation);
27 | return exp(-(Squared.x + Squared.y));
28 | }
29 | }//namespace glm
30 |
31 |
--------------------------------------------------------------------------------
/glm/gtx/gradient_paint.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_gradient_paint
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T radialGradient
7 | (
8 | vec<2, T, Q> const& Center,
9 | T const& Radius,
10 | vec<2, T, Q> const& Focal,
11 | vec<2, T, Q> const& Position
12 | )
13 | {
14 | vec<2, T, Q> F = Focal - Center;
15 | vec<2, T, Q> D = Position - Focal;
16 | T Radius2 = pow2(Radius);
17 | T Fx2 = pow2(F.x);
18 | T Fy2 = pow2(F.y);
19 |
20 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x));
21 | T Denominator = Radius2 - (Fx2 + Fy2);
22 | return Numerator / Denominator;
23 | }
24 |
25 | template
26 | GLM_FUNC_QUALIFIER T linearGradient
27 | (
28 | vec<2, T, Q> const& Point0,
29 | vec<2, T, Q> const& Point1,
30 | vec<2, T, Q> const& Position
31 | )
32 | {
33 | vec<2, T, Q> Dist = Point1 - Point0;
34 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist);
35 | }
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/glm/gtx/handed_coordinate_space.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_handed_coordinate_space
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER bool rightHanded
7 | (
8 | vec<3, T, Q> const& tangent,
9 | vec<3, T, Q> const& binormal,
10 | vec<3, T, Q> const& normal
11 | )
12 | {
13 | return dot(cross(normal, tangent), binormal) > T(0);
14 | }
15 |
16 | template
17 | GLM_FUNC_QUALIFIER bool leftHanded
18 | (
19 | vec<3, T, Q> const& tangent,
20 | vec<3, T, Q> const& binormal,
21 | vec<3, T, Q> const& normal
22 | )
23 | {
24 | return dot(cross(normal, tangent), binormal) < T(0);
25 | }
26 | }//namespace glm
27 |
--------------------------------------------------------------------------------
/glm/gtx/log_base.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_log_base
2 | /// @file glm/gtx/log_base.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_log_base GLM_GTX_log_base
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Logarithm for any base. base can be a vector or a scalar.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "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."
20 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_log_base extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_log_base
27 | /// @{
28 |
29 | /// Logarithm for any base.
30 | /// From GLM_GTX_log_base.
31 | template
32 | GLM_FUNC_DECL genType log(
33 | genType const& x,
34 | genType const& base);
35 |
36 | /// Logarithm for any base.
37 | /// From GLM_GTX_log_base.
38 | template
39 | GLM_FUNC_DECL vec sign(
40 | vec const& x,
41 | vec const& base);
42 |
43 | /// @}
44 | }//namespace glm
45 |
46 | #include "log_base.inl"
47 |
--------------------------------------------------------------------------------
/glm/gtx/log_base.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_log_base
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType log(genType const& x, genType const& base)
7 | {
8 | return glm::log(x) / glm::log(base);
9 | }
10 |
11 | template
12 | GLM_FUNC_QUALIFIER vec log(vec const& x, vec const& base)
13 | {
14 | return glm::log(x) / glm::log(base);
15 | }
16 | }//namespace glm
17 |
--------------------------------------------------------------------------------
/glm/gtx/matrix_cross_product.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_matrix_cross_product
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> matrixCross3
7 | (
8 | vec<3, T, Q> const& x
9 | )
10 | {
11 | mat<3, 3, T, Q> Result(T(0));
12 | Result[0][1] = x.z;
13 | Result[1][0] = -x.z;
14 | Result[0][2] = -x.y;
15 | Result[2][0] = x.y;
16 | Result[1][2] = x.x;
17 | Result[2][1] = -x.x;
18 | return Result;
19 | }
20 |
21 | template
22 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> matrixCross4
23 | (
24 | vec<3, T, Q> const& x
25 | )
26 | {
27 | mat<4, 4, T, Q> Result(T(0));
28 | Result[0][1] = x.z;
29 | Result[1][0] = -x.z;
30 | Result[0][2] = -x.y;
31 | Result[2][0] = x.y;
32 | Result[1][2] = x.x;
33 | Result[2][1] = -x.x;
34 | return Result;
35 | }
36 |
37 | }//namespace glm
38 |
--------------------------------------------------------------------------------
/glm/gtx/mixed_product.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_mixed_product
2 | /// @file glm/gtx/mixed_product.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Mixed product of 3 vectors.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "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."
20 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_mixed_product extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_mixed_product
27 | /// @{
28 |
29 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
30 | template
31 | GLM_FUNC_DECL T mixedProduct(
32 | vec<3, T, Q> const& v1,
33 | vec<3, T, Q> const& v2,
34 | vec<3, T, Q> const& v3);
35 |
36 | /// @}
37 | }// namespace glm
38 |
39 | #include "mixed_product.inl"
40 |
--------------------------------------------------------------------------------
/glm/gtx/mixed_product.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_mixed_product
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T mixedProduct
7 | (
8 | vec<3, T, Q> const& v1,
9 | vec<3, T, Q> const& v2,
10 | vec<3, T, Q> const& v3
11 | )
12 | {
13 | return dot(cross(v1, v2), v3);
14 | }
15 | }//namespace glm
16 |
--------------------------------------------------------------------------------
/glm/gtx/normal.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_normal
2 | /// @file glm/gtx/normal.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_extented_min_max (dependence)
6 | ///
7 | /// @defgroup gtx_normal GLM_GTX_normal
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Compute the normal of a triangle.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../glm.hpp"
18 |
19 | #ifndef GLM_ENABLE_EXPERIMENTAL
20 | # error "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."
21 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
22 | # pragma message("GLM: GLM_GTX_normal extension included")
23 | #endif
24 |
25 | namespace glm
26 | {
27 | /// @addtogroup gtx_normal
28 | /// @{
29 |
30 | /// Computes triangle normal from triangle points.
31 | ///
32 | /// @see gtx_normal
33 | template
34 | 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);
35 |
36 | /// @}
37 | }//namespace glm
38 |
39 | #include "normal.inl"
40 |
--------------------------------------------------------------------------------
/glm/gtx/normal.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_normal
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER vec<3, T, Q> triangleNormal
7 | (
8 | vec<3, T, Q> const& p1,
9 | vec<3, T, Q> const& p2,
10 | vec<3, T, Q> const& p3
11 | )
12 | {
13 | return normalize(cross(p1 - p2, p1 - p3));
14 | }
15 | }//namespace glm
16 |
--------------------------------------------------------------------------------
/glm/gtx/normalize_dot.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_normalize_dot
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T normalizeDot(vec const& x, vec const& y)
7 | {
8 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y));
9 | }
10 |
11 | template
12 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vec const& x, vec const& y)
13 | {
14 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y));
15 | }
16 | }//namespace glm
17 |
--------------------------------------------------------------------------------
/glm/gtx/optimum_pow.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_optimum_pow
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType pow2(genType const& x)
7 | {
8 | return x * x;
9 | }
10 |
11 | template
12 | GLM_FUNC_QUALIFIER genType pow3(genType const& x)
13 | {
14 | return x * x * x;
15 | }
16 |
17 | template
18 | GLM_FUNC_QUALIFIER genType pow4(genType const& x)
19 | {
20 | return (x * x) * (x * x);
21 | }
22 | }//namespace glm
23 |
--------------------------------------------------------------------------------
/glm/gtx/orthonormalize.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_orthonormalize
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m)
7 | {
8 | mat<3, 3, T, Q> r = m;
9 |
10 | r[0] = normalize(r[0]);
11 |
12 | T d0 = dot(r[0], r[1]);
13 | r[1] -= r[0] * d0;
14 | r[1] = normalize(r[1]);
15 |
16 | T d1 = dot(r[1], r[2]);
17 | d0 = dot(r[0], r[2]);
18 | r[2] -= r[0] * d0 + r[1] * d1;
19 | r[2] = normalize(r[2]);
20 |
21 | return r;
22 | }
23 |
24 | template
25 | GLM_FUNC_QUALIFIER vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y)
26 | {
27 | return normalize(x - y * dot(y, x));
28 | }
29 | }//namespace glm
30 |
--------------------------------------------------------------------------------
/glm/gtx/perpendicular.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_perpendicular
2 | /// @file glm/gtx/perpendicular.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_projection (dependence)
6 | ///
7 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Perpendicular of a vector from other one
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../glm.hpp"
18 | #include "../gtx/projection.hpp"
19 |
20 | #ifndef GLM_ENABLE_EXPERIMENTAL
21 | # error "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."
22 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_perpendicular extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_perpendicular
29 | /// @{
30 |
31 | //! Projects x a perpendicular axis of Normal.
32 | //! From GLM_GTX_perpendicular extension.
33 | template
34 | GLM_FUNC_DECL genType perp(genType const& x, genType const& Normal);
35 |
36 | /// @}
37 | }//namespace glm
38 |
39 | #include "perpendicular.inl"
40 |
--------------------------------------------------------------------------------
/glm/gtx/perpendicular.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_perpendicular
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType perp(genType const& x, genType const& Normal)
7 | {
8 | return x - proj(x, Normal);
9 | }
10 | }//namespace glm
11 |
--------------------------------------------------------------------------------
/glm/gtx/polar_coordinates.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_polar_coordinates
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER vec<3, T, Q> polar
7 | (
8 | vec<3, T, Q> const& euclidean
9 | )
10 | {
11 | T const Length(length(euclidean));
12 | vec<3, T, Q> const tmp(euclidean / Length);
13 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z));
14 |
15 | return vec<3, T, Q>(
16 | asin(tmp.y), // latitude
17 | atan(tmp.x, tmp.z), // longitude
18 | xz_dist); // xz distance
19 | }
20 |
21 | template
22 | GLM_FUNC_QUALIFIER vec<3, T, Q> euclidean
23 | (
24 | vec<2, T, Q> const& polar
25 | )
26 | {
27 | T const latitude(polar.x);
28 | T const longitude(polar.y);
29 |
30 | return vec<3, T, Q>(
31 | cos(latitude) * sin(longitude),
32 | sin(latitude),
33 | cos(latitude) * cos(longitude));
34 | }
35 |
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/glm/gtx/projection.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_projection
2 | /// @file glm/gtx/projection.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_projection GLM_GTX_projection
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Projection of a vector to other one
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../geometric.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "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."
20 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_projection extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_projection
27 | /// @{
28 |
29 | /// Projects x on Normal.
30 | ///
31 | /// @param[in] x A vector to project
32 | /// @param[in] Normal A normal that doesn't need to be of unit length.
33 | ///
34 | /// @see gtx_projection
35 | template
36 | GLM_FUNC_DECL genType proj(genType const& x, genType const& Normal);
37 |
38 | /// @}
39 | }//namespace glm
40 |
41 | #include "projection.inl"
42 |
--------------------------------------------------------------------------------
/glm/gtx/projection.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_projection
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType proj(genType const& x, genType const& Normal)
7 | {
8 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal;
9 | }
10 | }//namespace glm
11 |
--------------------------------------------------------------------------------
/glm/gtx/raw_data.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_raw_data
2 |
3 |
--------------------------------------------------------------------------------
/glm/gtx/scalar_relational.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_scalar_relational
2 | /// @file glm/gtx/scalar_relational.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Extend a position from a source to a position at a defined length.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_scalar_relational 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 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_scalar_relational extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_scalar_relational
27 | /// @{
28 |
29 |
30 |
31 | /// @}
32 | }//namespace glm
33 |
34 | #include "scalar_relational.inl"
35 |
--------------------------------------------------------------------------------
/glm/gtx/std_based_type.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_std_based_type
2 |
3 | namespace glm
4 | {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/glm/gtx/texture.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_texture
2 |
3 | namespace glm
4 | {
5 | template
6 | inline T levels(vec const& Extent)
7 | {
8 | return glm::log2(compMax(Extent)) + static_cast(1);
9 | }
10 |
11 | template
12 | inline T levels(T Extent)
13 | {
14 | return vec<1, T, defaultp>(Extent).x;
15 | }
16 | }//namespace glm
17 |
18 |
--------------------------------------------------------------------------------
/glm/gtx/transform.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_transform
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> translate(vec<3, T, Q> const& v)
7 | {
8 | return translate(mat<4, 4, T, Q>(static_cast(1)), v);
9 | }
10 |
11 | template
12 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> rotate(T angle, vec<3, T, Q> const& v)
13 | {
14 | return rotate(mat<4, 4, T, Q>(static_cast(1)), angle, v);
15 | }
16 |
17 | template
18 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> scale(vec<3, T, Q> const& v)
19 | {
20 | return scale(mat<4, 4, T, Q>(static_cast(1)), v);
21 | }
22 |
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/glm/gtx/type_aligned.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_type_aligned
2 |
3 | namespace glm
4 | {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/glm/gtx/wrap.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_wrap
2 | /// @file glm/gtx/wrap.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_wrap GLM_GTX_wrap
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Wrapping mode of texture coordinates.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 | #include "../ext/scalar_common.hpp"
18 | #include "../ext/vector_common.hpp"
19 | #include "../gtc/vec1.hpp"
20 |
21 | #ifndef GLM_ENABLE_EXPERIMENTAL
22 | # error "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."
23 | #elif GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
24 | # pragma message("GLM: GLM_GTX_wrap extension included")
25 | #endif
26 |
27 | namespace glm
28 | {
29 | /// @addtogroup gtx_wrap
30 | /// @{
31 |
32 | /// @}
33 | }// namespace glm
34 |
35 | #include "wrap.inl"
36 |
--------------------------------------------------------------------------------
/glm/gtx/wrap.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_wrap
2 |
3 | namespace glm
4 | {
5 |
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/glm/mat2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat2x2.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double2x2.hpp"
6 | #include "./ext/matrix_double2x2_precision.hpp"
7 | #include "./ext/matrix_float2x2.hpp"
8 | #include "./ext/matrix_float2x2_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/mat2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat2x3.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double2x3.hpp"
6 | #include "./ext/matrix_double2x3_precision.hpp"
7 | #include "./ext/matrix_float2x3.hpp"
8 | #include "./ext/matrix_float2x3_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/mat2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat2x4.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double2x4.hpp"
6 | #include "./ext/matrix_double2x4_precision.hpp"
7 | #include "./ext/matrix_float2x4.hpp"
8 | #include "./ext/matrix_float2x4_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/mat3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat3x2.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double3x2.hpp"
6 | #include "./ext/matrix_double3x2_precision.hpp"
7 | #include "./ext/matrix_float3x2.hpp"
8 | #include "./ext/matrix_float3x2_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/mat3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat3x3.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double3x3.hpp"
6 | #include "./ext/matrix_double3x3_precision.hpp"
7 | #include "./ext/matrix_float3x3.hpp"
8 | #include "./ext/matrix_float3x3_precision.hpp"
9 |
--------------------------------------------------------------------------------
/glm/mat3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat3x4.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double3x4.hpp"
6 | #include "./ext/matrix_double3x4_precision.hpp"
7 | #include "./ext/matrix_float3x4.hpp"
8 | #include "./ext/matrix_float3x4_precision.hpp"
9 |
--------------------------------------------------------------------------------
/glm/mat4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat4x2.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double4x2.hpp"
6 | #include "./ext/matrix_double4x2_precision.hpp"
7 | #include "./ext/matrix_float4x2.hpp"
8 | #include "./ext/matrix_float4x2_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/mat4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat4x3.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double4x3.hpp"
6 | #include "./ext/matrix_double4x3_precision.hpp"
7 | #include "./ext/matrix_float4x3.hpp"
8 | #include "./ext/matrix_float4x3_precision.hpp"
9 |
--------------------------------------------------------------------------------
/glm/mat4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/mat4x4.hpp
3 |
4 | #pragma once
5 | #include "./ext/matrix_double4x4.hpp"
6 | #include "./ext/matrix_double4x4_precision.hpp"
7 | #include "./ext/matrix_float4x4.hpp"
8 | #include "./ext/matrix_float4x4_precision.hpp"
9 |
10 |
--------------------------------------------------------------------------------
/glm/simd/exponential.h:
--------------------------------------------------------------------------------
1 | /// @ref simd
2 | /// @file glm/simd/experimental.h
3 |
4 | #pragma once
5 |
6 | #include "platform.h"
7 |
8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
9 |
10 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec1_sqrt_lowp(glm_f32vec4 x)
11 | {
12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x);
13 | }
14 |
15 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec4_sqrt_lowp(glm_f32vec4 x)
16 | {
17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x);
18 | }
19 |
20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
21 |
--------------------------------------------------------------------------------
/glm/simd/packing.h:
--------------------------------------------------------------------------------
1 | /// @ref simd
2 | /// @file glm/simd/packing.h
3 |
4 | #pragma once
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
9 |
--------------------------------------------------------------------------------
/glm/simd/trigonometric.h:
--------------------------------------------------------------------------------
1 | /// @ref simd
2 | /// @file glm/simd/trigonometric.h
3 |
4 | #pragma once
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
9 |
10 |
--------------------------------------------------------------------------------
/glm/simd/vector_relational.h:
--------------------------------------------------------------------------------
1 | /// @ref simd
2 | /// @file glm/simd/vector_relational.h
3 |
4 | #pragma once
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
9 |
--------------------------------------------------------------------------------
/glm/vec2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/vec2.hpp
3 |
4 | #pragma once
5 | #include "./ext/vector_bool2.hpp"
6 | #include "./ext/vector_bool2_precision.hpp"
7 | #include "./ext/vector_float2.hpp"
8 | #include "./ext/vector_float2_precision.hpp"
9 | #include "./ext/vector_double2.hpp"
10 | #include "./ext/vector_double2_precision.hpp"
11 | #include "./ext/vector_int2.hpp"
12 | #include "./ext/vector_int2_sized.hpp"
13 | #include "./ext/vector_uint2.hpp"
14 | #include "./ext/vector_uint2_sized.hpp"
15 |
--------------------------------------------------------------------------------
/glm/vec3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/vec3.hpp
3 |
4 | #pragma once
5 | #include "./ext/vector_bool3.hpp"
6 | #include "./ext/vector_bool3_precision.hpp"
7 | #include "./ext/vector_float3.hpp"
8 | #include "./ext/vector_float3_precision.hpp"
9 | #include "./ext/vector_double3.hpp"
10 | #include "./ext/vector_double3_precision.hpp"
11 | #include "./ext/vector_int3.hpp"
12 | #include "./ext/vector_int3_sized.hpp"
13 | #include "./ext/vector_uint3.hpp"
14 | #include "./ext/vector_uint3_sized.hpp"
15 |
--------------------------------------------------------------------------------
/glm/vec4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/vec4.hpp
3 |
4 | #pragma once
5 | #include "./ext/vector_bool4.hpp"
6 | #include "./ext/vector_bool4_precision.hpp"
7 | #include "./ext/vector_float4.hpp"
8 | #include "./ext/vector_float4_precision.hpp"
9 | #include "./ext/vector_double4.hpp"
10 | #include "./ext/vector_double4_precision.hpp"
11 | #include "./ext/vector_int4.hpp"
12 | #include "./ext/vector_int4_sized.hpp"
13 | #include "./ext/vector_uint4.hpp"
14 | #include "./ext/vector_uint4_sized.hpp"
15 |
16 |
--------------------------------------------------------------------------------
/test/bug/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | glmCreateTestGTC(bug_ms_vec_static)
2 |
--------------------------------------------------------------------------------
/test/bug/bug_ms_vec_static.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #if GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
4 | struct vec2;
5 |
6 | struct swizzleStruct
7 | {
8 | char _buffer[1];
9 | };
10 |
11 | struct vec2
12 | {
13 | GLM_CONSTEXPR vec2() :
14 | x(0), y(0)
15 | {}
16 |
17 | #if defined(_MSC_VER)
18 | # pragma warning(push)
19 | # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
20 | #endif
21 | #if GLM_COMPILER & GLM_COMPILER_CLANG
22 | # pragma clang diagnostic push
23 | # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
24 | # pragma clang diagnostic ignored "-Wnested-anon-types"
25 | #endif
26 |
27 | union
28 | {
29 | struct { float x, y; };
30 | struct { swizzleStruct xx; };
31 | };
32 |
33 | #if GLM_COMPILER & GLM_COMPILER_CLANG
34 | # pragma clang diagnostic pop
35 | #endif
36 | #if defined(_MSC_VER)
37 | # pragma warning(pop)
38 | #endif
39 | };
40 | #endif
41 |
42 | // Visual C++ has a bug generating the error: fatal error C1001: An internal error has occurred in the compiler.
43 | // vec2 Bar;
44 |
45 | int main()
46 | {
47 | return 0;
48 | }
49 |
--------------------------------------------------------------------------------
/test/cmake/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
2 | cmake_policy(VERSION 3.6)
3 | project(test_find_glm)
4 |
5 | find_package(glm REQUIRED)
6 |
7 | add_executable(test_find_glm test_find_glm.cpp)
8 | target_link_libraries(test_find_glm glm::glm)
9 |
10 |
--------------------------------------------------------------------------------
/test/cmake/test_find_glm.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | glm::mat4 camera(float Translate, glm::vec2 const& Rotate)
6 | {
7 | glm::mat4 Projection = glm::perspective(glm::pi() * 0.25f, 4.0f / 3.0f, 0.1f, 100.f);
8 | glm::mat4 View = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -Translate));
9 | View = glm::rotate(View, Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
10 | View = glm::rotate(View, Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
11 | glm::mat4 Model = glm::scale(glm::mat4(1.0f), glm::vec3(0.5f));
12 | return Projection * View * Model;
13 | }
14 |
15 | int main()
16 | {
17 | const glm::mat4 m = camera(1.f, glm::vec2(1.f, 0.5f));
18 | std::cout << "matrix diagonal: " << m[0][0] << ", "
19 | << m[1][1] << ", " << m[2][2] << ", " << m[3][3] << "\n";
20 | return 0;
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/test/core/core_force_aligned_gentypes.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main()
5 | {
6 | int Error = 0;
7 |
8 | return Error;
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/test/core/core_force_arch_unknown.cpp:
--------------------------------------------------------------------------------
1 | #ifndef GLM_FORCE_ARCH_UNKNOWN
2 | # define GLM_FORCE_ARCH_UNKNOWN
3 | #endif
4 |
5 | #include
6 | #include
7 |
8 | int main()
9 | {
10 | int Error = 0;
11 |
12 | return Error;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/test/core/core_force_compiler_unknown.cpp:
--------------------------------------------------------------------------------
1 | #ifndef GLM_FORCE_COMPILER_UNKNOWN
2 | # define GLM_FORCE_COMPILER_UNKNOWN
3 | #endif
4 |
5 | #if defined(__clang__)
6 | # pragma clang diagnostic push
7 | # pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
8 | # pragma clang diagnostic ignored "-Wnested-anon-types"
9 | # pragma clang diagnostic ignored "-Wsign-conversion"
10 | # pragma clang diagnostic ignored "-Wpadded"
11 | # pragma clang diagnostic ignored "-Wc++11-long-long"
12 | #elif defined(__GNUC__)
13 | # pragma GCC diagnostic push
14 | # pragma GCC diagnostic ignored "-Wpedantic"
15 | #elif defined(_MSC_VER)
16 | # pragma warning(push)
17 | # pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
18 | # pragma warning(disable: 4324) // structure was padded due to alignment specifier
19 | #endif
20 |
21 | #include
22 | #include
23 |
24 | #if defined(__clang__)
25 | # pragma clang diagnostic pop
26 | #elif defined(__GNUC__)
27 | # pragma GCC diagnostic pop
28 | #elif defined(_MSC_VER)
29 | # pragma warning(pop)
30 | #endif
31 |
32 | int main()
33 | {
34 | int Error = 0;
35 |
36 | return Error;
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/test/core/core_force_cxx03.cpp:
--------------------------------------------------------------------------------
1 | #ifndef GLM_FORCE_CXX03
2 | # define GLM_FORCE_CXX03
3 | #endif
4 |
5 | #include
6 | #include
7 |
8 | int main()
9 | {
10 | int Error = 0;
11 |
12 | return Error;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/test/core/core_force_cxx98.cpp:
--------------------------------------------------------------------------------
1 | #ifndef GLM_FORCE_CXX98
2 | # define GLM_FORCE_CXX98
3 | #endif
4 |
5 | #include
6 | #include
7 |
8 | int main()
9 | {
10 | int Error = 0;
11 |
12 | return Error;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/test/core/core_force_cxx_unknown.cpp:
--------------------------------------------------------------------------------
1 | #ifndef GLM_FORCE_CXX_UNKNOWN
2 | # define GLM_FORCE_CXX_UNKNOWN
3 | #endif
4 |
5 | #include