]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbcreaMaracasVisuIRMViewer.cxx
429278c06cb0bd269c1777f953226d0749b0ae0c
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuIRMViewer.cxx
1 #include "bbcreaMaracasVisuIRMViewer.h"
2 #include "bbcreaMaracasVisuPackage.h"
3
4
5 #include "wxMaracasIRMView.h"
6
7 namespace bbcreaMaracasVisu
8 {
9
10 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,IRMViewer)
11 BBTK_BLACK_BOX_IMPLEMENTATION(IRMViewer,bbtk::WxBlackBox);
12 void IRMViewer::Process()
13 {
14
15         wxMaracasIRMView* irmview = wxMaracasIRMView::getInstance();
16         std::vector<vtkProp3D*> tempvect;
17         int i;
18
19         
20
21         if(irmview != NULL){
22                 vtkRenderer* renderer = bbGetInputRenderer();
23                 irmview->setRenderer(renderer);
24                 vtkProp3D* prop3D;
25                 tempvect.push_back(bbGetInputIn0());
26                 tempvect.push_back(bbGetInputIn1());
27                 tempvect.push_back(bbGetInputIn2());
28                 tempvect.push_back(bbGetInputIn3());
29                 tempvect.push_back(bbGetInputIn4());
30
31                 for(i = 0; i < tempvect.size();i++){
32                         prop3D = tempvect[i];
33                         if(prop3D != NULL&&renderer != NULL){
34                                 irmview->addProp3D(prop3D);
35                         }
36                 }
37         }  
38 }
39 void IRMViewer::CreateWidget(wxWindow* parent)
40 {
41
42         std::string path = "";
43 #if defined(WIN32)
44         char currentPath[_MAX_PATH];
45         HMODULE hand = GetModuleHandle("bbcreaMaracasVisu");
46         GetModuleFileName(hand, currentPath, _MAX_PATH);
47         path = currentPath;
48         path = path.substr(0,path.find_last_of("\\"));
49         
50 #else if defined(UNIX)
51         pid_t pid = getpid();
52         char buf[10];
53         sprintf(buf,"%d",pid);
54
55         std::string _link = "/proc/";
56         _link.append( buf );
57         _link.append( "/exe");
58
59         char proc[512];
60         int ch = readlink(_link.c_str(),proc,512);
61         if (ch != -1) {
62                 proc[ch] = 0;
63                 path = proc;
64                 std::string::size_type t = path.find_last_of("/");
65                 path = path.substr(0,t);
66         }
67         
68
69 #endif
70         std::cout << "Your application's directory is: " << path;
71
72         wxMaracasIRMView* irmview = wxMaracasIRMView::getInstance(parent,path);
73         //GetDllDirectory(_MAX_PATH, currentPath);
74         //std::cout << "Your application's directory is: " << GetDllDirectory(_MAX_PATH, currentPath)<<std::endl;
75
76         bbSetOutputWidget(irmview);
77   
78 }
79 void IRMViewer::bbUserConstructor()
80 {
81   
82     bbSetInputIn0(NULL);
83         bbSetInputIn1(NULL);
84         bbSetInputIn2(NULL);
85         bbSetInputIn3(NULL);
86         bbSetInputIn4(NULL);
87         bbSetOutputWidget(NULL);
88   
89 }
90 void IRMViewer::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
91 {
92  
93  
94   
95 }
96 void IRMViewer::bbUserDestructor()
97 {
98  
99  
100   
101 }
102 }
103 // EO namespace bbcreaMaracasVisu
104
105