Skip to main content

Camera3D

View and projection matrix management for 3D visualizations.

Synopsis

namespace Skigen::Plot {

class Camera3D {
public:
Camera3D();

void lookAt(const Eigen::Vector3f& eye,
const Eigen::Vector3f& target,
const Eigen::Vector3f& up = Eigen::Vector3f::UnitY());

void setPerspective(float fovDegrees, float aspect,
float nearPlane, float farPlane);

auto viewMatrix() const -> Eigen::Matrix4f;
auto projectionMatrix() const -> Eigen::Matrix4f;
auto viewProjectionMatrix() const -> Eigen::Matrix4f;

auto position() const -> const Eigen::Vector3f&;
auto target() const -> const Eigen::Vector3f&;
};

} // namespace Skigen::Plot

Description

Camera3D computes standard right-handed view and perspective projection matrices. Used by PlotView for 3D rendering modes (point clouds, surface meshes).

See the Camera3D guide for detailed usage and the mathematical derivation.