Hi Robert,

On 2011-07-05 09:01, Robert Parcus wrote:

>

> While exposing the functions has been pretty easy, I was not able yet

> to expose a single type. (I have been exposing the functions and

> specializing them only with int, double, etc types not the vectors and

> matrices, which are the most important types for me actually... I did

> it as a proof of concept, and because I'm stuck in this "exposing

> types" problem since a long time...)

Could you elaborate on what problems you have with exposing types ? What

exactly did you try that didn't work ?

>

> As an example, on line 38 of this code

>

http://glm.g-truc.net/api-0.9.1/a00127_source.html is the definition

> of vec2. All glm types are pretty similar to this and if I could have

> some insights on how to wrap something like this the rest would be

> almost "not very hard" for me to do.

tvec2 itself isn't a type. You need to instantiate it to get a type that

you can expose to Python. Then the normal rules should work just fine:

class_<tvec2<float> > f_tvec2("fvec2");

float (tvec2<float>::*swizzle_1)(comp) = &tvec2<float>::swizzle;

f_tvec2.def("swizzle", swizzle_1);

I assume you'd like to do this for many different value-types, so it

might be best to wrap this in a function template:

template <typename T>

void define_vec2(char const *name)

{

typedef tvec2<T> vec2_type;

class_<vec2_type> vec2(name);

float (vec2_type::*swizzle_1)(comp) = &vec2_type::swizzle;

vec2.def("swizzle", swizzle_1);

//...

}

and then call that function for all the value-types you want:

define_vec2<float>("fvec2");

define_vec2<int>("ivec2");

//...

HTH,

Stefan

--

...ich hab' noch einen Koffer in Berlin...

_______________________________________________

Cplusplus-sig mailing list

[hidden email]
http://mail.python.org/mailman/listinfo/cplusplus-sig