29#include "NvFlowTypes.h"
35enum NvFlowCameraAction
37 eNvFlowCameraAction_unknown = 0,
38 eNvFlowCameraAction_down = 1,
39 eNvFlowCameraAction_up = 2,
41 eNvFlowCameraAction_maxEnum = 0x7FFFFFFF
44enum NvFlowCameraMouseButton
46 eNvFlowCameraMouseButton_unknown = 0,
47 eNvFlowCameraMouseButton_left = 1,
48 eNvFlowCameraMouseButton_middle = 2,
49 eNvFlowCameraMouseButton_right = 3,
51 eNvFlowCameraMouseButton_maxEnum = 0x7FFFFFFF
56 eNvFlowCameraKey_unknown = 0,
57 eNvFlowCameraKey_up = 1,
58 eNvFlowCameraKey_down = 2,
59 eNvFlowCameraKey_left = 3,
60 eNvFlowCameraKey_right = 4,
62 eNvFlowCameraKey_maxEnum = 0x7FFFFFFF
67 NvFlowFloat3 position;
68 NvFlowFloat3 eyeDirection;
70 float eyeDistanceFromPosition;
75 NvFlowBool32 isProjectionRH;
76 NvFlowBool32 isOrthographic;
77 NvFlowBool32 isReverseZ;
85 float keyTranslationRate;
88NV_FLOW_API
NvFlowCamera* NvFlowCameraCreate(
int winw,
int winh);
90NV_FLOW_API
void NvFlowCameraDestroy(
NvFlowCamera* camera);
104NV_FLOW_API
void NvFlowCameraGetView(
NvFlowCamera* camera, NvFlowFloat4x4* view);
106NV_FLOW_API
void NvFlowCameraGetProjection(
NvFlowCamera* camera, NvFlowFloat4x4* projection,
float aspectWidth,
float aspectHeight);
108NV_FLOW_API
void NvFlowCameraMouseUpdate(
NvFlowCamera* camera, NvFlowCameraMouseButton button, NvFlowCameraAction action,
int mouseX,
int mouseY,
int winw,
int winh);
110NV_FLOW_API
void NvFlowCameraKeyUpdate(
NvFlowCamera* camera, NvFlowCameraKey key, NvFlowCameraAction action);
112NV_FLOW_API
void NvFlowCameraAnimationTick(
NvFlowCamera* camera,
float deltaTime);