I'm trying to write an IDL to
describe
http://bulletphysics.org/Bullet/BulletFull/btSoftBody_8h_source.html#l00486,
basically:
class btSoftBody {
struct Joint {
struct eType {
enum _ {
Linear, Angular, Contact
};
};
};
};
However, I can't figure out how to express this in my .idl file. Based
on
https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html#enums,
I tried:
enum btSoftBody_Joint_eType__ {
"btSoftBody::Joint::eType::Linear",
"btSoftBody::Joint::eType::Angular",
"btSoftBody::Joint::eType::Contact"
};
[Prefix="btSoftBody::Joint::"]
interface eType {
};
... // So on for Joint and btSoftBody.
But that gives me:
Traceback (most recent call last):
File
"/Users/k/emsdk_portable/emscripten/incoming/tools/webidl_binder.py", line
709, in <module>
raise Exception("Illegal enum value %s" % value)
So then I tried:
enum btSoftBody_Joint_eType__ {
"eType::Linear",
"eType::Angular",
"eType::Contact"
};
This gets further (it generates the cpp bindings) but when it tries to
compile them, the types don't resolve to anything:
glue.cpp:4539:1: error: unknown type name 'btSoftBody_Joint_eType__'
btSoftBody_Joint_eType__ EMSCRIPTEN_KEEPALIVE
emscripten_enum_btSoftBody_Joint_eType___Linear() {
^
glue.cpp:4539:26: error: expected unqualified-id
btSoftBody_Joint_eType__ EMSCRIPTEN_KEEPALIVE
emscripten_enum_btSoftBody_Joint_eType___Linear() {
^
/Users/k/emsdk_portable/emscripten/incoming/system/include/emscripten/emscripten.h:64:30:
note: expanded from macro 'EMSCRIPTEN_KEEPALIVE'
#define EMSCRIPTEN_KEEPALIVE __attribute__((used))
^
glue.cpp:4542:1: error: unknown type name 'btSoftBody_Joint_eType__'
...
Does anyone know what I'm doing wrong? Or how to express this?
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.