Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzu_free_camera.h File Reference

Free camera utility. More...

Enumerations

enum  KzuFreeCameraActionType {
  KZU_FREE_CAMERA_ACTION_MOVE_FORWARD, KZU_FREE_CAMERA_ACTION_MOVE_BACKWARD, KZU_FREE_CAMERA_ACTION_MOVE_LEFT, KZU_FREE_CAMERA_ACTION_MOVE_RIGHT,
  KZU_FREE_CAMERA_ACTION_SPEED_UP, KZU_FREE_CAMERA_ACTION_SPEED_DOWN, KZU_FREE_CAMERA_ACTION_DOUBLE_SPEED, KZU_FREE_CAMERA_ACTION_ROTATING,
  KZU_FREE_CAMERA_ACTION_LIFTING, KZU_FREE_CAMERA_ACTION_ROLLING, KZU_FREE_CAMERA_ACTION_FIELD_OF_VIEW_UP, KZU_FREE_CAMERA_ACTION_FIELD_OF_VIEW_DOWN,
  KZU_FREE_CAMERA_ACTION_ROLLING_LEFT, KZU_FREE_CAMERA_ACTION_ROLLING_RIGHT, KZU_FREE_CAMERA_ACTION_LIFTING_SIDE, KZU_FREE_CAMERA_ACTION_LIFTING_DEPTH,
  KZU_FREE_CAMERA_ACTION_STRAIGHTEN, KZU_FREE_CAMERA_ACTION_ROTATE_X_CLOCKWISE, KZU_FREE_CAMERA_ACTION_ROTATE_X_COUNTERCLOCKWISE, KZU_FREE_CAMERA_ACTION_ROTATE_Y_CLOCKWISE,
  KZU_FREE_CAMERA_ACTION_ROTATE_Y_COUNTERCLOCKWISE, KZU_FREE_CAMERA_ACTION_TOGGLE_FREEZE, KZU_FREE_CAMERA_ACTION_COUNT
}
 Free camera action types. More...
 

Functions

kzsError kzuFreeCameraCreate (const struct KzcMemoryManager *memoryManager, struct KzuUIDomain *uiDomain, struct KzuFreeCamera **out_freeCamera)
 Creates a new free camera object with a default camera in origin. More...
 
kzsError kzuFreeCameraDelete (struct KzuFreeCamera *freeCamera)
 Deletes free camera object. More...
 
kzsError kzuFreeCameraSetPosition (const struct KzuFreeCamera *freeCamera, const struct KzcVector3 *position)
 Sets position for free camera. More...
 
void kzuFreeCameraInitializeMatrix (const struct KzuFreeCamera *freeCamera, struct KzcMatrix4x4 *out_worldMatrix)
 Returns world matrix from free camera position and orientation. More...
 
struct KzuCameraNodekzuFreeCameraGetCameraNode (const struct KzuFreeCamera *freeCamera)
 Returns camera node from free camera. More...
 
kzsError kzuFreeCameraUpdate (struct KzuFreeCamera *freeCamera, kzUint deltaTime)
 Updates free camera, delta time in milliseconds. More...
 
kzBool kzuFreeCameraIsActive (const struct KzuFreeCamera *freeCamera)
 Tell if free camera is active. More...
 
kzsError kzuFreeCameraReplace (struct KzuFreeCamera *freeCamera, const struct KzuScene *scene, const struct KzuObjectNode *viewCameraNode, const struct KzcMatrix4x4 *parentWorldTransformation, const struct KzcMatrix4x4 *viewCameraTransformation)
 Replaces the view camera in a scene with this. More...
 
kzsError kzuFreeCameraReplaceWithTransformationAttributes (struct KzuFreeCamera *freeCamera, const struct KzuScene *scene, const struct KzcMatrix4x4 *parentWorldTransformation, const struct KzuCameraTransformationAttributes *attributes)
 Replaces the view camera in a scene with this taking into account transformation attributes. More...
 
struct KzuScenekzuFreeCameraGetAttachedScene (const struct KzuFreeCamera *freeCamera)
 Get attached scene from free camera. More...
 
struct KzuObjectNodekzuFreeCameraGetAttachedSceneObject (const struct KzuFreeCamera *freeCamera)
 Get attached scene object from free camera. More...
 
kzsError kzuFreeCameraRestoreReplacedCamera (const struct KzuFreeCamera *freeCamera)
 Restores the view camera previously replaced by this free camera. More...
 
void kzuFreeCameraSetFreezed (struct KzuFreeCamera *freeCamera, kzBool freezed)
 Sets free camera freezed / unfreezed. More...
 
kzBool kzuFreeCameraIsFreezed (const struct KzuFreeCamera *freeCamera)
 Checks if free camera is freezed. More...
 
kzFloat kzuFreeCameraGetSpeed (const struct KzuFreeCamera *freeCamera)
 Gets free camera speed. More...
 
kzsError kzuFreeCameraMapActionToKey (struct KzuFreeCamera *freeCamera, enum KzsInputKey key, enum KzuFreeCameraActionType actionType)
 Maps new action to key device key. More...
 
kzsError kzuFreeCameraMapActionToPointerButton (struct KzuFreeCamera *freeCamera, kzU32 pointerButton, enum KzuFreeCameraActionType actionType)
 Maps new action to pointer device button. More...
 
void kzuFreeCameraHandleKeyEvents (struct KzuFreeCamera *freeCamera, enum KzsInputKey keyCode, enum KzsInputKeyDeviceState keyState)
 Handles free camera key events. More...
 
void kzuFreeCameraHandlePointingDeviceEvents (struct KzuFreeCamera *freeCamera, kzU32 buttons, enum KzsInputPointingDeviceState state, kzInt mouseX, kzInt mouseY)
 Handles free camera pointing device events. More...
 
void kzuFreeCameraHandleWindowEvent (struct KzuFreeCamera *freeCamera, enum KzsEventType eventType)
 Handles a free camera window event. More...
 
void kzuFreeCameraSetActionEvent (struct KzuFreeCamera *freeCamera, enum KzuFreeCameraActionType actionType)
 Sets free camera action event. More...
 
kzsError kzuFreeCameraFocusToSelection (struct KzuFreeCamera *freeCamera, const struct KzcDynamicArray *nodePaths, const struct KzuTransformedScene *transformedScene)
 Focuses free camera to specified object node. More...
 
kzsError kzuFreeCameraRevertFocus (struct KzuFreeCamera *freeCamera)
 Reverts the free camera focus. More...
 
void kzuFreeCameraGetTransformation (const struct KzuFreeCamera *freeCamera, kzBool considerParent, struct KzcMatrix4x4 *out_matrix)
 Gets free camera transformation, including the parent inverse multiplied. More...
 
void kzuFreeCameraGetParentWorldTransformation (const struct KzuFreeCamera *freeCamera, struct KzcMatrix4x4 *out_matrix)
 Gets free camera's parent world transformation. More...
 
void kzuFreeCameraGetTransformationAttributes (const struct KzuFreeCamera *freeCamera, struct KzuCameraTransformationAttributes *out_attributes)
 Gets free camera transformation attributes. More...
 
kzBool kzuFreeCameraIsPickingEnabled (const struct KzuFreeCamera *freeCamera)
 Returns KZ_TRUE if picking should be enabled. More...
 

Detailed Description

Free camera utility.

A utility for freely moving camera with pointing and key devices.

Copyright 2008-2019 by Rightware. All rights reserved.

Enumeration Type Documentation

Free camera action types.

Enumerator
KZU_FREE_CAMERA_ACTION_MOVE_FORWARD 

Action forward.

KZU_FREE_CAMERA_ACTION_MOVE_BACKWARD 

Action backward.

KZU_FREE_CAMERA_ACTION_MOVE_LEFT 

Action left.

KZU_FREE_CAMERA_ACTION_MOVE_RIGHT 

Action right.

KZU_FREE_CAMERA_ACTION_SPEED_UP 

Action speed up.

KZU_FREE_CAMERA_ACTION_SPEED_DOWN 

Action speed down.

KZU_FREE_CAMERA_ACTION_DOUBLE_SPEED 

Action double speed.

KZU_FREE_CAMERA_ACTION_ROTATING 

Action rotating on.

KZU_FREE_CAMERA_ACTION_LIFTING 

Action lifting on.

KZU_FREE_CAMERA_ACTION_ROLLING 

Action rolling on.

KZU_FREE_CAMERA_ACTION_FIELD_OF_VIEW_UP 

Action field of view up.

KZU_FREE_CAMERA_ACTION_FIELD_OF_VIEW_DOWN 

Action field of view down.

KZU_FREE_CAMERA_ACTION_ROLLING_LEFT 

Action rolling left.

KZU_FREE_CAMERA_ACTION_ROLLING_RIGHT 

Action rolling right.

KZU_FREE_CAMERA_ACTION_LIFTING_SIDE 

Action lifting to side direction.

KZU_FREE_CAMERA_ACTION_LIFTING_DEPTH 

Action lifting to depth direction.

KZU_FREE_CAMERA_ACTION_STRAIGHTEN 

Straightens the free camera to look horizontally.

KZU_FREE_CAMERA_ACTION_ROTATE_X_CLOCKWISE 

Rotate X clockwise.

KZU_FREE_CAMERA_ACTION_ROTATE_X_COUNTERCLOCKWISE 

Rotate X counterclockwise.

KZU_FREE_CAMERA_ACTION_ROTATE_Y_CLOCKWISE 

Rotate Y clockwise.

KZU_FREE_CAMERA_ACTION_ROTATE_Y_COUNTERCLOCKWISE 

Rotate Y counterclockwise.

KZU_FREE_CAMERA_ACTION_TOGGLE_FREEZE 

Toggles free camera freeze on/off.

KZU_FREE_CAMERA_ACTION_COUNT 

Number of actions for free camera.

Function Documentation

kzsError kzuFreeCameraCreate ( const struct KzcMemoryManager memoryManager,
struct KzuUIDomain uiDomain,
struct KzuFreeCamera **  out_freeCamera 
)

Creates a new free camera object with a default camera in origin.

kzsError kzuFreeCameraDelete ( struct KzuFreeCamera freeCamera)

Deletes free camera object.

kzsError kzuFreeCameraSetPosition ( const struct KzuFreeCamera freeCamera,
const struct KzcVector3 position 
)

Sets position for free camera.

void kzuFreeCameraInitializeMatrix ( const struct KzuFreeCamera freeCamera,
struct KzcMatrix4x4 out_worldMatrix 
)

Returns world matrix from free camera position and orientation.

struct KzuCameraNode* kzuFreeCameraGetCameraNode ( const struct KzuFreeCamera freeCamera)

Returns camera node from free camera.

kzsError kzuFreeCameraUpdate ( struct KzuFreeCamera freeCamera,
kzUint  deltaTime 
)

Updates free camera, delta time in milliseconds.

kzBool kzuFreeCameraIsActive ( const struct KzuFreeCamera freeCamera)

Tell if free camera is active.

kzsError kzuFreeCameraReplace ( struct KzuFreeCamera freeCamera,
const struct KzuScene scene,
const struct KzuObjectNode viewCameraNode,
const struct KzcMatrix4x4 parentWorldTransformation,
const struct KzcMatrix4x4 viewCameraTransformation 
)

Replaces the view camera in a scene with this.

kzsError kzuFreeCameraReplaceWithTransformationAttributes ( struct KzuFreeCamera freeCamera,
const struct KzuScene scene,
const struct KzcMatrix4x4 parentWorldTransformation,
const struct KzuCameraTransformationAttributes attributes 
)

Replaces the view camera in a scene with this taking into account transformation attributes.

struct KzuScene* kzuFreeCameraGetAttachedScene ( const struct KzuFreeCamera freeCamera)

Get attached scene from free camera.

struct KzuObjectNode* kzuFreeCameraGetAttachedSceneObject ( const struct KzuFreeCamera freeCamera)

Get attached scene object from free camera.

kzsError kzuFreeCameraRestoreReplacedCamera ( const struct KzuFreeCamera freeCamera)

Restores the view camera previously replaced by this free camera.

void kzuFreeCameraSetFreezed ( struct KzuFreeCamera freeCamera,
kzBool  freezed 
)

Sets free camera freezed / unfreezed.

kzBool kzuFreeCameraIsFreezed ( const struct KzuFreeCamera freeCamera)

Checks if free camera is freezed.

kzFloat kzuFreeCameraGetSpeed ( const struct KzuFreeCamera freeCamera)

Gets free camera speed.

kzsError kzuFreeCameraMapActionToKey ( struct KzuFreeCamera freeCamera,
enum KzsInputKey  key,
enum KzuFreeCameraActionType  actionType 
)

Maps new action to key device key.

Same key can have several actions.

kzsError kzuFreeCameraMapActionToPointerButton ( struct KzuFreeCamera freeCamera,
kzU32  pointerButton,
enum KzuFreeCameraActionType  actionType 
)

Maps new action to pointer device button.

Same pointer device button can be mapped with several actions.

void kzuFreeCameraHandleKeyEvents ( struct KzuFreeCamera freeCamera,
enum KzsInputKey  keyCode,
enum KzsInputKeyDeviceState  keyState 
)

Handles free camera key events.

void kzuFreeCameraHandlePointingDeviceEvents ( struct KzuFreeCamera freeCamera,
kzU32  buttons,
enum KzsInputPointingDeviceState  state,
kzInt  mouseX,
kzInt  mouseY 
)

Handles free camera pointing device events.

void kzuFreeCameraHandleWindowEvent ( struct KzuFreeCamera freeCamera,
enum KzsEventType  eventType 
)

Handles a free camera window event.

void kzuFreeCameraSetActionEvent ( struct KzuFreeCamera freeCamera,
enum KzuFreeCameraActionType  actionType 
)

Sets free camera action event.

kzsError kzuFreeCameraFocusToSelection ( struct KzuFreeCamera freeCamera,
const struct KzcDynamicArray nodePaths,
const struct KzuTransformedScene transformedScene 
)

Focuses free camera to specified object node.

kzsError kzuFreeCameraRevertFocus ( struct KzuFreeCamera freeCamera)

Reverts the free camera focus.

void kzuFreeCameraGetTransformation ( const struct KzuFreeCamera freeCamera,
kzBool  considerParent,
struct KzcMatrix4x4 out_matrix 
)

Gets free camera transformation, including the parent inverse multiplied.

void kzuFreeCameraGetParentWorldTransformation ( const struct KzuFreeCamera freeCamera,
struct KzcMatrix4x4 out_matrix 
)

Gets free camera's parent world transformation.

void kzuFreeCameraGetTransformationAttributes ( const struct KzuFreeCamera freeCamera,
struct KzuCameraTransformationAttributes out_attributes 
)

Gets free camera transformation attributes.

kzBool kzuFreeCameraIsPickingEnabled ( const struct KzuFreeCamera freeCamera)

Returns KZ_TRUE if picking should be enabled.