[vtkusers] vtkCallbackCommand in ActiveViz
    Jochen K. 
    jochen.kling at email.de
       
    Fri Jun 22 12:59:07 EDT 2012
    
    
  
Hi Dieter,
as so often an example is worth a thousand words:
      private void InteractorStyleUser() {
         // Create a sphere.  
         vtkSphereSource sphereSource = vtkSphereSource.New();
         sphereSource.SetRadius(0.5);
         
         // retrieve renderWindow from our renderWindowControl
         vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow;
         // define interactorStyle of type vtkInteractorStyleUser
         vtkInteractorStyleUser interactorStyleUser =
vtkInteractorStyleUser.New();
         // tell renderWindow to use our own interactorStyle
        
renderWindow.GetInteractor().SetInteractorStyle(interactorStyleUser);
         // define eventhandler
         interactorStyleUser.LeftButtonPressEvt += new
vtkObject.vtkObjectEventHandler(interactorStyleUser_LeftButtonPressEvt);
         interactorStyleUser.LeftButtonReleaseEvt += new
vtkObject.vtkObjectEventHandler(interactorStyleUser_LeftButtonReleaseEvt);
         interactorStyleUser.KeyPressEvt += new
vtkObject.vtkObjectEventHandler(interactorStyleUser_KeyPressEvt);
         /* here you can define more eventhandler
            all available eventhandler are marked in Intellisense with a
lightning symbol
            to create the handler type for instance 
               interactorStyleUser.RightButtonPressEvt+=
            and then press the tab key
          
            the eventhandler method is being created automatically
         */
         // mapper
         vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
         mapper.SetInputConnection(sphereSource.GetOutputPort());
         // actor
         vtkActor actor = vtkActor.New();
         actor.SetMapper(mapper);
         vtkRenderer renderer =
renderWindow.GetRenderers().GetFirstRenderer();
         renderer.SetBackground(0.3, 0.2, 0.1);
         renderer.AddActor(actor);
      }
      void interactorStyleUser_KeyPressEvt(vtkObject sender,
vtkObjectEventArgs e) {
         vtkInteractorStyleUser style = vtkInteractorStyleUser.New();
         style = (vtkInteractorStyleUser)e.Caller;
         int keyCode = style.GetChar();
         string keySym = style.GetKeySym();
         bool IsShiftKeyPressed = ( style.GetShiftKey() == 1 ? true : false
);
         bool IsCtrlKeyPressed = ( style.GetCtrlKey() == 1 ? true : false );
         Debug.WriteLine("keyCode: " + keyCode);
         Debug.WriteLine("keySym: " + keySym);
         Debug.WriteLine("shift key: " + IsShiftKeyPressed);
         Debug.WriteLine("ctrl key: " + IsCtrlKeyPressed);
      }
      void interactorStyleUser_LeftButtonReleaseEvt(vtkObject sender,
vtkObjectEventArgs e) {
         vtkInteractorStyleUser caller = vtkInteractorStyleUser.New();
         caller = (vtkInteractorStyleUser)e.Caller;
         int[] mousePosition = caller.GetLastPos();
         Debug.WriteLine("left mouse button released -> mouse position: "
+ mousePosition[0] + " " + mousePosition[1]);
      }
      void interactorStyleUser_LeftButtonPressEvt(vtkObject sender,
vtkObjectEventArgs e) {
         vtkInteractorStyleUser caller = vtkInteractorStyleUser.New();
         caller = (vtkInteractorStyleUser)e.Caller;
         int[] mousePosition = caller.GetLastPos();
         Debug.WriteLine("left mouse button pressed -> mouse position: "
+ mousePosition[0] + " " + mousePosition[1]);
      }
> And does anyone know if there is an official replacement for the factory
>
>    vtkStandardNewMacro(InteractorStyle)
>
> I was using a simple static New here, which works, but probably is not
> dogmatic.
There is no replacement in C# for vtkStandardNewMacro(...)
In C# it's just fine to instantiate a class the way you doing it:
vtkObject myObject = vtkObject.New();
Note: All classes  are static, that's the reason why you cannot inherit from
any wrapped vtk class.
         But as I learned a few days ago there's a way to extent a static
class.
         If you like I can show you how to do that.
with best regards
Jochen
--
View this message in context: http://vtk.1045678.n5.nabble.com/vtkCallbackCommand-in-ActiveViz-tp5714143p5714151.html
Sent from the VTK - Users mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120622/db0787cd/attachment.htm>
    
    
More information about the vtkusers
mailing list