|
| Trackball (ref_ptr< Camera > camera, ref_ptr< EllipsoidModel > ellipsoidModel={}) |
|
dvec2 | ndc (PointerEvent &event) |
| compute non dimensional window coordinate (-1,1) from event coords
|
|
dvec3 | tbc (PointerEvent &event) |
| compute trackball coordinate from event coords
|
|
void | apply (KeyPressEvent &keyPress) override |
|
void | apply (KeyReleaseEvent &keyRelease) override |
|
void | apply (FocusInEvent &focusIn) override |
|
void | apply (FocusOutEvent &focusOut) override |
|
void | apply (ButtonPressEvent &buttonPress) override |
|
void | apply (ButtonReleaseEvent &buttonRelease) override |
|
void | apply (MoveEvent &moveEvent) override |
|
void | apply (ScrollWheelEvent &scrollWheel) override |
|
void | apply (TouchDownEvent &touchDown) override |
|
void | apply (TouchUpEvent &touchUp) override |
|
void | apply (TouchMoveEvent &touchMove) override |
|
void | apply (FrameEvent &frame) override |
|
virtual void | rotate (double angle, const dvec3 &axis) |
|
virtual void | zoom (double ratio) |
|
virtual void | pan (const dvec2 &delta) |
|
std::pair< int32_t, int32_t > | cameraRenderAreaCoordinates (const PointerEvent &pointerEvent) const |
|
bool | withinRenderArea (const PointerEvent &pointerEvent) const |
|
bool | eventRelevant (const WindowEvent &event) const |
|
void | clampToGlobe () |
|
void | addWindow (ref_ptr< Window > window, const ivec2 &offset={}) |
| add a Window to respond events for, with mouse coordinate offset to treat all associated windows
|
|
void | addKeyViewpoint (KeySymbol key, ref_ptr< LookAt > lookAt, double duration=1.0) |
| add Key to Viewpoint binding using a LookAt to define the viewpoint
|
|
void | addKeyViewpoint (KeySymbol key, double latitude, double longitude, double altitude, double duration=1.0) |
| add Key to Viewpoint binding using a latitude, longitude and altitude to define the viewpoint. Requires an EllipsoidModel to be assigned when constructing the Trackball
|
|
void | setViewpoint (ref_ptr< LookAt > lookAt, double duration=1.0) |
|
| Inherit (Args &&... args) |
|
std::size_t | sizeofObject () const noexcept override |
|
const char * | className () const noexcept override |
|
const std::type_info & | type_info () const noexcept override |
|
bool | is_compatible (const std::type_info &type) const noexcept override |
|
int | compare (const Object &rhs) const override |
|
void | accept (Visitor &visitor) override |
|
void | accept (ConstVisitor &visitor) const override |
|
void | accept (RecordTraversal &visitor) const override |
|
virtual void | apply (Object &) |
|
virtual void | apply (Objects &) |
|
virtual void | apply (External &) |
|
virtual void | apply (Data &) |
|
virtual void | apply (stringValue &) |
|
virtual void | apply (wstringValue &) |
|
virtual void | apply (boolValue &) |
|
virtual void | apply (intValue &) |
|
virtual void | apply (uintValue &) |
|
virtual void | apply (floatValue &) |
|
virtual void | apply (doubleValue &) |
|
virtual void | apply (vec2Value &) |
|
virtual void | apply (vec3Value &) |
|
virtual void | apply (vec4Value &) |
|
virtual void | apply (dvec2Value &) |
|
virtual void | apply (dvec3Value &) |
|
virtual void | apply (dvec4Value &) |
|
virtual void | apply (bvec2Value &) |
|
virtual void | apply (bvec3Value &) |
|
virtual void | apply (bvec4Value &) |
|
virtual void | apply (ubvec2Value &) |
|
virtual void | apply (ubvec3Value &) |
|
virtual void | apply (ubvec4Value &) |
|
virtual void | apply (svec2Value &) |
|
virtual void | apply (svec3Value &) |
|
virtual void | apply (svec4Value &) |
|
virtual void | apply (usvec2Value &) |
|
virtual void | apply (usvec3Value &) |
|
virtual void | apply (usvec4Value &) |
|
virtual void | apply (ivec2Value &) |
|
virtual void | apply (ivec3Value &) |
|
virtual void | apply (ivec4Value &) |
|
virtual void | apply (uivec2Value &) |
|
virtual void | apply (uivec3Value &) |
|
virtual void | apply (uivec4Value &) |
|
virtual void | apply (byteArray &) |
|
virtual void | apply (ubyteArray &) |
|
virtual void | apply (shortArray &) |
|
virtual void | apply (ushortArray &) |
|
virtual void | apply (intArray &) |
|
virtual void | apply (uintArray &) |
|
virtual void | apply (floatArray &) |
|
virtual void | apply (doubleArray &) |
|
virtual void | apply (vec2Array &) |
|
virtual void | apply (vec3Array &) |
|
virtual void | apply (vec4Array &) |
|
virtual void | apply (dvec2Array &) |
|
virtual void | apply (dvec3Array &) |
|
virtual void | apply (dvec4Array &) |
|
virtual void | apply (bvec2Array &) |
|
virtual void | apply (bvec3Array &) |
|
virtual void | apply (bvec4Array &) |
|
virtual void | apply (svec2Array &) |
|
virtual void | apply (svec3Array &) |
|
virtual void | apply (svec4Array &) |
|
virtual void | apply (ivec2Array &) |
|
virtual void | apply (ivec3Array &) |
|
virtual void | apply (ivec4Array &) |
|
virtual void | apply (ubvec2Array &) |
|
virtual void | apply (ubvec3Array &) |
|
virtual void | apply (ubvec4Array &) |
|
virtual void | apply (usvec2Array &) |
|
virtual void | apply (usvec3Array &) |
|
virtual void | apply (usvec4Array &) |
|
virtual void | apply (uivec2Array &) |
|
virtual void | apply (uivec3Array &) |
|
virtual void | apply (uivec4Array &) |
|
virtual void | apply (mat4Array &) |
|
virtual void | apply (dmat4Array &) |
|
virtual void | apply (block64Array &) |
|
virtual void | apply (block128Array &) |
|
virtual void | apply (ubyteArray2D &) |
|
virtual void | apply (ushortArray2D &) |
|
virtual void | apply (uintArray2D &) |
|
virtual void | apply (floatArray2D &) |
|
virtual void | apply (doubleArray2D &) |
|
virtual void | apply (vec2Array2D &) |
|
virtual void | apply (vec3Array2D &) |
|
virtual void | apply (vec4Array2D &) |
|
virtual void | apply (dvec2Array2D &) |
|
virtual void | apply (dvec3Array2D &) |
|
virtual void | apply (dvec4Array2D &) |
|
virtual void | apply (bvec2Array2D &) |
|
virtual void | apply (bvec3Array2D &) |
|
virtual void | apply (bvec4Array2D &) |
|
virtual void | apply (svec2Array2D &) |
|
virtual void | apply (svec3Array2D &) |
|
virtual void | apply (svec4Array2D &) |
|
virtual void | apply (ivec2Array2D &) |
|
virtual void | apply (ivec3Array2D &) |
|
virtual void | apply (ivec4Array2D &) |
|
virtual void | apply (ubvec2Array2D &) |
|
virtual void | apply (ubvec3Array2D &) |
|
virtual void | apply (ubvec4Array2D &) |
|
virtual void | apply (usvec2Array2D &) |
|
virtual void | apply (usvec3Array2D &) |
|
virtual void | apply (usvec4Array2D &) |
|
virtual void | apply (uivec2Array2D &) |
|
virtual void | apply (uivec3Array2D &) |
|
virtual void | apply (uivec4Array2D &) |
|
virtual void | apply (block64Array2D &) |
|
virtual void | apply (block128Array2D &) |
|
virtual void | apply (ubyteArray3D &) |
|
virtual void | apply (ushortArray3D &) |
|
virtual void | apply (uintArray3D &) |
|
virtual void | apply (floatArray3D &) |
|
virtual void | apply (doubleArray3D &) |
|
virtual void | apply (vec2Array3D &) |
|
virtual void | apply (vec3Array3D &) |
|
virtual void | apply (vec4Array3D &) |
|
virtual void | apply (dvec2Array3D &) |
|
virtual void | apply (dvec3Array3D &) |
|
virtual void | apply (dvec4Array3D &) |
|
virtual void | apply (ubvec2Array3D &) |
|
virtual void | apply (ubvec3Array3D &) |
|
virtual void | apply (ubvec4Array3D &) |
|
virtual void | apply (block64Array3D &) |
|
virtual void | apply (block128Array3D &) |
|
virtual void | apply (Node &) |
|
virtual void | apply (Compilable &) |
|
virtual void | apply (Commands &) |
|
virtual void | apply (Group &) |
|
virtual void | apply (QuadGroup &) |
|
virtual void | apply (LOD &) |
|
virtual void | apply (PagedLOD &) |
|
virtual void | apply (StateGroup &) |
|
virtual void | apply (CullGroup &) |
|
virtual void | apply (CullNode &) |
|
virtual void | apply (MatrixTransform &) |
|
virtual void | apply (Transform &) |
|
virtual void | apply (Geometry &) |
|
virtual void | apply (VertexDraw &) |
|
virtual void | apply (VertexIndexDraw &) |
|
virtual void | apply (DepthSorted &) |
|
virtual void | apply (Bin &) |
|
virtual void | apply (Switch &) |
|
virtual void | apply (Light &) |
|
virtual void | apply (AmbientLight &) |
|
virtual void | apply (DirectionalLight &) |
|
virtual void | apply (PointLight &) |
|
virtual void | apply (SpotLight &) |
|
virtual void | apply (Text &) |
|
virtual void | apply (TextGroup &) |
|
virtual void | apply (TextTechnique &) |
|
virtual void | apply (TextLayout &) |
|
virtual void | apply (BufferInfo &) |
|
virtual void | apply (Command &) |
|
virtual void | apply (StateCommand &) |
|
virtual void | apply (StateSwitch &) |
|
virtual void | apply (CommandBuffer &) |
|
virtual void | apply (RenderPass &) |
|
virtual void | apply (BindDescriptorSet &) |
|
virtual void | apply (BindDescriptorSets &) |
|
virtual void | apply (BindViewDescriptorSets &) |
|
virtual void | apply (Descriptor &) |
|
virtual void | apply (DescriptorBuffer &) |
|
virtual void | apply (DescriptorImage &) |
|
virtual void | apply (DescriptorSet &) |
|
virtual void | apply (BindVertexBuffers &) |
|
virtual void | apply (BindIndexBuffer &) |
|
virtual void | apply (BindComputePipeline &) |
|
virtual void | apply (BindGraphicsPipeline &) |
|
virtual void | apply (BindRayTracingPipeline &) |
|
virtual void | apply (GraphicsPipeline &) |
|
virtual void | apply (ComputePipeline &) |
|
virtual void | apply (RayTracingPipeline &) |
|
virtual void | apply (GraphicsPipelineState &) |
|
virtual void | apply (ShaderStage &) |
|
virtual void | apply (VertexInputState &) |
|
virtual void | apply (InputAssemblyState &) |
|
virtual void | apply (TessellationState &) |
|
virtual void | apply (ViewportState &) |
|
virtual void | apply (RasterizationState &) |
|
virtual void | apply (MultisampleState &) |
|
virtual void | apply (DepthStencilState &) |
|
virtual void | apply (ColorBlendState &) |
|
virtual void | apply (DynamicState &) |
|
virtual void | apply (ResourceHints &) |
|
virtual void | apply (Draw &) |
|
virtual void | apply (DrawIndexed &) |
|
virtual void | apply (ClearAttachments &) |
|
virtual void | apply (ClearColorImage &) |
|
virtual void | apply (ClearDepthStencilImage &) |
|
virtual void | apply (QueryPool &) |
|
virtual void | apply (ResetQueryPool &) |
|
virtual void | apply (BeginQuery &) |
|
virtual void | apply (EndQuery &) |
|
virtual void | apply (WriteTimestamp &) |
|
virtual void | apply (CopyQueryPoolResults &) |
|
virtual void | apply (DrawMeshTasks &) |
|
virtual void | apply (DrawMeshTasksIndirect &) |
|
virtual void | apply (DrawMeshTasksIndirectCount &) |
|
virtual void | apply (UIEvent &) |
|
virtual void | apply (WindowEvent &) |
|
virtual void | apply (ExposeWindowEvent &) |
|
virtual void | apply (ConfigureWindowEvent &) |
|
virtual void | apply (CloseWindowEvent &) |
|
virtual void | apply (KeyEvent &) |
|
virtual void | apply (PointerEvent &) |
|
virtual void | apply (TouchEvent &) |
|
virtual void | apply (TerminateEvent &) |
|
virtual void | apply (AnimationPath &) |
|
virtual void | apply (ShaderCompileSettings &) |
|
virtual void | apply (Camera &) |
|
virtual void | apply (CommandGraph &) |
|
virtual void | apply (RenderGraph &) |
|
virtual void | apply (View &) |
|
virtual void | apply (Viewer &) |
|
virtual void | apply (FrameStamp &) |
|
| Object (const Object &) |
|
Object & | operator= (const Object &) |
|
template<class T > |
T * | cast () |
|
template<class T > |
const T * | cast () const |
|
virtual void | traverse (Visitor &) |
|
virtual void | traverse (ConstVisitor &) const |
|
virtual void | traverse (RecordTraversal &) const |
|
virtual void | read (Input &input) |
|
virtual void | write (Output &output) const |
|
void | ref () const noexcept |
|
void | unref () const noexcept |
|
void | unref_nodelete () const noexcept |
|
unsigned int | referenceCount () const noexcept |
|
template<typename T > |
void | setValue (const std::string &key, const T &value) |
|
void | setValue (const std::string &key, const char *value) |
| specialization of setValue to handle passing C strings
|
|
template<typename T > |
bool | getValue (const std::string &key, T &value) const |
| get specified value type, return false if value associated with key is not assigned or is not the correct type
|
|
void | setObject (const std::string &key, ref_ptr< Object > object) |
| assign an Object associated with key
|
|
Object * | getObject (const std::string &key) |
| get Object pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
const Object * | getObject (const std::string &key) const |
| get const Object pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T > |
T * | getObject (const std::string &key) |
| get object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T > |
const T * | getObject (const std::string &key) const |
| get const object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
ref_ptr< Object > | getRefObject (const std::string &key) |
| get ref_ptr<Object> associated with key, return nullptr if no object associated with key has been assigned
|
|
ref_ptr< const Object > | getRefObject (const std::string &key) const |
| get ref_ptr<const Object> pointer associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T > |
ref_ptr< T > | getRefObject (const std::string &key) |
| get ref_ptr<T> of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
template<class T > |
const ref_ptr< const T > | getRefObject (const std::string &key) const |
| get ref_ptr<const T> of specified type associated with key, return nullptr if no object associated with key has been assigned
|
|
void | removeObject (const std::string &key) |
| remove meta object or value associated with key
|
|
Auxiliary * | getOrCreateAuxiliary () |
|
Auxiliary * | getAuxiliary () |
|
const Auxiliary * | getAuxiliary () const |
|
|
std::map< observer_ptr< Window >, ivec2 > | windowOffsets |
| list of windows that this Trackball should respond to events from, and the points xy offsets to apply
|
|
std::map< KeySymbol, Viewpoint > | keyViewpointMap |
| container that maps key symbol bindings with the Viewpoint that should move the LookAt to when pressed.
|
|
KeySymbol | turnLeftKey = KEY_a |
| Key that turns the view left around the eye points.
|
|
KeySymbol | turnRightKey = KEY_d |
| Key that turns the view right around the eye points.
|
|
KeySymbol | pitchUpKey = KEY_w |
| Key that pitches up the view around the eye point.
|
|
KeySymbol | pitchDownKey = KEY_s |
| Key that pitches down the view around the eye point.
|
|
KeySymbol | rollLeftKey = KEY_q |
| Key that rools the view anti-clockwise/left.
|
|
KeySymbol | rollRightKey = KEY_e |
| Key that rolls the view clockwise/right.
|
|
KeySymbol | moveForwardKey = KEY_o |
| Key that moves the view forward.
|
|
KeySymbol | moveBackwardKey = KEY_i |
| Key that moves the view backwards.
|
|
KeySymbol | moveLeftKey = KEY_Left |
| Key that moves the view left.
|
|
KeySymbol | moveRightKey = KEY_Right |
| Key that moves the view right.
|
|
KeySymbol | moveUpKey = KEY_Up |
| Key that moves the view upward.
|
|
KeySymbol | moveDownKey = KEY_Down |
| Key that moves the view downward.
|
|
ButtonMask | rotateButtonMask = BUTTON_MASK_1 |
| Button mask value used to enable panning of the view, defaults to left mouse button.
|
|
ButtonMask | panButtonMask = BUTTON_MASK_2 |
| Button mask value used to enable panning of the view, defaults to middle mouse button.
|
|
ButtonMask | zoomButtonMask = BUTTON_MASK_3 |
| Button mask value used to enable zooming of the view, defaults to right mouse button.
|
|
ButtonMask | touchMappedToButtonMask = BUTTON_MASK_1 |
| Button mask value used used for touch events.
|
|
double | zoomScale = 1.0 |
| Scale for controlling how rapidly the view zooms in/out. Positive value zooms in when mouse moves downwards.
|
|
bool | supportsThrow = true |
| Toggle on/off whether the view should continue moving when the mouse buttons are released while the mouse is in motion.
|
|
Mask | traversalMask = MASK_ALL |
|
Mask | overrideMask = MASK_OFF |
|
Trackball is an event handler that provides mouse and touch controlled 3d trackball camera view manipulation.