Используйте & quot; custom & quot; грех и кос в glm :: вращаться

Есть ли способ использовать мой собственный sin а также cos функции вместо ::std::sin а также ::std::cos в glm::rotate(...) звонки?

Единственный способ, которым я могу придумать, это использовать макросы для замены sin а также cos символы внутри std пространство имен, но я действительно не хотел бы этого делать.

1

Решение

Использование LD preload будет работать.

Я объясню на небольшом примере.

Предположим, что это наш основной код …

int main()
{
std::cout<< std::sin(1000);
return 0;
}

если я скомпилирую и запусту его, он должен вывести 0.82688

Теперь я определяю свой грех

mysin.hpp

extern "C"{
double sin(double);
}

mysin.cpp

#include "mysin.hpp"
double sin(double in)
{
return in + 10;//do you computation here
}

Теперь скомпилируйте его как общую библиотеку

g++ -O2 -c -fPIC mysin.cpp -o mysin.o
g++ -shared -Wl,-soname,libmysin.so mysin.o -o libmysin.so

Предполагая, что оригинальная программа скомпилирована как «a.out». Запустите его с нашей предустановленной библиотекой

LD_PRELOAD=./libmysin.so ./a.out

Теперь результат будет «1010».

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]