On 2022-01-16 12:29, Malte Dreschert wrote:
Hi Stefan,

thanks for answering and a greetings from northern Germany to Berlin :)

the struct is meant to hold color values (three floats) but the color space can be different. It contains three of these unions and one enum value that contains the information which color space was used when the values were written.
The floats are either rgb or hsv.

The library is for reading a binary file and I only have these structs and some methods I need to wrap, that means I only need to read the values. I guess I would first check the color space and then interpret the three values accordingly.

Right, and I assume you already have a C++ API to access that struct, even if it isn't in terms of member functions. As far as the raw data type and its binary representation is concerned, there is nothing special here, i.e. you could wrap it in a Python object as-is. But what you likely want is a set of (member) functions to access the values, and that is very likely mapping to your C++ API more than mapping to the struct directly.

For example, let's assume you have:

```

struct someStruct {/*...*/};
float get_value(someStruct const &);
void set_value(someStruct &, float);

```

you may decide to map `get_value` and `set_value` to direct methods:

```

class_<someStruct> s("someStruct");

s.def("get_value", get_value);

s.def("set_value", set_value);

```

(Notice how





Does that help? I don't want to post the code directly because it is in house code.

Thank you very much,

Cheers,

Malte


On Sun, Jan 16, 2022 at 4:18 PM Stefan Seefeld <ste...@seefeld.name> wrote:

    Hi Malte,

    the first step is for you to decide what semantics you want
    `someStruct` to carry, which would then translate into an API.
    This is also a prerequisite for using this in pure C++, i.e.
    without any Python bindings. It just becomes more obvious if you
    want to think about accessing this in a pythonic way.

    So, can you rephrase your question by describing `someStruct` in
    terms of behaviour rather than structure, i.e. in an
    "object-oriented" way ?

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

    _______________________________________________
    Cplusplus-sig mailing list
    Cplusplus-sig@python.org
    https://mail.python.org/mailman/listinfo/cplusplus-sig


_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
https://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to