13 namespace visualization {
28 Eigen::Matrix4d toGLCamera;
29 toGLCamera << 1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0,
31 Eigen::Matrix4f m = (extrinsic.inverse() * toGLCamera).cast<float>();
36 const Eigen::Matrix3d& intrinsic,
37 const Eigen::Matrix4d& extrinsic,
38 int intrinsic_width_px,
39 int intrinsic_height_px,
40 const ccBBox& scene_bounds) {
50 const ccBBox& scene_bounds) {
56 auto far3 = camera.
GetModelMatrix().translation().cast<
double>().norm();
57 auto model_size = 2.0 * scene_bounds.
GetExtent().norm();
virtual Eigen::Vector3d GetMaxBound() const override
Returns max bounds for geometry coordinates.
Eigen::Vector3d GetExtent() const
Get the extent/length of the bounding box in x, y, and z dimension.
virtual Eigen::Vector3d GetMinBound() const override
Returns min bounds for geometry coordinates.
Eigen::Transform< float, 3, Eigen::Affine > Transform
virtual void SetModelMatrix(const Transform &view)=0
virtual void FromExtrinsics(const Eigen::Matrix4d &extrinsics)
virtual Transform GetModelMatrix() const =0
static void SetupCameraAsPinholeCamera(rendering::Camera &camera, const Eigen::Matrix3d &intrinsic, const Eigen::Matrix4d &extrinsic, int intrinsic_width_px, int intrinsic_height_px, const ccBBox &scene_bounds)
static float CalcNearPlane()
Returns a good value for the near plane.
virtual void SetProjection(double fov, double aspect, double near, double far, FovType fov_type)=0
static float CalcFarPlane(const rendering::Camera &camera, const ccBBox &scene_bounds)
static const double MIN_FAR_PLANE
static const double NEAR_PLANE
Generic file read and write utility for python interface.