// Copyright 2024 SquareBlock Inc. All Rights Reserved.
// Author: tianlei.richard@qq.com (tianlei.richard)

#include "common.h"

class Camera {
public:
  explicit Camera(const Vector3d &up);

public:
  TransformMatrix get_view_transform() const;

public:
  void set_position(const Point3d &position) {
    position_ = position.normalized();
  }
  void set_gaze(const Vector3d &gaze) { gaze_ = gaze.normalized(); }

private:
  Point3d position_;
  Vector3d gaze_;
  Vector3d up_;
};
