66 lines
3.5 KiB
C++
66 lines
3.5 KiB
C++
#ifndef _PAYSAGES_CAMERA_H_
|
|
#define _PAYSAGES_CAMERA_H_
|
|
|
|
#include "rendering_global.h"
|
|
#include "tools/euclid.h"
|
|
#include "tools/boundingbox.h"
|
|
|
|
namespace paysages {
|
|
namespace system {class PackStream;}
|
|
}
|
|
|
|
typedef struct CameraDefinition CameraDefinition;
|
|
|
|
typedef struct
|
|
{
|
|
double yfov;
|
|
double xratio;
|
|
double znear;
|
|
double zfar;
|
|
} CameraPerspective;
|
|
|
|
RENDERINGSHARED_EXPORT void cameraSave(PackStream* stream, CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT void cameraLoad(PackStream* stream, CameraDefinition* camera);
|
|
|
|
RENDERINGSHARED_EXPORT CameraDefinition* cameraCreateDefinition();
|
|
RENDERINGSHARED_EXPORT void cameraDeleteDefinition(CameraDefinition* definition);
|
|
RENDERINGSHARED_EXPORT void cameraCopyDefinition(CameraDefinition* source, CameraDefinition* destination);
|
|
RENDERINGSHARED_EXPORT void cameraValidateDefinition(CameraDefinition* definition, int check_above);
|
|
|
|
RENDERINGSHARED_EXPORT Vector3 cameraGetLocation(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT Vector3 cameraGetTarget(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT Vector3 cameraGetUpVector(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT double cameraGetRoll(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT Vector3 cameraGetDirection(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT Vector3 cameraGetDirectionNormalized(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT VectorSpherical cameraGetDirectionSpherical(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT CameraPerspective cameraGetPerspective(CameraDefinition* camera);
|
|
RENDERINGSHARED_EXPORT double cameraGetRealDepth(CameraDefinition* camera, Vector3 projected);
|
|
|
|
RENDERINGSHARED_EXPORT void cameraSetLocation(CameraDefinition* camera, Vector3 location);
|
|
RENDERINGSHARED_EXPORT void cameraSetLocationCoords(CameraDefinition* camera, double x, double y, double z);
|
|
RENDERINGSHARED_EXPORT void cameraSetTarget(CameraDefinition* camera, Vector3 target);
|
|
RENDERINGSHARED_EXPORT void cameraSetTargetCoords(CameraDefinition* camera, double x, double y, double z);
|
|
RENDERINGSHARED_EXPORT void cameraSetRoll(CameraDefinition* camera, double angle);
|
|
RENDERINGSHARED_EXPORT void cameraSetZoomToTarget(CameraDefinition* camera, double zoom);
|
|
|
|
RENDERINGSHARED_EXPORT void cameraStrafeForward(CameraDefinition* camera, double value);
|
|
RENDERINGSHARED_EXPORT void cameraStrafeRight(CameraDefinition* camera, double value);
|
|
RENDERINGSHARED_EXPORT void cameraStrafeUp(CameraDefinition* camera, double value);
|
|
RENDERINGSHARED_EXPORT void cameraRotateYaw(CameraDefinition* camera, double value);
|
|
RENDERINGSHARED_EXPORT void cameraRotatePitch(CameraDefinition* camera, double value);
|
|
RENDERINGSHARED_EXPORT void cameraRotateRoll(CameraDefinition* camera, double value);
|
|
|
|
RENDERINGSHARED_EXPORT void cameraSetRenderSize(CameraDefinition* camera, int width, int height);
|
|
|
|
RENDERINGSHARED_EXPORT Vector3 cameraProject(CameraDefinition* camera, Vector3 point);
|
|
RENDERINGSHARED_EXPORT Vector3 cameraUnproject(CameraDefinition* camera, Vector3 point);
|
|
/*void cameraPushOverlay(CameraDefinition* camera, Color col, f_RenderFragmentCallback callback);*/
|
|
RENDERINGSHARED_EXPORT int cameraIsBoxInView(CameraDefinition* camera, Vector3 center, double xsize, double ysize, double zsize);
|
|
RENDERINGSHARED_EXPORT int cameraIsUnprojectedBoxInView(CameraDefinition* camera, BoundingBox* box);
|
|
RENDERINGSHARED_EXPORT int cameraIsProjectedBoxInView(CameraDefinition* camera, BoundingBox* box);
|
|
|
|
RENDERINGSHARED_EXPORT int cameraTransitionToAnother(CameraDefinition* current, CameraDefinition* wanted, double factor);
|
|
|
|
#endif
|