DiscussionsIssue archiveOther usage issues

Archived discussion

Casting Shape handle to void *

Other usage issuesSat, 06/10/2000 - 16:311 reply

Browse this forum
QuestionAuthor

Hi:

I would like to cast handle to TopoDS_Shape to something like void *, so that I can store the reference to the Shape in some C structures, that is completely independent of CAS.

This is what I have tried but, of course, it does not work since I am quite clueless in C++.

BRepTools::Read(aShape,file,aBuilder) (where file is some .brep file)

handle= reinterpret_cast(&aShape) (where handle is of type void *)

TopoDS_Shape& aShape= reinterpret_cast(handle);

The above is not correct but gives an idea of what I am trying to do. Question is: what is the correct way to get back to the TopoDS_Shape from the C style handle ?

Any help is greatly appreciated.

Discussion

1 archived reply

Posts are displayed in their archived order.

01Commenter-1

You can easily cast a reference to the Handle object to void*:

void *pointer;

Handle(Some_Class) aHandle;

...

// Here only a pointer will be copied

pointer = &aHandle;

// Here the Handle object will be copied

aHandle = *(Handle(Some_Class) *)pointer;

Best regards,

Commenter-1.