KJB
|
St_perspective_camera for modeling a perspective camera using the classic Forsyth and Ponce parametrization. More...
#include <gr_cpp/gr_parapiped.h>
#include <g_cpp/g_quaternion.h>
#include <m_cpp/m_vector.h>
#include <st_cpp/st_renderable_model.h>
#include <gr_cpp/gr_parametric_frustum.h>
Go to the source code of this file.
Classes | |
class | kjb::Parametric_parapiped |
Namespaces | |
kjb | |
Classes and functions for dealing with trajectory files. | |
Macros | |
#define | ST_PARAPIPED_PITCH 0 |
#define | ST_PARAPIPED_YAW 1 |
#define | ST_PARAPIPED_ROLL 2 |
#define | ST_PARAPIPED_DISTANCE_FROM_THE_FLOOR 0.002 |
Functions | |
double | kjb::propose_parapiped_and_camera_from_orthogonal_corner_good (kjb::Parametric_parapiped &pp, kjb::Perspective_camera &camera, const kjb::Manhattan_corner &corner, double focal_length, unsigned int num_rows, unsigned int num_cols, double corner_3D_z_position, double p_width_ratio, double p_height_ratio, double p_length_ratio) |
bool | kjb::propose_parapiped_inside_parapiped_from_orthogonal_corner (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_room=true) |
bool | kjb::propose_frame_inside_parapiped_from_orthogonal_corner (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, unsigned int &face_number, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &idesired_dimensions, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::propose_frame_inside_parapiped_from_orthogonal_corner_good (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, unsigned int &face_number, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &idesired_dimensions, unsigned int num_rows, unsigned int num_cols, bool wall_x, bool expand_to_the_ground) |
bool | kjb::propose_parapiped_at_different_depth_from_orthogonal_corner (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_room) |
bool | kjb::propose_parapiped_onside_parapiped_from_orthogonal_corner (kjb::Vector ¢re, kjb::Vector &dimensions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_sp_obj, kjb::Vector &sp_obj_centre, kjb::Vector &sp_obj_dimensions) |
bool | kjb::propose_supported_parapiped_inside_parapiped_from_orthogonal_corner (kjb::Vector ¢re, kjb::Vector &dimensions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_sp_obj, kjb::Vector &sp_obj_centre, kjb::Vector &sp_obj_dimensions) |
bool | kjb::propose_parapiped_inside_parapiped_from_orthogonal_corner_against_wall (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_room, bool expand_right, bool expand_z_up, bool expand_towards_camera) |
bool | kjb::propose_supported_parapiped_inside_parapiped_from_three_corners (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner1, const Manhattan_corner &corner2, const Manhattan_corner &corner3, double desired_height, unsigned int num_rows, unsigned int num_cols, double base_height) |
bool | kjb::propose_parapiped_inside_parapiped_from_three_corners_on_the_floor (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner1, const Manhattan_corner &corner2, const Manhattan_corner &corner3, double desired_height, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::propose_parapiped_inside_parapiped_from_two_corners_on_the_floor (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner1, const Manhattan_corner &corner2, double desired_height, double desired_other_dimension_ratio, bool direction, bool &is_diagonal, bool &is_dx, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::propose_parapiped_onside_parapiped_from_one_corner_in_the_center (kjb::Vector ¢re, kjb::Vector &dimensions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, const kjb::Vector &imin_desired_dimensions, unsigned int num_rows, unsigned int num_cols, double distance_from_camera, bool expand_sp_obj, kjb::Vector &sp_obj_centre, kjb::Vector &sp_obj_dimensions) |
bool | kjb::propose_parapiped_inside_parapiped_from_one_corner_in_the_centre_on_the_floor (kjb::Vector ¢re, kjb::Vector &dimensions, kjb::Vector &expansion_deltas, std::vector< bool > &expansion_directions, Parametric_parapiped &new_pp, const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, double desired_height, double desired_width, double desired_length, bool &is_dx, unsigned int num_rows, unsigned int num_cols) |
void | kjb::expand_towards_camera (const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &corner, unsigned int num_rows, unsigned int num_cols, bool &expand_tw_camera, bool &expand_right, bool &expand_z_up) |
double | kjb::propose_parapiped_and_camera_from_vanishing_points (kjb::Parametric_parapiped &pp, kjb::Perspective_camera &camera, const std::vector< Vanishing_point > &vpts, double focal_length, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::find_height_from_two_corners (const Parametric_parapiped &pp, const Perspective_camera &camera, const Manhattan_corner &floor_corner, const Manhattan_corner &top_corner, double &desired_height, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::shift_parapiped_to_match_corner (kjb::Parametric_parapiped &pp, kjb::Perspective_camera &camera, unsigned int num_rows, unsigned int num_cols, const kjb::Vector &corner) |
bool | kjb::propose_frame_inside_parapiped_from_three_corners_on_the_wall (kjb::Vector ¢re, kjb::Vector &dimensions, const Parametric_parapiped &pp, const Perspective_camera &camera, unsigned int &face_number, const Manhattan_corner &corner1, const Manhattan_corner &corner2, const Manhattan_corner &corner3, unsigned int num_rows, unsigned int num_cols) |
bool | kjb::backproject_point_to_plane (kjb::Vector &intersection, kjb::Vector point2D, kjb::Vector plane, const Parametric_parapiped &pp, const Perspective_camera &camera, int num_rows, int num_cols) |
void | kjb::update_focal_with_position (Perspective_camera &cam, double ifocal, Parametric_parapiped &pp) |
St_perspective_camera for modeling a perspective camera using the classic Forsyth and Ponce parametrization.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
http://creativecommons.org/licenses/by-nc-sa/3.0/us/
You are free:
to Share - to copy, distribute, display, and perform the work to Remix - to make derivative works
Under the following conditions:
Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Noncommercial. You may not use this work for commercial purposes.
Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.
Any of the above conditions can be waived if you get permission from the copyright holder.
Apart from the remix rights granted under this license, nothing in this license impairs or restricts the author's moral rights.
The Gl_perspective_camera is defined by a camera centre, three rotation angles (pitch, yaw and roll), focal length, aspect ratio, principal point coordinates in the image plane, skew angle.
#define ST_PARAPIPED_DISTANCE_FROM_THE_FLOOR 0.002 |
#define ST_PARAPIPED_PITCH 0 |
#define ST_PARAPIPED_ROLL 2 |
#define ST_PARAPIPED_YAW 1 |