From 1b55d15dbec6fd6aa3d4a945f84a5ddeeccd3fec Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 26 Jul 2021 01:44:30 +0900 Subject: [PATCH 01/24] docs: Update .gitmessage --- .gitmessage | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.gitmessage b/.gitmessage index 0afa6ff..755bb2d 100644 --- a/.gitmessage +++ b/.gitmessage @@ -7,21 +7,16 @@ # Issue Tracker Number or URL -# --- COMMIT END --- -# Type can be +# --- COMMIT TYPE --- # feat : adding, removing, changing features # fix : bug fix # refactor: refactoring production code # style : formatting, missing semi colons, etc; no code change # docs : changes to documentation # file : changes to files -# test : adding or refactoring tests -# no production code change -# chore : updating grunt tasks etc -# no production code change +# chore : updating grunt tasks etc; no code change # ------------------ -# Remember -# 1. Capitalize the subject line +# 1. Capitalize the subject line (except TYPE) # 2. Use the imperative mood in the subject line # 3. Do not end the subject line with a period # 4. Separate subject from body with a blank line From c2b84d6a817617ab6665cc76ee99da0f46494c48 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 26 Jul 2021 01:52:57 +0900 Subject: [PATCH 02/24] feat: Update ply file name to "fluid_" --- src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 46d80b0..aff51f3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,8 +31,8 @@ void writeSurfaceMesh(int frameno, FluidSimulation &fluidsim) { std::ostringstream ss; ss << frameno; std::string frameString = ss.str(); - frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); - std::string filepath = "C:/tmp/" + frameString + ".ply"; + //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); + std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; std::vector *data = fluidsim.getSurfaceData(); std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); @@ -93,7 +93,7 @@ int main() { fluidsim.addBodyForce(0.0, -25.0, 0.0); fluidsim.initialize(); double timestep = 1.0 / 30.0; - for (;;) { + for (int i = 0; i < 200; i++) { int frameno = fluidsim.getCurrentFrame(); fluidsim.update(timestep); writeSurfaceMesh(frameno, fluidsim); From bea49bdb414e55f3cc190778c6519b3b493912fd Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 00:48:38 +0900 Subject: [PATCH 03/24] feat: Add some debugging lines --- src/fluidsimulation.cpp | 15 +++++++++++++++ src/main.cpp | 8 ++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/fluidsimulation.cpp b/src/fluidsimulation.cpp index 3330b66..6d3eb53 100644 --- a/src/fluidsimulation.cpp +++ b/src/fluidsimulation.cpp @@ -5207,6 +5207,21 @@ void FluidSimulation::_outputSurfaceMeshThread(std::vector *particl t.stop(); _timingData.outputMeshSimulationData += t.getTime(); + /*for (int i = 0; i < 3; i++) + { + std::cout << isomesh.vertices[i] << " /\n"; + } + for (int i = 0; i < 3; i++) + { + for (int j = 0; j < 3; j++) + { + std::cout << isomesh.triangles[i].tri[j] << " /"; + } + std::cout << "\n"; + }*/ + std::cout << isomesh.vertices.size() << " /\n"; + + _logfile.logString(_logfile.getTime() + " COMPLETE Generate Surface Mesh"); } diff --git a/src/main.cpp b/src/main.cpp index aff51f3..66fe1a4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -69,9 +69,9 @@ TriangleMesh getTriangleMeshFromAABB(AABB bbox) { int main() { // This example will drop a box of fluid in the center // of the fluid simulation domain. - int isize = 64; - int jsize = 64; - int ksize = 64; + int isize = 20; + int jsize = 20; + int ksize = 20; double dx = 0.125; FluidSimulation fluidsim(isize, jsize, ksize, dx); @@ -93,7 +93,7 @@ int main() { fluidsim.addBodyForce(0.0, -25.0, 0.0); fluidsim.initialize(); double timestep = 1.0 / 30.0; - for (int i = 0; i < 200; i++) { + for (int i = 0; i < 10; i++) { int frameno = fluidsim.getCurrentFrame(); fluidsim.update(timestep); writeSurfaceMesh(frameno, fluidsim); From 5a607f4adbf977e71bf36cedc727e4932eaf22d8 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 01:53:20 +0900 Subject: [PATCH 04/24] feat: Add submodule "DXViewer" --- .gitmodules | 3 +++ ext/DXViewer | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 ext/DXViewer diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e69d818 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "ext/DXViewer"] + path = ext/DXViewer + url = https://github.com/jklee95/DXViewer.git diff --git a/ext/DXViewer b/ext/DXViewer new file mode 160000 index 0000000..24033ab --- /dev/null +++ b/ext/DXViewer @@ -0,0 +1 @@ +Subproject commit 24033ab8aff35335033631dd75f017494cddf534 From 7e6394f52781e1e70fc73c8503cdd07e4753f64d Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 16:05:35 +0900 Subject: [PATCH 05/24] feat: Integrate temporarily with DXViewer --- CmakeLists.txt | 22 +++++++++-- ext/DXViewer | 2 +- src/main.cpp | 103 ------------------------------------------------- 3 files changed, 19 insertions(+), 108 deletions(-) diff --git a/CmakeLists.txt b/CmakeLists.txt index 5d75795..d64bfd4 100644 --- a/CmakeLists.txt +++ b/CmakeLists.txt @@ -4,9 +4,23 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.19.0) SET( PROJECT_NAME FlipEngine ) PROJECT(${PROJECT_NAME}) +# Define character set as Unicode +add_definitions(-DUNICODE -D_UNICODE) + +# add_subdirectory(ext/DXViewer) + +# Collect shader files +FILE( GLOB VS_SHD ext/DXViewer/shader/vertexShader.hlsl ) +FILE( GLOB PS_SHD ext/DXViewer/shader/fragShader.hlsl ) + +# Set the shader type of files +set_property(SOURCE ${VS_SHD} PROPERTY VS_SHADER_TYPE Vertex) +set_property(SOURCE ${PS_SHD} PROPERTY VS_SHADER_TYPE Pixel) + # Collect source files -FILE( GLOB SRC src/*.cpp ) -FILE( GLOB HDR src/*.h ) +FILE( GLOB SRC src/*.cpp ext/DXViewer/src/*.cpp) +FILE( GLOB HDR src/*.h ext/DXViewer/src/*.h) +FILE( GLOB SHD ${VS_SHD} ${PS_SHD} ) -# Link Source files -ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} ${HDR} ) \ No newline at end of file +# Link Source files ('WIN32' keyword is used for win32 project) +ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${SRC} ${HDR} ${SHD} ) \ No newline at end of file diff --git a/ext/DXViewer b/ext/DXViewer index 24033ab..872cf1b 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 24033ab8aff35335033631dd75f017494cddf534 +Subproject commit 872cf1b7171cfe85e212e697b64fe9d8ec5958f1 diff --git a/src/main.cpp b/src/main.cpp index 66fe1a4..e69de29 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,103 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include - -#include "fluidsimulation.h" -#include "triangle.h" - -void writeSurfaceMesh(int frameno, FluidSimulation &fluidsim) { - std::ostringstream ss; - ss << frameno; - std::string frameString = ss.str(); - //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); - std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; - - std::vector *data = fluidsim.getSurfaceData(); - std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); - ply.write(data->data(), data->size()); - ply.close(); -} - -TriangleMesh getTriangleMeshFromAABB(AABB bbox) { - vmath::vec3 p = bbox.position; - std::vector verts{ - vmath::vec3(p.x, p.y, p.z), - vmath::vec3(p.x + bbox.width, p.y, p.z), - vmath::vec3(p.x + bbox.width, p.y, p.z + bbox.depth), - vmath::vec3(p.x, p.y, p.z + bbox.depth), - vmath::vec3(p.x, p.y + bbox.height, p.z), - vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z), - vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z + bbox.depth), - vmath::vec3(p.x, p.y + bbox.height, p.z + bbox.depth) - }; - - std::vector tris{ - Triangle(0, 1, 2), Triangle(0, 2, 3), Triangle(4, 7, 6), Triangle(4, 6, 5), - Triangle(0, 3, 7), Triangle(0, 7, 4), Triangle(1, 5, 6), Triangle(1, 6, 2), - Triangle(0, 4, 5), Triangle(0, 5, 1), Triangle(3, 2, 6), Triangle(3, 6, 7) - }; - - TriangleMesh m; - m.vertices = verts; - m.triangles = tris; - - return m; -} - -int main() { - // This example will drop a box of fluid in the center - // of the fluid simulation domain. - int isize = 20; - int jsize = 20; - int ksize = 20; - double dx = 0.125; - FluidSimulation fluidsim(isize, jsize, ksize, dx); - - fluidsim.setSurfaceSubdivisionLevel(2); - - double x, y, z; - fluidsim.getSimulationDimensions(&x, &y, &z); - - double boxWidth = (1.0 / 3.0) * x; - double boxHeight = (1.0 / 3.0) * y; - double boxDepth = (1.0 / 3.0) * z; - vmath::vec3 boxPosition(0.5 * (x - boxWidth), 0.5 * (y - boxHeight), 0.5 * (z - boxDepth)); - AABB box(boxPosition, boxWidth, boxHeight, boxDepth); - TriangleMesh boxMesh = getTriangleMeshFromAABB(box); - MeshObject boxFluidObject(isize, jsize, ksize, dx); - boxFluidObject.updateMeshStatic(boxMesh); - fluidsim.addMeshFluid(boxFluidObject); - - fluidsim.addBodyForce(0.0, -25.0, 0.0); - fluidsim.initialize(); - double timestep = 1.0 / 30.0; - for (int i = 0; i < 10; i++) { - int frameno = fluidsim.getCurrentFrame(); - fluidsim.update(timestep); - writeSurfaceMesh(frameno, fluidsim); - } - - return 0; -} \ No newline at end of file From fb230c6d40cb1174c2f3c542e2223a972bd8cd54 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 17:32:48 +0900 Subject: [PATCH 06/24] feat: Integrate main() into WinMain() --- src/main.cpp | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index e69de29..03a7987 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -0,0 +1,114 @@ +/* +MIT License + +Copyright (C) 2020 Ryan L. Guy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#include + +#include "fluidsimulation.h" +#include "triangle.h" + +#include "../ext/DXViewer/src/Win32App.h" + +void writeSurfaceMesh(int frameno, FluidSimulation& fluidsim) { + std::ostringstream ss; + ss << frameno; + std::string frameString = ss.str(); + //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); + std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; + + std::vector* data = fluidsim.getSurfaceData(); + std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); + ply.write(data->data(), data->size()); + ply.close(); +} + +TriangleMesh getTriangleMeshFromAABB(AABB bbox) { + vmath::vec3 p = bbox.position; + std::vector verts{ + vmath::vec3(p.x, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z + bbox.depth) + }; + + std::vector tris{ + Triangle(0, 1, 2), Triangle(0, 2, 3), Triangle(4, 7, 6), Triangle(4, 6, 5), + Triangle(0, 3, 7), Triangle(0, 7, 4), Triangle(1, 5, 6), Triangle(1, 6, 2), + Triangle(0, 4, 5), Triangle(0, 5, 1), Triangle(3, 2, 6), Triangle(3, 6, 7) + }; + + TriangleMesh m; + m.vertices = verts; + m.triangles = tris; + + return m; +} + + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) +{ + int width = 800; + int height = 600; + + Win32App winApp(width, height); + winApp.Initialize(hInstance); + + winApp.InitDirectX(); + + int isize = 20; + int jsize = 20; + int ksize = 20; + double dx = 0.125; + FluidSimulation fluidsim(isize, jsize, ksize, dx); + + fluidsim.setSurfaceSubdivisionLevel(2); + + double x, y, z; + fluidsim.getSimulationDimensions(&x, &y, &z); + + double boxWidth = (1.0 / 3.0) * x; + double boxHeight = (1.0 / 3.0) * y; + double boxDepth = (1.0 / 3.0) * z; + vmath::vec3 boxPosition(0.5 * (x - boxWidth), 0.5 * (y - boxHeight), 0.5 * (z - boxDepth)); + AABB box(boxPosition, boxWidth, boxHeight, boxDepth); + TriangleMesh boxMesh = getTriangleMeshFromAABB(box); + MeshObject boxFluidObject(isize, jsize, ksize, dx); + boxFluidObject.updateMeshStatic(boxMesh); + fluidsim.addMeshFluid(boxFluidObject); + + fluidsim.addBodyForce(0.0, -25.0, 0.0); + fluidsim.initialize(); + + double timestep = 1.0 / 30.0; + for (int i = 0; i < 1; i++) { + int frameno = fluidsim.getCurrentFrame(); + fluidsim.update(timestep); + writeSurfaceMesh(frameno, fluidsim); + } + + return winApp.Run(); +} \ No newline at end of file From 5edceff815be2c8c84e33e81ee8a961b75e49592 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 17:36:47 +0900 Subject: [PATCH 07/24] file: Remove unnecessary files for winOS, C++ --- src/c_bindings/aabb_c.h | 37 - src/c_bindings/cbindings.cpp | 104 - src/c_bindings/cbindings.h | 168 - src/c_bindings/diffuseparticle_c.h | 38 - src/c_bindings/fluidsimulation_c.cpp | 2831 ------------- src/c_bindings/forcefield_c.cpp | 209 - src/c_bindings/forcefieldcurve_c.cpp | 96 - src/c_bindings/forcefieldgrid_c.cpp | 61 - src/c_bindings/forcefieldpoint_c.cpp | 54 - src/c_bindings/forcefieldsurface_c.cpp | 54 - src/c_bindings/forcefieldvolume_c.cpp | 54 - src/c_bindings/gridindex_c.h | 34 - src/c_bindings/markerparticle_c.h | 35 - src/c_bindings/meshfluidsource_c.cpp | 258 -- src/c_bindings/meshobject_c.cpp | 213 - src/c_bindings/openclutils_c.cpp | 83 - src/c_bindings/vector3_c.h | 34 - src/glibc_version_header/LICENSE.md | 21 - .../force_link_glibc_2.5.h | 3727 ----------------- src/pyfluid/__init__.py | 37 - src/pyfluid/aabb.py | 237 -- src/pyfluid/array3d.py | 112 - src/pyfluid/fluidsimulation.py | 2114 ---------- src/pyfluid/forcefield.py | 186 - src/pyfluid/forcefieldcurve.py | 87 - src/pyfluid/forcefieldgrid.py | 59 - src/pyfluid/forcefieldpoint.py | 45 - src/pyfluid/forcefieldsurface.py | 45 - src/pyfluid/forcefieldvolume.py | 45 - src/pyfluid/gpu_utils.py | 59 - src/pyfluid/gridindex.py | 85 - src/pyfluid/meshfluidsource.py | 223 - src/pyfluid/meshobject.py | 186 - src/pyfluid/method_decorators.py | 127 - src/pyfluid/pybindings.py | 60 - src/pyfluid/pyfluid.py | 114 - src/pyfluid/trianglemesh.py | 113 - src/pyfluid/vector3.py | 217 - 38 files changed, 12262 deletions(-) delete mode 100644 src/c_bindings/aabb_c.h delete mode 100644 src/c_bindings/cbindings.cpp delete mode 100644 src/c_bindings/cbindings.h delete mode 100644 src/c_bindings/diffuseparticle_c.h delete mode 100644 src/c_bindings/fluidsimulation_c.cpp delete mode 100644 src/c_bindings/forcefield_c.cpp delete mode 100644 src/c_bindings/forcefieldcurve_c.cpp delete mode 100644 src/c_bindings/forcefieldgrid_c.cpp delete mode 100644 src/c_bindings/forcefieldpoint_c.cpp delete mode 100644 src/c_bindings/forcefieldsurface_c.cpp delete mode 100644 src/c_bindings/forcefieldvolume_c.cpp delete mode 100644 src/c_bindings/gridindex_c.h delete mode 100644 src/c_bindings/markerparticle_c.h delete mode 100644 src/c_bindings/meshfluidsource_c.cpp delete mode 100644 src/c_bindings/meshobject_c.cpp delete mode 100644 src/c_bindings/openclutils_c.cpp delete mode 100644 src/c_bindings/vector3_c.h delete mode 100644 src/glibc_version_header/LICENSE.md delete mode 100644 src/glibc_version_header/force_link_glibc_2.5.h delete mode 100644 src/pyfluid/__init__.py delete mode 100644 src/pyfluid/aabb.py delete mode 100644 src/pyfluid/array3d.py delete mode 100644 src/pyfluid/fluidsimulation.py delete mode 100644 src/pyfluid/forcefield.py delete mode 100644 src/pyfluid/forcefieldcurve.py delete mode 100644 src/pyfluid/forcefieldgrid.py delete mode 100644 src/pyfluid/forcefieldpoint.py delete mode 100644 src/pyfluid/forcefieldsurface.py delete mode 100644 src/pyfluid/forcefieldvolume.py delete mode 100644 src/pyfluid/gpu_utils.py delete mode 100644 src/pyfluid/gridindex.py delete mode 100644 src/pyfluid/meshfluidsource.py delete mode 100644 src/pyfluid/meshobject.py delete mode 100644 src/pyfluid/method_decorators.py delete mode 100644 src/pyfluid/pybindings.py delete mode 100644 src/pyfluid/pyfluid.py delete mode 100644 src/pyfluid/trianglemesh.py delete mode 100644 src/pyfluid/vector3.py diff --git a/src/c_bindings/aabb_c.h b/src/c_bindings/aabb_c.h deleted file mode 100644 index 1896c78..0000000 --- a/src/c_bindings/aabb_c.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef AABB_T_H -#define AABB_T_H - -#include "vector3_c.h" - -typedef struct AABB_t { - Vector3_t position; - float width; - float height; - float depth; -} AABB_t; - -#endif \ No newline at end of file diff --git a/src/c_bindings/cbindings.cpp b/src/c_bindings/cbindings.cpp deleted file mode 100644 index 5bb457a..0000000 --- a/src/c_bindings/cbindings.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -namespace CBindings { - -int SUCCESS = 1; -int FAIL = 0; -char CBINDINGS_ERROR_MESSAGE[4096]; - -void set_error_message(std::exception &ex) { - std::string msg = ex.what(); - msg.copy(CBINDINGS_ERROR_MESSAGE, msg.length(), 0); - CBINDINGS_ERROR_MESSAGE[msg.length()] = '\0'; -} - -char* get_error_message() { - return CBINDINGS_ERROR_MESSAGE; -} - -Vector3_t to_struct(vmath::vec3 v) { - return Vector3_t{ v.x, v.y, v.z}; -} - -vmath::vec3 to_class(Vector3_t v) { - return vmath::vec3(v.x, v.y, v.z); -} - -AABB_t to_struct(AABB b) { - Vector3_t cpos = to_struct(b.position); - return AABB_t{ cpos, - (float)b.width, - (float)b.height, - (float)b.depth }; -} - -AABB to_class(AABB_t b) { - return AABB(b.position.x, b.position.y, b.position.z, - b.width, b.height, b.depth); -} - -MarkerParticle_t to_struct(MarkerParticle p) { - Vector3_t pos = to_struct(p.position); - Vector3_t vel = to_struct(p.velocity); - return MarkerParticle_t{ pos, vel }; -} - -MarkerParticle to_class(MarkerParticle_t p) { - vmath::vec3 pos = to_class(p.position); - vmath::vec3 vel = to_class(p.velocity); - return MarkerParticle(pos, vel); -} - -DiffuseParticle_t to_struct(DiffuseParticle p) { - Vector3_t pos = to_struct(p.position); - Vector3_t vel = to_struct(p.velocity); - return DiffuseParticle_t{ pos, vel, p.lifetime, (char)p.type, p.id }; -} - -DiffuseParticle to_class(DiffuseParticle_t p) { - vmath::vec3 pos = to_class(p.position); - vmath::vec3 vel = to_class(p.velocity); - - DiffuseParticle dp(pos, vel, p.lifetime, p.id); - dp.type = (DiffuseParticleType)p.type; - return dp; -} - - -} - -extern "C" { - EXPORTDLL char* CBindings_get_error_message() { - return CBindings::get_error_message(); - } -} \ No newline at end of file diff --git a/src/c_bindings/cbindings.h b/src/c_bindings/cbindings.h deleted file mode 100644 index 3514d82..0000000 --- a/src/c_bindings/cbindings.h +++ /dev/null @@ -1,168 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef CBINDINGS_H -#define CBINDINGS_H - -#include -#include - -#include "../vmath.h" -#include "../aabb.h" -#include "vector3_c.h" -#include "aabb_c.h" -#include "../markerparticle.h" -#include "../diffuseparticle.h" -#include "markerparticle_c.h" -#include "diffuseparticle_c.h" - -namespace CBindings { - -extern int SUCCESS; -extern int FAIL; -extern char CBINDINGS_ERROR_MESSAGE[4096]; - -extern void set_error_message(std::exception &ex); -extern char* get_error_message(); - -template -void safe_execute_method_void_0param(CLASS *obj, void (CLASS::*funcptr)(void), int *err) { - *err = SUCCESS; - try { - (obj->*funcptr)(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } -} - -template -T safe_execute_method_ret_0param(CLASS *obj, T (CLASS::*funcptr)(void), int *err) { - *err = SUCCESS; - T result = T(); - try { - result = (obj->*funcptr)(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } - - return result; -} - -template -void safe_execute_method_void_1param(CLASS *obj, void (CLASS::*funcptr)(T), T param, int *err) { - *err = SUCCESS; - try { - (obj->*funcptr)(param); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } -} - -template -RT safe_execute_method_ret_1param(CLASS *obj, RT (CLASS::*funcptr)(T), T param, int *err) { - *err = SUCCESS; - RT result = RT(); - try { - result = (obj->*funcptr)(param); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } - - return result; -} - -template -void safe_execute_method_void_2param(CLASS *obj, - void (CLASS::*funcptr)(T, T), - T param1, T param2, int *err) { - *err = SUCCESS; - try { - (obj->*funcptr)(param1, param2); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } -} - -template -RT safe_execute_method_ret_2param(CLASS *obj, - RT (CLASS::*funcptr)(T, T), - T param1, T param2, int *err) { - RT result = RT(); - *err = SUCCESS; - try { - result = (obj->*funcptr)(param1, param2); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } - - return result; -} - -template -void safe_execute_method_void_3param(CLASS *obj, - void (CLASS::*funcptr)(T, T, T), - T param1, T param2, T param3, int *err) { - *err = SUCCESS; - try { - (obj->*funcptr)(param1, param2, param3); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } -} - -template -RT safe_execute_method_ret_3param(CLASS *obj, - RT (CLASS::*funcptr)(T, T, T), - T param1, T param2, T param3, int *err) { - RT result = RT(); - *err = SUCCESS; - try { - result = (obj->*funcptr)(param1, param2, param3); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = FAIL; - } - - return result; -} - -Vector3_t to_struct(vmath::vec3 v); -vmath::vec3 to_class(Vector3_t v); -AABB_t to_struct(AABB b); -AABB to_class(AABB_t v); -MarkerParticle_t to_struct(MarkerParticle p); -MarkerParticle to_class(MarkerParticle_t p); -DiffuseParticle_t to_struct(DiffuseParticle p); -DiffuseParticle to_class(DiffuseParticle_t p); - -} - -#endif \ No newline at end of file diff --git a/src/c_bindings/diffuseparticle_c.h b/src/c_bindings/diffuseparticle_c.h deleted file mode 100644 index 699b312..0000000 --- a/src/c_bindings/diffuseparticle_c.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef FLUIDENGINE_DIFFUSEPARTICLE_T_H -#define FLUIDENGINE_DIFFUSEPARTICLE_T_H - -#include "vector3_c.h" - -typedef struct DiffuseParticle_t { - Vector3_t position; - Vector3_t velocity; - float lifetime; - char type; - unsigned char id; -} DiffuseParticle_t; - -#endif \ No newline at end of file diff --git a/src/c_bindings/fluidsimulation_c.cpp b/src/c_bindings/fluidsimulation_c.cpp deleted file mode 100644 index cc6cf33..0000000 --- a/src/c_bindings/fluidsimulation_c.cpp +++ /dev/null @@ -1,2831 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../fluidsimulation.h" - -#include - -#include "cbindings.h" -#include "aabb_c.h" -#include "gridindex_c.h" -#include "vector3_c.h" -#include "markerparticle_c.h" -#include "diffuseparticle_c.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - EXPORTDLL FluidSimulation* FluidSimulation_new_from_empty(int *err) { - FluidSimulation *fluidsim = nullptr; - *err = CBindings::SUCCESS; - try { - fluidsim = new FluidSimulation(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return fluidsim; - } - - EXPORTDLL FluidSimulation* FluidSimulation_new_from_dimensions( - int isize, int jsize, int ksize, double dx, int *err) { - - FluidSimulation *fluidsim = nullptr; - *err = CBindings::SUCCESS; - try { - fluidsim = new FluidSimulation(isize, jsize, ksize, dx); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return fluidsim; - } - - EXPORTDLL void FluidSimulation_destroy(FluidSimulation* obj) { - delete obj; - } - - EXPORTDLL void FluidSimulation_get_version( - FluidSimulation* obj, int *major, int *minor, int *revision, int *err) { - CBindings::safe_execute_method_void_3param( - obj, &FluidSimulation::getVersion, major, minor, revision, err - ); - } - - EXPORTDLL void FluidSimulation_upscale_on_initialization(FluidSimulation* obj, - int previous_isize, - int previous_jsize, - int previous_ksize, - double previous_dx, - int *err) { - *err = CBindings::SUCCESS; - try { - obj->upscaleOnInitialization(previous_isize, previous_jsize, previous_ksize, previous_dx); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_initialize(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param(obj, &FluidSimulation::initialize, err); - } - - EXPORTDLL int FluidSimulation_is_initialized(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isInitialized, err - ); - } - - EXPORTDLL void FluidSimulation_update(FluidSimulation* obj, double dt, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::update, dt, err - ); - } - - EXPORTDLL int FluidSimulation_get_current_frame(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getCurrentFrame, err - ); - } - - EXPORTDLL void FluidSimulation_set_current_frame(FluidSimulation* obj, - int frameno, int *err) { - return CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setCurrentFrame, frameno, err - ); - } - - EXPORTDLL int FluidSimulation_is_current_frame_finished(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isCurrentFrameFinished, err - ); - } - - EXPORTDLL double FluidSimulation_get_cell_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getCellSize, err - ); - } - - EXPORTDLL void FluidSimulation_get_grid_dimensions( - FluidSimulation* obj, int *i, int *j, int *k, int *err) { - CBindings::safe_execute_method_void_3param( - obj, &FluidSimulation::getGridDimensions, i, j, k, err - ); - } - - EXPORTDLL int FluidSimulation_get_grid_width(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getGridWidth, err - ); - } - - EXPORTDLL int FluidSimulation_get_grid_height(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getGridHeight, err - ); - } - - EXPORTDLL int FluidSimulation_get_grid_depth(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getGridDepth, err - ); - } - - EXPORTDLL void FluidSimulation_get_simulation_dimensions( - FluidSimulation* obj, - double *width, double *height, double *depth, int *err) { - CBindings::safe_execute_method_void_3param( - obj, &FluidSimulation::getSimulationDimensions, width, height, depth, err - ); - } - - EXPORTDLL double FluidSimulation_get_simulation_width(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSimulationWidth, err - ); - } - - EXPORTDLL double FluidSimulation_get_simulation_height(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSimulationHeight, err - ); - } - - EXPORTDLL double FluidSimulation_get_simulation_depth(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSimulationDepth, err - ); - } - - EXPORTDLL double FluidSimulation_get_density(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDensity, err - ); - } - - EXPORTDLL void FluidSimulation_set_density(FluidSimulation* obj, - double density, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDensity, density, err - ); - } - - EXPORTDLL double FluidSimulation_get_marker_particle_scale(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMarkerParticleScale, err - ); - } - - EXPORTDLL void FluidSimulation_set_marker_particle_scale(FluidSimulation* obj, - double scale, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMarkerParticleScale, scale, err - ); - } - - EXPORTDLL double FluidSimulation_get_marker_particle_jitter_factor(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMarkerParticleJitterFactor, err - ); - } - - EXPORTDLL void FluidSimulation_set_marker_particle_jitter_factor(FluidSimulation* obj, - double jit, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMarkerParticleJitterFactor, jit, err - ); - } - - EXPORTDLL void FluidSimulation_enable_jitter_surface_marker_particles(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableJitterSurfaceMarkerParticles, err - ); - } - - EXPORTDLL void FluidSimulation_disable_jitter_surface_marker_particles(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableJitterSurfaceMarkerParticles, err - ); - } - - EXPORTDLL int FluidSimulation_is_jitter_surface_marker_particles_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isJitterSurfaceMarkerParticlesEnabled, err - ); - } - - EXPORTDLL int FluidSimulation_get_surface_subdivision_level(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSurfaceSubdivisionLevel, err - ); - } - - EXPORTDLL void FluidSimulation_set_surface_subdivision_level(FluidSimulation* obj, - int level, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSurfaceSubdivisionLevel, level, err - ); - } - - EXPORTDLL int FluidSimulation_get_num_polygonizer_slices(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getNumPolygonizerSlices, err - ); - } - - EXPORTDLL void FluidSimulation_set_num_polygonizer_slices(FluidSimulation* obj, - int numslices, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setNumPolygonizerSlices, numslices, err - ); - } - - EXPORTDLL double FluidSimulation_get_surface_smoothing_value(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSurfaceSmoothingValue, err - ); - } - - EXPORTDLL void FluidSimulation_set_surface_smoothing_value(FluidSimulation* obj, - double s, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSurfaceSmoothingValue, s, err - ); - } - - EXPORTDLL int FluidSimulation_get_surface_smoothing_iterations(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSurfaceSmoothingIterations, err - ); - } - - EXPORTDLL void FluidSimulation_set_surface_smoothing_iterations(FluidSimulation* obj, - int n, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSurfaceSmoothingIterations, n, err - ); - } - - EXPORTDLL void FluidSimulation_set_meshing_volume(FluidSimulation* obj, - MeshObject *volume, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMeshingVolume, volume, err - ); - } - - EXPORTDLL int FluidSimulation_get_min_polyhedron_triangle_count(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinPolyhedronTriangleCount, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_polyhedron_triangle_count(FluidSimulation* obj, - int count, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinPolyhedronTriangleCount, count, err - ); - } - - EXPORTDLL Vector3_t FluidSimulation_get_domain_offset(FluidSimulation* obj, - int *err) { - vmath::vec3 offset = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDomainOffset, err - ); - return CBindings::to_struct(offset); - } - - EXPORTDLL void FluidSimulation_set_domain_offset(FluidSimulation* obj, - double x, double y, double z, - int *err) { - CBindings::safe_execute_method_void_3param( - obj, &FluidSimulation::setDomainOffset, x, y, z, err - ); - } - - EXPORTDLL double FluidSimulation_get_domain_scale(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDomainScale, err - ); - } - - EXPORTDLL void FluidSimulation_set_domain_scale(FluidSimulation* obj, - double scale, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDomainScale, scale, err - ); - } - - EXPORTDLL void FluidSimulation_set_mesh_output_format_as_ply(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::setMeshOutputFormatAsPLY, err - ); - } - - EXPORTDLL void FluidSimulation_set_mesh_output_format_as_bobj(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::setMeshOutputFormatAsBOBJ, err - ); - } - - EXPORTDLL void FluidSimulation_enable_console_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableConsoleOutput, err - ); - } - - EXPORTDLL void FluidSimulation_disable_console_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableConsoleOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_console_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isConsoleOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_surface_reconstruction(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableSurfaceReconstruction, err - ); - } - - EXPORTDLL void FluidSimulation_disable_surface_reconstruction(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableSurfaceReconstruction, err - ); - } - - EXPORTDLL int FluidSimulation_is_surface_reconstruction_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isSurfaceReconstructionEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_asynchronous_meshing(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableAsynchronousMeshing, err - ); - } - - EXPORTDLL void FluidSimulation_disable_asynchronous_meshing(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableAsynchronousMeshing, err - ); - } - - EXPORTDLL int FluidSimulation_is_asynchronous_meshing_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isAsynchronousMeshingEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_preview_mesh_output(FluidSimulation* obj, - double dx, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::enablePreviewMeshOutput, dx, err - ); - } - - EXPORTDLL void FluidSimulation_disable_preview_mesh_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disablePreviewMeshOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_preview_mesh_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isPreviewMeshOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_obstacle_meshing_offset(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableObstacleMeshingOffset, err - ); - } - - EXPORTDLL void FluidSimulation_disable_obstacle_meshing_offset(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableObstacleMeshingOffset, err - ); - } - - EXPORTDLL int FluidSimulation_is_obstacle_meshing_offset_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isObstacleMeshingOffsetEnabled, err - ); - } - - EXPORTDLL double FluidSimulation_get_obstacle_meshing_offset(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getObstacleMeshingOffset, err - ); - } - - EXPORTDLL void FluidSimulation_set_obstacle_meshing_offset(FluidSimulation* obj, - double scale, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setObstacleMeshingOffset, scale, err - ); - } - - EXPORTDLL void FluidSimulation_enable_inverted_contact_normals(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableInvertedContactNormals, err - ); - } - - EXPORTDLL void FluidSimulation_disable_inverted_contact_normals(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableInvertedContactNormals, err - ); - } - - EXPORTDLL int FluidSimulation_is_inverted_contact_normals_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isInvertedContactNormalsEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_surface_motion_blur(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableSurfaceMotionBlur, err - ); - } - - EXPORTDLL void FluidSimulation_disable_surface_motion_blur(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableSurfaceMotionBlur, err - ); - } - - EXPORTDLL int FluidSimulation_is_surface_motion_blur_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isSurfaceMotionBlurEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_whitewater_motion_blur(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableWhitewaterMotionBlur, err - ); - } - - EXPORTDLL void FluidSimulation_disable_whitewater_motion_blur(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableWhitewaterMotionBlur, err - ); - } - - EXPORTDLL int FluidSimulation_is_whitewater_motion_blur_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isWhitewaterMotionBlurEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_remove_surface_near_domain(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableRemoveSurfaceNearDomain, err - ); - } - - EXPORTDLL void FluidSimulation_disable_remove_surface_near_domain(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableRemoveSurfaceNearDomain, err - ); - } - - EXPORTDLL int FluidSimulation_is_remove_surface_near_domain_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isRemoveSurfaceNearDomainEnabled, err - ); - } - - EXPORTDLL int FluidSimulation_get_remove_surface_near_domain_distance(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getRemoveSurfaceNearDomainDistance, err - ); - } - - EXPORTDLL void FluidSimulation_set_remove_surface_near_domain_distance(FluidSimulation* obj, - int n, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setRemoveSurfaceNearDomainDistance, n, err - ); - } - - EXPORTDLL void FluidSimulation_enable_fluid_particle_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableFluidParticleOutput, err - ); - } - - EXPORTDLL void FluidSimulation_disable_fluid_particle_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableFluidParticleOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_fluid_particle_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isFluidParticleOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_internal_obstacle_mesh_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableInternalObstacleMeshOutput, err - ); - } - - EXPORTDLL void FluidSimulation_disable_internal_obstacle_mesh_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableInternalObstacleMeshOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_internal_obstacle_mesh_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isInternalObstacleMeshOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_force_field_debug_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableForceFieldDebugOutput, err - ); - } - - EXPORTDLL void FluidSimulation_disable_force_field_debug_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableForceFieldDebugOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_force_field_debug_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isForceFieldDebugOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_material_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseMaterialOutput, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_material_output(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseMaterialOutput, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_material_output_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseMaterialOutputEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_particle_emission(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseParticleEmission, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_particle_emission(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseParticleEmission, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_particle_emission_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseParticleEmissionEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_foam(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseFoam, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_foam(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseFoam, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_foam_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseFoamEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_bubbles(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseBubbles, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_bubbles(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseBubbles, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_bubbles_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseBubblesEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_spray(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseSpray, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_spray(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseSpray, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_spray_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseSprayEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_dust(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffuseDust, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_dust(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffuseDust, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_dust_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseDustEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_boundary_diffuse_dust_emission(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableBoundaryDiffuseDustEmission, err - ); - } - - EXPORTDLL void FluidSimulation_disable_boundary_diffuse_dust_emission(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableBoundaryDiffuseDustEmission, err - ); - } - - EXPORTDLL int FluidSimulation_is_boundary_diffuse_dust_emission_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isBoundaryDustDiffuseEmissionEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_bubble_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableBubbleDiffuseMaterial, err - ); - } - - EXPORTDLL void FluidSimulation_disable_bubble_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableBubbleDiffuseMaterial, err - ); - } - - EXPORTDLL int FluidSimulation_is_bubble_diffuse_material_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isBubbleDiffuseMaterialEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_spray_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableSprayDiffuseMaterial, err - ); - } - - EXPORTDLL void FluidSimulation_disable_spray_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableSprayDiffuseMaterial, err - ); - } - - EXPORTDLL int FluidSimulation_is_spray_diffuse_material_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isSprayDiffuseMaterialEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_foam_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableFoamDiffuseMaterial, err - ); - } - - EXPORTDLL void FluidSimulation_disable_foam_diffuse_material(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableFoamDiffuseMaterial, err - ); - } - - EXPORTDLL int FluidSimulation_is_foam_diffuse_material_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isFoamDiffuseMaterialEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_output_diffuse_material_as_single_file(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::outputDiffuseMaterialAsSingleFile, err - ); - } - - EXPORTDLL void FluidSimulation_output_diffuse_material_as_separate_files(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::outputDiffuseMaterialAsSeparateFiles, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_material_output_as_separate_files(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffuseMaterialOutputAsSeparateFiles, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_emitter_generation_rate(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseEmitterGenerationRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_emitter_generation_rate(FluidSimulation* obj, - double rate, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseEmitterGenerationRate, rate, err - ); - } - - EXPORTDLL double FluidSimulation_get_min_diffuse_emitter_energy(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinDiffuseEmitterEnergy, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_diffuse_emitter_energy(FluidSimulation* obj, - double e, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinDiffuseEmitterEnergy, e, err - ); - } - - EXPORTDLL double FluidSimulation_get_max_diffuse_emitter_energy(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxDiffuseEmitterEnergy, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_diffuse_emitter_energy(FluidSimulation* obj, - double e, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxDiffuseEmitterEnergy, e, err - ); - } - - EXPORTDLL double FluidSimulation_get_min_diffuse_wavecrest_curvature(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinDiffuseWavecrestCurvature, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_diffuse_wavecrest_curvature(FluidSimulation* obj, - double k, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinDiffuseWavecrestCurvature, k, err - ); - } - - EXPORTDLL double FluidSimulation_get_max_diffuse_wavecrest_curvature(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxDiffuseWavecrestCurvature, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_diffuse_wavecrest_curvature(FluidSimulation* obj, - double k, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxDiffuseWavecrestCurvature, k, err - ); - } - - EXPORTDLL double FluidSimulation_get_min_diffuse_turbulence(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinDiffuseTurbulence, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_diffuse_turbulence(FluidSimulation* obj, - double t, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinDiffuseTurbulence, t, err - ); - } - - EXPORTDLL double FluidSimulation_get_max_diffuse_turbulence(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxDiffuseTurbulence, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_diffuse_turbulence(FluidSimulation* obj, - double t, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxDiffuseTurbulence, t, err - ); - } - - EXPORTDLL int FluidSimulation_get_max_num_diffuse_particles(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxNumDiffuseParticles, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_num_diffuse_particles(FluidSimulation* obj, - int n, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxNumDiffuseParticles, n, err - ); - } - - EXPORTDLL AABB_t FluidSimulation_get_diffuse_emitter_generation_bounds(FluidSimulation* obj, - int *err) { - AABB bounds = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseEmitterGenerationBounds, err - ); - - return CBindings::to_struct(bounds); - } - - EXPORTDLL void FluidSimulation_set_diffuse_emitter_generation_bounds(FluidSimulation* obj, - AABB_t bounds, int *err) { - AABB bounds_cpp = CBindings::to_class(bounds); - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseEmitterGenerationBounds, bounds_cpp, err - ); - } - - EXPORTDLL double FluidSimulation_get_min_diffuse_particle_lifetime(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinDiffuseParticleLifetime, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_diffuse_particle_lifetime(FluidSimulation* obj, - double lifetime, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinDiffuseParticleLifetime, lifetime, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_particle_lifetime_variance(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleLifetimeVariance, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_particle_lifetime_variance(FluidSimulation* obj, - double variance, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseParticleLifetimeVariance, variance, err - ); - } - - EXPORTDLL double FluidSimulation_get_foam_particle_lifetime_modifier(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getFoamParticleLifetimeModifier, err - ); - } - - EXPORTDLL void FluidSimulation_set_foam_particle_lifetime_modifier(FluidSimulation* obj, - double modifier, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setFoamParticleLifetimeModifier, modifier, err - ); - } - - EXPORTDLL double FluidSimulation_get_bubble_particle_lifetime_modifier(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getBubbleParticleLifetimeModifier, err - ); - } - - EXPORTDLL void FluidSimulation_set_bubble_particle_lifetime_modifier(FluidSimulation* obj, - double modifier, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setBubbleParticleLifetimeModifier, modifier, err - ); - } - - EXPORTDLL double FluidSimulation_get_spray_particle_lifetime_modifier(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSprayParticleLifetimeModifier, err - ); - } - - EXPORTDLL void FluidSimulation_set_spray_particle_lifetime_modifier(FluidSimulation* obj, - double modifier, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSprayParticleLifetimeModifier, modifier, err - ); - } - - EXPORTDLL double FluidSimulation_get_dust_particle_lifetime_modifier(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDustParticleLifetimeModifier, err - ); - } - - EXPORTDLL void FluidSimulation_set_dust_particle_lifetime_modifier(FluidSimulation* obj, - double modifier, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDustParticleLifetimeModifier, modifier, err - ); - } - - EXPORTDLL double FluidSimulation_get_max_diffuse_particle_lifetime(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxDiffuseParticleLifetime, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_diffuse_particle_lifetime(FluidSimulation* obj, - double lifetime, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxDiffuseParticleLifetime, lifetime, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_particle_wavecrest_emission_rate( - FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleWavecrestEmissionRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_particle_wavecrest_emission_rate( - FluidSimulation* obj, double rate, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseParticleWavecrestEmissionRate, rate, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_particle_turbulence_emission_rate( - FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleTurbulenceEmissionRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_particle_turbulence_emission_rate( - FluidSimulation* obj, double rate, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseParticleTurbulenceEmissionRate, rate, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_particle_dust_emission_rate( - FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleDustEmissionRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_particle_dust_emission_rate( - FluidSimulation* obj, double rate, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseParticleDustEmissionRate, rate, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_foam_advection_strength(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamAdvectionStrength, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_advection_strength(FluidSimulation* obj, - double s, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamAdvectionStrength, s, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_foam_layer_depth(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamLayerDepth, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_layer_depth(FluidSimulation* obj, - double depth, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamLayerDepth, depth, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_foam_layer_offset(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamLayerOffset, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_layer_offset(FluidSimulation* obj, - double offset, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamLayerOffset, offset, err - ); - } - - EXPORTDLL void FluidSimulation_enable_diffuse_preserve_foam(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableDiffusePreserveFoam, err - ); - } - - EXPORTDLL void FluidSimulation_disable_diffuse_preserve_foam(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableDiffusePreserveFoam, err - ); - } - - EXPORTDLL int FluidSimulation_is_diffuse_preserve_foam_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isDiffusePreserveFoamEnabled, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_foam_preservation_rate(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamPreservationRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_preservation_rate(FluidSimulation* obj, - double rate, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamPreservationRate, rate, err - ); - } - - EXPORTDLL double FluidSimulation_get_min_diffuse_foam_density(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinDiffuseFoamDensity, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_diffuse_foam_density(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinDiffuseFoamDensity, d, err - ); - } - - EXPORTDLL double FluidSimulation_get_max_diffuse_foam_density(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxDiffuseFoamDensity, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_diffuse_foam_density(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxDiffuseFoamDensity, d, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_bubble_drag_coefficient(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseBubbleDragCoefficient, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_bubble_drag_coefficient(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseBubbleDragCoefficient, d, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_bubble_bouyancy_coefficient(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseBubbleBouyancyCoefficient, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_bubble_bouyancy_coefficient(FluidSimulation* obj, - double b, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseBubbleBouyancyCoefficient, b, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_dust_drag_coefficient(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseDustDragCoefficient, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_dust_drag_coefficient(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseDustDragCoefficient, d, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_dust_bouyancy_coefficient(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseDustBouyancyCoefficient, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_dust_bouyancy_coefficient(FluidSimulation* obj, - double b, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseDustBouyancyCoefficient, b, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_spray_drag_coefficient(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseSprayDragCoefficient, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_spray_drag_coefficient(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseSprayDragCoefficient, d, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_spray_emission_speed(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseSprayEmissionSpeed, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_spray_emission_speed(FluidSimulation* obj, - double d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseSprayEmissionSpeed, d, err - ); - } - - EXPORTDLL int FluidSimulation_get_diffuse_foam_limit_behaviour(FluidSimulation* obj, - int *err) { - LimitBehaviour b = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamLimitBehaviour, err - ); - - int enum_value = 0; - if (b == LimitBehaviour::kill) { - enum_value = 0; - } else if (b == LimitBehaviour::ballistic) { - enum_value = 1; - } else if (b == LimitBehaviour::collide) { - enum_value = 2; - } - - return enum_value; - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_limit_behaviour(FluidSimulation* obj, - int enum_value, - int *err) { - LimitBehaviour b = LimitBehaviour::kill; - if (enum_value == 0) { - b = LimitBehaviour::kill; - } else if (enum_value == 1) { - b = LimitBehaviour::ballistic; - } else if (enum_value == 2) { - b = LimitBehaviour::collide; - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamLimitBehaviour, b, err - ); - } - - EXPORTDLL int FluidSimulation_get_diffuse_bubble_limit_behaviour(FluidSimulation* obj, - int *err) { - LimitBehaviour b = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseBubbleLimitBehaviour, err - ); - - int enum_value = 0; - if (b == LimitBehaviour::kill) { - enum_value = 0; - } else if (b == LimitBehaviour::ballistic) { - enum_value = 1; - } else if (b == LimitBehaviour::collide) { - enum_value = 2; - } - - return enum_value; - } - - EXPORTDLL void FluidSimulation_set_diffuse_bubble_limit_behaviour(FluidSimulation* obj, - int enum_value, - int *err) { - LimitBehaviour b = LimitBehaviour::kill; - if (enum_value == 0) { - b = LimitBehaviour::kill; - } else if (enum_value == 1) { - b = LimitBehaviour::ballistic; - } else if (enum_value == 2) { - b = LimitBehaviour::collide; - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseBubbleLimitBehaviour, b, err - ); - } - - EXPORTDLL int FluidSimulation_get_diffuse_spray_limit_behaviour(FluidSimulation* obj, - int *err) { - LimitBehaviour b = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseSprayLimitBehaviour, err - ); - - int enum_value = 0; - if (b == LimitBehaviour::kill) { - enum_value = 0; - } else if (b == LimitBehaviour::ballistic) { - enum_value = 1; - } else if (b == LimitBehaviour::collide) { - enum_value = 2; - } - - return enum_value; - } - - EXPORTDLL void FluidSimulation_set_diffuse_spray_limit_behaviour(FluidSimulation* obj, - int enum_value, - int *err) { - LimitBehaviour b = LimitBehaviour::kill; - if (enum_value == 0) { - b = LimitBehaviour::kill; - } else if (enum_value == 1) { - b = LimitBehaviour::ballistic; - } else if (enum_value == 2) { - b = LimitBehaviour::collide; - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseSprayLimitBehaviour, b, err - ); - } - - EXPORTDLL int FluidSimulation_get_diffuse_dust_limit_behaviour(FluidSimulation* obj, - int *err) { - LimitBehaviour b = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseDustLimitBehaviour, err - ); - - int enum_value = 0; - if (b == LimitBehaviour::kill) { - enum_value = 0; - } else if (b == LimitBehaviour::ballistic) { - enum_value = 1; - } else if (b == LimitBehaviour::collide) { - enum_value = 2; - } - - return enum_value; - } - - EXPORTDLL void FluidSimulation_set_diffuse_dust_limit_behaviour(FluidSimulation* obj, - int enum_value, - int *err) { - LimitBehaviour b = LimitBehaviour::kill; - if (enum_value == 0) { - b = LimitBehaviour::kill; - } else if (enum_value == 1) { - b = LimitBehaviour::ballistic; - } else if (enum_value == 2) { - b = LimitBehaviour::collide; - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseDustLimitBehaviour, b, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_foam_active_boundary_sides(FluidSimulation* obj, - int *result, - int *err) { - std::vector boolvect = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseFoamActiveBoundarySides, err - ); - - for (int i = 0; i < 6; i++) { - result[i] = boolvect[i]; - } - } - - EXPORTDLL void FluidSimulation_set_diffuse_foam_active_boundary_sides(FluidSimulation* obj, - int *active, int *err) { - std::vector boolvect; - for (int i = 0; i < 6; i++) { - boolvect.push_back(active[i] != 0); - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseFoamActiveBoundarySides, boolvect, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_bubble_active_boundary_sides(FluidSimulation* obj, - int *result, - int *err) { - std::vector boolvect = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseBubbleActiveBoundarySides, err - ); - - for (int i = 0; i < 6; i++) { - result[i] = boolvect[i]; - } - } - - EXPORTDLL void FluidSimulation_set_diffuse_bubble_active_boundary_sides(FluidSimulation* obj, - int *active, int *err) { - std::vector boolvect; - for (int i = 0; i < 6; i++) { - boolvect.push_back(active[i] != 0); - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseBubbleActiveBoundarySides, boolvect, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_spray_active_boundary_sides(FluidSimulation* obj, - int *result, - int *err) { - std::vector boolvect = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseSprayActiveBoundarySides, err - ); - - for (int i = 0; i < 6; i++) { - result[i] = (bool)boolvect[i]; - } - } - - EXPORTDLL void FluidSimulation_set_diffuse_spray_active_boundary_sides(FluidSimulation* obj, - int *active, int *err) { - std::vector boolvect; - for (int i = 0; i < 6; i++) { - boolvect.push_back(active[i] != 0); - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseSprayActiveBoundarySides, boolvect, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_dust_active_boundary_sides(FluidSimulation* obj, - int *result, - int *err) { - std::vector boolvect = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseDustActiveBoundarySides, err - ); - - for (int i = 0; i < 6; i++) { - result[i] = (bool)boolvect[i]; - } - } - - EXPORTDLL void FluidSimulation_set_diffuse_dust_active_boundary_sides(FluidSimulation* obj, - int *active, int *err) { - std::vector boolvect; - for (int i = 0; i < 6; i++) { - boolvect.push_back(active[i] != 0); - } - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseDustActiveBoundarySides, boolvect, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_obstacle_influence_base_level(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseObstacleInfluenceBaseLevel, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_obstacle_influence_base_level(FluidSimulation* obj, - double level, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseObstacleInfluenceBaseLevel, level, err - ); - } - - EXPORTDLL double FluidSimulation_get_diffuse_obstacle_influence_decay_rate(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseObstacleInfluenceDecayRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_diffuse_obstacle_influence_decay_rate(FluidSimulation* obj, - double decay, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setDiffuseObstacleInfluenceDecayRate, decay, err - ); - } - - EXPORTDLL void FluidSimulation_enable_opencl_particle_advection(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableOpenCLParticleAdvection, err - ); - } - - EXPORTDLL void FluidSimulation_disable_opencl_particle_advection(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableOpenCLParticleAdvection, err - ); - } - - EXPORTDLL int FluidSimulation_is_opencl_particle_advection_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isOpenCLParticleAdvectionEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_opencl_scalar_field(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableOpenCLScalarField, err - ); - } - - EXPORTDLL int FluidSimulation_get_particle_advection_kernel_workload_size( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getParticleAdvectionKernelWorkLoadSize, err - ); - } - - EXPORTDLL void FluidSimulation_set_particle_advection_kernel_workload_size( - FluidSimulation* obj, int size, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setParticleAdvectionKernelWorkLoadSize, size, err - ); - } - - EXPORTDLL int FluidSimulation_get_scalar_field_kernel_workload_size( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getScalarFieldKernelWorkLoadSize, err - ); - } - - EXPORTDLL void FluidSimulation_set_scalar_field_kernel_workload_size( - FluidSimulation* obj, int size, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setScalarFieldKernelWorkLoadSize, size, err - ); - } - - EXPORTDLL void FluidSimulation_disable_opencl_scalar_field(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableOpenCLScalarField, err - ); - } - - EXPORTDLL int FluidSimulation_is_opencl_scalar_field_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isOpenCLScalarFieldEnabled, err - ); - } - - EXPORTDLL int FluidSimulation_get_max_thread_count( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxThreadCount, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_thread_count(FluidSimulation* obj, - int n, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxThreadCount, n, err - ); - } - - EXPORTDLL void FluidSimulation_add_body_force(FluidSimulation* obj, - double fx, double fy, double fz, - int *err) { - CBindings::safe_execute_method_void_3param( - obj, &FluidSimulation::addBodyForce, fx, fy, fz, err - ); - } - - EXPORTDLL Vector3_t FluidSimulation_get_constant_body_force(FluidSimulation* obj, - int *err) { - vmath::vec3 f = CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getConstantBodyForce, err - ); - return CBindings::to_struct(f); - } - - EXPORTDLL void FluidSimulation_reset_body_force(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::resetBodyForce, err - ); - } - - EXPORTDLL void FluidSimulation_enable_force_fields(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableForceFields, err - ); - } - - EXPORTDLL void FluidSimulation_disable_force_fields(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableForceFields, err - ); - } - - EXPORTDLL int FluidSimulation_is_force_fields_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isForceFieldsEnabled, err - ); - } - - EXPORTDLL int FluidSimulation_get_force_field_reduction_level(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getForceFieldReductionLevel, err - ); - } - - EXPORTDLL void FluidSimulation_set_force_field_reduction_level(FluidSimulation* obj, - int level, int *err) { - return CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setForceFieldReductionLevel, level, err - ); - } - - EXPORTDLL ForceFieldGrid* FluidSimulation_get_force_field_grid(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getForceFieldGrid, err - ); - } - - EXPORTDLL double FluidSimulation_get_viscosity(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getViscosity, err - ); - } - - EXPORTDLL void FluidSimulation_set_viscosity(FluidSimulation* obj, - double v, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setViscosity, v, err - ); - } - - EXPORTDLL double FluidSimulation_get_surface_tension(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSurfaceTension, err - ); - } - - EXPORTDLL void FluidSimulation_set_surface_tension(FluidSimulation* obj, - double k, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSurfaceTension, k, err - ); - } - - EXPORTDLL void FluidSimulation_enable_sheet_seeding(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableSheetSeeding, err - ); - } - - EXPORTDLL void FluidSimulation_disable_sheet_seeding(FluidSimulation* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableSheetSeeding, err - ); - } - - EXPORTDLL int FluidSimulation_is_sheet_seeding_enabled(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isSheetSeedingEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_set_sheet_fill_threshold(FluidSimulation* obj, double f, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSheetFillThreshold, f, err - ); - } - - EXPORTDLL double FluidSimulation_get_sheet_fill_threshold(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSheetFillThreshold, err - ); - } - - EXPORTDLL void FluidSimulation_set_sheet_fill_rate(FluidSimulation* obj, double r, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSheetFillRate, r, err - ); - } - - EXPORTDLL double FluidSimulation_get_sheet_fill_rate(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSheetFillRate, err - ); - } - - EXPORTDLL void FluidSimulation_set_boundary_friction(FluidSimulation* obj, double f, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setBoundaryFriction, f, err - ); - } - - EXPORTDLL double FluidSimulation_get_boundary_friction(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getBoundaryFriction, err - ); - } - - EXPORTDLL int FluidSimulation_get_CFL_condition_number( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getCFLConditionNumber, err - ); - } - - EXPORTDLL void FluidSimulation_set_CFL_condition_number( - FluidSimulation* obj, int n, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setCFLConditionNumber, n, err - ); - } - - EXPORTDLL double FluidSimulation_get_surface_tension_condition_number( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getSurfaceTensionConditionNumber, err - ); - } - - EXPORTDLL void FluidSimulation_set_surface_tension_condition_number( - FluidSimulation* obj, double n, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setSurfaceTensionConditionNumber, n, err - ); - } - - EXPORTDLL int FluidSimulation_get_min_time_steps_per_frame( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMinTimeStepsPerFrame, err - ); - } - - EXPORTDLL void FluidSimulation_set_min_time_steps_per_frame( - FluidSimulation* obj, int n, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMinTimeStepsPerFrame, n, err - ); - } - - EXPORTDLL int FluidSimulation_get_max_time_steps_per_frame( - FluidSimulation* obj, int *err) { - - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMaxTimeStepsPerFrame, err - ); - } - - EXPORTDLL void FluidSimulation_set_max_time_steps_per_frame( - FluidSimulation* obj, int n, int *err) { - - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setMaxTimeStepsPerFrame, n, err - ); - } - - EXPORTDLL void FluidSimulation_enable_adaptive_obstacle_time_stepping(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableAdaptiveObstacleTimeStepping, err - ); - } - - EXPORTDLL void FluidSimulation_disable_adaptive_obstacle_time_stepping(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableAdaptiveObstacleTimeStepping, err - ); - } - - EXPORTDLL int FluidSimulation_is_adaptive_obstacle_time_stepping_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isAdaptiveObstacleTimeSteppingEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_adaptive_force_field_time_stepping(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableAdaptiveForceFieldTimeStepping, err - ); - } - - EXPORTDLL void FluidSimulation_disable_adaptive_force_field_time_stepping(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableAdaptiveForceFieldTimeStepping, err - ); - } - - EXPORTDLL int FluidSimulation_is_adaptive_force_field_time_stepping_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isAdaptiveForceFieldTimeSteppingEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_extreme_velocity_removal(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableExtremeVelocityRemoval, err - ); - } - - EXPORTDLL void FluidSimulation_disable_extreme_velocity_removal(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableExtremeVelocityRemoval, err - ); - } - - EXPORTDLL int FluidSimulation_is_extreme_velocity_removal_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isExtremeVelocityRemovalEnabled, err - ); - } - - EXPORTDLL double FluidSimulation_get_PICFLIP_ratio(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getPICFLIPRatio, err - ); - } - - EXPORTDLL void FluidSimulation_set_PICFLIP_ratio(FluidSimulation* obj, - double ratio, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setPICFLIPRatio, ratio, err - ); - } - - EXPORTDLL void FluidSimulation_get_preferred_gpu_device(FluidSimulation* obj, - char *device_name, int *err) { - *err = CBindings::SUCCESS; - try { - std::string name = obj->getPreferredGPUDevice(); - name.copy(device_name, 4096); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_set_preferred_gpu_device(FluidSimulation* obj, - char *device_name, int *err) { - std::string str_device_name = device_name; - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::setPreferredGPUDevice, str_device_name, err - ); - } - - EXPORTDLL void FluidSimulation_enable_static_solid_levelset_precomputation(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableStaticSolidLevelSetPrecomputation, err - ); - } - - EXPORTDLL void FluidSimulation_disable_static_solid_levelset_precomputation(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableStaticSolidLevelSetPrecomputation, err - ); - } - - EXPORTDLL int FluidSimulation_is_static_solid_levelset_precomputation_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isStaticSolidLevelSetPrecomputationEnabled, err - ); - } - - EXPORTDLL void FluidSimulation_enable_temporary_mesh_levelset(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::enableTemporaryMeshLevelSet, err - ); - } - - EXPORTDLL void FluidSimulation_disable_temporary_mesh_levelset(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::disableTemporaryMeshLevelSet, err - ); - } - - EXPORTDLL int FluidSimulation_is_temporary_mesh_levelset_enabled(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::isTemporaryMeshLevelSetEnabled, err - ); - } - - - EXPORTDLL void FluidSimulation_add_mesh_fluid_source(FluidSimulation* obj, - MeshFluidSource *source, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::addMeshFluidSource, source, err - ); - } - - EXPORTDLL void FluidSimulation_remove_mesh_fluid_source(FluidSimulation* obj, - MeshFluidSource *source, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::removeMeshFluidSource, source, err - ); - } - - EXPORTDLL void FluidSimulation_remove_mesh_fluid_sources(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::removeMeshFluidSources, err - ); - } - - EXPORTDLL void FluidSimulation_add_mesh_obstacle(FluidSimulation* obj, - MeshObject *obstacle, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::addMeshObstacle, obstacle, err - ); - } - - EXPORTDLL void FluidSimulation_remove_mesh_obstacle(FluidSimulation* obj, - MeshObject *obstacle, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::removeMeshObstacle, obstacle, err - ); - } - - EXPORTDLL void FluidSimulation_remove_mesh_obstacles(FluidSimulation* obj, - int *err) { - CBindings::safe_execute_method_void_0param( - obj, &FluidSimulation::removeMeshObstacles, err - ); - } - - EXPORTDLL void FluidSimulation_add_mesh_fluid(FluidSimulation* obj, - MeshObject *fluid, - Vector3_t velocity, - int *err) { - vmath::vec3 v(velocity.x, velocity.y, velocity.z); - - *err = CBindings::SUCCESS; - try { - obj->addMeshFluid(*fluid, v); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL int FluidSimulation_get_num_marker_particles(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getNumMarkerParticles, err - ); - } - - EXPORTDLL void FluidSimulation_get_marker_particles( - FluidSimulation* obj, - int startidx, int endidx, - MarkerParticle_t *out, int *err) { - - std::vector mps = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getMarkerParticles, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < mps.size(); i++) { - out[i] = CBindings::to_struct(mps[i]); - } - } - - EXPORTDLL void FluidSimulation_get_marker_particle_positions( - FluidSimulation* obj, - int startidx, int endidx, - Vector3_t *out, int *err) { - - std::vector mps = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getMarkerParticlePositions, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < mps.size(); i++) { - out[i] = CBindings::to_struct(mps[i]); - } - } - - EXPORTDLL void FluidSimulation_get_marker_particle_velocities( - FluidSimulation* obj, - int startidx, int endidx, - Vector3_t *out, int *err) { - - std::vector mvs = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getMarkerParticleVelocities, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < mvs.size(); i++) { - out[i] = CBindings::to_struct(mvs[i]); - } - } - - EXPORTDLL int FluidSimulation_get_num_diffuse_particles(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getNumDiffuseParticles, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particles( - FluidSimulation* obj, - int startidx, int endidx, - DiffuseParticle_t *out, int *err) { - - std::vector dps = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getDiffuseParticles, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < dps.size(); i++) { - out[i] = CBindings::to_struct(dps[i]); - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_positions( - FluidSimulation* obj, - int startidx, int endidx, - Vector3_t *out, int *err) { - - std::vector dps = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getDiffuseParticlePositions, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < dps.size(); i++) { - out[i] = CBindings::to_struct(dps[i]); - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_velocities( - FluidSimulation* obj, - int startidx, int endidx, - Vector3_t *out, int *err) { - - std::vector dvs = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getDiffuseParticleVelocities, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < dvs.size(); i++) { - out[i] = CBindings::to_struct(dvs[i]); - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_lifetimes( - FluidSimulation* obj, - int startidx, int endidx, - float *out, int *err) { - - std::vector lfs = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getDiffuseParticleLifetimes, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < lfs.size(); i++) { - out[i] = lfs[i]; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_types( - FluidSimulation* obj, - int startidx, int endidx, - char *out, int *err) { - - std::vector types = CBindings::safe_execute_method_ret_2param( - obj, &FluidSimulation::getDiffuseParticleTypes, - startidx, endidx, err - ); - - for (unsigned int i = 0; i < types.size(); i++) { - out[i] = types[i]; - } - } - - EXPORTDLL char* FluidSimulation_get_error_message() { - return CBindings::get_error_message(); - } - - EXPORTDLL int FluidSimulation_get_surface_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfaceData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_surface_preview_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfacePreviewData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_surface_blur_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfaceBlurData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_foam_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseFoamData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_bubble_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseBubbleData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_spray_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseSprayData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_dust_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseDustData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_foam_blur_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseFoamBlurData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_bubble_blur_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseBubbleBlurData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_spray_blur_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseSprayBlurData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_diffuse_dust_blur_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseDustBlurData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_fluid_particle_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getFluidParticleData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_internal_obstacle_mesh_data_size(FluidSimulation* obj, - int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getInternalObstacleMeshData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_force_field_debug_data_size(FluidSimulation* obj, - int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getForceFieldDebugData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL int FluidSimulation_get_logfile_data_size(FluidSimulation* obj, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getLogFileData(); - return (int)data->size(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return 0; - } - - EXPORTDLL unsigned int FluidSimulation_get_marker_particle_position_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMarkerParticlePositionDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_marker_particle_velocity_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getMarkerParticleVelocityDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_diffuse_particle_position_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticlePositionDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_diffuse_particle_velocity_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleVelocityDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_diffuse_particle_lifetime_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleLifetimeDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_diffuse_particle_type_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleTypeDataSize, err - ); - } - - EXPORTDLL unsigned int FluidSimulation_get_diffuse_particle_id_data_size(FluidSimulation* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getDiffuseParticleIdDataSize, err - ); - } - - EXPORTDLL void FluidSimulation_get_surface_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfaceData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_surface_preview_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfacePreviewData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_surface_blur_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getSurfaceBlurData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_foam_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseFoamData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_bubble_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseBubbleData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_spray_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseSprayData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_dust_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseDustData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_foam_blur_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseFoamBlurData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_bubble_blur_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseBubbleBlurData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_spray_blur_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseSprayBlurData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_dust_blur_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getDiffuseDustBlurData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_fluid_particle_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getFluidParticleData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_internal_obstacle_mesh_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getInternalObstacleMeshData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_force_field_debug_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getForceFieldDebugData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_logfile_data(FluidSimulation* obj, - char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - std::vector *data = obj->getLogFileData(); - std::memcpy(c_data, data->data(), data->size()); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL FluidSimulationFrameStats FluidSimulation_get_frame_stats_data(FluidSimulation* obj, - int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &FluidSimulation::getFrameStatsData, err - ); - } - - EXPORTDLL void FluidSimulation_get_marker_particle_position_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getMarkerParticlePositionDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_marker_particle_velocity_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getMarkerParticleVelocityDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_position_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getDiffuseParticlePositionDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_velocity_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getDiffuseParticleVelocityDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_lifetime_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getDiffuseParticleLifetimeDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_type_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getDiffuseParticleTypeDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_id_data_range(FluidSimulation* obj, - int start_idx, int end_idx, char *c_data, int *err) { - *err = CBindings::SUCCESS; - try { - obj->getDiffuseParticleIdDataRange(start_idx, end_idx, c_data); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void FluidSimulation_get_marker_particle_position_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getMarkerParticlePositionData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_marker_particle_velocity_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getMarkerParticleVelocityData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_position_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getDiffuseParticlePositionData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_velocity_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getDiffuseParticleVelocityData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_lifetime_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getDiffuseParticleLifetimeData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_type_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getDiffuseParticleTypeData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_get_diffuse_particle_id_data(FluidSimulation* obj, - char *c_data, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::getDiffuseParticleIdData, c_data, err - ); - } - - EXPORTDLL void FluidSimulation_load_marker_particle_data(FluidSimulation* obj, - FluidSimulationMarkerParticleData data, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::loadMarkerParticleData, data, err - ); - } - - EXPORTDLL void FluidSimulation_load_diffuse_particle_data(FluidSimulation* obj, - FluidSimulationDiffuseParticleData data, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &FluidSimulation::loadDiffuseParticleData, data, err - ); - } -} diff --git a/src/c_bindings/forcefield_c.cpp b/src/c_bindings/forcefield_c.cpp deleted file mode 100644 index 367a0b4..0000000 --- a/src/c_bindings/forcefield_c.cpp +++ /dev/null @@ -1,209 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefield.h" -#include "../meshutils.h" -#include "../trianglemesh.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL void ForceField_update_mesh_static( - ForceField* obj, - MeshUtils::TriangleMesh_t mesh_data, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh mesh; - MeshUtils::structToTriangleMesh(mesh_data, mesh); - obj->updateMeshStatic(mesh); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void ForceField_update_mesh_animated( - ForceField* obj, - MeshUtils::TriangleMesh_t mesh_data_previous, - MeshUtils::TriangleMesh_t mesh_data_current, - MeshUtils::TriangleMesh_t mesh_data_next, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh meshPrevious, meshCurrent, meshNext; - MeshUtils::structToTriangleMesh(mesh_data_previous, meshPrevious); - MeshUtils::structToTriangleMesh(mesh_data_current, meshCurrent); - MeshUtils::structToTriangleMesh(mesh_data_next, meshNext); - obj->updateMeshAnimated(meshPrevious, meshCurrent, meshNext); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void ForceField_enable(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::enable, err - ); - } - - EXPORTDLL void ForceField_disable(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::disable, err - ); - } - - EXPORTDLL int ForceField_is_enabled(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::isEnabled, err - ); - } - - EXPORTDLL float ForceField_get_strength(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getStrength, err - ); - } - - EXPORTDLL void ForceField_set_strength(ForceField* obj, float s, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setStrength, s, err - ); - } - - EXPORTDLL float ForceField_get_falloff_power(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getFalloffPower, err - ); - } - - EXPORTDLL void ForceField_set_falloff_power(ForceField* obj, float p, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setFalloffPower, p, err - ); - } - - EXPORTDLL float ForceField_get_max_force_limit_factor(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getMaxForceLimitFactor, err - ); - } - - EXPORTDLL void ForceField_set_max_force_limit_factor(ForceField* obj, float factor, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setMaxForceLimitFactor, factor, err - ); - } - - EXPORTDLL void ForceField_enable_min_distance(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::enableMinDistance, err - ); - } - - EXPORTDLL void ForceField_disable_min_distance(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::disableMinDistance, err - ); - } - - EXPORTDLL int ForceField_is_min_distance_enabled(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::isMinDistanceEnabled, err - ); - } - - EXPORTDLL float ForceField_get_min_distance(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getMinDistance, err - ); - } - - EXPORTDLL void ForceField_set_min_distance(ForceField* obj, float d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setMinDistance, d, err - ); - } - - EXPORTDLL void ForceField_enable_max_distance(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::enableMaxDistance, err - ); - } - - EXPORTDLL void ForceField_disable_max_distance(ForceField* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceField::disableMaxDistance, err - ); - } - - EXPORTDLL int ForceField_is_max_distance_enabled(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::isMaxDistanceEnabled, err - ); - } - - EXPORTDLL float ForceField_get_max_distance(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getMaxDistance, err - ); - } - - EXPORTDLL void ForceField_set_max_distance(ForceField* obj, float d, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setMaxDistance, d, err - ); - } - - EXPORTDLL float ForceField_get_gravity_scale(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getGravityScale, err - ); - } - - EXPORTDLL void ForceField_set_gravity_scale(ForceField* obj, float s, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setGravityScale, s, err - ); - } - - EXPORTDLL float ForceField_get_gravity_scale_width(ForceField* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceField::getGravityScaleWidth, err - ); - } - - EXPORTDLL void ForceField_set_gravity_scale_width(ForceField* obj, float w, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceField::setGravityScaleWidth, w, err - ); - } -} \ No newline at end of file diff --git a/src/c_bindings/forcefieldcurve_c.cpp b/src/c_bindings/forcefieldcurve_c.cpp deleted file mode 100644 index 241677f..0000000 --- a/src/c_bindings/forcefieldcurve_c.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefieldcurve.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL ForceFieldCurve* ForceFieldCurve_new(int *err) { - - *err = CBindings::SUCCESS; - ForceFieldCurve *ffs = nullptr; - try { - ffs = new ForceFieldCurve(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return ffs; - } - - EXPORTDLL void ForceFieldCurve_destroy(ForceFieldCurve *obj) { - delete obj; - } - - EXPORTDLL float ForceFieldCurve_get_flow_strength(ForceFieldCurve* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceFieldCurve::getFlowStrength, err - ); - } - - EXPORTDLL void ForceFieldCurve_set_flow_strength(ForceFieldCurve* obj, float s, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceFieldCurve::setFlowStrength, s, err - ); - } - - EXPORTDLL float ForceFieldCurve_get_spin_strength(ForceFieldCurve* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceFieldCurve::getSpinStrength, err - ); - } - - EXPORTDLL void ForceFieldCurve_set_spin_strength(ForceFieldCurve* obj, float s, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceFieldCurve::setSpinStrength, s, err - ); - } - - EXPORTDLL void ForceFieldCurve_enable_endcaps(ForceFieldCurve* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceFieldCurve::enableEndCaps, err - ); - } - - EXPORTDLL void ForceFieldCurve_disable_endcaps(ForceFieldCurve* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &ForceFieldCurve::disableEndCaps, err - ); - } - - EXPORTDLL int ForceFieldCurve_is_endcaps_enabled(ForceFieldCurve* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &ForceFieldCurve::isEndCapsEnabled, err - ); - } - -} \ No newline at end of file diff --git a/src/c_bindings/forcefieldgrid_c.cpp b/src/c_bindings/forcefieldgrid_c.cpp deleted file mode 100644 index 2f25acb..0000000 --- a/src/c_bindings/forcefieldgrid_c.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefieldgrid.h" -#include "../forcefield.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL ForceFieldGrid* ForceFieldGrid_new(int *err) { - - *err = CBindings::SUCCESS; - ForceFieldGrid *fgrid = nullptr; - try { - fgrid = new ForceFieldGrid(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return fgrid; - } - - EXPORTDLL void ForceFieldGrid_destroy(ForceFieldGrid *obj) { - delete obj; - } - - EXPORTDLL void ForceFieldGrid_add_force_field(ForceFieldGrid* obj, ForceField *field, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &ForceFieldGrid::addForceField, field, err - ); - } - -} \ No newline at end of file diff --git a/src/c_bindings/forcefieldpoint_c.cpp b/src/c_bindings/forcefieldpoint_c.cpp deleted file mode 100644 index 263d6a9..0000000 --- a/src/c_bindings/forcefieldpoint_c.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefieldpoint.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL ForceFieldPoint* ForceFieldPoint_new(int *err) { - - *err = CBindings::SUCCESS; - ForceFieldPoint *ffp = nullptr; - try { - ffp = new ForceFieldPoint(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return ffp; - } - - EXPORTDLL void ForceFieldPoint_destroy(ForceFieldPoint *obj) { - delete obj; - } - -} \ No newline at end of file diff --git a/src/c_bindings/forcefieldsurface_c.cpp b/src/c_bindings/forcefieldsurface_c.cpp deleted file mode 100644 index 4e32b43..0000000 --- a/src/c_bindings/forcefieldsurface_c.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefieldsurface.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL ForceFieldSurface* ForceFieldSurface_new(int *err) { - - *err = CBindings::SUCCESS; - ForceFieldSurface *ffs = nullptr; - try { - ffs = new ForceFieldSurface(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return ffs; - } - - EXPORTDLL void ForceFieldSurface_destroy(ForceFieldSurface *obj) { - delete obj; - } - -} \ No newline at end of file diff --git a/src/c_bindings/forcefieldvolume_c.cpp b/src/c_bindings/forcefieldvolume_c.cpp deleted file mode 100644 index 0a29051..0000000 --- a/src/c_bindings/forcefieldvolume_c.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../forcefieldvolume.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL ForceFieldVolume* ForceFieldVolume_new(int *err) { - - *err = CBindings::SUCCESS; - ForceFieldVolume *ffv = nullptr; - try { - ffv = new ForceFieldVolume(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return ffv; - } - - EXPORTDLL void ForceFieldVolume_destroy(ForceFieldVolume *obj) { - delete obj; - } - -} \ No newline at end of file diff --git a/src/c_bindings/gridindex_c.h b/src/c_bindings/gridindex_c.h deleted file mode 100644 index acfffb8..0000000 --- a/src/c_bindings/gridindex_c.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef FLUIDENGINE_GRIDINDEX_T_H -#define FLUIDENGINE_GRIDINDEX_T_H - -typedef struct GridIndex_t { - int i; - int j; - int k; -} GridIndex_t; - -#endif \ No newline at end of file diff --git a/src/c_bindings/markerparticle_c.h b/src/c_bindings/markerparticle_c.h deleted file mode 100644 index c369165..0000000 --- a/src/c_bindings/markerparticle_c.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef FLUIDENGINE_MARKERPARTICLE_T_H -#define FLUIDENGINE_MARKERPARTICLE_T_H - -#include "vector3_c.h" - -typedef struct MarkerParticle_t { - Vector3_t position; - Vector3_t velocity; -} MarkerParticle_t; - -#endif \ No newline at end of file diff --git a/src/c_bindings/meshfluidsource_c.cpp b/src/c_bindings/meshfluidsource_c.cpp deleted file mode 100644 index e3d935d..0000000 --- a/src/c_bindings/meshfluidsource_c.cpp +++ /dev/null @@ -1,258 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../meshfluidsource.h" -#include "../meshutils.h" -#include "../trianglemesh.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL MeshFluidSource* MeshFluidSource_new(int i, int j, int k, double dx, int *err) { - - *err = CBindings::SUCCESS; - MeshFluidSource *source = nullptr; - try { - source = new MeshFluidSource(i, j, k, dx); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return source; - } - - EXPORTDLL void MeshFluidSource_destroy(MeshFluidSource *obj) { - delete obj; - } - - EXPORTDLL void MeshFluidSource_update_mesh_static( - MeshFluidSource* obj, - MeshUtils::TriangleMesh_t mesh_data, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh mesh; - MeshUtils::structToTriangleMesh(mesh_data, mesh); - obj->updateMeshStatic(mesh); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void MeshFluidSource_update_mesh_animated( - MeshFluidSource* obj, - MeshUtils::TriangleMesh_t mesh_data_previous, - MeshUtils::TriangleMesh_t mesh_data_current, - MeshUtils::TriangleMesh_t mesh_data_next, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh meshPrevious, meshCurrent, meshNext; - MeshUtils::structToTriangleMesh(mesh_data_previous, meshPrevious); - MeshUtils::structToTriangleMesh(mesh_data_current, meshCurrent); - MeshUtils::structToTriangleMesh(mesh_data_next, meshNext); - obj->updateMeshAnimated(meshPrevious, meshCurrent, meshNext); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void MeshFluidSource_enable(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::enable, err - ); - } - - EXPORTDLL void MeshFluidSource_disable(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::disable, err - ); - } - - EXPORTDLL int MeshFluidSource_is_enabled(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isEnabled, err - ); - } - - EXPORTDLL int MeshFluidSource_get_substep_emissions(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::getSubstepEmissions, err - ); - } - - EXPORTDLL void MeshFluidSource_set_substep_emissions(MeshFluidSource* obj, int n, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshFluidSource::setSubstepEmissions, n, err - ); - } - - EXPORTDLL void MeshFluidSource_set_inflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::setInflow, err - ); - } - - EXPORTDLL void MeshFluidSource_set_outflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::setOutflow, err - ); - } - - EXPORTDLL int MeshFluidSource_is_inflow(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isInflow, err - ); - } - - EXPORTDLL int MeshFluidSource_is_outflow(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isOutflow, err - ); - } - - EXPORTDLL void MeshFluidSource_enable_fluid_outflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::enableFluidOutflow, err - ); - } - - EXPORTDLL void MeshFluidSource_disable_fluid_outflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::disableFluidOutflow, err - ); - } - - EXPORTDLL int MeshFluidSource_is_fluid_outflow_enabled(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isFluidOutflowEnabled, err - ); - } - - EXPORTDLL void MeshFluidSource_enable_diffuse_outflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::enableDiffuseOutflow, err - ); - } - - EXPORTDLL void MeshFluidSource_disable_diffuse_outflow(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::disableDiffuseOutflow, err - ); - } - - EXPORTDLL int MeshFluidSource_is_diffuse_outflow_enabled(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isDiffuseOutflowEnabled, err - ); - } - - EXPORTDLL Vector3_t MeshFluidSource_get_velocity(MeshFluidSource* obj, int *err) { - vmath::vec3 velocity = CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::getVelocity, err - ); - return CBindings::to_struct(velocity); - } - - EXPORTDLL void MeshFluidSource_set_velocity(MeshFluidSource* obj, - double vx, double vy, double vz, - int *err) { - vmath::vec3 velocity(vx, vy, vz); - CBindings::safe_execute_method_void_1param( - obj, &MeshFluidSource::setVelocity, velocity, err - ); - } - - EXPORTDLL void MeshFluidSource_enable_append_object_velocity(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::enableAppendObjectVelocity, err - ); - } - - EXPORTDLL void MeshFluidSource_disable_append_object_velocity(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::disableAppendObjectVelocity, err - ); - } - - EXPORTDLL int MeshFluidSource_is_append_object_velocity_enabled(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isAppendObjectVelocityEnabled, err - ); - } - - EXPORTDLL float MeshFluidSource_get_object_velocity_influence(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::getObjectVelocityInfluence, err - ); - } - - EXPORTDLL void MeshFluidSource_set_object_velocity_influence(MeshFluidSource* obj, - float value, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshFluidSource::setObjectVelocityInfluence, value, err - ); - } - - EXPORTDLL void MeshFluidSource_enable_constrained_fluid_velocity(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::enableConstrainedFluidVelocity, err - ); - } - - EXPORTDLL void MeshFluidSource_disable_constrained_fluid_velocity(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::disableConstrainedFluidVelocity, err - ); - } - - EXPORTDLL int MeshFluidSource_is_constrained_fluid_velocity_enabled(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isConstrainedFluidVelocityEnabled, err - ); - } - - EXPORTDLL void MeshFluidSource_outflow_inverse(MeshFluidSource* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshFluidSource::outflowInverse, err - ); - } - - EXPORTDLL int MeshFluidSource_is_outflow_inversed(MeshFluidSource* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshFluidSource::isOutflowInversed, err - ); - } - -} diff --git a/src/c_bindings/meshobject_c.cpp b/src/c_bindings/meshobject_c.cpp deleted file mode 100644 index e59d53d..0000000 --- a/src/c_bindings/meshobject_c.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../meshobject.h" -#include "../meshutils.h" -#include "../trianglemesh.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -extern "C" { - - EXPORTDLL MeshObject* MeshObject_new(int i, int j, int k, double dx, int *err) { - - *err = CBindings::SUCCESS; - MeshObject *obstacle = nullptr; - try { - obstacle = new MeshObject(i, j, k, dx); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return obstacle; - } - - EXPORTDLL void MeshObject_destroy(MeshObject *obj) { - delete obj; - } - - EXPORTDLL void MeshObject_update_mesh_static( - MeshObject* obj, - MeshUtils::TriangleMesh_t mesh_data, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh mesh; - MeshUtils::structToTriangleMesh(mesh_data, mesh); - obj->updateMeshStatic(mesh); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void MeshObject_update_mesh_animated( - MeshObject* obj, - MeshUtils::TriangleMesh_t mesh_data_previous, - MeshUtils::TriangleMesh_t mesh_data_current, - MeshUtils::TriangleMesh_t mesh_data_next, int *err) { - - *err = CBindings::SUCCESS; - try { - TriangleMesh meshPrevious, meshCurrent, meshNext; - MeshUtils::structToTriangleMesh(mesh_data_previous, meshPrevious); - MeshUtils::structToTriangleMesh(mesh_data_current, meshCurrent); - MeshUtils::structToTriangleMesh(mesh_data_next, meshNext); - obj->updateMeshAnimated(meshPrevious, meshCurrent, meshNext); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } - - EXPORTDLL void MeshObject_enable(MeshObject* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshObject::enable, err - ); - } - - EXPORTDLL void MeshObject_disable(MeshObject* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshObject::disable, err - ); - } - - EXPORTDLL int MeshObject_is_enabled(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::isEnabled, err - ); - } - - EXPORTDLL void MeshObject_inverse(MeshObject* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshObject::inverse, err - ); - } - - EXPORTDLL int MeshObject_is_inversed(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::isInversed, err - ); - } - - EXPORTDLL float MeshObject_get_friction(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getFriction, err - ); - } - - EXPORTDLL void MeshObject_set_friction(MeshObject* obj, float f, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setFriction, f, err - ); - } - - EXPORTDLL float MeshObject_get_whitewater_influence(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getWhitewaterInfluence, err - ); - } - - EXPORTDLL void MeshObject_set_whitewater_influence(MeshObject* obj, float value, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setWhitewaterInfluence, value, err - ); - } - - EXPORTDLL float MeshObject_get_dust_emission_strength(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getDustEmissionStrength, err - ); - } - - EXPORTDLL void MeshObject_set_dust_emission_strength(MeshObject* obj, float value, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setDustEmissionStrength, value, err - ); - } - - EXPORTDLL float MeshObject_get_sheeting_strength(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getSheetingStrength, err - ); - } - - EXPORTDLL void MeshObject_set_sheeting_strength(MeshObject* obj, float value, int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setSheetingStrength, value, err - ); - } - - EXPORTDLL float MeshObject_get_mesh_expansion(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getMeshExpansion, err - ); - } - - EXPORTDLL void MeshObject_set_mesh_expansion(MeshObject* obj, - float ex, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setMeshExpansion, ex, err - ); - } - - EXPORTDLL void MeshObject_enable_append_object_velocity(MeshObject* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshObject::enableAppendObjectVelocity, err - ); - } - - EXPORTDLL void MeshObject_disable_append_object_velocity(MeshObject* obj, int *err) { - CBindings::safe_execute_method_void_0param( - obj, &MeshObject::disableAppendObjectVelocity, err - ); - } - - EXPORTDLL int MeshObject_is_append_object_velocity_enabled(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::isAppendObjectVelocityEnabled, err - ); - } - - EXPORTDLL float MeshObject_get_object_velocity_influence(MeshObject* obj, int *err) { - return CBindings::safe_execute_method_ret_0param( - obj, &MeshObject::getObjectVelocityInfluence, err - ); - } - - EXPORTDLL void MeshObject_set_object_velocity_influence(MeshObject* obj, - float value, - int *err) { - CBindings::safe_execute_method_void_1param( - obj, &MeshObject::setObjectVelocityInfluence, value, err - ); - } -} \ No newline at end of file diff --git a/src/c_bindings/openclutils_c.cpp b/src/c_bindings/openclutils_c.cpp deleted file mode 100644 index fd774ff..0000000 --- a/src/c_bindings/openclutils_c.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "../openclutils.h" -#include "cbindings.h" - -#ifdef _WIN32 - #define EXPORTDLL __declspec(dllexport) -#else - #define EXPORTDLL -#endif - -#define DEVICE_STRING_LEN 4096 - -extern "C" { - - typedef struct GPUDevice_t { - char name[DEVICE_STRING_LEN]; - char description[DEVICE_STRING_LEN]; - float score; - } GPUDevice_t; - - EXPORTDLL int OpenCLUtils_get_num_gpu_devices(int *err) { - *err = CBindings::SUCCESS; - int numDevices = 0; - try { - numDevices = OpenCLUtils::getNumGPUDevices(); - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - - return numDevices; - } - - EXPORTDLL void OpenCLUtils_get_gpu_devices(GPUDevice_t *devices, int num_devices, int *err) { - *err = CBindings::SUCCESS; - try { - -#if WITH_OPENCL - - std::vector info = OpenCLUtils::getGPUDevices(); - num_devices = std::min((int)info.size(), num_devices); - for (int i = 0; i < num_devices; i++) { - std::string name = info[i].cl_device_name; - std::string description = info[i].cl_device_vendor + ", " + info[i].cl_device_version; - float score = (float)(info[i].cl_device_max_clock_frequency) * (float)(info[i].cl_device_max_compute_units); - - name.copy(devices[i].name, DEVICE_STRING_LEN); - description.copy(devices[i].description, DEVICE_STRING_LEN); - devices[i].score = score; - } - -#endif -// ENDIF WITH_OPENCL - - } catch (std::exception &ex) { - CBindings::set_error_message(ex); - *err = CBindings::FAIL; - } - } -} diff --git a/src/c_bindings/vector3_c.h b/src/c_bindings/vector3_c.h deleted file mode 100644 index 96d3fca..0000000 --- a/src/c_bindings/vector3_c.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef FLUIDENGINE_VECTOR3_T_H -#define FLUIDENGINE_VECTOR3_T_H - -typedef struct Vector3_t { - float x; - float y; - float z; -} Vector3_t; - -#endif \ No newline at end of file diff --git a/src/glibc_version_header/LICENSE.md b/src/glibc_version_header/LICENSE.md deleted file mode 100644 index c34da95..0000000 --- a/src/glibc_version_header/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Tom Mason - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/src/glibc_version_header/force_link_glibc_2.5.h b/src/glibc_version_header/force_link_glibc_2.5.h deleted file mode 100644 index 0c39f4d..0000000 --- a/src/glibc_version_header/force_link_glibc_2.5.h +++ /dev/null @@ -1,3727 +0,0 @@ -#if !defined(SET_GLIBC_LINK_VERSIONS_HEADER) && !defined(__ASSEMBLER__) -#define SET_GLIBC_LINK_VERSIONS_HEADER -__asm__(".symver _Exit,_Exit@GLIBC_2.2.5"); -__asm__(".symver _IO_2_1_stderr_,_IO_2_1_stderr_@GLIBC_2.2.5"); -__asm__(".symver _IO_2_1_stdin_,_IO_2_1_stdin_@GLIBC_2.2.5"); -__asm__(".symver _IO_2_1_stdout_,_IO_2_1_stdout_@GLIBC_2.2.5"); -__asm__(".symver _IO_adjust_column,_IO_adjust_column@GLIBC_2.2.5"); -__asm__(".symver _IO_adjust_wcolumn,_IO_adjust_wcolumn@GLIBC_2.2.5"); -__asm__(".symver _IO_default_doallocate,_IO_default_doallocate@GLIBC_2.2.5"); -__asm__(".symver _IO_default_finish,_IO_default_finish@GLIBC_2.2.5"); -__asm__(".symver _IO_default_pbackfail,_IO_default_pbackfail@GLIBC_2.2.5"); -__asm__(".symver _IO_default_uflow,_IO_default_uflow@GLIBC_2.2.5"); -__asm__(".symver _IO_default_xsgetn,_IO_default_xsgetn@GLIBC_2.2.5"); -__asm__(".symver _IO_default_xsputn,_IO_default_xsputn@GLIBC_2.2.5"); -__asm__(".symver _IO_do_write,_IO_do_write@GLIBC_2.2.5"); -__asm__(".symver _IO_doallocbuf,_IO_doallocbuf@GLIBC_2.2.5"); -__asm__(".symver _IO_fclose,_IO_fclose@GLIBC_2.2.5"); -__asm__(".symver _IO_fdopen,_IO_fdopen@GLIBC_2.2.5"); -__asm__(".symver _IO_feof,_IO_feof@GLIBC_2.2.5"); -__asm__(".symver _IO_ferror,_IO_ferror@GLIBC_2.2.5"); -__asm__(".symver _IO_fflush,_IO_fflush@GLIBC_2.2.5"); -__asm__(".symver _IO_fgetpos,_IO_fgetpos@GLIBC_2.2.5"); -__asm__(".symver _IO_fgetpos64,_IO_fgetpos64@GLIBC_2.2.5"); -__asm__(".symver _IO_fgets,_IO_fgets@GLIBC_2.2.5"); -__asm__(".symver _IO_file_attach,_IO_file_attach@GLIBC_2.2.5"); -__asm__(".symver _IO_file_close,_IO_file_close@GLIBC_2.2.5"); -__asm__(".symver _IO_file_close_it,_IO_file_close_it@GLIBC_2.2.5"); -__asm__(".symver _IO_file_doallocate,_IO_file_doallocate@GLIBC_2.2.5"); -__asm__(".symver _IO_file_finish,_IO_file_finish@GLIBC_2.2.5"); -__asm__(".symver _IO_file_fopen,_IO_file_fopen@GLIBC_2.2.5"); -__asm__(".symver _IO_file_init,_IO_file_init@GLIBC_2.2.5"); -__asm__(".symver _IO_file_jumps,_IO_file_jumps@GLIBC_2.2.5"); -__asm__(".symver _IO_file_open,_IO_file_open@GLIBC_2.2.5"); -__asm__(".symver _IO_file_overflow,_IO_file_overflow@GLIBC_2.2.5"); -__asm__(".symver _IO_file_read,_IO_file_read@GLIBC_2.2.5"); -__asm__(".symver _IO_file_seek,_IO_file_seek@GLIBC_2.2.5"); -__asm__(".symver _IO_file_seekoff,_IO_file_seekoff@GLIBC_2.2.5"); -__asm__(".symver _IO_file_setbuf,_IO_file_setbuf@GLIBC_2.2.5"); -__asm__(".symver _IO_file_stat,_IO_file_stat@GLIBC_2.2.5"); -__asm__(".symver _IO_file_sync,_IO_file_sync@GLIBC_2.2.5"); -__asm__(".symver _IO_file_underflow,_IO_file_underflow@GLIBC_2.2.5"); -__asm__(".symver _IO_file_write,_IO_file_write@GLIBC_2.2.5"); -__asm__(".symver _IO_file_xsputn,_IO_file_xsputn@GLIBC_2.2.5"); -__asm__(".symver _IO_flockfile,_IO_flockfile@GLIBC_2.2.5"); -__asm__(".symver _IO_flush_all,_IO_flush_all@GLIBC_2.2.5"); -__asm__(".symver _IO_flush_all_linebuffered,_IO_flush_all_linebuffered@GLIBC_2.2.5"); -__asm__(".symver _IO_fopen,_IO_fopen@GLIBC_2.2.5"); -__asm__(".symver _IO_fprintf,_IO_fprintf@GLIBC_2.2.5"); -__asm__(".symver _IO_fputs,_IO_fputs@GLIBC_2.2.5"); -__asm__(".symver _IO_fread,_IO_fread@GLIBC_2.2.5"); -__asm__(".symver _IO_free_backup_area,_IO_free_backup_area@GLIBC_2.2.5"); -__asm__(".symver _IO_free_wbackup_area,_IO_free_wbackup_area@GLIBC_2.2.5"); -__asm__(".symver _IO_fsetpos,_IO_fsetpos@GLIBC_2.2.5"); -__asm__(".symver _IO_fsetpos64,_IO_fsetpos64@GLIBC_2.2.5"); -__asm__(".symver _IO_ftell,_IO_ftell@GLIBC_2.2.5"); -__asm__(".symver _IO_ftrylockfile,_IO_ftrylockfile@GLIBC_2.2.5"); -__asm__(".symver _IO_funlockfile,_IO_funlockfile@GLIBC_2.2.5"); -__asm__(".symver _IO_fwrite,_IO_fwrite@GLIBC_2.2.5"); -__asm__(".symver _IO_getc,_IO_getc@GLIBC_2.2.5"); -__asm__(".symver _IO_getline,_IO_getline@GLIBC_2.2.5"); -__asm__(".symver _IO_getline_info,_IO_getline_info@GLIBC_2.2.5"); -__asm__(".symver _IO_gets,_IO_gets@GLIBC_2.2.5"); -__asm__(".symver _IO_init,_IO_init@GLIBC_2.2.5"); -__asm__(".symver _IO_init_marker,_IO_init_marker@GLIBC_2.2.5"); -__asm__(".symver _IO_init_wmarker,_IO_init_wmarker@GLIBC_2.2.5"); -__asm__(".symver _IO_iter_begin,_IO_iter_begin@GLIBC_2.2.5"); -__asm__(".symver _IO_iter_end,_IO_iter_end@GLIBC_2.2.5"); -__asm__(".symver _IO_iter_file,_IO_iter_file@GLIBC_2.2.5"); -__asm__(".symver _IO_iter_next,_IO_iter_next@GLIBC_2.2.5"); -__asm__(".symver _IO_least_wmarker,_IO_least_wmarker@GLIBC_2.2.5"); -__asm__(".symver _IO_link_in,_IO_link_in@GLIBC_2.2.5"); -__asm__(".symver _IO_list_all,_IO_list_all@GLIBC_2.2.5"); -__asm__(".symver _IO_list_lock,_IO_list_lock@GLIBC_2.2.5"); -__asm__(".symver _IO_list_resetlock,_IO_list_resetlock@GLIBC_2.2.5"); -__asm__(".symver _IO_list_unlock,_IO_list_unlock@GLIBC_2.2.5"); -__asm__(".symver _IO_marker_delta,_IO_marker_delta@GLIBC_2.2.5"); -__asm__(".symver _IO_marker_difference,_IO_marker_difference@GLIBC_2.2.5"); -__asm__(".symver _IO_padn,_IO_padn@GLIBC_2.2.5"); -__asm__(".symver _IO_peekc_locked,_IO_peekc_locked@GLIBC_2.2.5"); -__asm__(".symver _IO_popen,_IO_popen@GLIBC_2.2.5"); -__asm__(".symver _IO_printf,_IO_printf@GLIBC_2.2.5"); -__asm__(".symver _IO_proc_close,_IO_proc_close@GLIBC_2.2.5"); -__asm__(".symver _IO_proc_open,_IO_proc_open@GLIBC_2.2.5"); -__asm__(".symver _IO_putc,_IO_putc@GLIBC_2.2.5"); -__asm__(".symver _IO_puts,_IO_puts@GLIBC_2.2.5"); -__asm__(".symver _IO_remove_marker,_IO_remove_marker@GLIBC_2.2.5"); -__asm__(".symver _IO_seekmark,_IO_seekmark@GLIBC_2.2.5"); -__asm__(".symver _IO_seekoff,_IO_seekoff@GLIBC_2.2.5"); -__asm__(".symver _IO_seekpos,_IO_seekpos@GLIBC_2.2.5"); -__asm__(".symver _IO_seekwmark,_IO_seekwmark@GLIBC_2.2.5"); -__asm__(".symver _IO_setb,_IO_setb@GLIBC_2.2.5"); -__asm__(".symver _IO_setbuffer,_IO_setbuffer@GLIBC_2.2.5"); -__asm__(".symver _IO_setvbuf,_IO_setvbuf@GLIBC_2.2.5"); -__asm__(".symver _IO_sgetn,_IO_sgetn@GLIBC_2.2.5"); -__asm__(".symver _IO_sprintf,_IO_sprintf@GLIBC_2.2.5"); -__asm__(".symver _IO_sputbackc,_IO_sputbackc@GLIBC_2.2.5"); -__asm__(".symver _IO_sputbackwc,_IO_sputbackwc@GLIBC_2.2.5"); -__asm__(".symver _IO_sscanf,_IO_sscanf@GLIBC_2.2.5"); -__asm__(".symver _IO_str_init_readonly,_IO_str_init_readonly@GLIBC_2.2.5"); -__asm__(".symver _IO_str_init_static,_IO_str_init_static@GLIBC_2.2.5"); -__asm__(".symver _IO_str_overflow,_IO_str_overflow@GLIBC_2.2.5"); -__asm__(".symver _IO_str_pbackfail,_IO_str_pbackfail@GLIBC_2.2.5"); -__asm__(".symver _IO_str_seekoff,_IO_str_seekoff@GLIBC_2.2.5"); -__asm__(".symver _IO_str_underflow,_IO_str_underflow@GLIBC_2.2.5"); -__asm__(".symver _IO_sungetc,_IO_sungetc@GLIBC_2.2.5"); -__asm__(".symver _IO_sungetwc,_IO_sungetwc@GLIBC_2.2.5"); -__asm__(".symver _IO_switch_to_get_mode,_IO_switch_to_get_mode@GLIBC_2.2.5"); -__asm__(".symver _IO_switch_to_main_wget_area,_IO_switch_to_main_wget_area@GLIBC_2.2.5"); -__asm__(".symver _IO_switch_to_wbackup_area,_IO_switch_to_wbackup_area@GLIBC_2.2.5"); -__asm__(".symver _IO_switch_to_wget_mode,_IO_switch_to_wget_mode@GLIBC_2.2.5"); -__asm__(".symver _IO_un_link,_IO_un_link@GLIBC_2.2.5"); -__asm__(".symver _IO_ungetc,_IO_ungetc@GLIBC_2.2.5"); -__asm__(".symver _IO_unsave_markers,_IO_unsave_markers@GLIBC_2.2.5"); -__asm__(".symver _IO_unsave_wmarkers,_IO_unsave_wmarkers@GLIBC_2.2.5"); -__asm__(".symver _IO_vfprintf,_IO_vfprintf@GLIBC_2.2.5"); -__asm__(".symver _IO_vfscanf,_IO_vfscanf@GLIBC_2.2.5"); -__asm__(".symver _IO_vsprintf,_IO_vsprintf@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_doallocate,_IO_wdefault_doallocate@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_finish,_IO_wdefault_finish@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_pbackfail,_IO_wdefault_pbackfail@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_uflow,_IO_wdefault_uflow@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_xsgetn,_IO_wdefault_xsgetn@GLIBC_2.2.5"); -__asm__(".symver _IO_wdefault_xsputn,_IO_wdefault_xsputn@GLIBC_2.2.5"); -__asm__(".symver _IO_wdo_write,_IO_wdo_write@GLIBC_2.2.5"); -__asm__(".symver _IO_wdoallocbuf,_IO_wdoallocbuf@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_jumps,_IO_wfile_jumps@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_overflow,_IO_wfile_overflow@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_seekoff,_IO_wfile_seekoff@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_sync,_IO_wfile_sync@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_underflow,_IO_wfile_underflow@GLIBC_2.2.5"); -__asm__(".symver _IO_wfile_xsputn,_IO_wfile_xsputn@GLIBC_2.2.5"); -__asm__(".symver _IO_wmarker_delta,_IO_wmarker_delta@GLIBC_2.2.5"); -__asm__(".symver _IO_wsetb,_IO_wsetb@GLIBC_2.2.5"); -__asm__(".symver _LIB_VERSION,_LIB_VERSION@GLIBC_2.2.5"); -__asm__(".symver __adjtimex,__adjtimex@GLIBC_2.2.5"); -__asm__(".symver __after_morecore_hook,__after_morecore_hook@GLIBC_2.2.5"); -__asm__(".symver __arch_prctl,__arch_prctl@GLIBC_2.2.5"); -__asm__(".symver __argz_count,__argz_count@GLIBC_2.2.5"); -__asm__(".symver __argz_next,__argz_next@GLIBC_2.2.5"); -__asm__(".symver __argz_stringify,__argz_stringify@GLIBC_2.2.5"); -__asm__(".symver __asprintf,__asprintf@GLIBC_2.2.5"); -__asm__(".symver __assert,__assert@GLIBC_2.2.5"); -__asm__(".symver __assert_fail,__assert_fail@GLIBC_2.2.5"); -__asm__(".symver __assert_perror_fail,__assert_perror_fail@GLIBC_2.2.5"); -__asm__(".symver __b64_ntop,__b64_ntop@GLIBC_2.2.5"); -__asm__(".symver __b64_pton,__b64_pton@GLIBC_2.2.5"); -__asm__(".symver __backtrace,__backtrace@GLIBC_2.2.5"); -__asm__(".symver __backtrace_symbols,__backtrace_symbols@GLIBC_2.2.5"); -__asm__(".symver __backtrace_symbols_fd,__backtrace_symbols_fd@GLIBC_2.2.5"); -__asm__(".symver __bsd_getpgrp,__bsd_getpgrp@GLIBC_2.2.5"); -__asm__(".symver __bzero,__bzero@GLIBC_2.2.5"); -__asm__(".symver __check_rhosts_file,__check_rhosts_file@GLIBC_2.2.5"); -__asm__(".symver __chk_fail,__chk_fail@GLIBC_2.3.4"); -__asm__(".symver __clog10,__clog10@GLIBC_2.2.5"); -__asm__(".symver __clog10f,__clog10f@GLIBC_2.2.5"); -__asm__(".symver __clog10l,__clog10l@GLIBC_2.2.5"); -__asm__(".symver __clone,__clone@GLIBC_2.2.5"); -__asm__(".symver __close,__close@GLIBC_2.2.5"); -__asm__(".symver __cmsg_nxthdr,__cmsg_nxthdr@GLIBC_2.2.5"); -__asm__(".symver __confstr_chk,__confstr_chk@GLIBC_2.4"); -__asm__(".symver __connect,__connect@GLIBC_2.2.5"); -__asm__(".symver __ctype_b_loc,__ctype_b_loc@GLIBC_2.3"); -__asm__(".symver __ctype_get_mb_cur_max,__ctype_get_mb_cur_max@GLIBC_2.2.5"); -__asm__(".symver __ctype_tolower_loc,__ctype_tolower_loc@GLIBC_2.3"); -__asm__(".symver __ctype_toupper_loc,__ctype_toupper_loc@GLIBC_2.3"); -__asm__(".symver __curbrk,__curbrk@GLIBC_2.2.5"); -__asm__(".symver __cxa_atexit,__cxa_atexit@GLIBC_2.2.5"); -__asm__(".symver __cxa_finalize,__cxa_finalize@GLIBC_2.2.5"); -__asm__(".symver __cyg_profile_func_enter,__cyg_profile_func_enter@GLIBC_2.2.5"); -__asm__(".symver __cyg_profile_func_exit,__cyg_profile_func_exit@GLIBC_2.2.5"); -__asm__(".symver __daylight,__daylight@GLIBC_2.2.5"); -__asm__(".symver __dcgettext,__dcgettext@GLIBC_2.2.5"); -__asm__(".symver __default_morecore,__default_morecore@GLIBC_2.2.5"); -__asm__(".symver __dgettext,__dgettext@GLIBC_2.2.5"); -__asm__(".symver __dn_comp,__dn_comp@GLIBC_2.2.5"); -__asm__(".symver __dn_count_labels,__dn_count_labels@GLIBC_2.2.5"); -__asm__(".symver __dn_expand,__dn_expand@GLIBC_2.2.5"); -__asm__(".symver __dn_skipname,__dn_skipname@GLIBC_2.2.5"); -__asm__(".symver __dup2,__dup2@GLIBC_2.2.5"); -__asm__(".symver __duplocale,__duplocale@GLIBC_2.2.5"); -__asm__(".symver __endmntent,__endmntent@GLIBC_2.2.5"); -__asm__(".symver __environ,__environ@GLIBC_2.2.5"); -__asm__(".symver __errno_location,__errno_location@GLIBC_2.2.5"); -__asm__(".symver __fbufsize,__fbufsize@GLIBC_2.2.5"); -__asm__(".symver __fcntl,__fcntl@GLIBC_2.2.5"); -__asm__(".symver __ffs,__ffs@GLIBC_2.2.5"); -__asm__(".symver __fgets_chk,__fgets_chk@GLIBC_2.4"); -__asm__(".symver __fgets_unlocked_chk,__fgets_unlocked_chk@GLIBC_2.4"); -__asm__(".symver __fgetws_chk,__fgetws_chk@GLIBC_2.4"); -__asm__(".symver __fgetws_unlocked_chk,__fgetws_unlocked_chk@GLIBC_2.4"); -__asm__(".symver __finite,__finite@GLIBC_2.2.5"); -__asm__(".symver __finitef,__finitef@GLIBC_2.2.5"); -__asm__(".symver __finitel,__finitel@GLIBC_2.2.5"); -__asm__(".symver __flbf,__flbf@GLIBC_2.2.5"); -__asm__(".symver __fork,__fork@GLIBC_2.2.5"); -__asm__(".symver __fp_nquery,__fp_nquery@GLIBC_2.2.5"); -__asm__(".symver __fp_query,__fp_query@GLIBC_2.2.5"); -__asm__(".symver __fp_resstat,__fp_resstat@GLIBC_2.2.5"); -__asm__(".symver __fpclassify,__fpclassify@GLIBC_2.2.5"); -__asm__(".symver __fpclassifyf,__fpclassifyf@GLIBC_2.2.5"); -__asm__(".symver __fpclassifyl,__fpclassifyl@GLIBC_2.2.5"); -__asm__(".symver __fpending,__fpending@GLIBC_2.2.5"); -__asm__(".symver __fprintf_chk,__fprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __fpu_control,__fpu_control@GLIBC_2.2.5"); -__asm__(".symver __fpurge,__fpurge@GLIBC_2.2.5"); -__asm__(".symver __freadable,__freadable@GLIBC_2.2.5"); -__asm__(".symver __freading,__freading@GLIBC_2.2.5"); -__asm__(".symver __free_fdresult,__free_fdresult@GLIBC_2.2.5"); -__asm__(".symver __free_hook,__free_hook@GLIBC_2.2.5"); -__asm__(".symver __freelocale,__freelocale@GLIBC_2.2.5"); -__asm__(".symver __fsetlocking,__fsetlocking@GLIBC_2.2.5"); -__asm__(".symver __fwprintf_chk,__fwprintf_chk@GLIBC_2.4"); -__asm__(".symver __fwritable,__fwritable@GLIBC_2.2.5"); -__asm__(".symver __fwriting,__fwriting@GLIBC_2.2.5"); -__asm__(".symver __fxstat,__fxstat@GLIBC_2.2.5"); -__asm__(".symver __fxstat64,__fxstat64@GLIBC_2.2.5"); -__asm__(".symver __fxstatat,__fxstatat@GLIBC_2.4"); -__asm__(".symver __fxstatat64,__fxstatat64@GLIBC_2.4"); -__asm__(".symver __getcwd_chk,__getcwd_chk@GLIBC_2.4"); -__asm__(".symver __getdelim,__getdelim@GLIBC_2.2.5"); -__asm__(".symver __getdomainname_chk,__getdomainname_chk@GLIBC_2.4"); -__asm__(".symver __getgroups_chk,__getgroups_chk@GLIBC_2.4"); -__asm__(".symver __gethostname_chk,__gethostname_chk@GLIBC_2.4"); -__asm__(".symver __getlogin_r_chk,__getlogin_r_chk@GLIBC_2.4"); -__asm__(".symver __getmntent_r,__getmntent_r@GLIBC_2.2.5"); -__asm__(".symver __getpagesize,__getpagesize@GLIBC_2.2.5"); -__asm__(".symver __getpgid,__getpgid@GLIBC_2.2.5"); -__asm__(".symver __getpid,__getpid@GLIBC_2.2.5"); -__asm__(".symver __gets_chk,__gets_chk@GLIBC_2.3.4"); -__asm__(".symver __gettimeofday,__gettimeofday@GLIBC_2.2.5"); -__asm__(".symver __getwd_chk,__getwd_chk@GLIBC_2.4"); -__asm__(".symver __gmtime_r,__gmtime_r@GLIBC_2.2.5"); -__asm__(".symver __h_errno_location,__h_errno_location@GLIBC_2.2.5"); -__asm__(".symver __hostalias,__hostalias@GLIBC_2.2.5"); -__asm__(".symver __isalnum_l,__isalnum_l@GLIBC_2.2.5"); -__asm__(".symver __isalpha_l,__isalpha_l@GLIBC_2.2.5"); -__asm__(".symver __isascii_l,__isascii_l@GLIBC_2.2.5"); -__asm__(".symver __isblank_l,__isblank_l@GLIBC_2.2.5"); -__asm__(".symver __iscntrl_l,__iscntrl_l@GLIBC_2.2.5"); -__asm__(".symver __isctype,__isctype@GLIBC_2.3"); -__asm__(".symver __isdigit_l,__isdigit_l@GLIBC_2.2.5"); -__asm__(".symver __isgraph_l,__isgraph_l@GLIBC_2.2.5"); -__asm__(".symver __isinf,__isinf@GLIBC_2.2.5"); -__asm__(".symver __isinff,__isinff@GLIBC_2.2.5"); -__asm__(".symver __isinfl,__isinfl@GLIBC_2.2.5"); -__asm__(".symver __islower_l,__islower_l@GLIBC_2.2.5"); -__asm__(".symver __isnan,__isnan@GLIBC_2.2.5"); -__asm__(".symver __isnanf,__isnanf@GLIBC_2.2.5"); -__asm__(".symver __isnanl,__isnanl@GLIBC_2.2.5"); -__asm__(".symver __isprint_l,__isprint_l@GLIBC_2.2.5"); -__asm__(".symver __ispunct_l,__ispunct_l@GLIBC_2.2.5"); -__asm__(".symver __isspace_l,__isspace_l@GLIBC_2.2.5"); -__asm__(".symver __isupper_l,__isupper_l@GLIBC_2.2.5"); -__asm__(".symver __iswalnum_l,__iswalnum_l@GLIBC_2.2.5"); -__asm__(".symver __iswalpha_l,__iswalpha_l@GLIBC_2.2.5"); -__asm__(".symver __iswblank_l,__iswblank_l@GLIBC_2.2.5"); -__asm__(".symver __iswcntrl_l,__iswcntrl_l@GLIBC_2.2.5"); -__asm__(".symver __iswctype,__iswctype@GLIBC_2.2.5"); -__asm__(".symver __iswctype_l,__iswctype_l@GLIBC_2.2.5"); -__asm__(".symver __iswdigit_l,__iswdigit_l@GLIBC_2.2.5"); -__asm__(".symver __iswgraph_l,__iswgraph_l@GLIBC_2.2.5"); -__asm__(".symver __iswlower_l,__iswlower_l@GLIBC_2.2.5"); -__asm__(".symver __iswprint_l,__iswprint_l@GLIBC_2.2.5"); -__asm__(".symver __iswpunct_l,__iswpunct_l@GLIBC_2.2.5"); -__asm__(".symver __iswspace_l,__iswspace_l@GLIBC_2.2.5"); -__asm__(".symver __iswupper_l,__iswupper_l@GLIBC_2.2.5"); -__asm__(".symver __iswxdigit_l,__iswxdigit_l@GLIBC_2.2.5"); -__asm__(".symver __isxdigit_l,__isxdigit_l@GLIBC_2.2.5"); -__asm__(".symver __ivaliduser,__ivaliduser@GLIBC_2.2.5"); -__asm__(".symver __key_decryptsession_pk_LOCAL,__key_decryptsession_pk_LOCAL@GLIBC_2.2.5"); -__asm__(".symver __key_encryptsession_pk_LOCAL,__key_encryptsession_pk_LOCAL@GLIBC_2.2.5"); -__asm__(".symver __key_gendes_LOCAL,__key_gendes_LOCAL@GLIBC_2.2.5"); -__asm__(".symver __libc_allocate_rtsig,__libc_allocate_rtsig@GLIBC_2.2.5"); -__asm__(".symver __libc_calloc,__libc_calloc@GLIBC_2.2.5"); -__asm__(".symver __libc_current_sigrtmax,__libc_current_sigrtmax@GLIBC_2.2.5"); -__asm__(".symver __libc_current_sigrtmin,__libc_current_sigrtmin@GLIBC_2.2.5"); -__asm__(".symver __libc_free,__libc_free@GLIBC_2.2.5"); -__asm__(".symver __libc_freeres,__libc_freeres@GLIBC_2.2.5"); -__asm__(".symver __libc_init_first,__libc_init_first@GLIBC_2.2.5"); -__asm__(".symver __libc_mallinfo,__libc_mallinfo@GLIBC_2.2.5"); -__asm__(".symver __libc_malloc,__libc_malloc@GLIBC_2.2.5"); -__asm__(".symver __libc_mallopt,__libc_mallopt@GLIBC_2.2.5"); -__asm__(".symver __libc_memalign,__libc_memalign@GLIBC_2.2.5"); -__asm__(".symver __libc_pvalloc,__libc_pvalloc@GLIBC_2.2.5"); -__asm__(".symver __libc_realloc,__libc_realloc@GLIBC_2.2.5"); -__asm__(".symver __libc_sa_len,__libc_sa_len@GLIBC_2.2.5"); -__asm__(".symver __libc_stack_end,__libc_stack_end@GLIBC_2.2.5"); -__asm__(".symver __libc_start_main,__libc_start_main@GLIBC_2.2.5"); -__asm__(".symver __libc_valloc,__libc_valloc@GLIBC_2.2.5"); -__asm__(".symver __loc_aton,__loc_aton@GLIBC_2.2.5"); -__asm__(".symver __loc_ntoa,__loc_ntoa@GLIBC_2.2.5"); -__asm__(".symver __lseek,__lseek@GLIBC_2.2.5"); -__asm__(".symver __lxstat,__lxstat@GLIBC_2.2.5"); -__asm__(".symver __lxstat64,__lxstat64@GLIBC_2.2.5"); -__asm__(".symver __malloc_hook,__malloc_hook@GLIBC_2.2.5"); -__asm__(".symver __malloc_initialize_hook,__malloc_initialize_hook@GLIBC_2.2.5"); -__asm__(".symver __mbrlen,__mbrlen@GLIBC_2.2.5"); -__asm__(".symver __mbrtowc,__mbrtowc@GLIBC_2.2.5"); -__asm__(".symver __mbsnrtowcs_chk,__mbsnrtowcs_chk@GLIBC_2.4"); -__asm__(".symver __mbsrtowcs_chk,__mbsrtowcs_chk@GLIBC_2.4"); -__asm__(".symver __mbstowcs_chk,__mbstowcs_chk@GLIBC_2.4"); -__asm__(".symver __memalign_hook,__memalign_hook@GLIBC_2.2.5"); -__asm__(".symver __memcpy_chk,__memcpy_chk@GLIBC_2.3.4"); -__asm__(".symver __memmove_chk,__memmove_chk@GLIBC_2.3.4"); -__asm__(".symver __mempcpy,__mempcpy@GLIBC_2.2.5"); -__asm__(".symver __mempcpy_chk,__mempcpy_chk@GLIBC_2.3.4"); -__asm__(".symver __mempcpy_small,__mempcpy_small@GLIBC_2.2.5"); -__asm__(".symver __memset_chk,__memset_chk@GLIBC_2.3.4"); -__asm__(".symver __monstartup,__monstartup@GLIBC_2.2.5"); -__asm__(".symver __morecore,__morecore@GLIBC_2.2.5"); -__asm__(".symver __nanosleep,__nanosleep@GLIBC_2.2.6"); -__asm__(".symver __newlocale,__newlocale@GLIBC_2.2.5"); -__asm__(".symver __nis_default_access,__nis_default_access@GLIBC_2.2.5"); -__asm__(".symver __nis_default_group,__nis_default_group@GLIBC_2.2.5"); -__asm__(".symver __nis_default_owner,__nis_default_owner@GLIBC_2.2.5"); -__asm__(".symver __nis_default_ttl,__nis_default_ttl@GLIBC_2.2.5"); -__asm__(".symver __nis_finddirectory,__nis_finddirectory@GLIBC_2.2.5"); -__asm__(".symver __nis_hash,__nis_hash@GLIBC_2.2.5"); -__asm__(".symver __nisbind_connect,__nisbind_connect@GLIBC_2.2.5"); -__asm__(".symver __nisbind_create,__nisbind_create@GLIBC_2.2.5"); -__asm__(".symver __nisbind_destroy,__nisbind_destroy@GLIBC_2.2.5"); -__asm__(".symver __nisbind_next,__nisbind_next@GLIBC_2.2.5"); -__asm__(".symver __nl_langinfo_l,__nl_langinfo_l@GLIBC_2.2.5"); -__asm__(".symver __nss_configure_lookup,__nss_configure_lookup@GLIBC_2.2.5"); -__asm__(".symver __nss_database_lookup,__nss_database_lookup@GLIBC_2.2.5"); -__asm__(".symver __nss_group_lookup,__nss_group_lookup@GLIBC_2.2.5"); -__asm__(".symver __nss_hostname_digits_dots,__nss_hostname_digits_dots@GLIBC_2.2.5"); -__asm__(".symver __nss_hosts_lookup,__nss_hosts_lookup@GLIBC_2.2.5"); -__asm__(".symver __nss_next,__nss_next@GLIBC_2.2.5"); -__asm__(".symver __nss_passwd_lookup,__nss_passwd_lookup@GLIBC_2.2.5"); -__asm__(".symver __open,__open@GLIBC_2.2.5"); -__asm__(".symver __open64,__open64@GLIBC_2.2.5"); -__asm__(".symver __overflow,__overflow@GLIBC_2.2.5"); -__asm__(".symver __p_cdname,__p_cdname@GLIBC_2.2.5"); -__asm__(".symver __p_cdnname,__p_cdnname@GLIBC_2.2.5"); -__asm__(".symver __p_class,__p_class@GLIBC_2.2.5"); -__asm__(".symver __p_class_syms,__p_class_syms@GLIBC_2.2.5"); -__asm__(".symver __p_fqname,__p_fqname@GLIBC_2.2.5"); -__asm__(".symver __p_fqnname,__p_fqnname@GLIBC_2.2.5"); -__asm__(".symver __p_option,__p_option@GLIBC_2.2.5"); -__asm__(".symver __p_query,__p_query@GLIBC_2.2.5"); -__asm__(".symver __p_rcode,__p_rcode@GLIBC_2.3.2"); -__asm__(".symver __p_secstodate,__p_secstodate@GLIBC_2.2.5"); -__asm__(".symver __p_time,__p_time@GLIBC_2.2.5"); -__asm__(".symver __p_type,__p_type@GLIBC_2.2.5"); -__asm__(".symver __p_type_syms,__p_type_syms@GLIBC_2.2.5"); -__asm__(".symver __pipe,__pipe@GLIBC_2.2.5"); -__asm__(".symver __poll,__poll@GLIBC_2.2.5"); -__asm__(".symver __pread64,__pread64@GLIBC_2.2.5"); -__asm__(".symver __pread64_chk,__pread64_chk@GLIBC_2.4"); -__asm__(".symver __pread_chk,__pread_chk@GLIBC_2.4"); -__asm__(".symver __printf_chk,__printf_chk@GLIBC_2.3.4"); -__asm__(".symver __printf_fp,__printf_fp@GLIBC_2.2.5"); -__asm__(".symver __profile_frequency,__profile_frequency@GLIBC_2.2.5"); -__asm__(".symver __progname,__progname@GLIBC_2.2.5"); -__asm__(".symver __progname_full,__progname_full@GLIBC_2.2.5"); -__asm__(".symver __pthread_cleanup_routine,__pthread_cleanup_routine@GLIBC_2.3.3"); -__asm__(".symver __pthread_getspecific,__pthread_getspecific@GLIBC_2.2.5"); -#ifndef _GLIBCXX_SHARED -#ifndef IN_LIBGCC2 -#ifdef _REENTRANT -__asm__(".symver __pthread_key_create,__pthread_key_create@GLIBC_2.2.5"); -#endif -#endif -#endif -__asm__(".symver __pthread_mutex_destroy,__pthread_mutex_destroy@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutex_init,__pthread_mutex_init@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutex_lock,__pthread_mutex_lock@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutex_trylock,__pthread_mutex_trylock@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutex_unlock,__pthread_mutex_unlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutexattr_destroy,__pthread_mutexattr_destroy@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutexattr_init,__pthread_mutexattr_init@GLIBC_2.2.5"); -__asm__(".symver __pthread_mutexattr_settype,__pthread_mutexattr_settype@GLIBC_2.2.5"); -__asm__(".symver __pthread_once,__pthread_once@GLIBC_2.2.5"); -__asm__(".symver __pthread_register_cancel,__pthread_register_cancel@GLIBC_2.3.3"); -__asm__(".symver __pthread_register_cancel_defer,__pthread_register_cancel_defer@GLIBC_2.3.3"); -__asm__(".symver __pthread_rwlock_destroy,__pthread_rwlock_destroy@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_init,__pthread_rwlock_init@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_rdlock,__pthread_rwlock_rdlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_tryrdlock,__pthread_rwlock_tryrdlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_trywrlock,__pthread_rwlock_trywrlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_unlock,__pthread_rwlock_unlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_rwlock_wrlock,__pthread_rwlock_wrlock@GLIBC_2.2.5"); -__asm__(".symver __pthread_setspecific,__pthread_setspecific@GLIBC_2.2.5"); -__asm__(".symver __pthread_unregister_cancel,__pthread_unregister_cancel@GLIBC_2.3.3"); -__asm__(".symver __pthread_unregister_cancel_restore,__pthread_unregister_cancel_restore@GLIBC_2.3.3"); -__asm__(".symver __pthread_unwind_next,__pthread_unwind_next@GLIBC_2.3.3"); -__asm__(".symver __ptsname_r_chk,__ptsname_r_chk@GLIBC_2.4"); -__asm__(".symver __putlong,__putlong@GLIBC_2.2.5"); -__asm__(".symver __putshort,__putshort@GLIBC_2.2.5"); -__asm__(".symver __pwrite64,__pwrite64@GLIBC_2.2.5"); -__asm__(".symver __rawmemchr,__rawmemchr@GLIBC_2.2.5"); -__asm__(".symver __rcmd_errstr,__rcmd_errstr@GLIBC_2.2.5"); -__asm__(".symver __read,__read@GLIBC_2.2.5"); -__asm__(".symver __read_chk,__read_chk@GLIBC_2.4"); -__asm__(".symver __readlink_chk,__readlink_chk@GLIBC_2.4"); -__asm__(".symver __readlinkat_chk,__readlinkat_chk@GLIBC_2.5"); -__asm__(".symver __realloc_hook,__realloc_hook@GLIBC_2.2.5"); -__asm__(".symver __realpath_chk,__realpath_chk@GLIBC_2.4"); -__asm__(".symver __recv_chk,__recv_chk@GLIBC_2.4"); -__asm__(".symver __recvfrom_chk,__recvfrom_chk@GLIBC_2.4"); -#ifdef _REENTRANT -__asm__(".symver __register_atfork,__register_atfork@GLIBC_2.3.2"); -#endif -__asm__(".symver __res_close,__res_close@GLIBC_2.2.5"); -__asm__(".symver __res_dnok,__res_dnok@GLIBC_2.2.5"); -__asm__(".symver __res_hnok,__res_hnok@GLIBC_2.2.5"); -__asm__(".symver __res_hostalias,__res_hostalias@GLIBC_2.2.5"); -__asm__(".symver __res_init,__res_init@GLIBC_2.2.5"); -__asm__(".symver __res_isourserver,__res_isourserver@GLIBC_2.2.5"); -__asm__(".symver __res_mailok,__res_mailok@GLIBC_2.2.5"); -__asm__(".symver __res_mkquery,__res_mkquery@GLIBC_2.2.5"); -__asm__(".symver __res_nameinquery,__res_nameinquery@GLIBC_2.2.5"); -__asm__(".symver __res_nclose,__res_nclose@GLIBC_2.2.5"); -__asm__(".symver __res_ninit,__res_ninit@GLIBC_2.2.5"); -__asm__(".symver __res_nmkquery,__res_nmkquery@GLIBC_2.2.5"); -__asm__(".symver __res_nquery,__res_nquery@GLIBC_2.2.5"); -__asm__(".symver __res_nquerydomain,__res_nquerydomain@GLIBC_2.2.5"); -__asm__(".symver __res_nsearch,__res_nsearch@GLIBC_2.2.5"); -__asm__(".symver __res_nsend,__res_nsend@GLIBC_2.2.5"); -__asm__(".symver __res_ownok,__res_ownok@GLIBC_2.2.5"); -__asm__(".symver __res_queriesmatch,__res_queriesmatch@GLIBC_2.2.5"); -__asm__(".symver __res_query,__res_query@GLIBC_2.2.5"); -__asm__(".symver __res_querydomain,__res_querydomain@GLIBC_2.2.5"); -__asm__(".symver __res_randomid,__res_randomid@GLIBC_2.2.5"); -__asm__(".symver __res_search,__res_search@GLIBC_2.2.5"); -__asm__(".symver __res_send,__res_send@GLIBC_2.2.5"); -__asm__(".symver __res_state,__res_state@GLIBC_2.2.5"); -__asm__(".symver __rpc_thread_createerr,__rpc_thread_createerr@GLIBC_2.2.5"); -__asm__(".symver __rpc_thread_svc_fdset,__rpc_thread_svc_fdset@GLIBC_2.2.5"); -__asm__(".symver __rpc_thread_svc_max_pollfd,__rpc_thread_svc_max_pollfd@GLIBC_2.2.5"); -__asm__(".symver __rpc_thread_svc_pollfd,__rpc_thread_svc_pollfd@GLIBC_2.2.5"); -__asm__(".symver __sbrk,__sbrk@GLIBC_2.2.5"); -__asm__(".symver __sched_get_priority_max,__sched_get_priority_max@GLIBC_2.2.5"); -__asm__(".symver __sched_get_priority_min,__sched_get_priority_min@GLIBC_2.2.5"); -__asm__(".symver __sched_getparam,__sched_getparam@GLIBC_2.2.5"); -__asm__(".symver __sched_getscheduler,__sched_getscheduler@GLIBC_2.2.5"); -__asm__(".symver __sched_setscheduler,__sched_setscheduler@GLIBC_2.2.5"); -__asm__(".symver __sched_yield,__sched_yield@GLIBC_2.2.5"); -__asm__(".symver __secure_getenv,__secure_getenv@GLIBC_2.2.5"); -__asm__(".symver __select,__select@GLIBC_2.2.5"); -__asm__(".symver __send,__send@GLIBC_2.2.5"); -__asm__(".symver __setmntent,__setmntent@GLIBC_2.2.5"); -__asm__(".symver __setpgid,__setpgid@GLIBC_2.2.5"); -__asm__(".symver __sigaction,__sigaction@GLIBC_2.2.5"); -__asm__(".symver __sigaddset,__sigaddset@GLIBC_2.2.5"); -__asm__(".symver __sigdelset,__sigdelset@GLIBC_2.2.5"); -__asm__(".symver __sigismember,__sigismember@GLIBC_2.2.5"); -__asm__(".symver __signbit,__signbit@GLIBC_2.2.5"); -__asm__(".symver __signbitf,__signbitf@GLIBC_2.2.5"); -__asm__(".symver __signbitl,__signbitl@GLIBC_2.2.5"); -__asm__(".symver __sigpause,__sigpause@GLIBC_2.2.5"); -__asm__(".symver __sigsetjmp,__sigsetjmp@GLIBC_2.2.5"); -__asm__(".symver __sigsuspend,__sigsuspend@GLIBC_2.2.5"); -__asm__(".symver __snprintf_chk,__snprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __sprintf_chk,__sprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __stack_chk_fail,__stack_chk_fail@GLIBC_2.4"); -__asm__(".symver __statfs,__statfs@GLIBC_2.2.5"); -__asm__(".symver __stpcpy,__stpcpy@GLIBC_2.2.5"); -__asm__(".symver __stpcpy_chk,__stpcpy_chk@GLIBC_2.3.4"); -__asm__(".symver __stpcpy_small,__stpcpy_small@GLIBC_2.2.5"); -__asm__(".symver __stpncpy,__stpncpy@GLIBC_2.2.5"); -__asm__(".symver __stpncpy_chk,__stpncpy_chk@GLIBC_2.4"); -__asm__(".symver __strcasecmp,__strcasecmp@GLIBC_2.2.5"); -__asm__(".symver __strcasecmp_l,__strcasecmp_l@GLIBC_2.2.5"); -__asm__(".symver __strcasestr,__strcasestr@GLIBC_2.2.5"); -__asm__(".symver __strcat_chk,__strcat_chk@GLIBC_2.3.4"); -__asm__(".symver __strcoll_l,__strcoll_l@GLIBC_2.2.5"); -__asm__(".symver __strcpy_chk,__strcpy_chk@GLIBC_2.3.4"); -__asm__(".symver __strcpy_small,__strcpy_small@GLIBC_2.2.5"); -__asm__(".symver __strcspn_c1,__strcspn_c1@GLIBC_2.2.5"); -__asm__(".symver __strcspn_c2,__strcspn_c2@GLIBC_2.2.5"); -__asm__(".symver __strcspn_c3,__strcspn_c3@GLIBC_2.2.5"); -__asm__(".symver __strdup,__strdup@GLIBC_2.2.5"); -__asm__(".symver __strerror_r,__strerror_r@GLIBC_2.2.5"); -__asm__(".symver __strfmon_l,__strfmon_l@GLIBC_2.2.5"); -__asm__(".symver __strftime_l,__strftime_l@GLIBC_2.3"); -__asm__(".symver __strncasecmp_l,__strncasecmp_l@GLIBC_2.2.5"); -__asm__(".symver __strncat_chk,__strncat_chk@GLIBC_2.3.4"); -__asm__(".symver __strncpy_chk,__strncpy_chk@GLIBC_2.3.4"); -__asm__(".symver __strndup,__strndup@GLIBC_2.2.5"); -__asm__(".symver __strpbrk_c2,__strpbrk_c2@GLIBC_2.2.5"); -__asm__(".symver __strpbrk_c3,__strpbrk_c3@GLIBC_2.2.5"); -__asm__(".symver __strsep_1c,__strsep_1c@GLIBC_2.2.5"); -__asm__(".symver __strsep_2c,__strsep_2c@GLIBC_2.2.5"); -__asm__(".symver __strsep_3c,__strsep_3c@GLIBC_2.2.5"); -__asm__(".symver __strsep_g,__strsep_g@GLIBC_2.2.5"); -__asm__(".symver __strspn_c1,__strspn_c1@GLIBC_2.2.5"); -__asm__(".symver __strspn_c2,__strspn_c2@GLIBC_2.2.5"); -__asm__(".symver __strspn_c3,__strspn_c3@GLIBC_2.2.5"); -__asm__(".symver __strtod_internal,__strtod_internal@GLIBC_2.2.5"); -__asm__(".symver __strtod_l,__strtod_l@GLIBC_2.2.5"); -__asm__(".symver __strtof_internal,__strtof_internal@GLIBC_2.2.5"); -__asm__(".symver __strtof_l,__strtof_l@GLIBC_2.2.5"); -__asm__(".symver __strtok_r,__strtok_r@GLIBC_2.2.5"); -__asm__(".symver __strtok_r_1c,__strtok_r_1c@GLIBC_2.2.5"); -__asm__(".symver __strtol_internal,__strtol_internal@GLIBC_2.2.5"); -__asm__(".symver __strtol_l,__strtol_l@GLIBC_2.2.5"); -__asm__(".symver __strtold_internal,__strtold_internal@GLIBC_2.2.5"); -__asm__(".symver __strtold_l,__strtold_l@GLIBC_2.2.5"); -__asm__(".symver __strtoll_internal,__strtoll_internal@GLIBC_2.2.5"); -__asm__(".symver __strtoll_l,__strtoll_l@GLIBC_2.2.5"); -__asm__(".symver __strtoul_internal,__strtoul_internal@GLIBC_2.2.5"); -__asm__(".symver __strtoul_l,__strtoul_l@GLIBC_2.2.5"); -__asm__(".symver __strtoull_internal,__strtoull_internal@GLIBC_2.2.5"); -__asm__(".symver __strtoull_l,__strtoull_l@GLIBC_2.2.5"); -__asm__(".symver __strverscmp,__strverscmp@GLIBC_2.2.5"); -__asm__(".symver __strxfrm_l,__strxfrm_l@GLIBC_2.2.5"); -__asm__(".symver __swprintf_chk,__swprintf_chk@GLIBC_2.4"); -__asm__(".symver __sym_ntop,__sym_ntop@GLIBC_2.2.5"); -__asm__(".symver __sym_ntos,__sym_ntos@GLIBC_2.2.5"); -__asm__(".symver __sym_ston,__sym_ston@GLIBC_2.2.5"); -__asm__(".symver __sysconf,__sysconf@GLIBC_2.2.5"); -__asm__(".symver __sysctl,__sysctl@GLIBC_2.2.5"); -__asm__(".symver __syslog_chk,__syslog_chk@GLIBC_2.4"); -__asm__(".symver __sysv_signal,__sysv_signal@GLIBC_2.2.5"); -__asm__(".symver __timezone,__timezone@GLIBC_2.2.5"); -__asm__(".symver __tls_get_addr,__tls_get_addr@GLIBC_2.3"); -__asm__(".symver __toascii_l,__toascii_l@GLIBC_2.2.5"); -__asm__(".symver __tolower_l,__tolower_l@GLIBC_2.2.5"); -__asm__(".symver __toupper_l,__toupper_l@GLIBC_2.2.5"); -__asm__(".symver __towctrans,__towctrans@GLIBC_2.2.5"); -__asm__(".symver __towctrans_l,__towctrans_l@GLIBC_2.2.5"); -__asm__(".symver __towlower_l,__towlower_l@GLIBC_2.2.5"); -__asm__(".symver __towupper_l,__towupper_l@GLIBC_2.2.5"); -__asm__(".symver __ttyname_r_chk,__ttyname_r_chk@GLIBC_2.4"); -__asm__(".symver __tzname,__tzname@GLIBC_2.2.5"); -__asm__(".symver __uflow,__uflow@GLIBC_2.2.5"); -__asm__(".symver __underflow,__underflow@GLIBC_2.2.5"); -__asm__(".symver __uselocale,__uselocale@GLIBC_2.3"); -__asm__(".symver __vfork,__vfork@GLIBC_2.2.5"); -__asm__(".symver __vfprintf_chk,__vfprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __vfscanf,__vfscanf@GLIBC_2.2.5"); -__asm__(".symver __vfwprintf_chk,__vfwprintf_chk@GLIBC_2.4"); -__asm__(".symver __vprintf_chk,__vprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __vsnprintf,__vsnprintf@GLIBC_2.2.5"); -__asm__(".symver __vsnprintf_chk,__vsnprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __vsprintf_chk,__vsprintf_chk@GLIBC_2.3.4"); -__asm__(".symver __vsscanf,__vsscanf@GLIBC_2.2.5"); -__asm__(".symver __vswprintf_chk,__vswprintf_chk@GLIBC_2.4"); -__asm__(".symver __vsyslog_chk,__vsyslog_chk@GLIBC_2.4"); -__asm__(".symver __vwprintf_chk,__vwprintf_chk@GLIBC_2.4"); -__asm__(".symver __wait,__wait@GLIBC_2.2.5"); -__asm__(".symver __waitpid,__waitpid@GLIBC_2.2.5"); -__asm__(".symver __wcpcpy_chk,__wcpcpy_chk@GLIBC_2.4"); -__asm__(".symver __wcpncpy_chk,__wcpncpy_chk@GLIBC_2.4"); -__asm__(".symver __wcrtomb_chk,__wcrtomb_chk@GLIBC_2.4"); -__asm__(".symver __wcscasecmp_l,__wcscasecmp_l@GLIBC_2.2.5"); -__asm__(".symver __wcscat_chk,__wcscat_chk@GLIBC_2.4"); -__asm__(".symver __wcscoll_l,__wcscoll_l@GLIBC_2.2.5"); -__asm__(".symver __wcscpy_chk,__wcscpy_chk@GLIBC_2.4"); -__asm__(".symver __wcsftime_l,__wcsftime_l@GLIBC_2.3"); -__asm__(".symver __wcsncasecmp_l,__wcsncasecmp_l@GLIBC_2.2.5"); -__asm__(".symver __wcsncat_chk,__wcsncat_chk@GLIBC_2.4"); -__asm__(".symver __wcsncpy_chk,__wcsncpy_chk@GLIBC_2.4"); -__asm__(".symver __wcsnrtombs_chk,__wcsnrtombs_chk@GLIBC_2.4"); -__asm__(".symver __wcsrtombs_chk,__wcsrtombs_chk@GLIBC_2.4"); -__asm__(".symver __wcstod_internal,__wcstod_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstod_l,__wcstod_l@GLIBC_2.2.5"); -__asm__(".symver __wcstof_internal,__wcstof_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstof_l,__wcstof_l@GLIBC_2.2.5"); -__asm__(".symver __wcstol_internal,__wcstol_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstol_l,__wcstol_l@GLIBC_2.2.5"); -__asm__(".symver __wcstold_internal,__wcstold_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstold_l,__wcstold_l@GLIBC_2.2.5"); -__asm__(".symver __wcstoll_internal,__wcstoll_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstoll_l,__wcstoll_l@GLIBC_2.2.5"); -__asm__(".symver __wcstombs_chk,__wcstombs_chk@GLIBC_2.4"); -__asm__(".symver __wcstoul_internal,__wcstoul_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstoul_l,__wcstoul_l@GLIBC_2.2.5"); -__asm__(".symver __wcstoull_internal,__wcstoull_internal@GLIBC_2.2.5"); -__asm__(".symver __wcstoull_l,__wcstoull_l@GLIBC_2.2.5"); -__asm__(".symver __wcsxfrm_l,__wcsxfrm_l@GLIBC_2.2.5"); -__asm__(".symver __wctomb_chk,__wctomb_chk@GLIBC_2.4"); -__asm__(".symver __wctrans_l,__wctrans_l@GLIBC_2.2.5"); -__asm__(".symver __wctype_l,__wctype_l@GLIBC_2.2.5"); -__asm__(".symver __wmemcpy_chk,__wmemcpy_chk@GLIBC_2.4"); -__asm__(".symver __wmemmove_chk,__wmemmove_chk@GLIBC_2.4"); -__asm__(".symver __wmempcpy_chk,__wmempcpy_chk@GLIBC_2.4"); -__asm__(".symver __wmemset_chk,__wmemset_chk@GLIBC_2.4"); -__asm__(".symver __woverflow,__woverflow@GLIBC_2.2.5"); -__asm__(".symver __wprintf_chk,__wprintf_chk@GLIBC_2.4"); -__asm__(".symver __write,__write@GLIBC_2.2.5"); -__asm__(".symver __wuflow,__wuflow@GLIBC_2.2.5"); -__asm__(".symver __wunderflow,__wunderflow@GLIBC_2.2.5"); -__asm__(".symver __xmknod,__xmknod@GLIBC_2.2.5"); -__asm__(".symver __xmknodat,__xmknodat@GLIBC_2.4"); -__asm__(".symver __xpg_basename,__xpg_basename@GLIBC_2.2.5"); -__asm__(".symver __xpg_sigpause,__xpg_sigpause@GLIBC_2.2.5"); -__asm__(".symver __xpg_strerror_r,__xpg_strerror_r@GLIBC_2.3.4"); -__asm__(".symver __xstat,__xstat@GLIBC_2.2.5"); -__asm__(".symver __xstat64,__xstat64@GLIBC_2.2.5"); -__asm__(".symver __yp_check,__yp_check@GLIBC_2.2.5"); -__asm__(".symver _authenticate,_authenticate@GLIBC_2.2.5"); -__asm__(".symver _dl_mcount,_dl_mcount@GLIBC_2.2.5"); -__asm__(".symver _dl_mcount_wrapper,_dl_mcount_wrapper@GLIBC_2.2.5"); -__asm__(".symver _dl_mcount_wrapper_check,_dl_mcount_wrapper_check@GLIBC_2.2.5"); -__asm__(".symver _environ,_environ@GLIBC_2.2.5"); -__asm__(".symver _exit,_exit@GLIBC_2.2.5"); -__asm__(".symver _flushlbf,_flushlbf@GLIBC_2.2.5"); -__asm__(".symver _gethtbyaddr,_gethtbyaddr@GLIBC_2.2.5"); -__asm__(".symver _gethtbyname,_gethtbyname@GLIBC_2.2.5"); -__asm__(".symver _gethtbyname2,_gethtbyname2@GLIBC_2.2.5"); -__asm__(".symver _gethtent,_gethtent@GLIBC_2.2.5"); -__asm__(".symver _getlong,_getlong@GLIBC_2.2.5"); -__asm__(".symver _getshort,_getshort@GLIBC_2.2.5"); -__asm__(".symver _libc_intl_domainname,_libc_intl_domainname@GLIBC_2.2.5"); -__asm__(".symver _longjmp,_longjmp@GLIBC_2.2.5"); -__asm__(".symver _mcleanup,_mcleanup@GLIBC_2.2.5"); -__asm__(".symver _mcount,_mcount@GLIBC_2.2.5"); -__asm__(".symver _nl_default_dirname,_nl_default_dirname@GLIBC_2.2.5"); -__asm__(".symver _nl_domain_bindings,_nl_domain_bindings@GLIBC_2.2.5"); -__asm__(".symver _nl_msg_cat_cntr,_nl_msg_cat_cntr@GLIBC_2.2.5"); -__asm__(".symver _null_auth,_null_auth@GLIBC_2.2.5"); -__asm__(".symver _obstack_allocated_p,_obstack_allocated_p@GLIBC_2.2.5"); -__asm__(".symver _obstack_begin,_obstack_begin@GLIBC_2.2.5"); -__asm__(".symver _obstack_begin_1,_obstack_begin_1@GLIBC_2.2.5"); -__asm__(".symver _obstack_free,_obstack_free@GLIBC_2.2.5"); -__asm__(".symver _obstack_memory_used,_obstack_memory_used@GLIBC_2.2.5"); -__asm__(".symver _obstack_newchunk,_obstack_newchunk@GLIBC_2.2.5"); -__asm__(".symver _pthread_cleanup_pop,_pthread_cleanup_pop@GLIBC_2.2.5"); -__asm__(".symver _pthread_cleanup_pop_restore,_pthread_cleanup_pop_restore@GLIBC_2.2.5"); -__asm__(".symver _pthread_cleanup_push,_pthread_cleanup_push@GLIBC_2.2.5"); -__asm__(".symver _pthread_cleanup_push_defer,_pthread_cleanup_push_defer@GLIBC_2.2.5"); -__asm__(".symver _r_debug,_r_debug@GLIBC_2.2.5"); -__asm__(".symver _res_hconf,_res_hconf@GLIBC_2.2.5"); -__asm__(".symver _res_opcodes,_res_opcodes@GLIBC_2.2.5"); -__asm__(".symver _rpc_dtablesize,_rpc_dtablesize@GLIBC_2.2.5"); -__asm__(".symver _seterr_reply,_seterr_reply@GLIBC_2.2.5"); -__asm__(".symver _sethtent,_sethtent@GLIBC_2.2.5"); -__asm__(".symver _setjmp,_setjmp@GLIBC_2.2.5"); -__asm__(".symver _sys_errlist,_sys_errlist@GLIBC_2.4"); -__asm__(".symver _sys_nerr,_sys_nerr@GLIBC_2.4"); -__asm__(".symver _sys_siglist,_sys_siglist@GLIBC_2.3.3"); -__asm__(".symver _tolower,_tolower@GLIBC_2.2.5"); -__asm__(".symver _toupper,_toupper@GLIBC_2.2.5"); -__asm__(".symver a64l,a64l@GLIBC_2.2.5"); -__asm__(".symver abort,abort@GLIBC_2.2.5"); -__asm__(".symver abs,abs@GLIBC_2.2.5"); -__asm__(".symver accept,accept@GLIBC_2.2.5"); -__asm__(".symver access,access@GLIBC_2.2.5"); -__asm__(".symver acct,acct@GLIBC_2.2.5"); -__asm__(".symver acos,acos@GLIBC_2.2.5"); -__asm__(".symver acosf,acosf@GLIBC_2.2.5"); -__asm__(".symver acosh,acosh@GLIBC_2.2.5"); -__asm__(".symver acoshf,acoshf@GLIBC_2.2.5"); -__asm__(".symver acoshl,acoshl@GLIBC_2.2.5"); -__asm__(".symver acosl,acosl@GLIBC_2.2.5"); -__asm__(".symver addmntent,addmntent@GLIBC_2.2.5"); -__asm__(".symver addseverity,addseverity@GLIBC_2.2.5"); -__asm__(".symver adjtime,adjtime@GLIBC_2.2.5"); -__asm__(".symver adjtimex,adjtimex@GLIBC_2.2.5"); -__asm__(".symver advance,advance@GLIBC_2.2.5"); -__asm__(".symver aio_cancel,aio_cancel@GLIBC_2.2.5"); -__asm__(".symver aio_cancel64,aio_cancel64@GLIBC_2.2.5"); -__asm__(".symver aio_error,aio_error@GLIBC_2.2.5"); -__asm__(".symver aio_error64,aio_error64@GLIBC_2.2.5"); -__asm__(".symver aio_fsync,aio_fsync@GLIBC_2.2.5"); -__asm__(".symver aio_fsync64,aio_fsync64@GLIBC_2.2.5"); -__asm__(".symver aio_init,aio_init@GLIBC_2.2.5"); -__asm__(".symver aio_read,aio_read@GLIBC_2.2.5"); -__asm__(".symver aio_read64,aio_read64@GLIBC_2.2.5"); -__asm__(".symver aio_return,aio_return@GLIBC_2.2.5"); -__asm__(".symver aio_return64,aio_return64@GLIBC_2.2.5"); -__asm__(".symver aio_suspend,aio_suspend@GLIBC_2.2.5"); -__asm__(".symver aio_suspend64,aio_suspend64@GLIBC_2.2.5"); -__asm__(".symver aio_write,aio_write@GLIBC_2.2.5"); -__asm__(".symver aio_write64,aio_write64@GLIBC_2.2.5"); -__asm__(".symver alarm,alarm@GLIBC_2.2.5"); -__asm__(".symver alphasort,alphasort@GLIBC_2.2.5"); -__asm__(".symver alphasort64,alphasort64@GLIBC_2.2.5"); -__asm__(".symver arch_prctl,arch_prctl@GLIBC_2.2.5"); -__asm__(".symver argp_err_exit_status,argp_err_exit_status@GLIBC_2.2.5"); -__asm__(".symver argp_error,argp_error@GLIBC_2.2.5"); -__asm__(".symver argp_failure,argp_failure@GLIBC_2.2.5"); -__asm__(".symver argp_help,argp_help@GLIBC_2.2.5"); -__asm__(".symver argp_parse,argp_parse@GLIBC_2.2.5"); -__asm__(".symver argp_program_bug_address,argp_program_bug_address@GLIBC_2.2.5"); -__asm__(".symver argp_program_version,argp_program_version@GLIBC_2.2.5"); -__asm__(".symver argp_program_version_hook,argp_program_version_hook@GLIBC_2.2.5"); -__asm__(".symver argp_state_help,argp_state_help@GLIBC_2.2.5"); -__asm__(".symver argp_usage,argp_usage@GLIBC_2.2.5"); -__asm__(".symver argz_add,argz_add@GLIBC_2.2.5"); -__asm__(".symver argz_add_sep,argz_add_sep@GLIBC_2.2.5"); -__asm__(".symver argz_append,argz_append@GLIBC_2.2.5"); -__asm__(".symver argz_count,argz_count@GLIBC_2.2.5"); -__asm__(".symver argz_create,argz_create@GLIBC_2.2.5"); -__asm__(".symver argz_create_sep,argz_create_sep@GLIBC_2.2.5"); -__asm__(".symver argz_delete,argz_delete@GLIBC_2.2.5"); -__asm__(".symver argz_extract,argz_extract@GLIBC_2.2.5"); -__asm__(".symver argz_insert,argz_insert@GLIBC_2.2.5"); -__asm__(".symver argz_next,argz_next@GLIBC_2.2.5"); -__asm__(".symver argz_replace,argz_replace@GLIBC_2.2.5"); -__asm__(".symver argz_stringify,argz_stringify@GLIBC_2.2.5"); -__asm__(".symver asctime,asctime@GLIBC_2.2.5"); -__asm__(".symver asctime_r,asctime_r@GLIBC_2.2.5"); -__asm__(".symver asin,asin@GLIBC_2.2.5"); -__asm__(".symver asinf,asinf@GLIBC_2.2.5"); -__asm__(".symver asinh,asinh@GLIBC_2.2.5"); -__asm__(".symver asinhf,asinhf@GLIBC_2.2.5"); -__asm__(".symver asinhl,asinhl@GLIBC_2.2.5"); -__asm__(".symver asinl,asinl@GLIBC_2.2.5"); -__asm__(".symver asprintf,asprintf@GLIBC_2.2.5"); -__asm__(".symver atan,atan@GLIBC_2.2.5"); -__asm__(".symver atan2,atan2@GLIBC_2.2.5"); -__asm__(".symver atan2f,atan2f@GLIBC_2.2.5"); -__asm__(".symver atan2l,atan2l@GLIBC_2.2.5"); -__asm__(".symver atanf,atanf@GLIBC_2.2.5"); -__asm__(".symver atanh,atanh@GLIBC_2.2.5"); -__asm__(".symver atanhf,atanhf@GLIBC_2.2.5"); -__asm__(".symver atanhl,atanhl@GLIBC_2.2.5"); -__asm__(".symver atanl,atanl@GLIBC_2.2.5"); -__asm__(".symver atof,atof@GLIBC_2.2.5"); -__asm__(".symver atoi,atoi@GLIBC_2.2.5"); -__asm__(".symver atol,atol@GLIBC_2.2.5"); -__asm__(".symver atoll,atoll@GLIBC_2.2.5"); -__asm__(".symver authdes_create,authdes_create@GLIBC_2.2.5"); -__asm__(".symver authdes_getucred,authdes_getucred@GLIBC_2.2.5"); -__asm__(".symver authdes_pk_create,authdes_pk_create@GLIBC_2.2.5"); -__asm__(".symver authnone_create,authnone_create@GLIBC_2.2.5"); -__asm__(".symver authunix_create,authunix_create@GLIBC_2.2.5"); -__asm__(".symver authunix_create_default,authunix_create_default@GLIBC_2.2.5"); -__asm__(".symver backtrace,backtrace@GLIBC_2.2.5"); -__asm__(".symver backtrace_symbols,backtrace_symbols@GLIBC_2.2.5"); -__asm__(".symver backtrace_symbols_fd,backtrace_symbols_fd@GLIBC_2.2.5"); -__asm__(".symver basename,basename@GLIBC_2.2.5"); -__asm__(".symver bcmp,bcmp@GLIBC_2.2.5"); -__asm__(".symver bcopy,bcopy@GLIBC_2.2.5"); -__asm__(".symver bdflush,bdflush@GLIBC_2.2.5"); -__asm__(".symver bind,bind@GLIBC_2.2.5"); -__asm__(".symver bind_textdomain_codeset,bind_textdomain_codeset@GLIBC_2.2.5"); -__asm__(".symver bindresvport,bindresvport@GLIBC_2.2.5"); -__asm__(".symver bindtextdomain,bindtextdomain@GLIBC_2.2.5"); -__asm__(".symver brk,brk@GLIBC_2.2.5"); -__asm__(".symver bsd_signal,bsd_signal@GLIBC_2.2.5"); -__asm__(".symver bsearch,bsearch@GLIBC_2.2.5"); -__asm__(".symver btowc,btowc@GLIBC_2.2.5"); -__asm__(".symver bzero,bzero@GLIBC_2.2.5"); -__asm__(".symver cabs,cabs@GLIBC_2.2.5"); -__asm__(".symver cabsf,cabsf@GLIBC_2.2.5"); -__asm__(".symver cabsl,cabsl@GLIBC_2.2.5"); -__asm__(".symver cacos,cacos@GLIBC_2.2.5"); -__asm__(".symver cacosf,cacosf@GLIBC_2.2.5"); -__asm__(".symver cacosh,cacosh@GLIBC_2.2.5"); -__asm__(".symver cacoshf,cacoshf@GLIBC_2.2.5"); -__asm__(".symver cacoshl,cacoshl@GLIBC_2.2.5"); -__asm__(".symver cacosl,cacosl@GLIBC_2.2.5"); -__asm__(".symver calloc,calloc@GLIBC_2.2.5"); -__asm__(".symver callrpc,callrpc@GLIBC_2.2.5"); -__asm__(".symver canonicalize_file_name,canonicalize_file_name@GLIBC_2.2.5"); -__asm__(".symver capget,capget@GLIBC_2.2.5"); -__asm__(".symver capset,capset@GLIBC_2.2.5"); -__asm__(".symver carg,carg@GLIBC_2.2.5"); -__asm__(".symver cargf,cargf@GLIBC_2.2.5"); -__asm__(".symver cargl,cargl@GLIBC_2.2.5"); -__asm__(".symver casin,casin@GLIBC_2.2.5"); -__asm__(".symver casinf,casinf@GLIBC_2.2.5"); -__asm__(".symver casinh,casinh@GLIBC_2.2.5"); -__asm__(".symver casinhf,casinhf@GLIBC_2.2.5"); -__asm__(".symver casinhl,casinhl@GLIBC_2.2.5"); -__asm__(".symver casinl,casinl@GLIBC_2.2.5"); -__asm__(".symver catan,catan@GLIBC_2.2.5"); -__asm__(".symver catanf,catanf@GLIBC_2.2.5"); -__asm__(".symver catanh,catanh@GLIBC_2.2.5"); -__asm__(".symver catanhf,catanhf@GLIBC_2.2.5"); -__asm__(".symver catanhl,catanhl@GLIBC_2.2.5"); -__asm__(".symver catanl,catanl@GLIBC_2.2.5"); -__asm__(".symver catclose,catclose@GLIBC_2.2.5"); -__asm__(".symver catgets,catgets@GLIBC_2.2.5"); -__asm__(".symver catopen,catopen@GLIBC_2.2.5"); -__asm__(".symver cbc_crypt,cbc_crypt@GLIBC_2.2.5"); -__asm__(".symver cbrt,cbrt@GLIBC_2.2.5"); -__asm__(".symver cbrtf,cbrtf@GLIBC_2.2.5"); -__asm__(".symver cbrtl,cbrtl@GLIBC_2.2.5"); -__asm__(".symver ccos,ccos@GLIBC_2.2.5"); -__asm__(".symver ccosf,ccosf@GLIBC_2.2.5"); -__asm__(".symver ccosh,ccosh@GLIBC_2.2.5"); -__asm__(".symver ccoshf,ccoshf@GLIBC_2.2.5"); -__asm__(".symver ccoshl,ccoshl@GLIBC_2.2.5"); -__asm__(".symver ccosl,ccosl@GLIBC_2.2.5"); -__asm__(".symver ceil,ceil@GLIBC_2.2.5"); -__asm__(".symver ceilf,ceilf@GLIBC_2.2.5"); -__asm__(".symver ceill,ceill@GLIBC_2.2.5"); -__asm__(".symver cexp,cexp@GLIBC_2.2.5"); -__asm__(".symver cexpf,cexpf@GLIBC_2.2.5"); -__asm__(".symver cexpl,cexpl@GLIBC_2.2.5"); -__asm__(".symver cfgetispeed,cfgetispeed@GLIBC_2.2.5"); -__asm__(".symver cfgetospeed,cfgetospeed@GLIBC_2.2.5"); -__asm__(".symver cfmakeraw,cfmakeraw@GLIBC_2.2.5"); -__asm__(".symver cfree,cfree@GLIBC_2.2.5"); -__asm__(".symver cfsetispeed,cfsetispeed@GLIBC_2.2.5"); -__asm__(".symver cfsetospeed,cfsetospeed@GLIBC_2.2.5"); -__asm__(".symver cfsetspeed,cfsetspeed@GLIBC_2.2.5"); -__asm__(".symver chdir,chdir@GLIBC_2.2.5"); -__asm__(".symver chflags,chflags@GLIBC_2.2.5"); -__asm__(".symver chmod,chmod@GLIBC_2.2.5"); -__asm__(".symver chown,chown@GLIBC_2.2.5"); -__asm__(".symver chroot,chroot@GLIBC_2.2.5"); -__asm__(".symver cimag,cimag@GLIBC_2.2.5"); -__asm__(".symver cimagf,cimagf@GLIBC_2.2.5"); -__asm__(".symver cimagl,cimagl@GLIBC_2.2.5"); -__asm__(".symver clearenv,clearenv@GLIBC_2.2.5"); -__asm__(".symver clearerr,clearerr@GLIBC_2.2.5"); -__asm__(".symver clearerr_unlocked,clearerr_unlocked@GLIBC_2.2.5"); -__asm__(".symver clnt_broadcast,clnt_broadcast@GLIBC_2.2.5"); -__asm__(".symver clnt_create,clnt_create@GLIBC_2.2.5"); -__asm__(".symver clnt_pcreateerror,clnt_pcreateerror@GLIBC_2.2.5"); -__asm__(".symver clnt_perrno,clnt_perrno@GLIBC_2.2.5"); -__asm__(".symver clnt_perror,clnt_perror@GLIBC_2.2.5"); -__asm__(".symver clnt_spcreateerror,clnt_spcreateerror@GLIBC_2.2.5"); -__asm__(".symver clnt_sperrno,clnt_sperrno@GLIBC_2.2.5"); -__asm__(".symver clnt_sperror,clnt_sperror@GLIBC_2.2.5"); -__asm__(".symver clntraw_create,clntraw_create@GLIBC_2.2.5"); -__asm__(".symver clnttcp_create,clnttcp_create@GLIBC_2.2.5"); -__asm__(".symver clntudp_bufcreate,clntudp_bufcreate@GLIBC_2.2.5"); -__asm__(".symver clntudp_create,clntudp_create@GLIBC_2.2.5"); -__asm__(".symver clntunix_create,clntunix_create@GLIBC_2.2.5"); -__asm__(".symver clock,clock@GLIBC_2.2.5"); -__asm__(".symver clock_getcpuclockid,clock_getcpuclockid@GLIBC_2.2.5"); -__asm__(".symver clock_getres,clock_getres@GLIBC_2.2.5"); -__asm__(".symver clock_gettime,clock_gettime@GLIBC_2.2.5"); -__asm__(".symver clock_nanosleep,clock_nanosleep@GLIBC_2.2.5"); -__asm__(".symver clock_settime,clock_settime@GLIBC_2.2.5"); -__asm__(".symver clog,clog@GLIBC_2.2.5"); -__asm__(".symver clog10,clog10@GLIBC_2.2.5"); -__asm__(".symver clog10f,clog10f@GLIBC_2.2.5"); -__asm__(".symver clog10l,clog10l@GLIBC_2.2.5"); -__asm__(".symver clogf,clogf@GLIBC_2.2.5"); -__asm__(".symver clogl,clogl@GLIBC_2.2.5"); -__asm__(".symver clone,clone@GLIBC_2.2.5"); -__asm__(".symver close,close@GLIBC_2.2.5"); -__asm__(".symver closedir,closedir@GLIBC_2.2.5"); -__asm__(".symver closelog,closelog@GLIBC_2.2.5"); -__asm__(".symver confstr,confstr@GLIBC_2.2.5"); -__asm__(".symver conj,conj@GLIBC_2.2.5"); -__asm__(".symver conjf,conjf@GLIBC_2.2.5"); -__asm__(".symver conjl,conjl@GLIBC_2.2.5"); -__asm__(".symver connect,connect@GLIBC_2.2.5"); -__asm__(".symver copysign,copysign@GLIBC_2.2.5"); -__asm__(".symver copysignf,copysignf@GLIBC_2.2.5"); -__asm__(".symver copysignl,copysignl@GLIBC_2.2.5"); -__asm__(".symver cos,cos@GLIBC_2.2.5"); -__asm__(".symver cosf,cosf@GLIBC_2.2.5"); -__asm__(".symver cosh,cosh@GLIBC_2.2.5"); -__asm__(".symver coshf,coshf@GLIBC_2.2.5"); -__asm__(".symver coshl,coshl@GLIBC_2.2.5"); -__asm__(".symver cosl,cosl@GLIBC_2.2.5"); -__asm__(".symver cpow,cpow@GLIBC_2.2.5"); -__asm__(".symver cpowf,cpowf@GLIBC_2.2.5"); -__asm__(".symver cpowl,cpowl@GLIBC_2.2.5"); -__asm__(".symver cproj,cproj@GLIBC_2.2.5"); -__asm__(".symver cprojf,cprojf@GLIBC_2.2.5"); -__asm__(".symver cprojl,cprojl@GLIBC_2.2.5"); -__asm__(".symver creal,creal@GLIBC_2.2.5"); -__asm__(".symver crealf,crealf@GLIBC_2.2.5"); -__asm__(".symver creall,creall@GLIBC_2.2.5"); -__asm__(".symver creat,creat@GLIBC_2.2.5"); -__asm__(".symver creat64,creat64@GLIBC_2.2.5"); -__asm__(".symver create_module,create_module@GLIBC_2.2.5"); -__asm__(".symver crypt,crypt@GLIBC_2.2.5"); -__asm__(".symver crypt_r,crypt_r@GLIBC_2.2.5"); -__asm__(".symver csin,csin@GLIBC_2.2.5"); -__asm__(".symver csinf,csinf@GLIBC_2.2.5"); -__asm__(".symver csinh,csinh@GLIBC_2.2.5"); -__asm__(".symver csinhf,csinhf@GLIBC_2.2.5"); -__asm__(".symver csinhl,csinhl@GLIBC_2.2.5"); -__asm__(".symver csinl,csinl@GLIBC_2.2.5"); -__asm__(".symver csqrt,csqrt@GLIBC_2.2.5"); -__asm__(".symver csqrtf,csqrtf@GLIBC_2.2.5"); -__asm__(".symver csqrtl,csqrtl@GLIBC_2.2.5"); -__asm__(".symver ctan,ctan@GLIBC_2.2.5"); -__asm__(".symver ctanf,ctanf@GLIBC_2.2.5"); -__asm__(".symver ctanh,ctanh@GLIBC_2.2.5"); -__asm__(".symver ctanhf,ctanhf@GLIBC_2.2.5"); -__asm__(".symver ctanhl,ctanhl@GLIBC_2.2.5"); -__asm__(".symver ctanl,ctanl@GLIBC_2.2.5"); -__asm__(".symver ctermid,ctermid@GLIBC_2.2.5"); -__asm__(".symver ctime,ctime@GLIBC_2.2.5"); -__asm__(".symver ctime_r,ctime_r@GLIBC_2.2.5"); -__asm__(".symver cuserid,cuserid@GLIBC_2.2.5"); -__asm__(".symver daemon,daemon@GLIBC_2.2.5"); -__asm__(".symver daylight,daylight@GLIBC_2.2.5"); -__asm__(".symver dcgettext,dcgettext@GLIBC_2.2.5"); -__asm__(".symver dcngettext,dcngettext@GLIBC_2.2.5"); -__asm__(".symver delete_module,delete_module@GLIBC_2.2.5"); -__asm__(".symver des_setparity,des_setparity@GLIBC_2.2.5"); -__asm__(".symver dgettext,dgettext@GLIBC_2.2.5"); -__asm__(".symver difftime,difftime@GLIBC_2.2.5"); -__asm__(".symver dirfd,dirfd@GLIBC_2.2.5"); -__asm__(".symver dirname,dirname@GLIBC_2.2.5"); -__asm__(".symver div,div@GLIBC_2.2.5"); -__asm__(".symver dl_iterate_phdr,dl_iterate_phdr@GLIBC_2.2.5"); -__asm__(".symver dladdr,dladdr@GLIBC_2.2.5"); -__asm__(".symver dladdr1,dladdr1@GLIBC_2.3.3"); -__asm__(".symver dlclose,dlclose@GLIBC_2.2.5"); -__asm__(".symver dlerror,dlerror@GLIBC_2.2.5"); -__asm__(".symver dlinfo,dlinfo@GLIBC_2.3.3"); -__asm__(".symver dlmopen,dlmopen@GLIBC_2.3.4"); -__asm__(".symver dlopen,dlopen@GLIBC_2.2.5"); -__asm__(".symver dlsym,dlsym@GLIBC_2.2.5"); -__asm__(".symver dlvsym,dlvsym@GLIBC_2.2.5"); -__asm__(".symver dngettext,dngettext@GLIBC_2.2.5"); -__asm__(".symver dprintf,dprintf@GLIBC_2.2.5"); -__asm__(".symver drand48,drand48@GLIBC_2.2.5"); -__asm__(".symver drand48_r,drand48_r@GLIBC_2.2.5"); -__asm__(".symver drem,drem@GLIBC_2.2.5"); -__asm__(".symver dremf,dremf@GLIBC_2.2.5"); -__asm__(".symver dreml,dreml@GLIBC_2.2.5"); -__asm__(".symver dup,dup@GLIBC_2.2.5"); -__asm__(".symver dup2,dup2@GLIBC_2.2.5"); -__asm__(".symver duplocale,duplocale@GLIBC_2.3"); -__asm__(".symver dysize,dysize@GLIBC_2.2.5"); -__asm__(".symver eaccess,eaccess@GLIBC_2.4"); -__asm__(".symver ecb_crypt,ecb_crypt@GLIBC_2.2.5"); -__asm__(".symver ecvt,ecvt@GLIBC_2.2.5"); -__asm__(".symver ecvt_r,ecvt_r@GLIBC_2.2.5"); -__asm__(".symver encrypt,encrypt@GLIBC_2.2.5"); -__asm__(".symver encrypt_r,encrypt_r@GLIBC_2.2.5"); -__asm__(".symver endaliasent,endaliasent@GLIBC_2.2.5"); -__asm__(".symver endfsent,endfsent@GLIBC_2.2.5"); -__asm__(".symver endgrent,endgrent@GLIBC_2.2.5"); -__asm__(".symver endhostent,endhostent@GLIBC_2.2.5"); -__asm__(".symver endmntent,endmntent@GLIBC_2.2.5"); -__asm__(".symver endnetent,endnetent@GLIBC_2.2.5"); -__asm__(".symver endnetgrent,endnetgrent@GLIBC_2.2.5"); -__asm__(".symver endprotoent,endprotoent@GLIBC_2.2.5"); -__asm__(".symver endpwent,endpwent@GLIBC_2.2.5"); -__asm__(".symver endrpcent,endrpcent@GLIBC_2.2.5"); -__asm__(".symver endservent,endservent@GLIBC_2.2.5"); -__asm__(".symver endspent,endspent@GLIBC_2.2.5"); -__asm__(".symver endttyent,endttyent@GLIBC_2.2.5"); -__asm__(".symver endusershell,endusershell@GLIBC_2.2.5"); -__asm__(".symver endutent,endutent@GLIBC_2.2.5"); -__asm__(".symver endutxent,endutxent@GLIBC_2.2.5"); -__asm__(".symver environ,environ@GLIBC_2.2.5"); -__asm__(".symver envz_add,envz_add@GLIBC_2.2.5"); -__asm__(".symver envz_entry,envz_entry@GLIBC_2.2.5"); -__asm__(".symver envz_get,envz_get@GLIBC_2.2.5"); -__asm__(".symver envz_merge,envz_merge@GLIBC_2.2.5"); -__asm__(".symver envz_remove,envz_remove@GLIBC_2.2.5"); -__asm__(".symver envz_strip,envz_strip@GLIBC_2.2.5"); -__asm__(".symver epoll_create,epoll_create@GLIBC_2.3.2"); -__asm__(".symver epoll_ctl,epoll_ctl@GLIBC_2.3.2"); -__asm__(".symver epoll_wait,epoll_wait@GLIBC_2.3.2"); -__asm__(".symver erand48,erand48@GLIBC_2.2.5"); -__asm__(".symver erand48_r,erand48_r@GLIBC_2.2.5"); -__asm__(".symver erf,erf@GLIBC_2.2.5"); -__asm__(".symver erfc,erfc@GLIBC_2.2.5"); -__asm__(".symver erfcf,erfcf@GLIBC_2.2.5"); -__asm__(".symver erfcl,erfcl@GLIBC_2.2.5"); -__asm__(".symver erff,erff@GLIBC_2.2.5"); -__asm__(".symver erfl,erfl@GLIBC_2.2.5"); -__asm__(".symver err,err@GLIBC_2.2.5"); -__asm__(".symver error,error@GLIBC_2.2.5"); -__asm__(".symver error_at_line,error_at_line@GLIBC_2.2.5"); -__asm__(".symver error_message_count,error_message_count@GLIBC_2.2.5"); -__asm__(".symver error_one_per_line,error_one_per_line@GLIBC_2.2.5"); -__asm__(".symver error_print_progname,error_print_progname@GLIBC_2.2.5"); -__asm__(".symver errx,errx@GLIBC_2.2.5"); -__asm__(".symver ether_aton,ether_aton@GLIBC_2.2.5"); -__asm__(".symver ether_aton_r,ether_aton_r@GLIBC_2.2.5"); -__asm__(".symver ether_hostton,ether_hostton@GLIBC_2.2.5"); -__asm__(".symver ether_line,ether_line@GLIBC_2.2.5"); -__asm__(".symver ether_ntoa,ether_ntoa@GLIBC_2.2.5"); -__asm__(".symver ether_ntoa_r,ether_ntoa_r@GLIBC_2.2.5"); -__asm__(".symver ether_ntohost,ether_ntohost@GLIBC_2.2.5"); -__asm__(".symver euidaccess,euidaccess@GLIBC_2.2.5"); -__asm__(".symver execl,execl@GLIBC_2.2.5"); -__asm__(".symver execle,execle@GLIBC_2.2.5"); -__asm__(".symver execlp,execlp@GLIBC_2.2.5"); -__asm__(".symver execv,execv@GLIBC_2.2.5"); -__asm__(".symver execve,execve@GLIBC_2.2.5"); -__asm__(".symver execvp,execvp@GLIBC_2.2.5"); -__asm__(".symver exit,exit@GLIBC_2.2.5"); -__asm__(".symver exp,exp@GLIBC_2.2.5"); -__asm__(".symver exp10,exp10@GLIBC_2.2.5"); -__asm__(".symver exp10f,exp10f@GLIBC_2.2.5"); -__asm__(".symver exp10l,exp10l@GLIBC_2.2.5"); -__asm__(".symver exp2,exp2@GLIBC_2.2.5"); -__asm__(".symver exp2f,exp2f@GLIBC_2.2.5"); -__asm__(".symver exp2l,exp2l@GLIBC_2.2.5"); -__asm__(".symver expf,expf@GLIBC_2.2.5"); -__asm__(".symver expl,expl@GLIBC_2.2.5"); -__asm__(".symver expm1,expm1@GLIBC_2.2.5"); -__asm__(".symver expm1f,expm1f@GLIBC_2.2.5"); -__asm__(".symver expm1l,expm1l@GLIBC_2.2.5"); -__asm__(".symver fabs,fabs@GLIBC_2.2.5"); -__asm__(".symver fabsf,fabsf@GLIBC_2.2.5"); -__asm__(".symver fabsl,fabsl@GLIBC_2.2.5"); -__asm__(".symver faccessat,faccessat@GLIBC_2.4"); -__asm__(".symver fattach,fattach@GLIBC_2.2.5"); -__asm__(".symver fchdir,fchdir@GLIBC_2.2.5"); -__asm__(".symver fchflags,fchflags@GLIBC_2.2.5"); -__asm__(".symver fchmod,fchmod@GLIBC_2.2.5"); -__asm__(".symver fchmodat,fchmodat@GLIBC_2.4"); -__asm__(".symver fchown,fchown@GLIBC_2.2.5"); -__asm__(".symver fchownat,fchownat@GLIBC_2.4"); -__asm__(".symver fclose,fclose@GLIBC_2.2.5"); -__asm__(".symver fcloseall,fcloseall@GLIBC_2.2.5"); -__asm__(".symver fcntl,fcntl@GLIBC_2.2.5"); -__asm__(".symver fcrypt,fcrypt@GLIBC_2.2.5"); -__asm__(".symver fcvt,fcvt@GLIBC_2.2.5"); -__asm__(".symver fcvt_r,fcvt_r@GLIBC_2.2.5"); -__asm__(".symver fdatasync,fdatasync@GLIBC_2.2.5"); -__asm__(".symver fdetach,fdetach@GLIBC_2.2.5"); -__asm__(".symver fdim,fdim@GLIBC_2.2.5"); -__asm__(".symver fdimf,fdimf@GLIBC_2.2.5"); -__asm__(".symver fdiml,fdiml@GLIBC_2.2.5"); -__asm__(".symver fdopen,fdopen@GLIBC_2.2.5"); -__asm__(".symver fdopendir,fdopendir@GLIBC_2.4"); -__asm__(".symver feclearexcept,feclearexcept@GLIBC_2.2.5"); -__asm__(".symver fedisableexcept,fedisableexcept@GLIBC_2.2.5"); -__asm__(".symver feenableexcept,feenableexcept@GLIBC_2.2.5"); -__asm__(".symver fegetenv,fegetenv@GLIBC_2.2.5"); -__asm__(".symver fegetexcept,fegetexcept@GLIBC_2.2.5"); -__asm__(".symver fegetexceptflag,fegetexceptflag@GLIBC_2.2.5"); -__asm__(".symver fegetround,fegetround@GLIBC_2.2.5"); -__asm__(".symver feholdexcept,feholdexcept@GLIBC_2.2.5"); -__asm__(".symver feof,feof@GLIBC_2.2.5"); -__asm__(".symver feof_unlocked,feof_unlocked@GLIBC_2.2.5"); -__asm__(".symver feraiseexcept,feraiseexcept@GLIBC_2.2.5"); -__asm__(".symver ferror,ferror@GLIBC_2.2.5"); -__asm__(".symver ferror_unlocked,ferror_unlocked@GLIBC_2.2.5"); -__asm__(".symver fesetenv,fesetenv@GLIBC_2.2.5"); -__asm__(".symver fesetexceptflag,fesetexceptflag@GLIBC_2.2.5"); -__asm__(".symver fesetround,fesetround@GLIBC_2.2.5"); -__asm__(".symver fetestexcept,fetestexcept@GLIBC_2.2.5"); -__asm__(".symver feupdateenv,feupdateenv@GLIBC_2.2.5"); -__asm__(".symver fexecve,fexecve@GLIBC_2.2.5"); -__asm__(".symver fflush,fflush@GLIBC_2.2.5"); -__asm__(".symver fflush_unlocked,fflush_unlocked@GLIBC_2.2.5"); -__asm__(".symver ffs,ffs@GLIBC_2.2.5"); -__asm__(".symver ffsl,ffsl@GLIBC_2.2.5"); -__asm__(".symver ffsll,ffsll@GLIBC_2.2.5"); -__asm__(".symver fgetc,fgetc@GLIBC_2.2.5"); -__asm__(".symver fgetc_unlocked,fgetc_unlocked@GLIBC_2.2.5"); -__asm__(".symver fgetgrent,fgetgrent@GLIBC_2.2.5"); -__asm__(".symver fgetgrent_r,fgetgrent_r@GLIBC_2.2.5"); -__asm__(".symver fgetpos,fgetpos@GLIBC_2.2.5"); -__asm__(".symver fgetpos64,fgetpos64@GLIBC_2.2.5"); -__asm__(".symver fgetpwent,fgetpwent@GLIBC_2.2.5"); -__asm__(".symver fgetpwent_r,fgetpwent_r@GLIBC_2.2.5"); -__asm__(".symver fgets,fgets@GLIBC_2.2.5"); -__asm__(".symver fgets_unlocked,fgets_unlocked@GLIBC_2.2.5"); -__asm__(".symver fgetspent,fgetspent@GLIBC_2.2.5"); -__asm__(".symver fgetspent_r,fgetspent_r@GLIBC_2.2.5"); -__asm__(".symver fgetwc,fgetwc@GLIBC_2.2.5"); -__asm__(".symver fgetwc_unlocked,fgetwc_unlocked@GLIBC_2.2.5"); -__asm__(".symver fgetws,fgetws@GLIBC_2.2.5"); -__asm__(".symver fgetws_unlocked,fgetws_unlocked@GLIBC_2.2.5"); -__asm__(".symver fgetxattr,fgetxattr@GLIBC_2.3"); -__asm__(".symver fileno,fileno@GLIBC_2.2.5"); -__asm__(".symver fileno_unlocked,fileno_unlocked@GLIBC_2.2.5"); -__asm__(".symver finite,finite@GLIBC_2.2.5"); -__asm__(".symver finitef,finitef@GLIBC_2.2.5"); -__asm__(".symver finitel,finitel@GLIBC_2.2.5"); -__asm__(".symver flistxattr,flistxattr@GLIBC_2.3"); -__asm__(".symver flock,flock@GLIBC_2.2.5"); -__asm__(".symver flockfile,flockfile@GLIBC_2.2.5"); -__asm__(".symver floor,floor@GLIBC_2.2.5"); -__asm__(".symver floorf,floorf@GLIBC_2.2.5"); -__asm__(".symver floorl,floorl@GLIBC_2.2.5"); -__asm__(".symver fma,fma@GLIBC_2.2.5"); -__asm__(".symver fmaf,fmaf@GLIBC_2.2.5"); -__asm__(".symver fmal,fmal@GLIBC_2.2.5"); -__asm__(".symver fmax,fmax@GLIBC_2.2.5"); -__asm__(".symver fmaxf,fmaxf@GLIBC_2.2.5"); -__asm__(".symver fmaxl,fmaxl@GLIBC_2.2.5"); -__asm__(".symver fmemopen,fmemopen@GLIBC_2.2.5"); -__asm__(".symver fmin,fmin@GLIBC_2.2.5"); -__asm__(".symver fminf,fminf@GLIBC_2.2.5"); -__asm__(".symver fminl,fminl@GLIBC_2.2.5"); -__asm__(".symver fmod,fmod@GLIBC_2.2.5"); -__asm__(".symver fmodf,fmodf@GLIBC_2.2.5"); -__asm__(".symver fmodl,fmodl@GLIBC_2.2.5"); -__asm__(".symver fmtmsg,fmtmsg@GLIBC_2.2.5"); -__asm__(".symver fnmatch,fnmatch@GLIBC_2.2.5"); -__asm__(".symver fopen,fopen@GLIBC_2.2.5"); -__asm__(".symver fopen64,fopen64@GLIBC_2.2.5"); -__asm__(".symver fopencookie,fopencookie@GLIBC_2.2.5"); -__asm__(".symver fork,fork@GLIBC_2.2.5"); -__asm__(".symver forkpty,forkpty@GLIBC_2.2.5"); -__asm__(".symver fpathconf,fpathconf@GLIBC_2.2.5"); -__asm__(".symver fprintf,fprintf@GLIBC_2.2.5"); -__asm__(".symver fputc,fputc@GLIBC_2.2.5"); -__asm__(".symver fputc_unlocked,fputc_unlocked@GLIBC_2.2.5"); -__asm__(".symver fputs,fputs@GLIBC_2.2.5"); -__asm__(".symver fputs_unlocked,fputs_unlocked@GLIBC_2.2.5"); -__asm__(".symver fputwc,fputwc@GLIBC_2.2.5"); -__asm__(".symver fputwc_unlocked,fputwc_unlocked@GLIBC_2.2.5"); -__asm__(".symver fputws,fputws@GLIBC_2.2.5"); -__asm__(".symver fputws_unlocked,fputws_unlocked@GLIBC_2.2.5"); -__asm__(".symver fread,fread@GLIBC_2.2.5"); -__asm__(".symver fread_unlocked,fread_unlocked@GLIBC_2.2.5"); -__asm__(".symver free,free@GLIBC_2.2.5"); -__asm__(".symver freeaddrinfo,freeaddrinfo@GLIBC_2.2.5"); -__asm__(".symver freeifaddrs,freeifaddrs@GLIBC_2.3"); -__asm__(".symver freelocale,freelocale@GLIBC_2.3"); -__asm__(".symver fremovexattr,fremovexattr@GLIBC_2.3"); -__asm__(".symver freopen,freopen@GLIBC_2.2.5"); -__asm__(".symver freopen64,freopen64@GLIBC_2.2.5"); -__asm__(".symver frexp,frexp@GLIBC_2.2.5"); -__asm__(".symver frexpf,frexpf@GLIBC_2.2.5"); -__asm__(".symver frexpl,frexpl@GLIBC_2.2.5"); -__asm__(".symver fscanf,fscanf@GLIBC_2.2.5"); -__asm__(".symver fseek,fseek@GLIBC_2.2.5"); -__asm__(".symver fseeko,fseeko@GLIBC_2.2.5"); -__asm__(".symver fseeko64,fseeko64@GLIBC_2.2.5"); -__asm__(".symver fsetpos,fsetpos@GLIBC_2.2.5"); -__asm__(".symver fsetpos64,fsetpos64@GLIBC_2.2.5"); -__asm__(".symver fsetxattr,fsetxattr@GLIBC_2.3"); -__asm__(".symver fstatfs,fstatfs@GLIBC_2.2.5"); -__asm__(".symver fstatfs64,fstatfs64@GLIBC_2.2.5"); -__asm__(".symver fstatvfs,fstatvfs@GLIBC_2.2.5"); -__asm__(".symver fstatvfs64,fstatvfs64@GLIBC_2.2.5"); -__asm__(".symver fsync,fsync@GLIBC_2.2.5"); -__asm__(".symver ftell,ftell@GLIBC_2.2.5"); -__asm__(".symver ftello,ftello@GLIBC_2.2.5"); -__asm__(".symver ftello64,ftello64@GLIBC_2.2.5"); -__asm__(".symver ftime,ftime@GLIBC_2.2.5"); -__asm__(".symver ftok,ftok@GLIBC_2.2.5"); -__asm__(".symver ftruncate,ftruncate@GLIBC_2.2.5"); -__asm__(".symver ftruncate64,ftruncate64@GLIBC_2.2.5"); -__asm__(".symver ftrylockfile,ftrylockfile@GLIBC_2.2.5"); -__asm__(".symver fts_children,fts_children@GLIBC_2.2.5"); -__asm__(".symver fts_close,fts_close@GLIBC_2.2.5"); -__asm__(".symver fts_open,fts_open@GLIBC_2.2.5"); -__asm__(".symver fts_read,fts_read@GLIBC_2.2.5"); -__asm__(".symver fts_set,fts_set@GLIBC_2.2.5"); -__asm__(".symver ftw,ftw@GLIBC_2.2.5"); -__asm__(".symver ftw64,ftw64@GLIBC_2.2.5"); -__asm__(".symver funlockfile,funlockfile@GLIBC_2.2.5"); -__asm__(".symver futimes,futimes@GLIBC_2.3"); -__asm__(".symver futimesat,futimesat@GLIBC_2.4"); -__asm__(".symver fwide,fwide@GLIBC_2.2.5"); -__asm__(".symver fwprintf,fwprintf@GLIBC_2.2.5"); -__asm__(".symver fwrite,fwrite@GLIBC_2.2.5"); -__asm__(".symver fwrite_unlocked,fwrite_unlocked@GLIBC_2.2.5"); -__asm__(".symver fwscanf,fwscanf@GLIBC_2.2.5"); -__asm__(".symver gai_cancel,gai_cancel@GLIBC_2.2.5"); -__asm__(".symver gai_error,gai_error@GLIBC_2.2.5"); -__asm__(".symver gai_strerror,gai_strerror@GLIBC_2.2.5"); -__asm__(".symver gai_suspend,gai_suspend@GLIBC_2.2.5"); -__asm__(".symver gamma,gamma@GLIBC_2.2.5"); -__asm__(".symver gammaf,gammaf@GLIBC_2.2.5"); -__asm__(".symver gammal,gammal@GLIBC_2.2.5"); -__asm__(".symver gcvt,gcvt@GLIBC_2.2.5"); -__asm__(".symver get_avphys_pages,get_avphys_pages@GLIBC_2.2.5"); -__asm__(".symver get_current_dir_name,get_current_dir_name@GLIBC_2.2.5"); -__asm__(".symver get_kernel_syms,get_kernel_syms@GLIBC_2.2.5"); -__asm__(".symver get_myaddress,get_myaddress@GLIBC_2.2.5"); -__asm__(".symver get_nprocs,get_nprocs@GLIBC_2.2.5"); -__asm__(".symver get_nprocs_conf,get_nprocs_conf@GLIBC_2.2.5"); -__asm__(".symver get_phys_pages,get_phys_pages@GLIBC_2.2.5"); -__asm__(".symver getaddrinfo,getaddrinfo@GLIBC_2.2.5"); -__asm__(".symver getaddrinfo_a,getaddrinfo_a@GLIBC_2.2.5"); -__asm__(".symver getaliasbyname,getaliasbyname@GLIBC_2.2.5"); -__asm__(".symver getaliasbyname_r,getaliasbyname_r@GLIBC_2.2.5"); -__asm__(".symver getaliasent,getaliasent@GLIBC_2.2.5"); -__asm__(".symver getaliasent_r,getaliasent_r@GLIBC_2.2.5"); -__asm__(".symver getc,getc@GLIBC_2.2.5"); -__asm__(".symver getc_unlocked,getc_unlocked@GLIBC_2.2.5"); -__asm__(".symver getchar,getchar@GLIBC_2.2.5"); -__asm__(".symver getchar_unlocked,getchar_unlocked@GLIBC_2.2.5"); -__asm__(".symver getcontext,getcontext@GLIBC_2.2.5"); -__asm__(".symver getcwd,getcwd@GLIBC_2.2.5"); -__asm__(".symver getdate,getdate@GLIBC_2.2.5"); -__asm__(".symver getdate_err,getdate_err@GLIBC_2.2.5"); -__asm__(".symver getdate_r,getdate_r@GLIBC_2.2.5"); -__asm__(".symver getdelim,getdelim@GLIBC_2.2.5"); -__asm__(".symver getdirentries,getdirentries@GLIBC_2.2.5"); -__asm__(".symver getdirentries64,getdirentries64@GLIBC_2.2.5"); -__asm__(".symver getdomainname,getdomainname@GLIBC_2.2.5"); -__asm__(".symver getdtablesize,getdtablesize@GLIBC_2.2.5"); -__asm__(".symver getegid,getegid@GLIBC_2.2.5"); -__asm__(".symver getenv,getenv@GLIBC_2.2.5"); -__asm__(".symver geteuid,geteuid@GLIBC_2.2.5"); -__asm__(".symver getfsent,getfsent@GLIBC_2.2.5"); -__asm__(".symver getfsfile,getfsfile@GLIBC_2.2.5"); -__asm__(".symver getfsspec,getfsspec@GLIBC_2.2.5"); -__asm__(".symver getgid,getgid@GLIBC_2.2.5"); -__asm__(".symver getgrent,getgrent@GLIBC_2.2.5"); -__asm__(".symver getgrent_r,getgrent_r@GLIBC_2.2.5"); -__asm__(".symver getgrgid,getgrgid@GLIBC_2.2.5"); -__asm__(".symver getgrgid_r,getgrgid_r@GLIBC_2.2.5"); -__asm__(".symver getgrnam,getgrnam@GLIBC_2.2.5"); -__asm__(".symver getgrnam_r,getgrnam_r@GLIBC_2.2.5"); -__asm__(".symver getgrouplist,getgrouplist@GLIBC_2.2.5"); -__asm__(".symver getgroups,getgroups@GLIBC_2.2.5"); -__asm__(".symver gethostbyaddr,gethostbyaddr@GLIBC_2.2.5"); -__asm__(".symver gethostbyaddr_r,gethostbyaddr_r@GLIBC_2.2.5"); -__asm__(".symver gethostbyname,gethostbyname@GLIBC_2.2.5"); -__asm__(".symver gethostbyname2,gethostbyname2@GLIBC_2.2.5"); -__asm__(".symver gethostbyname2_r,gethostbyname2_r@GLIBC_2.2.5"); -__asm__(".symver gethostbyname_r,gethostbyname_r@GLIBC_2.2.5"); -__asm__(".symver gethostent,gethostent@GLIBC_2.2.5"); -__asm__(".symver gethostent_r,gethostent_r@GLIBC_2.2.5"); -__asm__(".symver gethostid,gethostid@GLIBC_2.2.5"); -__asm__(".symver gethostname,gethostname@GLIBC_2.2.5"); -__asm__(".symver getifaddrs,getifaddrs@GLIBC_2.3"); -__asm__(".symver getipv4sourcefilter,getipv4sourcefilter@GLIBC_2.3.4"); -__asm__(".symver getitimer,getitimer@GLIBC_2.2.5"); -__asm__(".symver getline,getline@GLIBC_2.2.5"); -__asm__(".symver getloadavg,getloadavg@GLIBC_2.2.5"); -__asm__(".symver getlogin,getlogin@GLIBC_2.2.5"); -__asm__(".symver getlogin_r,getlogin_r@GLIBC_2.2.5"); -__asm__(".symver getmntent,getmntent@GLIBC_2.2.5"); -__asm__(".symver getmntent_r,getmntent_r@GLIBC_2.2.5"); -__asm__(".symver getmsg,getmsg@GLIBC_2.2.5"); -__asm__(".symver getnameinfo,getnameinfo@GLIBC_2.2.5"); -__asm__(".symver getnetbyaddr,getnetbyaddr@GLIBC_2.2.5"); -__asm__(".symver getnetbyaddr_r,getnetbyaddr_r@GLIBC_2.2.5"); -__asm__(".symver getnetbyname,getnetbyname@GLIBC_2.2.5"); -__asm__(".symver getnetbyname_r,getnetbyname_r@GLIBC_2.2.5"); -__asm__(".symver getnetent,getnetent@GLIBC_2.2.5"); -__asm__(".symver getnetent_r,getnetent_r@GLIBC_2.2.5"); -__asm__(".symver getnetgrent,getnetgrent@GLIBC_2.2.5"); -__asm__(".symver getnetgrent_r,getnetgrent_r@GLIBC_2.2.5"); -__asm__(".symver getnetname,getnetname@GLIBC_2.2.5"); -__asm__(".symver getopt,getopt@GLIBC_2.2.5"); -__asm__(".symver getopt_long,getopt_long@GLIBC_2.2.5"); -__asm__(".symver getopt_long_only,getopt_long_only@GLIBC_2.2.5"); -__asm__(".symver getpagesize,getpagesize@GLIBC_2.2.5"); -__asm__(".symver getpass,getpass@GLIBC_2.2.5"); -__asm__(".symver getpeername,getpeername@GLIBC_2.2.5"); -__asm__(".symver getpgid,getpgid@GLIBC_2.2.5"); -__asm__(".symver getpgrp,getpgrp@GLIBC_2.2.5"); -__asm__(".symver getpid,getpid@GLIBC_2.2.5"); -__asm__(".symver getpmsg,getpmsg@GLIBC_2.2.5"); -__asm__(".symver getppid,getppid@GLIBC_2.2.5"); -__asm__(".symver getpriority,getpriority@GLIBC_2.2.5"); -__asm__(".symver getprotobyname,getprotobyname@GLIBC_2.2.5"); -__asm__(".symver getprotobyname_r,getprotobyname_r@GLIBC_2.2.5"); -__asm__(".symver getprotobynumber,getprotobynumber@GLIBC_2.2.5"); -__asm__(".symver getprotobynumber_r,getprotobynumber_r@GLIBC_2.2.5"); -__asm__(".symver getprotoent,getprotoent@GLIBC_2.2.5"); -__asm__(".symver getprotoent_r,getprotoent_r@GLIBC_2.2.5"); -__asm__(".symver getpt,getpt@GLIBC_2.2.5"); -__asm__(".symver getpublickey,getpublickey@GLIBC_2.2.5"); -__asm__(".symver getpw,getpw@GLIBC_2.2.5"); -__asm__(".symver getpwent,getpwent@GLIBC_2.2.5"); -__asm__(".symver getpwent_r,getpwent_r@GLIBC_2.2.5"); -__asm__(".symver getpwnam,getpwnam@GLIBC_2.2.5"); -__asm__(".symver getpwnam_r,getpwnam_r@GLIBC_2.2.5"); -__asm__(".symver getpwuid,getpwuid@GLIBC_2.2.5"); -__asm__(".symver getpwuid_r,getpwuid_r@GLIBC_2.2.5"); -__asm__(".symver getresgid,getresgid@GLIBC_2.2.5"); -__asm__(".symver getresuid,getresuid@GLIBC_2.2.5"); -__asm__(".symver getrlimit,getrlimit@GLIBC_2.2.5"); -__asm__(".symver getrlimit64,getrlimit64@GLIBC_2.2.5"); -__asm__(".symver getrpcbyname,getrpcbyname@GLIBC_2.2.5"); -__asm__(".symver getrpcbyname_r,getrpcbyname_r@GLIBC_2.2.5"); -__asm__(".symver getrpcbynumber,getrpcbynumber@GLIBC_2.2.5"); -__asm__(".symver getrpcbynumber_r,getrpcbynumber_r@GLIBC_2.2.5"); -__asm__(".symver getrpcent,getrpcent@GLIBC_2.2.5"); -__asm__(".symver getrpcent_r,getrpcent_r@GLIBC_2.2.5"); -__asm__(".symver getrpcport,getrpcport@GLIBC_2.2.5"); -__asm__(".symver getrusage,getrusage@GLIBC_2.2.5"); -__asm__(".symver gets,gets@GLIBC_2.2.5"); -__asm__(".symver getsecretkey,getsecretkey@GLIBC_2.2.5"); -__asm__(".symver getservbyname,getservbyname@GLIBC_2.2.5"); -__asm__(".symver getservbyname_r,getservbyname_r@GLIBC_2.2.5"); -__asm__(".symver getservbyport,getservbyport@GLIBC_2.2.5"); -__asm__(".symver getservbyport_r,getservbyport_r@GLIBC_2.2.5"); -__asm__(".symver getservent,getservent@GLIBC_2.2.5"); -__asm__(".symver getservent_r,getservent_r@GLIBC_2.2.5"); -__asm__(".symver getsid,getsid@GLIBC_2.2.5"); -__asm__(".symver getsockname,getsockname@GLIBC_2.2.5"); -__asm__(".symver getsockopt,getsockopt@GLIBC_2.2.5"); -__asm__(".symver getsourcefilter,getsourcefilter@GLIBC_2.3.4"); -__asm__(".symver getspent,getspent@GLIBC_2.2.5"); -__asm__(".symver getspent_r,getspent_r@GLIBC_2.2.5"); -__asm__(".symver getspnam,getspnam@GLIBC_2.2.5"); -__asm__(".symver getspnam_r,getspnam_r@GLIBC_2.2.5"); -__asm__(".symver getsubopt,getsubopt@GLIBC_2.2.5"); -__asm__(".symver gettext,gettext@GLIBC_2.2.5"); -__asm__(".symver gettimeofday,gettimeofday@GLIBC_2.2.5"); -__asm__(".symver getttyent,getttyent@GLIBC_2.2.5"); -__asm__(".symver getttynam,getttynam@GLIBC_2.2.5"); -__asm__(".symver getuid,getuid@GLIBC_2.2.5"); -__asm__(".symver getusershell,getusershell@GLIBC_2.2.5"); -__asm__(".symver getutent,getutent@GLIBC_2.2.5"); -__asm__(".symver getutent_r,getutent_r@GLIBC_2.2.5"); -__asm__(".symver getutid,getutid@GLIBC_2.2.5"); -__asm__(".symver getutid_r,getutid_r@GLIBC_2.2.5"); -__asm__(".symver getutline,getutline@GLIBC_2.2.5"); -__asm__(".symver getutline_r,getutline_r@GLIBC_2.2.5"); -__asm__(".symver getutmp,getutmp@GLIBC_2.2.5"); -__asm__(".symver getutmpx,getutmpx@GLIBC_2.2.5"); -__asm__(".symver getutxent,getutxent@GLIBC_2.2.5"); -__asm__(".symver getutxid,getutxid@GLIBC_2.2.5"); -__asm__(".symver getutxline,getutxline@GLIBC_2.2.5"); -__asm__(".symver getw,getw@GLIBC_2.2.5"); -__asm__(".symver getwc,getwc@GLIBC_2.2.5"); -__asm__(".symver getwc_unlocked,getwc_unlocked@GLIBC_2.2.5"); -__asm__(".symver getwchar,getwchar@GLIBC_2.2.5"); -__asm__(".symver getwchar_unlocked,getwchar_unlocked@GLIBC_2.2.5"); -__asm__(".symver getwd,getwd@GLIBC_2.2.5"); -__asm__(".symver getxattr,getxattr@GLIBC_2.3"); -__asm__(".symver glob,glob@GLIBC_2.2.5"); -__asm__(".symver glob64,glob64@GLIBC_2.2.5"); -__asm__(".symver glob_pattern_p,glob_pattern_p@GLIBC_2.2.5"); -__asm__(".symver globfree,globfree@GLIBC_2.2.5"); -__asm__(".symver globfree64,globfree64@GLIBC_2.2.5"); -__asm__(".symver gmtime,gmtime@GLIBC_2.2.5"); -__asm__(".symver gmtime_r,gmtime_r@GLIBC_2.2.5"); -__asm__(".symver gnu_dev_major,gnu_dev_major@GLIBC_2.3.3"); -__asm__(".symver gnu_dev_makedev,gnu_dev_makedev@GLIBC_2.3.3"); -__asm__(".symver gnu_dev_minor,gnu_dev_minor@GLIBC_2.3.3"); -__asm__(".symver gnu_get_libc_release,gnu_get_libc_release@GLIBC_2.2.5"); -__asm__(".symver gnu_get_libc_version,gnu_get_libc_version@GLIBC_2.2.5"); -__asm__(".symver grantpt,grantpt@GLIBC_2.2.5"); -__asm__(".symver group_member,group_member@GLIBC_2.2.5"); -__asm__(".symver gsignal,gsignal@GLIBC_2.2.5"); -__asm__(".symver gtty,gtty@GLIBC_2.2.5"); -__asm__(".symver h_errlist,h_errlist@GLIBC_2.2.5"); -__asm__(".symver h_nerr,h_nerr@GLIBC_2.2.5"); -__asm__(".symver hasmntopt,hasmntopt@GLIBC_2.2.5"); -__asm__(".symver hcreate,hcreate@GLIBC_2.2.5"); -__asm__(".symver hcreate_r,hcreate_r@GLIBC_2.2.5"); -__asm__(".symver hdestroy,hdestroy@GLIBC_2.2.5"); -__asm__(".symver hdestroy_r,hdestroy_r@GLIBC_2.2.5"); -__asm__(".symver herror,herror@GLIBC_2.2.5"); -__asm__(".symver host2netname,host2netname@GLIBC_2.2.5"); -__asm__(".symver hsearch,hsearch@GLIBC_2.2.5"); -__asm__(".symver hsearch_r,hsearch_r@GLIBC_2.2.5"); -__asm__(".symver hstrerror,hstrerror@GLIBC_2.2.5"); -__asm__(".symver htonl,htonl@GLIBC_2.2.5"); -__asm__(".symver htons,htons@GLIBC_2.2.5"); -__asm__(".symver hypot,hypot@GLIBC_2.2.5"); -__asm__(".symver hypotf,hypotf@GLIBC_2.2.5"); -__asm__(".symver hypotl,hypotl@GLIBC_2.2.5"); -__asm__(".symver iconv,iconv@GLIBC_2.2.5"); -__asm__(".symver iconv_close,iconv_close@GLIBC_2.2.5"); -__asm__(".symver iconv_open,iconv_open@GLIBC_2.2.5"); -__asm__(".symver if_freenameindex,if_freenameindex@GLIBC_2.2.5"); -__asm__(".symver if_indextoname,if_indextoname@GLIBC_2.2.5"); -__asm__(".symver if_nameindex,if_nameindex@GLIBC_2.2.5"); -__asm__(".symver if_nametoindex,if_nametoindex@GLIBC_2.2.5"); -__asm__(".symver ilogb,ilogb@GLIBC_2.2.5"); -__asm__(".symver ilogbf,ilogbf@GLIBC_2.2.5"); -__asm__(".symver ilogbl,ilogbl@GLIBC_2.2.5"); -__asm__(".symver imaxabs,imaxabs@GLIBC_2.2.5"); -__asm__(".symver imaxdiv,imaxdiv@GLIBC_2.2.5"); -__asm__(".symver in6addr_any,in6addr_any@GLIBC_2.2.5"); -__asm__(".symver in6addr_loopback,in6addr_loopback@GLIBC_2.2.5"); -__asm__(".symver index,index@GLIBC_2.2.5"); -__asm__(".symver inet6_opt_append,inet6_opt_append@GLIBC_2.5"); -__asm__(".symver inet6_opt_find,inet6_opt_find@GLIBC_2.5"); -__asm__(".symver inet6_opt_finish,inet6_opt_finish@GLIBC_2.5"); -__asm__(".symver inet6_opt_get_val,inet6_opt_get_val@GLIBC_2.5"); -__asm__(".symver inet6_opt_init,inet6_opt_init@GLIBC_2.5"); -__asm__(".symver inet6_opt_next,inet6_opt_next@GLIBC_2.5"); -__asm__(".symver inet6_opt_set_val,inet6_opt_set_val@GLIBC_2.5"); -__asm__(".symver inet6_option_alloc,inet6_option_alloc@GLIBC_2.3.3"); -__asm__(".symver inet6_option_append,inet6_option_append@GLIBC_2.3.3"); -__asm__(".symver inet6_option_find,inet6_option_find@GLIBC_2.3.3"); -__asm__(".symver inet6_option_init,inet6_option_init@GLIBC_2.3.3"); -__asm__(".symver inet6_option_next,inet6_option_next@GLIBC_2.3.3"); -__asm__(".symver inet6_option_space,inet6_option_space@GLIBC_2.3.3"); -__asm__(".symver inet6_rth_add,inet6_rth_add@GLIBC_2.5"); -__asm__(".symver inet6_rth_getaddr,inet6_rth_getaddr@GLIBC_2.5"); -__asm__(".symver inet6_rth_init,inet6_rth_init@GLIBC_2.5"); -__asm__(".symver inet6_rth_reverse,inet6_rth_reverse@GLIBC_2.5"); -__asm__(".symver inet6_rth_segments,inet6_rth_segments@GLIBC_2.5"); -__asm__(".symver inet6_rth_space,inet6_rth_space@GLIBC_2.5"); -__asm__(".symver inet_addr,inet_addr@GLIBC_2.2.5"); -__asm__(".symver inet_aton,inet_aton@GLIBC_2.2.5"); -__asm__(".symver inet_lnaof,inet_lnaof@GLIBC_2.2.5"); -__asm__(".symver inet_makeaddr,inet_makeaddr@GLIBC_2.2.5"); -__asm__(".symver inet_net_ntop,inet_net_ntop@GLIBC_2.2.5"); -__asm__(".symver inet_net_pton,inet_net_pton@GLIBC_2.2.5"); -__asm__(".symver inet_neta,inet_neta@GLIBC_2.2.5"); -__asm__(".symver inet_netof,inet_netof@GLIBC_2.2.5"); -__asm__(".symver inet_network,inet_network@GLIBC_2.2.5"); -__asm__(".symver inet_nsap_addr,inet_nsap_addr@GLIBC_2.2.5"); -__asm__(".symver inet_nsap_ntoa,inet_nsap_ntoa@GLIBC_2.2.5"); -__asm__(".symver inet_ntoa,inet_ntoa@GLIBC_2.2.5"); -__asm__(".symver inet_ntop,inet_ntop@GLIBC_2.2.5"); -__asm__(".symver inet_pton,inet_pton@GLIBC_2.2.5"); -__asm__(".symver init_module,init_module@GLIBC_2.2.5"); -__asm__(".symver initgroups,initgroups@GLIBC_2.2.5"); -__asm__(".symver initstate,initstate@GLIBC_2.2.5"); -__asm__(".symver initstate_r,initstate_r@GLIBC_2.2.5"); -__asm__(".symver innetgr,innetgr@GLIBC_2.2.5"); -__asm__(".symver inotify_add_watch,inotify_add_watch@GLIBC_2.4"); -__asm__(".symver inotify_init,inotify_init@GLIBC_2.4"); -__asm__(".symver inotify_rm_watch,inotify_rm_watch@GLIBC_2.4"); -__asm__(".symver insque,insque@GLIBC_2.2.5"); -__asm__(".symver ioctl,ioctl@GLIBC_2.2.5"); -__asm__(".symver ioperm,ioperm@GLIBC_2.2.5"); -__asm__(".symver iopl,iopl@GLIBC_2.2.5"); -__asm__(".symver iruserok,iruserok@GLIBC_2.2.5"); -__asm__(".symver iruserok_af,iruserok_af@GLIBC_2.2.5"); -__asm__(".symver isalnum,isalnum@GLIBC_2.2.5"); -__asm__(".symver isalnum_l,isalnum_l@GLIBC_2.3"); -__asm__(".symver isalpha,isalpha@GLIBC_2.2.5"); -__asm__(".symver isalpha_l,isalpha_l@GLIBC_2.3"); -__asm__(".symver isascii,isascii@GLIBC_2.2.5"); -__asm__(".symver isastream,isastream@GLIBC_2.2.5"); -__asm__(".symver isatty,isatty@GLIBC_2.2.5"); -__asm__(".symver isblank,isblank@GLIBC_2.2.5"); -__asm__(".symver isblank_l,isblank_l@GLIBC_2.3"); -__asm__(".symver iscntrl,iscntrl@GLIBC_2.2.5"); -__asm__(".symver iscntrl_l,iscntrl_l@GLIBC_2.3"); -__asm__(".symver isctype,isctype@GLIBC_2.3"); -__asm__(".symver isdigit,isdigit@GLIBC_2.2.5"); -__asm__(".symver isdigit_l,isdigit_l@GLIBC_2.3"); -__asm__(".symver isfdtype,isfdtype@GLIBC_2.2.5"); -__asm__(".symver isgraph,isgraph@GLIBC_2.2.5"); -__asm__(".symver isgraph_l,isgraph_l@GLIBC_2.3"); -__asm__(".symver isinf,isinf@GLIBC_2.2.5"); -__asm__(".symver isinff,isinff@GLIBC_2.2.5"); -__asm__(".symver isinfl,isinfl@GLIBC_2.2.5"); -__asm__(".symver islower,islower@GLIBC_2.2.5"); -__asm__(".symver islower_l,islower_l@GLIBC_2.3"); -__asm__(".symver isnan,isnan@GLIBC_2.2.5"); -__asm__(".symver isnanf,isnanf@GLIBC_2.2.5"); -__asm__(".symver isnanl,isnanl@GLIBC_2.2.5"); -__asm__(".symver isprint,isprint@GLIBC_2.2.5"); -__asm__(".symver isprint_l,isprint_l@GLIBC_2.3"); -__asm__(".symver ispunct,ispunct@GLIBC_2.2.5"); -__asm__(".symver ispunct_l,ispunct_l@GLIBC_2.3"); -__asm__(".symver isspace,isspace@GLIBC_2.2.5"); -__asm__(".symver isspace_l,isspace_l@GLIBC_2.3"); -__asm__(".symver isupper,isupper@GLIBC_2.2.5"); -__asm__(".symver isupper_l,isupper_l@GLIBC_2.3"); -__asm__(".symver iswalnum,iswalnum@GLIBC_2.2.5"); -__asm__(".symver iswalnum_l,iswalnum_l@GLIBC_2.3"); -__asm__(".symver iswalpha,iswalpha@GLIBC_2.2.5"); -__asm__(".symver iswalpha_l,iswalpha_l@GLIBC_2.3"); -__asm__(".symver iswblank,iswblank@GLIBC_2.2.5"); -__asm__(".symver iswblank_l,iswblank_l@GLIBC_2.3"); -__asm__(".symver iswcntrl,iswcntrl@GLIBC_2.2.5"); -__asm__(".symver iswcntrl_l,iswcntrl_l@GLIBC_2.3"); -__asm__(".symver iswctype,iswctype@GLIBC_2.2.5"); -__asm__(".symver iswctype_l,iswctype_l@GLIBC_2.3"); -__asm__(".symver iswdigit,iswdigit@GLIBC_2.2.5"); -__asm__(".symver iswdigit_l,iswdigit_l@GLIBC_2.3"); -__asm__(".symver iswgraph,iswgraph@GLIBC_2.2.5"); -__asm__(".symver iswgraph_l,iswgraph_l@GLIBC_2.3"); -__asm__(".symver iswlower,iswlower@GLIBC_2.2.5"); -__asm__(".symver iswlower_l,iswlower_l@GLIBC_2.3"); -__asm__(".symver iswprint,iswprint@GLIBC_2.2.5"); -__asm__(".symver iswprint_l,iswprint_l@GLIBC_2.3"); -__asm__(".symver iswpunct,iswpunct@GLIBC_2.2.5"); -__asm__(".symver iswpunct_l,iswpunct_l@GLIBC_2.3"); -__asm__(".symver iswspace,iswspace@GLIBC_2.2.5"); -__asm__(".symver iswspace_l,iswspace_l@GLIBC_2.3"); -__asm__(".symver iswupper,iswupper@GLIBC_2.2.5"); -__asm__(".symver iswupper_l,iswupper_l@GLIBC_2.3"); -__asm__(".symver iswxdigit,iswxdigit@GLIBC_2.2.5"); -__asm__(".symver iswxdigit_l,iswxdigit_l@GLIBC_2.3"); -__asm__(".symver isxdigit,isxdigit@GLIBC_2.2.5"); -__asm__(".symver isxdigit_l,isxdigit_l@GLIBC_2.3"); -__asm__(".symver j0,j0@GLIBC_2.2.5"); -__asm__(".symver j0f,j0f@GLIBC_2.2.5"); -__asm__(".symver j0l,j0l@GLIBC_2.2.5"); -__asm__(".symver j1,j1@GLIBC_2.2.5"); -__asm__(".symver j1f,j1f@GLIBC_2.2.5"); -__asm__(".symver j1l,j1l@GLIBC_2.2.5"); -__asm__(".symver jn,jn@GLIBC_2.2.5"); -__asm__(".symver jnf,jnf@GLIBC_2.2.5"); -__asm__(".symver jnl,jnl@GLIBC_2.2.5"); -__asm__(".symver jrand48,jrand48@GLIBC_2.2.5"); -__asm__(".symver jrand48_r,jrand48_r@GLIBC_2.2.5"); -__asm__(".symver key_decryptsession,key_decryptsession@GLIBC_2.2.5"); -__asm__(".symver key_decryptsession_pk,key_decryptsession_pk@GLIBC_2.2.5"); -__asm__(".symver key_encryptsession,key_encryptsession@GLIBC_2.2.5"); -__asm__(".symver key_encryptsession_pk,key_encryptsession_pk@GLIBC_2.2.5"); -__asm__(".symver key_gendes,key_gendes@GLIBC_2.2.5"); -__asm__(".symver key_get_conv,key_get_conv@GLIBC_2.2.5"); -__asm__(".symver key_secretkey_is_set,key_secretkey_is_set@GLIBC_2.2.5"); -__asm__(".symver key_setnet,key_setnet@GLIBC_2.2.5"); -__asm__(".symver key_setsecret,key_setsecret@GLIBC_2.2.5"); -__asm__(".symver kill,kill@GLIBC_2.2.5"); -__asm__(".symver killpg,killpg@GLIBC_2.2.5"); -__asm__(".symver klogctl,klogctl@GLIBC_2.2.5"); -__asm__(".symver l64a,l64a@GLIBC_2.2.5"); -__asm__(".symver labs,labs@GLIBC_2.2.5"); -__asm__(".symver lchmod,lchmod@GLIBC_2.3.2"); -__asm__(".symver lchown,lchown@GLIBC_2.2.5"); -__asm__(".symver lckpwdf,lckpwdf@GLIBC_2.2.5"); -__asm__(".symver lcong48,lcong48@GLIBC_2.2.5"); -__asm__(".symver lcong48_r,lcong48_r@GLIBC_2.2.5"); -__asm__(".symver ldexp,ldexp@GLIBC_2.2.5"); -__asm__(".symver ldexpf,ldexpf@GLIBC_2.2.5"); -__asm__(".symver ldexpl,ldexpl@GLIBC_2.2.5"); -__asm__(".symver ldiv,ldiv@GLIBC_2.2.5"); -__asm__(".symver lfind,lfind@GLIBC_2.2.5"); -__asm__(".symver lgamma,lgamma@GLIBC_2.2.5"); -__asm__(".symver lgamma_r,lgamma_r@GLIBC_2.2.5"); -__asm__(".symver lgammaf,lgammaf@GLIBC_2.2.5"); -__asm__(".symver lgammaf_r,lgammaf_r@GLIBC_2.2.5"); -__asm__(".symver lgammal,lgammal@GLIBC_2.2.5"); -__asm__(".symver lgammal_r,lgammal_r@GLIBC_2.2.5"); -__asm__(".symver lgetxattr,lgetxattr@GLIBC_2.3"); -__asm__(".symver link,link@GLIBC_2.2.5"); -__asm__(".symver linkat,linkat@GLIBC_2.4"); -__asm__(".symver lio_listio,lio_listio@GLIBC_2.4"); -__asm__(".symver lio_listio64,lio_listio64@GLIBC_2.4"); -__asm__(".symver listen,listen@GLIBC_2.2.5"); -__asm__(".symver listxattr,listxattr@GLIBC_2.3"); -__asm__(".symver llabs,llabs@GLIBC_2.2.5"); -__asm__(".symver lldiv,lldiv@GLIBC_2.2.5"); -__asm__(".symver llistxattr,llistxattr@GLIBC_2.3"); -__asm__(".symver llrint,llrint@GLIBC_2.2.5"); -__asm__(".symver llrintf,llrintf@GLIBC_2.2.5"); -__asm__(".symver llrintl,llrintl@GLIBC_2.2.5"); -__asm__(".symver llround,llround@GLIBC_2.2.5"); -__asm__(".symver llroundf,llroundf@GLIBC_2.2.5"); -__asm__(".symver llroundl,llroundl@GLIBC_2.2.5"); -__asm__(".symver llseek,llseek@GLIBC_2.2.5"); -__asm__(".symver loc1,loc1@GLIBC_2.2.5"); -__asm__(".symver loc2,loc2@GLIBC_2.2.5"); -__asm__(".symver localeconv,localeconv@GLIBC_2.2.5"); -__asm__(".symver localtime,localtime@GLIBC_2.2.5"); -__asm__(".symver localtime_r,localtime_r@GLIBC_2.2.5"); -__asm__(".symver lockf,lockf@GLIBC_2.2.5"); -__asm__(".symver lockf64,lockf64@GLIBC_2.2.5"); -__asm__(".symver locs,locs@GLIBC_2.2.5"); -__asm__(".symver log,log@GLIBC_2.2.5"); -__asm__(".symver log10,log10@GLIBC_2.2.5"); -__asm__(".symver log10f,log10f@GLIBC_2.2.5"); -__asm__(".symver log10l,log10l@GLIBC_2.2.5"); -__asm__(".symver log1p,log1p@GLIBC_2.2.5"); -__asm__(".symver log1pf,log1pf@GLIBC_2.2.5"); -__asm__(".symver log1pl,log1pl@GLIBC_2.2.5"); -__asm__(".symver log2,log2@GLIBC_2.2.5"); -__asm__(".symver log2f,log2f@GLIBC_2.2.5"); -__asm__(".symver log2l,log2l@GLIBC_2.2.5"); -__asm__(".symver logb,logb@GLIBC_2.2.5"); -__asm__(".symver logbf,logbf@GLIBC_2.2.5"); -__asm__(".symver logbl,logbl@GLIBC_2.2.5"); -__asm__(".symver logf,logf@GLIBC_2.2.5"); -__asm__(".symver login,login@GLIBC_2.2.5"); -__asm__(".symver login_tty,login_tty@GLIBC_2.2.5"); -__asm__(".symver logl,logl@GLIBC_2.2.5"); -__asm__(".symver logout,logout@GLIBC_2.2.5"); -__asm__(".symver logwtmp,logwtmp@GLIBC_2.2.5"); -__asm__(".symver longjmp,longjmp@GLIBC_2.2.5"); -__asm__(".symver lrand48,lrand48@GLIBC_2.2.5"); -__asm__(".symver lrand48_r,lrand48_r@GLIBC_2.2.5"); -__asm__(".symver lremovexattr,lremovexattr@GLIBC_2.3"); -__asm__(".symver lrint,lrint@GLIBC_2.2.5"); -__asm__(".symver lrintf,lrintf@GLIBC_2.2.5"); -__asm__(".symver lrintl,lrintl@GLIBC_2.2.5"); -__asm__(".symver lround,lround@GLIBC_2.2.5"); -__asm__(".symver lroundf,lroundf@GLIBC_2.2.5"); -__asm__(".symver lroundl,lroundl@GLIBC_2.2.5"); -__asm__(".symver lsearch,lsearch@GLIBC_2.2.5"); -__asm__(".symver lseek,lseek@GLIBC_2.2.5"); -__asm__(".symver lseek64,lseek64@GLIBC_2.2.5"); -__asm__(".symver lsetxattr,lsetxattr@GLIBC_2.3"); -__asm__(".symver lutimes,lutimes@GLIBC_2.3"); -__asm__(".symver madvise,madvise@GLIBC_2.2.5"); -__asm__(".symver makecontext,makecontext@GLIBC_2.2.5"); -__asm__(".symver mallinfo,mallinfo@GLIBC_2.2.5"); -__asm__(".symver malloc,malloc@GLIBC_2.2.5"); -__asm__(".symver malloc_get_state,malloc_get_state@GLIBC_2.2.5"); -__asm__(".symver malloc_set_state,malloc_set_state@GLIBC_2.2.5"); -__asm__(".symver malloc_stats,malloc_stats@GLIBC_2.2.5"); -__asm__(".symver malloc_trim,malloc_trim@GLIBC_2.2.5"); -__asm__(".symver malloc_usable_size,malloc_usable_size@GLIBC_2.2.5"); -__asm__(".symver mallopt,mallopt@GLIBC_2.2.5"); -__asm__(".symver mallwatch,mallwatch@GLIBC_2.2.5"); -__asm__(".symver matherr,matherr@GLIBC_2.2.5"); -__asm__(".symver mblen,mblen@GLIBC_2.2.5"); -__asm__(".symver mbrlen,mbrlen@GLIBC_2.2.5"); -__asm__(".symver mbrtowc,mbrtowc@GLIBC_2.2.5"); -__asm__(".symver mbsinit,mbsinit@GLIBC_2.2.5"); -__asm__(".symver mbsnrtowcs,mbsnrtowcs@GLIBC_2.2.5"); -__asm__(".symver mbsrtowcs,mbsrtowcs@GLIBC_2.2.5"); -__asm__(".symver mbstowcs,mbstowcs@GLIBC_2.2.5"); -__asm__(".symver mbtowc,mbtowc@GLIBC_2.2.5"); -__asm__(".symver mcheck,mcheck@GLIBC_2.2.5"); -__asm__(".symver mcheck_check_all,mcheck_check_all@GLIBC_2.2.5"); -__asm__(".symver mcheck_pedantic,mcheck_pedantic@GLIBC_2.2.5"); -__asm__(".symver mcount,mcount@GLIBC_2.2.5"); -__asm__(".symver memalign,memalign@GLIBC_2.2.5"); -__asm__(".symver memccpy,memccpy@GLIBC_2.2.5"); -__asm__(".symver memchr,memchr@GLIBC_2.2.5"); -__asm__(".symver memcmp,memcmp@GLIBC_2.2.5"); -__asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); -__asm__(".symver memfrob,memfrob@GLIBC_2.2.5"); -__asm__(".symver memmem,memmem@GLIBC_2.2.5"); -__asm__(".symver memmove,memmove@GLIBC_2.2.5"); -__asm__(".symver mempcpy,mempcpy@GLIBC_2.2.5"); -__asm__(".symver memrchr,memrchr@GLIBC_2.2.5"); -__asm__(".symver memset,memset@GLIBC_2.2.5"); -__asm__(".symver mincore,mincore@GLIBC_2.2.5"); -__asm__(".symver mkdir,mkdir@GLIBC_2.2.5"); -__asm__(".symver mkdirat,mkdirat@GLIBC_2.4"); -__asm__(".symver mkdtemp,mkdtemp@GLIBC_2.2.5"); -__asm__(".symver mkfifo,mkfifo@GLIBC_2.2.5"); -__asm__(".symver mkfifoat,mkfifoat@GLIBC_2.4"); -__asm__(".symver mkstemp,mkstemp@GLIBC_2.2.5"); -__asm__(".symver mkstemp64,mkstemp64@GLIBC_2.2.5"); -__asm__(".symver mktemp,mktemp@GLIBC_2.2.5"); -__asm__(".symver mktime,mktime@GLIBC_2.2.5"); -__asm__(".symver mlock,mlock@GLIBC_2.2.5"); -__asm__(".symver mlockall,mlockall@GLIBC_2.2.5"); -__asm__(".symver mmap,mmap@GLIBC_2.2.5"); -__asm__(".symver mmap64,mmap64@GLIBC_2.2.5"); -__asm__(".symver modf,modf@GLIBC_2.2.5"); -__asm__(".symver modff,modff@GLIBC_2.2.5"); -__asm__(".symver modfl,modfl@GLIBC_2.2.5"); -__asm__(".symver modify_ldt,modify_ldt@GLIBC_2.2.5"); -__asm__(".symver moncontrol,moncontrol@GLIBC_2.2.5"); -__asm__(".symver monstartup,monstartup@GLIBC_2.2.5"); -__asm__(".symver mount,mount@GLIBC_2.2.5"); -__asm__(".symver mprobe,mprobe@GLIBC_2.2.5"); -__asm__(".symver mprotect,mprotect@GLIBC_2.2.5"); -__asm__(".symver mq_close,mq_close@GLIBC_2.3.4"); -__asm__(".symver mq_getattr,mq_getattr@GLIBC_2.3.4"); -__asm__(".symver mq_notify,mq_notify@GLIBC_2.3.4"); -__asm__(".symver mq_open,mq_open@GLIBC_2.3.4"); -__asm__(".symver mq_receive,mq_receive@GLIBC_2.3.4"); -__asm__(".symver mq_send,mq_send@GLIBC_2.3.4"); -__asm__(".symver mq_setattr,mq_setattr@GLIBC_2.3.4"); -__asm__(".symver mq_timedreceive,mq_timedreceive@GLIBC_2.3.4"); -__asm__(".symver mq_timedsend,mq_timedsend@GLIBC_2.3.4"); -__asm__(".symver mq_unlink,mq_unlink@GLIBC_2.3.4"); -__asm__(".symver mrand48,mrand48@GLIBC_2.2.5"); -__asm__(".symver mrand48_r,mrand48_r@GLIBC_2.2.5"); -__asm__(".symver mremap,mremap@GLIBC_2.2.5"); -__asm__(".symver msgctl,msgctl@GLIBC_2.2.5"); -__asm__(".symver msgget,msgget@GLIBC_2.2.5"); -__asm__(".symver msgrcv,msgrcv@GLIBC_2.2.5"); -__asm__(".symver msgsnd,msgsnd@GLIBC_2.2.5"); -__asm__(".symver msync,msync@GLIBC_2.2.5"); -__asm__(".symver mtrace,mtrace@GLIBC_2.2.5"); -__asm__(".symver munlock,munlock@GLIBC_2.2.5"); -__asm__(".symver munlockall,munlockall@GLIBC_2.2.5"); -__asm__(".symver munmap,munmap@GLIBC_2.2.5"); -__asm__(".symver muntrace,muntrace@GLIBC_2.2.5"); -__asm__(".symver nan,nan@GLIBC_2.2.5"); -__asm__(".symver nanf,nanf@GLIBC_2.2.5"); -__asm__(".symver nanl,nanl@GLIBC_2.2.5"); -__asm__(".symver nanosleep,nanosleep@GLIBC_2.2.5"); -__asm__(".symver nearbyint,nearbyint@GLIBC_2.2.5"); -__asm__(".symver nearbyintf,nearbyintf@GLIBC_2.2.5"); -__asm__(".symver nearbyintl,nearbyintl@GLIBC_2.2.5"); -__asm__(".symver netname2host,netname2host@GLIBC_2.2.5"); -__asm__(".symver netname2user,netname2user@GLIBC_2.2.5"); -__asm__(".symver newlocale,newlocale@GLIBC_2.3"); -__asm__(".symver nextafter,nextafter@GLIBC_2.2.5"); -__asm__(".symver nextafterf,nextafterf@GLIBC_2.2.5"); -__asm__(".symver nextafterl,nextafterl@GLIBC_2.2.5"); -__asm__(".symver nexttoward,nexttoward@GLIBC_2.2.5"); -__asm__(".symver nexttowardf,nexttowardf@GLIBC_2.2.5"); -__asm__(".symver nexttowardl,nexttowardl@GLIBC_2.2.5"); -__asm__(".symver nfsservctl,nfsservctl@GLIBC_2.2.5"); -__asm__(".symver nftw,nftw@GLIBC_2.3.3"); -__asm__(".symver nftw64,nftw64@GLIBC_2.3.3"); -__asm__(".symver ngettext,ngettext@GLIBC_2.2.5"); -__asm__(".symver nice,nice@GLIBC_2.2.5"); -__asm__(".symver nis_add,nis_add@GLIBC_2.2.5"); -__asm__(".symver nis_add_entry,nis_add_entry@GLIBC_2.2.5"); -__asm__(".symver nis_addmember,nis_addmember@GLIBC_2.2.5"); -__asm__(".symver nis_checkpoint,nis_checkpoint@GLIBC_2.2.5"); -__asm__(".symver nis_clone_directory,nis_clone_directory@GLIBC_2.2.5"); -__asm__(".symver nis_clone_object,nis_clone_object@GLIBC_2.2.5"); -__asm__(".symver nis_clone_result,nis_clone_result@GLIBC_2.2.5"); -__asm__(".symver nis_creategroup,nis_creategroup@GLIBC_2.2.5"); -__asm__(".symver nis_destroy_object,nis_destroy_object@GLIBC_2.2.5"); -__asm__(".symver nis_destroygroup,nis_destroygroup@GLIBC_2.2.5"); -__asm__(".symver nis_dir_cmp,nis_dir_cmp@GLIBC_2.2.5"); -__asm__(".symver nis_domain_of,nis_domain_of@GLIBC_2.2.5"); -__asm__(".symver nis_domain_of_r,nis_domain_of_r@GLIBC_2.2.5"); -__asm__(".symver nis_first_entry,nis_first_entry@GLIBC_2.2.5"); -__asm__(".symver nis_free_directory,nis_free_directory@GLIBC_2.2.5"); -__asm__(".symver nis_free_object,nis_free_object@GLIBC_2.2.5"); -__asm__(".symver nis_free_request,nis_free_request@GLIBC_2.2.5"); -__asm__(".symver nis_freenames,nis_freenames@GLIBC_2.2.5"); -__asm__(".symver nis_freeresult,nis_freeresult@GLIBC_2.2.5"); -__asm__(".symver nis_freeservlist,nis_freeservlist@GLIBC_2.2.5"); -__asm__(".symver nis_freetags,nis_freetags@GLIBC_2.2.5"); -__asm__(".symver nis_getnames,nis_getnames@GLIBC_2.2.5"); -__asm__(".symver nis_getservlist,nis_getservlist@GLIBC_2.2.5"); -__asm__(".symver nis_ismember,nis_ismember@GLIBC_2.2.5"); -__asm__(".symver nis_leaf_of,nis_leaf_of@GLIBC_2.2.5"); -__asm__(".symver nis_leaf_of_r,nis_leaf_of_r@GLIBC_2.2.5"); -__asm__(".symver nis_lerror,nis_lerror@GLIBC_2.2.5"); -__asm__(".symver nis_list,nis_list@GLIBC_2.2.5"); -__asm__(".symver nis_local_directory,nis_local_directory@GLIBC_2.2.5"); -__asm__(".symver nis_local_group,nis_local_group@GLIBC_2.2.5"); -__asm__(".symver nis_local_host,nis_local_host@GLIBC_2.2.5"); -__asm__(".symver nis_local_principal,nis_local_principal@GLIBC_2.2.5"); -__asm__(".symver nis_lookup,nis_lookup@GLIBC_2.2.5"); -__asm__(".symver nis_mkdir,nis_mkdir@GLIBC_2.2.5"); -__asm__(".symver nis_modify,nis_modify@GLIBC_2.2.5"); -__asm__(".symver nis_modify_entry,nis_modify_entry@GLIBC_2.2.5"); -__asm__(".symver nis_name_of,nis_name_of@GLIBC_2.2.5"); -__asm__(".symver nis_name_of_r,nis_name_of_r@GLIBC_2.2.5"); -__asm__(".symver nis_next_entry,nis_next_entry@GLIBC_2.2.5"); -__asm__(".symver nis_perror,nis_perror@GLIBC_2.2.5"); -__asm__(".symver nis_ping,nis_ping@GLIBC_2.2.5"); -__asm__(".symver nis_print_directory,nis_print_directory@GLIBC_2.2.5"); -__asm__(".symver nis_print_entry,nis_print_entry@GLIBC_2.2.5"); -__asm__(".symver nis_print_group,nis_print_group@GLIBC_2.2.5"); -__asm__(".symver nis_print_group_entry,nis_print_group_entry@GLIBC_2.2.5"); -__asm__(".symver nis_print_link,nis_print_link@GLIBC_2.2.5"); -__asm__(".symver nis_print_object,nis_print_object@GLIBC_2.2.5"); -__asm__(".symver nis_print_result,nis_print_result@GLIBC_2.2.5"); -__asm__(".symver nis_print_rights,nis_print_rights@GLIBC_2.2.5"); -__asm__(".symver nis_print_table,nis_print_table@GLIBC_2.2.5"); -__asm__(".symver nis_read_obj,nis_read_obj@GLIBC_2.2.5"); -__asm__(".symver nis_remove,nis_remove@GLIBC_2.2.5"); -__asm__(".symver nis_remove_entry,nis_remove_entry@GLIBC_2.2.5"); -__asm__(".symver nis_removemember,nis_removemember@GLIBC_2.2.5"); -__asm__(".symver nis_rmdir,nis_rmdir@GLIBC_2.2.5"); -__asm__(".symver nis_servstate,nis_servstate@GLIBC_2.2.5"); -__asm__(".symver nis_sperrno,nis_sperrno@GLIBC_2.2.5"); -__asm__(".symver nis_sperror,nis_sperror@GLIBC_2.2.5"); -__asm__(".symver nis_sperror_r,nis_sperror_r@GLIBC_2.2.5"); -__asm__(".symver nis_stats,nis_stats@GLIBC_2.2.5"); -__asm__(".symver nis_verifygroup,nis_verifygroup@GLIBC_2.2.5"); -__asm__(".symver nis_write_obj,nis_write_obj@GLIBC_2.2.5"); -__asm__(".symver nl_langinfo,nl_langinfo@GLIBC_2.2.5"); -__asm__(".symver nl_langinfo_l,nl_langinfo_l@GLIBC_2.3"); -__asm__(".symver nrand48,nrand48@GLIBC_2.2.5"); -__asm__(".symver nrand48_r,nrand48_r@GLIBC_2.2.5"); -__asm__(".symver ntohl,ntohl@GLIBC_2.2.5"); -__asm__(".symver ntohs,ntohs@GLIBC_2.2.5"); -__asm__(".symver ntp_adjtime,ntp_adjtime@GLIBC_2.2.5"); -__asm__(".symver ntp_gettime,ntp_gettime@GLIBC_2.2.5"); -__asm__(".symver obstack_alloc_failed_handler,obstack_alloc_failed_handler@GLIBC_2.2.5"); -__asm__(".symver obstack_exit_failure,obstack_exit_failure@GLIBC_2.2.5"); -__asm__(".symver obstack_free,obstack_free@GLIBC_2.2.5"); -__asm__(".symver obstack_printf,obstack_printf@GLIBC_2.2.5"); -__asm__(".symver obstack_vprintf,obstack_vprintf@GLIBC_2.2.5"); -__asm__(".symver on_exit,on_exit@GLIBC_2.2.5"); -__asm__(".symver open,open@GLIBC_2.2.5"); -__asm__(".symver open64,open64@GLIBC_2.2.5"); -__asm__(".symver open_memstream,open_memstream@GLIBC_2.2.5"); -__asm__(".symver open_wmemstream,open_wmemstream@GLIBC_2.4"); -__asm__(".symver openat,openat@GLIBC_2.4"); -__asm__(".symver openat64,openat64@GLIBC_2.4"); -__asm__(".symver opendir,opendir@GLIBC_2.2.5"); -__asm__(".symver openlog,openlog@GLIBC_2.2.5"); -__asm__(".symver openpty,openpty@GLIBC_2.2.5"); -__asm__(".symver optarg,optarg@GLIBC_2.2.5"); -__asm__(".symver opterr,opterr@GLIBC_2.2.5"); -__asm__(".symver optind,optind@GLIBC_2.2.5"); -__asm__(".symver optopt,optopt@GLIBC_2.2.5"); -__asm__(".symver parse_printf_format,parse_printf_format@GLIBC_2.2.5"); -__asm__(".symver passwd2des,passwd2des@GLIBC_2.2.5"); -__asm__(".symver pathconf,pathconf@GLIBC_2.2.5"); -__asm__(".symver pause,pause@GLIBC_2.2.5"); -__asm__(".symver pclose,pclose@GLIBC_2.2.5"); -__asm__(".symver perror,perror@GLIBC_2.2.5"); -__asm__(".symver personality,personality@GLIBC_2.2.5"); -__asm__(".symver pipe,pipe@GLIBC_2.2.5"); -__asm__(".symver pivot_root,pivot_root@GLIBC_2.2.5"); -__asm__(".symver pmap_getmaps,pmap_getmaps@GLIBC_2.2.5"); -__asm__(".symver pmap_getport,pmap_getport@GLIBC_2.2.5"); -__asm__(".symver pmap_rmtcall,pmap_rmtcall@GLIBC_2.2.5"); -__asm__(".symver pmap_set,pmap_set@GLIBC_2.2.5"); -__asm__(".symver pmap_unset,pmap_unset@GLIBC_2.2.5"); -__asm__(".symver poll,poll@GLIBC_2.2.5"); -__asm__(".symver popen,popen@GLIBC_2.2.5"); -__asm__(".symver posix_fadvise,posix_fadvise@GLIBC_2.2.5"); -__asm__(".symver posix_fadvise64,posix_fadvise64@GLIBC_2.2.5"); -__asm__(".symver posix_fallocate,posix_fallocate@GLIBC_2.2.5"); -__asm__(".symver posix_fallocate64,posix_fallocate64@GLIBC_2.2.5"); -__asm__(".symver posix_madvise,posix_madvise@GLIBC_2.2.5"); -__asm__(".symver posix_memalign,posix_memalign@GLIBC_2.2.5"); -__asm__(".symver posix_openpt,posix_openpt@GLIBC_2.2.5"); -__asm__(".symver posix_spawn,posix_spawn@GLIBC_2.2.5"); -__asm__(".symver posix_spawn_file_actions_addclose,posix_spawn_file_actions_addclose@GLIBC_2.2.5"); -__asm__(".symver posix_spawn_file_actions_adddup2,posix_spawn_file_actions_adddup2@GLIBC_2.2.5"); -__asm__(".symver posix_spawn_file_actions_addopen,posix_spawn_file_actions_addopen@GLIBC_2.2.5"); -__asm__(".symver posix_spawn_file_actions_destroy,posix_spawn_file_actions_destroy@GLIBC_2.2.5"); -__asm__(".symver posix_spawn_file_actions_init,posix_spawn_file_actions_init@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_destroy,posix_spawnattr_destroy@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getflags,posix_spawnattr_getflags@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getpgroup,posix_spawnattr_getpgroup@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getschedparam,posix_spawnattr_getschedparam@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getschedpolicy,posix_spawnattr_getschedpolicy@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getsigdefault,posix_spawnattr_getsigdefault@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_getsigmask,posix_spawnattr_getsigmask@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_init,posix_spawnattr_init@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setflags,posix_spawnattr_setflags@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setpgroup,posix_spawnattr_setpgroup@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setschedparam,posix_spawnattr_setschedparam@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setschedpolicy,posix_spawnattr_setschedpolicy@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setsigdefault,posix_spawnattr_setsigdefault@GLIBC_2.2.5"); -__asm__(".symver posix_spawnattr_setsigmask,posix_spawnattr_setsigmask@GLIBC_2.2.5"); -__asm__(".symver posix_spawnp,posix_spawnp@GLIBC_2.2.5"); -__asm__(".symver pow,pow@GLIBC_2.2.5"); -__asm__(".symver pow10,pow10@GLIBC_2.2.5"); -__asm__(".symver pow10f,pow10f@GLIBC_2.2.5"); -__asm__(".symver pow10l,pow10l@GLIBC_2.2.5"); -__asm__(".symver powf,powf@GLIBC_2.2.5"); -__asm__(".symver powl,powl@GLIBC_2.2.5"); -__asm__(".symver ppoll,ppoll@GLIBC_2.4"); -__asm__(".symver prctl,prctl@GLIBC_2.2.5"); -__asm__(".symver pread,pread@GLIBC_2.2.5"); -__asm__(".symver pread64,pread64@GLIBC_2.2.5"); -__asm__(".symver printf,printf@GLIBC_2.2.5"); -__asm__(".symver printf_size,printf_size@GLIBC_2.2.5"); -__asm__(".symver printf_size_info,printf_size_info@GLIBC_2.2.5"); -__asm__(".symver profil,profil@GLIBC_2.2.5"); -__asm__(".symver program_invocation_name,program_invocation_name@GLIBC_2.2.5"); -__asm__(".symver program_invocation_short_name,program_invocation_short_name@GLIBC_2.2.5"); -__asm__(".symver pselect,pselect@GLIBC_2.2.5"); -__asm__(".symver psignal,psignal@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_destroy,pthread_attr_destroy@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_getaffinity_np,pthread_attr_getaffinity_np@GLIBC_2.3.4"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_getdetachstate,pthread_attr_getdetachstate@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_getguardsize,pthread_attr_getguardsize@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_getinheritsched,pthread_attr_getinheritsched@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_getschedparam,pthread_attr_getschedparam@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_getschedpolicy,pthread_attr_getschedpolicy@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_getscope,pthread_attr_getscope@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_getstack,pthread_attr_getstack@GLIBC_2.2.5"); -__asm__(".symver pthread_attr_getstackaddr,pthread_attr_getstackaddr@GLIBC_2.2.5"); -__asm__(".symver pthread_attr_getstacksize,pthread_attr_getstacksize@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_init,pthread_attr_init@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_setaffinity_np,pthread_attr_setaffinity_np@GLIBC_2.3.4"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_setdetachstate,pthread_attr_setdetachstate@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_setguardsize,pthread_attr_setguardsize@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_attr_setinheritsched,pthread_attr_setinheritsched@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_setschedparam,pthread_attr_setschedparam@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_setschedpolicy,pthread_attr_setschedpolicy@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_attr_setscope,pthread_attr_setscope@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_attr_setstack,pthread_attr_setstack@GLIBC_2.2.5"); -__asm__(".symver pthread_attr_setstackaddr,pthread_attr_setstackaddr@GLIBC_2.2.5"); -__asm__(".symver pthread_attr_setstacksize,pthread_attr_setstacksize@GLIBC_2.2.5"); -__asm__(".symver pthread_barrier_destroy,pthread_barrier_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_barrier_init,pthread_barrier_init@GLIBC_2.2.5"); -__asm__(".symver pthread_barrier_wait,pthread_barrier_wait@GLIBC_2.2.5"); -__asm__(".symver pthread_barrierattr_destroy,pthread_barrierattr_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_barrierattr_getpshared,pthread_barrierattr_getpshared@GLIBC_2.3.3"); -__asm__(".symver pthread_barrierattr_init,pthread_barrierattr_init@GLIBC_2.2.5"); -__asm__(".symver pthread_barrierattr_setpshared,pthread_barrierattr_setpshared@GLIBC_2.2.5"); -__asm__(".symver pthread_cancel,pthread_cancel@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_cond_broadcast,pthread_cond_broadcast@GLIBC_2.3.2"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_cond_destroy,pthread_cond_destroy@GLIBC_2.3.2"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_cond_init,pthread_cond_init@GLIBC_2.3.2"); -#endif -__asm__(".symver pthread_cond_signal,pthread_cond_signal@GLIBC_2.3.2"); -#ifdef _REENTRANT -__asm__(".symver pthread_cond_timedwait,pthread_cond_timedwait@GLIBC_2.3.2"); -#endif -__asm__(".symver pthread_cond_wait,pthread_cond_wait@GLIBC_2.3.2"); -#ifdef _REENTRANT -__asm__(".symver pthread_condattr_destroy,pthread_condattr_destroy@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_condattr_getclock,pthread_condattr_getclock@GLIBC_2.3.3"); -__asm__(".symver pthread_condattr_getpshared,pthread_condattr_getpshared@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_condattr_init,pthread_condattr_init@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_condattr_setclock,pthread_condattr_setclock@GLIBC_2.3.3"); -__asm__(".symver pthread_condattr_setpshared,pthread_condattr_setpshared@GLIBC_2.2.5"); -#ifndef _GLIBCXX_SHARED -#ifdef _REENTRANT -__asm__(".symver pthread_create,pthread_create@GLIBC_2.2.5"); -#endif -#endif -#ifndef _GLIBCXX_SHARED -#ifdef _REENTRANT -__asm__(".symver pthread_detach,pthread_detach@GLIBC_2.2.5"); -#endif -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_equal,pthread_equal@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_exit,pthread_exit@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_getaffinity_np,pthread_getaffinity_np@GLIBC_2.3.4"); -__asm__(".symver pthread_getattr_np,pthread_getattr_np@GLIBC_2.2.5"); -__asm__(".symver pthread_getconcurrency,pthread_getconcurrency@GLIBC_2.2.5"); -__asm__(".symver pthread_getcpuclockid,pthread_getcpuclockid@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_getschedparam,pthread_getschedparam@GLIBC_2.2.5"); -#endif -#ifndef _GLIBCXX_SHARED -#ifndef IN_LIBGCC2 -#ifdef _REENTRANT -__asm__(".symver pthread_getspecific,pthread_getspecific@GLIBC_2.2.5"); -#endif -#endif -#endif -#ifndef _GLIBCXX_SHARED -#ifdef _REENTRANT -__asm__(".symver pthread_join,pthread_join@GLIBC_2.2.5"); -#endif -#endif -#ifndef _GLIBCXX_SHARED -#ifndef IN_LIBGCC2 -#ifdef _REENTRANT -__asm__(".symver pthread_key_create,pthread_key_create@GLIBC_2.2.5"); -#endif -#endif -#endif -#ifndef _GLIBCXX_SHARED -#ifdef _REENTRANT -__asm__(".symver pthread_key_delete,pthread_key_delete@GLIBC_2.2.5"); -#endif -#endif -__asm__(".symver pthread_kill,pthread_kill@GLIBC_2.2.5"); -__asm__(".symver pthread_mutex_consistent_np,pthread_mutex_consistent_np@GLIBC_2.4"); -#ifdef _REENTRANT -__asm__(".symver pthread_mutex_destroy,pthread_mutex_destroy@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_mutex_getprioceiling,pthread_mutex_getprioceiling@GLIBC_2.4"); -#ifdef _REENTRANT -__asm__(".symver pthread_mutex_init,pthread_mutex_init@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_mutex_lock,pthread_mutex_lock@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_mutex_setprioceiling,pthread_mutex_setprioceiling@GLIBC_2.4"); -__asm__(".symver pthread_mutex_timedlock,pthread_mutex_timedlock@GLIBC_2.2.5"); -__asm__(".symver pthread_mutex_trylock,pthread_mutex_trylock@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_mutex_unlock,pthread_mutex_unlock@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_mutexattr_destroy,pthread_mutexattr_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_getkind_np,pthread_mutexattr_getkind_np@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_getprioceiling,pthread_mutexattr_getprioceiling@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_getprotocol,pthread_mutexattr_getprotocol@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_getpshared,pthread_mutexattr_getpshared@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_getrobust_np,pthread_mutexattr_getrobust_np@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_gettype,pthread_mutexattr_gettype@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_init,pthread_mutexattr_init@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_setkind_np,pthread_mutexattr_setkind_np@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_setprioceiling,pthread_mutexattr_setprioceiling@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_setprotocol,pthread_mutexattr_setprotocol@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_setpshared,pthread_mutexattr_setpshared@GLIBC_2.2.5"); -__asm__(".symver pthread_mutexattr_setrobust_np,pthread_mutexattr_setrobust_np@GLIBC_2.4"); -__asm__(".symver pthread_mutexattr_settype,pthread_mutexattr_settype@GLIBC_2.2.5"); -#ifndef _GLIBCXX_SHARED -#ifndef IN_LIBGCC2 -#ifdef _REENTRANT -__asm__(".symver pthread_once,pthread_once@GLIBC_2.2.5"); -#endif -#endif -#endif -__asm__(".symver pthread_rwlock_destroy,pthread_rwlock_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_init,pthread_rwlock_init@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_rdlock,pthread_rwlock_rdlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_timedrdlock,pthread_rwlock_timedrdlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_timedwrlock,pthread_rwlock_timedwrlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_tryrdlock,pthread_rwlock_tryrdlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_trywrlock,pthread_rwlock_trywrlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_unlock,pthread_rwlock_unlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlock_wrlock,pthread_rwlock_wrlock@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_destroy,pthread_rwlockattr_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_getkind_np,pthread_rwlockattr_getkind_np@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_getpshared,pthread_rwlockattr_getpshared@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_init,pthread_rwlockattr_init@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_setkind_np,pthread_rwlockattr_setkind_np@GLIBC_2.2.5"); -__asm__(".symver pthread_rwlockattr_setpshared,pthread_rwlockattr_setpshared@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_self,pthread_self@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_setaffinity_np,pthread_setaffinity_np@GLIBC_2.3.4"); -#ifdef _REENTRANT -__asm__(".symver pthread_setcancelstate,pthread_setcancelstate@GLIBC_2.2.5"); -#endif -#ifdef _REENTRANT -__asm__(".symver pthread_setcanceltype,pthread_setcanceltype@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_setconcurrency,pthread_setconcurrency@GLIBC_2.2.5"); -#ifdef _REENTRANT -__asm__(".symver pthread_setschedparam,pthread_setschedparam@GLIBC_2.2.5"); -#endif -__asm__(".symver pthread_setschedprio,pthread_setschedprio@GLIBC_2.3.4"); -#ifndef _GLIBCXX_SHARED -#ifndef IN_LIBGCC2 -#ifdef _REENTRANT -__asm__(".symver pthread_setspecific,pthread_setspecific@GLIBC_2.2.5"); -#endif -#endif -#endif -__asm__(".symver pthread_sigmask,pthread_sigmask@GLIBC_2.2.5"); -__asm__(".symver pthread_spin_destroy,pthread_spin_destroy@GLIBC_2.2.5"); -__asm__(".symver pthread_spin_init,pthread_spin_init@GLIBC_2.2.5"); -__asm__(".symver pthread_spin_lock,pthread_spin_lock@GLIBC_2.2.5"); -__asm__(".symver pthread_spin_trylock,pthread_spin_trylock@GLIBC_2.2.5"); -__asm__(".symver pthread_spin_unlock,pthread_spin_unlock@GLIBC_2.2.5"); -__asm__(".symver pthread_testcancel,pthread_testcancel@GLIBC_2.2.5"); -__asm__(".symver pthread_timedjoin_np,pthread_timedjoin_np@GLIBC_2.3.3"); -__asm__(".symver pthread_tryjoin_np,pthread_tryjoin_np@GLIBC_2.3.3"); -__asm__(".symver pthread_yield,pthread_yield@GLIBC_2.2.5"); -__asm__(".symver ptrace,ptrace@GLIBC_2.2.5"); -__asm__(".symver ptsname,ptsname@GLIBC_2.2.5"); -__asm__(".symver ptsname_r,ptsname_r@GLIBC_2.2.5"); -__asm__(".symver putc,putc@GLIBC_2.2.5"); -__asm__(".symver putc_unlocked,putc_unlocked@GLIBC_2.2.5"); -__asm__(".symver putchar,putchar@GLIBC_2.2.5"); -__asm__(".symver putchar_unlocked,putchar_unlocked@GLIBC_2.2.5"); -__asm__(".symver putenv,putenv@GLIBC_2.2.5"); -__asm__(".symver putgrent,putgrent@GLIBC_2.2.5"); -__asm__(".symver putmsg,putmsg@GLIBC_2.2.5"); -__asm__(".symver putpmsg,putpmsg@GLIBC_2.2.5"); -__asm__(".symver putpwent,putpwent@GLIBC_2.2.5"); -__asm__(".symver puts,puts@GLIBC_2.2.5"); -__asm__(".symver putspent,putspent@GLIBC_2.2.5"); -__asm__(".symver pututline,pututline@GLIBC_2.2.5"); -__asm__(".symver pututxline,pututxline@GLIBC_2.2.5"); -__asm__(".symver putw,putw@GLIBC_2.2.5"); -__asm__(".symver putwc,putwc@GLIBC_2.2.5"); -__asm__(".symver putwc_unlocked,putwc_unlocked@GLIBC_2.2.5"); -__asm__(".symver putwchar,putwchar@GLIBC_2.2.5"); -__asm__(".symver putwchar_unlocked,putwchar_unlocked@GLIBC_2.2.5"); -__asm__(".symver pvalloc,pvalloc@GLIBC_2.2.5"); -__asm__(".symver pwrite,pwrite@GLIBC_2.2.5"); -__asm__(".symver pwrite64,pwrite64@GLIBC_2.2.5"); -__asm__(".symver qecvt,qecvt@GLIBC_2.2.5"); -__asm__(".symver qecvt_r,qecvt_r@GLIBC_2.2.5"); -__asm__(".symver qfcvt,qfcvt@GLIBC_2.2.5"); -__asm__(".symver qfcvt_r,qfcvt_r@GLIBC_2.2.5"); -__asm__(".symver qgcvt,qgcvt@GLIBC_2.2.5"); -__asm__(".symver qsort,qsort@GLIBC_2.2.5"); -__asm__(".symver query_module,query_module@GLIBC_2.2.5"); -__asm__(".symver quotactl,quotactl@GLIBC_2.2.5"); -__asm__(".symver raise,raise@GLIBC_2.2.5"); -__asm__(".symver rand,rand@GLIBC_2.2.5"); -__asm__(".symver rand_r,rand_r@GLIBC_2.2.5"); -__asm__(".symver random,random@GLIBC_2.2.5"); -__asm__(".symver random_r,random_r@GLIBC_2.2.5"); -__asm__(".symver rawmemchr,rawmemchr@GLIBC_2.2.5"); -__asm__(".symver rcmd,rcmd@GLIBC_2.2.5"); -__asm__(".symver rcmd_af,rcmd_af@GLIBC_2.2.5"); -__asm__(".symver re_comp,re_comp@GLIBC_2.2.5"); -__asm__(".symver re_compile_fastmap,re_compile_fastmap@GLIBC_2.2.5"); -__asm__(".symver re_compile_pattern,re_compile_pattern@GLIBC_2.2.5"); -__asm__(".symver re_exec,re_exec@GLIBC_2.2.5"); -__asm__(".symver re_match,re_match@GLIBC_2.2.5"); -__asm__(".symver re_match_2,re_match_2@GLIBC_2.2.5"); -__asm__(".symver re_max_failures,re_max_failures@GLIBC_2.2.5"); -__asm__(".symver re_search,re_search@GLIBC_2.2.5"); -__asm__(".symver re_search_2,re_search_2@GLIBC_2.2.5"); -__asm__(".symver re_set_registers,re_set_registers@GLIBC_2.2.5"); -__asm__(".symver re_set_syntax,re_set_syntax@GLIBC_2.2.5"); -__asm__(".symver re_syntax_options,re_syntax_options@GLIBC_2.2.5"); -__asm__(".symver read,read@GLIBC_2.2.5"); -__asm__(".symver readColdStartFile,readColdStartFile@GLIBC_2.2.5"); -__asm__(".symver readahead,readahead@GLIBC_2.3"); -__asm__(".symver readdir,readdir@GLIBC_2.2.5"); -__asm__(".symver readdir64,readdir64@GLIBC_2.2.5"); -__asm__(".symver readdir64_r,readdir64_r@GLIBC_2.2.5"); -__asm__(".symver readdir_r,readdir_r@GLIBC_2.2.5"); -__asm__(".symver readlink,readlink@GLIBC_2.2.5"); -__asm__(".symver readlinkat,readlinkat@GLIBC_2.4"); -__asm__(".symver readv,readv@GLIBC_2.2.5"); -__asm__(".symver realloc,realloc@GLIBC_2.2.5"); -__asm__(".symver realpath,realpath@GLIBC_2.3"); -__asm__(".symver reboot,reboot@GLIBC_2.2.5"); -__asm__(".symver recv,recv@GLIBC_2.2.5"); -__asm__(".symver recvfrom,recvfrom@GLIBC_2.2.5"); -__asm__(".symver recvmsg,recvmsg@GLIBC_2.2.5"); -__asm__(".symver regcomp,regcomp@GLIBC_2.2.5"); -__asm__(".symver regerror,regerror@GLIBC_2.2.5"); -__asm__(".symver regexec,regexec@GLIBC_2.3.4"); -__asm__(".symver regfree,regfree@GLIBC_2.2.5"); -__asm__(".symver register_printf_function,register_printf_function@GLIBC_2.2.5"); -__asm__(".symver registerrpc,registerrpc@GLIBC_2.2.5"); -__asm__(".symver remainder,remainder@GLIBC_2.2.5"); -__asm__(".symver remainderf,remainderf@GLIBC_2.2.5"); -__asm__(".symver remainderl,remainderl@GLIBC_2.2.5"); -__asm__(".symver remap_file_pages,remap_file_pages@GLIBC_2.3.3"); -__asm__(".symver remove,remove@GLIBC_2.2.5"); -__asm__(".symver removexattr,removexattr@GLIBC_2.3"); -__asm__(".symver remque,remque@GLIBC_2.2.5"); -__asm__(".symver remquo,remquo@GLIBC_2.2.5"); -__asm__(".symver remquof,remquof@GLIBC_2.2.5"); -__asm__(".symver remquol,remquol@GLIBC_2.2.5"); -__asm__(".symver rename,rename@GLIBC_2.2.5"); -__asm__(".symver renameat,renameat@GLIBC_2.4"); -__asm__(".symver res_gethostbyaddr,res_gethostbyaddr@GLIBC_2.2.5"); -__asm__(".symver res_gethostbyname,res_gethostbyname@GLIBC_2.2.5"); -__asm__(".symver res_gethostbyname2,res_gethostbyname2@GLIBC_2.2.5"); -__asm__(".symver res_send_setqhook,res_send_setqhook@GLIBC_2.2.5"); -__asm__(".symver res_send_setrhook,res_send_setrhook@GLIBC_2.2.5"); -__asm__(".symver revoke,revoke@GLIBC_2.2.5"); -__asm__(".symver rewind,rewind@GLIBC_2.2.5"); -__asm__(".symver rewinddir,rewinddir@GLIBC_2.2.5"); -__asm__(".symver rexec,rexec@GLIBC_2.2.5"); -__asm__(".symver rexec_af,rexec_af@GLIBC_2.2.5"); -__asm__(".symver rexecoptions,rexecoptions@GLIBC_2.2.5"); -__asm__(".symver rindex,rindex@GLIBC_2.2.5"); -__asm__(".symver rint,rint@GLIBC_2.2.5"); -__asm__(".symver rintf,rintf@GLIBC_2.2.5"); -__asm__(".symver rintl,rintl@GLIBC_2.2.5"); -__asm__(".symver rmdir,rmdir@GLIBC_2.2.5"); -__asm__(".symver round,round@GLIBC_2.2.5"); -__asm__(".symver roundf,roundf@GLIBC_2.2.5"); -__asm__(".symver roundl,roundl@GLIBC_2.2.5"); -__asm__(".symver rpc_createerr,rpc_createerr@GLIBC_2.2.5"); -__asm__(".symver rpmatch,rpmatch@GLIBC_2.2.5"); -__asm__(".symver rresvport,rresvport@GLIBC_2.2.5"); -__asm__(".symver rresvport_af,rresvport_af@GLIBC_2.2.5"); -__asm__(".symver rtime,rtime@GLIBC_2.2.5"); -__asm__(".symver ruserok,ruserok@GLIBC_2.2.5"); -__asm__(".symver ruserok_af,ruserok_af@GLIBC_2.2.5"); -__asm__(".symver ruserpass,ruserpass@GLIBC_2.2.5"); -__asm__(".symver sbrk,sbrk@GLIBC_2.2.5"); -__asm__(".symver scalb,scalb@GLIBC_2.2.5"); -__asm__(".symver scalbf,scalbf@GLIBC_2.2.5"); -__asm__(".symver scalbl,scalbl@GLIBC_2.2.5"); -__asm__(".symver scalbln,scalbln@GLIBC_2.2.5"); -__asm__(".symver scalblnf,scalblnf@GLIBC_2.2.5"); -__asm__(".symver scalblnl,scalblnl@GLIBC_2.2.5"); -__asm__(".symver scalbn,scalbn@GLIBC_2.2.5"); -__asm__(".symver scalbnf,scalbnf@GLIBC_2.2.5"); -__asm__(".symver scalbnl,scalbnl@GLIBC_2.2.5"); -__asm__(".symver scandir,scandir@GLIBC_2.2.5"); -__asm__(".symver scandir64,scandir64@GLIBC_2.2.5"); -__asm__(".symver scanf,scanf@GLIBC_2.2.5"); -__asm__(".symver sched_get_priority_max,sched_get_priority_max@GLIBC_2.2.5"); -__asm__(".symver sched_get_priority_min,sched_get_priority_min@GLIBC_2.2.5"); -__asm__(".symver sched_getaffinity,sched_getaffinity@GLIBC_2.3.4"); -__asm__(".symver sched_getparam,sched_getparam@GLIBC_2.2.5"); -__asm__(".symver sched_getscheduler,sched_getscheduler@GLIBC_2.2.5"); -__asm__(".symver sched_rr_get_interval,sched_rr_get_interval@GLIBC_2.2.5"); -__asm__(".symver sched_setaffinity,sched_setaffinity@GLIBC_2.3.4"); -__asm__(".symver sched_setparam,sched_setparam@GLIBC_2.2.5"); -__asm__(".symver sched_setscheduler,sched_setscheduler@GLIBC_2.2.5"); -__asm__(".symver sched_yield,sched_yield@GLIBC_2.2.5"); -__asm__(".symver seed48,seed48@GLIBC_2.2.5"); -__asm__(".symver seed48_r,seed48_r@GLIBC_2.2.5"); -__asm__(".symver seekdir,seekdir@GLIBC_2.2.5"); -__asm__(".symver select,select@GLIBC_2.2.5"); -__asm__(".symver sem_close,sem_close@GLIBC_2.2.5"); -__asm__(".symver sem_destroy,sem_destroy@GLIBC_2.2.5"); -__asm__(".symver sem_getvalue,sem_getvalue@GLIBC_2.2.5"); -__asm__(".symver sem_init,sem_init@GLIBC_2.2.5"); -__asm__(".symver sem_open,sem_open@GLIBC_2.2.5"); -__asm__(".symver sem_post,sem_post@GLIBC_2.2.5"); -__asm__(".symver sem_timedwait,sem_timedwait@GLIBC_2.2.5"); -__asm__(".symver sem_trywait,sem_trywait@GLIBC_2.2.5"); -__asm__(".symver sem_unlink,sem_unlink@GLIBC_2.2.5"); -__asm__(".symver sem_wait,sem_wait@GLIBC_2.2.5"); -__asm__(".symver semctl,semctl@GLIBC_2.2.5"); -__asm__(".symver semget,semget@GLIBC_2.2.5"); -__asm__(".symver semop,semop@GLIBC_2.2.5"); -__asm__(".symver semtimedop,semtimedop@GLIBC_2.3.3"); -__asm__(".symver send,send@GLIBC_2.2.5"); -__asm__(".symver sendfile,sendfile@GLIBC_2.2.5"); -__asm__(".symver sendfile64,sendfile64@GLIBC_2.3"); -__asm__(".symver sendmsg,sendmsg@GLIBC_2.2.5"); -__asm__(".symver sendto,sendto@GLIBC_2.2.5"); -__asm__(".symver setaliasent,setaliasent@GLIBC_2.2.5"); -__asm__(".symver setbuf,setbuf@GLIBC_2.2.5"); -__asm__(".symver setbuffer,setbuffer@GLIBC_2.2.5"); -__asm__(".symver setcontext,setcontext@GLIBC_2.2.5"); -__asm__(".symver setdomainname,setdomainname@GLIBC_2.2.5"); -__asm__(".symver setegid,setegid@GLIBC_2.2.5"); -__asm__(".symver setenv,setenv@GLIBC_2.2.5"); -__asm__(".symver seteuid,seteuid@GLIBC_2.2.5"); -__asm__(".symver setfsent,setfsent@GLIBC_2.2.5"); -__asm__(".symver setfsgid,setfsgid@GLIBC_2.2.5"); -__asm__(".symver setfsuid,setfsuid@GLIBC_2.2.5"); -__asm__(".symver setgid,setgid@GLIBC_2.2.5"); -__asm__(".symver setgrent,setgrent@GLIBC_2.2.5"); -__asm__(".symver setgroups,setgroups@GLIBC_2.2.5"); -__asm__(".symver sethostent,sethostent@GLIBC_2.2.5"); -__asm__(".symver sethostid,sethostid@GLIBC_2.2.5"); -__asm__(".symver sethostname,sethostname@GLIBC_2.2.5"); -__asm__(".symver setipv4sourcefilter,setipv4sourcefilter@GLIBC_2.3.4"); -__asm__(".symver setitimer,setitimer@GLIBC_2.2.5"); -__asm__(".symver setjmp,setjmp@GLIBC_2.2.5"); -__asm__(".symver setkey,setkey@GLIBC_2.2.5"); -__asm__(".symver setkey_r,setkey_r@GLIBC_2.2.5"); -__asm__(".symver setlinebuf,setlinebuf@GLIBC_2.2.5"); -__asm__(".symver setlocale,setlocale@GLIBC_2.2.5"); -__asm__(".symver setlogin,setlogin@GLIBC_2.2.5"); -__asm__(".symver setlogmask,setlogmask@GLIBC_2.2.5"); -__asm__(".symver setmntent,setmntent@GLIBC_2.2.5"); -__asm__(".symver setnetent,setnetent@GLIBC_2.2.5"); -__asm__(".symver setnetgrent,setnetgrent@GLIBC_2.2.5"); -__asm__(".symver setpgid,setpgid@GLIBC_2.2.5"); -__asm__(".symver setpgrp,setpgrp@GLIBC_2.2.5"); -__asm__(".symver setpriority,setpriority@GLIBC_2.2.5"); -__asm__(".symver setprotoent,setprotoent@GLIBC_2.2.5"); -__asm__(".symver setpwent,setpwent@GLIBC_2.2.5"); -__asm__(".symver setregid,setregid@GLIBC_2.2.5"); -__asm__(".symver setresgid,setresgid@GLIBC_2.2.5"); -__asm__(".symver setresuid,setresuid@GLIBC_2.2.5"); -__asm__(".symver setreuid,setreuid@GLIBC_2.2.5"); -__asm__(".symver setrlimit,setrlimit@GLIBC_2.2.5"); -__asm__(".symver setrlimit64,setrlimit64@GLIBC_2.2.5"); -__asm__(".symver setrpcent,setrpcent@GLIBC_2.2.5"); -__asm__(".symver setservent,setservent@GLIBC_2.2.5"); -__asm__(".symver setsid,setsid@GLIBC_2.2.5"); -__asm__(".symver setsockopt,setsockopt@GLIBC_2.2.5"); -__asm__(".symver setsourcefilter,setsourcefilter@GLIBC_2.3.4"); -__asm__(".symver setspent,setspent@GLIBC_2.2.5"); -__asm__(".symver setstate,setstate@GLIBC_2.2.5"); -__asm__(".symver setstate_r,setstate_r@GLIBC_2.2.5"); -__asm__(".symver settimeofday,settimeofday@GLIBC_2.2.5"); -__asm__(".symver setttyent,setttyent@GLIBC_2.2.5"); -__asm__(".symver setuid,setuid@GLIBC_2.2.5"); -__asm__(".symver setusershell,setusershell@GLIBC_2.2.5"); -__asm__(".symver setutent,setutent@GLIBC_2.2.5"); -__asm__(".symver setutxent,setutxent@GLIBC_2.2.5"); -__asm__(".symver setvbuf,setvbuf@GLIBC_2.2.5"); -__asm__(".symver setxattr,setxattr@GLIBC_2.3"); -__asm__(".symver sgetspent,sgetspent@GLIBC_2.2.5"); -__asm__(".symver sgetspent_r,sgetspent_r@GLIBC_2.2.5"); -__asm__(".symver shm_open,shm_open@GLIBC_2.2.5"); -__asm__(".symver shm_unlink,shm_unlink@GLIBC_2.2.5"); -__asm__(".symver shmat,shmat@GLIBC_2.2.5"); -__asm__(".symver shmctl,shmctl@GLIBC_2.2.5"); -__asm__(".symver shmdt,shmdt@GLIBC_2.2.5"); -__asm__(".symver shmget,shmget@GLIBC_2.2.5"); -__asm__(".symver shutdown,shutdown@GLIBC_2.2.5"); -__asm__(".symver sigaction,sigaction@GLIBC_2.2.5"); -__asm__(".symver sigaddset,sigaddset@GLIBC_2.2.5"); -__asm__(".symver sigaltstack,sigaltstack@GLIBC_2.2.5"); -__asm__(".symver sigandset,sigandset@GLIBC_2.2.5"); -__asm__(".symver sigblock,sigblock@GLIBC_2.2.5"); -__asm__(".symver sigdelset,sigdelset@GLIBC_2.2.5"); -__asm__(".symver sigemptyset,sigemptyset@GLIBC_2.2.5"); -__asm__(".symver sigfillset,sigfillset@GLIBC_2.2.5"); -__asm__(".symver siggetmask,siggetmask@GLIBC_2.2.5"); -__asm__(".symver sighold,sighold@GLIBC_2.2.5"); -__asm__(".symver sigignore,sigignore@GLIBC_2.2.5"); -__asm__(".symver siginterrupt,siginterrupt@GLIBC_2.2.5"); -__asm__(".symver sigisemptyset,sigisemptyset@GLIBC_2.2.5"); -__asm__(".symver sigismember,sigismember@GLIBC_2.2.5"); -__asm__(".symver siglongjmp,siglongjmp@GLIBC_2.2.5"); -__asm__(".symver signal,signal@GLIBC_2.2.5"); -__asm__(".symver signgam,signgam@GLIBC_2.2.5"); -__asm__(".symver significand,significand@GLIBC_2.2.5"); -__asm__(".symver significandf,significandf@GLIBC_2.2.5"); -__asm__(".symver significandl,significandl@GLIBC_2.2.5"); -__asm__(".symver sigorset,sigorset@GLIBC_2.2.5"); -__asm__(".symver sigpause,sigpause@GLIBC_2.2.5"); -__asm__(".symver sigpending,sigpending@GLIBC_2.2.5"); -__asm__(".symver sigprocmask,sigprocmask@GLIBC_2.2.5"); -__asm__(".symver sigqueue,sigqueue@GLIBC_2.2.5"); -__asm__(".symver sigrelse,sigrelse@GLIBC_2.2.5"); -__asm__(".symver sigreturn,sigreturn@GLIBC_2.2.5"); -__asm__(".symver sigset,sigset@GLIBC_2.2.5"); -__asm__(".symver sigsetmask,sigsetmask@GLIBC_2.2.5"); -__asm__(".symver sigstack,sigstack@GLIBC_2.2.5"); -__asm__(".symver sigsuspend,sigsuspend@GLIBC_2.2.5"); -__asm__(".symver sigtimedwait,sigtimedwait@GLIBC_2.2.5"); -__asm__(".symver sigvec,sigvec@GLIBC_2.2.5"); -__asm__(".symver sigwait,sigwait@GLIBC_2.2.5"); -__asm__(".symver sigwaitinfo,sigwaitinfo@GLIBC_2.2.5"); -__asm__(".symver sin,sin@GLIBC_2.2.5"); -__asm__(".symver sincos,sincos@GLIBC_2.2.5"); -__asm__(".symver sincosf,sincosf@GLIBC_2.2.5"); -__asm__(".symver sincosl,sincosl@GLIBC_2.2.5"); -__asm__(".symver sinf,sinf@GLIBC_2.2.5"); -__asm__(".symver sinh,sinh@GLIBC_2.2.5"); -__asm__(".symver sinhf,sinhf@GLIBC_2.2.5"); -__asm__(".symver sinhl,sinhl@GLIBC_2.2.5"); -__asm__(".symver sinl,sinl@GLIBC_2.2.5"); -__asm__(".symver sleep,sleep@GLIBC_2.2.5"); -__asm__(".symver snprintf,snprintf@GLIBC_2.2.5"); -__asm__(".symver sockatmark,sockatmark@GLIBC_2.2.5"); -__asm__(".symver socket,socket@GLIBC_2.2.5"); -__asm__(".symver socketpair,socketpair@GLIBC_2.2.5"); -__asm__(".symver splice,splice@GLIBC_2.5"); -__asm__(".symver sprintf,sprintf@GLIBC_2.2.5"); -__asm__(".symver sprofil,sprofil@GLIBC_2.2.5"); -__asm__(".symver sqrt,sqrt@GLIBC_2.2.5"); -__asm__(".symver sqrtf,sqrtf@GLIBC_2.2.5"); -__asm__(".symver sqrtl,sqrtl@GLIBC_2.2.5"); -__asm__(".symver srand,srand@GLIBC_2.2.5"); -__asm__(".symver srand48,srand48@GLIBC_2.2.5"); -__asm__(".symver srand48_r,srand48_r@GLIBC_2.2.5"); -__asm__(".symver srandom,srandom@GLIBC_2.2.5"); -__asm__(".symver srandom_r,srandom_r@GLIBC_2.2.5"); -__asm__(".symver sscanf,sscanf@GLIBC_2.2.5"); -__asm__(".symver ssignal,ssignal@GLIBC_2.2.5"); -__asm__(".symver sstk,sstk@GLIBC_2.2.5"); -__asm__(".symver statfs,statfs@GLIBC_2.2.5"); -__asm__(".symver statfs64,statfs64@GLIBC_2.2.5"); -__asm__(".symver statvfs,statvfs@GLIBC_2.2.5"); -__asm__(".symver statvfs64,statvfs64@GLIBC_2.2.5"); -__asm__(".symver stderr,stderr@GLIBC_2.2.5"); -__asm__(".symver stdin,stdin@GLIBC_2.2.5"); -__asm__(".symver stdout,stdout@GLIBC_2.2.5"); -__asm__(".symver step,step@GLIBC_2.2.5"); -__asm__(".symver stime,stime@GLIBC_2.2.5"); -__asm__(".symver stpcpy,stpcpy@GLIBC_2.2.5"); -__asm__(".symver stpncpy,stpncpy@GLIBC_2.2.5"); -__asm__(".symver strcasecmp,strcasecmp@GLIBC_2.2.5"); -__asm__(".symver strcasecmp_l,strcasecmp_l@GLIBC_2.3"); -__asm__(".symver strcasestr,strcasestr@GLIBC_2.2.5"); -__asm__(".symver strcat,strcat@GLIBC_2.2.5"); -__asm__(".symver strchr,strchr@GLIBC_2.2.5"); -__asm__(".symver strchrnul,strchrnul@GLIBC_2.2.5"); -__asm__(".symver strcmp,strcmp@GLIBC_2.2.5"); -__asm__(".symver strcoll,strcoll@GLIBC_2.2.5"); -__asm__(".symver strcoll_l,strcoll_l@GLIBC_2.3"); -__asm__(".symver strcpy,strcpy@GLIBC_2.2.5"); -__asm__(".symver strcspn,strcspn@GLIBC_2.2.5"); -__asm__(".symver strdup,strdup@GLIBC_2.2.5"); -__asm__(".symver strerror,strerror@GLIBC_2.2.5"); -__asm__(".symver strerror_r,strerror_r@GLIBC_2.2.5"); -__asm__(".symver strfmon,strfmon@GLIBC_2.2.5"); -__asm__(".symver strfmon_l,strfmon_l@GLIBC_2.3"); -__asm__(".symver strfry,strfry@GLIBC_2.2.5"); -__asm__(".symver strftime,strftime@GLIBC_2.2.5"); -__asm__(".symver strftime_l,strftime_l@GLIBC_2.3"); -__asm__(".symver strlen,strlen@GLIBC_2.2.5"); -__asm__(".symver strncasecmp,strncasecmp@GLIBC_2.2.5"); -__asm__(".symver strncasecmp_l,strncasecmp_l@GLIBC_2.3"); -__asm__(".symver strncat,strncat@GLIBC_2.2.5"); -__asm__(".symver strncmp,strncmp@GLIBC_2.2.5"); -__asm__(".symver strncpy,strncpy@GLIBC_2.2.5"); -__asm__(".symver strndup,strndup@GLIBC_2.2.5"); -__asm__(".symver strnlen,strnlen@GLIBC_2.2.5"); -__asm__(".symver strpbrk,strpbrk@GLIBC_2.2.5"); -__asm__(".symver strptime,strptime@GLIBC_2.2.5"); -__asm__(".symver strptime_l,strptime_l@GLIBC_2.3.2"); -__asm__(".symver strrchr,strrchr@GLIBC_2.2.5"); -__asm__(".symver strsep,strsep@GLIBC_2.2.5"); -__asm__(".symver strsignal,strsignal@GLIBC_2.2.5"); -__asm__(".symver strspn,strspn@GLIBC_2.2.5"); -__asm__(".symver strstr,strstr@GLIBC_2.2.5"); -__asm__(".symver strtod,strtod@GLIBC_2.2.5"); -__asm__(".symver strtod_l,strtod_l@GLIBC_2.3"); -__asm__(".symver strtof,strtof@GLIBC_2.2.5"); -__asm__(".symver strtof_l,strtof_l@GLIBC_2.3"); -__asm__(".symver strtoimax,strtoimax@GLIBC_2.2.5"); -__asm__(".symver strtok,strtok@GLIBC_2.2.5"); -__asm__(".symver strtok_r,strtok_r@GLIBC_2.2.5"); -__asm__(".symver strtol,strtol@GLIBC_2.2.5"); -__asm__(".symver strtol_l,strtol_l@GLIBC_2.3"); -__asm__(".symver strtold,strtold@GLIBC_2.2.5"); -__asm__(".symver strtold_l,strtold_l@GLIBC_2.3"); -__asm__(".symver strtoll,strtoll@GLIBC_2.2.5"); -__asm__(".symver strtoll_l,strtoll_l@GLIBC_2.3.3"); -__asm__(".symver strtoq,strtoq@GLIBC_2.2.5"); -__asm__(".symver strtoul,strtoul@GLIBC_2.2.5"); -__asm__(".symver strtoul_l,strtoul_l@GLIBC_2.3"); -__asm__(".symver strtoull,strtoull@GLIBC_2.2.5"); -__asm__(".symver strtoull_l,strtoull_l@GLIBC_2.3.3"); -__asm__(".symver strtoumax,strtoumax@GLIBC_2.2.5"); -__asm__(".symver strtouq,strtouq@GLIBC_2.2.5"); -__asm__(".symver strverscmp,strverscmp@GLIBC_2.2.5"); -__asm__(".symver strxfrm,strxfrm@GLIBC_2.2.5"); -__asm__(".symver strxfrm_l,strxfrm_l@GLIBC_2.3"); -__asm__(".symver stty,stty@GLIBC_2.2.5"); -__asm__(".symver svc_exit,svc_exit@GLIBC_2.2.5"); -__asm__(".symver svc_fdset,svc_fdset@GLIBC_2.2.5"); -__asm__(".symver svc_getreq,svc_getreq@GLIBC_2.2.5"); -__asm__(".symver svc_getreq_common,svc_getreq_common@GLIBC_2.2.5"); -__asm__(".symver svc_getreq_poll,svc_getreq_poll@GLIBC_2.2.5"); -__asm__(".symver svc_getreqset,svc_getreqset@GLIBC_2.2.5"); -__asm__(".symver svc_max_pollfd,svc_max_pollfd@GLIBC_2.2.5"); -__asm__(".symver svc_pollfd,svc_pollfd@GLIBC_2.2.5"); -__asm__(".symver svc_register,svc_register@GLIBC_2.2.5"); -__asm__(".symver svc_run,svc_run@GLIBC_2.2.5"); -__asm__(".symver svc_sendreply,svc_sendreply@GLIBC_2.2.5"); -__asm__(".symver svc_unregister,svc_unregister@GLIBC_2.2.5"); -__asm__(".symver svcauthdes_stats,svcauthdes_stats@GLIBC_2.2.5"); -__asm__(".symver svcerr_auth,svcerr_auth@GLIBC_2.2.5"); -__asm__(".symver svcerr_decode,svcerr_decode@GLIBC_2.2.5"); -__asm__(".symver svcerr_noproc,svcerr_noproc@GLIBC_2.2.5"); -__asm__(".symver svcerr_noprog,svcerr_noprog@GLIBC_2.2.5"); -__asm__(".symver svcerr_progvers,svcerr_progvers@GLIBC_2.2.5"); -__asm__(".symver svcerr_systemerr,svcerr_systemerr@GLIBC_2.2.5"); -__asm__(".symver svcerr_weakauth,svcerr_weakauth@GLIBC_2.2.5"); -__asm__(".symver svcfd_create,svcfd_create@GLIBC_2.2.5"); -__asm__(".symver svcraw_create,svcraw_create@GLIBC_2.2.5"); -__asm__(".symver svctcp_create,svctcp_create@GLIBC_2.2.5"); -__asm__(".symver svcudp_bufcreate,svcudp_bufcreate@GLIBC_2.2.5"); -__asm__(".symver svcudp_create,svcudp_create@GLIBC_2.2.5"); -__asm__(".symver svcudp_enablecache,svcudp_enablecache@GLIBC_2.2.5"); -__asm__(".symver svcunix_create,svcunix_create@GLIBC_2.2.5"); -__asm__(".symver svcunixfd_create,svcunixfd_create@GLIBC_2.2.5"); -__asm__(".symver swab,swab@GLIBC_2.2.5"); -__asm__(".symver swapcontext,swapcontext@GLIBC_2.2.5"); -__asm__(".symver swapoff,swapoff@GLIBC_2.2.5"); -__asm__(".symver swapon,swapon@GLIBC_2.2.5"); -__asm__(".symver swprintf,swprintf@GLIBC_2.2.5"); -__asm__(".symver swscanf,swscanf@GLIBC_2.2.5"); -__asm__(".symver symlink,symlink@GLIBC_2.2.5"); -__asm__(".symver symlinkat,symlinkat@GLIBC_2.4"); -__asm__(".symver sync,sync@GLIBC_2.2.5"); -__asm__(".symver sys_errlist,sys_errlist@GLIBC_2.4"); -__asm__(".symver sys_nerr,sys_nerr@GLIBC_2.4"); -__asm__(".symver sys_sigabbrev,sys_sigabbrev@GLIBC_2.3.3"); -__asm__(".symver sys_siglist,sys_siglist@GLIBC_2.3.3"); -__asm__(".symver syscall,syscall@GLIBC_2.2.5"); -__asm__(".symver sysconf,sysconf@GLIBC_2.2.5"); -__asm__(".symver sysctl,sysctl@GLIBC_2.2.5"); -__asm__(".symver sysinfo,sysinfo@GLIBC_2.2.5"); -__asm__(".symver syslog,syslog@GLIBC_2.2.5"); -__asm__(".symver system,system@GLIBC_2.2.5"); -__asm__(".symver sysv_signal,sysv_signal@GLIBC_2.2.5"); -__asm__(".symver tan,tan@GLIBC_2.2.5"); -__asm__(".symver tanf,tanf@GLIBC_2.2.5"); -__asm__(".symver tanh,tanh@GLIBC_2.2.5"); -__asm__(".symver tanhf,tanhf@GLIBC_2.2.5"); -__asm__(".symver tanhl,tanhl@GLIBC_2.2.5"); -__asm__(".symver tanl,tanl@GLIBC_2.2.5"); -__asm__(".symver tcdrain,tcdrain@GLIBC_2.2.5"); -__asm__(".symver tcflow,tcflow@GLIBC_2.2.5"); -__asm__(".symver tcflush,tcflush@GLIBC_2.2.5"); -__asm__(".symver tcgetattr,tcgetattr@GLIBC_2.2.5"); -__asm__(".symver tcgetpgrp,tcgetpgrp@GLIBC_2.2.5"); -__asm__(".symver tcgetsid,tcgetsid@GLIBC_2.2.5"); -__asm__(".symver tcsendbreak,tcsendbreak@GLIBC_2.2.5"); -__asm__(".symver tcsetattr,tcsetattr@GLIBC_2.2.5"); -__asm__(".symver tcsetpgrp,tcsetpgrp@GLIBC_2.2.5"); -__asm__(".symver td_init,td_init@GLIBC_2.2.5"); -__asm__(".symver td_log,td_log@GLIBC_2.2.5"); -__asm__(".symver td_symbol_list,td_symbol_list@GLIBC_2.2.5"); -__asm__(".symver td_ta_clear_event,td_ta_clear_event@GLIBC_2.2.5"); -__asm__(".symver td_ta_delete,td_ta_delete@GLIBC_2.2.5"); -__asm__(".symver td_ta_enable_stats,td_ta_enable_stats@GLIBC_2.2.5"); -__asm__(".symver td_ta_event_addr,td_ta_event_addr@GLIBC_2.2.5"); -__asm__(".symver td_ta_event_getmsg,td_ta_event_getmsg@GLIBC_2.2.5"); -__asm__(".symver td_ta_get_nthreads,td_ta_get_nthreads@GLIBC_2.2.5"); -__asm__(".symver td_ta_get_ph,td_ta_get_ph@GLIBC_2.2.5"); -__asm__(".symver td_ta_get_stats,td_ta_get_stats@GLIBC_2.2.5"); -__asm__(".symver td_ta_map_id2thr,td_ta_map_id2thr@GLIBC_2.2.5"); -__asm__(".symver td_ta_map_lwp2thr,td_ta_map_lwp2thr@GLIBC_2.2.5"); -__asm__(".symver td_ta_new,td_ta_new@GLIBC_2.2.5"); -__asm__(".symver td_ta_reset_stats,td_ta_reset_stats@GLIBC_2.2.5"); -__asm__(".symver td_ta_set_event,td_ta_set_event@GLIBC_2.2.5"); -__asm__(".symver td_ta_setconcurrency,td_ta_setconcurrency@GLIBC_2.2.5"); -__asm__(".symver td_ta_thr_iter,td_ta_thr_iter@GLIBC_2.2.5"); -__asm__(".symver td_ta_tsd_iter,td_ta_tsd_iter@GLIBC_2.2.5"); -__asm__(".symver td_thr_clear_event,td_thr_clear_event@GLIBC_2.2.5"); -__asm__(".symver td_thr_dbresume,td_thr_dbresume@GLIBC_2.2.5"); -__asm__(".symver td_thr_dbsuspend,td_thr_dbsuspend@GLIBC_2.2.5"); -__asm__(".symver td_thr_event_enable,td_thr_event_enable@GLIBC_2.2.5"); -__asm__(".symver td_thr_event_getmsg,td_thr_event_getmsg@GLIBC_2.2.5"); -__asm__(".symver td_thr_get_info,td_thr_get_info@GLIBC_2.2.5"); -__asm__(".symver td_thr_getfpregs,td_thr_getfpregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_getgregs,td_thr_getgregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_getxregs,td_thr_getxregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_getxregsize,td_thr_getxregsize@GLIBC_2.2.5"); -__asm__(".symver td_thr_set_event,td_thr_set_event@GLIBC_2.2.5"); -__asm__(".symver td_thr_setfpregs,td_thr_setfpregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_setgregs,td_thr_setgregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_setprio,td_thr_setprio@GLIBC_2.2.5"); -__asm__(".symver td_thr_setsigpending,td_thr_setsigpending@GLIBC_2.2.5"); -__asm__(".symver td_thr_setxregs,td_thr_setxregs@GLIBC_2.2.5"); -__asm__(".symver td_thr_sigsetmask,td_thr_sigsetmask@GLIBC_2.2.5"); -__asm__(".symver td_thr_tls_get_addr,td_thr_tls_get_addr@GLIBC_2.3"); -__asm__(".symver td_thr_tlsbase,td_thr_tlsbase@GLIBC_2.3.3"); -__asm__(".symver td_thr_tsd,td_thr_tsd@GLIBC_2.2.5"); -__asm__(".symver td_thr_validate,td_thr_validate@GLIBC_2.2.5"); -__asm__(".symver tdelete,tdelete@GLIBC_2.2.5"); -__asm__(".symver tdestroy,tdestroy@GLIBC_2.2.5"); -__asm__(".symver tee,tee@GLIBC_2.5"); -__asm__(".symver telldir,telldir@GLIBC_2.2.5"); -__asm__(".symver tempnam,tempnam@GLIBC_2.2.5"); -__asm__(".symver textdomain,textdomain@GLIBC_2.2.5"); -__asm__(".symver tfind,tfind@GLIBC_2.2.5"); -__asm__(".symver tgamma,tgamma@GLIBC_2.2.5"); -__asm__(".symver tgammaf,tgammaf@GLIBC_2.2.5"); -__asm__(".symver tgammal,tgammal@GLIBC_2.2.5"); -__asm__(".symver time,time@GLIBC_2.2.5"); -__asm__(".symver timegm,timegm@GLIBC_2.2.5"); -__asm__(".symver timelocal,timelocal@GLIBC_2.2.5"); -__asm__(".symver timer_create,timer_create@GLIBC_2.3.3"); -__asm__(".symver timer_delete,timer_delete@GLIBC_2.3.3"); -__asm__(".symver timer_getoverrun,timer_getoverrun@GLIBC_2.3.3"); -__asm__(".symver timer_gettime,timer_gettime@GLIBC_2.3.3"); -__asm__(".symver timer_settime,timer_settime@GLIBC_2.3.3"); -__asm__(".symver times,times@GLIBC_2.2.5"); -__asm__(".symver timezone,timezone@GLIBC_2.2.5"); -__asm__(".symver tmpfile,tmpfile@GLIBC_2.2.5"); -__asm__(".symver tmpfile64,tmpfile64@GLIBC_2.2.5"); -__asm__(".symver tmpnam,tmpnam@GLIBC_2.2.5"); -__asm__(".symver tmpnam_r,tmpnam_r@GLIBC_2.2.5"); -__asm__(".symver toascii,toascii@GLIBC_2.2.5"); -__asm__(".symver tolower,tolower@GLIBC_2.2.5"); -__asm__(".symver tolower_l,tolower_l@GLIBC_2.3"); -__asm__(".symver toupper,toupper@GLIBC_2.2.5"); -__asm__(".symver toupper_l,toupper_l@GLIBC_2.3"); -__asm__(".symver towctrans,towctrans@GLIBC_2.2.5"); -__asm__(".symver towctrans_l,towctrans_l@GLIBC_2.3"); -__asm__(".symver towlower,towlower@GLIBC_2.2.5"); -__asm__(".symver towlower_l,towlower_l@GLIBC_2.3"); -__asm__(".symver towupper,towupper@GLIBC_2.2.5"); -__asm__(".symver towupper_l,towupper_l@GLIBC_2.3"); -__asm__(".symver tr_break,tr_break@GLIBC_2.2.5"); -__asm__(".symver trunc,trunc@GLIBC_2.2.5"); -__asm__(".symver truncate,truncate@GLIBC_2.2.5"); -__asm__(".symver truncate64,truncate64@GLIBC_2.2.5"); -__asm__(".symver truncf,truncf@GLIBC_2.2.5"); -__asm__(".symver truncl,truncl@GLIBC_2.2.5"); -__asm__(".symver tsearch,tsearch@GLIBC_2.2.5"); -__asm__(".symver ttyname,ttyname@GLIBC_2.2.5"); -__asm__(".symver ttyname_r,ttyname_r@GLIBC_2.2.5"); -__asm__(".symver ttyslot,ttyslot@GLIBC_2.2.5"); -__asm__(".symver twalk,twalk@GLIBC_2.2.5"); -__asm__(".symver tzname,tzname@GLIBC_2.2.5"); -__asm__(".symver tzset,tzset@GLIBC_2.2.5"); -__asm__(".symver ualarm,ualarm@GLIBC_2.2.5"); -__asm__(".symver ulckpwdf,ulckpwdf@GLIBC_2.2.5"); -__asm__(".symver ulimit,ulimit@GLIBC_2.2.5"); -__asm__(".symver umask,umask@GLIBC_2.2.5"); -__asm__(".symver umount,umount@GLIBC_2.2.5"); -__asm__(".symver umount2,umount2@GLIBC_2.2.5"); -__asm__(".symver uname,uname@GLIBC_2.2.5"); -__asm__(".symver ungetc,ungetc@GLIBC_2.2.5"); -__asm__(".symver ungetwc,ungetwc@GLIBC_2.2.5"); -__asm__(".symver unlink,unlink@GLIBC_2.2.5"); -__asm__(".symver unlinkat,unlinkat@GLIBC_2.4"); -__asm__(".symver unlockpt,unlockpt@GLIBC_2.2.5"); -__asm__(".symver unsetenv,unsetenv@GLIBC_2.2.5"); -__asm__(".symver unshare,unshare@GLIBC_2.4"); -__asm__(".symver updwtmp,updwtmp@GLIBC_2.2.5"); -__asm__(".symver updwtmpx,updwtmpx@GLIBC_2.2.5"); -__asm__(".symver uselib,uselib@GLIBC_2.2.5"); -__asm__(".symver uselocale,uselocale@GLIBC_2.3"); -__asm__(".symver user2netname,user2netname@GLIBC_2.2.5"); -__asm__(".symver usleep,usleep@GLIBC_2.2.5"); -__asm__(".symver ustat,ustat@GLIBC_2.2.5"); -__asm__(".symver utime,utime@GLIBC_2.2.5"); -__asm__(".symver utimes,utimes@GLIBC_2.2.5"); -__asm__(".symver utmpname,utmpname@GLIBC_2.2.5"); -__asm__(".symver utmpxname,utmpxname@GLIBC_2.2.5"); -__asm__(".symver valloc,valloc@GLIBC_2.2.5"); -__asm__(".symver vasprintf,vasprintf@GLIBC_2.2.5"); -__asm__(".symver vdprintf,vdprintf@GLIBC_2.2.5"); -__asm__(".symver verr,verr@GLIBC_2.2.5"); -__asm__(".symver verrx,verrx@GLIBC_2.2.5"); -__asm__(".symver versionsort,versionsort@GLIBC_2.2.5"); -__asm__(".symver versionsort64,versionsort64@GLIBC_2.2.5"); -__asm__(".symver vfork,vfork@GLIBC_2.2.5"); -__asm__(".symver vfprintf,vfprintf@GLIBC_2.2.5"); -__asm__(".symver vfscanf,vfscanf@GLIBC_2.2.5"); -__asm__(".symver vfwprintf,vfwprintf@GLIBC_2.2.5"); -__asm__(".symver vfwscanf,vfwscanf@GLIBC_2.2.5"); -__asm__(".symver vhangup,vhangup@GLIBC_2.2.5"); -__asm__(".symver vlimit,vlimit@GLIBC_2.2.5"); -__asm__(".symver vmsplice,vmsplice@GLIBC_2.5"); -__asm__(".symver vprintf,vprintf@GLIBC_2.2.5"); -__asm__(".symver vscanf,vscanf@GLIBC_2.2.5"); -__asm__(".symver vsnprintf,vsnprintf@GLIBC_2.2.5"); -__asm__(".symver vsprintf,vsprintf@GLIBC_2.2.5"); -__asm__(".symver vsscanf,vsscanf@GLIBC_2.2.5"); -__asm__(".symver vswprintf,vswprintf@GLIBC_2.2.5"); -__asm__(".symver vswscanf,vswscanf@GLIBC_2.2.5"); -__asm__(".symver vsyslog,vsyslog@GLIBC_2.2.5"); -__asm__(".symver vtimes,vtimes@GLIBC_2.2.5"); -__asm__(".symver vwarn,vwarn@GLIBC_2.2.5"); -__asm__(".symver vwarnx,vwarnx@GLIBC_2.2.5"); -__asm__(".symver vwprintf,vwprintf@GLIBC_2.2.5"); -__asm__(".symver vwscanf,vwscanf@GLIBC_2.2.5"); -__asm__(".symver wait,wait@GLIBC_2.2.5"); -__asm__(".symver wait3,wait3@GLIBC_2.2.5"); -__asm__(".symver wait4,wait4@GLIBC_2.2.5"); -__asm__(".symver waitid,waitid@GLIBC_2.2.5"); -__asm__(".symver waitpid,waitpid@GLIBC_2.2.5"); -__asm__(".symver warn,warn@GLIBC_2.2.5"); -__asm__(".symver warnx,warnx@GLIBC_2.2.5"); -__asm__(".symver wcpcpy,wcpcpy@GLIBC_2.2.5"); -__asm__(".symver wcpncpy,wcpncpy@GLIBC_2.2.5"); -__asm__(".symver wcrtomb,wcrtomb@GLIBC_2.2.5"); -__asm__(".symver wcscasecmp,wcscasecmp@GLIBC_2.2.5"); -__asm__(".symver wcscasecmp_l,wcscasecmp_l@GLIBC_2.3"); -__asm__(".symver wcscat,wcscat@GLIBC_2.2.5"); -__asm__(".symver wcschr,wcschr@GLIBC_2.2.5"); -__asm__(".symver wcschrnul,wcschrnul@GLIBC_2.2.5"); -__asm__(".symver wcscmp,wcscmp@GLIBC_2.2.5"); -__asm__(".symver wcscoll,wcscoll@GLIBC_2.2.5"); -__asm__(".symver wcscoll_l,wcscoll_l@GLIBC_2.3"); -__asm__(".symver wcscpy,wcscpy@GLIBC_2.2.5"); -__asm__(".symver wcscspn,wcscspn@GLIBC_2.2.5"); -__asm__(".symver wcsdup,wcsdup@GLIBC_2.2.5"); -__asm__(".symver wcsftime,wcsftime@GLIBC_2.2.5"); -__asm__(".symver wcsftime_l,wcsftime_l@GLIBC_2.3"); -__asm__(".symver wcslen,wcslen@GLIBC_2.2.5"); -__asm__(".symver wcsncasecmp,wcsncasecmp@GLIBC_2.2.5"); -__asm__(".symver wcsncasecmp_l,wcsncasecmp_l@GLIBC_2.3"); -__asm__(".symver wcsncat,wcsncat@GLIBC_2.2.5"); -__asm__(".symver wcsncmp,wcsncmp@GLIBC_2.2.5"); -__asm__(".symver wcsncpy,wcsncpy@GLIBC_2.2.5"); -__asm__(".symver wcsnlen,wcsnlen@GLIBC_2.2.5"); -__asm__(".symver wcsnrtombs,wcsnrtombs@GLIBC_2.2.5"); -__asm__(".symver wcspbrk,wcspbrk@GLIBC_2.2.5"); -__asm__(".symver wcsrchr,wcsrchr@GLIBC_2.2.5"); -__asm__(".symver wcsrtombs,wcsrtombs@GLIBC_2.2.5"); -__asm__(".symver wcsspn,wcsspn@GLIBC_2.2.5"); -__asm__(".symver wcsstr,wcsstr@GLIBC_2.2.5"); -__asm__(".symver wcstod,wcstod@GLIBC_2.2.5"); -__asm__(".symver wcstod_l,wcstod_l@GLIBC_2.3"); -__asm__(".symver wcstof,wcstof@GLIBC_2.2.5"); -__asm__(".symver wcstof_l,wcstof_l@GLIBC_2.3"); -__asm__(".symver wcstoimax,wcstoimax@GLIBC_2.2.5"); -__asm__(".symver wcstok,wcstok@GLIBC_2.2.5"); -__asm__(".symver wcstol,wcstol@GLIBC_2.2.5"); -__asm__(".symver wcstol_l,wcstol_l@GLIBC_2.3"); -__asm__(".symver wcstold,wcstold@GLIBC_2.2.5"); -__asm__(".symver wcstold_l,wcstold_l@GLIBC_2.3"); -__asm__(".symver wcstoll,wcstoll@GLIBC_2.2.5"); -__asm__(".symver wcstoll_l,wcstoll_l@GLIBC_2.3"); -__asm__(".symver wcstombs,wcstombs@GLIBC_2.2.5"); -__asm__(".symver wcstoq,wcstoq@GLIBC_2.2.5"); -__asm__(".symver wcstoul,wcstoul@GLIBC_2.2.5"); -__asm__(".symver wcstoul_l,wcstoul_l@GLIBC_2.3"); -__asm__(".symver wcstoull,wcstoull@GLIBC_2.2.5"); -__asm__(".symver wcstoull_l,wcstoull_l@GLIBC_2.3"); -__asm__(".symver wcstoumax,wcstoumax@GLIBC_2.2.5"); -__asm__(".symver wcstouq,wcstouq@GLIBC_2.2.5"); -__asm__(".symver wcswcs,wcswcs@GLIBC_2.2.5"); -__asm__(".symver wcswidth,wcswidth@GLIBC_2.2.5"); -__asm__(".symver wcsxfrm,wcsxfrm@GLIBC_2.2.5"); -__asm__(".symver wcsxfrm_l,wcsxfrm_l@GLIBC_2.3"); -__asm__(".symver wctob,wctob@GLIBC_2.2.5"); -__asm__(".symver wctomb,wctomb@GLIBC_2.2.5"); -__asm__(".symver wctrans,wctrans@GLIBC_2.2.5"); -__asm__(".symver wctrans_l,wctrans_l@GLIBC_2.3"); -__asm__(".symver wctype,wctype@GLIBC_2.2.5"); -__asm__(".symver wctype_l,wctype_l@GLIBC_2.3"); -__asm__(".symver wcwidth,wcwidth@GLIBC_2.2.5"); -__asm__(".symver wmemchr,wmemchr@GLIBC_2.2.5"); -__asm__(".symver wmemcmp,wmemcmp@GLIBC_2.2.5"); -__asm__(".symver wmemcpy,wmemcpy@GLIBC_2.2.5"); -__asm__(".symver wmemmove,wmemmove@GLIBC_2.2.5"); -__asm__(".symver wmempcpy,wmempcpy@GLIBC_2.2.5"); -__asm__(".symver wmemset,wmemset@GLIBC_2.2.5"); -__asm__(".symver wordexp,wordexp@GLIBC_2.2.5"); -__asm__(".symver wordfree,wordfree@GLIBC_2.2.5"); -__asm__(".symver wprintf,wprintf@GLIBC_2.2.5"); -__asm__(".symver write,write@GLIBC_2.2.5"); -__asm__(".symver writeColdStartFile,writeColdStartFile@GLIBC_2.2.5"); -__asm__(".symver writev,writev@GLIBC_2.2.5"); -__asm__(".symver wscanf,wscanf@GLIBC_2.2.5"); -__asm__(".symver xdecrypt,xdecrypt@GLIBC_2.2.5"); -__asm__(".symver xdr_accepted_reply,xdr_accepted_reply@GLIBC_2.2.5"); -__asm__(".symver xdr_array,xdr_array@GLIBC_2.2.5"); -__asm__(".symver xdr_authdes_cred,xdr_authdes_cred@GLIBC_2.2.5"); -__asm__(".symver xdr_authdes_verf,xdr_authdes_verf@GLIBC_2.2.5"); -__asm__(".symver xdr_authunix_parms,xdr_authunix_parms@GLIBC_2.2.5"); -__asm__(".symver xdr_bool,xdr_bool@GLIBC_2.2.5"); -__asm__(".symver xdr_bytes,xdr_bytes@GLIBC_2.2.5"); -__asm__(".symver xdr_callhdr,xdr_callhdr@GLIBC_2.2.5"); -__asm__(".symver xdr_callmsg,xdr_callmsg@GLIBC_2.2.5"); -__asm__(".symver xdr_cback_data,xdr_cback_data@GLIBC_2.2.5"); -__asm__(".symver xdr_char,xdr_char@GLIBC_2.2.5"); -__asm__(".symver xdr_cryptkeyarg,xdr_cryptkeyarg@GLIBC_2.2.5"); -__asm__(".symver xdr_cryptkeyarg2,xdr_cryptkeyarg2@GLIBC_2.2.5"); -__asm__(".symver xdr_cryptkeyres,xdr_cryptkeyres@GLIBC_2.2.5"); -__asm__(".symver xdr_des_block,xdr_des_block@GLIBC_2.2.5"); -__asm__(".symver xdr_domainname,xdr_domainname@GLIBC_2.2.5"); -__asm__(".symver xdr_double,xdr_double@GLIBC_2.2.5"); -__asm__(".symver xdr_enum,xdr_enum@GLIBC_2.2.5"); -__asm__(".symver xdr_float,xdr_float@GLIBC_2.2.5"); -__asm__(".symver xdr_free,xdr_free@GLIBC_2.2.5"); -__asm__(".symver xdr_getcredres,xdr_getcredres@GLIBC_2.2.5"); -__asm__(".symver xdr_hyper,xdr_hyper@GLIBC_2.2.5"); -__asm__(".symver xdr_int,xdr_int@GLIBC_2.2.5"); -__asm__(".symver xdr_int16_t,xdr_int16_t@GLIBC_2.2.5"); -__asm__(".symver xdr_int32_t,xdr_int32_t@GLIBC_2.2.5"); -__asm__(".symver xdr_int64_t,xdr_int64_t@GLIBC_2.2.5"); -__asm__(".symver xdr_int8_t,xdr_int8_t@GLIBC_2.2.5"); -__asm__(".symver xdr_key_netstarg,xdr_key_netstarg@GLIBC_2.2.5"); -__asm__(".symver xdr_key_netstres,xdr_key_netstres@GLIBC_2.2.5"); -__asm__(".symver xdr_keybuf,xdr_keybuf@GLIBC_2.2.5"); -__asm__(".symver xdr_keydat,xdr_keydat@GLIBC_2.2.5"); -__asm__(".symver xdr_keystatus,xdr_keystatus@GLIBC_2.2.5"); -__asm__(".symver xdr_long,xdr_long@GLIBC_2.2.5"); -__asm__(".symver xdr_longlong_t,xdr_longlong_t@GLIBC_2.2.5"); -__asm__(".symver xdr_mapname,xdr_mapname@GLIBC_2.2.5"); -__asm__(".symver xdr_netnamestr,xdr_netnamestr@GLIBC_2.2.5"); -__asm__(".symver xdr_netobj,xdr_netobj@GLIBC_2.2.5"); -__asm__(".symver xdr_obj_p,xdr_obj_p@GLIBC_2.2.5"); -__asm__(".symver xdr_opaque,xdr_opaque@GLIBC_2.2.5"); -__asm__(".symver xdr_opaque_auth,xdr_opaque_auth@GLIBC_2.2.5"); -__asm__(".symver xdr_peername,xdr_peername@GLIBC_2.2.5"); -__asm__(".symver xdr_pmap,xdr_pmap@GLIBC_2.2.5"); -__asm__(".symver xdr_pmaplist,xdr_pmaplist@GLIBC_2.2.5"); -__asm__(".symver xdr_pointer,xdr_pointer@GLIBC_2.2.5"); -__asm__(".symver xdr_quad_t,xdr_quad_t@GLIBC_2.3.4"); -__asm__(".symver xdr_reference,xdr_reference@GLIBC_2.2.5"); -__asm__(".symver xdr_rejected_reply,xdr_rejected_reply@GLIBC_2.2.5"); -__asm__(".symver xdr_replymsg,xdr_replymsg@GLIBC_2.2.5"); -__asm__(".symver xdr_rmtcall_args,xdr_rmtcall_args@GLIBC_2.2.5"); -__asm__(".symver xdr_rmtcallres,xdr_rmtcallres@GLIBC_2.2.5"); -__asm__(".symver xdr_short,xdr_short@GLIBC_2.2.5"); -__asm__(".symver xdr_sizeof,xdr_sizeof@GLIBC_2.2.5"); -__asm__(".symver xdr_string,xdr_string@GLIBC_2.2.5"); -__asm__(".symver xdr_u_char,xdr_u_char@GLIBC_2.2.5"); -__asm__(".symver xdr_u_hyper,xdr_u_hyper@GLIBC_2.2.5"); -__asm__(".symver xdr_u_int,xdr_u_int@GLIBC_2.2.5"); -__asm__(".symver xdr_u_long,xdr_u_long@GLIBC_2.2.5"); -__asm__(".symver xdr_u_longlong_t,xdr_u_longlong_t@GLIBC_2.2.5"); -__asm__(".symver xdr_u_quad_t,xdr_u_quad_t@GLIBC_2.3.4"); -__asm__(".symver xdr_u_short,xdr_u_short@GLIBC_2.2.5"); -__asm__(".symver xdr_uint16_t,xdr_uint16_t@GLIBC_2.2.5"); -__asm__(".symver xdr_uint32_t,xdr_uint32_t@GLIBC_2.2.5"); -__asm__(".symver xdr_uint64_t,xdr_uint64_t@GLIBC_2.2.5"); -__asm__(".symver xdr_uint8_t,xdr_uint8_t@GLIBC_2.2.5"); -__asm__(".symver xdr_union,xdr_union@GLIBC_2.2.5"); -__asm__(".symver xdr_unixcred,xdr_unixcred@GLIBC_2.2.5"); -__asm__(".symver xdr_valdat,xdr_valdat@GLIBC_2.2.5"); -__asm__(".symver xdr_vector,xdr_vector@GLIBC_2.2.5"); -__asm__(".symver xdr_void,xdr_void@GLIBC_2.2.5"); -__asm__(".symver xdr_wrapstring,xdr_wrapstring@GLIBC_2.2.5"); -__asm__(".symver xdr_yp_buf,xdr_yp_buf@GLIBC_2.2.5"); -__asm__(".symver xdr_ypall,xdr_ypall@GLIBC_2.2.5"); -__asm__(".symver xdr_ypbind_binding,xdr_ypbind_binding@GLIBC_2.2.5"); -__asm__(".symver xdr_ypbind_resp,xdr_ypbind_resp@GLIBC_2.2.5"); -__asm__(".symver xdr_ypbind_resptype,xdr_ypbind_resptype@GLIBC_2.2.5"); -__asm__(".symver xdr_ypbind_setdom,xdr_ypbind_setdom@GLIBC_2.2.5"); -__asm__(".symver xdr_ypdelete_args,xdr_ypdelete_args@GLIBC_2.2.5"); -__asm__(".symver xdr_ypmap_parms,xdr_ypmap_parms@GLIBC_2.2.5"); -__asm__(".symver xdr_ypmaplist,xdr_ypmaplist@GLIBC_2.2.5"); -__asm__(".symver xdr_yppush_status,xdr_yppush_status@GLIBC_2.2.5"); -__asm__(".symver xdr_yppushresp_xfr,xdr_yppushresp_xfr@GLIBC_2.2.5"); -__asm__(".symver xdr_ypreq_key,xdr_ypreq_key@GLIBC_2.2.5"); -__asm__(".symver xdr_ypreq_nokey,xdr_ypreq_nokey@GLIBC_2.2.5"); -__asm__(".symver xdr_ypreq_xfr,xdr_ypreq_xfr@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_all,xdr_ypresp_all@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_key_val,xdr_ypresp_key_val@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_maplist,xdr_ypresp_maplist@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_master,xdr_ypresp_master@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_order,xdr_ypresp_order@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_val,xdr_ypresp_val@GLIBC_2.2.5"); -__asm__(".symver xdr_ypresp_xfr,xdr_ypresp_xfr@GLIBC_2.2.5"); -__asm__(".symver xdr_ypstat,xdr_ypstat@GLIBC_2.2.5"); -__asm__(".symver xdr_ypupdate_args,xdr_ypupdate_args@GLIBC_2.2.5"); -__asm__(".symver xdr_ypxfrstat,xdr_ypxfrstat@GLIBC_2.2.5"); -__asm__(".symver xdrmem_create,xdrmem_create@GLIBC_2.2.5"); -__asm__(".symver xdrrec_create,xdrrec_create@GLIBC_2.2.5"); -__asm__(".symver xdrrec_endofrecord,xdrrec_endofrecord@GLIBC_2.2.5"); -__asm__(".symver xdrrec_eof,xdrrec_eof@GLIBC_2.2.5"); -__asm__(".symver xdrrec_skiprecord,xdrrec_skiprecord@GLIBC_2.2.5"); -__asm__(".symver xdrstdio_create,xdrstdio_create@GLIBC_2.2.5"); -__asm__(".symver xencrypt,xencrypt@GLIBC_2.2.5"); -__asm__(".symver xprt_register,xprt_register@GLIBC_2.2.5"); -__asm__(".symver xprt_unregister,xprt_unregister@GLIBC_2.2.5"); -__asm__(".symver y0,y0@GLIBC_2.2.5"); -__asm__(".symver y0f,y0f@GLIBC_2.2.5"); -__asm__(".symver y0l,y0l@GLIBC_2.2.5"); -__asm__(".symver y1,y1@GLIBC_2.2.5"); -__asm__(".symver y1f,y1f@GLIBC_2.2.5"); -__asm__(".symver y1l,y1l@GLIBC_2.2.5"); -__asm__(".symver yn,yn@GLIBC_2.2.5"); -__asm__(".symver ynf,ynf@GLIBC_2.2.5"); -__asm__(".symver ynl,ynl@GLIBC_2.2.5"); -__asm__(".symver yp_all,yp_all@GLIBC_2.2.5"); -__asm__(".symver yp_bind,yp_bind@GLIBC_2.2.5"); -__asm__(".symver yp_first,yp_first@GLIBC_2.2.5"); -__asm__(".symver yp_get_default_domain,yp_get_default_domain@GLIBC_2.2.5"); -__asm__(".symver yp_maplist,yp_maplist@GLIBC_2.2.5"); -__asm__(".symver yp_master,yp_master@GLIBC_2.2.5"); -__asm__(".symver yp_match,yp_match@GLIBC_2.2.5"); -__asm__(".symver yp_next,yp_next@GLIBC_2.2.5"); -__asm__(".symver yp_order,yp_order@GLIBC_2.2.5"); -__asm__(".symver yp_unbind,yp_unbind@GLIBC_2.2.5"); -__asm__(".symver yp_update,yp_update@GLIBC_2.2.5"); -__asm__(".symver ypbinderr_string,ypbinderr_string@GLIBC_2.2.5"); -__asm__(".symver yperr_string,yperr_string@GLIBC_2.2.5"); -__asm__(".symver ypprot_err,ypprot_err@GLIBC_2.2.5"); -__asm__(".symver _ZGVbN2v_cos,_ZGVbN2v_cos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN2v_exp,_ZGVbN2v_exp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN2v_log,_ZGVbN2v_log@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN2v_sin,_ZGVbN2v_sin@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN2vv_pow,_ZGVbN2vv_pow@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN2vvv_sincos,_ZGVbN2vvv_sincos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4v_cosf,_ZGVbN4v_cosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4v_expf,_ZGVbN4v_expf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4v_logf,_ZGVbN4v_logf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4v_sinf,_ZGVbN4v_sinf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4vv_powf,_ZGVbN4vv_powf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVbN4vvv_sincosf,_ZGVbN4vvv_sincosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4v_cos,_ZGVcN4v_cos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4v_exp,_ZGVcN4v_exp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4v_log,_ZGVcN4v_log@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4v_sin,_ZGVcN4v_sin@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4vv_pow,_ZGVcN4vv_pow@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN4vvv_sincos,_ZGVcN4vvv_sincos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8v_cosf,_ZGVcN8v_cosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8v_expf,_ZGVcN8v_expf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8v_logf,_ZGVcN8v_logf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8v_sinf,_ZGVcN8v_sinf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8vv_powf,_ZGVcN8vv_powf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVcN8vvv_sincosf,_ZGVcN8vvv_sincosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4v_cos,_ZGVdN4v_cos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4v_exp,_ZGVdN4v_exp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4v_log,_ZGVdN4v_log@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4v_sin,_ZGVdN4v_sin@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4vv_pow,_ZGVdN4vv_pow@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN4vvv_sincos,_ZGVdN4vvv_sincos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8v_cosf,_ZGVdN8v_cosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8v_expf,_ZGVdN8v_expf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8v_logf,_ZGVdN8v_logf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8v_sinf,_ZGVdN8v_sinf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8vv_powf,_ZGVdN8vv_powf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVdN8vvv_sincosf,_ZGVdN8vvv_sincosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16v_cosf,_ZGVeN16v_cosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16v_expf,_ZGVeN16v_expf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16v_logf,_ZGVeN16v_logf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16v_sinf,_ZGVeN16v_sinf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16vv_powf,_ZGVeN16vv_powf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN16vvv_sincosf,_ZGVeN16vvv_sincosf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8v_cos,_ZGVeN8v_cos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8v_exp,_ZGVeN8v_exp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8v_log,_ZGVeN8v_log@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8v_sin,_ZGVeN8v_sin@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8vv_pow,_ZGVeN8vv_pow@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver _ZGVeN8vvv_sincos,_ZGVeN8vvv_sincos@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acos_finite,__acos_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acosf128_finite,__acosf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acosf_finite,__acosf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acosh_finite,__acosh_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acoshf128_finite,__acoshf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acoshf_finite,__acoshf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acoshl_finite,__acoshl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __acosl_finite,__acosl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __asin_finite,__asin_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __asinf128_finite,__asinf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __asinf_finite,__asinf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __asinl_finite,__asinl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __asprintf_chk,__asprintf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atan2_finite,__atan2_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atan2f128_finite,__atan2f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atan2f_finite,__atan2f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atan2l_finite,__atan2l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atanh_finite,__atanh_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atanhf128_finite,__atanhf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atanhf_finite,__atanhf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __atanhl_finite,__atanhl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __cosh_finite,__cosh_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __coshf128_finite,__coshf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __coshf_finite,__coshf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __coshl_finite,__coshl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __cxa_at_quick_exit,__cxa_at_quick_exit@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __cxa_thread_atexit_impl,__cxa_thread_atexit_impl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __dprintf_chk,__dprintf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp10_finite,__exp10_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp10f128_finite,__exp10f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp10f_finite,__exp10f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp10l_finite,__exp10l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp2_finite,__exp2_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp2f128_finite,__exp2f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp2f_finite,__exp2f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp2l_finite,__exp2l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __exp_finite,__exp_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __expf128_finite,__expf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __expf_finite,__expf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __expl_finite,__expl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __explicit_bzero_chk,__explicit_bzero_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fdelt_chk,__fdelt_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fdelt_warn,__fdelt_warn@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fentry__,__fentry__@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __finitef128,__finitef128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fmod_finite,__fmod_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fmodf128_finite,__fmodf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fmodf_finite,__fmodf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fmodl_finite,__fmodl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fpclassifyf128,__fpclassifyf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fread_chk,__fread_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __fread_unlocked_chk,__fread_unlocked_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __gamma_r_finite,__gamma_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __gammaf128_r_finite,__gammaf128_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __gammaf_r_finite,__gammaf_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __gammal_r_finite,__gammal_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __getauxval,__getauxval@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __hypot_finite,__hypot_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __hypotf128_finite,__hypotf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __hypotf_finite,__hypotf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __hypotl_finite,__hypotl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __iscanonicall,__iscanonicall@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __iseqsig,__iseqsig@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __iseqsigf,__iseqsigf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __iseqsigf128,__iseqsigf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __iseqsigl,__iseqsigl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isinff128,__isinff128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isnanf128,__isnanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_fscanf,__isoc99_fscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_fwscanf,__isoc99_fwscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_scanf,__isoc99_scanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_sscanf,__isoc99_sscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_swscanf,__isoc99_swscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vfscanf,__isoc99_vfscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vfwscanf,__isoc99_vfwscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vscanf,__isoc99_vscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vsscanf,__isoc99_vsscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vswscanf,__isoc99_vswscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_vwscanf,__isoc99_vwscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __isoc99_wscanf,__isoc99_wscanf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __issignaling,__issignaling@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __issignalingf,__issignalingf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __issignalingf128,__issignalingf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __issignalingl,__issignalingl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j0_finite,__j0_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j0f128_finite,__j0f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j0f_finite,__j0f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j0l_finite,__j0l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j1_finite,__j1_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j1f128_finite,__j1f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j1f_finite,__j1f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __j1l_finite,__j1l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __jn_finite,__jn_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __jnf128_finite,__jnf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __jnf_finite,__jnf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __jnl_finite,__jnl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __lgamma_r_finite,__lgamma_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __lgammaf128_r_finite,__lgammaf128_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __lgammaf_r_finite,__lgammaf_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __lgammal_r_finite,__lgammal_r_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log10_finite,__log10_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log10f128_finite,__log10f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log10f_finite,__log10f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log10l_finite,__log10l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log2_finite,__log2_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log2f128_finite,__log2f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log2f_finite,__log2f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log2l_finite,__log2l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __log_finite,__log_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __logf128_finite,__logf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __logf_finite,__logf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __logl_finite,__logl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __longjmp_chk,__longjmp_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __mq_open_2,__mq_open_2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __obstack_printf_chk,__obstack_printf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __obstack_vprintf_chk,__obstack_vprintf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __open64_2,__open64_2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __open_2,__open_2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __openat64_2,__openat64_2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __openat_2,__openat_2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __poll_chk,__poll_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __posix_getopt,__posix_getopt@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __pow_finite,__pow_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __powf128_finite,__powf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __powf_finite,__powf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __powl_finite,__powl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __ppoll_chk,__ppoll_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __remainder_finite,__remainder_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __remainderf128_finite,__remainderf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __remainderf_finite,__remainderf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __remainderl_finite,__remainderl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __scalb_finite,__scalb_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __scalbf_finite,__scalbf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __scalbl_finite,__scalbl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sched_cpualloc,__sched_cpualloc@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sched_cpucount,__sched_cpucount@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sched_cpufree,__sched_cpufree@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __signbitf128,__signbitf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __signgam,__signgam@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sinh_finite,__sinh_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sinhf128_finite,__sinhf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sinhf_finite,__sinhf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sinhl_finite,__sinhl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sqrt_finite,__sqrt_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sqrtf128_finite,__sqrtf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sqrtf_finite,__sqrtf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __sqrtl_finite,__sqrtl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __strtof128_internal,__strtof128_internal@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __vasprintf_chk,__vasprintf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __vdprintf_chk,__vdprintf_chk@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __wcstof128_internal,__wcstof128_internal@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y0_finite,__y0_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y0f128_finite,__y0f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y0f_finite,__y0f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y0l_finite,__y0l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y1_finite,__y1_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y1f128_finite,__y1f128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y1f_finite,__y1f_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __y1l_finite,__y1l_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __yn_finite,__yn_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __ynf128_finite,__ynf128_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __ynf_finite,__ynf_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver __ynl_finite,__ynl_finite@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver accept4,accept4@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acosf128,acosf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acosf32,acosf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acosf32x,acosf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acosf64,acosf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acosf64x,acosf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acoshf128,acoshf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acoshf32,acoshf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acoshf32x,acoshf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acoshf64,acoshf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver acoshf64x,acoshf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver aligned_alloc,aligned_alloc@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinf128,asinf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinf32,asinf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinf32x,asinf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinf64,asinf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinf64x,asinf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinhf128,asinhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinhf32,asinhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinhf32x,asinhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinhf64,asinhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver asinhf64x,asinhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atan2f128,atan2f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atan2f32,atan2f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atan2f32x,atan2f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atan2f64,atan2f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atan2f64x,atan2f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanf128,atanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanf32,atanf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanf32x,atanf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanf64,atanf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanf64x,atanf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanhf128,atanhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanhf32,atanhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanhf32x,atanhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanhf64,atanhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver atanhf64x,atanhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver c16rtomb,c16rtomb@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver c32rtomb,c32rtomb@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cabsf128,cabsf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cabsf32,cabsf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cabsf32x,cabsf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cabsf64,cabsf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cabsf64x,cabsf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacosf128,cacosf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacosf32,cacosf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacosf32x,cacosf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacosf64,cacosf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacosf64x,cacosf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacoshf128,cacoshf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacoshf32,cacoshf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacoshf32x,cacoshf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacoshf64,cacoshf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cacoshf64x,cacoshf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalize,canonicalize@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef,canonicalizef@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef128,canonicalizef128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef32,canonicalizef32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef32x,canonicalizef32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef64,canonicalizef64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizef64x,canonicalizef64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver canonicalizel,canonicalizel@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cargf128,cargf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cargf32,cargf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cargf32x,cargf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cargf64,cargf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cargf64x,cargf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinf128,casinf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinf32,casinf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinf32x,casinf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinf64,casinf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinf64x,casinf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinhf128,casinhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinhf32,casinhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinhf32x,casinhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinhf64,casinhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver casinhf64x,casinhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanf128,catanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanf32,catanf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanf32x,catanf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanf64,catanf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanf64x,catanf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanhf128,catanhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanhf32,catanhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanhf32x,catanhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanhf64,catanhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver catanhf64x,catanhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cbrtf128,cbrtf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cbrtf32,cbrtf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cbrtf32x,cbrtf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cbrtf64,cbrtf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cbrtf64x,cbrtf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccosf128,ccosf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccosf32,ccosf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccosf32x,ccosf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccosf64,ccosf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccosf64x,ccosf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccoshf128,ccoshf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccoshf32,ccoshf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccoshf32x,ccoshf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccoshf64,ccoshf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ccoshf64x,ccoshf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ceilf128,ceilf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ceilf32,ceilf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ceilf32x,ceilf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ceilf64,ceilf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ceilf64x,ceilf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cexpf128,cexpf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cexpf32,cexpf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cexpf32x,cexpf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cexpf64,cexpf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cexpf64x,cexpf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cimagf128,cimagf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cimagf32,cimagf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cimagf32x,cimagf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cimagf64,cimagf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cimagf64x,cimagf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clock_adjtime,clock_adjtime@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clog10f128,clog10f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clog10f32,clog10f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clog10f32x,clog10f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clog10f64,clog10f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clog10f64x,clog10f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clogf128,clogf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clogf32,clogf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clogf32x,clogf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clogf64,clogf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver clogf64x,clogf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver conjf128,conjf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver conjf32,conjf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver conjf32x,conjf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver conjf64,conjf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver conjf64x,conjf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copy_file_range,copy_file_range@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copysignf128,copysignf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copysignf32,copysignf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copysignf32x,copysignf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copysignf64,copysignf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver copysignf64x,copysignf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cosf128,cosf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cosf32,cosf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cosf32x,cosf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cosf64,cosf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cosf64x,cosf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver coshf128,coshf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver coshf32,coshf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver coshf32x,coshf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver coshf64,coshf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver coshf64x,coshf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cpowf128,cpowf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cpowf32,cpowf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cpowf32x,cpowf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cpowf64,cpowf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cpowf64x,cpowf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cprojf128,cprojf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cprojf32,cprojf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cprojf32x,cprojf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cprojf64,cprojf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver cprojf64x,cprojf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver crealf128,crealf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver crealf32,crealf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver crealf32x,crealf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver crealf64,crealf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver crealf64x,crealf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinf128,csinf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinf32,csinf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinf32x,csinf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinf64,csinf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinf64x,csinf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinhf128,csinhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinhf32,csinhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinhf32x,csinhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinhf64,csinhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csinhf64x,csinhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csqrtf128,csqrtf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csqrtf32,csqrtf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csqrtf32x,csqrtf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csqrtf64,csqrtf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver csqrtf64x,csqrtf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanf128,ctanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanf32,ctanf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanf32x,ctanf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanf64,ctanf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanf64x,ctanf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanhf128,ctanhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanhf32,ctanhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanhf32x,ctanhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanhf64,ctanhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ctanhf64x,ctanhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver dup3,dup3@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver endsgent,endsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver epoll_create1,epoll_create1@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver epoll_pwait,epoll_pwait@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erfcf128,erfcf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erfcf32,erfcf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erfcf32x,erfcf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erfcf64,erfcf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erfcf64x,erfcf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erff128,erff128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erff32,erff32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erff32x,erff32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erff64,erff64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver erff64x,erff64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver eventfd,eventfd@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver eventfd_read,eventfd_read@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver eventfd_write,eventfd_write@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver execvpe,execvpe@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp10f128,exp10f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp10f32,exp10f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp10f32x,exp10f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp10f64,exp10f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp10f64x,exp10f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp2f128,exp2f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp2f32,exp2f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp2f32x,exp2f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp2f64,exp2f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver exp2f64x,exp2f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expf128,expf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expf32,expf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expf32x,expf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expf64,expf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expf64x,expf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver explicit_bzero,explicit_bzero@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expm1f128,expm1f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expm1f32,expm1f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expm1f32x,expm1f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expm1f64,expm1f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver expm1f64x,expm1f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fabsf128,fabsf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fabsf32,fabsf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fabsf32x,fabsf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fabsf64,fabsf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fabsf64x,fabsf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fallocate,fallocate@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fallocate64,fallocate64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fanotify_init,fanotify_init@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fanotify_mark,fanotify_mark@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fdimf128,fdimf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fdimf32,fdimf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fdimf32x,fdimf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fdimf64,fdimf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fdimf64x,fdimf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fegetmode,fegetmode@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fesetexcept,fesetexcept@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fesetmode,fesetmode@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fetestexceptflag,fetestexceptflag@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fgetsgent,fgetsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fgetsgent_r,fgetsgent_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver floorf128,floorf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver floorf32,floorf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver floorf32x,floorf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver floorf64,floorf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver floorf64x,floorf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaf128,fmaf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaf32,fmaf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaf32x,fmaf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaf64,fmaf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaf64x,fmaf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxf128,fmaxf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxf32,fmaxf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxf32x,fmaxf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxf64,fmaxf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxf64x,fmaxf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmag,fmaxmag@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf,fmaxmagf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf128,fmaxmagf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf32,fmaxmagf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf32x,fmaxmagf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf64,fmaxmagf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagf64x,fmaxmagf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmaxmagl,fmaxmagl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminf128,fminf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminf32,fminf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminf32x,fminf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminf64,fminf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminf64x,fminf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmag,fminmag@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf,fminmagf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf128,fminmagf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf32,fminmagf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf32x,fminmagf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf64,fminmagf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagf64x,fminmagf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fminmagl,fminmagl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmodf128,fmodf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmodf32,fmodf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmodf32x,fmodf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmodf64,fmodf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fmodf64x,fmodf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver frexpf128,frexpf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver frexpf32,frexpf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver frexpf32x,frexpf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver frexpf64,frexpf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver frexpf64x,frexpf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfp,fromfp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf,fromfpf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf128,fromfpf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf32,fromfpf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf32x,fromfpf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf64,fromfpf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpf64x,fromfpf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpl,fromfpl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpx,fromfpx@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf,fromfpxf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf128,fromfpxf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf32,fromfpxf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf32x,fromfpxf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf64,fromfpxf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxf64x,fromfpxf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fromfpxl,fromfpxl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fts64_children,fts64_children@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fts64_close,fts64_close@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fts64_open,fts64_open@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fts64_read,fts64_read@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver fts64_set,fts64_set@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver futimens,futimens@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getauxval,getauxval@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getentropy,getentropy@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayload,getpayload@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf,getpayloadf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf128,getpayloadf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf32,getpayloadf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf32x,getpayloadf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf64,getpayloadf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadf64x,getpayloadf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getpayloadl,getpayloadl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getrandom,getrandom@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getsgent,getsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getsgent_r,getsgent_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getsgnam,getsgnam@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver getsgnam_r,getsgnam_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver hypotf128,hypotf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver hypotf32,hypotf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver hypotf32x,hypotf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver hypotf64,hypotf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver hypotf64x,hypotf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ilogbf128,ilogbf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ilogbf32,ilogbf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ilogbf32x,ilogbf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ilogbf64,ilogbf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ilogbf64x,ilogbf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver inotify_init1,inotify_init1@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j0f128,j0f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j0f32,j0f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j0f32x,j0f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j0f64,j0f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j0f64x,j0f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j1f128,j1f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j1f32,j1f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j1f32x,j1f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j1f64,j1f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver j1f64x,j1f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver jnf128,jnf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver jnf32,jnf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver jnf32x,jnf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver jnf64,jnf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver jnf64x,jnf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ldexpf128,ldexpf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ldexpf32,ldexpf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ldexpf32x,ldexpf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ldexpf64,ldexpf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ldexpf64x,ldexpf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf128,lgammaf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf128_r,lgammaf128_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf32,lgammaf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf32_r,lgammaf32_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf32x,lgammaf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf32x_r,lgammaf32x_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf64,lgammaf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf64_r,lgammaf64_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf64x,lgammaf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lgammaf64x_r,lgammaf64x_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogb,llogb@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf,llogbf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf128,llogbf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf32,llogbf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf32x,llogbf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf64,llogbf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbf64x,llogbf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llogbl,llogbl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llrintf128,llrintf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llrintf32,llrintf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llrintf32x,llrintf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llrintf64,llrintf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llrintf64x,llrintf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llroundf128,llroundf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llroundf32,llroundf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llroundf32x,llroundf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llroundf64,llroundf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver llroundf64x,llroundf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log10f128,log10f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log10f32,log10f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log10f32x,log10f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log10f64,log10f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log10f64x,log10f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log1pf128,log1pf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log1pf32,log1pf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log1pf32x,log1pf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log1pf64,log1pf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log1pf64x,log1pf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log2f128,log2f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log2f32,log2f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log2f32x,log2f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log2f64,log2f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver log2f64x,log2f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logbf128,logbf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logbf32,logbf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logbf32x,logbf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logbf64,logbf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logbf64x,logbf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logf128,logf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logf32,logf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logf32x,logf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logf64,logf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver logf64x,logf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lrintf128,lrintf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lrintf32,lrintf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lrintf32x,lrintf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lrintf64,lrintf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lrintf64x,lrintf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lroundf128,lroundf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lroundf32,lroundf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lroundf32x,lroundf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lroundf64,lroundf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver lroundf64x,lroundf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver malloc_info,malloc_info@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mbrtoc16,mbrtoc16@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mbrtoc32,mbrtoc32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver memfd_create,memfd_create@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkostemp,mkostemp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkostemp64,mkostemp64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkostemps,mkostemps@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkostemps64,mkostemps64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkstemps,mkstemps@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mkstemps64,mkstemps64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver mlock2,mlock2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver modff128,modff128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver modff32,modff32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver modff32x,modff32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver modff64,modff64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver modff64x,modff64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver name_to_handle_at,name_to_handle_at@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nanf128,nanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nanf32,nanf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nanf32x,nanf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nanf64,nanf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nanf64x,nanf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nearbyintf128,nearbyintf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nearbyintf32,nearbyintf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nearbyintf32x,nearbyintf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nearbyintf64,nearbyintf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nearbyintf64x,nearbyintf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextafterf128,nextafterf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextafterf32,nextafterf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextafterf32x,nextafterf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextafterf64,nextafterf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextafterf64x,nextafterf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdown,nextdown@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf,nextdownf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf128,nextdownf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf32,nextdownf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf32x,nextdownf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf64,nextdownf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownf64x,nextdownf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextdownl,nextdownl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextup,nextup@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf,nextupf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf128,nextupf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf32,nextupf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf32x,nextupf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf64,nextupf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupf64x,nextupf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver nextupl,nextupl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_datetosecs,ns_datetosecs@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_format_ttl,ns_format_ttl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_get16,ns_get16@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_get32,ns_get32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_initparse,ns_initparse@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_makecanon,ns_makecanon@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_msg_getflag,ns_msg_getflag@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_compress,ns_name_compress@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_ntol,ns_name_ntol@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_ntop,ns_name_ntop@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_pack,ns_name_pack@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_pton,ns_name_pton@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_rollback,ns_name_rollback@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_skip,ns_name_skip@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_uncompress,ns_name_uncompress@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_name_unpack,ns_name_unpack@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_parse_ttl,ns_parse_ttl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_parserr,ns_parserr@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_put16,ns_put16@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_put32,ns_put32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_samedomain,ns_samedomain@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_samename,ns_samename@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_skiprr,ns_skiprr@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_sprintrr,ns_sprintrr@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_sprintrrf,ns_sprintrrf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ns_subdomain,ns_subdomain@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ntp_gettimex,ntp_gettimex@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver open_by_handle_at,open_by_handle_at@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pipe2,pipe2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pkey_alloc,pkey_alloc@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pkey_free,pkey_free@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pkey_get,pkey_get@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pkey_mprotect,pkey_mprotect@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pkey_set,pkey_set@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver powf128,powf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver powf32,powf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver powf32x,powf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver powf64,powf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver powf64x,powf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver preadv,preadv@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver preadv2,preadv2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver preadv64,preadv64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver preadv64v2,preadv64v2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver prlimit,prlimit@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver prlimit64,prlimit64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver process_vm_readv,process_vm_readv@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver process_vm_writev,process_vm_writev@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver psiginfo,psiginfo@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_getattr_default_np,pthread_getattr_default_np@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_getname_np,pthread_getname_np@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_mutex_consistent,pthread_mutex_consistent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_mutexattr_getrobust,pthread_mutexattr_getrobust@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_mutexattr_setrobust,pthread_mutexattr_setrobust@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_setattr_default_np,pthread_setattr_default_np@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_setname_np,pthread_setname_np@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pthread_sigqueue,pthread_sigqueue@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver putsgent,putsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pwritev,pwritev@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pwritev2,pwritev2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pwritev64,pwritev64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver pwritev64v2,pwritev64v2@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver qsort_r,qsort_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver quick_exit,quick_exit@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver reallocarray,reallocarray@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver recvmmsg,recvmmsg@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver register_printf_modifier,register_printf_modifier@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver register_printf_specifier,register_printf_specifier@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver register_printf_type,register_printf_type@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remainderf128,remainderf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remainderf32,remainderf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remainderf32x,remainderf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remainderf64,remainderf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remainderf64x,remainderf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remquof128,remquof128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remquof32,remquof32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remquof32x,remquof32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remquof64,remquof64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver remquof64x,remquof64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver rintf128,rintf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver rintf32,rintf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver rintf32x,rintf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver rintf64,rintf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver rintf64x,rintf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundeven,roundeven@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf,roundevenf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf128,roundevenf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf32,roundevenf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf32x,roundevenf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf64,roundevenf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenf64x,roundevenf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundevenl,roundevenl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundf128,roundf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundf32,roundf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundf32x,roundf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundf64,roundf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver roundf64x,roundf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalblnf128,scalblnf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalblnf32,scalblnf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalblnf32x,scalblnf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalblnf64,scalblnf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalblnf64x,scalblnf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalbnf128,scalbnf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalbnf32,scalbnf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalbnf32x,scalbnf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalbnf64,scalbnf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scalbnf64x,scalbnf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scandirat,scandirat@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver scandirat64,scandirat64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sched_getcpu,sched_getcpu@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver secure_getenv,secure_getenv@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sendmmsg,sendmmsg@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setns,setns@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayload,setpayload@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf,setpayloadf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf128,setpayloadf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf32,setpayloadf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf32x,setpayloadf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf64,setpayloadf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadf64x,setpayloadf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadl,setpayloadl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsig,setpayloadsig@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf,setpayloadsigf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf128,setpayloadsigf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf32,setpayloadsigf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf32x,setpayloadsigf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf64,setpayloadsigf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigf64x,setpayloadsigf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setpayloadsigl,setpayloadsigl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver setsgent,setsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sgetsgent,sgetsgent@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sgetsgent_r,sgetsgent_r@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver signalfd,signalfd@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sincosf128,sincosf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sincosf32,sincosf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sincosf32x,sincosf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sincosf64,sincosf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sincosf64x,sincosf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinf128,sinf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinf32,sinf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinf32x,sinf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinf64,sinf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinf64x,sinf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinhf128,sinhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinhf32,sinhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinhf32x,sinhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinhf64,sinhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sinhf64x,sinhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sqrtf128,sqrtf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sqrtf32,sqrtf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sqrtf32x,sqrtf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sqrtf64,sqrtf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sqrtf64x,sqrtf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strerror_l,strerror_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromd,strfromd@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf,strfromf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf128,strfromf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf32,strfromf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf32x,strfromf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf64,strfromf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfromf64x,strfromf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strfroml,strfroml@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof128,strtof128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof128_l,strtof128_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof32,strtof32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof32_l,strtof32_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof32x,strtof32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof32x_l,strtof32x_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof64,strtof64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof64_l,strtof64_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof64x,strtof64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver strtof64x_l,strtof64x_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver sync_file_range,sync_file_range@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver syncfs,syncfs@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanf128,tanf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanf32,tanf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanf32x,tanf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanf64,tanf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanf64x,tanf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanhf128,tanhf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanhf32,tanhf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanhf32x,tanhf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanhf64,tanhf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tanhf64x,tanhf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tgammaf128,tgammaf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tgammaf32,tgammaf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tgammaf32x,tgammaf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tgammaf64,tgammaf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver tgammaf64x,tgammaf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver timerfd_create,timerfd_create@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver timerfd_gettime,timerfd_gettime@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver timerfd_settime,timerfd_settime@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver timespec_get,timespec_get@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorder,totalorder@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf,totalorderf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf128,totalorderf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf32,totalorderf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf32x,totalorderf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf64,totalorderf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderf64x,totalorderf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalorderl,totalorderl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermag,totalordermag@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf,totalordermagf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf128,totalordermagf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf32,totalordermagf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf32x,totalordermagf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf64,totalordermagf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagf64x,totalordermagf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver totalordermagl,totalordermagl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver truncf128,truncf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver truncf32,truncf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver truncf32x,truncf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver truncf64,truncf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver truncf64x,truncf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfp,ufromfp@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf,ufromfpf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf128,ufromfpf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf32,ufromfpf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf32x,ufromfpf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf64,ufromfpf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpf64x,ufromfpf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpl,ufromfpl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpx,ufromfpx@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf,ufromfpxf@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf128,ufromfpxf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf32,ufromfpxf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf32x,ufromfpxf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf64,ufromfpxf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxf64x,ufromfpxf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ufromfpxl,ufromfpxl@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver utimensat,utimensat@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof128,wcstof128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof128_l,wcstof128_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof32,wcstof32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof32_l,wcstof32_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof32x,wcstof32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof32x_l,wcstof32x_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof64,wcstof64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof64_l,wcstof64_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof64x,wcstof64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver wcstof64x_l,wcstof64x_l@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y0f128,y0f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y0f32,y0f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y0f32x,y0f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y0f64,y0f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y0f64x,y0f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y1f128,y1f128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y1f32,y1f32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y1f32x,y1f32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y1f64,y1f64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver y1f64x,y1f64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ynf128,ynf128@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ynf32,ynf32@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ynf32x,ynf32x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ynf64,ynf64@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -__asm__(".symver ynf64x,ynf64x@GLIBC_WRAP_ERROR_SYMBOL_NOT_PRESENT_IN_REQUESTED_VERSION"); -#endif diff --git a/src/pyfluid/__init__.py b/src/pyfluid/__init__.py deleted file mode 100644 index 6a89314..0000000 --- a/src/pyfluid/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from . import pyfluid -from .aabb import AABB, AABB_t -from .fluidsimulation import FluidSimulation, MarkerParticle_t, DiffuseParticle_t -from .meshobject import MeshObject -from .meshfluidsource import MeshFluidSource -from .forcefieldgrid import ForceFieldGrid -from .forcefield import ForceField -from .forcefieldpoint import ForceFieldPoint -from .forcefieldsurface import ForceFieldSurface -from .forcefieldvolume import ForceFieldVolume -from .forcefieldcurve import ForceFieldCurve -from .trianglemesh import TriangleMesh, TriangleMesh_t -from .gridindex import GridIndex, GridIndex_t -from .vector3 import Vector3, Vector3_t -from . import gpu_utils \ No newline at end of file diff --git a/src/pyfluid/aabb.py b/src/pyfluid/aabb.py deleted file mode 100644 index 3d32e12..0000000 --- a/src/pyfluid/aabb.py +++ /dev/null @@ -1,237 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from .vector3 import Vector3, Vector3_t -from .gridindex import GridIndex -from . import method_decorators as decorators -import ctypes - -class AABB_t(ctypes.Structure): - _fields_ = [("position", Vector3_t), - ("width", ctypes.c_float), - ("height", ctypes.c_float), - ("depth", ctypes.c_float)] - -class AABB(object): - - def __init__(self, *args): - if len(args) == 4 and isinstance(args[0], Vector3): - self.position = args[0] - self.width = args[1] - self.height = args[2] - self.depth = args[3] - elif len(args) == 6: - self._position = Vector3(args[0], args[1], args[2]) - self.width = args[3] - self.height = args[4] - self.depth = args[5] - elif len(args) == 0: - self.position = Vector3() - self.width = 0.0 - self.height = 0.0 - self.depth = 0.0 - else: - errmsg = "AABB must be initialized with types:\n" - errmsg += "x: " + (str(float) + "\n" + - "y: " + str(float) + "\n" + - "z: " + str(float) + "\n" + - "width: " + str(float) + "\n" + - "height: " + str(float) + "\n" + - "depth: " + str(float) + "\n\n" + - "or\n\n" + - "position: " + (str(Vector3)) + "\n" + - "width: " + str(float) + "\n" + - "height: " + str(float) + "\n" + - "depth: " + str(float)) - raise TypeError(errmsg) - - def __str__(self): - return (str(self.position) + " " + str(self.width) + " " + - str(self.height) + " " + - str(self.depth)) - - @classmethod - @decorators.check_type(Vector3) - def from_corners(cls, pmin = Vector3(), pmax = Vector3()): - minx = min(pmin.x, pmax.x) - miny = min(pmin.y, pmax.y) - minz = min(pmin.z, pmax.z) - maxx = max(pmin.x, pmax.x) - maxy = max(pmin.y, pmax.y) - maxz = max(pmin.z, pmax.z) - width = maxx - minx - height = maxy - miny - depth = maxz - minz - - return cls(minx, miny, minz, width, height, depth) - - @classmethod - def from_points(cls, point_list): - if len(point_list) == 0: - return cls() - - minx, miny, minz = point_list[0] - maxx, maxy, maxz = point_list[0] - for p in point_list: - minx = min(p.x, minx); - miny = min(p.y, miny); - minz = min(p.z, minz); - maxx = max(p.x, maxx); - maxy = max(p.y, maxy); - maxz = max(p.z, maxz); - - eps = 1e-9; - width = maxx - minx + eps; - height = maxy - miny + eps; - depth = maxz - minz + eps; - - return cls(minx, miny, minz, width, height, depth) - - @classmethod - def from_struct(cls, cstruct): - return cls(Vector3.from_struct(cstruct.position), - float(cstruct.width), - float(cstruct.height), - float(cstruct.depth)) - - def to_struct(self): - return AABB_t(Vector3_t(self.x, self.y, self.z), - self.width, self.height, self.depth) - - @classmethod - def from_grid_index(cls, grid_index = GridIndex(), dx = 0.0): - return cls(grid_index.i*dx, grid_index.j*dx, grid_index.k*dx, dx, dx, dx) - - @property - def x(self): - return self._position.x - - @property - def y(self): - return self._position.y - - @property - def z(self): - return self._position.z - - @property - def width(self): - return self._width - - @property - def height(self): - return self._height - - @property - def depth(self): - return self._depth - - @property - def position(self): - return self._position - - @x.setter - def x(self, value): - self._position.x = value - - @y.setter - def y(self, value): - self._position.y = value - - @z.setter - def z(self, value): - self._position.z = value - - @width.setter - def width(self, value): - self._width = float(value) - - @height.setter - def height(self, value): - self._height = float(value) - - @depth.setter - def depth(self, value): - self._depth = float(value) - - @position.setter - @decorators.check_type(Vector3) - def position(self, vector): - self._position = vector - - def expand(self, v): - h = 0.5 * v; - self.position -= Vector3(h, h, h); - self.width += v; - self.height += v; - self.depth += v; - - @decorators.xyz_or_vector - def contains_point(self, x, y, z): - return (x >= self.x and y >= self.y and z >= self.z and - x < self.x + self.width and - y < self.y + self.height and - z < self.z + self.depth) - - def get_min_point(self): - return self.position - - def get_max_point(self): - return self.position + Vector3(self.width, self.height, self.depth) - - def get_intersection(self, bbox): - minp1 = self.get_min_point() - minp2 = bbox.get_min_point() - maxp1 = self.get_max_point() - maxp2 = bbox.get_max_point() - - if minp1.x > maxp2.x or minp1.y > maxp2.y or minp1.z > maxp2.z: - return AABB() - - interminx = max(minp1.x, minp2.x) - interminy = max(minp1.y, minp2.y) - interminz = max(minp1.z, minp2.z) - intermaxx = min(maxp1.x, maxp2.x) - intermaxy = min(maxp1.y, maxp2.y) - intermaxz = min(maxp1.z, maxp2.z) - - return AABB.from_corners(Vector3(interminx, interminy, interminz), - Vector3(intermaxx, intermaxy, intermaxz)) - - def get_union(self, bbox): - minp1 = self.get_min_point() - minp2 = bbox.get_min_point() - maxp1 = self.get_max_point() - maxp2 = bbox.get_max_point() - - if minp1.x > maxp2.x or minp1.y > maxp2.y or minp1.z > maxp2.z: - return AABB() - - unionminx = min(minp1.x, minp2.x) - unionminy = min(minp1.y, minp2.y) - unionminz = min(minp1.z, minp2.z) - unionmaxx = max(maxp1.x, maxp2.x) - unionmaxy = max(maxp1.y, maxp2.y) - unionmaxz = max(maxp1.z, maxp2.z) - - return AABB.from_corners(Vector3(unionminx, unionminy, unionminz), - Vector3(unionmaxx, unionmaxy, unionmaxz)) \ No newline at end of file diff --git a/src/pyfluid/array3d.py b/src/pyfluid/array3d.py deleted file mode 100644 index 44d3196..0000000 --- a/src/pyfluid/array3d.py +++ /dev/null @@ -1,112 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -import array -from gridindex import GridIndex -import method_decorators as decorators - -class Array3d: - __metaclass__ = ABCMeta - - def __init__(self, isize, jsize, ksize): - self.width, self.height, self.depth = isize, jsize, ksize - self._num_elements = isize*jsize*ksize - - @abstractmethod - def _init_grid(self, data): - pass - - def fill(self, value): - for i in range(self._num_elements): - self._grid[i] = value - - @decorators.ijk_or_gridindex - def __call__(self, i, j, k): - if not self._is_index_in_range(i, j, k) and self._out_of_range_value != None: - return self._out_of_range_value - return self._grid[self._get_flat_index(i, j, k)] - - def __iter__(self): - i = j = k = 0 - for v in self._grid: - yield i, j, k, v - i += 1 - if i >= self.width: - i = 0 - j += 1 - if j >= self.height: - j = 0 - k += 1 - - @decorators.ijk_or_gridindex - def get(self, i, j, k): - return self(i, j, k) - - @decorators.ijk_or_gridindex_and_value - def set(self, i, j, k, value): - self._grid[self._get_flat_index(i, j, k)] = value - - @decorators.ijk_or_gridindex_and_value - def add(self, i, j, k, value): - self._grid[self._get_flat_index(i, j, k)] += value - - def get_num_elements(self): - return self._num_elements - - def set_out_of_range_value(self, value = None): - self._out_of_range_value = value - - def get_out_of_range_value(self): - return self._out_of_range_value - - def _is_index_in_range(self, i, j, k): - return (i >= 0 and j >= 0 and k >= 0 and - i < self.width and j < self.height and k < self.depth) - - def _get_flat_index(self, i, j, k): - return i + self.width*(j + self.height*k) - - -class Array3di(Array3d): - def __init__(self, isize, jsize, ksize, default_value = int()): - Array3d.__init__(self, isize, jsize, ksize) - self._init_grid(default_value) - - def _init_grid(self, default_value): - self._grid = array.array('i', [default_value]*self.get_num_elements()) - -class Array3df(Array3d): - def __init__(self, isize, jsize, ksize, default_value = float()): - Array3d.__init__(self, isize, jsize, ksize) - self._init_grid(default_value) - - def _init_grid(self, default_value): - self._grid = array.array('f', [default_value]*self.get_num_elements()) - -class Array3dd(Array3d): - def __init__(self, isize, jsize, ksize, default_value = float()): - Array3d.__init__(self, isize, jsize, ksize) - self._init_grid(default_value) - - def _init_grid(self, default_value): - self._grid = array.array('d', [default_value]*self.get_num_elements()) \ No newline at end of file diff --git a/src/pyfluid/fluidsimulation.py b/src/pyfluid/fluidsimulation.py deleted file mode 100644 index 1671aa6..0000000 --- a/src/pyfluid/fluidsimulation.py +++ /dev/null @@ -1,2114 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import ctypes -from ctypes import c_void_p, c_char_p, c_char, c_int, c_uint, c_float, c_double, byref -import numbers - -from .pyfluid import pyfluid as lib -from .forcefieldgrid import ForceFieldGrid -from .vector3 import Vector3, Vector3_t -from .gridindex import GridIndex, GridIndex_t -from .aabb import AABB, AABB_t -from . import pybindings as pb -from . import method_decorators as decorators - - -def _check_simulation_initialized(func): - def check_initialized_wrapper(self, *args): - if isinstance(self, FluidSimulation) and not self.is_initialized(): - errmsg = "FluidSimulation must be initialized before calling this method" - raise RuntimeError(errmsg) - return func(self, *args) - - return check_initialized_wrapper - -def _check_simulation_not_initialized(func): - def check_not_initialized_wrapper(self, *args): - if isinstance(self, FluidSimulation) and self.is_initialized(): - errmsg = "This method must be called before FluidSimulation is initialized" - raise RuntimeError(errmsg) - return func(self, *args) - - return check_not_initialized_wrapper - -class FluidSimulation(object): - - def __init__(self, isize = None, jsize = None, ksize = None, dx = None): - is_empty_constructor = all(x == None for x in (isize, jsize, ksize, dx)) - is_dimensions_constructor = (isinstance(isize, int) and - isinstance(jsize, int) and - isinstance(ksize, int) and - isinstance(dx, numbers.Real)) - - if is_empty_constructor: - self._init_from_empty() - elif is_dimensions_constructor: - self._init_from_dimensions(isize, jsize, ksize, dx) - else: - errmsg = "FluidSimulation must be initialized with types:\n" - errmsg += "isize:\t" + (str(int) + "\n" + - "jsize:\t" + str(int) + "\n" + - "ksize:\t" + str(int) + "\n" + - "dx:\t" + str(float)) - raise TypeError(errmsg) - - def _init_from_empty(self): - libfunc = lib.FluidSimulation_new_from_empty - pb.init_lib_func(libfunc, [c_void_p], c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - - @decorators.check_gt_zero - def _init_from_dimensions(self, isize, jsize, ksize, dx): - libfunc = lib.FluidSimulation_new_from_dimensions - pb.init_lib_func(libfunc, - [c_int, c_int, c_int, c_double, c_void_p], - c_void_p) - self._obj = pb.execute_lib_func(libfunc, [isize, jsize, ksize, dx]) - - def __del__(self): - try: - libfunc = lib.FluidSimulation_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass - self._obj = None - - def __call__(self): - return self._obj - - def get_version(self): - libfunc = lib.FluidSimulation_get_version - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p], None) - major = c_int() - minor = c_int() - revision = c_int() - success = c_int() - libfunc(self(), byref(major), byref(minor), byref(revision), byref(success)) - pb.check_success(success, libfunc.__name__ + " - ") - return (major.value, minor.value, revision.value) - - def upscale_on_initialization(self, prev_isize, prev_jsize, prev_ksize, prev_dx): - libfunc = lib.FluidSimulation_upscale_on_initialization - pb.init_lib_func(libfunc, [c_void_p, c_int, c_int, c_int, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), prev_isize, prev_jsize, prev_ksize, prev_dx]) - - def initialize(self): - if self.is_initialized(): - return - libfunc = lib.FluidSimulation_initialize - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def is_initialized(self): - libfunc = lib.FluidSimulation_is_initialized - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - - @_check_simulation_initialized - def update(self, dt): - libfunc = lib.FluidSimulation_update - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), dt]) - - def get_current_frame(self): - libfunc = lib.FluidSimulation_get_current_frame - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def set_current_frame(self, frameno): - libfunc = lib.FluidSimulation_set_current_frame - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - return pb.execute_lib_func(libfunc, [self(), frameno]) - - def is_current_frame_finished(self): - libfunc = lib.FluidSimulation_is_current_frame_finished - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - def get_cell_size(self): - libfunc = lib.FluidSimulation_get_cell_size - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - def get_grid_dimensions(self): - libfunc = lib.FluidSimulation_get_grid_dimensions - pb.init_lib_func(libfunc, - [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p], None) - isize = c_int() - jsize = c_int() - ksize = c_int() - success = c_int() - libfunc(self(), byref(isize), byref(jsize), byref(ksize), byref(success)) - pb.check_success(success, libfunc.__name__ + " - ") - - return GridIndex(isize.value, jsize.value, ksize.value) - - def get_grid_width(self): - libfunc = lib.FluidSimulation_get_grid_width - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def get_grid_height(self): - libfunc = lib.FluidSimulation_get_grid_height - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def get_grid_depth(self): - libfunc = lib.FluidSimulation_get_grid_depth - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def get_simulation_dimensions(self): - libfunc = lib.FluidSimulation_get_simulation_dimensions - pb.init_lib_func(libfunc, - [c_void_p, c_void_p, c_void_p, c_void_p, c_void_p], - None) - width = c_double() - height = c_double() - depth = c_double() - success = c_int() - libfunc(self(), byref(width), byref(height), byref(depth), byref(success)) - pb.check_success(success, libfunc.__name__ + " - ") - - return Vector3(width.value, height.value, depth.value) - - def get_simulation_width(self): - libfunc = lib.FluidSimulation_get_simulation_width - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - def get_simulation_height(self): - libfunc = lib.FluidSimulation_get_simulation_height - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - def get_simulation_depth(self): - libfunc = lib.FluidSimulation_get_simulation_depth - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @property - def density(self): - libfunc = lib.FluidSimulation_get_density - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @density.setter - @decorators.check_gt_zero - def density(self, value): - libfunc = lib.FluidSimulation_set_density - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def marker_particle_scale(self): - libfunc = lib.FluidSimulation_get_marker_particle_scale - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @marker_particle_scale.setter - @decorators.check_ge_zero - def marker_particle_scale(self, scale): - libfunc = lib.FluidSimulation_set_marker_particle_scale - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), scale]) - - @property - def marker_particle_jitter_factor(self): - libfunc = lib.FluidSimulation_get_marker_particle_jitter_factor - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @marker_particle_jitter_factor.setter - @decorators.check_ge_zero - def marker_particle_jitter_factor(self, jitter): - libfunc = lib.FluidSimulation_set_marker_particle_jitter_factor - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), jitter]) - - @property - def jitter_surface_marker_particles(self): - libfunc = lib.FluidSimulation_is_jitter_surface_marker_particles_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @jitter_surface_marker_particles.setter - def jitter_surface_marker_particles(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_jitter_surface_marker_particles - else: - libfunc = lib.FluidSimulation_disable_jitter_surface_marker_particles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def surface_subdivision_level(self): - libfunc = lib.FluidSimulation_get_surface_subdivision_level - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @surface_subdivision_level.setter - @decorators.check_ge(1) - def surface_subdivision_level(self, level): - libfunc = lib.FluidSimulation_set_surface_subdivision_level - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(level)]) - - @property - def num_polygonizer_slices(self): - libfunc = lib.FluidSimulation_get_num_polygonizer_slices - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @num_polygonizer_slices.setter - @decorators.check_ge(1) - def num_polygonizer_slices(self, slices): - libfunc = lib.FluidSimulation_set_num_polygonizer_slices - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(slices)]) - - @property - def surface_smoothing_value(self): - libfunc = lib.FluidSimulation_get_surface_smoothing_value - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @surface_smoothing_value.setter - def surface_smoothing_value(self, s): - libfunc = lib.FluidSimulation_set_surface_smoothing_value - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), s]) - - @property - def surface_smoothing_iterations(self): - libfunc = lib.FluidSimulation_get_surface_smoothing_iterations - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @surface_smoothing_iterations.setter - @decorators.check_ge(0) - def surface_smoothing_iterations(self, n): - libfunc = lib.FluidSimulation_set_surface_smoothing_iterations - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - def set_meshing_volume(self, mesh_object): - libfunc = lib.FluidSimulation_set_meshing_volume - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_object()]) - - @property - def min_polyhedron_triangle_count(self): - libfunc = lib.FluidSimulation_get_min_polyhedron_triangle_count - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @min_polyhedron_triangle_count.setter - @decorators.check_ge_zero - def min_polyhedron_triangle_count(self, count): - libfunc = lib.FluidSimulation_set_min_polyhedron_triangle_count - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(count)]) - - def get_domain_offset(self): - libfunc = lib.FluidSimulation_get_domain_offset - pb.init_lib_func(libfunc, [c_void_p, c_void_p], Vector3_t) - cvect = pb.execute_lib_func(libfunc, [self()]) - return Vector3.from_struct(cvect) - - @decorators.xyz_or_vector - def set_domain_offset(self, x, y, z): - libfunc = lib.FluidSimulation_set_domain_offset - pb.init_lib_func( - libfunc, - [c_void_p, c_double, c_double, c_double, c_void_p], None - ) - pb.execute_lib_func(libfunc, [self(), x, y, z]) - - def get_domain_scale(self): - libfunc = lib.FluidSimulation_get_domain_scale - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - def set_domain_scale(self, scale): - libfunc = lib.FluidSimulation_set_domain_scale - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), scale]) - - def set_mesh_output_format_as_ply(self): - libfunc = lib.FluidSimulation_set_mesh_output_format_as_ply - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def set_mesh_output_format_as_bobj(self): - libfunc = lib.FluidSimulation_set_mesh_output_format_as_bobj - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_console_output(self): - libfunc = lib.FluidSimulation_is_console_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_console_output.setter - def enable_console_output(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_console_output - else: - libfunc = lib.FluidSimulation_disable_console_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_surface_reconstruction(self): - libfunc = lib.FluidSimulation_is_surface_reconstruction_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_surface_reconstruction.setter - def enable_surface_reconstruction(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_surface_reconstruction - else: - libfunc = lib.FluidSimulation_disable_surface_reconstruction - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_asynchronous_meshing(self): - libfunc = lib.FluidSimulation_is_asynchronous_meshing_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_asynchronous_meshing.setter - def enable_asynchronous_meshing(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_asynchronous_meshing - else: - libfunc = lib.FluidSimulation_disable_asynchronous_meshing - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_preview_mesh_output(self): - libfunc = lib.FluidSimulation_is_preview_mesh_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_preview_mesh_output.setter - @decorators.check_ge_zero - def enable_preview_mesh_output(self, cellsize): - if cellsize: - libfunc = lib.FluidSimulation_enable_preview_mesh_output - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), cellsize]) - else: - libfunc = lib.FluidSimulation_disable_preview_mesh_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_obstacle_meshing_offset(self): - libfunc = lib.FluidSimulation_is_obstacle_meshing_offset_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_obstacle_meshing_offset.setter - def enable_obstacle_meshing_offset(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_obstacle_meshing_offset - else: - libfunc = lib.FluidSimulation_disable_obstacle_meshing_offset - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def obstacle_meshing_offset(self): - libfunc = lib.FluidSimulation_get_obstacle_meshing_offset - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @obstacle_meshing_offset.setter - def obstacle_meshing_offset(self, offset): - libfunc = lib.FluidSimulation_set_obstacle_meshing_offset - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), offset]) - - @property - def enable_inverted_contact_normals(self): - libfunc = lib.FluidSimulation_is_inverted_contact_normals_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_inverted_contact_normals.setter - def enable_inverted_contact_normals(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_inverted_contact_normals - else: - libfunc = lib.FluidSimulation_disable_inverted_contact_normals - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_surface_motion_blur(self): - libfunc = lib.FluidSimulation_is_surface_motion_blur_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_surface_motion_blur.setter - def enable_surface_motion_blur(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_surface_motion_blur - else: - libfunc = lib.FluidSimulation_disable_surface_motion_blur - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_whitewater_motion_blur(self): - libfunc = lib.FluidSimulation_is_whitewater_motion_blur_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_whitewater_motion_blur.setter - def enable_whitewater_motion_blur(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_whitewater_motion_blur - else: - libfunc = lib.FluidSimulation_disable_whitewater_motion_blur - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_remove_surface_near_domain(self): - libfunc = lib.FluidSimulation_is_remove_surface_near_domain_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_remove_surface_near_domain.setter - def enable_remove_surface_near_domain(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_remove_surface_near_domain - else: - libfunc = lib.FluidSimulation_disable_remove_surface_near_domain - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def remove_surface_near_domain_distance(self): - libfunc = lib.FluidSimulation_get_remove_surface_near_domain_distance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @remove_surface_near_domain_distance.setter - @decorators.check_ge(0) - def remove_surface_near_domain_distance(self, n): - libfunc = lib.FluidSimulation_set_remove_surface_near_domain_distance - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @property - def enable_fluid_particle_output(self): - libfunc = lib.FluidSimulation_is_fluid_particle_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_fluid_particle_output.setter - def enable_fluid_particle_output(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_fluid_particle_output - else: - libfunc = lib.FluidSimulation_disable_fluid_particle_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - - @property - def enable_internal_obstacle_mesh_output(self): - libfunc = lib.FluidSimulation_is_internal_obstacle_mesh_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_internal_obstacle_mesh_output.setter - def enable_internal_obstacle_mesh_output(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_internal_obstacle_mesh_output - else: - libfunc = lib.FluidSimulation_disable_internal_obstacle_mesh_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_force_field_debug_output(self): - libfunc = lib.FluidSimulation_is_force_field_debug_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_force_field_debug_output.setter - def enable_force_field_debug_output(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_force_field_debug_output - else: - libfunc = lib.FluidSimulation_disable_force_field_debug_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_material_output(self): - libfunc = lib.FluidSimulation_is_diffuse_material_output_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_material_output.setter - def enable_diffuse_material_output(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_material_output - else: - libfunc = lib.FluidSimulation_disable_diffuse_material_output - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_particle_emission(self): - libfunc = lib.FluidSimulation_is_diffuse_particle_emission_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_particle_emission.setter - def enable_diffuse_particle_emission(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_particle_emission - else: - libfunc = lib.FluidSimulation_disable_diffuse_particle_emission - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_foam(self): - libfunc = lib.FluidSimulation_is_diffuse_foam_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_foam.setter - def enable_diffuse_foam(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_foam - else: - libfunc = lib.FluidSimulation_disable_diffuse_foam - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_bubbles(self): - libfunc = lib.FluidSimulation_is_diffuse_bubbles_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_bubbles.setter - def enable_diffuse_bubbles(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_bubbles - else: - libfunc = lib.FluidSimulation_disable_diffuse_bubbles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_spray(self): - libfunc = lib.FluidSimulation_is_diffuse_spray_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_spray.setter - def enable_diffuse_spray(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_spray - else: - libfunc = lib.FluidSimulation_disable_diffuse_spray - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_diffuse_dust(self): - libfunc = lib.FluidSimulation_is_diffuse_dust_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_dust.setter - def enable_diffuse_dust(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_dust - else: - libfunc = lib.FluidSimulation_disable_diffuse_dust - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_boundary_diffuse_dust_emission(self): - libfunc = lib.FluidSimulation_is_boundary_diffuse_dust_emission_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_boundary_diffuse_dust_emission.setter - def enable_boundary_diffuse_dust_emission(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_boundary_diffuse_dust_emission - else: - libfunc = lib.FluidSimulation_disable_boundary_diffuse_dust_emission - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_bubble_diffuse_material(self): - libfunc = lib.FluidSimulation_is_bubble_diffuse_material_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_bubble_diffuse_material.setter - def enable_bubble_diffuse_material(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_bubble_diffuse_material - else: - libfunc = lib.FluidSimulation_disable_bubble_diffuse_material - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_spray_diffuse_material(self): - libfunc = lib.FluidSimulation_is_spray_diffuse_material_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_spray_diffuse_material.setter - def enable_spray_diffuse_material(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_spray_diffuse_material - else: - libfunc = lib.FluidSimulation_disable_spray_diffuse_material - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_foam_diffuse_material(self): - libfunc = lib.FluidSimulation_is_foam_diffuse_material_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_foam_diffuse_material.setter - def enable_foam_diffuse_material(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_foam_diffuse_particles - else: - libfunc = lib.FluidSimulation_disable_foam_diffuse_material - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def output_diffuse_material_as_separate_files(self): - libfunc = lib.FluidSimulation_is_diffuse_material_output_as_separate_files - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @output_diffuse_material_as_separate_files.setter - def output_diffuse_material_as_separate_files(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_output_diffuse_material_as_separate_files - else: - libfunc = lib.FluidSimulation_output_diffuse_material_as_single_file - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def diffuse_emitter_generation_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_emitter_generation_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_emitter_generation_rate.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def diffuse_emitter_generation_rate(self, rate): - libfunc = lib.FluidSimulation_set_diffuse_emitter_generation_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), rate]) - - @property - def min_diffuse_emitter_energy(self): - libfunc = lib.FluidSimulation_get_min_diffuse_emitter_energy - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @min_diffuse_emitter_energy.setter - @decorators.check_ge_zero - def min_diffuse_emitter_energy(self, e): - libfunc = lib.FluidSimulation_set_min_diffuse_emitter_energy - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), e]) - - @property - def max_diffuse_emitter_energy(self): - libfunc = lib.FluidSimulation_get_max_diffuse_emitter_energy - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @max_diffuse_emitter_energy.setter - @decorators.check_ge_zero - def max_diffuse_emitter_energy(self, e): - libfunc = lib.FluidSimulation_set_max_diffuse_emitter_energy - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), e]) - - @property - def min_diffuse_wavecrest_curvature(self): - libfunc = lib.FluidSimulation_get_min_diffuse_wavecrest_curvature - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @min_diffuse_wavecrest_curvature.setter - def min_diffuse_wavecrest_curvature(self, k): - libfunc = lib.FluidSimulation_set_min_diffuse_wavecrest_curvature - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), k]) - - @property - def max_diffuse_wavecrest_curvature(self): - libfunc = lib.FluidSimulation_get_max_diffuse_wavecrest_curvature - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @max_diffuse_wavecrest_curvature.setter - def max_diffuse_wavecrest_curvature(self, k): - libfunc = lib.FluidSimulation_set_max_diffuse_wavecrest_curvature - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), k]) - - @property - def min_diffuse_turbulence(self): - libfunc = lib.FluidSimulation_get_min_diffuse_turbulence - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @min_diffuse_turbulence.setter - @decorators.check_ge_zero - def min_diffuse_turbulence(self, t): - libfunc = lib.FluidSimulation_set_min_diffuse_turbulence - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), t]) - - @property - def max_diffuse_turbulence(self): - libfunc = lib.FluidSimulation_get_max_diffuse_turbulence - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @max_diffuse_turbulence.setter - @decorators.check_ge_zero - def max_diffuse_turbulence(self, t): - libfunc = lib.FluidSimulation_set_max_diffuse_turbulence - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), t]) - - @property - def max_num_diffuse_particles(self): - libfunc = lib.FluidSimulation_get_max_num_diffuse_particles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @max_num_diffuse_particles.setter - def max_num_diffuse_particles(self, num): - libfunc = lib.FluidSimulation_set_max_num_diffuse_particles - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(num)]) - - @property - def diffuse_emitter_generation_bounds(self): - libfunc = lib.FluidSimulation_get_diffuse_emitter_generation_bounds - pb.init_lib_func(libfunc, [c_void_p, c_void_p], AABB_t) - return AABB.from_struct(pb.execute_lib_func(libfunc, [self()])) - - @diffuse_emitter_generation_bounds.setter - def diffuse_emitter_generation_bounds(self, bounds): - libfunc = lib.FluidSimulation_set_diffuse_emitter_generation_bounds - pb.init_lib_func(libfunc, [c_void_p, AABB_t, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), bounds.to_struct()]) - - @property - def min_diffuse_particle_lifetime(self): - libfunc = lib.FluidSimulation_get_min_diffuse_particle_lifetime - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @min_diffuse_particle_lifetime.setter - @decorators.check_ge_zero - def min_diffuse_particle_lifetime(self, lifetime): - libfunc = lib.FluidSimulation_set_min_diffuse_particle_lifetime - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), lifetime]) - - @property - def max_diffuse_particle_lifetime(self): - libfunc = lib.FluidSimulation_get_max_diffuse_particle_lifetime - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @max_diffuse_particle_lifetime.setter - @decorators.check_ge_zero - def max_diffuse_particle_lifetime(self, lifetime): - libfunc = lib.FluidSimulation_set_max_diffuse_particle_lifetime - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), lifetime]) - - @property - def diffuse_particle_lifetime_variance(self): - libfunc = lib.FluidSimulation_get_diffuse_particle_lifetime_variance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_particle_lifetime_variance.setter - @decorators.check_ge_zero - def diffuse_particle_lifetime_variance(self, variance): - libfunc = lib.FluidSimulation_set_diffuse_particle_lifetime_variance - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), variance]) - - @property - def foam_particle_lifetime_modifier(self): - libfunc = lib.FluidSimulation_get_foam_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @foam_particle_lifetime_modifier.setter - @decorators.check_ge_zero - def foam_particle_lifetime_modifier(self, modifier): - libfunc = lib.FluidSimulation_set_foam_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), modifier]) - - @property - def bubble_particle_lifetime_modifier(self): - libfunc = lib.FluidSimulation_get_bubble_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @bubble_particle_lifetime_modifier.setter - @decorators.check_ge_zero - def bubble_particle_lifetime_modifier(self, modifier): - libfunc = lib.FluidSimulation_set_bubble_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), modifier]) - - @property - def spray_particle_lifetime_modifier(self): - libfunc = lib.FluidSimulation_get_spray_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @spray_particle_lifetime_modifier.setter - @decorators.check_ge_zero - def spray_particle_lifetime_modifier(self, modifier): - libfunc = lib.FluidSimulation_set_spray_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), modifier]) - - @property - def dust_particle_lifetime_modifier(self): - libfunc = lib.FluidSimulation_get_dust_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @dust_particle_lifetime_modifier.setter - @decorators.check_ge_zero - def dust_particle_lifetime_modifier(self, modifier): - libfunc = lib.FluidSimulation_set_dust_particle_lifetime_modifier - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), modifier]) - - @property - def diffuse_particle_wavecrest_emission_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_particle_wavecrest_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_particle_wavecrest_emission_rate.setter - @decorators.check_ge_zero - def diffuse_particle_wavecrest_emission_rate(self, rate): - libfunc = lib.FluidSimulation_set_diffuse_particle_wavecrest_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), rate]) - - @property - def diffuse_particle_turbulence_emission_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_particle_turbulence_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_particle_turbulence_emission_rate.setter - @decorators.check_ge_zero - def diffuse_particle_turbulence_emission_rate(self, rate): - libfunc = lib.FluidSimulation_set_diffuse_particle_turbulence_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), rate]) - - @property - def diffuse_particle_dust_emission_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_particle_dust_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_particle_dust_emission_rate.setter - @decorators.check_ge_zero - def diffuse_particle_dust_emission_rate(self, rate): - libfunc = lib.FluidSimulation_set_diffuse_particle_dust_emission_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), rate]) - - @property - def diffuse_foam_advection_strength(self): - libfunc = lib.FluidSimulation_get_diffuse_foam_advection_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_foam_advection_strength.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def diffuse_foam_advection_strength(self, s): - libfunc = lib.FluidSimulation_set_diffuse_foam_advection_strength - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), s]) - - @property - def diffuse_foam_layer_depth(self): - libfunc = lib.FluidSimulation_get_diffuse_foam_layer_depth - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_foam_layer_depth.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def diffuse_foam_layer_depth(self, depth): - libfunc = lib.FluidSimulation_set_diffuse_foam_layer_depth - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), depth]) - - @property - def diffuse_foam_layer_offset(self): - libfunc = lib.FluidSimulation_get_diffuse_foam_layer_offset - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_foam_layer_offset.setter - @decorators.check_ge(-1.0) - @decorators.check_le(1.0) - def diffuse_foam_layer_offset(self, offset): - libfunc = lib.FluidSimulation_set_diffuse_foam_layer_offset - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), offset]) - - @property - def enable_diffuse_preserve_foam(self): - libfunc = lib.FluidSimulation_is_diffuse_preserve_foam_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_diffuse_preserve_foam.setter - def enable_diffuse_preserve_foam(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_diffuse_preserve_foam - else: - libfunc = lib.FluidSimulation_disable_diffuse_preserve_foam - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def diffuse_foam_preservation_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_foam_preservation_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_foam_preservation_rate.setter - def diffuse_foam_preservation_rate(self, rate): - libfunc = lib.FluidSimulation_set_diffuse_foam_preservation_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), rate]) - - @property - def min_diffuse_foam_density(self): - libfunc = lib.FluidSimulation_get_min_diffuse_foam_density - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @min_diffuse_foam_density.setter - @decorators.check_ge_zero - def min_diffuse_foam_density(self, t): - libfunc = lib.FluidSimulation_set_min_diffuse_foam_density - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), t]) - - @property - def max_diffuse_foam_density(self): - libfunc = lib.FluidSimulation_get_max_diffuse_foam_density - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @max_diffuse_foam_density.setter - @decorators.check_ge_zero - def max_diffuse_foam_density(self, t): - libfunc = lib.FluidSimulation_set_max_diffuse_foam_density - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), t]) - - @property - def diffuse_bubble_drag_coefficient(self): - libfunc = lib.FluidSimulation_get_diffuse_bubble_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_bubble_drag_coefficient.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def diffuse_bubble_drag_coefficient(self, d): - libfunc = lib.FluidSimulation_set_diffuse_bubble_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), d]) - - @property - def diffuse_bubble_bouyancy_coefficient(self): - libfunc = lib.FluidSimulation_get_diffuse_bubble_bouyancy_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_bubble_bouyancy_coefficient.setter - def diffuse_bubble_bouyancy_coefficient(self, b): - libfunc = lib.FluidSimulation_set_diffuse_bubble_bouyancy_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), b]) - - @property - def diffuse_dust_drag_coefficient(self): - libfunc = lib.FluidSimulation_get_diffuse_dust_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_dust_drag_coefficient.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def diffuse_dust_drag_coefficient(self, d): - libfunc = lib.FluidSimulation_set_diffuse_dust_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), d]) - - @property - def diffuse_dust_bouyancy_coefficient(self): - libfunc = lib.FluidSimulation_get_diffuse_dust_bouyancy_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_dust_bouyancy_coefficient.setter - def diffuse_dust_bouyancy_coefficient(self, b): - libfunc = lib.FluidSimulation_set_diffuse_dust_bouyancy_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), b]) - - @property - def diffuse_spray_drag_coefficient(self): - libfunc = lib.FluidSimulation_get_diffuse_spray_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_spray_drag_coefficient.setter - def diffuse_spray_drag_coefficient(self, d): - libfunc = lib.FluidSimulation_set_diffuse_spray_drag_coefficient - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), d]) - - @property - def diffuse_spray_emission_speed(self): - libfunc = lib.FluidSimulation_get_diffuse_spray_emission_speed - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_spray_emission_speed.setter - @decorators.check_ge(1.0) - def diffuse_spray_emission_speed(self, d): - libfunc = lib.FluidSimulation_set_diffuse_spray_emission_speed - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), d]) - - @property - def diffuse_foam_limit_behaviour(self): - libfunc = lib.FluidSimulation_get_diffuse_foam_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_foam_limit_behaviour.setter - def diffuse_foam_limit_behaviour(self, behaviour): - libfunc = lib.FluidSimulation_set_diffuse_foam_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(behaviour)]) - - @property - def diffuse_bubble_limit_behaviour(self): - libfunc = lib.FluidSimulation_get_diffuse_bubble_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_bubble_limit_behaviour.setter - def diffuse_bubble_limit_behaviour(self, behaviour): - libfunc = lib.FluidSimulation_set_diffuse_bubble_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(behaviour)]) - - @property - def diffuse_spray_limit_behaviour(self): - libfunc = lib.FluidSimulation_get_diffuse_spray_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_spray_limit_behaviour.setter - def diffuse_spray_limit_behaviour(self, behaviour): - libfunc = lib.FluidSimulation_set_diffuse_spray_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(behaviour)]) - - @property - def diffuse_dust_limit_behaviour(self): - libfunc = lib.FluidSimulation_get_diffuse_dust_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_dust_limit_behaviour.setter - def diffuse_dust_limit_behaviour(self, behaviour): - libfunc = lib.FluidSimulation_set_diffuse_dust_limit_behaviour - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(behaviour)]) - - @property - def diffuse_foam_active_boundary_sides(self): - active = (c_int * 6)() - libfunc = lib.FluidSimulation_get_diffuse_foam_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], c_int) - pb.execute_lib_func(libfunc, [self(), active]) - - result = [] - for v in active: - result.append(bool(v)) - - return result - - @diffuse_foam_active_boundary_sides.setter - def diffuse_foam_active_boundary_sides(self, active): - c_active = (c_int * 6)() - for i in range(6): - c_active[i] = int(active[i]) - - libfunc = lib.FluidSimulation_set_diffuse_foam_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_active]) - - @property - def diffuse_bubble_active_boundary_sides(self): - active = (c_int * 6)() - libfunc = lib.FluidSimulation_get_diffuse_bubble_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], c_int) - pb.execute_lib_func(libfunc, [self(), active]) - - result = [] - for v in active: - result.append(bool(v)) - - return result - - @diffuse_bubble_active_boundary_sides.setter - def diffuse_bubble_active_boundary_sides(self, active): - c_active = (c_int * 6)() - for i in range(6): - c_active[i] = int(active[i]) - - libfunc = lib.FluidSimulation_set_diffuse_bubble_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_active]) - - @property - def diffuse_spray_active_boundary_sides(self): - active = (c_int * 6)() - libfunc = lib.FluidSimulation_get_diffuse_spray_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], c_int) - pb.execute_lib_func(libfunc, [self(), active]) - - result = [] - for v in active: - result.append(bool(v)) - - return result - - @diffuse_spray_active_boundary_sides.setter - def diffuse_spray_active_boundary_sides(self, active): - c_active = (c_int * 6)() - for i in range(6): - c_active[i] = int(active[i]) - - libfunc = lib.FluidSimulation_set_diffuse_spray_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_active]) - - @property - def diffuse_dust_active_boundary_sides(self): - active = (c_int * 6)() - libfunc = lib.FluidSimulation_get_diffuse_dust_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], c_int) - pb.execute_lib_func(libfunc, [self(), active]) - - result = [] - for v in active: - result.append(bool(v)) - - return result - - @diffuse_dust_active_boundary_sides.setter - def diffuse_dust_active_boundary_sides(self, active): - c_active = (c_int * 6)() - for i in range(6): - c_active[i] = int(active[i]) - - libfunc = lib.FluidSimulation_set_diffuse_dust_active_boundary_sides - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_active]) - - @property - def diffuse_obstacle_influence_base_level(self): - libfunc = lib.FluidSimulation_get_diffuse_obstacle_influence_base_level - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_obstacle_influence_base_level.setter - @decorators.check_ge_zero - def diffuse_obstacle_influence_base_level(self, b): - libfunc = lib.FluidSimulation_set_diffuse_obstacle_influence_base_level - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), b]) - - @property - def diffuse_obstacle_influence_decay_rate(self): - libfunc = lib.FluidSimulation_get_diffuse_obstacle_influence_decay_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @diffuse_obstacle_influence_decay_rate.setter - @decorators.check_ge_zero - def diffuse_obstacle_influence_decay_rate(self, d): - libfunc = lib.FluidSimulation_set_diffuse_obstacle_influence_decay_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), d]) - - @property - def enable_opencl_particle_advection(self): - libfunc = lib.FluidSimulation_is_opencl_particle_advection_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_opencl_particle_advection.setter - def enable_opencl_particle_advection(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_opencl_particle_advection - else: - libfunc = lib.FluidSimulation_disable_opencl_particle_advection - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_opencl_scalar_field(self): - libfunc = lib.FluidSimulation_is_opencl_scalar_field_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_opencl_scalar_field.setter - def enable_opencl_scalar_field(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_opencl_scalar_field - else: - libfunc = lib.FluidSimulation_disable_opencl_scalar_field - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def particle_advection_kernel_workload_size(self): - libfunc = lib.FluidSimulation_get_particle_advection_kernel_workload_size - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @particle_advection_kernel_workload_size.setter - @decorators.check_ge(1) - def particle_advection_kernel_workload_size(self, size): - libfunc = lib.FluidSimulation_set_particle_advection_kernel_workload_size - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(size)]) - - @property - def scalar_field_kernel_workload_size(self): - libfunc = lib.FluidSimulation_get_scalar_field_kernel_workload_size - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @scalar_field_kernel_workload_size.setter - @decorators.check_ge(1) - def scalar_field_kernel_workload_size(self, size): - libfunc = lib.FluidSimulation_set_scalar_field_kernel_workload_size - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(size)]) - - @property - def max_thread_count(self): - libfunc = lib.FluidSimulation_get_max_thread_count - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @max_thread_count.setter - @decorators.check_ge(1) - def max_thread_count(self, n): - libfunc = lib.FluidSimulation_set_max_thread_count - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @decorators.xyz_or_vector - def add_body_force(self, fx, fy, fz): - libfunc = lib.FluidSimulation_add_body_force - pb.init_lib_func( - libfunc, - [c_void_p, c_double, c_double, c_double, c_void_p], None - ) - pb.execute_lib_func(libfunc, [self(), fx, fy, fz]) - - def get_constant_body_force(self): - libfunc = lib.FluidSimulation_get_constant_body_force - pb.init_lib_func(libfunc, [c_void_p, c_void_p], Vector3_t) - cvect = pb.execute_lib_func(libfunc, [self()]) - return Vector3.from_struct(cvect) - - def reset_body_force(self): - libfunc = lib.FluidSimulation_reset_body_force - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_force_fields(self): - libfunc = lib.FluidSimulation_is_force_fields_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_force_fields.setter - def enable_force_fields(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_force_fields - else: - libfunc = lib.FluidSimulation_disable_force_fields - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def force_field_reduction_level(self): - libfunc = lib.FluidSimulation_get_force_field_reduction_level - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @force_field_reduction_level.setter - @decorators.check_gt_zero - def force_field_reduction_level(self, level): - libfunc = lib.FluidSimulation_set_force_field_reduction_level - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(level)]) - - def get_force_field_grid(self): - libfunc = lib.FluidSimulation_get_force_field_grid - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_void_p) - pointer = pb.execute_lib_func(libfunc, [self()]) - return ForceFieldGrid(pointer) - - @property - def viscosity(self): - libfunc = lib.FluidSimulation_get_viscosity - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @viscosity.setter - @decorators.check_ge_zero - def viscosity(self, value): - libfunc = lib.FluidSimulation_set_viscosity - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def surface_tension(self): - libfunc = lib.FluidSimulation_get_surface_tension - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @surface_tension.setter - @decorators.check_ge_zero - def surface_tension(self, value): - libfunc = lib.FluidSimulation_set_surface_tension - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_sheet_seeding(self): - libfunc = lib.FluidSimulation_is_sheet_seeding_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_sheet_seeding.setter - def enable_sheet_seeding(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_sheet_seeding - else: - libfunc = lib.FluidSimulation_disable_sheet_seeding - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def sheet_fill_threshold(self): - libfunc = lib.FluidSimulation_get_sheet_fill_threshold - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @sheet_fill_threshold.setter - @decorators.check_ge(-1.0) - @decorators.check_le(0.0) - def sheet_fill_threshold(self, t): - libfunc = lib.FluidSimulation_set_sheet_fill_threshold - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), t]) - - @property - def sheet_fill_rate(self): - libfunc = lib.FluidSimulation_get_sheet_fill_rate - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @sheet_fill_rate.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def sheet_fill_rate(self, r): - libfunc = lib.FluidSimulation_set_sheet_fill_rate - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), r]) - - @property - def boundary_friction(self): - libfunc = lib.FluidSimulation_get_boundary_friction - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @boundary_friction.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def boundary_friction(self, s): - libfunc = lib.FluidSimulation_set_boundary_friction - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), s]) - - @property - def CFL_condition_number(self): - libfunc = lib.FluidSimulation_get_CFL_condition_number - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @CFL_condition_number.setter - @decorators.check_ge(1) - def CFL_condition_number(self, n): - libfunc = lib.FluidSimulation_set_CFL_condition_number - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @property - def surface_tension_condition_number(self): - libfunc = lib.FluidSimulation_get_surface_tension_condition_number - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @surface_tension_condition_number.setter - @decorators.check_gt(0.0) - def surface_tension_condition_number(self, n): - libfunc = lib.FluidSimulation_set_surface_tension_condition_number - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), n]) - - @property - def min_time_steps_per_frame(self): - libfunc = lib.FluidSimulation_get_min_time_steps_per_frame - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @min_time_steps_per_frame.setter - @decorators.check_ge(1) - def min_time_steps_per_frame(self, n): - libfunc = lib.FluidSimulation_set_min_time_steps_per_frame - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @property - def max_time_steps_per_frame(self): - libfunc = lib.FluidSimulation_get_max_time_steps_per_frame - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_adaptive_obstacle_time_stepping(self): - libfunc = lib.FluidSimulation_is_adaptive_obstacle_time_stepping_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_adaptive_obstacle_time_stepping.setter - def enable_adaptive_obstacle_time_stepping(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_adaptive_obstacle_time_stepping - else: - libfunc = lib.FluidSimulation_disable_adaptive_obstacle_time_stepping - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_adaptive_force_field_time_stepping(self): - libfunc = lib.FluidSimulation_is_adaptive_force_field_time_stepping_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_adaptive_force_field_time_stepping.setter - def enable_adaptive_force_field_time_stepping(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_adaptive_force_field_time_stepping - else: - libfunc = lib.FluidSimulation_disable_adaptive_force_field_time_stepping - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @max_time_steps_per_frame.setter - @decorators.check_ge(1) - def max_time_steps_per_frame(self, n): - libfunc = lib.FluidSimulation_set_max_time_steps_per_frame - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @property - def enable_extreme_velocity_removal(self): - libfunc = lib.FluidSimulation_is_extreme_velocity_removal_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_extreme_velocity_removal.setter - def enable_extreme_velocity_removal(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_extreme_velocity_removal - else: - libfunc = lib.FluidSimulation_disable_extreme_velocity_removal - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def PICFLIP_ratio(self): - libfunc = lib.FluidSimulation_get_PICFLIP_ratio - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_double) - return pb.execute_lib_func(libfunc, [self()]) - - @PICFLIP_ratio.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def PICFLIP_ratio(self, ratio): - libfunc = lib.FluidSimulation_set_PICFLIP_ratio - pb.init_lib_func(libfunc, [c_void_p, c_double, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), ratio]) - - @property - def preferred_gpu_device(self): - c_str = ctypes.create_string_buffer(4096) - libfunc = lib.FluidSimulation_get_preferred_gpu_device - pb.init_lib_func(libfunc, [c_void_p, c_char_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_str]) - return c_str.value.decode("utf-8") - - @preferred_gpu_device.setter - def preferred_gpu_device(self, device_name): - c_device_name = ctypes.create_string_buffer(bytes(device_name, 'utf-8'), 4096) - libfunc = lib.FluidSimulation_set_preferred_gpu_device - pb.init_lib_func(libfunc, [c_void_p, c_char_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_device_name]) - - @property - def enable_static_solid_levelset_precomputation(self): - libfunc = lib.FluidSimulation_is_static_solid_levelset_precomputation_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_static_solid_levelset_precomputation.setter - def enable_static_solid_levelset_precomputation(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_static_solid_levelset_precomputation - else: - libfunc = lib.FluidSimulation_disable_static_solid_levelset_precomputation - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def enable_temporary_mesh_levelset(self): - libfunc = lib.FluidSimulation_is_temporary_mesh_levelset_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_temporary_mesh_levelset.setter - def enable_temporary_mesh_levelset(self, boolval): - if boolval: - libfunc = lib.FluidSimulation_enable_temporary_mesh_levelset - else: - libfunc = lib.FluidSimulation_disable_temporary_mesh_levelset - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def add_mesh_fluid_source(self, mesh_fluid_source): - libfunc = lib.FluidSimulation_add_mesh_fluid_source - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_fluid_source()]) - - def remove_mesh_fluid_source(self, mesh_fluid_source): - libfunc = lib.FluidSimulation_remove_mesh_fluid_source - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_fluid_source()]) - - def remove_mesh_fluid_sources(self): - libfunc = lib.FluidSimulation_remove_mesh_fluid_sources - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def add_mesh_obstacle(self, mesh_object): - libfunc = lib.FluidSimulation_add_mesh_obstacle - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_object()]) - - def remove_mesh_obstacle(self, mesh_object): - libfunc = lib.FluidSimulation_remove_mesh_obstacle - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_object()]) - - def remove_mesh_obstacles(self): - libfunc = lib.FluidSimulation_remove_mesh_obstacles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def add_mesh_fluid(self, mesh_object, vx = 0.0, vy = 0.0, vz = 0.0): - velocity = Vector3_t(vx, vy, vz) - libfunc = lib.FluidSimulation_add_mesh_fluid - pb.init_lib_func(libfunc, [c_void_p, c_void_p, Vector3_t, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), mesh_object(), velocity]) - - def get_num_marker_particles(self): - libfunc = lib.FluidSimulation_get_num_marker_particles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def get_marker_particles(self, startidx = None, endidx = None): - nparticles = self.get_num_marker_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (MarkerParticle_t * n)() - - libfunc = lib.FluidSimulation_get_marker_particles - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_marker_particle_positions(self, startidx = None, endidx = None): - nparticles = self.get_num_marker_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (Vector3_t * n)() - - libfunc = lib.FluidSimulation_get_marker_particle_positions - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_marker_particle_velocities(self, startidx = None, endidx = None): - nparticles = self.get_num_marker_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (Vector3_t * n)() - - libfunc = lib.FluidSimulation_get_marker_particle_velocities - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_num_diffuse_particles(self): - libfunc = lib.FluidSimulation_get_num_diffuse_particles - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - def get_diffuse_particles(self, startidx = None, endidx = None): - nparticles = self.get_num_diffuse_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (DiffuseParticle_t * n)() - - libfunc = lib.FluidSimulation_get_diffuse_particles - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_diffuse_particle_positions(self, startidx = None, endidx = None): - nparticles = self.get_num_diffuse_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (Vector3_t * n)() - - libfunc = lib.FluidSimulation_get_diffuse_particle_positions - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_diffuse_particle_velocities(self, startidx = None, endidx = None): - nparticles = self.get_num_diffuse_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (Vector3_t * n)() - - libfunc = lib.FluidSimulation_get_diffuse_particle_velocities - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - return out - - def get_diffuse_particle_lifetimes(self, startidx = None, endidx = None): - nparticles = self.get_num_diffuse_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (c_float * n)() - - libfunc = lib.FluidSimulation_get_diffuse_particle_lifetimes - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - floats = [] - for f in out: - floats.append(float(f)) - - return floats - - def get_diffuse_particle_types(self, startidx = None, endidx = None): - nparticles = self.get_num_diffuse_particles() - startidx, endidx = self._check_range(startidx, endidx, 0, nparticles) - n = endidx - startidx - out = (c_char * n)() - - libfunc = lib.FluidSimulation_get_diffuse_particle_types - pb.init_lib_func(libfunc, - [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), startidx, endidx, out]) - - types = [] - for t in out: - types.append(ord(t)) - - return types - - def get_surface_data(self): - return self._get_output_data(lib.FluidSimulation_get_surface_data_size, - lib.FluidSimulation_get_surface_data) - - def get_surface_preview_data(self): - return self._get_output_data(lib.FluidSimulation_get_surface_preview_data_size, - lib.FluidSimulation_get_surface_preview_data) - - def get_surface_blur_data(self): - return self._get_output_data(lib.FluidSimulation_get_surface_blur_data_size, - lib.FluidSimulation_get_surface_blur_data) - - def get_diffuse_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_data_size, - lib.FluidSimulation_get_diffuse_data) - - def get_diffuse_foam_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_foam_data_size, - lib.FluidSimulation_get_diffuse_foam_data) - - def get_diffuse_bubble_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_bubble_data_size, - lib.FluidSimulation_get_diffuse_bubble_data) - - def get_diffuse_spray_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_spray_data_size, - lib.FluidSimulation_get_diffuse_spray_data) - - def get_diffuse_dust_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_dust_data_size, - lib.FluidSimulation_get_diffuse_dust_data) - - def get_diffuse_foam_blur_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_foam_blur_data_size, - lib.FluidSimulation_get_diffuse_foam_blur_data) - - def get_diffuse_bubble_blur_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_bubble_blur_data_size, - lib.FluidSimulation_get_diffuse_bubble_blur_data) - - def get_diffuse_spray_blur_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_spray_blur_data_size, - lib.FluidSimulation_get_diffuse_spray_blur_data) - - def get_diffuse_dust_blur_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_dust_blur_data_size, - lib.FluidSimulation_get_diffuse_dust_blur_data) - - def get_fluid_particle_data(self): - return self._get_output_data(lib.FluidSimulation_get_fluid_particle_data_size, - lib.FluidSimulation_get_fluid_particle_data) - - def get_internal_obstacle_mesh_data(self): - return self._get_output_data(lib.FluidSimulation_get_internal_obstacle_mesh_data_size, - lib.FluidSimulation_get_internal_obstacle_mesh_data) - - def get_force_field_debug_data(self): - return self._get_output_data(lib.FluidSimulation_get_force_field_debug_data_size, - lib.FluidSimulation_get_force_field_debug_data) - - def get_logfile_data(self): - byte_str = self._get_output_data(lib.FluidSimulation_get_logfile_data_size, - lib.FluidSimulation_get_logfile_data) - return byte_str.decode("utf-8") - - def get_frame_stats_data(self): - libfunc = lib.FluidSimulation_get_frame_stats_data - pb.init_lib_func(libfunc, [c_void_p, c_void_p], FluidSimulationFrameStats_t) - stats = pb.execute_lib_func(libfunc, [self()]) - return stats - - def get_marker_particle_position_data(self): - return self._get_output_data(lib.FluidSimulation_get_marker_particle_position_data_size, - lib.FluidSimulation_get_marker_particle_position_data) - - def get_marker_particle_velocity_data(self): - return self._get_output_data(lib.FluidSimulation_get_marker_particle_velocity_data_size, - lib.FluidSimulation_get_marker_particle_velocity_data) - - def get_diffuse_particle_position_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_particle_position_data_size, - lib.FluidSimulation_get_diffuse_particle_position_data) - - def get_diffuse_particle_velocity_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_particle_velocity_data_size, - lib.FluidSimulation_get_diffuse_particle_velocity_data) - - def get_diffuse_particle_lifetime_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_particle_lifetime_data_size, - lib.FluidSimulation_get_diffuse_particle_lifetime_data) - - def get_diffuse_particle_type_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_particle_type_data_size, - lib.FluidSimulation_get_diffuse_particle_type_data) - - def get_diffuse_particle_id_data(self): - return self._get_output_data(lib.FluidSimulation_get_diffuse_particle_id_data_size, - lib.FluidSimulation_get_diffuse_particle_id_data) - - def _get_output_data(self, size_libfunc, data_libfunc): - libfunc = size_libfunc - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_uint) - data_size = pb.execute_lib_func(libfunc, [self()]) - - c_data = (c_char * data_size)() - - libfunc = data_libfunc - pb.init_lib_func(libfunc, [c_void_p, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), c_data]) - - return bytes(c_data) - - def get_marker_particle_position_data_range(self, start_idx, end_idx): - size_of_vector = 12 - return self._get_output_data_range(lib.FluidSimulation_get_marker_particle_position_data_range, - start_idx, end_idx, size_of_vector) - - def get_marker_particle_velocity_data_range(self, start_idx, end_idx): - size_of_vector = 12 - return self._get_output_data_range(lib.FluidSimulation_get_marker_particle_velocity_data_range, - start_idx, end_idx, size_of_vector) - - def get_diffuse_particle_position_data_range(self, start_idx, end_idx): - size_of_vector = 12 - return self._get_output_data_range(lib.FluidSimulation_get_diffuse_particle_position_data_range, - start_idx, end_idx, size_of_vector) - - def get_diffuse_particle_velocity_data_range(self, start_idx, end_idx): - size_of_vector = 12 - return self._get_output_data_range(lib.FluidSimulation_get_diffuse_particle_velocity_data_range, - start_idx, end_idx, size_of_vector) - - def get_diffuse_particle_lifetime_data_range(self, start_idx, end_idx): - size_of_float = 4 - return self._get_output_data_range(lib.FluidSimulation_get_diffuse_particle_lifetime_data_range, - start_idx, end_idx, size_of_float) - - def get_diffuse_particle_type_data_range(self, start_idx, end_idx): - size_of_char = 1 - return self._get_output_data_range(lib.FluidSimulation_get_diffuse_particle_type_data_range, - start_idx, end_idx, size_of_char) - - def get_diffuse_particle_id_data_range(self, start_idx, end_idx): - size_of_char = 1 - return self._get_output_data_range(lib.FluidSimulation_get_diffuse_particle_id_data_range, - start_idx, end_idx, size_of_char) - - def _get_output_data_range(self, data_libfunc, start_idx, end_idx, size_of_element): - data_size = (end_idx - start_idx) * size_of_element - c_data = (c_char * data_size)() - - libfunc = data_libfunc - pb.init_lib_func(libfunc, [c_void_p, c_int, c_int, c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), start_idx, end_idx, c_data]) - - return bytes(c_data) - - def _check_range(self, startidx, endidx, minidx, maxidx): - if startidx is None: - startidx = minidx - if endidx is None: - endidx = maxidx - - if not isinstance(startidx, int) or not isinstance(endidx, int): - raise TypeError("Index range must be integers") - if startidx < minidx: - raise IndexError("startidx out of range: " + str(startidx)) - if endidx > maxidx: - raise IndexError("endidx out of range: " + str(endidx)) - if endidx < startidx: - endidx = startidx - - return startidx, endidx - - def load_marker_particle_data(self, num_particles, position_data, velocity_data): - c_position_data = (c_char * len(position_data)).from_buffer_copy(position_data) - c_velocity_data = (c_char * len(velocity_data)).from_buffer_copy(velocity_data) - - pdata = FluidSimulationMarkerParticleData_t() - pdata.size = c_int(num_particles) - pdata.positions = ctypes.cast(c_position_data, c_char_p) - pdata.velocities = ctypes.cast(c_velocity_data, c_char_p) - - libfunc = lib.FluidSimulation_load_marker_particle_data - pb.init_lib_func(libfunc, [c_void_p, FluidSimulationMarkerParticleData_t, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), pdata]) - - def load_diffuse_particle_data(self, num_particles, position_data, velocity_data, - lifetime_data, type_data, id_data): - c_position_data = (c_char * len(position_data)).from_buffer_copy(position_data) - c_velocity_data = (c_char * len(velocity_data)).from_buffer_copy(velocity_data) - c_lifetime_data = (c_char * len(lifetime_data)).from_buffer_copy(lifetime_data) - c_type_data = (c_char * len(type_data)).from_buffer_copy(type_data) - c_id_data = (c_char * len(id_data)).from_buffer_copy(id_data) - - pdata = FluidSimulationDiffuseParticleData_t() - pdata.size = c_int(num_particles) - pdata.positions = ctypes.cast(c_position_data, c_char_p) - pdata.velocities = ctypes.cast(c_velocity_data, c_char_p) - pdata.lifetimes = ctypes.cast(c_lifetime_data, c_char_p) - pdata.types = ctypes.cast(c_type_data, c_char_p) - pdata.ids = ctypes.cast(c_id_data, c_char_p) - - libfunc = lib.FluidSimulation_load_diffuse_particle_data - pb.init_lib_func(libfunc, [c_void_p, FluidSimulationDiffuseParticleData_t, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), pdata]) - - - -class MarkerParticle_t(ctypes.Structure): - _fields_ = [("position", Vector3_t), - ("velocity", Vector3_t)] - -class DiffuseParticle_t(ctypes.Structure): - _fields_ = [("position", Vector3_t), - ("velocity", Vector3_t), - ("lifetime", c_float), - ("type", c_char)] - -class FluidSimulationMeshStats_t(ctypes.Structure): - _fields_ = [("enabled", c_int), - ("vertices", c_int), - ("triangles", c_int), - ("bytes", c_uint)] - -class FluidSimulationTimingStats_t(ctypes.Structure): - _fields_ = [("total", c_double), - ("mesh", c_double), - ("advection", c_double), - ("particles", c_double), - ("pressure", c_double), - ("diffuse", c_double), - ("viscosity", c_double), - ("objects", c_double)] - -class FluidSimulationFrameStats_t(ctypes.Structure): - _fields_ = [("frame", c_int), - ("substeps", c_int), - ("delta_time", c_double), - ("fluid_particles", c_int), - ("diffuse_particles", c_int), - ("surface", FluidSimulationMeshStats_t), - ("preview", FluidSimulationMeshStats_t), - ("surfaceblur", FluidSimulationMeshStats_t), - ("foam", FluidSimulationMeshStats_t), - ("bubble", FluidSimulationMeshStats_t), - ("spray", FluidSimulationMeshStats_t), - ("dust", FluidSimulationMeshStats_t), - ("foamblur", FluidSimulationMeshStats_t), - ("bubbleblur", FluidSimulationMeshStats_t), - ("sprayblur", FluidSimulationMeshStats_t), - ("dustblur", FluidSimulationMeshStats_t), - ("particles", FluidSimulationMeshStats_t), - ("obstacle", FluidSimulationMeshStats_t), - ("forcefield", FluidSimulationMeshStats_t), - ("timing", FluidSimulationTimingStats_t)] - -class FluidSimulationMarkerParticleData_t(ctypes.Structure): - _fields_ = [("size", c_int), - ("positions", c_char_p), - ("velocities", c_char_p)] - -class FluidSimulationDiffuseParticleData_t(ctypes.Structure): - _fields_ = [("size", c_int), - ("positions", c_char_p), - ("velocities", c_char_p), - ("lifetimes", c_char_p), - ("types", c_char_p), - ("ids", c_char_p)] \ No newline at end of file diff --git a/src/pyfluid/forcefield.py b/src/pyfluid/forcefield.py deleted file mode 100644 index acbb310..0000000 --- a/src/pyfluid/forcefield.py +++ /dev/null @@ -1,186 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from . import pybindings as pb -from . import method_decorators as decorators -from .trianglemesh import TriangleMesh_t - -class ForceField(): - __metaclass__ = ABCMeta - - @abstractmethod - def __init__(): - pass - - def __call__(self): - return self._obj - - def update_mesh_static(self, mesh): - mesh_struct = mesh.to_struct() - libfunc = lib.ForceField_update_mesh_static - args = [c_void_p, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct]) - - def update_mesh_animated(self, mesh_previous, mesh_current, mesh_next): - mesh_struct_previous = mesh_previous.to_struct() - mesh_struct_current = mesh_current.to_struct() - mesh_struct_next = mesh_next.to_struct() - libfunc = lib.ForceField_update_mesh_animated - args = [c_void_p, TriangleMesh_t, TriangleMesh_t, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct_previous, - mesh_struct_current, - mesh_struct_next]) - - @property - def enable(self): - libfunc = lib.ForceField_is_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable.setter - def enable(self, boolval): - if boolval: - libfunc = lib.ForceField_enable - else: - libfunc = lib.ForceField_disable - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def strength(self): - libfunc = lib.ForceField_get_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @strength.setter - def strength(self, value): - libfunc = lib.ForceField_set_strength - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def falloff_power(self): - libfunc = lib.ForceField_get_falloff_power - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @falloff_power.setter - def falloff_power(self, value): - libfunc = lib.ForceField_set_falloff_power - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def max_force_limit_factor(self): - libfunc = lib.ForceField_get_max_force_limit_factor - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @max_force_limit_factor.setter - def max_force_limit_factor(self, value): - libfunc = lib.ForceField_set_max_force_limit_factor - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_min_distance(self): - libfunc = lib.ForceField_is_min_distance_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_min_distance.setter - def enable_min_distance(self, boolval): - if boolval: - libfunc = lib.ForceField_enable_min_distance - else: - libfunc = lib.ForceField_disable_min_distance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def min_distance(self): - libfunc = lib.ForceField_get_min_distance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @min_distance.setter - def min_distance(self, value): - libfunc = lib.ForceField_set_min_distance - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_max_distance(self): - libfunc = lib.ForceField_is_max_distance_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_max_distance.setter - def enable_max_distance(self, boolval): - if boolval: - libfunc = lib.ForceField_enable_max_distance - else: - libfunc = lib.ForceField_disable_max_distance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def max_distance(self): - libfunc = lib.ForceField_get_max_distance - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @max_distance.setter - def max_distance(self, value): - libfunc = lib.ForceField_set_max_distance - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def gravity_scale(self): - libfunc = lib.ForceField_get_gravity_scale - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @gravity_scale.setter - def gravity_scale(self, value): - libfunc = lib.ForceField_set_gravity_scale - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def gravity_scale_width(self): - libfunc = lib.ForceField_get_gravity_scale - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @gravity_scale_width.setter - def gravity_scale_width(self, value): - libfunc = lib.ForceField_set_gravity_scale_width - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) \ No newline at end of file diff --git a/src/pyfluid/forcefieldcurve.py b/src/pyfluid/forcefieldcurve.py deleted file mode 100644 index dca5ef6..0000000 --- a/src/pyfluid/forcefieldcurve.py +++ /dev/null @@ -1,87 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from .forcefield import ForceField -from . import pybindings as pb -from . import method_decorators as decorators - -class ForceFieldCurve(ForceField): - - def __init__(self): - libfunc = lib.ForceFieldCurve_new - args = [c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - - def __del__(self): - try: - libfunc = lib.ForceFieldCurve_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass - - def __call__(self): - return self._obj - - @property - def flow_strength(self): - libfunc = lib.ForceFieldCurve_get_flow_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @flow_strength.setter - def flow_strength(self, value): - libfunc = lib.ForceFieldCurve_set_flow_strength - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def spin_strength(self): - libfunc = lib.ForceFieldCurve_get_spin_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @spin_strength.setter - def spin_strength(self, value): - libfunc = lib.ForceFieldCurve_set_spin_strength - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_endcaps(self): - libfunc = lib.ForceFieldCurve_is_endcaps_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_endcaps.setter - def enable_endcaps(self, boolval): - if boolval: - libfunc = lib.ForceFieldCurve_enable_endcaps - else: - libfunc = lib.ForceFieldCurve_disable_endcaps - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) \ No newline at end of file diff --git a/src/pyfluid/forcefieldgrid.py b/src/pyfluid/forcefieldgrid.py deleted file mode 100644 index 0d59c1f..0000000 --- a/src/pyfluid/forcefieldgrid.py +++ /dev/null @@ -1,59 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from . import pybindings as pb -from . import method_decorators as decorators - -class ForceFieldGrid(): - - def __init__(self, c_pointer=None): - if c_pointer is not None: - self._obj = c_pointer - self._is_owner = False - else: - libfunc = lib.ForceFieldGrid_new - args = [c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - self._is_owner = True - - def __del__(self): - if not self._is_owner: - return - try: - libfunc = lib.MeshObject_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass - - def __call__(self): - return self._obj - - def add_force_field(self, field): - libfunc = lib.ForceFieldGrid_add_force_field - args = [c_void_p, c_void_p, c_void_p] - pb.init_lib_func(libfunc, args, None) - pb.execute_lib_func(libfunc, [self(), field()]) diff --git a/src/pyfluid/forcefieldpoint.py b/src/pyfluid/forcefieldpoint.py deleted file mode 100644 index 6609119..0000000 --- a/src/pyfluid/forcefieldpoint.py +++ /dev/null @@ -1,45 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from .forcefield import ForceField -from . import pybindings as pb -from . import method_decorators as decorators - -class ForceFieldPoint(ForceField): - - def __init__(self): - libfunc = lib.ForceFieldPoint_new - args = [c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - - def __del__(self): - try: - libfunc = lib.ForceFieldPoint_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass diff --git a/src/pyfluid/forcefieldsurface.py b/src/pyfluid/forcefieldsurface.py deleted file mode 100644 index 5a7c291..0000000 --- a/src/pyfluid/forcefieldsurface.py +++ /dev/null @@ -1,45 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from .forcefield import ForceField -from . import pybindings as pb -from . import method_decorators as decorators - -class ForceFieldSurface(ForceField): - - def __init__(self): - libfunc = lib.ForceFieldSurface_new - args = [c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - - def __del__(self): - try: - libfunc = lib.ForceFieldSurface_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass diff --git a/src/pyfluid/forcefieldvolume.py b/src/pyfluid/forcefieldvolume.py deleted file mode 100644 index e830bfb..0000000 --- a/src/pyfluid/forcefieldvolume.py +++ /dev/null @@ -1,45 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from abc import ABCMeta, abstractmethod -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from .forcefield import ForceField -from . import pybindings as pb -from . import method_decorators as decorators - -class ForceFieldVolume(ForceField): - - def __init__(self): - libfunc = lib.ForceFieldVolume_new - args = [c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, []) - - def __del__(self): - try: - libfunc = lib.ForceFieldVolume_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass diff --git a/src/pyfluid/gpu_utils.py b/src/pyfluid/gpu_utils.py deleted file mode 100644 index 65502d8..0000000 --- a/src/pyfluid/gpu_utils.py +++ /dev/null @@ -1,59 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import ctypes -from ctypes import c_void_p, c_char_p, c_char, c_int, c_uint, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from . import pybindings as pb - -DEVICE_STRING_LEN = 4096 - -class GPUDevice_t(ctypes.Structure): - _fields_ = [("name", ctypes.c_char * DEVICE_STRING_LEN), - ("description", ctypes.c_char * DEVICE_STRING_LEN), - ("score", ctypes.c_float)] - - -def get_num_gpu_devices(): - libfunc = lib.OpenCLUtils_get_num_gpu_devices - pb.init_lib_func(libfunc, [c_void_p], c_int) - return pb.execute_lib_func(libfunc, []) - -def find_gpu_devices(): - num_devices = get_num_gpu_devices() - if num_devices == 0: - return [] - - device_structs = (GPUDevice_t * num_devices)() - libfunc = lib.OpenCLUtils_get_gpu_devices - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [device_structs, num_devices]) - - devices = [] - for d in device_structs: - device_info = {"name": d.name.decode("utf-8"), - "description": d.description.decode("utf-8"), - "score": d.score} - devices.append(device_info) - - return devices diff --git a/src/pyfluid/gridindex.py b/src/pyfluid/gridindex.py deleted file mode 100644 index 925ff48..0000000 --- a/src/pyfluid/gridindex.py +++ /dev/null @@ -1,85 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import array -import ctypes - -class GridIndex_t(ctypes.Structure): - _fields_ = [("i", ctypes.c_int), - ("j", ctypes.c_int), - ("k", ctypes.c_int)] - -class GridIndex(object): - - def __init__(self, i = 0, j = 0, k = 0): - if isinstance(i, GridIndex): - self._values = array.array('i', [i.i, i.j, i.k]) - else: - self._values = array.array('i', [i, j, k]) - - def __str__(self): - return str(self.i) + " " + str(self.j) + " " + str(self.k) - - def __getitem__(self, key): - if key < 0 or key > 2: - raise IndexError("Index must be in range [0, 2]") - if not isinstance(key, int): - raise TypeError("Index must be an integer") - - return self._values[key] - - def __setitem__(self, key, value): - if key < 0 or key > 2: - raise IndexError("Index must be in range [0, 2]") - if not isinstance(key, int): - raise TypeError("Index must be an integer") - - self._values[key] = value - - def __iter__(self): - yield self._values[0] - yield self._values[1] - yield self._values[2] - - @property - def i(self): - return self._values[0] - - @property - def j(self): - return self._values[1] - - @property - def k(self): - return self._values[2] - - @i.setter - def i(self, value): - self._values[0] = value - - @j.setter - def j(self, value): - self._values[1] = value - - @k.setter - def k(self, value): - self._values[2] = value diff --git a/src/pyfluid/meshfluidsource.py b/src/pyfluid/meshfluidsource.py deleted file mode 100644 index 4936386..0000000 --- a/src/pyfluid/meshfluidsource.py +++ /dev/null @@ -1,223 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from . import pybindings as pb -from . import method_decorators as decorators -from .trianglemesh import TriangleMesh_t - -class MeshFluidSource(): - - def __init__(self, i, j, k, dx): - libfunc = lib.MeshFluidSource_new - args = [c_int, c_int, c_int, c_double, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, [i, j, k, dx]) - - def __del__(self): - try: - libfunc = lib.MeshFluidSource_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass - - def __call__(self): - return self._obj - - def update_mesh_static(self, mesh): - mesh_struct = mesh.to_struct() - libfunc = lib.MeshFluidSource_update_mesh_static - args = [c_void_p, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct]) - - def update_mesh_animated(self, mesh_previous, mesh_current, mesh_next): - mesh_struct_previous = mesh_previous.to_struct() - mesh_struct_current = mesh_current.to_struct() - mesh_struct_next = mesh_next.to_struct() - libfunc = lib.MeshFluidSource_update_mesh_animated - args = [c_void_p, TriangleMesh_t, TriangleMesh_t, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct_previous, - mesh_struct_current, - mesh_struct_next]) - - @property - def enable(self): - libfunc = lib.MeshFluidSource_is_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable.setter - def enable(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_enable - else: - libfunc = lib.MeshFluidSource_disable - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def substep_emissions(self): - libfunc = lib.MeshFluidSource_get_substep_emissions - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return pb.execute_lib_func(libfunc, [self()]) - - @substep_emissions.setter - def substep_emissions(self, n): - libfunc = lib.MeshFluidSource_set_substep_emissions - pb.init_lib_func(libfunc, [c_void_p, c_int, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), int(n)]) - - @property - def inflow(self): - libfunc = lib.MeshFluidSource_is_inflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @inflow.setter - def inflow(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_set_inflow - else: - libfunc = lib.MeshFluidSource_set_outflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def outflow(self): - libfunc = lib.MeshFluidSource_is_inflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @outflow.setter - def outflow(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_set_outflow - else: - libfunc = lib.MeshFluidSource_set_inflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def fluid_outflow(self): - libfunc = lib.MeshFluidSource_is_fluid_outflow_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @fluid_outflow.setter - def fluid_outflow(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_enable_fluid_outflow - else: - libfunc = lib.MeshFluidSource_disable_fluid_outflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def diffuse_outflow(self): - libfunc = lib.MeshFluidSource_is_diffuse_outflow_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @diffuse_outflow.setter - def diffuse_outflow(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_enable_diffuse_outflow - else: - libfunc = lib.MeshFluidSource_disable_diffuse_outflow - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - def get_velocity(self): - libfunc = lib.MeshFluidSource_get_velocity - pb.init_lib_func(libfunc, [c_void_p, c_void_p], Vector3_t) - cvect = pb.execute_lib_func(libfunc, [self()]) - return Vector3.from_struct(cvect) - - @decorators.xyz_or_vector - def set_velocity(self, vx, vy, vz): - libfunc = lib.MeshFluidSource_set_velocity - pb.init_lib_func( - libfunc, - [c_void_p, c_double, c_double, c_double, c_void_p], None - ) - pb.execute_lib_func(libfunc, [self(), vx, vy, vz]) - - @property - def enable_append_object_velocity(self): - libfunc = lib.MeshFluidSource_is_append_object_velocity_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_append_object_velocity.setter - def enable_append_object_velocity(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_enable_append_object_velocity - else: - libfunc = lib.MeshFluidSource_disable_append_object_velocity - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def object_velocity_influence(self): - libfunc = lib.MeshFluidSource_get_object_velocity_influence - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @object_velocity_influence.setter - def object_velocity_influence(self, value): - libfunc = lib.MeshFluidSource_set_object_velocity_influence - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_constrained_fluid_velocity(self): - libfunc = lib.MeshFluidSource_is_constrained_fluid_velocity_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_constrained_fluid_velocity.setter - def enable_constrained_fluid_velocity(self, boolval): - if boolval: - libfunc = lib.MeshFluidSource_enable_constrained_fluid_velocity - else: - libfunc = lib.MeshFluidSource_disable_constrained_fluid_velocity - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def outflow_inverse(self): - libfunc = lib.MeshFluidSource_is_outflow_inversed - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @outflow_inverse.setter - def outflow_inverse(self, boolval): - do_inverse = (boolval and not self.outflow_inverse) or (not boolval and self.outflow_inverse) - if do_inverse: - libfunc = lib.MeshFluidSource_outflow_inverse - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) \ No newline at end of file diff --git a/src/pyfluid/meshobject.py b/src/pyfluid/meshobject.py deleted file mode 100644 index fd15ea4..0000000 --- a/src/pyfluid/meshobject.py +++ /dev/null @@ -1,186 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from ctypes import c_void_p, c_char_p, c_int, c_float, c_double, byref - -from .pyfluid import pyfluid as lib -from . import pybindings as pb -from . import method_decorators as decorators -from .trianglemesh import TriangleMesh_t - -class MeshObject(): - - def __init__(self, i, j, k, dx): - libfunc = lib.MeshObject_new - args = [c_int, c_int, c_int, c_double, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - self._obj = pb.execute_lib_func(libfunc, [i, j, k, dx]) - - def __del__(self): - try: - libfunc = lib.MeshObject_destroy - pb.init_lib_func(libfunc, [c_void_p], None) - libfunc(self._obj) - except: - pass - - def __call__(self): - return self._obj - - def update_mesh_static(self, mesh): - mesh_struct = mesh.to_struct() - libfunc = lib.MeshObject_update_mesh_static - args = [c_void_p, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct]) - - def update_mesh_animated(self, mesh_previous, mesh_current, mesh_next): - mesh_struct_previous = mesh_previous.to_struct() - mesh_struct_current = mesh_current.to_struct() - mesh_struct_next = mesh_next.to_struct() - libfunc = lib.MeshObject_update_mesh_animated - args = [c_void_p, TriangleMesh_t, TriangleMesh_t, TriangleMesh_t, c_void_p] - pb.init_lib_func(libfunc, args, c_void_p) - pb.execute_lib_func(libfunc, [self(), mesh_struct_previous, - mesh_struct_current, - mesh_struct_next]) - - @property - def enable(self): - libfunc = lib.MeshObject_is_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable.setter - def enable(self, boolval): - if boolval: - libfunc = lib.MeshObject_enable - else: - libfunc = lib.MeshObject_disable - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def inverse(self): - libfunc = lib.MeshObject_is_inversed - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @inverse.setter - def inverse(self, boolval): - do_inverse = (boolval and not self.inverse) or (not boolval and self.inverse) - if do_inverse: - libfunc = lib.MeshObject_inverse - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def friction(self): - libfunc = lib.MeshObject_get_friction - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @friction.setter - @decorators.check_ge_zero - @decorators.check_le(1.0) - def friction(self, value): - libfunc = lib.MeshObject_set_friction - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def whitewater_influence(self): - libfunc = lib.MeshObject_get_whitewater_influence - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @whitewater_influence.setter - @decorators.check_ge_zero - def whitewater_influence(self, value): - libfunc = lib.MeshObject_set_whitewater_influence - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def dust_emission_strength(self): - libfunc = lib.MeshObject_get_dust_emission_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @dust_emission_strength.setter - @decorators.check_ge_zero - def dust_emission_strength(self, value): - libfunc = lib.MeshObject_set_dust_emission_strength - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def sheeting_strength(self): - libfunc = lib.MeshObject_get_sheeting_strength - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @sheeting_strength.setter - @decorators.check_ge_zero - def sheeting_strength(self, value): - libfunc = lib.MeshObject_set_sheeting_strength - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def mesh_expansion(self): - libfunc = lib.MeshObject_get_mesh_expansion - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @mesh_expansion.setter - def mesh_expansion(self, value): - libfunc = lib.MeshObject_set_mesh_expansion - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) - - @property - def enable_append_object_velocity(self): - libfunc = lib.MeshObject_is_append_object_velocity_enabled - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_int) - return bool(pb.execute_lib_func(libfunc, [self()])) - - @enable_append_object_velocity.setter - def enable_append_object_velocity(self, boolval): - if boolval: - libfunc = lib.MeshObject_enable_append_object_velocity - else: - libfunc = lib.MeshObject_disable_append_object_velocity - pb.init_lib_func(libfunc, [c_void_p, c_void_p], None) - pb.execute_lib_func(libfunc, [self()]) - - @property - def object_velocity_influence(self): - libfunc = lib.MeshObject_get_object_velocity_influence - pb.init_lib_func(libfunc, [c_void_p, c_void_p], c_float) - return pb.execute_lib_func(libfunc, [self()]) - - @object_velocity_influence.setter - def object_velocity_influence(self, value): - libfunc = lib.MeshObject_set_object_velocity_influence - pb.init_lib_func(libfunc, [c_void_p, c_float, c_void_p], None) - pb.execute_lib_func(libfunc, [self(), value]) \ No newline at end of file diff --git a/src/pyfluid/method_decorators.py b/src/pyfluid/method_decorators.py deleted file mode 100644 index 65b0f3c..0000000 --- a/src/pyfluid/method_decorators.py +++ /dev/null @@ -1,127 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import numbers - -from .vector3 import Vector3 -from .gridindex import GridIndex - -def ijk_or_gridindex(func): - def ijk_or_gridindex_wrapper(self, *args): - try: - i, j, k = args - except: - i, j, k = args[0] - return func(self, i, j, k) - return ijk_or_gridindex_wrapper - -def ijk_or_gridindex_and_value(func): - def ijk_or_gridindex_and_value_wrapper(self, *args): - try: - return func(self, *args) - except: - i, j, k = args[0] - return func(self, i, j, k, args[1]) - return ijk_or_gridindex_and_value_wrapper - -def xyz_or_vector(func): - def xyz_or_vector_wrapper(self, *args): - try: - return func(self, *args) - except: - return func(self, *args[0]) - return xyz_or_vector_wrapper - -def xyz_or_vector_and_radius(func): - def xyz_or_vector_wrapper(self, *args): - try: - return func(self, *args) - except: - x, y, z = args[0] - return func(self, x, y, z, args[1]) - return xyz_or_vector_wrapper - -def check_gt_zero(func): - def check_values(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg <= 0: - raise ValueError("Value must be greater than zero") - return func(self, *args) - return check_values - -def check_ge_zero(func): - def check_values(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg < 0: - raise ValueError("Value must be greater than or equal to zero") - return func(self, *args) - return check_values - -def check_gt(value): - def check_gt_decorator(func): - def check_gt_wrapper(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg <= value: - raise ValueError("Value must be greater than " + str(value)) - return func(self, *args) - return check_gt_wrapper - return check_gt_decorator - -def check_ge(value): - def check_ge_decorator(func): - def check_ge_wrapper(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg < value: - raise ValueError("Value must be greater than or equal to " + str(value)) - return func(self, *args) - return check_ge_wrapper - return check_ge_decorator - -def check_lt(value): - def check_lt_decorator(func): - def check_lt_wrapper(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg >= value: - raise ValueError("Value must be less than " + str(value)) - return func(self, *args) - return check_lt_wrapper - return check_lt_decorator - -def check_le(value): - def check_le_decorator(func): - def check_le_wrapper(self, *args): - for arg in args: - if isinstance(arg, numbers.Real) and arg > value: - raise ValueError("Value must be less than or equal to " + str(value)) - return func(self, *args) - return check_le_wrapper - return check_le_decorator - -def check_type(argtype): - def check_type_decorator(func): - def check_type_wrapper(self, *args): - for arg in args: - if not isinstance(arg, argtype): - raise TypeError("Argument must be of type " + str(argtype)) - return func(self, *args) - return check_type_wrapper - return check_type_decorator \ No newline at end of file diff --git a/src/pyfluid/pybindings.py b/src/pyfluid/pybindings.py deleted file mode 100644 index c9d281e..0000000 --- a/src/pyfluid/pybindings.py +++ /dev/null @@ -1,60 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from .pyfluid import pyfluid as lib -from ctypes import c_char_p, c_int, byref - -def check_success(success, errprefix): - libfunc = lib.CBindings_get_error_message - init_lib_func(libfunc, [], c_char_p) - if not success: - raise RuntimeError(errprefix + str(libfunc().decode("utf-8"))) - -def init_lib_func(libfunc, argtypes, restype): - if libfunc.argtypes is None: - libfunc.argtypes = argtypes - libfunc.restype = restype - -def execute_lib_func(libfunc, params): - args = [] - for idx, arg in enumerate(params): - try: - cval = libfunc.argtypes[idx](arg) - except: - cval = arg - args.append(cval) - success = c_int(); - args.append(byref(success)) - - result = None - if libfunc.restype: - funcresult = libfunc(*args) - check_success(success, libfunc.__name__ + " - ") - try: - return libfunc.restype(funcresult).value - except: - return funcresult - else: - libfunc(*args) - - check_success(success, libfunc.__name__ + " - ") - return result \ No newline at end of file diff --git a/src/pyfluid/pyfluid.py b/src/pyfluid/pyfluid.py deleted file mode 100644 index a3ab6fb..0000000 --- a/src/pyfluid/pyfluid.py +++ /dev/null @@ -1,114 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import ctypes -import os -import platform - -DEBUG_MODE_ENABLED = False -IS_DEBUG_MODE_LIBRARY_LOADED = False - -def enable_debug_mode(): - global DEBUG_MODE_ENABLED - DEBUG_MODE_ENABLED = True - - -def disable_debug_mode(): - global DEBUG_MODE_ENABLED - DEBUG_MODE_ENABLED = False - - -class LibraryLoadError(Exception): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) - -class PyFluidLib(): - def __init__(self): - self._lib = None - - def __getattr__(self, name): - global DEBUG_MODE_ENABLED - global IS_DEBUG_MODE_LIBRARY_LOADED - - if self.__dict__['_lib'] is None: - self._lib = self._load_library("pyfluid") - elif DEBUG_MODE_ENABLED != IS_DEBUG_MODE_LIBRARY_LOADED: - self._lib = self._load_library("pyfluid") - - return getattr(self._lib, name) - - def _load_library(self, name): - libdir = os.path.join(os.path.dirname(__file__), "lib") - - system = platform.system() - if system == "Windows": - libname_debug = "libblpyfluiddebug.dll" - libname_release = "libblpyfluidrelease.dll" - elif system == "Darwin": - libname_debug = "libblpyfluiddebug.dylib" - libname_release = "libblpyfluidrelease.dylib" - elif system == "Linux": - libname_debug = "libblpyfluiddebug.so" - libname_release = "libblpyfluidrelease.so" - else: - raise LibraryLoadError("Unable to recognize system: " + system) - - libfile_debug = os.path.join(libdir, libname_debug) - libfile_release = os.path.join(libdir, libname_release) - - library_files = [libfile_debug, libfile_release] - missing_libraries = [] - for lib in library_files: - if not os.path.isfile(lib): - missing_libraries.append(os.path.basename(lib)) - - if missing_libraries: - err_msg = "Cannot find fluid engine libraries: " - for libname in missing_libraries: - err_msg += "<" + libname + "> " - raise LibraryLoadError(err_msg) - - global DEBUG_MODE_ENABLED - global IS_DEBUG_MODE_LIBRARY_LOADED - - if DEBUG_MODE_ENABLED: - libfile = libfile_debug - else: - libfile = libfile_release - - try: - library = ctypes.cdll.LoadLibrary(libfile) - IS_DEBUG_MODE_LIBRARY_LOADED = DEBUG_MODE_ENABLED - except: - msg = "Unable to load fluid engine library: <" + libfile + ">" - msg += " (1) Make sure that you are using a 64-bit version of Python/Blender" - msg += " if built for 64-bit and likewise if built for 32-bit." - msg += " (2) Try clearing your Blender user settings (make a backup first!)." - msg += " (3) Contact the developers if you think that this is an error." - raise LibraryLoadError(msg) - - return library - - -pyfluid = PyFluidLib() diff --git a/src/pyfluid/trianglemesh.py b/src/pyfluid/trianglemesh.py deleted file mode 100644 index 44540c3..0000000 --- a/src/pyfluid/trianglemesh.py +++ /dev/null @@ -1,113 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import ctypes -import array -import struct - -class TriangleMesh_t(ctypes.Structure): - _fields_ = [("vertices", ctypes.c_void_p), - ("triangles", ctypes.c_void_p), - ("num_vertices", ctypes.c_int), - ("num_triangles", ctypes.c_int)] - -class TriangleMesh(object): - def __init__(self): - self.vertices = array.array('f', []) - self.triangles = array.array('i', []) - - - @classmethod - def from_bobj(cls, bobj_data): - int_data, bobj_data = bobj_data[:4], bobj_data[4:] - num_vertices = struct.unpack('i', int_data)[0] - - num_floats = 3 * num_vertices - num_bytes = 4 * num_floats - vertex_data, bobj_data = bobj_data[:num_bytes], bobj_data[num_bytes:] - vertices = list(struct.unpack('{0}f'.format(num_floats), vertex_data)) - - int_data, bobj_data = bobj_data[:4], bobj_data[4:] - num_triangles = struct.unpack('i', int_data)[0] - - num_ints = 3 * num_triangles - num_bytes = 4 * num_ints - triangle_data, bobj_data = bobj_data[:num_bytes], bobj_data[num_bytes:] - triangles = list(struct.unpack('{0}i'.format(num_ints), triangle_data)) - - self = cls() - self.vertices = array.array('f', vertices) - self.triangles = array.array('i', triangles) - - return self - - - def to_bobj(self): - num_vertices = len(self.vertices) // 3 - num_triangles = len(self.triangles) // 3 - datastr = struct.pack('i', num_vertices) - datastr += self.vertices.tobytes() - datastr += struct.pack('i', num_triangles) - datastr += self.triangles.tobytes() - - return datastr - - def to_struct(self): - - num_vertices = len(self.vertices) // 3 - num_triangles = len(self.triangles) // 3 - - vertex_data = (ctypes.c_float * len(self.vertices))() - for i in range(len(self.vertices)): - vertex_data[i] = self.vertices[i] - - triangle_data = (ctypes.c_int * len(self.triangles))() - for i in range(len(self.triangles)): - triangle_data[i] = self.triangles[i] - - struct = TriangleMesh_t() - struct.vertices = ctypes.cast(vertex_data, ctypes.c_void_p) - struct.triangles = ctypes.cast(triangle_data, ctypes.c_void_p) - struct.num_vertices = num_vertices - struct.num_triangles = num_triangles - - return struct - - def apply_transform(self, matrix_world): - m = matrix_world - for i in range(0, len(self.vertices), 3): - v = [self.vertices[i + 0], self.vertices[i + 1], self.vertices[i + 2], 1] - self.vertices[i + 0] = v[0]*m[0] + v[1]*m[1] + v[2]*m[2] + v[3]*m[3] - self.vertices[i + 1] = v[0]*m[4] + v[1]*m[5] + v[2]*m[6] + v[3]*m[7] - self.vertices[i + 2] = v[0]*m[8] + v[1]*m[9] + v[2]*m[10] + v[3]*m[11] - - def translate(self, tx, ty, tz): - for i in range(0, len(self.vertices), 3): - self.vertices[i + 0] += tx - self.vertices[i + 1] += ty - self.vertices[i + 2] += tz - - def scale(self, scale): - for i in range(0, len(self.vertices), 3): - self.vertices[i + 0] *= scale - self.vertices[i + 1] *= scale - self.vertices[i + 2] *= scale \ No newline at end of file diff --git a/src/pyfluid/vector3.py b/src/pyfluid/vector3.py deleted file mode 100644 index a2b7e1f..0000000 --- a/src/pyfluid/vector3.py +++ /dev/null @@ -1,217 +0,0 @@ -# MIT License -# -# Copyright (C) 2020 Ryan L. Guy, http://rlguy.com -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import array -import ctypes -import math - -class Vector3_t(ctypes.Structure): - _fields_ = [("x", ctypes.c_float), - ("y", ctypes.c_float), - ("z", ctypes.c_float)] - -class Vector3(object): - - def __init__(self, x = 0.0, y = 0.0, z = 0.0): - if isinstance(x, Vector3): - self._values = array.array('f', [x.x, x.y, x.z]) - else: - self._values = array.array('f', [x, y, z]) - - @classmethod - def from_struct(cls, cstruct): - return cls(cstruct.x, cstruct.y, cstruct.z) - - def to_struct(self): - return Vector3_t(self.x, self.y, self.z) - - def __str__(self): - return str(self.x) + " " + str(self.y) + " " + str(self.z) - - def __getitem__(self, key): - if key < 0 or key > 2: - raise IndexError("Index must be in range [0, 2]") - if not isinstance(key, int): - raise TypeError("Index must be an integer") - - return self._values[key] - - def __setitem__(self, key, value): - if key < 0 or key > 2: - raise IndexError("Index must be in range [0, 2]") - if not isinstance(key, int): - raise TypeError("Index must be an integer") - - self._values[key] = value - - def __iter__(self): - yield self._values[0] - yield self._values[1] - yield self._values[2] - - def __add__(self, other): - return Vector3(self.x + other.x, - self.y + other.y, - self.z + other.z) - - def __iadd__(self, other): - self.x += other.x - self.y += other.y - self.z += other.z - return self - - def __sub__(self, other): - return Vector3(self.x - other.x, - self.y - other.y, - self.z - other.z) - - def __isub__(self, other): - self.x -= other.x - self.y -= other.y - self.z -= other.z - return self - - def __mul__(self, scale): - return Vector3(scale * self.x, - scale * self.y, - scale * self.z) - - def __imul__(self, scale): - self.x *= scale - self.y *= scale - self.z *= scale - return self - - def __rmul__(self, scale): - return Vector3(scale * self.x, - scale * self.y, - scale * self.z) - - def __div__(self, denominator): - if denominator == 0.0: - raise ZeroDivisionError - - inv = 1.0 / denominator - - return Vector3(self.x * inv, - self.y * inv, - self.z * inv) - - def __idiv__(self, denominator): - if denominator == 0.0: - raise ZeroDivisionError - - inv = 1.0 / denominator - - self.x *= inv - self.y *= inv - self.z *= inv - return self - - def __neg__(self): - return Vector3(-self.x, -self.y, -self.z) - - def __pos__(self): - return Vector3(self) - - def __abs__(self): - return Vector3(abs(self.x), abs(self.y), abs(self.z)) - - def __invert__(self): - return Vector3(1.0 / self.x, - 1.0 / self.y, - 1.0 / self.z) - - @property - def x(self): - return self._values[0] - - @property - def y(self): - return self._values[1] - - @property - def z(self): - return self._values[2] - - @x.setter - def x(self, value): - self._values[0] = value - - @y.setter - def y(self, value): - self._values[1] = value - - @z.setter - def z(self, value): - self._values[2] = value - - def add(self, vector): - self += vector - return self - - def sub(self, vector): - self -= vector - return self - - def mult(self, scale): - self *= scale - return self - - def div(self, denominator): - self /= denominator - return self - - def neg(self): - self.x = -self.x - self.y = -self.y - self.z = -self.z - return self - - def invert(self): - self.x = 1.0 / self.x - self.y = 1.0 / self.y - self.z = 1.0 / self.z - return self - - def dot(vector): - return self.x*vector.x + self.y*vector.y + self.z*vector.z - - def cross(vector): - return Vector3(self.y*vector.z - self.z*vector.y, - self.z*vector.x - self.x*vector.z, - self.x*vector.y - self.y*vector.x) - - def lengthsq(self): - return self.x*self.x + self.y*self.y + self.z*self.z - - def length(self): - return math.sqrt(self.x*self.x + self.y*self.y + self.z*self.z) - - def normalize(self): - length = self.length() - if length == 0.0: - raise ZeroDivisionError - - inv = 1.0 / length - self *= inv - return self From d30e39c5f70aa6cd70ef6e378d7772680a51b601 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Fri, 30 Jul 2021 22:18:07 +0900 Subject: [PATCH 08/24] feat: Integrated successfully with DXViewer But the code is dirty. --- src/fluidsimulation.cpp | 2 +- src/fluidsimulation.h | 1 + src/main.cpp | 43 +++++++++++++++++++++-------------------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/fluidsimulation.cpp b/src/fluidsimulation.cpp index 6d3eb53..a29d455 100644 --- a/src/fluidsimulation.cpp +++ b/src/fluidsimulation.cpp @@ -5221,7 +5221,7 @@ void FluidSimulation::_outputSurfaceMeshThread(std::vector *particl }*/ std::cout << isomesh.vertices.size() << " /\n"; - + isomesh2 = isomesh; _logfile.logString(_logfile.getTime() + " COMPLETE Generate Surface Mesh"); } diff --git a/src/fluidsimulation.h b/src/fluidsimulation.h index f535ad8..8977260 100644 --- a/src/fluidsimulation.h +++ b/src/fluidsimulation.h @@ -118,6 +118,7 @@ class FluidSimulation { public: FluidSimulation(); + TriangleMesh isomesh2; /* Constructs a FluidSimulation object with grid dimensions diff --git a/src/main.cpp b/src/main.cpp index 03a7987..42a290d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,10 +24,10 @@ SOFTWARE. #include +#include "../ext/DXViewer/src/Win32App.h" #include "fluidsimulation.h" #include "triangle.h" -#include "../ext/DXViewer/src/Win32App.h" void writeSurfaceMesh(int frameno, FluidSimulation& fluidsim) { std::ostringstream ss; @@ -71,24 +71,16 @@ TriangleMesh getTriangleMeshFromAABB(AABB bbox) { int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { - int width = 800; - int height = 600; - - Win32App winApp(width, height); - winApp.Initialize(hInstance); - - winApp.InitDirectX(); - - int isize = 20; - int jsize = 20; - int ksize = 20; + int isize = 40; + int jsize = 40; + int ksize = 40; double dx = 0.125; - FluidSimulation fluidsim(isize, jsize, ksize, dx); + FluidSimulation* fluidsim = new FluidSimulation(isize, jsize, ksize, dx); - fluidsim.setSurfaceSubdivisionLevel(2); + fluidsim->setSurfaceSubdivisionLevel(2); double x, y, z; - fluidsim.getSimulationDimensions(&x, &y, &z); + fluidsim->getSimulationDimensions(&x, &y, &z); double boxWidth = (1.0 / 3.0) * x; double boxHeight = (1.0 / 3.0) * y; @@ -98,17 +90,26 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, in TriangleMesh boxMesh = getTriangleMeshFromAABB(box); MeshObject boxFluidObject(isize, jsize, ksize, dx); boxFluidObject.updateMeshStatic(boxMesh); - fluidsim.addMeshFluid(boxFluidObject); + fluidsim->addMeshFluid(boxFluidObject); - fluidsim.addBodyForce(0.0, -25.0, 0.0); - fluidsim.initialize(); + fluidsim->addBodyForce(0.0, -25.0, 0.0); + fluidsim->initialize(); double timestep = 1.0 / 30.0; for (int i = 0; i < 1; i++) { - int frameno = fluidsim.getCurrentFrame(); - fluidsim.update(timestep); - writeSurfaceMesh(frameno, fluidsim); + int frameno = fluidsim->getCurrentFrame(); + fluidsim->update(timestep); + writeSurfaceMesh(frameno, *fluidsim); } + + int width = 800; + int height = 600; + + Win32App winApp(width, height); + winApp.Initialize(hInstance); + + winApp.InitDirectX(fluidsim, timestep); + return winApp.Run(); } \ No newline at end of file From 3fb9eb4cb6dbb2c73e40cec4dd71964b5d17c76c Mon Sep 17 00:00:00 2001 From: jklee95 Date: Sun, 1 Aug 2021 01:17:04 +0900 Subject: [PATCH 09/24] file: Add test project files --- ext/DXViewer | 2 +- testproj/CmakeLists.txt | 12 +++++ testproj/main.cpp | 103 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 testproj/CmakeLists.txt create mode 100644 testproj/main.cpp diff --git a/ext/DXViewer b/ext/DXViewer index 872cf1b..4e5176e 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 872cf1b7171cfe85e212e697b64fe9d8ec5958f1 +Subproject commit 4e5176ed2de3e8bc74ffed7f39301e7080d8cfc2 diff --git a/testproj/CmakeLists.txt b/testproj/CmakeLists.txt new file mode 100644 index 0000000..5d75795 --- /dev/null +++ b/testproj/CmakeLists.txt @@ -0,0 +1,12 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 3.19.0) + +# Set the project name +SET( PROJECT_NAME FlipEngine ) +PROJECT(${PROJECT_NAME}) + +# Collect source files +FILE( GLOB SRC src/*.cpp ) +FILE( GLOB HDR src/*.h ) + +# Link Source files +ADD_EXECUTABLE( ${PROJECT_NAME} ${SRC} ${HDR} ) \ No newline at end of file diff --git a/testproj/main.cpp b/testproj/main.cpp new file mode 100644 index 0000000..aff51f3 --- /dev/null +++ b/testproj/main.cpp @@ -0,0 +1,103 @@ +/* +MIT License + +Copyright (C) 2020 Ryan L. Guy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#include + +#include "fluidsimulation.h" +#include "triangle.h" + +void writeSurfaceMesh(int frameno, FluidSimulation &fluidsim) { + std::ostringstream ss; + ss << frameno; + std::string frameString = ss.str(); + //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); + std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; + + std::vector *data = fluidsim.getSurfaceData(); + std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); + ply.write(data->data(), data->size()); + ply.close(); +} + +TriangleMesh getTriangleMeshFromAABB(AABB bbox) { + vmath::vec3 p = bbox.position; + std::vector verts{ + vmath::vec3(p.x, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z + bbox.depth) + }; + + std::vector tris{ + Triangle(0, 1, 2), Triangle(0, 2, 3), Triangle(4, 7, 6), Triangle(4, 6, 5), + Triangle(0, 3, 7), Triangle(0, 7, 4), Triangle(1, 5, 6), Triangle(1, 6, 2), + Triangle(0, 4, 5), Triangle(0, 5, 1), Triangle(3, 2, 6), Triangle(3, 6, 7) + }; + + TriangleMesh m; + m.vertices = verts; + m.triangles = tris; + + return m; +} + +int main() { + // This example will drop a box of fluid in the center + // of the fluid simulation domain. + int isize = 64; + int jsize = 64; + int ksize = 64; + double dx = 0.125; + FluidSimulation fluidsim(isize, jsize, ksize, dx); + + fluidsim.setSurfaceSubdivisionLevel(2); + + double x, y, z; + fluidsim.getSimulationDimensions(&x, &y, &z); + + double boxWidth = (1.0 / 3.0) * x; + double boxHeight = (1.0 / 3.0) * y; + double boxDepth = (1.0 / 3.0) * z; + vmath::vec3 boxPosition(0.5 * (x - boxWidth), 0.5 * (y - boxHeight), 0.5 * (z - boxDepth)); + AABB box(boxPosition, boxWidth, boxHeight, boxDepth); + TriangleMesh boxMesh = getTriangleMeshFromAABB(box); + MeshObject boxFluidObject(isize, jsize, ksize, dx); + boxFluidObject.updateMeshStatic(boxMesh); + fluidsim.addMeshFluid(boxFluidObject); + + fluidsim.addBodyForce(0.0, -25.0, 0.0); + fluidsim.initialize(); + double timestep = 1.0 / 30.0; + for (int i = 0; i < 200; i++) { + int frameno = fluidsim.getCurrentFrame(); + fluidsim.update(timestep); + writeSurfaceMesh(frameno, fluidsim); + } + + return 0; +} \ No newline at end of file From 0325fd6a952c937ad4166465db91d05810db0ef5 Mon Sep 17 00:00:00 2001 From: jklee95 Date: Sun, 1 Aug 2021 17:23:57 +0900 Subject: [PATCH 10/24] file: Move original files to src/engine folder --- CmakeLists.txt | 4 ++-- src/{ => engine}/aabb.cpp | 0 src/{ => engine}/aabb.h | 0 src/{ => engine}/array3d.h | 0 src/{ => engine}/arrayview3d.h | 0 src/{ => engine}/blockarray3d.h | 0 src/{ => engine}/boundedbuffer.h | 0 src/{ => engine}/clscalarfield.cpp | 0 src/{ => engine}/clscalarfield.h | 0 src/{ => engine}/collision.cpp | 0 src/{ => engine}/collision.h | 0 src/{ => engine}/diffuseparticle.h | 0 src/{ => engine}/diffuseparticlesimulation.cpp | 0 src/{ => engine}/diffuseparticlesimulation.h | 0 src/{ => engine}/fluidmaterialgrid.cpp | 0 src/{ => engine}/fluidmaterialgrid.h | 0 src/{ => engine}/fluidsimassert.h | 0 src/{ => engine}/fluidsimulation.cpp | 0 src/{ => engine}/fluidsimulation.h | 0 src/{ => engine}/forcefield.cpp | 0 src/{ => engine}/forcefield.h | 0 src/{ => engine}/forcefieldcurve.cpp | 0 src/{ => engine}/forcefieldcurve.h | 0 src/{ => engine}/forcefieldgravityscalegrid.h | 0 src/{ => engine}/forcefieldgrid.cpp | 0 src/{ => engine}/forcefieldgrid.h | 0 src/{ => engine}/forcefieldpoint.cpp | 0 src/{ => engine}/forcefieldpoint.h | 0 src/{ => engine}/forcefieldsurface.cpp | 0 src/{ => engine}/forcefieldsurface.h | 0 src/{ => engine}/forcefieldutils.cpp | 0 src/{ => engine}/forcefieldutils.h | 0 src/{ => engine}/forcefieldvolume.cpp | 0 src/{ => engine}/forcefieldvolume.h | 0 src/{ => engine}/fragmentedvector.h | 0 src/{ => engine}/grid3d.h | 0 src/{ => engine}/gridindexkeymap.cpp | 0 src/{ => engine}/gridindexkeymap.h | 0 src/{ => engine}/gridindexvector.cpp | 0 src/{ => engine}/gridindexvector.h | 0 src/{ => engine}/gridutils.cpp | 0 src/{ => engine}/gridutils.h | 0 src/{ => engine}/influencegrid.cpp | 0 src/{ => engine}/influencegrid.h | 0 src/{ => engine}/interpolation.cpp | 0 src/{ => engine}/interpolation.h | 0 src/{ => engine}/kernels/kernels.cpp.in | 0 src/{ => engine}/kernels/kernels.h | 0 src/{ => engine}/kernels/scalarfield.cl | 0 src/{ => engine}/kernels/trilinearinterpolate.cl | 0 src/{ => engine}/levelsetsolver.cpp | 0 src/{ => engine}/levelsetsolver.h | 0 src/{ => engine}/levelsetutils.cpp | 0 src/{ => engine}/levelsetutils.h | 0 src/{ => engine}/logfile.cpp | 0 src/{ => engine}/logfile.h | 0 src/{ => engine}/macvelocityfield.cpp | 0 src/{ => engine}/macvelocityfield.h | 0 src/{ => engine}/markerparticle.h | 0 src/{ => engine}/meshfluidsource.cpp | 0 src/{ => engine}/meshfluidsource.h | 0 src/{ => engine}/meshlevelset.cpp | 0 src/{ => engine}/meshlevelset.h | 0 src/{ => engine}/meshobject.cpp | 0 src/{ => engine}/meshobject.h | 0 src/{ => engine}/meshutils.cpp | 0 src/{ => engine}/meshutils.h | 0 src/{ => engine}/mingw32_threads/LICENSE | 0 src/{ => engine}/mingw32_threads/mingw.condition_variable.h | 0 src/{ => engine}/mingw32_threads/mingw.mutex.h | 0 src/{ => engine}/mingw32_threads/mingw.thread.h | 0 src/{ => engine}/opencl_bindings/clcpp.cpp | 0 src/{ => engine}/opencl_bindings/clcpp.h | 0 src/{ => engine}/openclutils.cpp | 0 src/{ => engine}/openclutils.h | 0 src/{ => engine}/particleadvector.cpp | 0 src/{ => engine}/particleadvector.h | 0 src/{ => engine}/particlelevelset.cpp | 0 src/{ => engine}/particlelevelset.h | 0 src/{ => engine}/particlemaskgrid.cpp | 0 src/{ => engine}/particlemaskgrid.h | 0 src/{ => engine}/particlemesher.cpp | 0 src/{ => engine}/particlemesher.h | 0 src/{ => engine}/particlesheeter.cpp | 0 src/{ => engine}/particlesheeter.h | 0 src/{ => engine}/pcgsolver/blaswrapper.h | 0 src/{ => engine}/pcgsolver/pcgsolver.h | 0 src/{ => engine}/pcgsolver/sparsematrix.h | 0 src/{ => engine}/polygonizer3d.cpp | 0 src/{ => engine}/polygonizer3d.h | 0 src/{ => engine}/pressuresolver.cpp | 0 src/{ => engine}/pressuresolver.h | 0 src/{ => engine}/scalarfield.cpp | 0 src/{ => engine}/scalarfield.h | 0 src/{ => engine}/spatialpointgrid.cpp | 0 src/{ => engine}/spatialpointgrid.h | 0 src/{ => engine}/stopwatch.cpp | 0 src/{ => engine}/stopwatch.h | 0 src/{ => engine}/subdividedarray3d.h | 0 src/{ => engine}/threadutils.cpp | 0 src/{ => engine}/threadutils.h | 0 src/{ => engine}/triangle.h | 0 src/{ => engine}/trianglemesh.cpp | 0 src/{ => engine}/trianglemesh.h | 0 src/{ => engine}/turbulencefield.cpp | 0 src/{ => engine}/turbulencefield.h | 0 src/{ => engine}/velocityadvector.cpp | 0 src/{ => engine}/velocityadvector.h | 0 src/{ => engine}/versionutils.cpp | 0 src/{ => engine}/versionutils.cpp.in | 0 src/{ => engine}/versionutils.h | 0 src/{ => engine}/viscositysolver.cpp | 0 src/{ => engine}/viscositysolver.h | 0 src/{ => engine}/vmath.cpp | 0 src/{ => engine}/vmath.h | 0 src/main.cpp | 4 ++-- 116 files changed, 4 insertions(+), 4 deletions(-) rename src/{ => engine}/aabb.cpp (100%) rename src/{ => engine}/aabb.h (100%) rename src/{ => engine}/array3d.h (100%) rename src/{ => engine}/arrayview3d.h (100%) rename src/{ => engine}/blockarray3d.h (100%) rename src/{ => engine}/boundedbuffer.h (100%) rename src/{ => engine}/clscalarfield.cpp (100%) rename src/{ => engine}/clscalarfield.h (100%) rename src/{ => engine}/collision.cpp (100%) rename src/{ => engine}/collision.h (100%) rename src/{ => engine}/diffuseparticle.h (100%) rename src/{ => engine}/diffuseparticlesimulation.cpp (100%) rename src/{ => engine}/diffuseparticlesimulation.h (100%) rename src/{ => engine}/fluidmaterialgrid.cpp (100%) rename src/{ => engine}/fluidmaterialgrid.h (100%) rename src/{ => engine}/fluidsimassert.h (100%) rename src/{ => engine}/fluidsimulation.cpp (100%) rename src/{ => engine}/fluidsimulation.h (100%) rename src/{ => engine}/forcefield.cpp (100%) rename src/{ => engine}/forcefield.h (100%) rename src/{ => engine}/forcefieldcurve.cpp (100%) rename src/{ => engine}/forcefieldcurve.h (100%) rename src/{ => engine}/forcefieldgravityscalegrid.h (100%) rename src/{ => engine}/forcefieldgrid.cpp (100%) rename src/{ => engine}/forcefieldgrid.h (100%) rename src/{ => engine}/forcefieldpoint.cpp (100%) rename src/{ => engine}/forcefieldpoint.h (100%) rename src/{ => engine}/forcefieldsurface.cpp (100%) rename src/{ => engine}/forcefieldsurface.h (100%) rename src/{ => engine}/forcefieldutils.cpp (100%) rename src/{ => engine}/forcefieldutils.h (100%) rename src/{ => engine}/forcefieldvolume.cpp (100%) rename src/{ => engine}/forcefieldvolume.h (100%) rename src/{ => engine}/fragmentedvector.h (100%) rename src/{ => engine}/grid3d.h (100%) rename src/{ => engine}/gridindexkeymap.cpp (100%) rename src/{ => engine}/gridindexkeymap.h (100%) rename src/{ => engine}/gridindexvector.cpp (100%) rename src/{ => engine}/gridindexvector.h (100%) rename src/{ => engine}/gridutils.cpp (100%) rename src/{ => engine}/gridutils.h (100%) rename src/{ => engine}/influencegrid.cpp (100%) rename src/{ => engine}/influencegrid.h (100%) rename src/{ => engine}/interpolation.cpp (100%) rename src/{ => engine}/interpolation.h (100%) rename src/{ => engine}/kernels/kernels.cpp.in (100%) rename src/{ => engine}/kernels/kernels.h (100%) rename src/{ => engine}/kernels/scalarfield.cl (100%) rename src/{ => engine}/kernels/trilinearinterpolate.cl (100%) rename src/{ => engine}/levelsetsolver.cpp (100%) rename src/{ => engine}/levelsetsolver.h (100%) rename src/{ => engine}/levelsetutils.cpp (100%) rename src/{ => engine}/levelsetutils.h (100%) rename src/{ => engine}/logfile.cpp (100%) rename src/{ => engine}/logfile.h (100%) rename src/{ => engine}/macvelocityfield.cpp (100%) rename src/{ => engine}/macvelocityfield.h (100%) rename src/{ => engine}/markerparticle.h (100%) rename src/{ => engine}/meshfluidsource.cpp (100%) rename src/{ => engine}/meshfluidsource.h (100%) rename src/{ => engine}/meshlevelset.cpp (100%) rename src/{ => engine}/meshlevelset.h (100%) rename src/{ => engine}/meshobject.cpp (100%) rename src/{ => engine}/meshobject.h (100%) rename src/{ => engine}/meshutils.cpp (100%) rename src/{ => engine}/meshutils.h (100%) rename src/{ => engine}/mingw32_threads/LICENSE (100%) rename src/{ => engine}/mingw32_threads/mingw.condition_variable.h (100%) rename src/{ => engine}/mingw32_threads/mingw.mutex.h (100%) rename src/{ => engine}/mingw32_threads/mingw.thread.h (100%) rename src/{ => engine}/opencl_bindings/clcpp.cpp (100%) rename src/{ => engine}/opencl_bindings/clcpp.h (100%) rename src/{ => engine}/openclutils.cpp (100%) rename src/{ => engine}/openclutils.h (100%) rename src/{ => engine}/particleadvector.cpp (100%) rename src/{ => engine}/particleadvector.h (100%) rename src/{ => engine}/particlelevelset.cpp (100%) rename src/{ => engine}/particlelevelset.h (100%) rename src/{ => engine}/particlemaskgrid.cpp (100%) rename src/{ => engine}/particlemaskgrid.h (100%) rename src/{ => engine}/particlemesher.cpp (100%) rename src/{ => engine}/particlemesher.h (100%) rename src/{ => engine}/particlesheeter.cpp (100%) rename src/{ => engine}/particlesheeter.h (100%) rename src/{ => engine}/pcgsolver/blaswrapper.h (100%) rename src/{ => engine}/pcgsolver/pcgsolver.h (100%) rename src/{ => engine}/pcgsolver/sparsematrix.h (100%) rename src/{ => engine}/polygonizer3d.cpp (100%) rename src/{ => engine}/polygonizer3d.h (100%) rename src/{ => engine}/pressuresolver.cpp (100%) rename src/{ => engine}/pressuresolver.h (100%) rename src/{ => engine}/scalarfield.cpp (100%) rename src/{ => engine}/scalarfield.h (100%) rename src/{ => engine}/spatialpointgrid.cpp (100%) rename src/{ => engine}/spatialpointgrid.h (100%) rename src/{ => engine}/stopwatch.cpp (100%) rename src/{ => engine}/stopwatch.h (100%) rename src/{ => engine}/subdividedarray3d.h (100%) rename src/{ => engine}/threadutils.cpp (100%) rename src/{ => engine}/threadutils.h (100%) rename src/{ => engine}/triangle.h (100%) rename src/{ => engine}/trianglemesh.cpp (100%) rename src/{ => engine}/trianglemesh.h (100%) rename src/{ => engine}/turbulencefield.cpp (100%) rename src/{ => engine}/turbulencefield.h (100%) rename src/{ => engine}/velocityadvector.cpp (100%) rename src/{ => engine}/velocityadvector.h (100%) rename src/{ => engine}/versionutils.cpp (100%) rename src/{ => engine}/versionutils.cpp.in (100%) rename src/{ => engine}/versionutils.h (100%) rename src/{ => engine}/viscositysolver.cpp (100%) rename src/{ => engine}/viscositysolver.h (100%) rename src/{ => engine}/vmath.cpp (100%) rename src/{ => engine}/vmath.h (100%) diff --git a/CmakeLists.txt b/CmakeLists.txt index d64bfd4..58e0b2f 100644 --- a/CmakeLists.txt +++ b/CmakeLists.txt @@ -18,8 +18,8 @@ set_property(SOURCE ${VS_SHD} PROPERTY VS_SHADER_TYPE Vertex) set_property(SOURCE ${PS_SHD} PROPERTY VS_SHADER_TYPE Pixel) # Collect source files -FILE( GLOB SRC src/*.cpp ext/DXViewer/src/*.cpp) -FILE( GLOB HDR src/*.h ext/DXViewer/src/*.h) +FILE( GLOB SRC src/engine/*.cpp ext/DXViewer/src/*.cpp src/main.cpp) +FILE( GLOB HDR src/engine/*.h ext/DXViewer/src/*.h) FILE( GLOB SHD ${VS_SHD} ${PS_SHD} ) # Link Source files ('WIN32' keyword is used for win32 project) diff --git a/src/aabb.cpp b/src/engine/aabb.cpp similarity index 100% rename from src/aabb.cpp rename to src/engine/aabb.cpp diff --git a/src/aabb.h b/src/engine/aabb.h similarity index 100% rename from src/aabb.h rename to src/engine/aabb.h diff --git a/src/array3d.h b/src/engine/array3d.h similarity index 100% rename from src/array3d.h rename to src/engine/array3d.h diff --git a/src/arrayview3d.h b/src/engine/arrayview3d.h similarity index 100% rename from src/arrayview3d.h rename to src/engine/arrayview3d.h diff --git a/src/blockarray3d.h b/src/engine/blockarray3d.h similarity index 100% rename from src/blockarray3d.h rename to src/engine/blockarray3d.h diff --git a/src/boundedbuffer.h b/src/engine/boundedbuffer.h similarity index 100% rename from src/boundedbuffer.h rename to src/engine/boundedbuffer.h diff --git a/src/clscalarfield.cpp b/src/engine/clscalarfield.cpp similarity index 100% rename from src/clscalarfield.cpp rename to src/engine/clscalarfield.cpp diff --git a/src/clscalarfield.h b/src/engine/clscalarfield.h similarity index 100% rename from src/clscalarfield.h rename to src/engine/clscalarfield.h diff --git a/src/collision.cpp b/src/engine/collision.cpp similarity index 100% rename from src/collision.cpp rename to src/engine/collision.cpp diff --git a/src/collision.h b/src/engine/collision.h similarity index 100% rename from src/collision.h rename to src/engine/collision.h diff --git a/src/diffuseparticle.h b/src/engine/diffuseparticle.h similarity index 100% rename from src/diffuseparticle.h rename to src/engine/diffuseparticle.h diff --git a/src/diffuseparticlesimulation.cpp b/src/engine/diffuseparticlesimulation.cpp similarity index 100% rename from src/diffuseparticlesimulation.cpp rename to src/engine/diffuseparticlesimulation.cpp diff --git a/src/diffuseparticlesimulation.h b/src/engine/diffuseparticlesimulation.h similarity index 100% rename from src/diffuseparticlesimulation.h rename to src/engine/diffuseparticlesimulation.h diff --git a/src/fluidmaterialgrid.cpp b/src/engine/fluidmaterialgrid.cpp similarity index 100% rename from src/fluidmaterialgrid.cpp rename to src/engine/fluidmaterialgrid.cpp diff --git a/src/fluidmaterialgrid.h b/src/engine/fluidmaterialgrid.h similarity index 100% rename from src/fluidmaterialgrid.h rename to src/engine/fluidmaterialgrid.h diff --git a/src/fluidsimassert.h b/src/engine/fluidsimassert.h similarity index 100% rename from src/fluidsimassert.h rename to src/engine/fluidsimassert.h diff --git a/src/fluidsimulation.cpp b/src/engine/fluidsimulation.cpp similarity index 100% rename from src/fluidsimulation.cpp rename to src/engine/fluidsimulation.cpp diff --git a/src/fluidsimulation.h b/src/engine/fluidsimulation.h similarity index 100% rename from src/fluidsimulation.h rename to src/engine/fluidsimulation.h diff --git a/src/forcefield.cpp b/src/engine/forcefield.cpp similarity index 100% rename from src/forcefield.cpp rename to src/engine/forcefield.cpp diff --git a/src/forcefield.h b/src/engine/forcefield.h similarity index 100% rename from src/forcefield.h rename to src/engine/forcefield.h diff --git a/src/forcefieldcurve.cpp b/src/engine/forcefieldcurve.cpp similarity index 100% rename from src/forcefieldcurve.cpp rename to src/engine/forcefieldcurve.cpp diff --git a/src/forcefieldcurve.h b/src/engine/forcefieldcurve.h similarity index 100% rename from src/forcefieldcurve.h rename to src/engine/forcefieldcurve.h diff --git a/src/forcefieldgravityscalegrid.h b/src/engine/forcefieldgravityscalegrid.h similarity index 100% rename from src/forcefieldgravityscalegrid.h rename to src/engine/forcefieldgravityscalegrid.h diff --git a/src/forcefieldgrid.cpp b/src/engine/forcefieldgrid.cpp similarity index 100% rename from src/forcefieldgrid.cpp rename to src/engine/forcefieldgrid.cpp diff --git a/src/forcefieldgrid.h b/src/engine/forcefieldgrid.h similarity index 100% rename from src/forcefieldgrid.h rename to src/engine/forcefieldgrid.h diff --git a/src/forcefieldpoint.cpp b/src/engine/forcefieldpoint.cpp similarity index 100% rename from src/forcefieldpoint.cpp rename to src/engine/forcefieldpoint.cpp diff --git a/src/forcefieldpoint.h b/src/engine/forcefieldpoint.h similarity index 100% rename from src/forcefieldpoint.h rename to src/engine/forcefieldpoint.h diff --git a/src/forcefieldsurface.cpp b/src/engine/forcefieldsurface.cpp similarity index 100% rename from src/forcefieldsurface.cpp rename to src/engine/forcefieldsurface.cpp diff --git a/src/forcefieldsurface.h b/src/engine/forcefieldsurface.h similarity index 100% rename from src/forcefieldsurface.h rename to src/engine/forcefieldsurface.h diff --git a/src/forcefieldutils.cpp b/src/engine/forcefieldutils.cpp similarity index 100% rename from src/forcefieldutils.cpp rename to src/engine/forcefieldutils.cpp diff --git a/src/forcefieldutils.h b/src/engine/forcefieldutils.h similarity index 100% rename from src/forcefieldutils.h rename to src/engine/forcefieldutils.h diff --git a/src/forcefieldvolume.cpp b/src/engine/forcefieldvolume.cpp similarity index 100% rename from src/forcefieldvolume.cpp rename to src/engine/forcefieldvolume.cpp diff --git a/src/forcefieldvolume.h b/src/engine/forcefieldvolume.h similarity index 100% rename from src/forcefieldvolume.h rename to src/engine/forcefieldvolume.h diff --git a/src/fragmentedvector.h b/src/engine/fragmentedvector.h similarity index 100% rename from src/fragmentedvector.h rename to src/engine/fragmentedvector.h diff --git a/src/grid3d.h b/src/engine/grid3d.h similarity index 100% rename from src/grid3d.h rename to src/engine/grid3d.h diff --git a/src/gridindexkeymap.cpp b/src/engine/gridindexkeymap.cpp similarity index 100% rename from src/gridindexkeymap.cpp rename to src/engine/gridindexkeymap.cpp diff --git a/src/gridindexkeymap.h b/src/engine/gridindexkeymap.h similarity index 100% rename from src/gridindexkeymap.h rename to src/engine/gridindexkeymap.h diff --git a/src/gridindexvector.cpp b/src/engine/gridindexvector.cpp similarity index 100% rename from src/gridindexvector.cpp rename to src/engine/gridindexvector.cpp diff --git a/src/gridindexvector.h b/src/engine/gridindexvector.h similarity index 100% rename from src/gridindexvector.h rename to src/engine/gridindexvector.h diff --git a/src/gridutils.cpp b/src/engine/gridutils.cpp similarity index 100% rename from src/gridutils.cpp rename to src/engine/gridutils.cpp diff --git a/src/gridutils.h b/src/engine/gridutils.h similarity index 100% rename from src/gridutils.h rename to src/engine/gridutils.h diff --git a/src/influencegrid.cpp b/src/engine/influencegrid.cpp similarity index 100% rename from src/influencegrid.cpp rename to src/engine/influencegrid.cpp diff --git a/src/influencegrid.h b/src/engine/influencegrid.h similarity index 100% rename from src/influencegrid.h rename to src/engine/influencegrid.h diff --git a/src/interpolation.cpp b/src/engine/interpolation.cpp similarity index 100% rename from src/interpolation.cpp rename to src/engine/interpolation.cpp diff --git a/src/interpolation.h b/src/engine/interpolation.h similarity index 100% rename from src/interpolation.h rename to src/engine/interpolation.h diff --git a/src/kernels/kernels.cpp.in b/src/engine/kernels/kernels.cpp.in similarity index 100% rename from src/kernels/kernels.cpp.in rename to src/engine/kernels/kernels.cpp.in diff --git a/src/kernels/kernels.h b/src/engine/kernels/kernels.h similarity index 100% rename from src/kernels/kernels.h rename to src/engine/kernels/kernels.h diff --git a/src/kernels/scalarfield.cl b/src/engine/kernels/scalarfield.cl similarity index 100% rename from src/kernels/scalarfield.cl rename to src/engine/kernels/scalarfield.cl diff --git a/src/kernels/trilinearinterpolate.cl b/src/engine/kernels/trilinearinterpolate.cl similarity index 100% rename from src/kernels/trilinearinterpolate.cl rename to src/engine/kernels/trilinearinterpolate.cl diff --git a/src/levelsetsolver.cpp b/src/engine/levelsetsolver.cpp similarity index 100% rename from src/levelsetsolver.cpp rename to src/engine/levelsetsolver.cpp diff --git a/src/levelsetsolver.h b/src/engine/levelsetsolver.h similarity index 100% rename from src/levelsetsolver.h rename to src/engine/levelsetsolver.h diff --git a/src/levelsetutils.cpp b/src/engine/levelsetutils.cpp similarity index 100% rename from src/levelsetutils.cpp rename to src/engine/levelsetutils.cpp diff --git a/src/levelsetutils.h b/src/engine/levelsetutils.h similarity index 100% rename from src/levelsetutils.h rename to src/engine/levelsetutils.h diff --git a/src/logfile.cpp b/src/engine/logfile.cpp similarity index 100% rename from src/logfile.cpp rename to src/engine/logfile.cpp diff --git a/src/logfile.h b/src/engine/logfile.h similarity index 100% rename from src/logfile.h rename to src/engine/logfile.h diff --git a/src/macvelocityfield.cpp b/src/engine/macvelocityfield.cpp similarity index 100% rename from src/macvelocityfield.cpp rename to src/engine/macvelocityfield.cpp diff --git a/src/macvelocityfield.h b/src/engine/macvelocityfield.h similarity index 100% rename from src/macvelocityfield.h rename to src/engine/macvelocityfield.h diff --git a/src/markerparticle.h b/src/engine/markerparticle.h similarity index 100% rename from src/markerparticle.h rename to src/engine/markerparticle.h diff --git a/src/meshfluidsource.cpp b/src/engine/meshfluidsource.cpp similarity index 100% rename from src/meshfluidsource.cpp rename to src/engine/meshfluidsource.cpp diff --git a/src/meshfluidsource.h b/src/engine/meshfluidsource.h similarity index 100% rename from src/meshfluidsource.h rename to src/engine/meshfluidsource.h diff --git a/src/meshlevelset.cpp b/src/engine/meshlevelset.cpp similarity index 100% rename from src/meshlevelset.cpp rename to src/engine/meshlevelset.cpp diff --git a/src/meshlevelset.h b/src/engine/meshlevelset.h similarity index 100% rename from src/meshlevelset.h rename to src/engine/meshlevelset.h diff --git a/src/meshobject.cpp b/src/engine/meshobject.cpp similarity index 100% rename from src/meshobject.cpp rename to src/engine/meshobject.cpp diff --git a/src/meshobject.h b/src/engine/meshobject.h similarity index 100% rename from src/meshobject.h rename to src/engine/meshobject.h diff --git a/src/meshutils.cpp b/src/engine/meshutils.cpp similarity index 100% rename from src/meshutils.cpp rename to src/engine/meshutils.cpp diff --git a/src/meshutils.h b/src/engine/meshutils.h similarity index 100% rename from src/meshutils.h rename to src/engine/meshutils.h diff --git a/src/mingw32_threads/LICENSE b/src/engine/mingw32_threads/LICENSE similarity index 100% rename from src/mingw32_threads/LICENSE rename to src/engine/mingw32_threads/LICENSE diff --git a/src/mingw32_threads/mingw.condition_variable.h b/src/engine/mingw32_threads/mingw.condition_variable.h similarity index 100% rename from src/mingw32_threads/mingw.condition_variable.h rename to src/engine/mingw32_threads/mingw.condition_variable.h diff --git a/src/mingw32_threads/mingw.mutex.h b/src/engine/mingw32_threads/mingw.mutex.h similarity index 100% rename from src/mingw32_threads/mingw.mutex.h rename to src/engine/mingw32_threads/mingw.mutex.h diff --git a/src/mingw32_threads/mingw.thread.h b/src/engine/mingw32_threads/mingw.thread.h similarity index 100% rename from src/mingw32_threads/mingw.thread.h rename to src/engine/mingw32_threads/mingw.thread.h diff --git a/src/opencl_bindings/clcpp.cpp b/src/engine/opencl_bindings/clcpp.cpp similarity index 100% rename from src/opencl_bindings/clcpp.cpp rename to src/engine/opencl_bindings/clcpp.cpp diff --git a/src/opencl_bindings/clcpp.h b/src/engine/opencl_bindings/clcpp.h similarity index 100% rename from src/opencl_bindings/clcpp.h rename to src/engine/opencl_bindings/clcpp.h diff --git a/src/openclutils.cpp b/src/engine/openclutils.cpp similarity index 100% rename from src/openclutils.cpp rename to src/engine/openclutils.cpp diff --git a/src/openclutils.h b/src/engine/openclutils.h similarity index 100% rename from src/openclutils.h rename to src/engine/openclutils.h diff --git a/src/particleadvector.cpp b/src/engine/particleadvector.cpp similarity index 100% rename from src/particleadvector.cpp rename to src/engine/particleadvector.cpp diff --git a/src/particleadvector.h b/src/engine/particleadvector.h similarity index 100% rename from src/particleadvector.h rename to src/engine/particleadvector.h diff --git a/src/particlelevelset.cpp b/src/engine/particlelevelset.cpp similarity index 100% rename from src/particlelevelset.cpp rename to src/engine/particlelevelset.cpp diff --git a/src/particlelevelset.h b/src/engine/particlelevelset.h similarity index 100% rename from src/particlelevelset.h rename to src/engine/particlelevelset.h diff --git a/src/particlemaskgrid.cpp b/src/engine/particlemaskgrid.cpp similarity index 100% rename from src/particlemaskgrid.cpp rename to src/engine/particlemaskgrid.cpp diff --git a/src/particlemaskgrid.h b/src/engine/particlemaskgrid.h similarity index 100% rename from src/particlemaskgrid.h rename to src/engine/particlemaskgrid.h diff --git a/src/particlemesher.cpp b/src/engine/particlemesher.cpp similarity index 100% rename from src/particlemesher.cpp rename to src/engine/particlemesher.cpp diff --git a/src/particlemesher.h b/src/engine/particlemesher.h similarity index 100% rename from src/particlemesher.h rename to src/engine/particlemesher.h diff --git a/src/particlesheeter.cpp b/src/engine/particlesheeter.cpp similarity index 100% rename from src/particlesheeter.cpp rename to src/engine/particlesheeter.cpp diff --git a/src/particlesheeter.h b/src/engine/particlesheeter.h similarity index 100% rename from src/particlesheeter.h rename to src/engine/particlesheeter.h diff --git a/src/pcgsolver/blaswrapper.h b/src/engine/pcgsolver/blaswrapper.h similarity index 100% rename from src/pcgsolver/blaswrapper.h rename to src/engine/pcgsolver/blaswrapper.h diff --git a/src/pcgsolver/pcgsolver.h b/src/engine/pcgsolver/pcgsolver.h similarity index 100% rename from src/pcgsolver/pcgsolver.h rename to src/engine/pcgsolver/pcgsolver.h diff --git a/src/pcgsolver/sparsematrix.h b/src/engine/pcgsolver/sparsematrix.h similarity index 100% rename from src/pcgsolver/sparsematrix.h rename to src/engine/pcgsolver/sparsematrix.h diff --git a/src/polygonizer3d.cpp b/src/engine/polygonizer3d.cpp similarity index 100% rename from src/polygonizer3d.cpp rename to src/engine/polygonizer3d.cpp diff --git a/src/polygonizer3d.h b/src/engine/polygonizer3d.h similarity index 100% rename from src/polygonizer3d.h rename to src/engine/polygonizer3d.h diff --git a/src/pressuresolver.cpp b/src/engine/pressuresolver.cpp similarity index 100% rename from src/pressuresolver.cpp rename to src/engine/pressuresolver.cpp diff --git a/src/pressuresolver.h b/src/engine/pressuresolver.h similarity index 100% rename from src/pressuresolver.h rename to src/engine/pressuresolver.h diff --git a/src/scalarfield.cpp b/src/engine/scalarfield.cpp similarity index 100% rename from src/scalarfield.cpp rename to src/engine/scalarfield.cpp diff --git a/src/scalarfield.h b/src/engine/scalarfield.h similarity index 100% rename from src/scalarfield.h rename to src/engine/scalarfield.h diff --git a/src/spatialpointgrid.cpp b/src/engine/spatialpointgrid.cpp similarity index 100% rename from src/spatialpointgrid.cpp rename to src/engine/spatialpointgrid.cpp diff --git a/src/spatialpointgrid.h b/src/engine/spatialpointgrid.h similarity index 100% rename from src/spatialpointgrid.h rename to src/engine/spatialpointgrid.h diff --git a/src/stopwatch.cpp b/src/engine/stopwatch.cpp similarity index 100% rename from src/stopwatch.cpp rename to src/engine/stopwatch.cpp diff --git a/src/stopwatch.h b/src/engine/stopwatch.h similarity index 100% rename from src/stopwatch.h rename to src/engine/stopwatch.h diff --git a/src/subdividedarray3d.h b/src/engine/subdividedarray3d.h similarity index 100% rename from src/subdividedarray3d.h rename to src/engine/subdividedarray3d.h diff --git a/src/threadutils.cpp b/src/engine/threadutils.cpp similarity index 100% rename from src/threadutils.cpp rename to src/engine/threadutils.cpp diff --git a/src/threadutils.h b/src/engine/threadutils.h similarity index 100% rename from src/threadutils.h rename to src/engine/threadutils.h diff --git a/src/triangle.h b/src/engine/triangle.h similarity index 100% rename from src/triangle.h rename to src/engine/triangle.h diff --git a/src/trianglemesh.cpp b/src/engine/trianglemesh.cpp similarity index 100% rename from src/trianglemesh.cpp rename to src/engine/trianglemesh.cpp diff --git a/src/trianglemesh.h b/src/engine/trianglemesh.h similarity index 100% rename from src/trianglemesh.h rename to src/engine/trianglemesh.h diff --git a/src/turbulencefield.cpp b/src/engine/turbulencefield.cpp similarity index 100% rename from src/turbulencefield.cpp rename to src/engine/turbulencefield.cpp diff --git a/src/turbulencefield.h b/src/engine/turbulencefield.h similarity index 100% rename from src/turbulencefield.h rename to src/engine/turbulencefield.h diff --git a/src/velocityadvector.cpp b/src/engine/velocityadvector.cpp similarity index 100% rename from src/velocityadvector.cpp rename to src/engine/velocityadvector.cpp diff --git a/src/velocityadvector.h b/src/engine/velocityadvector.h similarity index 100% rename from src/velocityadvector.h rename to src/engine/velocityadvector.h diff --git a/src/versionutils.cpp b/src/engine/versionutils.cpp similarity index 100% rename from src/versionutils.cpp rename to src/engine/versionutils.cpp diff --git a/src/versionutils.cpp.in b/src/engine/versionutils.cpp.in similarity index 100% rename from src/versionutils.cpp.in rename to src/engine/versionutils.cpp.in diff --git a/src/versionutils.h b/src/engine/versionutils.h similarity index 100% rename from src/versionutils.h rename to src/engine/versionutils.h diff --git a/src/viscositysolver.cpp b/src/engine/viscositysolver.cpp similarity index 100% rename from src/viscositysolver.cpp rename to src/engine/viscositysolver.cpp diff --git a/src/viscositysolver.h b/src/engine/viscositysolver.h similarity index 100% rename from src/viscositysolver.h rename to src/engine/viscositysolver.h diff --git a/src/vmath.cpp b/src/engine/vmath.cpp similarity index 100% rename from src/vmath.cpp rename to src/engine/vmath.cpp diff --git a/src/vmath.h b/src/engine/vmath.h similarity index 100% rename from src/vmath.h rename to src/engine/vmath.h diff --git a/src/main.cpp b/src/main.cpp index 42a290d..1a8cdba 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,8 +25,8 @@ SOFTWARE. #include #include "../ext/DXViewer/src/Win32App.h" -#include "fluidsimulation.h" -#include "triangle.h" +#include "engine/fluidsimulation.h" +#include "engine/triangle.h" void writeSurfaceMesh(int frameno, FluidSimulation& fluidsim) { From 63e4fc0084554e1087eab792ebcb7c6db9d69bae Mon Sep 17 00:00:00 2001 From: jklee95 Date: Sun, 1 Aug 2021 21:59:36 +0900 Subject: [PATCH 11/24] feat: Add SubFluidSimulation --- CmakeLists.txt | 4 +- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 88 ++++++++++++++++++++++++++++++++++ src/SubFluidSimulation.h | 19 ++++++++ src/engine/fluidsimulation.cpp | 15 ------ src/engine/fluidsimulation.h | 5 +- src/main.cpp | 4 +- 7 files changed, 114 insertions(+), 23 deletions(-) create mode 100644 src/SubFluidSimulation.cpp create mode 100644 src/SubFluidSimulation.h diff --git a/CmakeLists.txt b/CmakeLists.txt index 58e0b2f..48fcb48 100644 --- a/CmakeLists.txt +++ b/CmakeLists.txt @@ -18,8 +18,8 @@ set_property(SOURCE ${VS_SHD} PROPERTY VS_SHADER_TYPE Vertex) set_property(SOURCE ${PS_SHD} PROPERTY VS_SHADER_TYPE Pixel) # Collect source files -FILE( GLOB SRC src/engine/*.cpp ext/DXViewer/src/*.cpp src/main.cpp) -FILE( GLOB HDR src/engine/*.h ext/DXViewer/src/*.h) +FILE( GLOB SRC src/engine/*.cpp ext/DXViewer/src/*.cpp src/*.cpp) +FILE( GLOB HDR src/engine/*.h ext/DXViewer/src/*.h src/*.h) FILE( GLOB SHD ${VS_SHD} ${PS_SHD} ) # Link Source files ('WIN32' keyword is used for win32 project) diff --git a/ext/DXViewer b/ext/DXViewer index 4e5176e..9e2ef12 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 4e5176ed2de3e8bc74ffed7f39301e7080d8cfc2 +Subproject commit 9e2ef1287030098574eff47c3f48864868937602 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp new file mode 100644 index 0000000..7c68314 --- /dev/null +++ b/src/SubFluidSimulation.cpp @@ -0,0 +1,88 @@ +#include "SubFluidSimulation.h" + + +SubFluidSimulation::SubFluidSimulation(int isize, int jsize, int ksize, double dx) + :FluidSimulation(isize, jsize, ksize, dx) +{ +} + +SubFluidSimulation::~SubFluidSimulation() +{ +} + +void SubFluidSimulation::_outputSurfaceMeshThread(std::vector* particles, + MeshLevelSet* solidSDF) +{ + if (!_isSurfaceMeshReconstructionEnabled) { return; } + + _logfile.logString(_logfile.getTime() + " BEGIN Generate Surface Mesh"); + + StopWatch t; + t.start(); + + _applyMeshingVolumeToSDF(solidSDF); + _filterParticlesOutsideMeshingVolume(particles); + + TriangleMesh isomesh, previewmesh; + _polygonizeOutputSurface(isomesh, previewmesh, particles, solidSDF); + delete particles; + delete solidSDF; + + isomesh.removeMinimumTriangleCountPolyhedra(_minimumSurfacePolyhedronTriangleCount); + + _removeMeshNearDomain(isomesh); + _smoothSurfaceMesh(isomesh); + _smoothSurfaceMesh(previewmesh); + _invertContactNormals(isomesh); + + if (_isSurfaceMotionBlurEnabled) { + TriangleMesh blurData; + blurData.vertices.reserve(isomesh.vertices.size()); + double dt = _currentFrameDeltaTime; + for (size_t i = 0; i < isomesh.vertices.size(); i++) { + vmath::vec3 p = isomesh.vertices[i]; + vmath::vec3 t = _MACVelocity.evaluateVelocityAtPositionLinear(p) * _domainScale * dt; + blurData.vertices.push_back(t); + } + + _getTriangleMeshFileData(blurData, _outputData.surfaceBlurData); + _outputData.frameData.surfaceblur.enabled = 1; + _outputData.frameData.surfaceblur.vertices = (int)blurData.vertices.size(); + _outputData.frameData.surfaceblur.triangles = (int)blurData.triangles.size(); + _outputData.frameData.surfaceblur.bytes = (unsigned int)_outputData.surfaceBlurData.size(); + } + + vmath::vec3 scale(_domainScale, _domainScale, _domainScale); + isomesh.scale(scale); + isomesh.translate(_domainOffset); + previewmesh.scale(scale); + previewmesh.translate(_domainOffset); + + _getTriangleMeshFileData(isomesh, _outputData.surfaceData); + + _outputData.frameData.surface.enabled = 1; + _outputData.frameData.surface.vertices = (int)isomesh.vertices.size(); + _outputData.frameData.surface.triangles = (int)isomesh.triangles.size(); + _outputData.frameData.surface.bytes = (unsigned int)_outputData.surfaceData.size(); + + if (_isPreviewSurfaceMeshEnabled) { + _getTriangleMeshFileData(previewmesh, _outputData.surfacePreviewData); + _outputData.frameData.preview.enabled = 1; + _outputData.frameData.preview.vertices = (int)previewmesh.vertices.size(); + _outputData.frameData.preview.triangles = (int)previewmesh.triangles.size(); + _outputData.frameData.preview.bytes = (unsigned int)_outputData.surfacePreviewData.size(); + } + + t.stop(); + _timingData.outputMeshSimulationData += t.getTime(); + + _logfile.logString(_logfile.getTime() + " COMPLETE Generate Surface Mesh"); + + isomesh2 = isomesh; + +} + +void SubFluidSimulation::IUpdate(double timestep) +{ + FluidSimulation::update(timestep); +} diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h new file mode 100644 index 0000000..a11119f --- /dev/null +++ b/src/SubFluidSimulation.h @@ -0,0 +1,19 @@ +#pragma once +#include "engine/fluidsimulation.h" +#include "engine/stopwatch.h" +#include "../ext/DXViewer/src/ISimulation.h" + +class SubFluidSimulation : public FluidSimulation, ISimulation +{ +public: + TriangleMesh isomesh2; + + SubFluidSimulation(int isize, int jsize, int ksize, double dx); + ~SubFluidSimulation(); + + void _outputSurfaceMeshThread(std::vector* particles, + MeshLevelSet* solidSDF); + + void IUpdate(double timestep) override; +}; + diff --git a/src/engine/fluidsimulation.cpp b/src/engine/fluidsimulation.cpp index a29d455..3330b66 100644 --- a/src/engine/fluidsimulation.cpp +++ b/src/engine/fluidsimulation.cpp @@ -5207,21 +5207,6 @@ void FluidSimulation::_outputSurfaceMeshThread(std::vector *particl t.stop(); _timingData.outputMeshSimulationData += t.getTime(); - /*for (int i = 0; i < 3; i++) - { - std::cout << isomesh.vertices[i] << " /\n"; - } - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 3; j++) - { - std::cout << isomesh.triangles[i].tri[j] << " /"; - } - std::cout << "\n"; - }*/ - std::cout << isomesh.vertices.size() << " /\n"; - - isomesh2 = isomesh; _logfile.logString(_logfile.getTime() + " COMPLETE Generate Surface Mesh"); } diff --git a/src/engine/fluidsimulation.h b/src/engine/fluidsimulation.h index 8977260..3957a00 100644 --- a/src/engine/fluidsimulation.h +++ b/src/engine/fluidsimulation.h @@ -118,7 +118,6 @@ class FluidSimulation { public: FluidSimulation(); - TriangleMesh isomesh2; /* Constructs a FluidSimulation object with grid dimensions @@ -1127,7 +1126,7 @@ class FluidSimulation void loadMarkerParticleData(FluidSimulationMarkerParticleData data); void loadDiffuseParticleData(FluidSimulationDiffuseParticleData data); -private: +protected: struct FluidMeshObject { MeshObject object; @@ -1424,7 +1423,7 @@ class FluidSimulation Output Simulation Data */ void _outputSimulationData(); - void _outputSurfaceMeshThread(std::vector *particles, + virtual void _outputSurfaceMeshThread(std::vector *particles, MeshLevelSet *solidSDF); void _updateMeshingVolumeSDF(); void _applyMeshingVolumeToSDF(MeshLevelSet *sdf); diff --git a/src/main.cpp b/src/main.cpp index 1a8cdba..1391ed7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,7 +25,7 @@ SOFTWARE. #include #include "../ext/DXViewer/src/Win32App.h" -#include "engine/fluidsimulation.h" +#include "SubFluidSimulation.h" #include "engine/triangle.h" @@ -75,7 +75,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, in int jsize = 40; int ksize = 40; double dx = 0.125; - FluidSimulation* fluidsim = new FluidSimulation(isize, jsize, ksize, dx); + SubFluidSimulation* fluidsim = new SubFluidSimulation(isize, jsize, ksize, dx); fluidsim->setSurfaceSubdivisionLevel(2); From 2f6d0a53c1503fd517a70cb8909d024b2209b70e Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 2 Aug 2021 01:10:57 +0900 Subject: [PATCH 12/24] feat: Add IGetVertice() --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 16 ++++++++++++++++ src/SubFluidSimulation.h | 1 + src/main.cpp | 6 +++--- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 9e2ef12..42b9610 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 9e2ef1287030098574eff47c3f48864868937602 +Subproject commit 42b96109d875b1c7f42aff90a3e173c95a42a026 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index 7c68314..0b41cd2 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -1,5 +1,6 @@ #include "SubFluidSimulation.h" +using namespace std; SubFluidSimulation::SubFluidSimulation(int isize, int jsize, int ksize, double dx) :FluidSimulation(isize, jsize, ksize, dx) @@ -86,3 +87,18 @@ void SubFluidSimulation::IUpdate(double timestep) { FluidSimulation::update(timestep); } + +vector SubFluidSimulation::IGetVertice() +{ + vector vertice; + vertice.clear(); + + for (int i = 0; i < isomesh2.vertices.size(); i++) + { + vertice.push_back(isomesh2.vertices[i].x); + vertice.push_back(isomesh2.vertices[i].y); + vertice.push_back(isomesh2.vertices[i].z); + } + + return vertice; +} diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index a11119f..861d74e 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -15,5 +15,6 @@ class SubFluidSimulation : public FluidSimulation, ISimulation MeshLevelSet* solidSDF); void IUpdate(double timestep) override; + std::vector IGetVertice() override; }; diff --git a/src/main.cpp b/src/main.cpp index 1391ed7..ada6453 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -71,9 +71,9 @@ TriangleMesh getTriangleMeshFromAABB(AABB bbox) { int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { - int isize = 40; - int jsize = 40; - int ksize = 40; + int isize = 64; + int jsize = 64; + int ksize = 64; double dx = 0.125; SubFluidSimulation* fluidsim = new SubFluidSimulation(isize, jsize, ksize, dx); From 9f7f417b14826acb578c4a1b000d0ec7ffe04a0a Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 2 Aug 2021 01:19:09 +0900 Subject: [PATCH 13/24] feat: Add IGetIndice() --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 18 ++++++++++++++++++ src/SubFluidSimulation.h | 1 + src/main.cpp | 6 +++--- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 42b9610..888784e 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 42b96109d875b1c7f42aff90a3e173c95a42a026 +Subproject commit 888784e6af7cd3c9aebbdd5f351bcaf896840cdd diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index 0b41cd2..576f025 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -102,3 +102,21 @@ vector SubFluidSimulation::IGetVertice() return vertice; } + +vector SubFluidSimulation::IGetIndice() +{ + vector indice; + indice.clear(); + + for (int i = 0; i < isomesh2.triangles.size(); i++) + { + for (int j = 0; j < 3; j++) + { + unsigned int a = static_cast(isomesh2.triangles[i].tri[j]); + indice.push_back(a); + } + //std::cout << "\n"; + } + + return indice; +} diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 861d74e..7036b5d 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -16,5 +16,6 @@ class SubFluidSimulation : public FluidSimulation, ISimulation void IUpdate(double timestep) override; std::vector IGetVertice() override; + std::vector IGetIndice() override; }; diff --git a/src/main.cpp b/src/main.cpp index ada6453..1391ed7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -71,9 +71,9 @@ TriangleMesh getTriangleMeshFromAABB(AABB bbox) { int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { - int isize = 64; - int jsize = 64; - int ksize = 64; + int isize = 40; + int jsize = 40; + int ksize = 40; double dx = 0.125; SubFluidSimulation* fluidsim = new SubFluidSimulation(isize, jsize, ksize, dx); From ba1f60ba920a1cc8d1fbd7da3eb22ea9f8d6a16d Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 2 Aug 2021 01:36:06 +0900 Subject: [PATCH 14/24] feat: Change inheritance keyword --- ext/DXViewer | 2 +- src/SubFluidSimulation.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 888784e..e877a4a 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 888784e6af7cd3c9aebbdd5f351bcaf896840cdd +Subproject commit e877a4a1cba98e1533424950cb0a506edaf9d1ca diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 7036b5d..91e35ca 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -3,7 +3,7 @@ #include "engine/stopwatch.h" #include "../ext/DXViewer/src/ISimulation.h" -class SubFluidSimulation : public FluidSimulation, ISimulation +class SubFluidSimulation : public FluidSimulation, public ISimulation { public: TriangleMesh isomesh2; From a2fa90440acd84ac19a5134114cbb8437a41981f Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 2 Aug 2021 03:52:31 +0900 Subject: [PATCH 15/24] refactor: Move main functions to SubFluidS..class --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 68 ++++++++++++++++++++++ src/SubFluidSimulation.h | 8 ++- src/engine/fluidsimulation.h | 4 +- src/main.cpp | 107 +++-------------------------------- 5 files changed, 87 insertions(+), 102 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index e877a4a..2ddf65a 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit e877a4a1cba98e1533424950cb0a506edaf9d1ca +Subproject commit 2ddf65a9b7a74e3598ccf2927c1f1114f3c436e8 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index 576f025..a7d6471 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -83,9 +83,77 @@ void SubFluidSimulation::_outputSurfaceMeshThread(std::vector* part } + +void SubFluidSimulation::writeSurfaceMesh(int frameno) { + std::ostringstream ss; + ss << frameno; + std::string frameString = ss.str(); + //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); + std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; + + std::vector* data = getSurfaceData(); + std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); + ply.write(data->data(), data->size()); + ply.close(); +} + +TriangleMesh SubFluidSimulation::getTriangleMeshFromAABB(AABB bbox) { + vmath::vec3 p = bbox.position; + std::vector verts{ + vmath::vec3(p.x, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z), + vmath::vec3(p.x + bbox.width, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z), + vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z + bbox.depth), + vmath::vec3(p.x, p.y + bbox.height, p.z + bbox.depth) + }; + + std::vector tris{ + Triangle(0, 1, 2), Triangle(0, 2, 3), Triangle(4, 7, 6), Triangle(4, 6, 5), + Triangle(0, 3, 7), Triangle(0, 7, 4), Triangle(1, 5, 6), Triangle(1, 6, 2), + Triangle(0, 4, 5), Triangle(0, 5, 1), Triangle(3, 2, 6), Triangle(3, 6, 7) + }; + + TriangleMesh m; + m.vertices = verts; + m.triangles = tris; + + return m; +} + + +void SubFluidSimulation::initialize() +{ + setSurfaceSubdivisionLevel(2); + + double x, y, z; + getSimulationDimensions(&x, &y, &z); + + double boxWidth = (1.0 / 3.0) * x; + double boxHeight = (1.0 / 3.0) * y; + double boxDepth = (1.0 / 3.0) * z; + vmath::vec3 boxPosition(0.5 * (x - boxWidth), 0.5 * (y - boxHeight), 0.5 * (z - boxDepth)); + AABB box(boxPosition, boxWidth, boxHeight, boxDepth); + TriangleMesh boxMesh = getTriangleMeshFromAABB(box); + MeshObject boxFluidObject(_isize, _jsize, _ksize, _dx); + boxFluidObject.updateMeshStatic(boxMesh); + addMeshFluid(boxFluidObject); + + addBodyForce(0.0, -25.0, 0.0); + FluidSimulation::initialize(); + +} + + + + void SubFluidSimulation::IUpdate(double timestep) { + int frameno = getCurrentFrame(); FluidSimulation::update(timestep); + writeSurfaceMesh(frameno); } vector SubFluidSimulation::IGetVertice() diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 91e35ca..318b13a 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -2,6 +2,7 @@ #include "engine/fluidsimulation.h" #include "engine/stopwatch.h" #include "../ext/DXViewer/src/ISimulation.h" +#include class SubFluidSimulation : public FluidSimulation, public ISimulation { @@ -12,7 +13,12 @@ class SubFluidSimulation : public FluidSimulation, public ISimulation ~SubFluidSimulation(); void _outputSurfaceMeshThread(std::vector* particles, - MeshLevelSet* solidSDF); + MeshLevelSet* solidSDF) override; + + void writeSurfaceMesh(int frameno); + TriangleMesh getTriangleMeshFromAABB(AABB bbox); + + void initialize() override; void IUpdate(double timestep) override; std::vector IGetVertice() override; diff --git a/src/engine/fluidsimulation.h b/src/engine/fluidsimulation.h index 3957a00..13e458d 100644 --- a/src/engine/fluidsimulation.h +++ b/src/engine/fluidsimulation.h @@ -126,7 +126,7 @@ class FluidSimulation */ FluidSimulation(int isize, int jsize, int ksize, double dx); - ~FluidSimulation(); + virtual ~FluidSimulation(); /* Retrieve the simulator version @@ -144,7 +144,7 @@ class FluidSimulation Must be called before running update() method. */ - void initialize(); + virtual void initialize(); bool isInitialized(); /* diff --git a/src/main.cpp b/src/main.cpp index 1391ed7..d081410 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,115 +1,26 @@ -/* -MIT License - -Copyright (C) 2020 Ryan L. Guy - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include - #include "../ext/DXViewer/src/Win32App.h" #include "SubFluidSimulation.h" -#include "engine/triangle.h" - - -void writeSurfaceMesh(int frameno, FluidSimulation& fluidsim) { - std::ostringstream ss; - ss << frameno; - std::string frameString = ss.str(); - //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); - std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; - - std::vector* data = fluidsim.getSurfaceData(); - std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); - ply.write(data->data(), data->size()); - ply.close(); -} - -TriangleMesh getTriangleMeshFromAABB(AABB bbox) { - vmath::vec3 p = bbox.position; - std::vector verts{ - vmath::vec3(p.x, p.y, p.z), - vmath::vec3(p.x + bbox.width, p.y, p.z), - vmath::vec3(p.x + bbox.width, p.y, p.z + bbox.depth), - vmath::vec3(p.x, p.y, p.z + bbox.depth), - vmath::vec3(p.x, p.y + bbox.height, p.z), - vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z), - vmath::vec3(p.x + bbox.width, p.y + bbox.height, p.z + bbox.depth), - vmath::vec3(p.x, p.y + bbox.height, p.z + bbox.depth) - }; - - std::vector tris{ - Triangle(0, 1, 2), Triangle(0, 2, 3), Triangle(4, 7, 6), Triangle(4, 6, 5), - Triangle(0, 3, 7), Triangle(0, 7, 4), Triangle(1, 5, 6), Triangle(1, 6, 2), - Triangle(0, 4, 5), Triangle(0, 5, 1), Triangle(3, 2, 6), Triangle(3, 6, 7) - }; - - TriangleMesh m; - m.vertices = verts; - m.triangles = tris; - - return m; -} - int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { - int isize = 40; - int jsize = 40; - int ksize = 40; + int isize = 20; + int jsize = 20; + int ksize = 20; double dx = 0.125; SubFluidSimulation* fluidsim = new SubFluidSimulation(isize, jsize, ksize, dx); - fluidsim->setSurfaceSubdivisionLevel(2); - - double x, y, z; - fluidsim->getSimulationDimensions(&x, &y, &z); - - double boxWidth = (1.0 / 3.0) * x; - double boxHeight = (1.0 / 3.0) * y; - double boxDepth = (1.0 / 3.0) * z; - vmath::vec3 boxPosition(0.5 * (x - boxWidth), 0.5 * (y - boxHeight), 0.5 * (z - boxDepth)); - AABB box(boxPosition, boxWidth, boxHeight, boxDepth); - TriangleMesh boxMesh = getTriangleMeshFromAABB(box); - MeshObject boxFluidObject(isize, jsize, ksize, dx); - boxFluidObject.updateMeshStatic(boxMesh); - fluidsim->addMeshFluid(boxFluidObject); - - fluidsim->addBodyForce(0.0, -25.0, 0.0); fluidsim->initialize(); - double timestep = 1.0 / 30.0; - for (int i = 0; i < 1; i++) { - int frameno = fluidsim->getCurrentFrame(); - fluidsim->update(timestep); - writeSurfaceMesh(frameno, *fluidsim); - } - - int width = 800; - int height = 600; + double timestep = 1.0 / 30.0; - Win32App winApp(width, height); + Win32App winApp(800, 600); winApp.Initialize(hInstance); - winApp.InitDirectX(fluidsim, timestep); + DX12App* dxapp = new DX12App(); + dxapp->SetSimulation(fluidsim, timestep); + + winApp.InitDirectX(dxapp); return winApp.Run(); } \ No newline at end of file From 207e25edb1065eaa65ee914704a754277bba3c6b Mon Sep 17 00:00:00 2001 From: jklee95 Date: Mon, 2 Aug 2021 04:01:27 +0900 Subject: [PATCH 16/24] feat: Relocate codes about class keyword --- src/SubFluidSimulation.h | 18 ++++++++++-------- src/main.cpp | 10 ++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 318b13a..89aabcb 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -1,25 +1,27 @@ #pragma once +#include #include "engine/fluidsimulation.h" #include "engine/stopwatch.h" #include "../ext/DXViewer/src/ISimulation.h" -#include class SubFluidSimulation : public FluidSimulation, public ISimulation { -public: +private: TriangleMesh isomesh2; + void _outputSurfaceMeshThread(std::vector* particles, MeshLevelSet* solidSDF) override; - SubFluidSimulation(int isize, int jsize, int ksize, double dx); - ~SubFluidSimulation(); - - void _outputSurfaceMeshThread(std::vector* particles, - MeshLevelSet* solidSDF) override; - + // The ones originally in main.cpp void writeSurfaceMesh(int frameno); TriangleMesh getTriangleMeshFromAABB(AABB bbox); + +public: + SubFluidSimulation(int isize, int jsize, int ksize, double dx); + ~SubFluidSimulation(); + void initialize() override; + // Functions for virtual class void IUpdate(double timestep) override; std::vector IGetVertice() override; std::vector IGetIndice() override; diff --git a/src/main.cpp b/src/main.cpp index d081410..fff470d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,19 +7,17 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, in int jsize = 20; int ksize = 20; double dx = 0.125; + double timestep = 1.0 / 30.0; + SubFluidSimulation* fluidsim = new SubFluidSimulation(isize, jsize, ksize, dx); - fluidsim->initialize(); - - double timestep = 1.0 / 30.0; + DX12App* dxapp = new DX12App(); + dxapp->SetSimulation(fluidsim, timestep); Win32App winApp(800, 600); winApp.Initialize(hInstance); - DX12App* dxapp = new DX12App(); - dxapp->SetSimulation(fluidsim, timestep); - winApp.InitDirectX(dxapp); return winApp.Run(); From c60958acd07d7d7a2622f1d0242db92b589b5794 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Mon, 2 Aug 2021 06:43:00 +0900 Subject: [PATCH 17/24] feat: Change vertex buffer type to Vertex --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 13 ++++++++----- src/SubFluidSimulation.h | 4 ++-- src/main.cpp | 1 - 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 2ddf65a..a38892d 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 2ddf65a9b7a74e3598ccf2927c1f1114f3c436e8 +Subproject commit a38892d5652bb234ad41d96c0e1a744e3279bc41 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index a7d6471..ac327d6 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -156,16 +156,19 @@ void SubFluidSimulation::IUpdate(double timestep) writeSurfaceMesh(frameno); } -vector SubFluidSimulation::IGetVertice() +vector SubFluidSimulation::IGetVertice() { - vector vertice; + vector vertice; vertice.clear(); for (int i = 0; i < isomesh2.vertices.size(); i++) { - vertice.push_back(isomesh2.vertices[i].x); - vertice.push_back(isomesh2.vertices[i].y); - vertice.push_back(isomesh2.vertices[i].z); + Vertex v; + v.pos.x = isomesh2.vertices[i].x; + v.pos.y = isomesh2.vertices[i].y; + v.pos.z = isomesh2.vertices[i].z; + + vertice.push_back(v); } return vertice; diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 89aabcb..1234fbf 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -2,7 +2,7 @@ #include #include "engine/fluidsimulation.h" #include "engine/stopwatch.h" -#include "../ext/DXViewer/src/ISimulation.h" +#include "../ext/DXViewer/src/Win32App.h" // This includes ISimulation.h class SubFluidSimulation : public FluidSimulation, public ISimulation { @@ -23,7 +23,7 @@ class SubFluidSimulation : public FluidSimulation, public ISimulation // Functions for virtual class void IUpdate(double timestep) override; - std::vector IGetVertice() override; + std::vector IGetVertice() override; std::vector IGetIndice() override; }; diff --git a/src/main.cpp b/src/main.cpp index fff470d..d20f31e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,3 @@ -#include "../ext/DXViewer/src/Win32App.h" #include "SubFluidSimulation.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) From 8958de865285faa15e12b3026cad5bfebc50e754 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Mon, 2 Aug 2021 07:11:12 +0900 Subject: [PATCH 18/24] feat: Implement normal vector computation This calculation does not store any values. --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 44 +++++++++++++++++++++++++++++++++++++- src/main.cpp | 2 +- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index a38892d..8769fc9 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit a38892d5652bb234ad41d96c0e1a744e3279bc41 +Subproject commit 8769fc99c33a957861ddd04a3363ab76b2ec1b00 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index ac327d6..7ffdf1b 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -1,6 +1,8 @@ #include "SubFluidSimulation.h" using namespace std; +using namespace vmath; +using namespace DirectX; SubFluidSimulation::SubFluidSimulation(int isize, int jsize, int ksize, double dx) :FluidSimulation(isize, jsize, ksize, dx) @@ -159,7 +161,7 @@ void SubFluidSimulation::IUpdate(double timestep) vector SubFluidSimulation::IGetVertice() { vector vertice; - vertice.clear(); + vector normal; for (int i = 0; i < isomesh2.vertices.size(); i++) { @@ -168,9 +170,49 @@ vector SubFluidSimulation::IGetVertice() v.pos.y = isomesh2.vertices[i].y; v.pos.z = isomesh2.vertices[i].z; + normal.push_back(vec3(0.0f, 0.0f, 0.0f)); + vertice.push_back(v); } + + for (int i = 0; i < isomesh2.triangles.size(); i++) + { + int i0 = isomesh2.triangles[i].tri[0]; + int i1 = isomesh2.triangles[i].tri[1]; + int i2 = isomesh2.triangles[i].tri[2]; + + + vec3 v0; + v0.x = vertice[i0].pos.x; + v0.y = vertice[i0].pos.y; + v0.z = vertice[i0].pos.z; + + vec3 v1; + v1.x = vertice[i1].pos.x; + v1.y = vertice[i1].pos.y; + v1.z = vertice[i1].pos.z; + + vec3 v2; + v2.x = vertice[i2].pos.x; + v2.y = vertice[i2].pos.y; + v2.z = vertice[i2].pos.z; + + vec3 e0 = v1 - v0; + vec3 e1 = v2 - v0; + vec3 faceN = cross(e0, e1); + + normal[i0] += faceN; + normal[i1] += faceN; + normal[i2] += faceN; + } + + + //for (int i = 0; i < isomesh2.vertices.size(); i++) + //{ + // vertice[i].nor = normalize(vertice[i].nor); + //} + return vertice; } diff --git a/src/main.cpp b/src/main.cpp index d20f31e..a4e8d4c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,4 @@ -#include "SubFluidSimulation.h" +#include "SubFluidSimulation.h" // This includes Win32App.h int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { From 812bdd2065ebbbb596e5acaf90551dfe932ee031 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Mon, 2 Aug 2021 07:30:58 +0900 Subject: [PATCH 19/24] feat: Store normal vector in Vertex --- ext/DXViewer | 2 +- src/SubFluidSimulation.cpp | 28 ++++++++++------------------ 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 8769fc9..2bddb1e 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 8769fc99c33a957861ddd04a3363ab76b2ec1b00 +Subproject commit 2bddb1e23dafa79befd715d25cf4c64a4fb7e49f diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index 7ffdf1b..fb6635e 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -183,20 +183,9 @@ vector SubFluidSimulation::IGetVertice() int i2 = isomesh2.triangles[i].tri[2]; - vec3 v0; - v0.x = vertice[i0].pos.x; - v0.y = vertice[i0].pos.y; - v0.z = vertice[i0].pos.z; - - vec3 v1; - v1.x = vertice[i1].pos.x; - v1.y = vertice[i1].pos.y; - v1.z = vertice[i1].pos.z; - - vec3 v2; - v2.x = vertice[i2].pos.x; - v2.y = vertice[i2].pos.y; - v2.z = vertice[i2].pos.z; + vec3 v0 = isomesh2.vertices[i0]; + vec3 v1 = isomesh2.vertices[i1]; + vec3 v2 = isomesh2.vertices[i2]; vec3 e0 = v1 - v0; vec3 e1 = v2 - v0; @@ -208,10 +197,13 @@ vector SubFluidSimulation::IGetVertice() } - //for (int i = 0; i < isomesh2.vertices.size(); i++) - //{ - // vertice[i].nor = normalize(vertice[i].nor); - //} + for (int i = 0; i < isomesh2.vertices.size(); i++) + { + vec3 nor = normalize(normal[i]); + vertice[i].nor.x = nor.x; + vertice[i].nor.y = nor.y; + vertice[i].nor.z = nor.z; + } return vertice; } From 58d04fe79cde18052028e4e977bea792a818ea7b Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Mon, 2 Aug 2021 09:53:14 +0900 Subject: [PATCH 20/24] feat: Change some values --- ext/DXViewer | 2 +- src/main.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/DXViewer b/ext/DXViewer index 2bddb1e..8c8ec8d 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 2bddb1e23dafa79befd715d25cf4c64a4fb7e49f +Subproject commit 8c8ec8dd82b812016bf4edb087c0a678dda4401a diff --git a/src/main.cpp b/src/main.cpp index a4e8d4c..d4f92af 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,9 +2,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { - int isize = 20; - int jsize = 20; - int ksize = 20; + int isize = 40; + int jsize = 40; + int ksize = 40; double dx = 0.125; double timestep = 1.0 / 30.0; From 9b4e5b3422fdf8172f4342bc84990330933f2c6a Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Wed, 4 Aug 2021 09:39:59 +0900 Subject: [PATCH 21/24] chore: Include DXViewer as a library --- CmakeLists.txt | 24 +++++++++--------------- ext/DXViewer | 2 +- src/SubFluidSimulation.h | 2 +- src/main.cpp | 6 ++++++ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/CmakeLists.txt b/CmakeLists.txt index 48fcb48..b9a823b 100644 --- a/CmakeLists.txt +++ b/CmakeLists.txt @@ -4,23 +4,17 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.19.0) SET( PROJECT_NAME FlipEngine ) PROJECT(${PROJECT_NAME}) -# Define character set as Unicode -add_definitions(-DUNICODE -D_UNICODE) +INCLUDE_DIRECTORIES(ext/DXViewer/src) #$<$:${CMAKE_SOURCE_DIR}/ext> +LINK_DIRECTORIES($<$:${CMAKE_SOURCE_DIR}/ext/DXViewer/Debug>) -# add_subdirectory(ext/DXViewer) - -# Collect shader files -FILE( GLOB VS_SHD ext/DXViewer/shader/vertexShader.hlsl ) -FILE( GLOB PS_SHD ext/DXViewer/shader/fragShader.hlsl ) - -# Set the shader type of files -set_property(SOURCE ${VS_SHD} PROPERTY VS_SHADER_TYPE Vertex) -set_property(SOURCE ${PS_SHD} PROPERTY VS_SHADER_TYPE Pixel) +# Copy DLLS +FILE(GLOB DLL ext/DXViewer/Debug/DXViewer.dll) +FILE(COPY ${DLL} DESTINATION ${CMAKE_BINARY_DIR}) # Collect source files -FILE( GLOB SRC src/engine/*.cpp ext/DXViewer/src/*.cpp src/*.cpp) -FILE( GLOB HDR src/engine/*.h ext/DXViewer/src/*.h src/*.h) -FILE( GLOB SHD ${VS_SHD} ${PS_SHD} ) +FILE( GLOB SRC src/engine/*.cpp src/*.cpp) +FILE( GLOB HDR src/engine/*.h src/*.h) # Link Source files ('WIN32' keyword is used for win32 project) -ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${SRC} ${HDR} ${SHD} ) \ No newline at end of file +ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${SRC} ${HDR} ) +TARGET_LINK_LIBRARIES( ${PROJECT_NAME} DXViewer.lib ) \ No newline at end of file diff --git a/ext/DXViewer b/ext/DXViewer index 8c8ec8d..e70b723 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit 8c8ec8dd82b812016bf4edb087c0a678dda4401a +Subproject commit e70b7239ce1d2b09e8b8eb2dd07f2b834494a71d diff --git a/src/SubFluidSimulation.h b/src/SubFluidSimulation.h index 1234fbf..f439efb 100644 --- a/src/SubFluidSimulation.h +++ b/src/SubFluidSimulation.h @@ -2,7 +2,7 @@ #include #include "engine/fluidsimulation.h" #include "engine/stopwatch.h" -#include "../ext/DXViewer/src/Win32App.h" // This includes ISimulation.h +#include "Win32App.h" // This includes ISimulation.h class SubFluidSimulation : public FluidSimulation, public ISimulation { diff --git a/src/main.cpp b/src/main.cpp index d4f92af..d92eeda 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,11 @@ +// Console window is displayed in debug mode. +#ifdef _DEBUG +#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") +#endif + #include "SubFluidSimulation.h" // This includes Win32App.h + int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, PSTR cmdLine, int showCmd) { int isize = 40; From 3aeaf6e1d83a78b37172d20b6bb5572509b84d33 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Wed, 4 Aug 2021 10:27:53 +0900 Subject: [PATCH 22/24] file: Modify directory where ply files are saved --- ply/fluid_0.ply | Bin 0 -> 190958 bytes src/SubFluidSimulation.cpp | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 ply/fluid_0.ply diff --git a/ply/fluid_0.ply b/ply/fluid_0.ply new file mode 100644 index 0000000000000000000000000000000000000000..bd17566b156c12cba577f3c6cfe59456a4107a30 GIT binary patch literal 190958 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

(Q8hCw~0AYPB#|s_@ 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 literal 0 HcmV?d00001 diff --git a/src/SubFluidSimulation.cpp b/src/SubFluidSimulation.cpp index fb6635e..8a3f01b 100644 --- a/src/SubFluidSimulation.cpp +++ b/src/SubFluidSimulation.cpp @@ -91,7 +91,7 @@ void SubFluidSimulation::writeSurfaceMesh(int frameno) { ss << frameno; std::string frameString = ss.str(); //frameString.insert(frameString.begin(), 6 - frameString.size(), '0'); - std::string filepath = "C:/tmp/fluid_" + frameString + ".ply"; + std::string filepath = "ply/fluid_" + frameString + ".ply"; std::vector* data = getSurfaceData(); std::ofstream ply(filepath.c_str(), std::ios::out | std::ios::binary); From d4d0a2b323988f906cc282379dad74e51e132b43 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Wed, 4 Aug 2021 17:29:27 +0900 Subject: [PATCH 23/24] chore: Set directory according to build type Build types include debug and release. --- CmakeLists.txt | 21 ++++++++++++++------- ext/DXViewer | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CmakeLists.txt b/CmakeLists.txt index b9a823b..e0f732e 100644 --- a/CmakeLists.txt +++ b/CmakeLists.txt @@ -4,17 +4,24 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.19.0) SET( PROJECT_NAME FlipEngine ) PROJECT(${PROJECT_NAME}) -INCLUDE_DIRECTORIES(ext/DXViewer/src) #$<$:${CMAKE_SOURCE_DIR}/ext> -LINK_DIRECTORIES($<$:${CMAKE_SOURCE_DIR}/ext/DXViewer/Debug>) +# Set configuration types +Set(CMAKE_CONFIGURATION_TYPES Debug Release) -# Copy DLLS -FILE(GLOB DLL ext/DXViewer/Debug/DXViewer.dll) +# Set the include/lib directory +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/ext/DXViewer/DXViewer-1.0.0/include) +LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/ext/DXViewer/DXViewer-1.0.0/lib) + +# Copy DLLs +FILE(GLOB DLL ${CMAKE_SOURCE_DIR}/ext/DXViewer/DXViewer-1.0.0/bin/*.dll) FILE(COPY ${DLL} DESTINATION ${CMAKE_BINARY_DIR}) # Collect source files -FILE( GLOB SRC src/engine/*.cpp src/*.cpp) -FILE( GLOB HDR src/engine/*.h src/*.h) +FILE( GLOB SRC ${CMAKE_SOURCE_DIR}/src/engine/*.cpp ${CMAKE_SOURCE_DIR}/src/*.cpp) +FILE( GLOB HDR ${CMAKE_SOURCE_DIR}/src/engine/*.h ${CMAKE_SOURCE_DIR}/src/*.h) # Link Source files ('WIN32' keyword is used for win32 project) ADD_EXECUTABLE( ${PROJECT_NAME} WIN32 ${SRC} ${HDR} ) -TARGET_LINK_LIBRARIES( ${PROJECT_NAME} DXViewer.lib ) \ No newline at end of file + +# Set 'Additional Dependencies' +SET(LIB $<$:DXViewer.lib> $<$:DXViewerRel.lib>) +TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${LIB}) \ No newline at end of file diff --git a/ext/DXViewer b/ext/DXViewer index e70b723..dc99578 160000 --- a/ext/DXViewer +++ b/ext/DXViewer @@ -1 +1 @@ -Subproject commit e70b7239ce1d2b09e8b8eb2dd07f2b834494a71d +Subproject commit dc995781e89bece9122287bb10655ca398a537f4 From 1460bb2dbd30ab58a6914f25d5c964e62deff857 Mon Sep 17 00:00:00 2001 From: "J. K. Lee" Date: Wed, 4 Aug 2021 17:30:19 +0900 Subject: [PATCH 24/24] chore: Update gitignore to ignore ply files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 332e186..338685b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ # Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudio,c++,cmake +### Custon ### +*.ply ### C++ ### # Prerequisites