]> Creatis software - bbtkGEditor.git/blob - lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx
First classes usign VTK objects . connection
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / wxVtkSceneManager.cxx
1 /*=========================================================================                                                                               
2 Program:   bbtk
3 Module:    $RCSfile$
4 Language:  C++
5 Date:      $Date$
6 Version:   $Revision$
7 =========================================================================*/
8
9 /* ---------------------------------------------------------------------
10
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
13 *
14 *  This software is governed by the CeCILL-B license under French law and 
15 *  abiding by the rules of distribution of free software. You can  use, 
16 *  modify and/ or redistribute the software under the terms of the CeCILL-B 
17 *  license as circulated by CEA, CNRS and INRIA at the following URL 
18 *  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
19 *  or in the file LICENSE.txt.
20 *
21 *  As a counterpart to the access to the source code and  rights to copy,
22 *  modify and redistribute granted by the license, users are provided only
23 *  with a limited warranty  and the software's author,  the holder of the
24 *  economic rights,  and the successive licensors  have only  limited
25 *  liability. 
26 *
27 *  The fact that you are presently reading this means that you have had
28 *  knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */                                                                         
30
31 /**
32 *  \file 
33 *  \brief Class bbtk::wxVtkSceneManager . 
34 */
35
36
37 #include "wxVtkSceneManager.h"
38 #include <vtkInteractorStyleBaseView2D.h>
39
40 #include "vtkConeSource.h"
41 #include "vtkPolyDataMapper.h"
42 #include "vtkActor.h"
43 #include "vtkRenderer.h"
44
45 namespace bbtk
46 {
47
48
49         //=========================================================================
50         wxVtkSceneManager::wxVtkSceneManager(wxDropTarget *parent, wxVtk3DBaseView *baseView,int id)
51         {
52                 _id=id;
53                 _baseView=baseView;
54                 if( _baseView!=NULL )
55                 {
56                         
57                         _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(parent);
58
59                         registerController(this);                       
60                         configureBaseView();
61
62                         vtkRenderer *ren1 =_baseView->GetRenderer();
63                         vtkConeSource *cone = vtkConeSource::New();
64         
65                    cone->SetResolution(8);
66                         
67                    vtkPolyDataMapper *map = vtkPolyDataMapper::New();
68                    map->SetInput(cone->GetOutput());
69                         
70                    vtkActor *act = vtkActor::New();
71                         
72                    act->SetMapper(map);
73                         
74                    ren1->AddActor(act);
75                 
76                    ren1->Render();
77                 }
78         }
79
80         //=========================================================================
81         wxVtkSceneManager::~wxVtkSceneManager()
82         {
83                 //_baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL);
84         }
85         //=========================================================================
86
87         void wxVtkSceneManager::configureBaseView()
88         {
89                 vtkInteractorStyleBaseView2D   *temp  = new vtkInteractorStyleBaseView2D();
90                 _baseView->SetInteractorStyleBaseView(temp);
91         }
92
93         //=========================================================================
94
95         void wxVtkSceneManager::createGBlackBox()
96         {
97                 InteractorStyleMaracas *toAdd = VTKGObjectsFactory::getInstance()->createGBlackBox(_baseView);
98                 registerController(toAdd);
99         }
100
101         //=========================================================================
102
103         void wxVtkSceneManager::registerController(InteractorStyleMaracas *param)
104         {
105                 vtkInteractorStyleBaseView* baseViewControlManager = (vtkInteractorStyleBaseView*)_baseView->GetInteractorStyleBaseView();
106                 baseViewControlManager->AddInteractorStyleMaracas( param );
107         }
108
109         //=========================================================================
110
111         vtkRenderer* wxVtkSceneManager::getRenderer()
112         {
113                 return _baseView->GetRenderer();
114         }
115
116         //=========================================================================
117
118         vtkRenderWindow* wxVtkSceneManager::getRenderWindow()
119         {
120                 return _baseView->GetRenWin();
121         }
122         //=========================================================================
123
124
125         //=========================================================================
126 }  // EO namespace bbtk
127
128 // EOF
129