├── .gitignore ├── 2d-gaussian-splatting ├── .gitignore ├── LICENSE.md ├── README.md ├── arguments │ └── __init__.py ├── convert.py ├── environment.yml ├── extract_mesh.py ├── extract_mesh_adaptive_tsdf.py ├── gaussian_renderer │ ├── __init__.py │ └── network_gui.py ├── lpipsPyTorch │ ├── __init__.py │ └── modules │ │ ├── lpips.py │ │ ├── networks.py │ │ └── utils.py ├── metrics.py ├── render.py ├── render_multires.py ├── scene │ ├── __init__.py │ ├── cameras.py │ ├── colmap_loader.py │ ├── dataset_readers.py │ └── gaussian_model.py ├── submodules │ ├── diff-surfel-rasterization │ │ ├── .gitignore │ │ ├── .gitmodules │ │ ├── CMakeLists.txt │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── cuda_rasterizer │ │ │ ├── auxiliary.h │ │ │ ├── backward.cu │ │ │ ├── backward.h │ │ │ ├── config.h │ │ │ ├── forward.cu │ │ │ ├── forward.h │ │ │ ├── rasterizer.h │ │ │ ├── rasterizer_impl.cu │ │ │ └── rasterizer_impl.h │ │ ├── diff_surfel_rasterization │ │ │ └── __init__.py │ │ ├── ext.cpp │ │ ├── rasterize_points.cu │ │ ├── rasterize_points.h │ │ ├── setup.py │ │ └── third_party │ │ │ ├── glm │ │ │ ├── .appveyor.yml │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CMakeLists.txt │ │ │ ├── cmake │ │ │ │ └── cmake_uninstall.cmake.in │ │ │ ├── copying.txt │ │ │ ├── doc │ │ │ │ ├── api │ │ │ │ │ ├── a00001_source.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_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_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_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 │ │ │ │ │ ├── a00241.html │ │ │ │ │ ├── a00242.html │ │ │ │ │ ├── a00243.html │ │ │ │ │ ├── a00244.html │ │ │ │ │ ├── a00245.html │ │ │ │ │ ├── a00246.html │ │ │ │ │ ├── a00247.html │ │ │ │ │ ├── a00248.html │ │ │ │ │ ├── a00249.html │ │ │ │ │ ├── a00250.html │ │ │ │ │ ├── a00251.html │ │ │ │ │ ├── a00252.html │ │ │ │ │ ├── a00253.html │ │ │ │ │ ├── a00254.html │ │ │ │ │ ├── a00255.html │ │ │ │ │ ├── a00256.html │ │ │ │ │ ├── a00257.html │ │ │ │ │ ├── a00258.html │ │ │ │ │ ├── a00259.html │ │ │ │ │ ├── a00260.html │ │ │ │ │ ├── a00261.html │ │ │ │ │ ├── a00262.html │ │ │ │ │ ├── a00263.html │ │ │ │ │ ├── a00264.html │ │ │ │ │ ├── a00265.html │ │ │ │ │ ├── a00266.html │ │ │ │ │ ├── a00267.html │ │ │ │ │ ├── a00268.html │ │ │ │ │ ├── a00269.html │ │ │ │ │ ├── a00270.html │ │ │ │ │ ├── a00271.html │ │ │ │ │ ├── a00272.html │ │ │ │ │ ├── a00273.html │ │ │ │ │ ├── a00274.html │ │ │ │ │ ├── a00275.html │ │ │ │ │ ├── a00276.html │ │ │ │ │ ├── a00277.html │ │ │ │ │ ├── a00278.html │ │ │ │ │ ├── a00279.html │ │ │ │ │ ├── a00280.html │ │ │ │ │ ├── a00281.html │ │ │ │ │ ├── a00282.html │ │ │ │ │ ├── a00283.html │ │ │ │ │ ├── a00284.html │ │ │ │ │ ├── a00285.html │ │ │ │ │ ├── a00286.html │ │ │ │ │ ├── a00287.html │ │ │ │ │ ├── a00288.html │ │ │ │ │ ├── a00289.html │ │ │ │ │ ├── a00290.html │ │ │ │ │ ├── a00291.html │ │ │ │ │ ├── a00292.html │ │ │ │ │ ├── a00293.html │ │ │ │ │ ├── a00294.html │ │ │ │ │ ├── a00295.html │ │ │ │ │ ├── a00296.html │ │ │ │ │ ├── a00297.html │ │ │ │ │ ├── a00298.html │ │ │ │ │ ├── a00299.html │ │ │ │ │ ├── a00300.html │ │ │ │ │ ├── a00301.html │ │ │ │ │ ├── a00302.html │ │ │ │ │ ├── a00303.html │ │ │ │ │ ├── a00304.html │ │ │ │ │ ├── a00305.html │ │ │ │ │ ├── a00306.html │ │ │ │ │ ├── a00307.html │ │ │ │ │ ├── a00308.html │ │ │ │ │ ├── a00309.html │ │ │ │ │ ├── a00310.html │ │ │ │ │ ├── a00311.html │ │ │ │ │ ├── a00312.html │ │ │ │ │ ├── a00313.html │ │ │ │ │ ├── a00314.html │ │ │ │ │ ├── a00315.html │ │ │ │ │ ├── a00316.html │ │ │ │ │ ├── a00317.html │ │ │ │ │ ├── a00318.html │ │ │ │ │ ├── a00319.html │ │ │ │ │ ├── a00320.html │ │ │ │ │ ├── a00321.html │ │ │ │ │ ├── a00322.html │ │ │ │ │ ├── a00323.html │ │ │ │ │ ├── a00324.html │ │ │ │ │ ├── a00325.html │ │ │ │ │ ├── a00326.html │ │ │ │ │ ├── a00327.html │ │ │ │ │ ├── a00328.html │ │ │ │ │ ├── a00329.html │ │ │ │ │ ├── a00330.html │ │ │ │ │ ├── a00331.html │ │ │ │ │ ├── a00332.html │ │ │ │ │ ├── a00333.html │ │ │ │ │ ├── a00334.html │ │ │ │ │ ├── a00335.html │ │ │ │ │ ├── a00336.html │ │ │ │ │ ├── a00337.html │ │ │ │ │ ├── a00338.html │ │ │ │ │ ├── a00339.html │ │ │ │ │ ├── a00340.html │ │ │ │ │ ├── a00341.html │ │ │ │ │ ├── a00342.html │ │ │ │ │ ├── a00343.html │ │ │ │ │ ├── a00344.html │ │ │ │ │ ├── a00345.html │ │ │ │ │ ├── a00346.html │ │ │ │ │ ├── a00347.html │ │ │ │ │ ├── a00348.html │ │ │ │ │ ├── a00349.html │ │ │ │ │ ├── a00350.html │ │ │ │ │ ├── a00351.html │ │ │ │ │ ├── a00352.html │ │ │ │ │ ├── a00353.html │ │ │ │ │ ├── a00354.html │ │ │ │ │ ├── a00355.html │ │ │ │ │ ├── a00356.html │ │ │ │ │ ├── a00357.html │ │ │ │ │ ├── a00358.html │ │ │ │ │ ├── a00359.html │ │ │ │ │ ├── a00360.html │ │ │ │ │ ├── a00361.html │ │ │ │ │ ├── a00362.html │ │ │ │ │ ├── a00363.html │ │ │ │ │ ├── a00364.html │ │ │ │ │ ├── a00365.html │ │ │ │ │ ├── a00366.html │ │ │ │ │ ├── a00367.html │ │ │ │ │ ├── a00368.html │ │ │ │ │ ├── a00369.html │ │ │ │ │ ├── a00370.html │ │ │ │ │ ├── a00371.html │ │ │ │ │ ├── a00372.html │ │ │ │ │ ├── a00373.html │ │ │ │ │ ├── a00374.html │ │ │ │ │ ├── dir_033f5edb0915b828d2c46ed4804e5503.html │ │ │ │ │ ├── dir_3a581ba30d25676e4b797b1f96d53b45.html │ │ │ │ │ ├── dir_44e5e654415abd9ca6fdeaddaff8565e.html │ │ │ │ │ ├── dir_4c6bd29c73fa4e5a2509e1c15f846751.html │ │ │ │ │ ├── dir_5189610d3ba09ec39b766fb99b34cd93.html │ │ │ │ │ ├── dir_6b66465792d005310484819a0eb0b0d3.html │ │ │ │ │ ├── dir_9e5fe034a00e89334fd5186c3e7db156.html │ │ │ │ │ ├── dir_a8bee7be44182a33f3820393ae0b105d.html │ │ │ │ │ ├── dir_cef2d71d502cb69a9252bca2297d9549.html │ │ │ │ │ ├── dir_d9496f0844b48bc7e53b5af8c99b9ab2.html │ │ │ │ │ ├── dir_f35778ec600a1b9bbc4524e62e226aa2.html │ │ │ │ │ ├── doxygen.css │ │ │ │ │ ├── dynsections.js │ │ │ │ │ ├── files.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── modules.html │ │ │ │ │ ├── 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 │ │ │ │ │ │ ├── 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 │ │ │ │ │ │ ├── nomatches.html │ │ │ │ │ │ ├── pages_0.html │ │ │ │ │ │ ├── pages_0.js │ │ │ │ │ │ ├── search.css │ │ │ │ │ │ ├── search.js │ │ │ │ │ │ ├── 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 │ │ │ │ │ └── tabs.css │ │ │ │ ├── man.doxy │ │ │ │ ├── manual.pdf │ │ │ │ ├── manual │ │ │ │ │ ├── noise-perlin1.jpg │ │ │ │ │ ├── noise-perlin2.jpg │ │ │ │ │ ├── noise-perlin3.jpg │ │ │ │ │ ├── noise-simplex1.jpg │ │ │ │ │ ├── noise-simplex2.jpg │ │ │ │ │ ├── noise-simplex3.jpg │ │ │ │ │ ├── references-glsl4book.jpg │ │ │ │ │ ├── references-leosfortune.jpeg │ │ │ │ │ ├── references-leosfortune2.jpg │ │ │ │ │ ├── references-outerra1.jpg │ │ │ │ │ ├── references-outerra2.jpg │ │ │ │ │ ├── references-outerra3.jpg │ │ │ │ │ └── references-outerra4.jpg │ │ │ │ └── theme │ │ │ │ │ └── doxygen.css │ │ │ ├── glm │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── common.hpp │ │ │ │ ├── detail │ │ │ │ │ ├── _features.hpp │ │ │ │ │ ├── _fixes.hpp │ │ │ │ │ ├── _noise.hpp │ │ │ │ │ ├── _swizzle.hpp │ │ │ │ │ ├── _swizzle_func.hpp │ │ │ │ │ ├── _vectorize.hpp │ │ │ │ │ ├── compute_common.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 │ │ │ │ ├── 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.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 │ │ │ │ │ ├── number_precision.inl │ │ │ │ │ ├── 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_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_cxx98.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 │ │ │ └── stbi_image_write.h │ ├── simple-knn │ │ ├── LICENSE.md │ │ ├── ext.cpp │ │ ├── setup.py │ │ ├── simple_knn.cu │ │ ├── simple_knn.h │ │ ├── simple_knn │ │ │ └── .gitkeep │ │ ├── spatial.cu │ │ └── spatial.h │ └── tetra-triangulation │ │ ├── .gitignore │ │ ├── .pre-commit-config.yaml │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── cmake │ │ ├── FindCUDA.cmake │ │ └── FindTorch.cmake │ │ ├── pytest.ini │ │ ├── setup.py │ │ ├── src │ │ ├── py_binding.cpp │ │ ├── triangulation.cpp │ │ ├── triangulation.h │ │ └── utils │ │ │ └── exception.h │ │ ├── tests │ │ └── test_triangulation.py │ │ └── tetranerf │ │ ├── __init__.py │ │ └── utils │ │ ├── __init__.py │ │ └── extension │ │ ├── __init__.py │ │ ├── __init__.pyi │ │ └── py.typed ├── train.py ├── train_with_charts.py ├── utils │ ├── camera_utils.py │ ├── general_utils.py │ ├── graphics_utils.py │ ├── image_utils.py │ ├── loss_utils.py │ ├── mcube_utils.py │ ├── mesh_utils.py │ ├── point_utils.py │ ├── render_utils.py │ ├── sh_utils.py │ ├── system_utils.py │ └── tetmesh.py └── view.py ├── Depth-Anything-V2 ├── DA-2K.md ├── LICENSE ├── README.md ├── app.py ├── depth_anything_v2 │ ├── dinov2.py │ ├── dinov2_layers │ │ ├── __init__.py │ │ ├── attention.py │ │ ├── block.py │ │ ├── drop_path.py │ │ ├── layer_scale.py │ │ ├── mlp.py │ │ ├── patch_embed.py │ │ └── swiglu_ffn.py │ ├── dpt.py │ └── util │ │ ├── blocks.py │ │ └── transform.py ├── metric_depth │ ├── README.md │ ├── dataset │ │ ├── hypersim.py │ │ ├── kitti.py │ │ ├── transform.py │ │ └── vkitti2.py │ ├── depth_anything_v2 │ │ ├── dinov2.py │ │ ├── dinov2_layers │ │ │ ├── __init__.py │ │ │ ├── attention.py │ │ │ ├── block.py │ │ │ ├── drop_path.py │ │ │ ├── layer_scale.py │ │ │ ├── mlp.py │ │ │ ├── patch_embed.py │ │ │ └── swiglu_ffn.py │ │ ├── dpt.py │ │ └── util │ │ │ ├── blocks.py │ │ │ └── transform.py │ ├── depth_to_pointcloud.py │ ├── dist_train.sh │ ├── requirements.txt │ ├── run.py │ ├── train.py │ └── util │ │ ├── dist_helper.py │ │ ├── loss.py │ │ ├── metric.py │ │ └── utils.py ├── requirements.txt ├── run.py └── run_video.py ├── LICENSE ├── README.md ├── configs ├── adaptive_tetrahedralization │ └── default.yaml ├── charts_alignment │ ├── default.yaml │ └── strong.yaml ├── free_gaussians_refinement │ ├── default.yaml │ └── long.yaml ├── mast3r │ ├── posed.yaml │ └── unposed.yaml └── multiresolution_tsdf │ └── default.yaml ├── download_checkpoints.py ├── environment.yml ├── install.py ├── mast3r ├── .gitignore ├── .gradio │ └── certificate.pem ├── CHECKPOINTS_NOTICE ├── LICENSE ├── NOTICE ├── README.md ├── asmk │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── asmk │ │ ├── __init__.py │ │ ├── asmk_method.py │ │ ├── codebook.py │ │ ├── functional.py │ │ ├── index.py │ │ ├── inverted_file.py │ │ ├── io_helpers.py │ │ └── kernel.py │ ├── cython │ │ ├── build.sh │ │ ├── hamming.c │ │ └── hamming.pyx │ ├── examples │ │ ├── demo_how.py │ │ └── params │ │ │ ├── _eccv20_how.yml │ │ │ ├── eccv20_how_r18_1000.yml │ │ │ ├── eccv20_how_r50-_1000.yml │ │ │ └── eccv20_how_r50-_2000.yml │ ├── setup.py │ └── test │ │ └── test_hamming.py ├── colmap │ └── read_write_model.py ├── compute_matches.py ├── demo.py ├── demo_dust3r_ga.py ├── demo_glomap.py ├── dm_utils │ ├── dataset_readers.py │ ├── general.py │ ├── loss.py │ ├── mcube.py │ ├── model.py │ └── rendering.py ├── docker │ ├── docker-compose-cpu.yml │ ├── docker-compose-cuda.yml │ ├── files │ │ ├── cpu.Dockerfile │ │ ├── cuda.Dockerfile │ │ └── entrypoint.sh │ └── run.sh ├── dust3r │ ├── .gitignore │ ├── LICENSE │ ├── NOTICE │ ├── README.md │ ├── assets │ │ ├── demo.jpg │ │ ├── dust3r.jpg │ │ ├── dust3r_archi.jpg │ │ ├── matching.jpg │ │ └── pipeline1.jpg │ ├── croco │ │ ├── LICENSE │ │ ├── NOTICE │ │ ├── README.MD │ │ ├── assets │ │ │ ├── Chateau1.png │ │ │ ├── Chateau2.png │ │ │ └── arch.jpg │ │ ├── croco-stereo-flow-demo.ipynb │ │ ├── datasets │ │ │ ├── __init__.py │ │ │ ├── crops │ │ │ │ ├── README.MD │ │ │ │ └── extract_crops_from_images.py │ │ │ ├── habitat_sim │ │ │ │ ├── README.MD │ │ │ │ ├── __init__.py │ │ │ │ ├── generate_from_metadata.py │ │ │ │ ├── generate_from_metadata_files.py │ │ │ │ ├── generate_multiview_images.py │ │ │ │ ├── multiview_habitat_sim_generator.py │ │ │ │ ├── pack_metadata_files.py │ │ │ │ └── paths.py │ │ │ ├── pairs_dataset.py │ │ │ └── transforms.py │ │ ├── demo.py │ │ ├── interactive_demo.ipynb │ │ ├── models │ │ │ ├── blocks.py │ │ │ ├── criterion.py │ │ │ ├── croco.py │ │ │ ├── croco_downstream.py │ │ │ ├── curope │ │ │ │ ├── __init__.py │ │ │ │ ├── curope.cpp │ │ │ │ ├── curope2d.py │ │ │ │ ├── kernels.cu │ │ │ │ └── setup.py │ │ │ ├── dpt_block.py │ │ │ ├── head_downstream.py │ │ │ ├── masking.py │ │ │ └── pos_embed.py │ │ ├── pretrain.py │ │ ├── stereoflow │ │ │ ├── README.MD │ │ │ ├── augmentor.py │ │ │ ├── criterion.py │ │ │ ├── datasets_flow.py │ │ │ ├── datasets_stereo.py │ │ │ ├── download_model.sh │ │ │ ├── engine.py │ │ │ ├── test.py │ │ │ └── train.py │ │ └── utils │ │ │ └── misc.py │ ├── datasets_preprocess │ │ ├── habitat │ │ │ ├── README.md │ │ │ ├── find_scenes.py │ │ │ ├── habitat_renderer │ │ │ │ ├── __init__.py │ │ │ │ ├── habitat_sim_envmaps_renderer.py │ │ │ │ ├── multiview_crop_generator.py │ │ │ │ ├── projections.py │ │ │ │ └── projections_conversions.py │ │ │ └── preprocess_habitat.py │ │ ├── path_to_root.py │ │ ├── preprocess_arkitscenes.py │ │ ├── preprocess_blendedMVS.py │ │ ├── preprocess_co3d.py │ │ ├── preprocess_megadepth.py │ │ ├── preprocess_scannetpp.py │ │ ├── preprocess_staticthings3d.py │ │ ├── preprocess_waymo.py │ │ └── preprocess_wildrgbd.py │ ├── demo.py │ ├── docker │ │ ├── docker-compose-cpu.yml │ │ ├── docker-compose-cuda.yml │ │ ├── files │ │ │ ├── cpu.Dockerfile │ │ │ ├── cuda.Dockerfile │ │ │ └── entrypoint.sh │ │ └── run.sh │ ├── dust3r │ │ ├── __init__.py │ │ ├── cloud_opt │ │ │ ├── __init__.py │ │ │ ├── base_opt.py │ │ │ ├── commons.py │ │ │ ├── init_im_poses.py │ │ │ ├── modular_optimizer.py │ │ │ ├── optimizer.py │ │ │ └── pair_viewer.py │ │ ├── datasets │ │ │ ├── __init__.py │ │ │ ├── arkitscenes.py │ │ │ ├── base │ │ │ │ ├── __init__.py │ │ │ │ ├── base_stereo_view_dataset.py │ │ │ │ ├── batched_sampler.py │ │ │ │ └── easy_dataset.py │ │ │ ├── blendedmvs.py │ │ │ ├── co3d.py │ │ │ ├── habitat.py │ │ │ ├── megadepth.py │ │ │ ├── scannetpp.py │ │ │ ├── staticthings3d.py │ │ │ ├── utils │ │ │ │ ├── __init__.py │ │ │ │ ├── cropping.py │ │ │ │ └── transforms.py │ │ │ ├── waymo.py │ │ │ └── wildrgbd.py │ │ ├── demo.py │ │ ├── heads │ │ │ ├── __init__.py │ │ │ ├── dpt_head.py │ │ │ ├── linear_head.py │ │ │ └── postprocess.py │ │ ├── image_pairs.py │ │ ├── inference.py │ │ ├── losses.py │ │ ├── model.py │ │ ├── optim_factory.py │ │ ├── patch_embed.py │ │ ├── post_process.py │ │ ├── training.py │ │ ├── utils │ │ │ ├── __init__.py │ │ │ ├── device.py │ │ │ ├── geometry.py │ │ │ ├── image.py │ │ │ ├── misc.py │ │ │ ├── parallel.py │ │ │ └── path_to_croco.py │ │ └── viz.py │ ├── dust3r_visloc │ │ ├── README.md │ │ ├── __init__.py │ │ ├── datasets │ │ │ ├── __init__.py │ │ │ ├── aachen_day_night.py │ │ │ ├── base_colmap.py │ │ │ ├── base_dataset.py │ │ │ ├── cambridge_landmarks.py │ │ │ ├── inloc.py │ │ │ ├── sevenscenes.py │ │ │ └── utils.py │ │ ├── evaluation.py │ │ └── localization.py │ ├── requirements.txt │ ├── requirements_optional.txt │ ├── train.py │ └── visloc.py ├── kapture_mast3r_mapping.py ├── make_pairs.py ├── mast3r │ ├── __init__.py │ ├── catmlp_dpt_head.py │ ├── cloud_opt │ │ ├── __init__.py │ │ ├── sparse_ga.py │ │ ├── sparse_ga_old.py │ │ ├── triangulation.py │ │ ├── tsdf_optimizer.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── losses.py │ │ │ └── schedules.py │ ├── colmap │ │ ├── __init__.py │ │ ├── database.py │ │ └── mapping.py │ ├── datasets │ │ ├── __init__.py │ │ ├── base │ │ │ ├── __init__.py │ │ │ └── mast3r_base_stereo_view_dataset.py │ │ └── utils │ │ │ ├── __init__.py │ │ │ └── cropping.py │ ├── demo.py │ ├── demo_glomap.py │ ├── fast_nn.py │ ├── image_pairs.py │ ├── losses.py │ ├── model.py │ ├── retrieval │ │ ├── graph.py │ │ ├── model.py │ │ └── processor.py │ └── utils │ │ ├── __init__.py │ │ ├── coarse_to_fine.py │ │ ├── collate.py │ │ ├── misc.py │ │ └── path_to_dust3r.py ├── requirements.txt ├── run_mast3r.py ├── train.py └── visloc.py ├── matcha ├── __init__.py ├── dm_deformation │ ├── __init__.py │ ├── encodings.py │ ├── lora_multi_mlp.py │ ├── meta_multi_mlp.py │ ├── mlp.py │ └── multi_mlp.py ├── dm_extractors │ ├── __init__.py │ ├── adaptive_tsdf.py │ └── utils.py ├── dm_modules │ ├── __init__.py │ ├── adaln.py │ └── matcher_3d.py ├── dm_regularization │ ├── __init__.py │ ├── charts.py │ ├── depth.py │ ├── gaussian_2dgs.py │ ├── gaussian_gof.py │ ├── gaussian_surfels.py │ └── manifold.py ├── dm_scene │ ├── __init__.py │ ├── cameras.py │ ├── charts.py │ ├── gaussians.py │ ├── learnable_cameras.py │ ├── meshes.py │ ├── parallel_aligner.py │ └── parallel_aligner_with_cameras.py ├── dm_trainers │ ├── __init__.py │ └── charts_alignment.py ├── dm_utils │ ├── __init__.py │ ├── dataset_readers.py │ ├── dust3r_image.py │ ├── general.py │ ├── image.py │ ├── loss.py │ ├── mcube.py │ ├── model.py │ ├── rendering.py │ ├── tetmesh.py │ └── video.py └── pointmap │ ├── __init__.py │ ├── base.py │ ├── depthanythingv2.py │ ├── dust3r.py │ ├── mast3r.py │ └── utils.py ├── media ├── gifs │ └── garden.gif └── imgs │ ├── buzz1_gt_rgb.jpg │ ├── buzz1_matcha_mesh.png │ ├── re_gt_rgb.jpg │ ├── re_matcha_mesh.png │ └── workbench │ ├── buzz_dense_color.JPG │ ├── buzz_dense_mesh.JPG │ ├── garden_dense_color.JPG │ ├── garden_dense_mesh.JPG │ ├── gundam_dense_color.JPG │ ├── gundam_dense_mesh.JPG │ ├── re_dense_color.JPG │ └── re_dense_mesh.JPG ├── scripts ├── align_charts.py ├── extract_tetra_mesh.py ├── extract_tsdf_mesh.py ├── refine_free_gaussians.py └── run_sfm.py └── train.py /2d-gaussian-splatting/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .vscode 3 | output 4 | build 5 | data 6 | *.ply 7 | **/PKG-INFO 8 | # submodules 9 | **__pycache__** 10 | *.png 11 | *.out 12 | eval 13 | *.npz 14 | **/tmp -------------------------------------------------------------------------------- /2d-gaussian-splatting/environment.yml: -------------------------------------------------------------------------------- 1 | name: surfel_splatting 2 | channels: 3 | - pytorch 4 | - nvidia 5 | - conda-forge 6 | - defaults 7 | dependencies: 8 | - ffmpeg=4.2.2 9 | - pillow=10.2.0 10 | - pip=23.3.1 11 | - python=3.8.18 12 | - pytorch=2.0.0 13 | - torchaudio=2.0.0 14 | - torchvision=0.15.0 15 | - typing_extensions=4.9.0 16 | - pip: 17 | - open3d==0.18.0 18 | - mediapy==1.1.2 19 | - lpips==0.1.4 20 | - scikit-image==0.21.0 21 | - tqdm==4.66.2 22 | - trimesh==4.3.2 23 | - submodules/diff-surfel-rasterization 24 | - submodules/simple-knn 25 | - plyfile 26 | - opencv-python -------------------------------------------------------------------------------- /2d-gaussian-splatting/lpipsPyTorch/__init__.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | from .modules.lpips import LPIPS 4 | 5 | 6 | def lpips(x: torch.Tensor, 7 | y: torch.Tensor, 8 | net_type: str = 'alex', 9 | version: str = '0.1'): 10 | r"""Function that measures 11 | Learned Perceptual Image Patch Similarity (LPIPS). 12 | 13 | Arguments: 14 | x, y (torch.Tensor): the input tensors to compare. 15 | net_type (str): the network type to compare the features: 16 | 'alex' | 'squeeze' | 'vgg'. Default: 'alex'. 17 | version (str): the version of LPIPS. Default: 0.1. 18 | """ 19 | device = x.device 20 | criterion = LPIPS(net_type, version).to(device) 21 | return criterion(x, y) 22 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/lpipsPyTorch/modules/utils.py: -------------------------------------------------------------------------------- 1 | from collections import OrderedDict 2 | 3 | import torch 4 | 5 | 6 | def normalize_activation(x, eps=1e-10): 7 | norm_factor = torch.sqrt(torch.sum(x ** 2, dim=1, keepdim=True)) 8 | return x / (norm_factor + eps) 9 | 10 | 11 | def get_state_dict(net_type: str = 'alex', version: str = '0.1'): 12 | # build url 13 | url = 'https://raw.githubusercontent.com/richzhang/PerceptualSimilarity/' \ 14 | + f'master/lpips/weights/v{version}/{net_type}.pth' 15 | 16 | # download 17 | old_state_dict = torch.hub.load_state_dict_from_url( 18 | url, progress=True, 19 | map_location=None if torch.cuda.is_available() else torch.device('cpu') 20 | ) 21 | 22 | # rename keys 23 | new_state_dict = OrderedDict() 24 | for key, val in old_state_dict.items(): 25 | new_key = key 26 | new_key = new_key.replace('lin', '') 27 | new_key = new_key.replace('model.', '') 28 | new_state_dict[new_key] = val 29 | 30 | return new_state_dict 31 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | diff_surfel_rasterization.egg-info/ 3 | dist/ 4 | *.so 5 | .vscode 6 | **__pycache__** 7 | *.pyc -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "third_party/glm"] 2 | path = third_party/glm 3 | url = https://github.com/g-truc/glm.git 4 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/cuda_rasterizer/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #ifndef CUDA_RASTERIZER_CONFIG_H_INCLUDED 13 | #define CUDA_RASTERIZER_CONFIG_H_INCLUDED 14 | 15 | #define NUM_CHANNELS 3 // Default 3, RGB 16 | #define BLOCK_X 16 17 | #define BLOCK_Y 16 18 | 19 | #endif -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/ext.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #include 13 | #include "rasterize_points.h" 14 | 15 | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { 16 | m.def("rasterize_gaussians", &RasterizeGaussiansCUDA); 17 | m.def("rasterize_gaussians_backward", &RasterizeGaussiansBackwardCUDA); 18 | m.def("mark_visible", &markVisible); 19 | } -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/.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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/all_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]], 4 | ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]], 5 | ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/all_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], 4 | ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], 5 | ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], 6 | ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/all_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['associated_5fmin_5fmax_2ehpp',['associated_min_max.hpp',['../a00007.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bit_2ehpp',['bit.hpp',['../a00008.html',1,'']]], 4 | ['bitfield_2ehpp',['bitfield.hpp',['../a00009.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['scalar_5fcommon_2ehpp',['scalar_common.hpp',['../a00144.html',1,'']]], 4 | ['scalar_5fconstants_2ehpp',['scalar_constants.hpp',['../a00145.html',1,'']]], 5 | ['scalar_5fint_5fsized_2ehpp',['scalar_int_sized.hpp',['../a00146.html',1,'']]], 6 | ['scalar_5finteger_2ehpp',['scalar_integer.hpp',['../a00147.html',1,'']]], 7 | ['scalar_5fmultiplication_2ehpp',['scalar_multiplication.hpp',['../a00148.html',1,'']]], 8 | ['scalar_5fuint_5fsized_2ehpp',['scalar_uint_sized.hpp',['../a00151.html',1,'']]], 9 | ['scalar_5fulp_2ehpp',['scalar_ulp.hpp',['../a00152.html',1,'']]], 10 | ['spline_2ehpp',['spline.hpp',['../a00154.html',1,'']]], 11 | ['std_5fbased_5ftype_2ehpp',['std_based_type.hpp',['../a00155.html',1,'']]], 12 | ['string_5fcast_2ehpp',['string_cast.hpp',['../a00156.html',1,'']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ulp_2ehpp',['ulp.hpp',['../a00182.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wrap_2ehpp',['wrap.hpp',['../a00235.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['closest_5fpoint_2ehpp',['closest_point.hpp',['../a00010.html',1,'']]], 4 | ['color_5fencoding_2ehpp',['color_encoding.hpp',['../a00011.html',1,'']]], 5 | ['color_5fspace_5fycocg_2ehpp',['color_space_YCoCg.hpp',['../a00014.html',1,'']]], 6 | ['common_2ehpp',['common.hpp',['../a00015.html',1,'']]], 7 | ['compatibility_2ehpp',['compatibility.hpp',['../a00017.html',1,'']]], 8 | ['component_5fwise_2ehpp',['component_wise.hpp',['../a00018.html',1,'']]], 9 | ['constants_2ehpp',['constants.hpp',['../a00021.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dual_5fquaternion_2ehpp',['dual_quaternion.hpp',['../a00022.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['easing_2ehpp',['easing.hpp',['../a00023.html',1,'']]], 4 | ['epsilon_2ehpp',['epsilon.hpp',['../a00024.html',1,'']]], 5 | ['euler_5fangles_2ehpp',['euler_angles.hpp',['../a00025.html',1,'']]], 6 | ['exponential_2ehpp',['exponential.hpp',['../a00026.html',1,'']]], 7 | ['ext_2ehpp',['ext.hpp',['../a00027.html',1,'']]], 8 | ['extend_2ehpp',['extend.hpp',['../a00028.html',1,'']]], 9 | ['extended_5fmin_5fmax_2ehpp',['extended_min_max.hpp',['../a00029.html',1,'']]], 10 | ['exterior_5fproduct_2ehpp',['exterior_product.hpp',['../a00030.html',1,'']]], 11 | ['matrix_5ftransform_2ehpp',['matrix_transform.hpp',['../a00108.html',1,'']]], 12 | ['scalar_5frelational_2ehpp',['scalar_relational.hpp',['../a00149.html',1,'']]], 13 | ['vector_5frelational_2ehpp',['vector_relational.hpp',['../a00224.html',1,'']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fast_5fexponential_2ehpp',['fast_exponential.hpp',['../a00031.html',1,'']]], 4 | ['fast_5fsquare_5froot_2ehpp',['fast_square_root.hpp',['../a00032.html',1,'']]], 5 | ['fast_5ftrigonometry_2ehpp',['fast_trigonometry.hpp',['../a00033.html',1,'']]], 6 | ['functions_2ehpp',['functions.hpp',['../a00034.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['handed_5fcoordinate_5fspace_2ehpp',['handed_coordinate_space.hpp',['../a00039.html',1,'']]], 4 | ['hash_2ehpp',['hash.hpp',['../a00040.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['integer_2ehpp',['integer.hpp',['../a00043.html',1,'']]], 4 | ['intersect_2ehpp',['intersect.hpp',['../a00044.html',1,'']]], 5 | ['io_2ehpp',['io.hpp',['../a00045.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['log_5fbase_2ehpp',['log_base.hpp',['../a00046.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['noise_2ehpp',['noise.hpp',['../a00112.html',1,'']]], 4 | ['norm_2ehpp',['norm.hpp',['../a00113.html',1,'']]], 5 | ['normal_2ehpp',['normal.hpp',['../a00114.html',1,'']]], 6 | ['normalize_5fdot_2ehpp',['normalize_dot.hpp',['../a00115.html',1,'']]], 7 | ['number_5fprecision_2ehpp',['number_precision.hpp',['../a00116.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['optimum_5fpow_2ehpp',['optimum_pow.hpp',['../a00117.html',1,'']]], 4 | ['orthonormalize_2ehpp',['orthonormalize.hpp',['../a00118.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['packing_2ehpp',['packing.hpp',['../a00120.html',1,'']]], 4 | ['perpendicular_2ehpp',['perpendicular.hpp',['../a00121.html',1,'']]], 5 | ['polar_5fcoordinates_2ehpp',['polar_coordinates.hpp',['../a00122.html',1,'']]], 6 | ['projection_2ehpp',['projection.hpp',['../a00123.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/files_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['random_2ehpp',['random.hpp',['../a00137.html',1,'']]], 4 | ['range_2ehpp',['range.hpp',['../a00138.html',1,'']]], 5 | ['raw_5fdata_2ehpp',['raw_data.hpp',['../a00139.html',1,'']]], 6 | ['reciprocal_2ehpp',['reciprocal.hpp',['../a00140.html',1,'']]], 7 | ['rotate_5fnormalized_5faxis_2ehpp',['rotate_normalized_axis.hpp',['../a00141.html',1,'']]], 8 | ['rotate_5fvector_2ehpp',['rotate_vector.hpp',['../a00142.html',1,'']]], 9 | ['round_2ehpp',['round.hpp',['../a00143.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/functions_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['value_5fptr',['value_ptr',['../a00305.html#ga1c64669e1ba1160ad9386e43dc57569a',1,'glm']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/functions_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wrapangle',['wrapAngle',['../a00325.html#ga069527c6dbd64f53435b8ebc4878b473',1,'glm']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/functions_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['yaw',['yaw',['../a00299.html#ga8da38cdfdc452dafa660c2f46506bad5',1,'glm']]], 4 | ['yawpitchroll',['yawPitchRoll',['../a00319.html#gae6aa26ccb020d281b449619e419a609e',1,'glm']]], 5 | ['ycocg2rgb',['YCoCg2rgb',['../a00313.html#ga163596b804c7241810b2534a99eb1343',1,'glm']]], 6 | ['ycocgr2rgb',['YCoCgR2rgb',['../a00313.html#gaf8d30574c8576838097d8e20c295384a',1,'glm']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/functions_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['zero',['zero',['../a00290.html#ga788f5a421fc0f40a1296ebc094cbaa8a',1,'glm']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['half_5fpi',['half_pi',['../a00290.html#ga0c36b41d462e45641faf7d7938948bac',1,'glm']]], 4 | ['hermite',['hermite',['../a00358.html#gaa69e143f6374d32f934a8edeaa50bac9',1,'glm']]], 5 | ['highestbitvalue',['highestBitValue',['../a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05',1,'glm::highestBitValue(genIUType Value)'],['../a00309.html#ga898ef075ccf809a1e480faab48fe96bf',1,'glm::highestBitValue(vec< L, T, Q > const &value)']]], 6 | ['hsvcolor',['hsvColor',['../a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8',1,'glm']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['angle_20and_20trigonometry_20functions',['Angle and Trigonometry Functions',['../a00373.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['core_20features',['Core features',['../a00280.html',1,'']]], 4 | ['common_20functions',['Common functions',['../a00241.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['exponential_20functions',['Exponential functions',['../a00242.html',1,'']]], 4 | ['experimental_20extensions',['Experimental extensions',['../a00287.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['floating_2dpoint_20pack_20and_20unpack_20functions',['Floating-Point Pack and Unpack Functions',['../a00372.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['integer_20functions',['Integer functions',['../a00370.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['matrix_20functions',['Matrix functions',['../a00371.html',1,'']]], 4 | ['matrix_20types',['Matrix types',['../a00283.html',1,'']]], 5 | ['matrix_20types_20with_20precision_20qualifiers',['Matrix types with precision qualifiers',['../a00284.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['recommended_20extensions',['Recommended extensions',['../a00286.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['stable_20extensions',['Stable extensions',['../a00285.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/groups_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vector_20relational_20functions',['Vector Relational Functions',['../a00374.html',1,'']]], 4 | ['vector_20types',['Vector types',['../a00281.html',1,'']]], 5 | ['vector_20types_20with_20precision_20qualifiers',['Vector types with precision qualifiers',['../a00282.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['opengl_20mathematics_20_28glm_29',['OpenGL Mathematics (GLM)',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/typedefs_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quat',['quat',['../a00252.html#gab0b441adb4509bc58d2946c2239a8942',1,'glm']]], 4 | ['qword',['qword',['../a00354.html#ga4021754ffb8e5ef14c75802b15657714',1,'glm']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/typedefs_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['sint',['sint',['../a00330.html#gada7e83fdfe943aba4f1d5bf80cb66f40',1,'glm']]], 4 | ['size1',['size1',['../a00359.html#gaeb877ac8f9a3703961736c1c5072cf68',1,'glm']]], 5 | ['size1_5ft',['size1_t',['../a00359.html#gaaf6accc57f5aa50447ba7310ce3f0d6f',1,'glm']]], 6 | ['size2',['size2',['../a00359.html#ga1bfe8c4975ff282bce41be2bacd524fe',1,'glm']]], 7 | ['size2_5ft',['size2_t',['../a00359.html#ga5976c25657d4e2b5f73f39364c3845d6',1,'glm']]], 8 | ['size3',['size3',['../a00359.html#gae1c72956d0359b0db332c6c8774d3b04',1,'glm']]], 9 | ['size3_5ft',['size3_t',['../a00359.html#gaf2654983c60d641fd3808e65a8dfad8d',1,'glm']]], 10 | ['size4',['size4',['../a00359.html#ga3a19dde617beaf8ce3cfc2ac5064e9aa',1,'glm']]], 11 | ['size4_5ft',['size4_t',['../a00359.html#gaa423efcea63675a2df26990dbcb58656',1,'glm']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/typedefs_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vec1',['vec1',['../a00270.html#gadfc071d934d8dae7955a1d530a3cf656',1,'glm']]], 4 | ['vec2',['vec2',['../a00281.html#gabe65c061834f61b4f7cb6037b19006a4',1,'glm']]], 5 | ['vec3',['vec3',['../a00281.html#ga9c3019b13faf179e4ad3626ea66df334',1,'glm']]], 6 | ['vec4',['vec4',['../a00281.html#gac215a35481a6597d1bf622a382e9d6e2',1,'glm']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/api/search/typedefs_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['word',['word',['../a00354.html#ga16e9fea0ef1e6c4ef472d3d1731c49a5',1,'glm']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual.pdf -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin1.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin2.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-perlin3.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex1.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex2.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/noise-simplex3.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-glsl4book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-glsl4book.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-leosfortune.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-leosfortune.jpeg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-leosfortune2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-leosfortune2.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra1.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra2.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra3.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/doc/manual/references-outerra4.jpg -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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(cos(AngleRad * static_cast(0.5)), Tmp.x * Sin, Tmp.y * Sin, Tmp.z * Sin); 22 | } 23 | }//namespace glm 24 | 25 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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, "'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, "'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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/ext/scalar_packing.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/ext/scalar_packing.inl -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/ext/vector_packing.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/ext/vector_packing.inl -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtc/matrix_transform.inl: -------------------------------------------------------------------------------- 1 | #include "../geometric.hpp" 2 | #include "../trigonometric.hpp" 3 | #include "../matrix.hpp" 4 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtc/quaternion_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtc/quaternion_simd.inl -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 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, "'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 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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/matrix_factorisation.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/matrix_factorisation.inl -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | 3 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/glm/gtx/wrap.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_wrap 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/bug/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(bug_ms_vec_static) 2 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/bug/bug_ms_vec_static.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE 4 | struct vec2; 5 | 6 | struct _swizzle 7 | { 8 | char _buffer[1]; 9 | }; 10 | 11 | struct vec2 12 | { 13 | GLM_CONSTEXPR vec2() : 14 | x(0), y(0) 15 | {} 16 | 17 | union 18 | { 19 | struct { float x, y; }; 20 | struct { _swizzle xx; }; 21 | }; 22 | }; 23 | #endif 24 | 25 | // Visual C++ has a bug generating the error: fatal error C1001: An internal error has occurred in the compiler. 26 | // vec2 Bar; 27 | 28 | int main() 29 | { 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/cmake/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.2 FATAL_ERROR) 2 | project(test_find_glm) 3 | 4 | find_package(glm REQUIRED) 5 | 6 | add_executable(test_find_glm test_find_glm.cpp) 7 | target_link_libraries(test_find_glm glm::glm) 8 | 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_compiler_unknown.cpp: -------------------------------------------------------------------------------- 1 | #ifndef GLM_FORCE_COMPILER_UNKNOWN 2 | # define GLM_FORCE_COMPILER_UNKNOWN 3 | #endif 4 | 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | int Error = 0; 11 | 12 | return Error; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/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 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_cxx_unknown.cpp: -------------------------------------------------------------------------------- 1 | #ifndef GLM_FORCE_CXX_UNKNOWN 2 | # define GLM_FORCE_CXX_UNKNOWN 3 | #endif 4 | 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | int Error = 0; 11 | 12 | return Error; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_depth_zero_to_one.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_DEPTH_ZERO_TO_ONE 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_explicit_ctor.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_EXPLICIT_CTOR 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | glm::ivec4 B(1); 11 | Error += B == glm::ivec4(1) ? 0 : 1; 12 | 13 | //glm::vec4 A = B; 14 | 15 | return Error; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_inline.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_INLINE 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_left_handed.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_LEFT_HANDED 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_platform_unknown.cpp: -------------------------------------------------------------------------------- 1 | #ifndef GLM_FORCE_PLATFORM_UNKNOWN 2 | # define GLM_FORCE_PLATFORM_UNKNOWN 3 | #endif 4 | 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | int Error = 0; 11 | 12 | return Error; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_quat_xyzw.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_QUAT_DATA_XYZW 2 | #define GLM_FORCE_INLINE 3 | 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | int Error = 0; 10 | 11 | return Error; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_size_t_length.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_SIZE_T_LENGTH 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_force_unrestricted_gentype.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_UNRESTRICTED_GENTYPE 2 | 3 | #include 4 | #include 5 | 6 | int main() 7 | { 8 | int Error = 0; 9 | 10 | return Error; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_func_noise.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | { 3 | int Error = 0; 4 | 5 | return Error; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_func_trigonometric.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | 8 | return Error; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_setup_force_cxx98.cpp: -------------------------------------------------------------------------------- 1 | #ifndef GLM_FORCE_CXX98 2 | # define GLM_FORCE_CXX98 3 | #endif 4 | #include 5 | #include 6 | 7 | int main() 8 | { 9 | int Error = 0; 10 | 11 | return Error; 12 | } 13 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_setup_force_size_t_length.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_FORCE_SIZE_T_LENGTH 2 | #include 3 | #include 4 | 5 | template 6 | genType add(genType const& a, genType const& b) 7 | { 8 | genType result(0); 9 | for(glm::length_t i = 0; i < a.length(); ++i) 10 | result[i] = a[i] + b[i]; 11 | return result; 12 | } 13 | 14 | int main() 15 | { 16 | int Error = 0; 17 | 18 | glm::ivec4 v(1); 19 | Error += add(v, v) == glm::ivec4(2) ? 0 : 1; 20 | 21 | return Error; 22 | } 23 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_setup_platform_unknown.cpp: -------------------------------------------------------------------------------- 1 | #ifndef GLM_FORCE_PLATFORM_UNKNOWN 2 | # define GLM_FORCE_PLATFORM_UNKNOWN 3 | #endif 4 | #ifndef GLM_FORCE_COMPILER_UNKNOWN 5 | # define GLM_FORCE_COMPILER_UNKNOWN 6 | #endif 7 | #ifndef GLM_FORCE_ARCH_UNKNOWN 8 | # define GLM_FORCE_ARCH_UNKNOWN 9 | #endif 10 | #ifndef GLM_FORCE_CXX_UNKNOWN 11 | # define GLM_FORCE_CXX_UNKNOWN 12 | #endif 13 | #include 14 | #include 15 | 16 | int main() 17 | { 18 | int Error = 0; 19 | 20 | return Error; 21 | } 22 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/core/core_type_int.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | static int test_bit_operator() 5 | { 6 | int Error = 0; 7 | 8 | glm::ivec4 const a(1); 9 | glm::ivec4 const b = ~a; 10 | Error += glm::all(glm::equal(b, glm::ivec4(-2))) ? 0 : 1; 11 | 12 | glm::int32 const c(1); 13 | glm::int32 const d = ~c; 14 | Error += d == -2 ? 0 : 1; 15 | 16 | return Error; 17 | } 18 | 19 | int main() 20 | { 21 | int Error = 0; 22 | 23 | Error += test_bit_operator(); 24 | 25 | return Error; 26 | } 27 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_clip_space.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | int Error = 0; 11 | 12 | return Error; 13 | } 14 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int2x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat2x2) == 4, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat2x2) == 8, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat2x2) == 16, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat2x2) == 32, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat2x2) < sizeof(glm::i16mat2x2) ? 0 : 1; 15 | Error += sizeof(glm::i16mat2x2) < sizeof(glm::i32mat2x2) ? 0 : 1; 16 | Error += sizeof(glm::i32mat2x2) < sizeof(glm::i64mat2x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int2x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat2x3) == 6, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat2x3) == 12, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat2x3) == 24, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat2x3) == 48, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat2x3) < sizeof(glm::i16mat2x3) ? 0 : 1; 15 | Error += sizeof(glm::i16mat2x3) < sizeof(glm::i32mat2x3) ? 0 : 1; 16 | Error += sizeof(glm::i32mat2x3) < sizeof(glm::i64mat2x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int2x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat2x4) == 8, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat2x4) == 16, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat2x4) == 32, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat2x4) == 64, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat2x4) < sizeof(glm::i16mat2x4) ? 0 : 1; 15 | Error += sizeof(glm::i16mat2x4) < sizeof(glm::i32mat2x4) ? 0 : 1; 16 | Error += sizeof(glm::i32mat2x4) < sizeof(glm::i64mat2x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int3x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat3x2) == 6, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat3x2) == 12, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat3x2) == 24, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat3x2) == 48, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat3x2) < sizeof(glm::i16mat3x2) ? 0 : 1; 15 | Error += sizeof(glm::i16mat3x2) < sizeof(glm::i32mat3x2) ? 0 : 1; 16 | Error += sizeof(glm::i32mat3x2) < sizeof(glm::i64mat3x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int3x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat3x3) == 9, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat3x3) == 18, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat3x3) == 36, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat3x3) == 72, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat3x3) < sizeof(glm::i16mat3x3) ? 0 : 1; 15 | Error += sizeof(glm::i16mat3x3) < sizeof(glm::i32mat3x3) ? 0 : 1; 16 | Error += sizeof(glm::i32mat3x3) < sizeof(glm::i64mat3x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int3x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat3x4) == 12, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat3x4) == 24, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat3x4) == 48, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat3x4) == 96, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat3x4) < sizeof(glm::i16mat3x4) ? 0 : 1; 15 | Error += sizeof(glm::i16mat3x4) < sizeof(glm::i32mat3x4) ? 0 : 1; 16 | Error += sizeof(glm::i32mat3x4) < sizeof(glm::i64mat3x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int4x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat4x2) == 8, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat4x2) == 16, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat4x2) == 32, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat4x2) == 64, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat4x2) < sizeof(glm::i16mat4x2) ? 0 : 1; 15 | Error += sizeof(glm::i16mat4x2) < sizeof(glm::i32mat4x2) ? 0 : 1; 16 | Error += sizeof(glm::i32mat4x2) < sizeof(glm::i64mat4x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int4x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat4x3) == 12, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat4x3) == 24, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat4x3) == 48, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat4x3) == 96, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat4x3) < sizeof(glm::i16mat4x3) ? 0 : 1; 15 | Error += sizeof(glm::i16mat4x3) < sizeof(glm::i32mat4x3) ? 0 : 1; 16 | Error += sizeof(glm::i32mat4x3) < sizeof(glm::i64mat4x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_int4x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::i8mat4x4) == 16, "int8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::i16mat4x4) == 32, "int16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::i32mat4x4) == 64, "int32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::i64mat4x4) == 128, "int64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::i8mat4x4) < sizeof(glm::i16mat4x4) ? 0 : 1; 15 | Error += sizeof(glm::i16mat4x4) < sizeof(glm::i32mat4x4) ? 0 : 1; 16 | Error += sizeof(glm::i32mat4x4) < sizeof(glm::i64mat4x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_projection.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | int Error = 0; 11 | 12 | return Error; 13 | } 14 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint2x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat2x2) == 4, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat2x2) == 8, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat2x2) == 16, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat2x2) == 32, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat2x2) < sizeof(glm::u16mat2x2) ? 0 : 1; 15 | Error += sizeof(glm::u16mat2x2) < sizeof(glm::u32mat2x2) ? 0 : 1; 16 | Error += sizeof(glm::u32mat2x2) < sizeof(glm::u64mat2x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint2x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat2x3) == 6, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat2x3) == 12, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat2x3) == 24, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat2x3) == 48, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat2x3) < sizeof(glm::u16mat2x3) ? 0 : 1; 15 | Error += sizeof(glm::u16mat2x3) < sizeof(glm::u32mat2x3) ? 0 : 1; 16 | Error += sizeof(glm::u32mat2x3) < sizeof(glm::u64mat2x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint2x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat2x4) == 8, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat2x4) == 16, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat2x4) == 32, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat2x4) == 64, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat2x4) < sizeof(glm::u16mat2x4) ? 0 : 1; 15 | Error += sizeof(glm::u16mat2x4) < sizeof(glm::u32mat2x4) ? 0 : 1; 16 | Error += sizeof(glm::u32mat2x4) < sizeof(glm::u64mat2x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint3x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat3x2) == 6, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat3x2) == 12, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat3x2) == 24, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat3x2) == 48, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat3x2) < sizeof(glm::u16mat3x2) ? 0 : 1; 15 | Error += sizeof(glm::u16mat3x2) < sizeof(glm::u32mat3x2) ? 0 : 1; 16 | Error += sizeof(glm::u32mat3x2) < sizeof(glm::u64mat3x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint3x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat3x3) == 9, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat3x3) == 18, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat3x3) == 36, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat3x3) == 72, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat3x3) < sizeof(glm::u16mat3x3) ? 0 : 1; 15 | Error += sizeof(glm::u16mat3x3) < sizeof(glm::u32mat3x3) ? 0 : 1; 16 | Error += sizeof(glm::u32mat3x3) < sizeof(glm::u64mat3x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint3x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat3x4) == 12, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat3x4) == 24, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat3x4) == 48, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat3x4) == 96, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat3x4) < sizeof(glm::u16mat3x4) ? 0 : 1; 15 | Error += sizeof(glm::u16mat3x4) < sizeof(glm::u32mat3x4) ? 0 : 1; 16 | Error += sizeof(glm::u32mat3x4) < sizeof(glm::u64mat3x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint4x2_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat4x2) == 8, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat4x2) == 16, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat4x2) == 32, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat4x2) == 64, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat4x2) < sizeof(glm::u16mat4x2) ? 0 : 1; 15 | Error += sizeof(glm::u16mat4x2) < sizeof(glm::u32mat4x2) ? 0 : 1; 16 | Error += sizeof(glm::u32mat4x2) < sizeof(glm::u64mat4x2) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint4x3_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat4x3) == 12, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat4x3) == 24, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat4x3) == 48, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat4x3) == 96, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat4x3) < sizeof(glm::u16mat4x3) ? 0 : 1; 15 | Error += sizeof(glm::u16mat4x3) < sizeof(glm::u32mat4x3) ? 0 : 1; 16 | Error += sizeof(glm::u32mat4x3) < sizeof(glm::u64mat4x3) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_matrix_uint4x4_sized.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if GLM_HAS_STATIC_ASSERT 4 | static_assert(sizeof(glm::u8mat4x4) == 16, "uint8 size isn't 1 byte on this platform"); 5 | static_assert(sizeof(glm::u16mat4x4) == 32, "uint16 size isn't 2 bytes on this platform"); 6 | static_assert(sizeof(glm::u32mat4x4) == 64, "uint32 size isn't 4 bytes on this platform"); 7 | static_assert(sizeof(glm::u64mat4x4) == 128, "uint64 size isn't 8 bytes on this platform"); 8 | #endif 9 | 10 | static int test_comp() 11 | { 12 | int Error = 0; 13 | 14 | Error += sizeof(glm::u8mat4x4) < sizeof(glm::u16mat4x4) ? 0 : 1; 15 | Error += sizeof(glm::u16mat4x4) < sizeof(glm::u32mat4x4) ? 0 : 1; 16 | Error += sizeof(glm::u32mat4x4) < sizeof(glm::u64mat4x4) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | 21 | int main() 22 | { 23 | int Error = 0; 24 | 25 | Error += test_comp(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_scalar_constants.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | template 4 | static int test_epsilon() 5 | { 6 | int Error = 0; 7 | 8 | valType const Test = glm::epsilon(); 9 | Error += Test > static_cast(0) ? 0 : 1; 10 | 11 | return Error; 12 | } 13 | 14 | template 15 | static int test_pi() 16 | { 17 | int Error = 0; 18 | 19 | valType const Test = glm::pi(); 20 | Error += Test > static_cast(3.14) ? 0 : 1; 21 | Error += Test < static_cast(3.15) ? 0 : 1; 22 | 23 | return Error; 24 | } 25 | 26 | int main() 27 | { 28 | int Error = 0; 29 | 30 | Error += test_epsilon(); 31 | Error += test_epsilon(); 32 | Error += test_pi(); 33 | Error += test_pi(); 34 | 35 | return Error; 36 | } 37 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/ext/ext_scalar_packing.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int test_packUnorm() 5 | { 6 | int Error = 0; 7 | 8 | 9 | return Error; 10 | } 11 | 12 | int test_packSnorm() 13 | { 14 | int Error = 0; 15 | 16 | 17 | return Error; 18 | } 19 | 20 | int main() 21 | { 22 | int Error = 0; 23 | 24 | Error += test_packUnorm(); 25 | Error += test_packSnorm(); 26 | 27 | return Error; 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/glm.cppcheck: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(gtc_bitfield) 2 | glmCreateTestGTC(gtc_color_space) 3 | glmCreateTestGTC(gtc_constants) 4 | glmCreateTestGTC(gtc_epsilon) 5 | glmCreateTestGTC(gtc_integer) 6 | glmCreateTestGTC(gtc_matrix_access) 7 | glmCreateTestGTC(gtc_matrix_integer) 8 | glmCreateTestGTC(gtc_matrix_inverse) 9 | glmCreateTestGTC(gtc_matrix_transform) 10 | glmCreateTestGTC(gtc_noise) 11 | glmCreateTestGTC(gtc_packing) 12 | glmCreateTestGTC(gtc_quaternion) 13 | glmCreateTestGTC(gtc_random) 14 | glmCreateTestGTC(gtc_round) 15 | glmCreateTestGTC(gtc_reciprocal) 16 | glmCreateTestGTC(gtc_type_aligned) 17 | glmCreateTestGTC(gtc_type_precision) 18 | glmCreateTestGTC(gtc_type_ptr) 19 | glmCreateTestGTC(gtc_ulp) 20 | glmCreateTestGTC(gtc_vec1) 21 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_constants.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int test_epsilon() 4 | { 5 | int Error = 0; 6 | 7 | { 8 | float Test = glm::epsilon(); 9 | Error += Test > 0.0f ? 0 : 1; 10 | } 11 | 12 | { 13 | double Test = glm::epsilon(); 14 | Error += Test > 0.0 ? 0 : 1; 15 | } 16 | 17 | return Error; 18 | } 19 | 20 | int main() 21 | { 22 | int Error(0); 23 | 24 | //float MinHalf = 0.0f; 25 | //while (glm::half(MinHalf) == glm::half(0.0f)) 26 | // MinHalf += std::numeric_limits::epsilon(); 27 | Error += test_epsilon(); 28 | 29 | return Error; 30 | } 31 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_matrix_integer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_quaternion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_quaternion.cpp -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_reciprocal.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() 5 | { 6 | return 0; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_user_defined_types.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2011-05-27 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/type_ptr.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #define GLM_FORCE_RADIANS 11 | #include 12 | 13 | int test_make_pointer_vec() 14 | { 15 | int Error = 0; 16 | 17 | glm::func(); 18 | //func(); 19 | 20 | return Error; 21 | } 22 | 23 | int main() 24 | { 25 | int Error = 0; 26 | 27 | Error += test_make_pointer_vec(); 28 | 29 | return Error; 30 | } 31 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtc/gtc_vec1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() 4 | { 5 | int Error = 0; 6 | 7 | return Error; 8 | } 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_associated_min_max.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | int Error(0); 8 | 9 | return Error; 10 | } 11 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_closest_point.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_color_space.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int test_saturation() 5 | { 6 | int Error(0); 7 | 8 | glm::vec4 Color = glm::saturation(1.0f, glm::vec4(1.0, 0.5, 0.0, 1.0)); 9 | 10 | return Error; 11 | } 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | Error += test_saturation(); 18 | 19 | return Error; 20 | } 21 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_color_space_YCoCg.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_compatibility.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | Error += glm::isfinite(1.0f) ? 0 : 1; 9 | Error += glm::isfinite(1.0) ? 0 : 1; 10 | Error += glm::isfinite(-1.0f) ? 0 : 1; 11 | Error += glm::isfinite(-1.0) ? 0 : 1; 12 | 13 | Error += glm::all(glm::isfinite(glm::vec4(1.0f))) ? 0 : 1; 14 | Error += glm::all(glm::isfinite(glm::dvec4(1.0))) ? 0 : 1; 15 | Error += glm::all(glm::isfinite(glm::vec4(-1.0f))) ? 0 : 1; 16 | Error += glm::all(glm::isfinite(glm::dvec4(-1.0))) ? 0 : 1; 17 | 18 | return Error; 19 | } 20 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_extend.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_exterior_product.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | int Error = 0; 8 | 9 | float const f = glm::cross(glm::vec2(1.0f, 1.0f), glm::vec2(1.0f, 1.0f)); 10 | Error += glm::epsilonEqual(f, 0.0f, 0.001f) ? 0 : 1; 11 | 12 | return Error; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_fast_exponential.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_functions.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int test_gauss_1d() 6 | { 7 | int Error = 0; 8 | 9 | std::vector Result(20); 10 | for(std::size_t i = 0, n = Result.size(); i < n; ++i) 11 | Result[i] = glm::gauss(static_cast(i) * 0.1f, 0.0f, 1.0f); 12 | 13 | return Error; 14 | } 15 | 16 | int test_gauss_2d() 17 | { 18 | int Error = 0; 19 | 20 | std::vector Result(20); 21 | for(std::size_t i = 0, n = Result.size(); i < n; ++i) 22 | Result[i] = glm::gauss(glm::vec2(static_cast(i)) * 0.1f, glm::vec2(0.0f), glm::vec2(1.0f)); 23 | 24 | return Error; 25 | } 26 | 27 | int main() 28 | { 29 | int Error = 0; 30 | 31 | Error += test_gauss_1d(); 32 | Error += test_gauss_2d(); 33 | 34 | return Error; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_gradient_paint.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int test_radialGradient() 5 | { 6 | int Error = 0; 7 | 8 | float Gradient = glm::radialGradient(glm::vec2(0), 1.0f, glm::vec2(1), glm::vec2(0.5)); 9 | Error += Gradient != 0.0f ? 0 : 1; 10 | 11 | return Error; 12 | } 13 | 14 | int test_linearGradient() 15 | { 16 | int Error = 0; 17 | 18 | float Gradient = glm::linearGradient(glm::vec2(0), glm::vec2(1), glm::vec2(0.5)); 19 | Error += Gradient != 0.0f ? 0 : 1; 20 | 21 | return Error; 22 | } 23 | 24 | int main() 25 | { 26 | int Error = 0; 27 | 28 | Error += test_radialGradient(); 29 | Error += test_linearGradient(); 30 | 31 | return Error; 32 | } 33 | 34 | 35 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_handed_coordinate_space.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_int_10_10_10_2.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2013-10-25 5 | // Updated : 2013-10-25 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/associated_min_max.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_matrix_cross_product.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_matrix_decompose.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | glm::mat4 Matrix(1); 9 | 10 | glm::vec3 Scale; 11 | glm::quat Orientation; 12 | glm::vec3 Translation; 13 | glm::vec3 Skew(1); 14 | glm::vec4 Perspective(1); 15 | 16 | glm::decompose(Matrix, Scale, Orientation, Translation, Skew, Perspective); 17 | 18 | return Error; 19 | } 20 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_matrix_major_storage.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_matrix_transform_2d.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_mixed_product.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2013-10-25 5 | // Updated : 2013-10-25 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/associated_min_max.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_normal.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_normalize_dot.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_number_precision.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_optimum_pow.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_orthonormalize.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_perpendicular.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_polar_coordinates.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_projection.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_rotate_normalized_axis.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error(0); 7 | 8 | return Error; 9 | } 10 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_texture.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | #include 4 | 5 | int test_levels() 6 | { 7 | int Error = 0; 8 | 9 | int const Levels = glm::levels(glm::ivec2(3, 2)); 10 | Error += Levels == 2 ? 0 : 1; 11 | 12 | return Error; 13 | } 14 | 15 | int main() 16 | { 17 | int Error = 0; 18 | 19 | Error += test_levels(); 20 | 21 | return Error; 22 | } 23 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_type_trait.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | int Error = 0; 8 | 9 | 10 | 11 | return Error; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/gtx/gtx_vec_swizzle.cpp: -------------------------------------------------------------------------------- 1 | #define GLM_ENABLE_EXPERIMENTAL 2 | #include 3 | 4 | int main() 5 | { 6 | int Error = 0; 7 | 8 | 9 | return Error; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/test/perf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(perf_matrix_div) 2 | glmCreateTestGTC(perf_matrix_inverse) 3 | glmCreateTestGTC(perf_matrix_mul) 4 | glmCreateTestGTC(perf_matrix_mul_vector) 5 | glmCreateTestGTC(perf_matrix_transpose) 6 | glmCreateTestGTC(perf_vector_mul_matrix) 7 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/diff-surfel-rasterization/third_party/glm/util/autoexp.txt: -------------------------------------------------------------------------------- 1 | [Visualizer] 2 | 3 | glm::detail::tvec2<*>{ 4 | preview ( 5 | #(#($c.x,$c.y)) 6 | ) 7 | children ( 8 | #([x]: $c.x,[y]: $c.y) 9 | ) 10 | } 11 | 12 | glm::detail::tvec3<*>{ 13 | preview ( 14 | #($e.x,$e.y,$e.z) 15 | ) 16 | children ( 17 | #([x]: $e.x,[y]: $e.y,[z]: $e.z) 18 | ) 19 | } 20 | 21 | glm::detail::tvec4<*>{ 22 | preview ( 23 | #($c.x,$c.y,$c.z,$c.w) 24 | ) 25 | children ( 26 | #([x]: $e.x,[y]: $e.y,[z]: $e.z, #([w]: $e.w)) 27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/ext.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #include 13 | #include "spatial.h" 14 | 15 | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { 16 | m.def("distCUDA2", &distCUDA2); 17 | } 18 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/setup.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2023, Inria 3 | # GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | # All rights reserved. 5 | # 6 | # This software is free for non-commercial, research and evaluation use 7 | # under the terms of the LICENSE.md file. 8 | # 9 | # For inquiries contact george.drettakis@inria.fr 10 | # 11 | 12 | from setuptools import setup 13 | from torch.utils.cpp_extension import CUDAExtension, BuildExtension 14 | import os 15 | 16 | cxx_compiler_flags = [] 17 | 18 | if os.name == 'nt': 19 | cxx_compiler_flags.append("/wd4624") 20 | 21 | setup( 22 | name="simple_knn", 23 | ext_modules=[ 24 | CUDAExtension( 25 | name="simple_knn._C", 26 | sources=[ 27 | "spatial.cu", 28 | "simple_knn.cu", 29 | "ext.cpp"], 30 | extra_compile_args={"nvcc": [], "cxx": cxx_compiler_flags}) 31 | ], 32 | cmdclass={ 33 | 'build_ext': BuildExtension 34 | } 35 | ) 36 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/simple_knn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #ifndef SIMPLEKNN_H_INCLUDED 13 | #define SIMPLEKNN_H_INCLUDED 14 | 15 | class SimpleKNN 16 | { 17 | public: 18 | static void knn(int P, float3* points, float* meanDists); 19 | }; 20 | 21 | #endif -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/simple_knn/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/simple-knn/simple_knn/.gitkeep -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/spatial.cu: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #include "spatial.h" 13 | #include "simple_knn.h" 14 | 15 | torch::Tensor 16 | distCUDA2(const torch::Tensor& points) 17 | { 18 | const int P = points.size(0); 19 | 20 | auto float_opts = points.options().dtype(torch::kFloat32); 21 | torch::Tensor means = torch::full({P}, 0.0, float_opts); 22 | 23 | SimpleKNN::knn(P, (float3*)points.contiguous().data(), means.contiguous().data()); 24 | 25 | return means; 26 | } -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/simple-knn/spatial.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023, Inria 3 | * GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | * All rights reserved. 5 | * 6 | * This software is free for non-commercial, research and evaluation use 7 | * under the terms of the LICENSE.md file. 8 | * 9 | * For inquiries contact george.drettakis@inria.fr 10 | */ 11 | 12 | #include 13 | 14 | torch::Tensor distCUDA2(const torch::Tensor& points); -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | exclude: '^$' 2 | repos: 3 | - repo: local 4 | hooks: 5 | - id: isort 6 | entry: isort --profile black 7 | name: isort (python) 8 | language: system 9 | types: [python] 10 | - id: black 11 | entry: black --line-length 120 12 | name: black 13 | language: system 14 | types: [python] -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/MANIFEST.in: -------------------------------------------------------------------------------- 1 | global-include *.pyi 2 | global-include *.typed -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | addopts = --ignore=build --ignore=_deps 3 | pythonpath = . -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/src/triangulation.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "utils/exception.h" 4 | 5 | std::vector triangulate(size_t num_points, float3 *points); -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tests/test_triangulation.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | import numpy as np 5 | import torch 6 | import trimesh 7 | 8 | 9 | def test_triangulation(tmp_path): 10 | from tetranerf import cpp 11 | 12 | data = Path(__file__).absolute().parent / "assets" / "bottle.ply" 13 | mesh = trimesh.load(str(data)) 14 | cells = cpp.triangulate(torch.from_numpy(mesh.vertices).float()) 15 | assert len(cells.shape) == 2 16 | assert cells.shape[-1] == 4 17 | assert cells.max() == len(mesh.vertices) - 1 18 | assert len(cells) > 2500 19 | faces = torch.cat( 20 | ( 21 | cells[:, 1:], 22 | torch.roll(cells, -1, -1)[:, 1:], 23 | torch.roll(cells, -2, -1)[:, 1:], 24 | torch.roll(cells, -3, -1)[:, 1:], 25 | ) 26 | ) 27 | trimesh.Trimesh(mesh.vertices, faces.numpy()).export(str(tmp_path / "tetrahedra.ply")) 28 | np.savez(str(tmp_path / "tetrahedra.npz"), cells=cells.numpy(), vertices=mesh.vertices) 29 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/__init__.py -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/__init__.py -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/extension/__init__.py: -------------------------------------------------------------------------------- 1 | from . import tetranerf_cpp_extension as cpp 2 | triangulate = cpp.triangulate -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/extension/__init__.pyi: -------------------------------------------------------------------------------- 1 | from typing import Any 2 | from torch import Tensor 3 | 4 | 5 | cpp = Any 6 | 7 | def triangulate(points: Tensor, /) -> Tensor: 8 | ... 9 | -------------------------------------------------------------------------------- /2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/extension/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/2d-gaussian-splatting/submodules/tetra-triangulation/tetranerf/utils/extension/py.typed -------------------------------------------------------------------------------- /2d-gaussian-splatting/utils/system_utils.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2023, Inria 3 | # GRAPHDECO research group, https://team.inria.fr/graphdeco 4 | # All rights reserved. 5 | # 6 | # This software is free for non-commercial, research and evaluation use 7 | # under the terms of the LICENSE.md file. 8 | # 9 | # For inquiries contact george.drettakis@inria.fr 10 | # 11 | 12 | from errno import EEXIST 13 | from os import makedirs, path 14 | import os 15 | 16 | def mkdir_p(folder_path): 17 | # Creates a directory. equivalent to using mkdir -p on the command line 18 | try: 19 | makedirs(folder_path) 20 | except OSError as exc: # Python >2.5 21 | if exc.errno == EEXIST and path.isdir(folder_path): 22 | pass 23 | else: 24 | raise 25 | 26 | def searchForMaxIteration(folder): 27 | saved_iters = [int(fname.split("_")[-1]) for fname in os.listdir(folder)] 28 | return max(saved_iters) 29 | -------------------------------------------------------------------------------- /Depth-Anything-V2/depth_anything_v2/dinov2_layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | # 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .mlp import Mlp 8 | from .patch_embed import PatchEmbed 9 | from .swiglu_ffn import SwiGLUFFN, SwiGLUFFNFused 10 | from .block import NestedTensorBlock 11 | from .attention import MemEffAttention 12 | -------------------------------------------------------------------------------- /Depth-Anything-V2/depth_anything_v2/dinov2_layers/layer_scale.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | # 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | # Modified from: https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/vision_transformer.py#L103-L110 8 | 9 | from typing import Union 10 | 11 | import torch 12 | from torch import Tensor 13 | from torch import nn 14 | 15 | 16 | class LayerScale(nn.Module): 17 | def __init__( 18 | self, 19 | dim: int, 20 | init_values: Union[float, Tensor] = 1e-5, 21 | inplace: bool = False, 22 | ) -> None: 23 | super().__init__() 24 | self.inplace = inplace 25 | self.gamma = nn.Parameter(init_values * torch.ones(dim)) 26 | 27 | def forward(self, x: Tensor) -> Tensor: 28 | return x.mul_(self.gamma) if self.inplace else x * self.gamma 29 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/depth_anything_v2/dinov2_layers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | # 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | from .mlp import Mlp 8 | from .patch_embed import PatchEmbed 9 | from .swiglu_ffn import SwiGLUFFN, SwiGLUFFNFused 10 | from .block import NestedTensorBlock 11 | from .attention import MemEffAttention 12 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/depth_anything_v2/dinov2_layers/layer_scale.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. 2 | # All rights reserved. 3 | # 4 | # This source code is licensed under the license found in the 5 | # LICENSE file in the root directory of this source tree. 6 | 7 | # Modified from: https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/vision_transformer.py#L103-L110 8 | 9 | from typing import Union 10 | 11 | import torch 12 | from torch import Tensor 13 | from torch import nn 14 | 15 | 16 | class LayerScale(nn.Module): 17 | def __init__( 18 | self, 19 | dim: int, 20 | init_values: Union[float, Tensor] = 1e-5, 21 | inplace: bool = False, 22 | ) -> None: 23 | super().__init__() 24 | self.inplace = inplace 25 | self.gamma = nn.Parameter(init_values * torch.ones(dim)) 26 | 27 | def forward(self, x: Tensor) -> Tensor: 28 | return x.mul_(self.gamma) if self.inplace else x * self.gamma 29 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/dist_train.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | now=$(date +"%Y%m%d_%H%M%S") 3 | 4 | epoch=120 5 | bs=4 6 | gpus=8 7 | lr=0.000005 8 | encoder=vitl 9 | dataset=hypersim # vkitti 10 | img_size=518 11 | min_depth=0.001 12 | max_depth=20 # 80 for virtual kitti 13 | pretrained_from=../checkpoints/depth_anything_v2_${encoder}.pth 14 | save_path=exp/hypersim # exp/vkitti 15 | 16 | mkdir -p $save_path 17 | 18 | python3 -m torch.distributed.launch \ 19 | --nproc_per_node=$gpus \ 20 | --nnodes 1 \ 21 | --node_rank=0 \ 22 | --master_addr=localhost \ 23 | --master_port=20596 \ 24 | train.py --epoch $epoch --encoder $encoder --bs $bs --lr $lr --save-path $save_path --dataset $dataset \ 25 | --img-size $img_size --min-depth $min_depth --max-depth $max_depth --pretrained-from $pretrained_from \ 26 | --port 20596 2>&1 | tee -a $save_path/$now.log 27 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/requirements.txt: -------------------------------------------------------------------------------- 1 | matplotlib 2 | opencv-python 3 | open3d 4 | torch 5 | torchvision 6 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/util/loss.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | 4 | 5 | class SiLogLoss(nn.Module): 6 | def __init__(self, lambd=0.5): 7 | super().__init__() 8 | self.lambd = lambd 9 | 10 | def forward(self, pred, target, valid_mask): 11 | valid_mask = valid_mask.detach() 12 | diff_log = torch.log(target[valid_mask]) - torch.log(pred[valid_mask]) 13 | loss = torch.sqrt(torch.pow(diff_log, 2).mean() - 14 | self.lambd * torch.pow(diff_log.mean(), 2)) 15 | 16 | return loss 17 | -------------------------------------------------------------------------------- /Depth-Anything-V2/metric_depth/util/utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import numpy as np 4 | import logging 5 | 6 | logs = set() 7 | 8 | 9 | def init_log(name, level=logging.INFO): 10 | if (name, level) in logs: 11 | return 12 | logs.add((name, level)) 13 | logger = logging.getLogger(name) 14 | logger.setLevel(level) 15 | ch = logging.StreamHandler() 16 | ch.setLevel(level) 17 | if "SLURM_PROCID" in os.environ: 18 | rank = int(os.environ["SLURM_PROCID"]) 19 | logger.addFilter(lambda record: rank == 0) 20 | else: 21 | rank = 0 22 | format_str = "[%(asctime)s][%(levelname)8s] %(message)s" 23 | formatter = logging.Formatter(format_str) 24 | ch.setFormatter(formatter) 25 | logger.addHandler(ch) 26 | return logger 27 | -------------------------------------------------------------------------------- /Depth-Anything-V2/requirements.txt: -------------------------------------------------------------------------------- 1 | gradio_imageslider 2 | gradio==4.29.0 3 | matplotlib 4 | opencv-python 5 | torch 6 | torchvision 7 | -------------------------------------------------------------------------------- /configs/adaptive_tetrahedralization/default.yaml: -------------------------------------------------------------------------------- 1 | gaussian_flatness: 0.0002 2 | depth_ratio: 1.0 3 | filter_mesh: true 4 | 5 | interpolate_depth: true 6 | interpolation_mode: bilinear 7 | weight_interpolation_by_depth_gradient: false 8 | truncation_margin: 0.005 9 | 10 | use_dilated_depth: false 11 | use_sdf_tolerance: false 12 | use_unbiased_tsdf: false 13 | use_binary_opacity: false 14 | 15 | filter_with_depth_gradient: false 16 | filter_with_normal_consistency: false 17 | 18 | weight_by_softmax: false 19 | weight_by_normal_consistency: false 20 | softmax_temperature: 1.0 21 | 22 | n_neighbors_to_interpolate: 2 23 | n_interpolated_cameras_for_each_neighbor: 10 -------------------------------------------------------------------------------- /configs/free_gaussians_refinement/default.yaml: -------------------------------------------------------------------------------- 1 | type: '2dgs' 2 | iterations: 7000 3 | densify_until_iter: 3500 4 | opacity_reset_interval: 1000 5 | depth_ratio: 0.5 6 | normal_consistency_from: 3500 7 | distortion_from: 1500 8 | use_mip_filter: true -------------------------------------------------------------------------------- /configs/free_gaussians_refinement/long.yaml: -------------------------------------------------------------------------------- 1 | type: '2dgs' 2 | iterations: 30000 3 | densify_until_iter: 15000 4 | opacity_reset_interval: 3000 5 | depth_ratio: 0.5 6 | normal_consistency_from: 7000 7 | distortion_from: 3000 8 | use_mip_filter: true -------------------------------------------------------------------------------- /configs/mast3r/posed.yaml: -------------------------------------------------------------------------------- 1 | # Model weights 2 | weights_path: './mast3r/checkpoints/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth' 3 | retrieval_model: './mast3r/checkpoints/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric_retrieval_trainingfree.pth' 4 | 5 | # Input data 6 | image_size: 512 7 | 8 | # Parameters for posed datasets 9 | use_calibrated_poses: True 10 | align_camera_locations: True 11 | 12 | # Optimization 13 | n_coarse_iterations: 1000 14 | n_refinement_iterations: 1000 15 | max_window_size: 20 16 | max_refid: 10 17 | min_conf_thr: 0. 18 | matching_conf_thr: 0. 19 | fix_focal: True 20 | fix_principal_point: True 21 | fix_rotation: True 22 | fix_translation: True 23 | 24 | # Postprocessing 25 | TSDF_thresh: 0.0 26 | output_conf_thr: 0.1 27 | 28 | # Output 29 | save_glb: False 30 | -------------------------------------------------------------------------------- /configs/mast3r/unposed.yaml: -------------------------------------------------------------------------------- 1 | # Model weights 2 | weights_path: './mast3r/checkpoints/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth' 3 | retrieval_model: './mast3r/checkpoints/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric_retrieval_trainingfree.pth' 4 | 5 | # Input data 6 | image_size: 512 7 | 8 | # Parameters for posed datasets 9 | use_calibrated_poses: False 10 | align_camera_locations: False 11 | 12 | # Optimization 13 | n_coarse_iterations: 1000 14 | n_refinement_iterations: 1000 15 | max_window_size: 20 16 | max_refid: 10 17 | min_conf_thr: 0. 18 | matching_conf_thr: 0. 19 | fix_focal: False 20 | fix_principal_point: True 21 | fix_rotation: False 22 | fix_translation: False 23 | 24 | # Postprocessing 25 | TSDF_thresh: 0.0 26 | output_conf_thr: 0.1 27 | 28 | # Output 29 | save_glb: False 30 | -------------------------------------------------------------------------------- /configs/multiresolution_tsdf/default.yaml: -------------------------------------------------------------------------------- 1 | depth_ratio: 1.0 2 | num_cluster: 50 3 | mesh_res: 1024 4 | multires_factors: [2,8,16] -------------------------------------------------------------------------------- /mast3r/LICENSE: -------------------------------------------------------------------------------- 1 | DUSt3R, Copyright (c) 2024-present Naver Corporation, is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 license. 2 | 3 | A summary of the CC BY-NC-SA 4.0 license is located here: 4 | https://creativecommons.org/licenses/by-nc-sa/4.0/ 5 | 6 | The CC BY-NC-SA 4.0 license is located here: 7 | https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode 8 | -------------------------------------------------------------------------------- /mast3r/asmk/.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled files 2 | __pycache__/ 3 | 4 | # C extensions 5 | *.so 6 | -------------------------------------------------------------------------------- /mast3r/asmk/asmk/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python implementation of ASMK for ECCV 2020 paper "Learning and aggregating deep local descriptors 3 | for instance-level recognition" 4 | """ 5 | 6 | from .asmk_method import ASMKMethod 7 | -------------------------------------------------------------------------------- /mast3r/asmk/asmk/functional.py: -------------------------------------------------------------------------------- 1 | """Mathematical functions operating on arrays""" 2 | 3 | import numpy as np 4 | 5 | 6 | def normalize_vec_l2(vecs): 7 | """Perform l2 normalization on each vector in a given matrix (axis 1)""" 8 | norm = np.linalg.norm(vecs, ord=2, axis=1, keepdims=True) + 1e-6 9 | return vecs / norm 10 | 11 | def asmk_kernel(sim, image_ids, *, alpha, similarity_threshold): 12 | """Compute scores for visual words""" 13 | mask = (sim>=similarity_threshold) 14 | sim = np.power(sim[mask], alpha) # monomial kernel 15 | return image_ids[mask], sim 16 | -------------------------------------------------------------------------------- /mast3r/asmk/cython/build.sh: -------------------------------------------------------------------------------- 1 | cythonize *.pyx 2 | -------------------------------------------------------------------------------- /mast3r/asmk/examples/params/eccv20_how_r18_1000.yml: -------------------------------------------------------------------------------- 1 | # Demo scenario for HOW descriptors with Resnet 18 backbone 2 | 3 | __template__: _eccv20_how.yml 4 | 5 | demo_how: 6 | eval_features: how_r18_1000 7 | codebook_features: how_r18_1000 8 | -------------------------------------------------------------------------------- /mast3r/asmk/examples/params/eccv20_how_r50-_1000.yml: -------------------------------------------------------------------------------- 1 | # Demo scenario for HOW descriptors with Resnet 50 backbone, without the last block 2 | 3 | __template__: _eccv20_how.yml 4 | 5 | demo_how: 6 | eval_features: how_r50-_1000 7 | codebook_features: how_r50-_1000 8 | -------------------------------------------------------------------------------- /mast3r/asmk/examples/params/eccv20_how_r50-_2000.yml: -------------------------------------------------------------------------------- 1 | # Demo scenario for HOW descriptors with Resnet 50 backbone, without the last block 2 | 3 | __template__: _eccv20_how.yml 4 | 5 | demo_how: 6 | eval_features: how_r50-_2000 7 | codebook_features: how_r50-_1000 8 | -------------------------------------------------------------------------------- /mast3r/dm_utils/model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | 4 | def freeze_model(model): 5 | model.eval() 6 | for param in model.parameters(): 7 | param.requires_grad = False 8 | -------------------------------------------------------------------------------- /mast3r/docker/docker-compose-cpu.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | mast3r-demo: 4 | build: 5 | context: ./files 6 | dockerfile: cpu.Dockerfile 7 | ports: 8 | - "7860:7860" 9 | volumes: 10 | - ./files/checkpoints:/mast3r/checkpoints 11 | environment: 12 | - DEVICE=cpu 13 | - MODEL=${MODEL:-MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth} 14 | cap_add: 15 | - IPC_LOCK 16 | - SYS_RESOURCE 17 | -------------------------------------------------------------------------------- /mast3r/docker/docker-compose-cuda.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | mast3r-demo: 4 | build: 5 | context: ./files 6 | dockerfile: cuda.Dockerfile 7 | ports: 8 | - "7860:7860" 9 | environment: 10 | - DEVICE=cuda 11 | - MODEL=${MODEL:-MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth} 12 | volumes: 13 | - ./files/checkpoints:/mast3r/checkpoints 14 | cap_add: 15 | - IPC_LOCK 16 | - SYS_RESOURCE 17 | deploy: 18 | resources: 19 | reservations: 20 | devices: 21 | - driver: nvidia 22 | count: 1 23 | capabilities: [gpu] 24 | -------------------------------------------------------------------------------- /mast3r/docker/files/cuda.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nvcr.io/nvidia/pytorch:24.01-py3 2 | 3 | LABEL description="Docker container for MASt3R with dependencies installed. CUDA VERSION" 4 | ENV DEVICE="cuda" 5 | ENV MODEL="MASt3R_ViTLarge_BaseDecoder_512_dpt.pth" 6 | ARG DEBIAN_FRONTEND=noninteractive 7 | 8 | RUN apt-get update && apt-get install -y \ 9 | git=1:2.34.1-1ubuntu1.10 \ 10 | libglib2.0-0=2.72.4-0ubuntu2.2 \ 11 | && apt-get clean \ 12 | && rm -rf /var/lib/apt/lists/* 13 | 14 | RUN git clone --recursive https://github.com/naver/mast3r /mast3r 15 | WORKDIR /mast3r/dust3r 16 | RUN pip install -r requirements.txt 17 | RUN pip install -r requirements_optional.txt 18 | RUN pip install opencv-python==4.8.0.74 19 | 20 | WORKDIR /mast3r/dust3r/croco/models/curope/ 21 | RUN python setup.py build_ext --inplace 22 | 23 | WORKDIR /mast3r 24 | RUN pip install -r requirements.txt 25 | 26 | COPY entrypoint.sh /entrypoint.sh 27 | RUN chmod +x /entrypoint.sh 28 | 29 | ENTRYPOINT ["/entrypoint.sh"] 30 | -------------------------------------------------------------------------------- /mast3r/docker/files/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eux 4 | 5 | DEVICE=${DEVICE:-cuda} 6 | MODEL=${MODEL:-MASt3R_ViTLarge_BaseDecoder_512_dpt.pth} 7 | 8 | exec python3 demo.py --weights "checkpoints/$MODEL" --device "$DEVICE" --local_network "$@" 9 | -------------------------------------------------------------------------------- /mast3r/dust3r/LICENSE: -------------------------------------------------------------------------------- 1 | DUSt3R, Copyright (c) 2024-present Naver Corporation, is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 license. 2 | 3 | A summary of the CC BY-NC-SA 4.0 license is located here: 4 | https://creativecommons.org/licenses/by-nc-sa/4.0/ 5 | 6 | The CC BY-NC-SA 4.0 license is located here: 7 | https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode 8 | -------------------------------------------------------------------------------- /mast3r/dust3r/NOTICE: -------------------------------------------------------------------------------- 1 | DUSt3R 2 | Copyright 2024-present NAVER Corp. 3 | 4 | This project contains subcomponents with separate copyright notices and license terms. 5 | Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses. 6 | 7 | ==== 8 | 9 | naver/croco 10 | https://github.com/naver/croco/ 11 | 12 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 13 | -------------------------------------------------------------------------------- /mast3r/dust3r/assets/demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/assets/demo.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/assets/dust3r.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/assets/dust3r.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/assets/dust3r_archi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/assets/dust3r_archi.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/assets/matching.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/assets/matching.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/assets/pipeline1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/assets/pipeline1.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/croco/NOTICE: -------------------------------------------------------------------------------- 1 | CroCo 2 | Copyright 2022-present NAVER Corp. 3 | 4 | This project contains subcomponents with separate copyright notices and license terms. 5 | Your use of the source code for these subcomponents is subject to the terms and conditions of the following licenses. 6 | 7 | ==== 8 | 9 | facebookresearch/mae 10 | https://github.com/facebookresearch/mae 11 | 12 | Attribution-NonCommercial 4.0 International 13 | 14 | ==== 15 | 16 | rwightman/pytorch-image-models 17 | https://github.com/rwightman/pytorch-image-models 18 | 19 | Apache License 20 | Version 2.0, January 2004 21 | http://www.apache.org/licenses/ -------------------------------------------------------------------------------- /mast3r/dust3r/croco/assets/Chateau1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/croco/assets/Chateau1.png -------------------------------------------------------------------------------- /mast3r/dust3r/croco/assets/Chateau2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/croco/assets/Chateau2.png -------------------------------------------------------------------------------- /mast3r/dust3r/croco/assets/arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/croco/assets/arch.jpg -------------------------------------------------------------------------------- /mast3r/dust3r/croco/datasets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/croco/datasets/__init__.py -------------------------------------------------------------------------------- /mast3r/dust3r/croco/datasets/habitat_sim/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/mast3r/dust3r/croco/datasets/habitat_sim/__init__.py -------------------------------------------------------------------------------- /mast3r/dust3r/croco/models/curope/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | 4 | from .curope2d import cuRoPE2D 5 | -------------------------------------------------------------------------------- /mast3r/dust3r/croco/models/masking.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | 4 | 5 | # -------------------------------------------------------- 6 | # Masking utils 7 | # -------------------------------------------------------- 8 | 9 | import torch 10 | import torch.nn as nn 11 | 12 | class RandomMask(nn.Module): 13 | """ 14 | random masking 15 | """ 16 | 17 | def __init__(self, num_patches, mask_ratio): 18 | super().__init__() 19 | self.num_patches = num_patches 20 | self.num_mask = int(mask_ratio * self.num_patches) 21 | 22 | def __call__(self, x): 23 | noise = torch.rand(x.size(0), self.num_patches, device=x.device) 24 | argsort = torch.argsort(noise, dim=1) 25 | return argsort < self.num_mask 26 | -------------------------------------------------------------------------------- /mast3r/dust3r/croco/stereoflow/download_model.sh: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2022-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | 4 | model=$1 5 | outfile="stereoflow_models/${model}" 6 | if [[ ! -f $outfile ]] 7 | then 8 | mkdir -p stereoflow_models/; 9 | wget https://download.europe.naverlabs.com/ComputerVision/CroCo/StereoFlow_models/$1 -P stereoflow_models/; 10 | else 11 | echo "Model ${model} already downloaded in ${outfile}." 12 | fi -------------------------------------------------------------------------------- /mast3r/dust3r/datasets_preprocess/habitat/habitat_renderer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/datasets_preprocess/path_to_root.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # DUSt3R repo root import 6 | # -------------------------------------------------------- 7 | 8 | import sys 9 | import os.path as path 10 | HERE_PATH = path.normpath(path.dirname(__file__)) 11 | DUST3R_REPO_PATH = path.normpath(path.join(HERE_PATH, '../')) 12 | # workaround for sibling import 13 | sys.path.insert(0, DUST3R_REPO_PATH) 14 | -------------------------------------------------------------------------------- /mast3r/dust3r/docker/docker-compose-cpu.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | dust3r-demo: 4 | build: 5 | context: ./files 6 | dockerfile: cpu.Dockerfile 7 | ports: 8 | - "7860:7860" 9 | volumes: 10 | - ./files/checkpoints:/dust3r/checkpoints 11 | environment: 12 | - DEVICE=cpu 13 | - MODEL=${MODEL:-DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth} 14 | cap_add: 15 | - IPC_LOCK 16 | - SYS_RESOURCE 17 | -------------------------------------------------------------------------------- /mast3r/dust3r/docker/docker-compose-cuda.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | dust3r-demo: 4 | build: 5 | context: ./files 6 | dockerfile: cuda.Dockerfile 7 | ports: 8 | - "7860:7860" 9 | environment: 10 | - DEVICE=cuda 11 | - MODEL=${MODEL:-DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth} 12 | volumes: 13 | - ./files/checkpoints:/dust3r/checkpoints 14 | cap_add: 15 | - IPC_LOCK 16 | - SYS_RESOURCE 17 | deploy: 18 | resources: 19 | reservations: 20 | devices: 21 | - driver: nvidia 22 | count: 1 23 | capabilities: [gpu] 24 | -------------------------------------------------------------------------------- /mast3r/dust3r/docker/files/cuda.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nvcr.io/nvidia/pytorch:24.01-py3 2 | 3 | LABEL description="Docker container for DUSt3R with dependencies installed. CUDA VERSION" 4 | ENV DEVICE="cuda" 5 | ENV MODEL="DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth" 6 | ARG DEBIAN_FRONTEND=noninteractive 7 | 8 | RUN apt-get update && apt-get install -y \ 9 | git=1:2.34.1-1ubuntu1.10 \ 10 | libglib2.0-0=2.72.4-0ubuntu2.2 \ 11 | && apt-get clean \ 12 | && rm -rf /var/lib/apt/lists/* 13 | 14 | RUN git clone --recursive https://github.com/naver/dust3r /dust3r 15 | WORKDIR /dust3r 16 | RUN pip install -r requirements.txt 17 | RUN pip install -r requirements_optional.txt 18 | RUN pip install opencv-python==4.8.0.74 19 | 20 | WORKDIR /dust3r/croco/models/curope/ 21 | RUN python setup.py build_ext --inplace 22 | 23 | WORKDIR /dust3r 24 | COPY entrypoint.sh /entrypoint.sh 25 | RUN chmod +x /entrypoint.sh 26 | 27 | ENTRYPOINT ["/entrypoint.sh"] 28 | -------------------------------------------------------------------------------- /mast3r/dust3r/docker/files/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eux 4 | 5 | DEVICE=${DEVICE:-cuda} 6 | MODEL=${MODEL:-DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth} 7 | 8 | exec python3 demo.py --weights "checkpoints/$MODEL" --device "$DEVICE" --local_network "$@" 9 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/datasets/base/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/datasets/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/datasets/utils/transforms.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # DUST3R default transforms 6 | # -------------------------------------------------------- 7 | import torchvision.transforms as tvf 8 | from dust3r.utils.image import ImgNorm 9 | 10 | # define the standard image transforms 11 | ColorJitter = tvf.Compose([tvf.ColorJitter(0.5, 0.5, 0.5, 0.1), ImgNorm]) 12 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/heads/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # head factory 6 | # -------------------------------------------------------- 7 | from .linear_head import LinearPts3d 8 | from .dpt_head import create_dpt_head 9 | 10 | 11 | def head_factory(head_type, output_mode, net, has_conf=False): 12 | """" build a prediction head for the decoder 13 | """ 14 | if head_type == 'linear' and output_mode == 'pts3d': 15 | return LinearPts3d(net, has_conf) 16 | elif head_type == 'dpt' and output_mode == 'pts3d': 17 | return create_dpt_head(net, has_conf=has_conf) 18 | else: 19 | raise NotImplementedError(f"unexpected {head_type=} and {output_mode=}") 20 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/optim_factory.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # optimization functions 6 | # -------------------------------------------------------- 7 | 8 | 9 | def adjust_learning_rate_by_lr(optimizer, lr): 10 | for param_group in optimizer.param_groups: 11 | if "lr_scale" in param_group: 12 | param_group["lr"] = lr * param_group["lr_scale"] 13 | else: 14 | param_group["lr"] = lr 15 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r/utils/path_to_croco.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # CroCo submodule import 6 | # -------------------------------------------------------- 7 | 8 | import sys 9 | import os.path as path 10 | HERE_PATH = path.normpath(path.dirname(__file__)) 11 | CROCO_REPO_PATH = path.normpath(path.join(HERE_PATH, '../../croco')) 12 | CROCO_MODELS_PATH = path.join(CROCO_REPO_PATH, 'models') 13 | # check the presence of models directory in repo to be sure its cloned 14 | if path.isdir(CROCO_MODELS_PATH): 15 | # workaround for sibling import 16 | sys.path.insert(0, CROCO_REPO_PATH) 17 | else: 18 | raise ImportError(f"croco is not initialized, could not find: {CROCO_MODELS_PATH}.\n " 19 | "Did you forget to run 'git submodule update --init --recursive' ?") 20 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r_visloc/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r_visloc/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | from .sevenscenes import VislocSevenScenes 4 | from .cambridge_landmarks import VislocCambridgeLandmarks 5 | from .aachen_day_night import VislocAachenDayNight 6 | from .inloc import VislocInLoc 7 | -------------------------------------------------------------------------------- /mast3r/dust3r/dust3r_visloc/datasets/base_dataset.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # Base class 6 | # -------------------------------------------------------- 7 | class BaseVislocDataset: 8 | def __init__(self): 9 | pass 10 | 11 | def set_resolution(self, model): 12 | self.maxdim = max(model.patch_embed.img_size) 13 | self.patch_size = model.patch_embed.patch_size 14 | 15 | def __len__(self): 16 | raise NotImplementedError() 17 | 18 | def __getitem__(self, idx): 19 | raise NotImplementedError() -------------------------------------------------------------------------------- /mast3r/dust3r/requirements.txt: -------------------------------------------------------------------------------- 1 | torch 2 | torchvision 3 | roma 4 | gradio 5 | matplotlib 6 | tqdm 7 | opencv-python 8 | scipy 9 | einops 10 | trimesh 11 | tensorboard 12 | pyglet<2 13 | huggingface-hub[torch]>=0.22 -------------------------------------------------------------------------------- /mast3r/dust3r/requirements_optional.txt: -------------------------------------------------------------------------------- 1 | pillow-heif # add heif/heic image support 2 | pyrender # for rendering depths in scannetpp 3 | kapture # for visloc data loading 4 | kapture-localization 5 | numpy-quaternion 6 | pycolmap # for pnp 7 | poselib # for pnp 8 | -------------------------------------------------------------------------------- /mast3r/dust3r/train.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 3 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 4 | # 5 | # -------------------------------------------------------- 6 | # training executable for DUSt3R 7 | # -------------------------------------------------------- 8 | from dust3r.training import get_args_parser, train 9 | 10 | if __name__ == '__main__': 11 | args = get_args_parser() 12 | args = args.parse_args() 13 | train(args) 14 | -------------------------------------------------------------------------------- /mast3r/mast3r/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/cloud_opt/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/cloud_opt/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/cloud_opt/utils/schedules.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # lr schedules for sparse ga 6 | # -------------------------------------------------------- 7 | import numpy as np 8 | 9 | 10 | def linear_schedule(alpha, lr_base, lr_end=0): 11 | lr = (1 - alpha) * lr_base + alpha * lr_end 12 | return lr 13 | 14 | 15 | def cosine_schedule(alpha, lr_base, lr_end=0): 16 | lr = lr_end + (lr_base - lr_end) * (1 + np.cos(alpha * np.pi)) / 2 17 | return lr 18 | -------------------------------------------------------------------------------- /mast3r/mast3r/colmap/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/datasets/base/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/datasets/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | -------------------------------------------------------------------------------- /mast3r/mast3r/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). -------------------------------------------------------------------------------- /mast3r/mast3r/utils/misc.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # utilitary functions for MASt3R 6 | # -------------------------------------------------------- 7 | import os 8 | import hashlib 9 | 10 | 11 | def mkdir_for(f): 12 | os.makedirs(os.path.dirname(f), exist_ok=True) 13 | return f 14 | 15 | 16 | def hash_md5(s): 17 | return hashlib.md5(s.encode('utf-8')).hexdigest() 18 | -------------------------------------------------------------------------------- /mast3r/mast3r/utils/path_to_dust3r.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024-present Naver Corporation. All rights reserved. 2 | # Licensed under CC BY-NC-SA 4.0 (non-commercial use only). 3 | # 4 | # -------------------------------------------------------- 5 | # dust3r submodule import 6 | # -------------------------------------------------------- 7 | 8 | import sys 9 | import os.path as path 10 | HERE_PATH = path.normpath(path.dirname(__file__)) 11 | DUSt3R_REPO_PATH = path.normpath(path.join(HERE_PATH, '../../dust3r')) 12 | DUSt3R_LIB_PATH = path.join(DUSt3R_REPO_PATH, 'dust3r') 13 | # check the presence of models directory in repo to be sure its cloned 14 | if path.isdir(DUSt3R_LIB_PATH): 15 | # workaround for sibling import 16 | sys.path.insert(0, DUSt3R_REPO_PATH) 17 | else: 18 | raise ImportError(f"dust3r is not initialized, could not find: {DUSt3R_LIB_PATH}.\n " 19 | "Did you forget to run 'git submodule update --init --recursive' ?") 20 | -------------------------------------------------------------------------------- /mast3r/requirements.txt: -------------------------------------------------------------------------------- 1 | scikit-learn -------------------------------------------------------------------------------- /matcha/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/__init__.py -------------------------------------------------------------------------------- /matcha/dm_deformation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_deformation/__init__.py -------------------------------------------------------------------------------- /matcha/dm_extractors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_extractors/__init__.py -------------------------------------------------------------------------------- /matcha/dm_modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_modules/__init__.py -------------------------------------------------------------------------------- /matcha/dm_regularization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_regularization/__init__.py -------------------------------------------------------------------------------- /matcha/dm_regularization/charts.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def depth_logl1_loss( 5 | rendered_depth: torch.Tensor, 6 | gt_depth: torch.Tensor, 7 | weight: torch.Tensor = None, 8 | ): 9 | """_summary_ 10 | 11 | Args: 12 | rendered_depth (torch.Tensor): Predicted depth map. Shape: (H, W). 13 | gt_depth (torch.Tensor): Ground truth depth map. Shape: (H, W). 14 | weight (torch.Tensor): Weight map. Shape: (H, W). 15 | 16 | Returns: 17 | torch.Tensor: L1 loss between the predicted and ground truth depth maps. 18 | """ 19 | loss = torch.log(1. + (rendered_depth - gt_depth).abs()) 20 | if weight is not None: 21 | loss = loss * weight 22 | return loss.mean() 23 | 24 | 25 | -------------------------------------------------------------------------------- /matcha/dm_scene/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_scene/__init__.py -------------------------------------------------------------------------------- /matcha/dm_trainers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_trainers/__init__.py -------------------------------------------------------------------------------- /matcha/dm_utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/dm_utils/__init__.py -------------------------------------------------------------------------------- /matcha/dm_utils/image.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | def img_grad(img): 5 | # img has shape (..., H, W) 6 | grad_x = img[..., 1:, :-1] - img[..., :-1, :-1] 7 | grad_y = img[..., :-1, 1:] - img[..., :-1, :-1] 8 | # Result has shape (..., 2, H, W) 9 | return torch.cat([grad_x.unsqueeze(-3), grad_y.unsqueeze(-3)], dim=-3) 10 | 11 | 12 | def img_hessian(img): 13 | _grad = img_grad(img) # Has shape (..., 2, H, W) 14 | _hessian = img_grad(_grad) # Has shape (..., 2, 2, H, W) 15 | return _hessian 16 | -------------------------------------------------------------------------------- /matcha/dm_utils/model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | 4 | def freeze_model(model): 5 | model.eval() 6 | for param in model.parameters(): 7 | param.requires_grad = False 8 | -------------------------------------------------------------------------------- /matcha/pointmap/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/matcha/pointmap/__init__.py -------------------------------------------------------------------------------- /media/gifs/garden.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/gifs/garden.gif -------------------------------------------------------------------------------- /media/imgs/buzz1_gt_rgb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/buzz1_gt_rgb.jpg -------------------------------------------------------------------------------- /media/imgs/buzz1_matcha_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/buzz1_matcha_mesh.png -------------------------------------------------------------------------------- /media/imgs/re_gt_rgb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/re_gt_rgb.jpg -------------------------------------------------------------------------------- /media/imgs/re_matcha_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/re_matcha_mesh.png -------------------------------------------------------------------------------- /media/imgs/workbench/buzz_dense_color.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/buzz_dense_color.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/buzz_dense_mesh.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/buzz_dense_mesh.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/garden_dense_color.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/garden_dense_color.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/garden_dense_mesh.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/garden_dense_mesh.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/gundam_dense_color.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/gundam_dense_color.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/gundam_dense_mesh.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/gundam_dense_mesh.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/re_dense_color.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/re_dense_color.JPG -------------------------------------------------------------------------------- /media/imgs/workbench/re_dense_mesh.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anttwo/MAtCha/b119fd96e484fc81eb40623c1ea92ad3dbd3c21e/media/imgs/workbench/re_dense_mesh.JPG --------------------------------------------------------------------------------