Hi,

if your stl file is binary encoded, you would need to tell this fact the 
IOUtil::Load method (by providing the "std::ios::binary | std::ios::in" 
open flags, just like you would when using regular std streams). I can"t 
think of any other issue here.

Best,
Sascha

On 07/28/2015 11:45 PM, Sebastian Ordas wrote:
> thank you Sascha,
>
> It looks like the problem is somewhere else: the resource is correctly
> loaded, I guess, but:
>
> std::vector<mitk::BaseData::Pointer> data = mitk::IOUtil::Load(resource);
> mitk::Surface::Pointer fileoutput =
> dynamic_cast<mitk::Surface*>(data[0].GetPointer());
> vtkPolyData* pd = fileoutput->GetVtkPolyData();
>
> retrieves wrong data: 32409 points instead of the correct number, 5421
> (retrieved via vtkSTLReader)
>
> Let me add that the file opens correctly via File->Open File
>
> so the problem should be in the resource version of
> mitk::IOUtil::Load(), right?
>
> thanks
> sebastian
>
> On 28/07/2015 02:06 p.m., Sascha Zelzer wrote:
>> Hi,
>>
>> the Module::GetResource() method will make the resources of the module
>> object you call that method with accessible. It does not search across
>> modules. My guess is you are trying to retrieve the "body.stl"
>> resource from your own module, not from the QtWidgets module.
>>
>> Cheers,
>> Sascha
>>
>> On 07/28/2015 04:28 AM, Sebastian Ordas wrote:
>>> Hi Team,
>>>
>>> How can I load an .stl resource file in a class located in QtWidgets
>>> module? (QmitkStdMultiWidget.cpp)
>>> 1) My STL file, "body.stl" is located in
>>> D:\sources\MITK\Modules\QtWidgets\resource (note, there is no
>>> "resources" folder)
>>> 2) It is not listed in Qmitk.qrc
>>> 3) but it is indicated in
>>> D:\sources\MITK\Modules\QtWidgets\files.cmake as:
>>>
>>> ...
>>>
>>> set(QRC_FILES
>>>      resource/Qmitk.qrc
>>> )
>>>
>>> set(RESOURCE_FILES
>>>      body.stl
>>> )
>>>
>>> 4) finally, in the code:
>>>
>>> us::Module* module = us::GetModuleContext()->GetModule();
>>> us::ModuleResource resource = module->GetResource("body.stl");
>>> std::vector<mitk::BaseData::Pointer> data =
>>> mitk::IOUtil::Load(resource);
>>>
>>>       if(!data.empty())
>>>       {
>>>         mitk::Surface::Pointer fileoutput =
>>> dynamic_cast<mitk::Surface*>(data[0].GetPointer());
>>>         if (fileoutput->GetVtkPolyData())
>>>          ...
>>>       }
>>>
>>> thank you for any hint,
>>> sebastian
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> mitk-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/mitk-users


------------------------------------------------------------------------------
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to