Skip to content

Commit 96a6a90

Browse files
committed
Prepare module for matlab code porting
1 parent 9a475b0 commit 96a6a90

File tree

1 file changed

+44
-34
lines changed

1 file changed

+44
-34
lines changed

src/Modules/Legacy/Matlab/DataIO/ImportDatatypesFromMatlab.cc

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,29 @@
3232
#include <Core/Datatypes/String.h>
3333
#include <Core/Datatypes/Legacy/Field/Field.h>
3434

35+
#include <Core/Matlab/matlabfile.h>
36+
#include <Core/Matlab/matlabarray.h>
37+
#include <Core/Matlab/matlabconverter.h>
38+
3539
using namespace SCIRun::Modules::Matlab::DataIO;
3640
//using namespace SCIRun::Core::Algorithms;
3741
using namespace SCIRun::Core::Datatypes;
3842
using namespace SCIRun::Dataflow::Networks;
3943

4044
const ModuleLookupInfo ImportDatatypesFromMatlab::staticInfo_("ImportDatatypesFromMatlab", "DataIO", "Matlab");
4145

46+
namespace detail
47+
{
48+
class ImportDatatypesFromMatlabImpl
49+
{
50+
public:
51+
void indexmatlabfile(bool postmsg);
52+
void displayerror(const std::string& str) const;
53+
54+
std::string guimatrixinfotextslist_, guimatrixnameslist_, guimatrixname_;
55+
};
56+
}
57+
4258
ImportDatatypesFromMatlab::ImportDatatypesFromMatlab() : Module(staticInfo_)
4359
{
4460
INITIALIZE_PORT(Filename);
@@ -76,10 +92,6 @@ void ImportDatatypesFromMatlab::execute()
7692
#include <Dataflow/Network/Ports/MatrixPort.h>
7793
#include <Dataflow/Network/Ports/StringPort.h>
7894

79-
#include <Core/Matlab/matlabfile.h>
80-
#include <Core/Matlab/matlabarray.h>
81-
#include <Core/Matlab/matlabconverter.h>
82-
8395
#include <Dataflow/GuiInterface/GuiVar.h>
8496

8597
namespace MatlabIO {
@@ -360,11 +372,14 @@ matlabarray ImportDatatypesFromMatlab::readmatlabarray(int p)
360372
return(marray);
361373
}
362374

375+
#endif
363376

377+
namespace detail
378+
{
364379

365-
void ImportDatatypesFromMatlab::indexmatlabfile(bool postmsg)
380+
void ImportDatatypesFromMatlabImpl::indexmatlabfile(bool postmsg)
366381
{
367-
382+
const int NUMPORTS = 9;
368383
std::string filename = "";
369384
std::string matrixinfotexts[NUMPORTS];
370385
std::string matrixnames[NUMPORTS];
@@ -373,24 +388,24 @@ void ImportDatatypesFromMatlab::indexmatlabfile(bool postmsg)
373388
std::string newmatrixname = "";
374389
std::string matrixname = "";
375390

376-
guimatrixinfotextslist_.set(matrixinfotextslist);
377-
guimatrixnameslist_.set(matrixnameslist);
391+
guimatrixinfotextslist_ = matrixinfotextslist;
392+
guimatrixnameslist_ = matrixnameslist;
378393

379-
SCIRun::ProgressReporter* pr = 0;
380-
if (postmsg) pr = dynamic_cast<SCIRun::ProgressReporter* >(this);
381-
matlabconverter translate(pr);
394+
// SCIRun::ProgressReporter* pr = 0;
395+
// if (postmsg) pr = dynamic_cast<SCIRun::ProgressReporter* >(this);
396+
matlabconverter translate(nullptr);
382397

383-
filename = guifilename_.get();
398+
filename = guifilename_;
384399

385400
if (filename == "")
386401
{
387402
// No file has been loaded, so reset the
388403
// matrix name variable
389-
guimatrixname_.set(newmatrixname);
404+
guimatrixname_ = newmatrixname;
390405
return;
391406
}
392407

393-
matrixname = guimatrixname_.get();
408+
matrixname = guimatrixname_;
394409

395410
std::vector<std::string> matrixnamelist(NUMPORTS);
396411
bool foundmatrixname[NUMPORTS];
@@ -402,7 +417,7 @@ void ImportDatatypesFromMatlab::indexmatlabfile(bool postmsg)
402417
// TCL Dependent code
403418
std::ostringstream oss;
404419
oss << "lindex { " << matrixname << " } " << p;
405-
TCLInterface::eval(oss.str(),matrixnamelist[p]);
420+
std::cout << oss.str() <<matrixnamelist[p] << std::endl;
406421
foundmatrixname[p] = false;
407422
}
408423

@@ -417,7 +432,7 @@ void ImportDatatypesFromMatlab::indexmatlabfile(bool postmsg)
417432

418433
// all matlab data is stored in a matlabarray object
419434
matlabarray ma;
420-
int cindex = 0; // compability index, which matlab array fits the SCIRun matrix best?
435+
int cindex = 0; // compatibility index, which matlab array fits the SCIRun matrix best?
421436
int maxindex = 0; // highest index found so far
422437

423438
// Scan the file and see which matrices are compatible
@@ -486,53 +501,48 @@ void ImportDatatypesFromMatlab::indexmatlabfile(bool postmsg)
486501

487502

488503
// Update TCL on the contents of this matrix
489-
guimatrixname_.set(matrixname);
490-
guimatrixinfotextslist_.set(matrixinfotextslist);
491-
guimatrixnameslist_.set(matrixnameslist);
504+
guimatrixname_ = matrixname;
505+
guimatrixinfotextslist_ = matrixinfotextslist;
506+
guimatrixnameslist_ = matrixnameslist;
492507
}
493508

494509
// in case something went wrong
495510
// close the file and then dermine the problem
496511

497-
catch (matlabfile::could_not_open_file)
512+
catch (matlabfile::could_not_open_file&)
498513
{
499514
displayerror("ImportDatatypesFromMatlab: Could not open file");
500515
}
501-
catch (matlabfile::invalid_file_format)
516+
catch (matlabfile::invalid_file_format&)
502517
{
503518
displayerror("ImportDatatypesFromMatlab: Invalid file format");
504519
}
505-
catch (matlabfile::io_error)
520+
catch (matlabfile::io_error&)
506521
{
507522
displayerror("ImportDatatypesFromMatlab: IO error");
508523
}
509-
catch (matlabfile::out_of_range)
524+
catch (matlabfile::out_of_range&)
510525
{
511526
displayerror("ImportDatatypesFromMatlab: Out of range");
512527
}
513-
catch (matlabfile::invalid_file_access)
528+
catch (matlabfile::invalid_file_access&)
514529
{
515530
displayerror("ImportDatatypesFromMatlab: Invalid file access");
516531
}
517-
catch (matlabfile::empty_matlabarray)
532+
catch (matlabfile::empty_matlabarray&)
518533
{
519534
displayerror("ImportDatatypesFromMatlab: Empty matlab array");
520535
}
521-
catch (matlabfile::matfileerror)
536+
catch (matlabfile::matfileerror&)
522537
{
523538
displayerror("ImportDatatypesFromMatlab: Internal error in reader");
524539
}
525540
return;
526541
}
527542

528-
529-
void ImportDatatypesFromMatlab::displayerror(std::string str)
543+
void ImportDatatypesFromMatlabImpl::displayerror(const std::string& str) const
530544
{
531-
// Explicit call to TCL
532-
TCLInterface::execute("tk_messageBox -icon error -type ok -title {ERROR} -message {" + str + "}");
545+
std::cout << "tk_messageBox -icon error -type ok -title {ERROR} -message {" << str << "}" << std::endl;
533546
}
534547

535-
536-
} // End namespace MatlabIO
537-
538-
#endif
548+
}

0 commit comments

Comments
 (0)