aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/camera.c3
-rw-r--r--src/camera.h69
2 files changed, 71 insertions, 1 deletions
diff --git a/src/camera.c b/src/camera.c
index 1aa39ca8..cde118c9 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -23,7 +23,8 @@
*
**********************************************************************************************/
-#include "raylib.h"
+#include "camera.h"
+
#include <math.h>
//----------------------------------------------------------------------------------
diff --git a/src/camera.h b/src/camera.h
new file mode 100644
index 00000000..cb5f2bde
--- /dev/null
+++ b/src/camera.h
@@ -0,0 +1,69 @@
+/*******************************************************************************************
+*
+* raylib Camera System - Camera Modes Setup and Control Functions
+*
+* Copyright (c) 2015 Marc Palau and Ramon Santamaria
+*
+* This software is provided "as-is", without any express or implied warranty. In no event
+* will the authors be held liable for any damages arising from the use of this software.
+*
+* Permission is granted to anyone to use this software for any purpose, including commercial
+* applications, and to alter it and redistribute it freely, subject to the following restrictions:
+*
+* 1. The origin of this software must not be misrepresented; you must not claim that you
+* wrote the original software. If you use this software in a product, an acknowledgment
+* in the product documentation would be appreciated but is not required.
+*
+* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
+* as being the original software.
+*
+* 3. This notice may not be removed or altered from any source distribution.
+*
+**********************************************************************************************/
+
+#ifndef CAMERA_H
+#define CAMERA_H
+
+#include "raylib.h"
+
+//----------------------------------------------------------------------------------
+// Defines and Macros
+//----------------------------------------------------------------------------------
+//...
+
+//----------------------------------------------------------------------------------
+// Types and Structures Definition
+//----------------------------------------------------------------------------------
+// Camera modes
+typedef enum { CAMERA_CUSTOM = 0, CAMERA_FREE, CAMERA_ORBITAL, CAMERA_FIRST_PERSON, CAMERA_THIRD_PERSON } CameraMode;
+
+
+#ifdef __cplusplus
+extern "C" { // Prevents name mangling of functions
+#endif
+
+//----------------------------------------------------------------------------------
+// Global Variables Definition
+//----------------------------------------------------------------------------------
+//...
+
+//----------------------------------------------------------------------------------
+// Module Functions Declaration
+//----------------------------------------------------------------------------------
+void SetCameraMode(int mode); // Select camera mode (multiple camera modes available)
+Camera UpdateCamera(Vector3 *position); // Update camera with position
+
+void SetCameraControls(int front, int left, int back, int right, int up, int down);
+void SetCameraMouseSensitivity(float sensitivity);
+void SetCameraResetPosition(Vector3 resetPosition);
+void SetCameraResetControl(int resetKey);
+void SetCameraPawnControl(int pawnControlKey);
+void SetCameraFnControl(int fnControlKey);
+void SetCameraSmoothZoomControl(int smoothZoomControlKey);
+void SetCameraOrbitalTarget(Vector3 target);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // CAMERA_H