小编Joe*_*Joe的帖子

如何为IronPython访问包装C++代码

我有一个简单的例子,我想从Ironpython访问(我来自'常规/理智'python')所以我正在努力将我的C++代码导入Ironpython.通常我只是使用SWIG,包装我的代码,导入并继续我的快乐方式

但是,由于Ironpython是C#而不是C语言,这使得这个过程变得更加困难

我如何为ironpython包装这个类(我还为此示例附加了我的swig文件,但这可能没用)

#include "minimal.h"


double average(std::vector<int> v) {
    return std::accumulate(v.begin(), v.end(), 0.0) / v.size();
}

std::vector<double> half(const std::vector<double>& v) {
    std::vector<double> w(v);
    for (unsigned int i = 0; i<w.size(); i++)
        w[i] /= 2.0;
    return w;
}

void halve_in_place(std::vector<double>& v) {
    std::transform(v.begin(), v.end(), v.begin(),
        std::bind2nd(std::divides<double>(), 2.0));
}
Run Code Online (Sandbox Code Playgroud)

用头文件

#include <vector>
#include <algorithm>
#include <functional>
#include <numeric>

double average(std::vector<int> v);

std::vector<double> half(const std::vector<double>& v);

void halve_in_place(std::vector<double>& v);
Run Code Online (Sandbox Code Playgroud)

我有一个swig i文件minimal.i,但意识到有很多问题发出一个swig.exe -c ++ -python"%(FullPath)",并且铁蟒实际上在导入时接受它.

%module transfervector
%{
#include "minimal.h"
%}

%include "std_vector.i"
// …
Run Code Online (Sandbox Code Playgroud)

c++ python swig ironpython cpython

5
推荐指数
1
解决办法
416
查看次数

旋转一组矢量

我试图将我采样的一组矢量旋转到三角形的法线

如果这是正确的,随机抽样的半球将与三角形对齐.

目前我在Z轴上生成它并尝试将所有样本旋转到三角形的法线.

但它似乎"刚刚关闭"

在此输入图像描述

glm::quat getQuat(glm::vec3 v1, glm::vec3 v2)
{

    glm::quat myQuat;
    float dot = glm::dot(v1, v2);
    if (dot != 1)
    {
        glm::vec3 aa = glm::normalize(glm::cross(v1, v2));
        float w = sqrt(glm::length(v1)*glm::length(v1) * glm::length(v2)*glm::length(v2)) + dot;
        myQuat.x = aa.x;
        myQuat.y = aa.y;
        myQuat.z = aa.z;
        myQuat.w = w;
    }
    return myQuat;
}
Run Code Online (Sandbox Code Playgroud)

我从本页底部提取的内容:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors

然后我 :

glm::vec3 zaxis = glm::normalize( glm::vec3(0, 0, 1) );  // hardcoded but test orginal axis
glm::vec3 n1 = glm::normalize( glm::cross((p2 - p1), (p3 - …
Run Code Online (Sandbox Code Playgroud)

opengl math quaternions

3
推荐指数
1
解决办法
2299
查看次数

标签 统计

c++ ×1

cpython ×1

ironpython ×1

math ×1

opengl ×1

python ×1

quaternions ×1

swig ×1