├── .gitignore
├── MyFluid
├── GLAD
│ ├── GLAD.vcxproj
│ └── GLAD.vcxproj.filters
├── MyFluid.sln
├── MyFluid
│ ├── MyFluid.vcxproj
│ └── MyFluid.vcxproj.filters
├── STB_IMAGE
│ ├── STB_IMAGE.vcxproj
│ └── STB_IMAGE.vcxproj.filters
├── includes
│ ├── GL
│ │ ├── glew.h
│ │ ├── glxew.h
│ │ └── wglew.h
│ ├── GLFW
│ │ ├── glfw3.h
│ │ └── glfw3native.h
│ ├── KHR
│ │ └── khrplatform.h
│ ├── SOIL.c
│ ├── SOIL.h
│ ├── assimp
│ │ ├── .editorconfig
│ │ ├── Compiler
│ │ │ ├── poppack1.h
│ │ │ ├── pstdint.h
│ │ │ └── pushpack1.h
│ │ ├── DefaultLogger.hpp
│ │ ├── Exporter.hpp
│ │ ├── IOStream.hpp
│ │ ├── IOSystem.hpp
│ │ ├── Importer.hpp
│ │ ├── LogStream.hpp
│ │ ├── Logger.hpp
│ │ ├── NullLogger.hpp
│ │ ├── ProgressHandler.hpp
│ │ ├── ai_assert.h
│ │ ├── anim.h
│ │ ├── camera.h
│ │ ├── cexport.h
│ │ ├── cfileio.h
│ │ ├── cimport.h
│ │ ├── color4.h
│ │ ├── color4.inl
│ │ ├── config.h
│ │ ├── defs.h
│ │ ├── importerdesc.h
│ │ ├── light.h
│ │ ├── material.h
│ │ ├── material.inl
│ │ ├── matrix3x3.h
│ │ ├── matrix3x3.inl
│ │ ├── matrix4x4.h
│ │ ├── matrix4x4.inl
│ │ ├── mesh.h
│ │ ├── metadata.h
│ │ ├── port
│ │ │ └── AndroidJNI
│ │ │ │ └── AndroidJNIIOSystem.h
│ │ ├── postprocess.h
│ │ ├── quaternion.h
│ │ ├── quaternion.inl
│ │ ├── scene.h
│ │ ├── texture.h
│ │ ├── types.h
│ │ ├── vector2.h
│ │ ├── vector2.inl
│ │ ├── vector3.h
│ │ ├── vector3.inl
│ │ └── version.h
│ ├── freetype
│ │ ├── config
│ │ │ ├── ftconfig.h
│ │ │ ├── ftheader.h
│ │ │ ├── ftmodule.h
│ │ │ ├── ftoption.h
│ │ │ └── ftstdlib.h
│ │ ├── freetype.h
│ │ ├── ftadvanc.h
│ │ ├── ftbbox.h
│ │ ├── ftbdf.h
│ │ ├── ftbitmap.h
│ │ ├── ftbzip2.h
│ │ ├── ftcache.h
│ │ ├── ftchapters.h
│ │ ├── ftcid.h
│ │ ├── ftcolor.h
│ │ ├── ftdriver.h
│ │ ├── fterrdef.h
│ │ ├── fterrors.h
│ │ ├── ftfntfmt.h
│ │ ├── ftgasp.h
│ │ ├── ftglyph.h
│ │ ├── ftgxval.h
│ │ ├── ftgzip.h
│ │ ├── ftimage.h
│ │ ├── ftincrem.h
│ │ ├── ftlcdfil.h
│ │ ├── ftlist.h
│ │ ├── ftlzw.h
│ │ ├── ftmac.h
│ │ ├── ftmm.h
│ │ ├── ftmodapi.h
│ │ ├── ftmoderr.h
│ │ ├── ftotval.h
│ │ ├── ftoutln.h
│ │ ├── ftparams.h
│ │ ├── ftpfr.h
│ │ ├── ftrender.h
│ │ ├── ftsizes.h
│ │ ├── ftsnames.h
│ │ ├── ftstroke.h
│ │ ├── ftsynth.h
│ │ ├── ftsystem.h
│ │ ├── fttrigon.h
│ │ ├── fttypes.h
│ │ ├── ftwinfnt.h
│ │ ├── internal
│ │ │ ├── autohint.h
│ │ │ ├── cffotypes.h
│ │ │ ├── cfftypes.h
│ │ │ ├── ftcalc.h
│ │ │ ├── ftdebug.h
│ │ │ ├── ftdrv.h
│ │ │ ├── ftgloadr.h
│ │ │ ├── fthash.h
│ │ │ ├── ftmemory.h
│ │ │ ├── ftobjs.h
│ │ │ ├── ftpsprop.h
│ │ │ ├── ftrfork.h
│ │ │ ├── ftserv.h
│ │ │ ├── ftstream.h
│ │ │ ├── fttrace.h
│ │ │ ├── ftvalid.h
│ │ │ ├── internal.h
│ │ │ ├── psaux.h
│ │ │ ├── pshints.h
│ │ │ ├── services
│ │ │ │ ├── svbdf.h
│ │ │ │ ├── svcfftl.h
│ │ │ │ ├── svcid.h
│ │ │ │ ├── svfntfmt.h
│ │ │ │ ├── svgldict.h
│ │ │ │ ├── svgxval.h
│ │ │ │ ├── svkern.h
│ │ │ │ ├── svmetric.h
│ │ │ │ ├── svmm.h
│ │ │ │ ├── svotval.h
│ │ │ │ ├── svpfr.h
│ │ │ │ ├── svpostnm.h
│ │ │ │ ├── svprop.h
│ │ │ │ ├── svpscmap.h
│ │ │ │ ├── svpsinfo.h
│ │ │ │ ├── svsfnt.h
│ │ │ │ ├── svttcmap.h
│ │ │ │ ├── svtteng.h
│ │ │ │ ├── svttglyf.h
│ │ │ │ └── svwinfnt.h
│ │ │ ├── sfnt.h
│ │ │ ├── t1types.h
│ │ │ ├── tttypes.h
│ │ │ └── wofftypes.h
│ │ ├── t1tables.h
│ │ ├── ttnameid.h
│ │ ├── tttables.h
│ │ └── tttags.h
│ ├── ft2build.h
│ ├── glad
│ │ └── glad.h
│ ├── 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_clip_space.hpp
│ │ │ ├── matrix_clip_space.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_projection.hpp
│ │ │ ├── matrix_projection.inl
│ │ │ ├── matrix_relational.hpp
│ │ │ ├── matrix_relational.inl
│ │ │ ├── matrix_transform.hpp
│ │ │ ├── matrix_transform.inl
│ │ │ ├── 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_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_precision.hpp
│ │ │ ├── vector_int2.hpp
│ │ │ ├── vector_int2_precision.hpp
│ │ │ ├── vector_int3.hpp
│ │ │ ├── vector_int3_precision.hpp
│ │ │ ├── vector_int4.hpp
│ │ │ ├── vector_int4_precision.hpp
│ │ │ ├── vector_relational.hpp
│ │ │ ├── vector_relational.inl
│ │ │ ├── vector_uint1.hpp
│ │ │ ├── vector_uint1_precision.hpp
│ │ │ ├── vector_uint2.hpp
│ │ │ ├── vector_uint2_precision.hpp
│ │ │ ├── vector_uint3.hpp
│ │ │ ├── vector_uint3_precision.hpp
│ │ │ ├── vector_uint4.hpp
│ │ │ ├── vector_uint4_precision.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
│ │ │ ├── reciprocal.inl
│ │ │ ├── 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
│ │ │ ├── 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
│ │ │ ├── packing.h
│ │ │ ├── platform.h
│ │ │ ├── trigonometric.h
│ │ │ └── vector_relational.h
│ │ ├── trigonometric.hpp
│ │ ├── vec2.hpp
│ │ ├── vec3.hpp
│ │ ├── vec4.hpp
│ │ └── vector_relational.hpp
│ ├── image_DXT.c
│ ├── image_DXT.h
│ ├── image_helper.c
│ ├── image_helper.h
│ ├── irrKlang
│ │ ├── ik_ESoundEngineOptions.h
│ │ ├── ik_ESoundOutputDrivers.h
│ │ ├── ik_EStreamModes.h
│ │ ├── ik_IAudioRecorder.h
│ │ ├── ik_IAudioStream.h
│ │ ├── ik_IAudioStreamLoader.h
│ │ ├── ik_IFileFactory.h
│ │ ├── ik_IFileReader.h
│ │ ├── ik_IRefCounted.h
│ │ ├── ik_ISound.h
│ │ ├── ik_ISoundDeviceList.h
│ │ ├── ik_ISoundEffectControl.h
│ │ ├── ik_ISoundEngine.h
│ │ ├── ik_ISoundMixedOutputReceiver.h
│ │ ├── ik_ISoundSource.h
│ │ ├── ik_ISoundStopEventReceiver.h
│ │ ├── ik_IVirtualRefCounted.h
│ │ ├── ik_SAudioStreamFormat.h
│ │ ├── ik_irrKlangTypes.h
│ │ ├── ik_vec3d.h
│ │ └── irrKlang.h
│ ├── stb_image.h
│ ├── stb_image_aug.c
│ ├── stb_image_aug.h
│ └── utils
│ │ ├── camera.h
│ │ ├── filesystem.h
│ │ ├── mesh.h
│ │ ├── model.h
│ │ ├── shader.h
│ │ ├── shader_m.h
│ │ └── shader_s.h
├── libs
│ ├── GLAD.lib
│ ├── SOIL.lib
│ ├── STB_IMAGE.lib
│ ├── assimp-vc140-mt.lib
│ ├── assimp.lib
│ ├── freetype.lib
│ ├── glew32s.lib
│ ├── glfw3.lib
│ ├── irrKlang.lib
│ └── realsense2.lib
├── res
│ ├── Jacobi.comp
│ ├── advect.comp
│ ├── applyBuoyancy.comp
│ ├── applyImpulse.comp
│ ├── assimp-vc140-mt.dll
│ ├── clear.comp
│ ├── computeDivergence.comp
│ ├── custom_buffer.fs
│ ├── custom_buffer.vs
│ ├── obstacle.png
│ ├── push.comp
│ ├── realsense2.dll
│ ├── subtractGradient.comp
│ └── vorticity.comp
└── src
│ ├── Fluid.cpp
│ ├── glad.c
│ └── stb_image.cpp
├── README.md
├── dd.gif
└── ex.PNG
/MyFluid/GLAD/GLAD.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 |
14 |
15 | Source Files
16 |
17 |
18 |
--------------------------------------------------------------------------------
/MyFluid/STB_IMAGE/STB_IMAGE.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
10 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
11 |
12 |
13 |
14 |
15 | Source Files
16 |
17 |
18 |
--------------------------------------------------------------------------------
/MyFluid/includes/assimp/.editorconfig:
--------------------------------------------------------------------------------
1 | # See for details
2 |
3 | [*.{h,hpp,inl}]
4 | end_of_line = lf
5 | insert_final_newline = true
6 | trim_trailing_whitespace = true
7 | indent_size = 4
8 | indent_style = space
9 |
--------------------------------------------------------------------------------
/MyFluid/includes/assimp/Compiler/poppack1.h:
--------------------------------------------------------------------------------
1 |
2 | // ===============================================================================
3 | // May be included multiple times - resets structure packing to the defaults
4 | // for all supported compilers. Reverts the changes made by #include
5 | //
6 | // Currently this works on the following compilers:
7 | // MSVC 7,8,9
8 | // GCC
9 | // BORLAND (complains about 'pack state changed but not reverted', but works)
10 | // ===============================================================================
11 |
12 | #ifndef AI_PUSHPACK_IS_DEFINED
13 | # error pushpack1.h must be included after poppack1.h
14 | #endif
15 |
16 | // reset packing to the original value
17 | #if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__)
18 | # pragma pack( pop )
19 | #endif
20 | #undef PACK_STRUCT
21 |
22 | #undef AI_PUSHPACK_IS_DEFINED
23 |
--------------------------------------------------------------------------------
/MyFluid/includes/assimp/Compiler/pushpack1.h:
--------------------------------------------------------------------------------
1 |
2 |
3 | // ===============================================================================
4 | // May be included multiple times - sets structure packing to 1
5 | // for all supported compilers. #include reverts the changes.
6 | //
7 | // Currently this works on the following compilers:
8 | // MSVC 7,8,9
9 | // GCC
10 | // BORLAND (complains about 'pack state changed but not reverted', but works)
11 | // Clang
12 | //
13 | //
14 | // USAGE:
15 | //
16 | // struct StructToBePacked {
17 | // } PACK_STRUCT;
18 | //
19 | // ===============================================================================
20 |
21 | #ifdef AI_PUSHPACK_IS_DEFINED
22 | # error poppack1.h must be included after pushpack1.h
23 | #endif
24 |
25 | #if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__)
26 | # pragma pack(push,1)
27 | # define PACK_STRUCT
28 | #elif defined( __GNUC__ )
29 | # if !defined(HOST_MINGW)
30 | # define PACK_STRUCT __attribute__((__packed__))
31 | # else
32 | # define PACK_STRUCT __attribute__((gcc_struct, __packed__))
33 | # endif
34 | #else
35 | # error Compiler not supported
36 | #endif
37 |
38 | #if defined(_MSC_VER)
39 |
40 | // C4103: Packing was changed after the inclusion of the header, probably missing #pragma pop
41 | # pragma warning (disable : 4103)
42 | #endif
43 |
44 | #define AI_PUSHPACK_IS_DEFINED
45 |
46 |
47 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/config/ftmodule.h:
--------------------------------------------------------------------------------
1 | /*
2 | * This file registers the FreeType modules compiled into the library.
3 | *
4 | * If you use GNU make, this file IS NOT USED! Instead, it is created in
5 | * the objects directory (normally `/objs/`) based on information
6 | * from `/modules.cfg`.
7 | *
8 | * Please read `docs/INSTALL.ANY` and `docs/CUSTOMIZE` how to compile
9 | * FreeType without GNU make.
10 | *
11 | */
12 |
13 | FT_USE_MODULE( FT_Module_Class, autofit_module_class )
14 | FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class )
15 | FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class )
16 | FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class )
17 | FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class )
18 | FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class )
19 | FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class )
20 | FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class )
21 | FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class )
22 | FT_USE_MODULE( FT_Module_Class, psaux_module_class )
23 | FT_USE_MODULE( FT_Module_Class, psnames_module_class )
24 | FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
25 | FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
26 | FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
27 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
28 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
29 | FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
30 | FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
31 |
32 | /* EOF */
33 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/ftpsprop.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * ftpsprop.h
4 | *
5 | * Get and set properties of PostScript drivers (specification).
6 | *
7 | * Copyright (C) 2017-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef FTPSPROP_H_
20 | #define FTPSPROP_H_
21 |
22 |
23 | #include
24 | #include FT_FREETYPE_H
25 |
26 |
27 | FT_BEGIN_HEADER
28 |
29 |
30 | FT_BASE_CALLBACK( FT_Error )
31 | ps_property_set( FT_Module module, /* PS_Driver */
32 | const char* property_name,
33 | const void* value,
34 | FT_Bool value_is_string );
35 |
36 | FT_BASE_CALLBACK( FT_Error )
37 | ps_property_get( FT_Module module, /* PS_Driver */
38 | const char* property_name,
39 | void* value );
40 |
41 |
42 | FT_END_HEADER
43 |
44 |
45 | #endif /* FTPSPROP_H_ */
46 |
47 |
48 | /* END */
49 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svfntfmt.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svfntfmt.h
4 | *
5 | * The FreeType font format service (specification only).
6 | *
7 | * Copyright (C) 2003-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef SVFNTFMT_H_
20 | #define SVFNTFMT_H_
21 |
22 | #include FT_INTERNAL_SERVICE_H
23 |
24 |
25 | FT_BEGIN_HEADER
26 |
27 |
28 | /*
29 | * A trivial service used to return the name of a face's font driver,
30 | * according to the XFree86 nomenclature. Note that the service data is a
31 | * simple constant string pointer.
32 | */
33 |
34 | #define FT_SERVICE_ID_FONT_FORMAT "font-format"
35 |
36 | #define FT_FONT_FORMAT_TRUETYPE "TrueType"
37 | #define FT_FONT_FORMAT_TYPE_1 "Type 1"
38 | #define FT_FONT_FORMAT_BDF "BDF"
39 | #define FT_FONT_FORMAT_PCF "PCF"
40 | #define FT_FONT_FORMAT_TYPE_42 "Type 42"
41 | #define FT_FONT_FORMAT_CID "CID Type 1"
42 | #define FT_FONT_FORMAT_CFF "CFF"
43 | #define FT_FONT_FORMAT_PFR "PFR"
44 | #define FT_FONT_FORMAT_WINFNT "Windows FNT"
45 |
46 | /* */
47 |
48 |
49 | FT_END_HEADER
50 |
51 |
52 | #endif /* SVFNTFMT_H_ */
53 |
54 |
55 | /* END */
56 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svkern.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svkern.h
4 | *
5 | * The FreeType Kerning service (specification).
6 | *
7 | * Copyright (C) 2006-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef SVKERN_H_
20 | #define SVKERN_H_
21 |
22 | #include FT_INTERNAL_SERVICE_H
23 | #include FT_TRUETYPE_TABLES_H
24 |
25 |
26 | FT_BEGIN_HEADER
27 |
28 | #define FT_SERVICE_ID_KERNING "kerning"
29 |
30 |
31 | typedef FT_Error
32 | (*FT_Kerning_TrackGetFunc)( FT_Face face,
33 | FT_Fixed point_size,
34 | FT_Int degree,
35 | FT_Fixed* akerning );
36 |
37 | FT_DEFINE_SERVICE( Kerning )
38 | {
39 | FT_Kerning_TrackGetFunc get_track;
40 | };
41 |
42 | /* */
43 |
44 |
45 | FT_END_HEADER
46 |
47 |
48 | #endif /* SVKERN_H_ */
49 |
50 |
51 | /* END */
52 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svotval.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svotval.h
4 | *
5 | * The FreeType OpenType validation service (specification).
6 | *
7 | * Copyright (C) 2004-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef SVOTVAL_H_
20 | #define SVOTVAL_H_
21 |
22 | #include FT_OPENTYPE_VALIDATE_H
23 | #include FT_INTERNAL_VALIDATE_H
24 |
25 | FT_BEGIN_HEADER
26 |
27 |
28 | #define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate"
29 |
30 |
31 | typedef FT_Error
32 | (*otv_validate_func)( FT_Face volatile face,
33 | FT_UInt ot_flags,
34 | FT_Bytes *base,
35 | FT_Bytes *gdef,
36 | FT_Bytes *gpos,
37 | FT_Bytes *gsub,
38 | FT_Bytes *jstf );
39 |
40 |
41 | FT_DEFINE_SERVICE( OTvalidate )
42 | {
43 | otv_validate_func validate;
44 | };
45 |
46 | /* */
47 |
48 |
49 | FT_END_HEADER
50 |
51 |
52 | #endif /* SVOTVAL_H_ */
53 |
54 |
55 | /* END */
56 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svtteng.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svtteng.h
4 | *
5 | * The FreeType TrueType engine query service (specification).
6 | *
7 | * Copyright (C) 2006-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef SVTTENG_H_
20 | #define SVTTENG_H_
21 |
22 | #include FT_INTERNAL_SERVICE_H
23 | #include FT_MODULE_H
24 |
25 |
26 | FT_BEGIN_HEADER
27 |
28 |
29 | /*
30 | * SFNT table loading service.
31 | */
32 |
33 | #define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine"
34 |
35 | /*
36 | * Used to implement FT_Get_TrueType_Engine_Type
37 | */
38 |
39 | FT_DEFINE_SERVICE( TrueTypeEngine )
40 | {
41 | FT_TrueTypeEngineType engine_type;
42 | };
43 |
44 | /* */
45 |
46 |
47 | FT_END_HEADER
48 |
49 |
50 | #endif /* SVTTENG_H_ */
51 |
52 |
53 | /* END */
54 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svttglyf.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svttglyf.h
4 | *
5 | * The FreeType TrueType glyph service.
6 | *
7 | * Copyright (C) 2007-2020 by
8 | * David Turner.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 | #ifndef SVTTGLYF_H_
19 | #define SVTTGLYF_H_
20 |
21 | #include FT_INTERNAL_SERVICE_H
22 | #include FT_TRUETYPE_TABLES_H
23 |
24 |
25 | FT_BEGIN_HEADER
26 |
27 |
28 | #define FT_SERVICE_ID_TT_GLYF "tt-glyf"
29 |
30 |
31 | typedef FT_ULong
32 | (*TT_Glyf_GetLocationFunc)( FT_Face face,
33 | FT_UInt gindex,
34 | FT_ULong *psize );
35 |
36 | FT_DEFINE_SERVICE( TTGlyf )
37 | {
38 | TT_Glyf_GetLocationFunc get_location;
39 | };
40 |
41 |
42 | #define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \
43 | static const FT_Service_TTGlyfRec class_ = \
44 | { \
45 | get_location_ \
46 | };
47 |
48 | /* */
49 |
50 |
51 | FT_END_HEADER
52 |
53 | #endif /* SVTTGLYF_H_ */
54 |
55 |
56 | /* END */
57 |
--------------------------------------------------------------------------------
/MyFluid/includes/freetype/internal/services/svwinfnt.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * svwinfnt.h
4 | *
5 | * The FreeType Windows FNT/FONT service (specification).
6 | *
7 | * Copyright (C) 2003-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | #ifndef SVWINFNT_H_
20 | #define SVWINFNT_H_
21 |
22 | #include FT_INTERNAL_SERVICE_H
23 | #include FT_WINFONTS_H
24 |
25 |
26 | FT_BEGIN_HEADER
27 |
28 |
29 | #define FT_SERVICE_ID_WINFNT "winfonts"
30 |
31 | typedef FT_Error
32 | (*FT_WinFnt_GetHeaderFunc)( FT_Face face,
33 | FT_WinFNT_HeaderRec *aheader );
34 |
35 |
36 | FT_DEFINE_SERVICE( WinFnt )
37 | {
38 | FT_WinFnt_GetHeaderFunc get_header;
39 | };
40 |
41 | /* */
42 |
43 |
44 | FT_END_HEADER
45 |
46 |
47 | #endif /* SVWINFNT_H_ */
48 |
49 |
50 | /* END */
51 |
--------------------------------------------------------------------------------
/MyFluid/includes/ft2build.h:
--------------------------------------------------------------------------------
1 | /****************************************************************************
2 | *
3 | * ft2build.h
4 | *
5 | * FreeType 2 build and setup macros.
6 | *
7 | * Copyright (C) 1996-2020 by
8 | * David Turner, Robert Wilhelm, and Werner Lemberg.
9 | *
10 | * This file is part of the FreeType project, and may only be used,
11 | * modified, and distributed under the terms of the FreeType project
12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 | * this file you indicate that you have read the license and
14 | * understand and accept it fully.
15 | *
16 | */
17 |
18 |
19 | /**************************************************************************
20 | *
21 | * This is the 'entry point' for FreeType header file inclusions. It is
22 | * the only header file which should be included directly; all other
23 | * FreeType header files should be accessed with macro names (after
24 | * including `ft2build.h`).
25 | *
26 | * A typical example is
27 | *
28 | * ```
29 | * #include
30 | * #include FT_FREETYPE_H
31 | * ```
32 | *
33 | */
34 |
35 |
36 | #ifndef FT2BUILD_H_
37 | #define FT2BUILD_H_
38 |
39 | #include
40 |
41 | #endif /* FT2BUILD_H_ */
42 |
43 |
44 | /* END */
45 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/compute_common.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "setup.hpp"
4 | #include
5 |
6 | namespace glm{
7 | namespace detail
8 | {
9 | template
10 | struct compute_abs
11 | {};
12 |
13 | template
14 | struct compute_abs
15 | {
16 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
17 | {
18 | GLM_STATIC_ASSERT(
19 | std::numeric_limits::is_iec559 || std::numeric_limits::is_signed,
20 | "'abs' only accept floating-point and integer scalar or vector inputs");
21 |
22 | return x >= genFIType(0) ? x : -x;
23 | // TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff;
24 | }
25 | };
26 |
27 | #if GLM_COMPILER & GLM_COMPILER_CUDA
28 | template<>
29 | struct compute_abs
30 | {
31 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static float call(float x)
32 | {
33 | return fabsf(x);
34 | }
35 | };
36 | #endif
37 |
38 | template
39 | struct compute_abs
40 | {
41 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
42 | {
43 | GLM_STATIC_ASSERT(
44 | (!std::numeric_limits::is_signed && std::numeric_limits::is_integer),
45 | "'abs' only accept floating-point and integer scalar or vector inputs");
46 | return x;
47 | }
48 | };
49 | }//namespace detail
50 | }//namespace glm
51 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/func_exponential_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/detail/func_exponential_simd.inl
3 |
4 | #include "../simd/exponential.h"
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | namespace glm{
9 | namespace detail
10 | {
11 | template
12 | struct compute_sqrt<4, float, Q, true>
13 | {
14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v)
15 | {
16 | vec<4, float, Q> Result;
17 | Result.data = _mm_sqrt_ps(v.data);
18 | return Result;
19 | }
20 | };
21 |
22 | # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
23 | template<>
24 | struct compute_sqrt<4, float, aligned_lowp, true>
25 | {
26 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v)
27 | {
28 | vec<4, float, aligned_lowp> Result;
29 | Result.data = glm_vec4_sqrt_lowp(v.data);
30 | return Result;
31 | }
32 | };
33 | # endif
34 | }//namespace detail
35 | }//namespace glm
36 |
37 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
38 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/func_packing_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/func_trigonometric_simd.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LanLou123/Fluid/003f0044126b0273f652a9a4d5a9785c11081b68/MyFluid/includes/glm/detail/func_trigonometric_simd.inl
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/func_vector_relational_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/detail/type_mat4x4_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 |
3 | namespace glm
4 | {
5 |
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double2x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 3, double, lowp> lowp_dmat2x3;
17 |
18 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 3, double, mediump> mediump_dmat2x3;
23 |
24 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 3, double, highp> highp_dmat2x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double2x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 4, double, lowp> lowp_dmat2x4;
17 |
18 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 4, double, mediump> mediump_dmat2x4;
23 |
24 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 4, double, highp> highp_dmat2x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double3x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 2, double, lowp> lowp_dmat3x2;
17 |
18 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 2, double, mediump> mediump_dmat3x2;
23 |
24 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 2, double, highp> highp_dmat3x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double3x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 4, double, lowp> lowp_dmat3x4;
17 |
18 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 4, double, mediump> mediump_dmat3x4;
23 |
24 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 4, double, highp> highp_dmat3x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double4x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 2, double, lowp> lowp_dmat4x2;
17 |
18 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 2, double, mediump> mediump_dmat4x2;
23 |
24 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 2, double, highp> highp_dmat4x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_double4x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 3, double, lowp> lowp_dmat4x3;
17 |
18 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 3, double, mediump> mediump_dmat4x3;
23 |
24 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 3, double, highp> highp_dmat4x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float2x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 3, float, lowp> lowp_mat2x3;
17 |
18 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 3, float, mediump> mediump_mat2x3;
23 |
24 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 3, float, highp> highp_mat2x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float2x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 4, float, lowp> lowp_mat2x4;
17 |
18 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 4, float, mediump> mediump_mat2x4;
23 |
24 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 4, float, highp> highp_mat2x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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
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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float3x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 2, float, lowp> lowp_mat3x2;
17 |
18 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 2, float, mediump> mediump_mat3x2;
23 |
24 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 2, float, highp> highp_mat3x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float3x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 4, float, lowp> lowp_mat3x4;
17 |
18 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 4, float, mediump> mediump_mat3x4;
23 |
24 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 4, float, highp> highp_mat3x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float4x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 2, float, lowp> lowp_mat4x2;
17 |
18 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 2, float, mediump> mediump_mat4x2;
23 |
24 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 2, float, highp> highp_mat4x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/matrix_float4x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 3, float, lowp> lowp_mat4x3;
17 |
18 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 3, float, mediump> mediump_mat4x3;
23 |
24 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 3, float, highp> highp_mat4x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_double.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_double
2 | /// @file glm/ext/quaternion_double.hpp
3 | ///
4 | /// @defgroup ext_quaternion_double GLM_EXT_quaternion_double
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_float
12 | /// @see ext_quaternion_double_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
20 | #pragma once
21 |
22 | // Dependency:
23 | #include "../detail/type_quat.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_double extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_double
32 | /// @{
33 |
34 | /// Quaternion of double-precision floating-point numbers.
35 | typedef qua dquat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_double_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_double_precision
2 | /// @file glm/ext/quaternion_double_precision.hpp
3 | ///
4 | /// @defgroup ext_quaternion_double_precision GLM_EXT_quaternion_double_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point quaternion type with various precision in term of ULPs.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependency:
14 | #include "../detail/type_quat.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_quaternion_double_precision extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_quaternion_double_precision
23 | /// @{
24 |
25 | /// Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
26 | ///
27 | /// @see ext_quaternion_double_precision
28 | typedef qua lowp_dquat;
29 |
30 | /// Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.
31 | ///
32 | /// @see ext_quaternion_double_precision
33 | typedef qua mediump_dquat;
34 |
35 | /// Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.
36 | ///
37 | /// @see ext_quaternion_double_precision
38 | typedef qua highp_dquat;
39 |
40 | /// @}
41 | } //namespace glm
42 |
43 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_float.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float
2 | /// @file glm/ext/quaternion_float.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float GLM_EXT_quaternion_float
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_double
12 | /// @see ext_quaternion_float_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
20 | #pragma once
21 |
22 | // Dependency:
23 | #include "../detail/type_quat.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_float extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_float
32 | /// @{
33 |
34 | /// Quaternion of single-precision floating-point numbers.
35 | typedef qua quat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_float_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float_precision
2 | /// @file glm/ext/quaternion_float_precision.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float_precision GLM_EXT_quaternion_float_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type with various precision in term of ULPs.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependency:
14 | #include "../detail/type_quat.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_quaternion_float_precision extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_quaternion_float_precision
23 | /// @{
24 |
25 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
26 | typedef qua lowp_quat;
27 |
28 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
29 | typedef qua mediump_quat;
30 |
31 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
32 | typedef qua highp_quat;
33 |
34 | /// @}
35 | } //namespace glm
36 |
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_geometric.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER T dot(qua const& x, qua const& y)
5 | {
6 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'dot' accepts only floating-point inputs");
7 | return detail::compute_dot, T, detail::is_aligned::value>::call(x, y);
8 | }
9 |
10 | template
11 | GLM_FUNC_QUALIFIER T length(qua const& q)
12 | {
13 | return glm::sqrt(dot(q, q));
14 | }
15 |
16 | template
17 | GLM_FUNC_QUALIFIER qua normalize(qua const& q)
18 | {
19 | T len = length(q);
20 | if(len <= static_cast(0)) // Problem
21 | return qua(static_cast(1), static_cast(0), static_cast(0), static_cast(0));
22 | T oneOverLen = static_cast(1) / len;
23 | return qua(q.w * oneOverLen, q.x * oneOverLen, q.y * oneOverLen, q.z * oneOverLen);
24 | }
25 |
26 | template
27 | GLM_FUNC_QUALIFIER qua cross(qua const& q1, qua const& q2)
28 | {
29 | return qua(
30 | q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
31 | q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
32 | q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
33 | q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
34 | }
35 | }//namespace glm
36 |
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_relational.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y)
5 | {
6 | vec<4, bool, Q> Result;
7 | for(length_t i = 0; i < x.length(); ++i)
8 | Result[i] = x[i] == y[i];
9 | return Result;
10 | }
11 |
12 | template
13 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y, T epsilon)
14 | {
15 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
16 | return lessThan(abs(v), vec<4, T, Q>(epsilon));
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y)
21 | {
22 | vec<4, bool, Q> Result;
23 | for(length_t i = 0; i < x.length(); ++i)
24 | Result[i] = x[i] != y[i];
25 | return Result;
26 | }
27 |
28 | template
29 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y, T epsilon)
30 | {
31 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
32 | return greaterThanEqual(abs(v), vec<4, T, Q>(epsilon));
33 | }
34 | }//namespace glm
35 |
36 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_transform.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_transform
2 | /// @file glm/ext/quaternion_transform.hpp
3 | ///
4 | /// @defgroup ext_quaternion_transform GLM_EXT_quaternion_transform
5 | /// @ingroup ext
6 | ///
7 | /// Provides transformation functions for quaternion types
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_float
12 | /// @see ext_quaternion_double
13 | /// @see ext_quaternion_exponential
14 | /// @see ext_quaternion_geometric
15 | /// @see ext_quaternion_relational
16 | /// @see ext_quaternion_trigonometric
17 |
18 | #pragma once
19 |
20 | // Dependency:
21 | #include "../common.hpp"
22 | #include "../trigonometric.hpp"
23 | #include "../geometric.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_transform extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_transform
32 | /// @{
33 |
34 | /// Rotates a quaternion from a vector of 3 components axis and an angle.
35 | ///
36 | /// @param q Source orientation
37 | /// @param angle Angle expressed in radians.
38 | /// @param axis Axis of the rotation
39 | ///
40 | /// @tparam T Floating-point scalar types
41 | /// @tparam Q Value from qualifier enum
42 | template
43 | GLM_FUNC_DECL qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& axis);
44 | /// @}
45 | } //namespace glm
46 |
47 | #include "quaternion_transform.inl"
48 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/quaternion_trigonometric.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER T angle(qua const& x)
5 | {
6 | return acos(x.w) * static_cast(2);
7 | }
8 |
9 | template
10 | GLM_FUNC_QUALIFIER vec<3, T, Q> axis(qua const& x)
11 | {
12 | T const tmp1 = static_cast(1) - x.w * x.w;
13 | if(tmp1 <= static_cast(0))
14 | return vec<3, T, Q>(0, 0, 1);
15 | T const tmp2 = static_cast(1) / sqrt(tmp1);
16 | return vec<3, T, Q>(x.x * tmp2, x.y * tmp2, x.z * tmp2);
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER qua angleAxis(T const& angle, vec<3, T, Q> const& v)
21 | {
22 | T const a(angle);
23 | T const s = glm::sin(a * static_cast(0.5));
24 |
25 | return qua(glm::cos(a * static_cast(0.5)), v * s);
26 | }
27 | }//namespace glm
28 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/scalar_constants.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_constants
2 | /// @file glm/ext/scalar_constants.hpp
3 | ///
4 | /// @defgroup ext_scalar_constants GLM_EXT_scalar_constants
5 | /// @ingroup ext
6 | ///
7 | /// Provides a list of constants and precomputed useful values.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependencies
14 | #include "../detail/setup.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_scalar_constants extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_scalar_constants
23 | /// @{
24 |
25 | /// Return the epsilon constant for floating point types.
26 | template
27 | GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
28 |
29 | /// Return the pi constant for floating point types.
30 | template
31 | GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
32 |
33 | /// @}
34 | } //namespace glm
35 |
36 | #include "scalar_constants.inl"
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/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, "'epsilon' only accepts floating-point inputs");
16 | return static_cast(3.14159265358979323846264338327950288);
17 | }
18 | } //namespace glm
19 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/scalar_int_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_int_sized
2 | /// @file glm/ext/scalar_int_sized.hpp
3 | ///
4 | /// @defgroup ext_scalar_int_sized GLM_EXT_scalar_int_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer scalar types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 |
13 | #pragma once
14 |
15 | #include "../detail/setup.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_scalar_int_sized extension included")
19 | #endif
20 |
21 | namespace glm{
22 | namespace detail
23 | {
24 | # if GLM_HAS_EXTENDED_INTEGER_TYPE
25 | typedef std::int8_t int8;
26 | typedef std::int16_t int16;
27 | typedef std::int32_t int32;
28 | # else
29 | typedef char int8;
30 | typedef short int16;
31 | typedef int int32;
32 | #endif//
33 |
34 | template<>
35 | struct is_int
36 | {
37 | enum test {value = ~0};
38 | };
39 |
40 | template<>
41 | struct is_int
42 | {
43 | enum test {value = ~0};
44 | };
45 |
46 | template<>
47 | struct is_int
48 | {
49 | enum test {value = ~0};
50 | };
51 | }//namespace detail
52 |
53 |
54 | /// @addtogroup ext_scalar_int_sized
55 | /// @{
56 |
57 | /// 8 bit signed integer type.
58 | typedef detail::int8 int8;
59 |
60 | /// 16 bit signed integer type.
61 | typedef detail::int16 int16;
62 |
63 | /// 32 bit signed integer type.
64 | typedef detail::int32 int32;
65 |
66 | /// 64 bit signed integer type.
67 | typedef detail::int64 int64;
68 |
69 | /// @}
70 | }//namespace glm
71 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/scalar_relational.inl:
--------------------------------------------------------------------------------
1 | #include "../common.hpp"
2 | #include "../ext/scalar_int_sized.hpp"
3 | #include "../ext/scalar_uint_sized.hpp"
4 | #include "../detail/type_float.hpp"
5 |
6 | namespace glm
7 | {
8 | template
9 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, genType const& epsilon)
10 | {
11 | return abs(x - y) <= epsilon;
12 | }
13 |
14 | template
15 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, genType const& epsilon)
16 | {
17 | return abs(x - y) > epsilon;
18 | }
19 |
20 | template
21 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, int MaxULPs)
22 | {
23 | detail::float_t const a(x);
24 | detail::float_t const b(y);
25 |
26 | // Different signs means they do not match.
27 | if(a.negative() != b.negative())
28 | {
29 | // Check for equality to make sure +0==-0
30 | return a.mantissa() == b.mantissa() && a.exponent() == b.exponent();
31 | }
32 |
33 | // Find the difference in ULPs.
34 | typename detail::float_t::int_type const DiffULPs = abs(a.i - b.i);
35 | return DiffULPs <= MaxULPs;
36 | }
37 |
38 | template
39 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, int ULPs)
40 | {
41 | return !equal(x, y, ULPs);
42 | }
43 | }//namespace glm
44 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/scalar_uint_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_uint_sized
2 | /// @file glm/ext/scalar_uint_sized.hpp
3 | ///
4 | /// @defgroup ext_scalar_uint_sized GLM_EXT_scalar_uint_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer scalar types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 |
13 | #pragma once
14 |
15 | #include "../detail/setup.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_scalar_uint_sized extension included")
19 | #endif
20 |
21 | namespace glm{
22 | namespace detail
23 | {
24 | # if GLM_HAS_EXTENDED_INTEGER_TYPE
25 | typedef std::uint8_t uint8;
26 | typedef std::uint16_t uint16;
27 | typedef std::uint32_t uint32;
28 | # else
29 | typedef unsigned char uint8;
30 | typedef unsigned short uint16;
31 | typedef unsigned int uint32;
32 | #endif
33 |
34 | template<>
35 | struct is_int
36 | {
37 | enum test {value = ~0};
38 | };
39 |
40 | template<>
41 | struct is_int
42 | {
43 | enum test {value = ~0};
44 | };
45 |
46 | template<>
47 | struct is_int
48 | {
49 | enum test {value = ~0};
50 | };
51 | }//namespace detail
52 |
53 |
54 | /// @addtogroup ext_scalar_uint_sized
55 | /// @{
56 |
57 | /// 8 bit unsigned integer type.
58 | typedef detail::uint8 uint8;
59 |
60 | /// 16 bit unsigned integer type.
61 | typedef detail::uint16 uint16;
62 |
63 | /// 32 bit unsigned integer type.
64 | typedef detail::uint32 uint32;
65 |
66 | /// 64 bit unsigned integer type.
67 | typedef detail::uint64 uint64;
68 |
69 | /// @}
70 | }//namespace glm
71 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_bool1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_bool1_precision
2 | /// @file glm/ext/vector_bool1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_bool1_precision GLM_EXT_vector_bool1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | #include "../detail/type_vec1.hpp"
14 |
15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
16 | # pragma message("GLM: GLM_EXT_vector_bool1_precision extension included")
17 | #endif
18 |
19 | namespace glm
20 | {
21 | /// @addtogroup ext_vector_bool1_precision
22 | /// @{
23 |
24 | /// 1 component vector of bool values.
25 | typedef vec<1, bool, highp> highp_bvec1;
26 |
27 | /// 1 component vector of bool values.
28 | typedef vec<1, bool, mediump> mediump_bvec1;
29 |
30 | /// 1 component vector of bool values.
31 | typedef vec<1, bool, lowp> lowp_bvec1;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_bool2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, bool, highp> highp_bvec2;
17 |
18 | /// 2 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, bool, mediump> mediump_bvec2;
23 |
24 | /// 2 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, bool, lowp> lowp_bvec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_bool3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, bool, highp> highp_bvec3;
17 |
18 | /// 3 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, bool, mediump> mediump_bvec3;
23 |
24 | /// 3 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, bool, lowp> lowp_bvec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_bool4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, bool, highp> highp_bvec4;
17 |
18 | /// 4 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, bool, mediump> mediump_bvec4;
23 |
24 | /// 4 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, bool, lowp> lowp_bvec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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_dvec1 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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_double1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_double1_precision
2 | /// @file glm/ext/vector_double1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_double1_precision GLM_EXT_vector_double1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_double1
12 |
13 | #pragma once
14 |
15 | #include "../detail/type_vec1.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_vector_double1_precision extension included")
19 | #endif
20 |
21 | namespace glm
22 | {
23 | /// @addtogroup ext_vector_double1_precision
24 | /// @{
25 |
26 | /// 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, double, highp> highp_dvec1;
28 |
29 | /// 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, double, mediump> mediump_dvec1;
31 |
32 | /// 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, double, lowp> lowp_dvec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_double2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high double-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, double, highp> highp_dvec2;
17 |
18 | /// 2 components vector of medium double-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, double, mediump> mediump_dvec2;
23 |
24 | /// 2 components vector of low double-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, double, lowp> lowp_dvec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_double3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high double-qualifier floating-point numbers.
13 | /// There is no guarantee on the actual qualifier.
14 | ///
15 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
16 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
17 | typedef vec<3, double, highp> highp_dvec3;
18 |
19 | /// 3 components vector of medium double-qualifier floating-point numbers.
20 | /// There is no guarantee on the actual qualifier.
21 | ///
22 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
23 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
24 | typedef vec<3, double, mediump> mediump_dvec3;
25 |
26 | /// 3 components vector of low double-qualifier floating-point numbers.
27 | /// There is no guarantee on the actual qualifier.
28 | ///
29 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
30 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
31 | typedef vec<3, double, lowp> lowp_dvec3;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_double4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/setup.hpp"
6 | #include "../detail/type_vec4.hpp"
7 |
8 | namespace glm
9 | {
10 | /// @addtogroup core_vector_precision
11 | /// @{
12 |
13 | /// 4 components vector of high double-qualifier floating-point numbers.
14 | /// There is no guarantee on the actual qualifier.
15 | ///
16 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
17 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
18 | typedef vec<4, double, highp> highp_dvec4;
19 |
20 | /// 4 components vector of medium double-qualifier floating-point numbers.
21 | /// There is no guarantee on the actual qualifier.
22 | ///
23 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
24 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
25 | typedef vec<4, double, mediump> mediump_dvec4;
26 |
27 | /// 4 components vector of low double-qualifier floating-point numbers.
28 | /// There is no guarantee on the actual qualifier.
29 | ///
30 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
31 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
32 | typedef vec<4, double, lowp> lowp_dvec4;
33 |
34 | /// @}
35 | }//namespace glm
36 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_float1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_float1_precision
2 | /// @file glm/ext/vector_float1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_float1_precision GLM_EXT_vector_float1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_float1 extension.
12 |
13 | #pragma once
14 |
15 | #include "../detail/type_vec1.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_vector_float1_precision extension included")
19 | #endif
20 |
21 | namespace glm
22 | {
23 | /// @addtogroup ext_vector_float1_precision
24 | /// @{
25 |
26 | /// 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, float, highp> highp_vec1;
28 |
29 | /// 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, float, mediump> mediump_vec1;
31 |
32 | /// 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, float, lowp> lowp_vec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_float2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, float, highp> highp_vec2;
17 |
18 | /// 2 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, float, mediump> mediump_vec2;
23 |
24 | /// 2 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, float, lowp> lowp_vec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_float3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, float, highp> highp_vec3;
17 |
18 | /// 3 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, float, mediump> mediump_vec3;
23 |
24 | /// 3 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, float, lowp> lowp_vec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_float4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, float, highp> highp_vec4;
17 |
18 | /// 4 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, float, mediump> mediump_vec4;
23 |
24 | /// 4 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, float, lowp> lowp_vec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_int1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int1_precision
2 | /// @file glm/ext/vector_int1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_int1_precision GLM_EXT_vector_int1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | #include "../detail/type_vec1.hpp"
14 |
15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
16 | # pragma message("GLM: GLM_EXT_vector_int1_precision extension included")
17 | #endif
18 |
19 | namespace glm
20 | {
21 | /// @addtogroup ext_vector_int1_precision
22 | /// @{
23 |
24 | /// 1 component vector of signed integer values.
25 | typedef vec<1, int, highp> highp_ivec1;
26 |
27 | /// 1 component vector of signed integer values.
28 | typedef vec<1, int, mediump> mediump_ivec1;
29 |
30 | /// 1 component vector of signed integer values.
31 | typedef vec<1, int, lowp> lowp_ivec1;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_int2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high qualifier signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, int, highp> highp_ivec2;
17 |
18 | /// 2 components vector of medium qualifier signed integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, int, mediump> mediump_ivec2;
23 |
24 | /// 2 components vector of low qualifier signed integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, int, lowp> lowp_ivec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_int3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high qualifier signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, int, highp> highp_ivec3;
17 |
18 | /// 3 components vector of medium qualifier signed integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, int, mediump> mediump_ivec3;
23 |
24 | /// 3 components vector of low qualifier signed integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, int, lowp> lowp_ivec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_int4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high qualifier signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, int, highp> highp_ivec4;
17 |
18 | /// 4 components vector of medium qualifier signed integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, int, mediump> mediump_ivec4;
23 |
24 | /// 4 components vector of low qualifier signed integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, int, lowp> lowp_ivec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_uint1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint1_precision
2 | /// @file glm/ext/vector_uint1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_uint1_precision GLM_EXT_vector_uint1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | #include "../detail/type_vec1.hpp"
14 |
15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
16 | # pragma message("GLM: GLM_EXT_vector_uint1_precision extension included")
17 | #endif
18 |
19 | namespace glm
20 | {
21 | /// @addtogroup ext_vector_uint1_precision
22 | /// @{
23 |
24 | /// 1 component vector of unsigned integer values.
25 | ///
26 | /// @see ext_vector_uint1_precision
27 | typedef vec<1, unsigned int, highp> highp_uvec1;
28 |
29 | /// 1 component vector of unsigned integer values.
30 | ///
31 | /// @see ext_vector_uint1_precision
32 | typedef vec<1, unsigned int, mediump> mediump_uvec1;
33 |
34 | /// 1 component vector of unsigned integer values.
35 | ///
36 | /// @see ext_vector_uint1_precision
37 | typedef vec<1, unsigned int, lowp> lowp_uvec1;
38 |
39 | /// @}
40 | }//namespace glm
41 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_uint2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high qualifier unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, unsigned int, highp> highp_uvec2;
17 |
18 | /// 2 components vector of medium qualifier unsigned integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, unsigned int, mediump> mediump_uvec2;
23 |
24 | /// 2 components vector of low qualifier unsigned integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, unsigned int, lowp> lowp_uvec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_uint3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high qualifier unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, unsigned int, highp> highp_uvec3;
17 |
18 | /// 3 components vector of medium qualifier unsigned integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, unsigned int, mediump> mediump_uvec3;
23 |
24 | /// 3 components vector of low qualifier unsigned integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, unsigned int, lowp> lowp_uvec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/ext/vector_uint4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high qualifier unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, unsigned int, highp> highp_uvec4;
17 |
18 | /// 4 components vector of medium qualifier unsigned integer numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, unsigned int, mediump> mediump_uvec4;
23 |
24 | /// 4 components vector of low qualifier unsigned integer numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, unsigned int, lowp> lowp_uvec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/matrix_access.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_access
2 | /// @file glm/gtc/matrix_access.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_matrix_access GLM_GTC_matrix_access
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines functions to access rows or columns of a matrix easily.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../detail/setup.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_GTC_matrix_access extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup gtc_matrix_access
25 | /// @{
26 |
27 | /// Get a specific row of a matrix.
28 | /// @see gtc_matrix_access
29 | template
30 | GLM_FUNC_DECL typename genType::row_type row(
31 | genType const& m,
32 | length_t index);
33 |
34 | /// Set a specific row to a matrix.
35 | /// @see gtc_matrix_access
36 | template
37 | GLM_FUNC_DECL genType row(
38 | genType const& m,
39 | length_t index,
40 | typename genType::row_type const& x);
41 |
42 | /// Get a specific column of a matrix.
43 | /// @see gtc_matrix_access
44 | template
45 | GLM_FUNC_DECL typename genType::col_type column(
46 | genType const& m,
47 | length_t index);
48 |
49 | /// Set a specific column to a matrix.
50 | /// @see gtc_matrix_access
51 | template
52 | GLM_FUNC_DECL genType column(
53 | genType const& m,
54 | length_t index,
55 | typename genType::col_type const& x);
56 |
57 | /// @}
58 | }//namespace glm
59 |
60 | #include "matrix_access.inl"
61 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/matrix_access.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_access
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType row
7 | (
8 | genType const& m,
9 | length_t index,
10 | typename genType::row_type const& x
11 | )
12 | {
13 | assert(index >= 0 && index < m[0].length());
14 |
15 | genType Result = m;
16 | for(length_t i = 0; i < m.length(); ++i)
17 | Result[i][index] = x[i];
18 | return Result;
19 | }
20 |
21 | template
22 | GLM_FUNC_QUALIFIER typename genType::row_type row
23 | (
24 | genType const& m,
25 | length_t index
26 | )
27 | {
28 | assert(index >= 0 && index < m[0].length());
29 |
30 | typename genType::row_type Result(0);
31 | for(length_t i = 0; i < m.length(); ++i)
32 | Result[i] = m[i][index];
33 | return Result;
34 | }
35 |
36 | template
37 | GLM_FUNC_QUALIFIER genType column
38 | (
39 | genType const& m,
40 | length_t index,
41 | typename genType::col_type const& x
42 | )
43 | {
44 | assert(index >= 0 && index < m.length());
45 |
46 | genType Result = m;
47 | Result[index] = x;
48 | return Result;
49 | }
50 |
51 | template
52 | GLM_FUNC_QUALIFIER typename genType::col_type column
53 | (
54 | genType const& m,
55 | length_t index
56 | )
57 | {
58 | assert(index >= 0 && index < m.length());
59 |
60 | return m[index];
61 | }
62 | }//namespace glm
63 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/matrix_inverse.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_inverse
2 | /// @file glm/gtc/matrix_inverse.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_matrix_inverse GLM_GTC_matrix_inverse
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines additional matrix inverting functions.
12 |
13 | #pragma once
14 |
15 | // Dependencies
16 | #include "../detail/setup.hpp"
17 | #include "../matrix.hpp"
18 | #include "../mat2x2.hpp"
19 | #include "../mat3x3.hpp"
20 | #include "../mat4x4.hpp"
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTC_matrix_inverse extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtc_matrix_inverse
29 | /// @{
30 |
31 | /// Fast matrix inverse for affine matrix.
32 | ///
33 | /// @param m Input matrix to invert.
34 | /// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
35 | /// @see gtc_matrix_inverse
36 | template
37 | GLM_FUNC_DECL genType affineInverse(genType const& m);
38 |
39 | /// Compute the inverse transpose of a matrix.
40 | ///
41 | /// @param m Input matrix to invert transpose.
42 | /// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
43 | /// @see gtc_matrix_inverse
44 | template
45 | GLM_FUNC_DECL genType inverseTranspose(genType const& m);
46 |
47 | /// @}
48 | }//namespace glm
49 |
50 | #include "matrix_inverse.inl"
51 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/matrix_transform.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_transform
2 | /// @file glm/gtc/matrix_transform.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_transform
6 | /// @see gtx_transform2
7 | ///
8 | /// @defgroup gtc_matrix_transform GLM_GTC_matrix_transform
9 | /// @ingroup gtc
10 | ///
11 | /// Include to use the features of this extension.
12 | ///
13 | /// Defines functions that generate common transformation matrices.
14 | ///
15 | /// The matrices generated by this extension use standard OpenGL fixed-function
16 | /// conventions. For example, the lookAt function generates a transform from world
17 | /// space into the specific eye space that the projective matrix functions
18 | /// (perspective, ortho, etc) are designed to expect. The OpenGL compatibility
19 | /// specifications defines the particular layout of this eye space.
20 |
21 | #pragma once
22 |
23 | // Dependencies
24 | #include "../mat4x4.hpp"
25 | #include "../vec2.hpp"
26 | #include "../vec3.hpp"
27 | #include "../vec4.hpp"
28 | #include "../ext/matrix_projection.hpp"
29 | #include "../ext/matrix_clip_space.hpp"
30 | #include "../ext/matrix_transform.hpp"
31 |
32 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
33 | # pragma message("GLM: GLM_GTC_matrix_transform extension included")
34 | #endif
35 |
36 | #include "matrix_transform.inl"
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/matrix_transform.inl:
--------------------------------------------------------------------------------
1 | #include "../geometric.hpp"
2 | #include "../trigonometric.hpp"
3 | #include "../matrix.hpp"
4 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/noise.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_noise
2 | /// @file glm/gtc/noise.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_noise GLM_GTC_noise
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines 2D, 3D and 4D procedural noise functions
12 | /// Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise":
13 | /// https://github.com/ashima/webgl-noise
14 | /// Following Stefan Gustavson's paper "Simplex noise demystified":
15 | /// http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
16 |
17 | #pragma once
18 |
19 | // Dependencies
20 | #include "../detail/setup.hpp"
21 | #include "../detail/qualifier.hpp"
22 | #include "../detail/_noise.hpp"
23 | #include "../geometric.hpp"
24 | #include "../common.hpp"
25 | #include "../vector_relational.hpp"
26 | #include "../vec2.hpp"
27 | #include "../vec3.hpp"
28 | #include "../vec4.hpp"
29 |
30 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
31 | # pragma message("GLM: GLM_GTC_noise extension included")
32 | #endif
33 |
34 | namespace glm
35 | {
36 | /// @addtogroup gtc_noise
37 | /// @{
38 |
39 | /// Classic perlin noise.
40 | /// @see gtc_noise
41 | template
42 | GLM_FUNC_DECL T perlin(
43 | vec const& p);
44 |
45 | /// Periodic perlin noise.
46 | /// @see gtc_noise
47 | template
48 | GLM_FUNC_DECL T perlin(
49 | vec const& p,
50 | vec const& rep);
51 |
52 | /// Simplex noise.
53 | /// @see gtc_noise
54 | template
55 | GLM_FUNC_DECL T simplex(
56 | vec const& p);
57 |
58 | /// @}
59 | }//namespace glm
60 |
61 | #include "noise.inl"
62 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/quaternion_simd.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LanLou123/Fluid/003f0044126b0273f652a9a4d5a9785c11081b68/MyFluid/includes/glm/gtc/quaternion_simd.inl
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/type_precision.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_precision
2 |
3 | namespace glm
4 | {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/ulp.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_ulp
2 | /// @file glm/gtc/ulp.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_ulp GLM_GTC_ulp
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Allow the measurement of the accuracy of a function against a reference
12 | /// implementation. This extension works on floating-point data and provide results
13 | /// in ULP.
14 |
15 | #pragma once
16 |
17 | // Dependencies
18 | #include "../ext/scalar_ulp.hpp"
19 | #include "../ext/vector_ulp.hpp"
20 |
21 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
22 | # pragma message("GLM: GLM_GTC_ulp extension included")
23 | #endif
24 |
25 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtc/ulp.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_ulp
2 | ///
3 |
4 |
--------------------------------------------------------------------------------
/MyFluid/includes/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_precision.hpp"
24 | #include "../ext/vector_uint1.hpp"
25 | #include "../ext/vector_uint1_precision.hpp"
26 |
27 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
28 | # pragma message("GLM: GLM_GTC_vec1 extension included")
29 | #endif
30 |
31 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/closest_point.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_closest_point
2 | /// @file glm/gtx/closest_point.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_closest_point GLM_GTX_closest_point
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Find the point on a straight line which is the closet of a point.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
20 | #endif
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_closest_point extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_closest_point
29 | /// @{
30 |
31 | /// Find the point on a straight line which is the closet of a point.
32 | /// @see gtx_closest_point
33 | template
34 | GLM_FUNC_DECL vec<3, T, Q> closestPointOnLine(
35 | vec<3, T, Q> const& point,
36 | vec<3, T, Q> const& a,
37 | vec<3, T, Q> const& b);
38 |
39 | /// 2d lines work as well
40 | template
41 | GLM_FUNC_DECL vec<2, T, Q> closestPointOnLine(
42 | vec<2, T, Q> const& point,
43 | vec<2, T, Q> const& a,
44 | vec<2, T, Q> const& b);
45 |
46 | /// @}
47 | }// namespace glm
48 |
49 | #include "closest_point.inl"
50 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/closest_point.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_closest_point
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER vec<3, T, Q> closestPointOnLine
7 | (
8 | vec<3, T, Q> const& point,
9 | vec<3, T, Q> const& a,
10 | vec<3, T, Q> const& b
11 | )
12 | {
13 | T LineLength = distance(a, b);
14 | vec<3, T, Q> Vector = point - a;
15 | vec<3, T, Q> LineDirection = (b - a) / LineLength;
16 |
17 | // Project Vector to LineDirection to get the distance of point from a
18 | T Distance = dot(Vector, LineDirection);
19 |
20 | if(Distance <= T(0)) return a;
21 | if(Distance >= LineLength) return b;
22 | return a + LineDirection * Distance;
23 | }
24 |
25 | template
26 | GLM_FUNC_QUALIFIER vec<2, T, Q> closestPointOnLine
27 | (
28 | vec<2, T, Q> const& point,
29 | vec<2, T, Q> const& a,
30 | vec<2, T, Q> const& b
31 | )
32 | {
33 | T LineLength = distance(a, b);
34 | vec<2, T, Q> Vector = point - a;
35 | vec<2, T, Q> LineDirection = (b - a) / LineLength;
36 |
37 | // Project Vector to LineDirection to get the distance of point from a
38 | T Distance = dot(Vector, LineDirection);
39 |
40 | if(Distance <= T(0)) return a;
41 | if(Distance >= LineLength) return b;
42 | return a + LineDirection * Distance;
43 | }
44 |
45 | }//namespace glm
46 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/color_encoding.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_color_encoding
2 | /// @file glm/gtx/color_encoding.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_color_encoding (dependence)
6 | ///
7 | /// @defgroup gtx_color_encoding GLM_GTX_color_encoding
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// @brief Allow to perform bit operations on integer values
13 |
14 | #pragma once
15 |
16 | // Dependencies
17 | #include "../detail/setup.hpp"
18 | #include "../detail/qualifier.hpp"
19 | #include "../vec3.hpp"
20 | #include
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTC_color_encoding extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_color_encoding
29 | /// @{
30 |
31 | /// Convert a linear sRGB color to D65 YUV.
32 | template
33 | GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD65XYZ(vec<3, T, Q> const& ColorLinearSRGB);
34 |
35 | /// Convert a linear sRGB color to D50 YUV.
36 | template
37 | GLM_FUNC_DECL vec<3, T, Q> convertLinearSRGBToD50XYZ(vec<3, T, Q> const& ColorLinearSRGB);
38 |
39 | /// Convert a D65 YUV color to linear sRGB.
40 | template
41 | GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToLinearSRGB(vec<3, T, Q> const& ColorD65XYZ);
42 |
43 | /// Convert a D65 YUV color to D50 YUV.
44 | template
45 | GLM_FUNC_DECL vec<3, T, Q> convertD65XYZToD50XYZ(vec<3, T, Q> const& ColorD65XYZ);
46 |
47 | /// @}
48 | } //namespace glm
49 |
50 | #include "color_encoding.inl"
51 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/compatibility.inl:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | namespace glm
4 | {
5 | // isfinite
6 | template
7 | GLM_FUNC_QUALIFIER bool isfinite(
8 | genType const& x)
9 | {
10 | # if GLM_HAS_CXX11_STL
11 | return std::isfinite(x) != 0;
12 | # elif GLM_COMPILER & GLM_COMPILER_VC
13 | return _finite(x) != 0;
14 | # elif GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID
15 | return _isfinite(x) != 0;
16 | # else
17 | if (std::numeric_limits::is_integer || std::denorm_absent == std::numeric_limits::has_denorm)
18 | return std::numeric_limits::min() <= x && std::numeric_limits::max() >= x;
19 | else
20 | return -std::numeric_limits::max() <= x && std::numeric_limits::max() >= x;
21 | # endif
22 | }
23 |
24 | template
25 | GLM_FUNC_QUALIFIER vec<1, bool, Q> isfinite(
26 | vec<1, T, Q> const& x)
27 | {
28 | return vec<1, bool, Q>(
29 | isfinite(x.x));
30 | }
31 |
32 | template
33 | GLM_FUNC_QUALIFIER vec<2, bool, Q> isfinite(
34 | vec<2, T, Q> const& x)
35 | {
36 | return vec<2, bool, Q>(
37 | isfinite(x.x),
38 | isfinite(x.y));
39 | }
40 |
41 | template
42 | GLM_FUNC_QUALIFIER vec<3, bool, Q> isfinite(
43 | vec<3, T, Q> const& x)
44 | {
45 | return vec<3, bool, Q>(
46 | isfinite(x.x),
47 | isfinite(x.y),
48 | isfinite(x.z));
49 | }
50 |
51 | template
52 | GLM_FUNC_QUALIFIER vec<4, bool, Q> isfinite(
53 | vec<4, T, Q> const& x)
54 | {
55 | return vec<4, bool, Q>(
56 | isfinite(x.x),
57 | isfinite(x.y),
58 | isfinite(x.z),
59 | isfinite(x.w));
60 | }
61 |
62 | }//namespace glm
63 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/extend.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_extend
2 | /// @file glm/gtx/extend.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_extend GLM_GTX_extend
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Extend a position from a source to a position at a defined length.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
20 | #endif
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_extend extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_extend
29 | /// @{
30 |
31 | /// Extends of Length the Origin position using the (Source - Origin) direction.
32 | /// @see gtx_extend
33 | template
34 | GLM_FUNC_DECL genType extend(
35 | genType const& Origin,
36 | genType const& Source,
37 | typename genType::value_type const Length);
38 |
39 | /// @}
40 | }//namespace glm
41 |
42 | #include "extend.inl"
43 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/extend.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_extend
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType extend
7 | (
8 | genType const& Origin,
9 | genType const& Source,
10 | genType const& Distance
11 | )
12 | {
13 | return Origin + (Source - Origin) * Distance;
14 | }
15 |
16 | template
17 | GLM_FUNC_QUALIFIER vec<2, T, Q> extend
18 | (
19 | vec<2, T, Q> const& Origin,
20 | vec<2, T, Q> const& Source,
21 | T const& Distance
22 | )
23 | {
24 | return Origin + (Source - Origin) * Distance;
25 | }
26 |
27 | template
28 | GLM_FUNC_QUALIFIER vec<3, T, Q> extend
29 | (
30 | vec<3, T, Q> const& Origin,
31 | vec<3, T, Q> const& Source,
32 | T const& Distance
33 | )
34 | {
35 | return Origin + (Source - Origin) * Distance;
36 | }
37 |
38 | template
39 | GLM_FUNC_QUALIFIER vec<4, T, Q> extend
40 | (
41 | vec<4, T, Q> const& Origin,
42 | vec<4, T, Q> const& Source,
43 | T const& Distance
44 | )
45 | {
46 | return Origin + (Source - Origin) * Distance;
47 | }
48 | }//namespace glm
49 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/exterior_product.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_exterior_product
2 | /// @file glm/gtx/exterior_product.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_exterior_product (dependence)
6 | ///
7 | /// @defgroup gtx_exterior_product GLM_GTX_exterior_product
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// @brief Allow to perform bit operations on integer values
13 |
14 | #pragma once
15 |
16 | // Dependencies
17 | #include "../detail/setup.hpp"
18 | #include "../detail/qualifier.hpp"
19 |
20 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
21 | # pragma message("GLM: GLM_GTX_exterior_product extension included")
22 | #endif
23 |
24 | namespace glm
25 | {
26 | /// @addtogroup gtx_exterior_product
27 | /// @{
28 |
29 | /// Returns the cross product of x and y.
30 | ///
31 | /// @tparam T Floating-point scalar types
32 | /// @tparam Q Value from qualifier enum
33 | ///
34 | /// @see Exterior product
35 | template
36 | GLM_FUNC_DECL T cross(vec<2, T, Q> const& v, vec<2, T, Q> const& u);
37 |
38 | /// @}
39 | } //namespace glm
40 |
41 | #include "exterior_product.inl"
42 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/functions.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_functions
2 | /// @file glm/gtx/functions.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtc_quaternion (dependence)
6 | ///
7 | /// @defgroup gtx_functions GLM_GTX_functions
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// List of useful common functions.
13 |
14 | #pragma once
15 |
16 | // Dependencies
17 | #include "../detail/setup.hpp"
18 | #include "../detail/qualifier.hpp"
19 | #include "../detail/type_vec2.hpp"
20 |
21 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
22 | # pragma message("GLM: GLM_GTX_functions extension included")
23 | #endif
24 |
25 | namespace glm
26 | {
27 | /// @addtogroup gtx_functions
28 | /// @{
29 |
30 | /// 1D gauss function
31 | ///
32 | /// @see gtc_epsilon
33 | template
34 | GLM_FUNC_DECL T gauss(
35 | T x,
36 | T ExpectedValue,
37 | T StandardDeviation);
38 |
39 | /// 2D gauss function
40 | ///
41 | /// @see gtc_epsilon
42 | template
43 | GLM_FUNC_DECL T gauss(
44 | vec<2, T, Q> const& Coord,
45 | vec<2, T, Q> const& ExpectedValue,
46 | vec<2, T, Q> const& StandardDeviation);
47 |
48 | /// @}
49 | }//namespace glm
50 |
51 | #include "functions.inl"
52 |
53 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/gradient_paint.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_gradient_paint
2 | /// @file glm/gtx/gradient_paint.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_optimum_pow (dependence)
6 | ///
7 | /// @defgroup gtx_gradient_paint GLM_GTX_gradient_paint
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Functions that return the color of procedural gradient for specific coordinates.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../glm.hpp"
18 | #include "../gtx/optimum_pow.hpp"
19 |
20 | #ifndef GLM_ENABLE_EXPERIMENTAL
21 | # error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
22 | #endif
23 |
24 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
25 | # pragma message("GLM: GLM_GTX_gradient_paint extension included")
26 | #endif
27 |
28 | namespace glm
29 | {
30 | /// @addtogroup gtx_gradient_paint
31 | /// @{
32 |
33 | /// Return a color from a radial gradient.
34 | /// @see - gtx_gradient_paint
35 | template
36 | GLM_FUNC_DECL T radialGradient(
37 | vec<2, T, Q> const& Center,
38 | T const& Radius,
39 | vec<2, T, Q> const& Focal,
40 | vec<2, T, Q> const& Position);
41 |
42 | /// Return a color from a linear gradient.
43 | /// @see - gtx_gradient_paint
44 | template
45 | GLM_FUNC_DECL T linearGradient(
46 | vec<2, T, Q> const& Point0,
47 | vec<2, T, Q> const& Point1,
48 | vec<2, T, Q> const& Position);
49 |
50 | /// @}
51 | }// namespace glm
52 |
53 | #include "gradient_paint.inl"
54 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/gradient_paint.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_gradient_paint
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T radialGradient
7 | (
8 | vec<2, T, Q> const& Center,
9 | T const& Radius,
10 | vec<2, T, Q> const& Focal,
11 | vec<2, T, Q> const& Position
12 | )
13 | {
14 | vec<2, T, Q> F = Focal - Center;
15 | vec<2, T, Q> D = Position - Focal;
16 | T Radius2 = pow2(Radius);
17 | T Fx2 = pow2(F.x);
18 | T Fy2 = pow2(F.y);
19 |
20 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x));
21 | T Denominator = Radius2 - (Fx2 + Fy2);
22 | return Numerator / Denominator;
23 | }
24 |
25 | template
26 | GLM_FUNC_QUALIFIER T linearGradient
27 | (
28 | vec<2, T, Q> const& Point0,
29 | vec<2, T, Q> const& Point1,
30 | vec<2, T, Q> const& Position
31 | )
32 | {
33 | vec<2, T, Q> Dist = Point1 - Point0;
34 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist);
35 | }
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/handed_coordinate_space.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_handed_coordinate_space
2 | /// @file glm/gtx/handed_coordinate_space.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_handed_coordinate_space GLM_GTX_handed_coordinate_space
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// To know if a set of three basis vectors defines a right or left-handed coordinate system.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
20 | #endif
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_handed_coordinate_space
29 | /// @{
30 |
31 | //! Return if a trihedron right handed or not.
32 | //! From GLM_GTX_handed_coordinate_space extension.
33 | template
34 | GLM_FUNC_DECL bool rightHanded(
35 | vec<3, T, Q> const& tangent,
36 | vec<3, T, Q> const& binormal,
37 | vec<3, T, Q> const& normal);
38 |
39 | //! Return if a trihedron left handed or not.
40 | //! From GLM_GTX_handed_coordinate_space extension.
41 | template
42 | GLM_FUNC_DECL bool leftHanded(
43 | vec<3, T, Q> const& tangent,
44 | vec<3, T, Q> const& binormal,
45 | vec<3, T, Q> const& normal);
46 |
47 | /// @}
48 | }// namespace glm
49 |
50 | #include "handed_coordinate_space.inl"
51 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/log_base.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_log_base
2 | /// @file glm/gtx/log_base.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_log_base GLM_GTX_log_base
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Logarithm for any base. base can be a vector or a scalar.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
20 | #endif
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_log_base extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_log_base
29 | /// @{
30 |
31 | /// Logarithm for any base.
32 | /// From GLM_GTX_log_base.
33 | template
34 | GLM_FUNC_DECL genType log(
35 | genType const& x,
36 | genType const& base);
37 |
38 | /// Logarithm for any base.
39 | /// From GLM_GTX_log_base.
40 | template
41 | GLM_FUNC_DECL vec sign(
42 | vec const& x,
43 | vec const& base);
44 |
45 | /// @}
46 | }//namespace glm
47 |
48 | #include "log_base.inl"
49 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/matrix_cross_product.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_matrix_cross_product
2 | /// @file glm/gtx/matrix_cross_product.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_extented_min_max (dependence)
6 | ///
7 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Build cross product matrices
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../glm.hpp"
18 |
19 | #ifndef GLM_ENABLE_EXPERIMENTAL
20 | # error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
21 | #endif
22 |
23 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
24 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
25 | #endif
26 |
27 | namespace glm
28 | {
29 | /// @addtogroup gtx_matrix_cross_product
30 | /// @{
31 |
32 | //! Build a cross product matrix.
33 | //! From GLM_GTX_matrix_cross_product extension.
34 | template
35 | GLM_FUNC_DECL mat<3, 3, T, Q> matrixCross3(
36 | vec<3, T, Q> const& x);
37 |
38 | //! Build a cross product matrix.
39 | //! From GLM_GTX_matrix_cross_product extension.
40 | template
41 | GLM_FUNC_DECL mat<4, 4, T, Q> matrixCross4(
42 | vec<3, T, Q> const& x);
43 |
44 | /// @}
45 | }//namespace glm
46 |
47 | #include "matrix_cross_product.inl"
48 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/matrix_decompose.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_matrix_decompose
2 | /// @file glm/gtx/matrix_decompose.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Decomposes a model matrix to translations, rotation and scale components
12 |
13 | #pragma once
14 |
15 | // Dependencies
16 | #include "../mat4x4.hpp"
17 | #include "../vec3.hpp"
18 | #include "../vec4.hpp"
19 | #include "../geometric.hpp"
20 | #include "../gtc/quaternion.hpp"
21 | #include "../gtc/matrix_transform.hpp"
22 |
23 | #ifndef GLM_ENABLE_EXPERIMENTAL
24 | # error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
25 | #endif
26 |
27 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
28 | # pragma message("GLM: GLM_GTX_matrix_decompose extension included")
29 | #endif
30 |
31 | namespace glm
32 | {
33 | /// @addtogroup gtx_matrix_decompose
34 | /// @{
35 |
36 | /// Decomposes a model matrix to translations, rotation and scale components
37 | /// @see gtx_matrix_decompose
38 | template
39 | GLM_FUNC_DECL bool decompose(
40 | mat<4, 4, T, Q> const& modelMatrix,
41 | vec<3, T, Q> & scale, qua & orientation, vec<3, T, Q> & translation, vec<3, T, Q> & skew, vec<4, T, Q> & perspective);
42 |
43 | /// @}
44 | }//namespace glm
45 |
46 | #include "matrix_decompose.inl"
47 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/matrix_factorisation.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LanLou123/Fluid/003f0044126b0273f652a9a4d5a9785c11081b68/MyFluid/includes/glm/gtx/matrix_factorisation.inl
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/matrix_transform_2d.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtx_matrix_transform_2d
2 | /// @author Miguel Ángel Pérez Martínez
3 |
4 | #include "../trigonometric.hpp"
5 |
6 | namespace glm
7 | {
8 |
9 | template
10 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> translate(
11 | mat<3, 3, T, Q> const& m,
12 | vec<2, T, Q> const& v)
13 | {
14 | mat<3, 3, T, Q> Result(m);
15 | Result[2] = m[0] * v[0] + m[1] * v[1] + m[2];
16 | return Result;
17 | }
18 |
19 |
20 | template
21 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> rotate(
22 | mat<3, 3, T, Q> const& m,
23 | T angle)
24 | {
25 | T const a = angle;
26 | T const c = cos(a);
27 | T const s = sin(a);
28 |
29 | mat<3, 3, T, Q> Result;
30 | Result[0] = m[0] * c + m[1] * s;
31 | Result[1] = m[0] * -s + m[1] * c;
32 | Result[2] = m[2];
33 | return Result;
34 | }
35 |
36 | template
37 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> scale(
38 | mat<3, 3, T, Q> const& m,
39 | vec<2, T, Q> const& v)
40 | {
41 | mat<3, 3, T, Q> Result;
42 | Result[0] = m[0] * v[0];
43 | Result[1] = m[1] * v[1];
44 | Result[2] = m[2];
45 | return Result;
46 | }
47 |
48 | template
49 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearX(
50 | mat<3, 3, T, Q> const& m,
51 | T y)
52 | {
53 | mat<3, 3, T, Q> Result(1);
54 | Result[0][1] = y;
55 | return m * Result;
56 | }
57 |
58 | template
59 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> shearY(
60 | mat<3, 3, T, Q> const& m,
61 | T x)
62 | {
63 | mat<3, 3, T, Q> Result(1);
64 | Result[1][0] = x;
65 | return m * Result;
66 | }
67 |
68 | }//namespace glm
69 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/mixed_product.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_mixed_product
2 | /// @file glm/gtx/mixed_product.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte
7 | /// @ingroup gtx
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Mixed product of 3 vectors.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../glm.hpp"
17 |
18 | #ifndef GLM_ENABLE_EXPERIMENTAL
19 | # error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
20 | #endif
21 |
22 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
23 | # pragma message("GLM: GLM_GTX_mixed_product extension included")
24 | #endif
25 |
26 | namespace glm
27 | {
28 | /// @addtogroup gtx_mixed_product
29 | /// @{
30 |
31 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension)
32 | template
33 | GLM_FUNC_DECL T mixedProduct(
34 | vec<3, T, Q> const& v1,
35 | vec<3, T, Q> const& v2,
36 | vec<3, T, Q> const& v3);
37 |
38 | /// @}
39 | }// namespace glm
40 |
41 | #include "mixed_product.inl"
42 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/normal.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_normal
2 | /// @file glm/gtx/normal.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_extented_min_max (dependence)
6 | ///
7 | /// @defgroup gtx_normal GLM_GTX_normal
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Compute the normal of a triangle.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../glm.hpp"
18 |
19 | #ifndef GLM_ENABLE_EXPERIMENTAL
20 | # error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
21 | #endif
22 |
23 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
24 | # pragma message("GLM: GLM_GTX_normal extension included")
25 | #endif
26 |
27 | namespace glm
28 | {
29 | /// @addtogroup gtx_normal
30 | /// @{
31 |
32 | /// Computes triangle normal from triangle points.
33 | ///
34 | /// @see gtx_normal
35 | template
36 | GLM_FUNC_DECL vec<3, T, Q> triangleNormal(vec<3, T, Q> const& p1, vec<3, T, Q> const& p2, vec<3, T, Q> const& p3);
37 |
38 | /// @}
39 | }//namespace glm
40 |
41 | #include "normal.inl"
42 |
--------------------------------------------------------------------------------
/MyFluid/includes/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 |
--------------------------------------------------------------------------------
/MyFluid/includes/glm/gtx/normalize_dot.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtx_normalize_dot
2 | /// @file glm/gtx/normalize_dot.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtx_fast_square_root (dependence)
6 | ///
7 | /// @defgroup gtx_normalize_dot GLM_GTX_normalize_dot
8 | /// @ingroup gtx
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// Dot product of vectors that need to be normalize with a single square root.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../gtx/fast_square_root.hpp"
18 |
19 | #ifndef GLM_ENABLE_EXPERIMENTAL
20 | # error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
21 | #endif
22 |
23 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
24 | # pragma message("GLM: GLM_GTX_normalize_dot extension included")
25 | #endif
26 |
27 | namespace glm
28 | {
29 | /// @addtogroup gtx_normalize_dot
30 | /// @{
31 |
32 | /// Normalize parameters and returns the dot product of x and y.
33 | /// It's faster that dot(normalize(x), normalize(y)).
34 | ///
35 | /// @see gtx_normalize_dot extension.
36 | template