## Camera Manipulation (Flutter)

> You can find the entire project below in the [flutter/quickstart](https://github.com/nmfisher/thermion/examples/flutter/camera_manipulation) folder.

A `ThermionListenerWidget` is one option for manipulating the camera with an input device (e.g. mouse or touchscreen gestures). 

This will generally wrap a `ThermionWidget`, meaning the entire viewport will act as a receiver for gesture events. 

> You can position this independently (for example, stacked vertically beneath the viewport), but this will not translate picking queries correctly.

```
@override
  Widget build(BuildContext context) {
    return Stack(children: [
      if (_thermionViewer != null)
        Positioned.fill(
            child: ThermionListenerWidget(
                inputHandler:
                    DelegateInputHandler.fixedOrbit(_thermionViewer!),
                child: ThermionWidget(
                  viewer: _thermionViewer!,
                ))),
    ]);
```

`ThermionListenerWidget` is a very simple widget; it simply forwards pointer, gesture and keyboard events to an instance of [InputHandler] that you provide.



