22#if !defined(OPENNURBS_VIEWPORT_INC_) 
   23#define OPENNURBS_VIEWPORT_INC_ 
   43  bool IsValidCamera() 
const;
 
   44  bool IsValidFrustum() 
const;
 
  185  bool SetProjection( ON::view_projection projection );
 
  201  bool ChangeToParallelProjection( 
bool bSymmetricFrustum );
 
  227  bool ChangeToPerspectiveProjection( 
 
  228          double target_distance,
 
  229          bool bSymmetricFrustum,
 
  260  bool ChangeToTwoPointPerspectiveProjection( 
 
  261          double target_distance,
 
  270  bool IsPerspectiveProjection() 
const;
 
  279  bool IsTwoPointPerspectiveProjection() 
const;
 
  285  bool IsParallelProjection() 
const;
 
  297  bool CameraLocationIsLocked() 
const;
 
  298  bool CameraDirectionIsLocked() 
const;
 
  299  bool CameraUpIsLocked() 
const;
 
  300  bool FrustumIsLeftRightSymmetric() 
const;
 
  301  bool FrustumIsTopBottomSymmetric() 
const;
 
  303  void SetCameraLocationLock( 
bool bLockCameraLocation );
 
  304  void SetCameraDirectionLock( 
bool bLockCameraDirection ) ;
 
  305  void SetCameraUpLock( 
bool bLockCameraUp );
 
  306  void SetFrustumLeftRightSymmetry( 
bool bForceLeftRightSymmetry );
 
  307  void SetFrustumTopBottomSymmetry( 
bool bForceTopBottomSymmetry );
 
  309  void UnlockFrustumSymmetry(); 
 
  325  bool IsCameraFrameWorldPlan( 
 
  338  bool GetCameraExtents( 
 
  348  bool GetCameraExtents( 
 
  356  bool GetCameraExtents( 
 
  384        double* near_dist = 
NULL, 
 
  385        double* far_dist = 
NULL    
  394  bool SetFrustumAspect( 
double );
 
  397  bool GetFrustumAspect( 
double& ) 
const;
 
  400  bool GetFrustumCenter( 
double* ) 
const;
 
  406  double FrustumLeft() 
const;
 
  407  double FrustumRight() 
const;
 
  408  double FrustumBottom() 
const;
 
  409  double FrustumTop() 
const;
 
  410  double FrustumNear() 
const;
 
  411  double FrustumFar() 
const;
 
  417  double FrustumWidth() 
const; 
 
  423  double FrustumHeight() 
const; 
 
  429  double FrustumMinimumDiameter() 
const;
 
  435  double FrustumMaximumDiameter() 
const;
 
  438  bool SetFrustumNearFar(       
 
  439         const double* bboxmin,  
 
  440         const double* bboxmax   
 
  442  bool SetFrustumNearFar( 
 
  443         const double* center,  
 
  446  bool SetFrustumNearFar( 
 
  472  bool ChangeToSymmetricFrustum( 
 
  473    bool bLeftRightSymmetric, 
 
  474    bool bTopBottomSymmetric,
 
  475    double target_distance
 
  500         bool bGrowNearFar=
false 
  522  bool GetBoundingBoxDepth(       
 
  526         bool bGrowNearFar=
false 
  552         bool bGrowNearFar=
false 
  581  bool SetFrustumNearFar( 
 
  584         double min_near_dist,
 
  585         double min_near_over_far,
 
  630  bool GetFrustumLeftPlane( 
 
  647  bool GetFrustumRightPlane( 
 
  664  bool GetFrustumBottomPlane( 
 
  681  bool GetFrustumTopPlane( 
 
  773  bool GetScreenPortAspect( 
double& ) 
const; 
 
  776          double* half_diagonal_angle, 
 
  777          double* half_vertical_angle, 
 
  778          double* half_horizontal_angle 
 
  781          double* half_smallest_angle  
 
  784          double half_smallest_angle 
 
  794  bool GetCamera35mmLensLength( 
 
  797  bool SetCamera35mmLensLength( 
 
  802  bool GetCamera35mmLenseLength( 
 
  807  bool SetCamera35mmLenseLength( 
 
  812         ON::coordinate_system srcCS,
 
  813         ON::coordinate_system destCS,
 
  838  bool GetWorldToScreenScale( 
 
  840    double* pixels_per_unit             
 
  843  bool GetCoordinateSprite(
 
  854         double half_view_angle,        
 
  859         double half_view_angle,        
 
  872  bool ZoomToScreenRect(
 
  892  bool GetDollyCameraVector(
 
  897         double proj_plane_dist,      
 
  905          double dolly_distance 
 
  922  bool SetViewScale( 
double x, 
double y );
 
  923  void GetViewScale( 
double* x, 
double* y ) 
const;
 
  942  ON_Xform ClipModInverseXform() 
const;
 
  948  bool ClipModXformIsIdentity() 
const;
 
  968  ON_3dPoint FrustumCenterPoint( 
double target_distance ) 
const;
 
  995  bool SetTargetPoint( 
ON_3dPoint target_point );
 
 1015  double TargetDistance( 
bool bUseFrustumCenterFallback ) 
const;
 
 1030  void SetPerspectiveMinNearOverFar(
double min_near_over_far);
 
 1043  double PerspectiveMinNearOverFar() 
const;
 
 1055  void SetPerspectiveMinNearDist(
double min_near_dist);
 
 1068  double PerspectiveMinNearDist() 
const;
 
 1086  bool  SetViewportId(
const ON_UUID& viewport_id );
 
 1088  ON_UUID ViewportId(
void) 
const;
 
 1098  void ChangeViewportId(
const ON_UUID& viewport_id);
 
 1181  bool SetCameraFrame(); 
 
 1195  bool SetClipModXform( 
ON_Xform clip_mod_xform );
 
 
 1219        ON::view_projection, 
 
Definition opennurbs_point.h:403
Definition opennurbs_point.h:931
Definition opennurbs_archive.h:152
Definition opennurbs_bounding_box.h:25
Definition opennurbs_geometry.h:36
virtual ON_BOOL32 GetBBox(double *boxmin, double *boxmax, int bGrowBox=false) const =0
ON_Geometry & operator=(const ON_Geometry &)
Definition opennurbs_geometry.cpp:26
virtual int Dimension() const =0
Definition opennurbs_line.h:20
virtual void Dump(ON_TextLog &) const
Definition opennurbs_object.cpp:1695
virtual ON_BOOL32 IsValid(ON_TextLog *text_log=NULL) const =0
virtual ON_BOOL32 Read(ON_BinaryArchive &binary_archive)
Definition opennurbs_object.cpp:1734
virtual ON_BOOL32 Write(ON_BinaryArchive &binary_archive) const
Definition opennurbs_object.cpp:1714
Definition opennurbs_point.h:1169
Definition opennurbs_plane.h:20
Definition opennurbs_array.h:46
Definition opennurbs_sphere.h:22
Definition opennurbs_textlog.h:20
Definition opennurbs_uuid.h:31
Definition opennurbs_viewport.h:31
ON_3dPoint m_target_point
Definition opennurbs_viewport.h:1173
double m__MIN_NEAR_OVER_FAR
Definition opennurbs_viewport.h:1202
bool m_bLockCamDir
Definition opennurbs_viewport.h:1127
ON_3dVector m_CamDir
Definition opennurbs_viewport.h:1132
bool m_bLockCamLoc
Definition opennurbs_viewport.h:1128
ON::view_projection m_projection
Definition opennurbs_viewport.h:1112
ON_3dVector m_CamX
Definition opennurbs_viewport.h:1136
double m_frus_far
Definition opennurbs_viewport.h:1147
ON_3dPoint m_CamLoc
Definition opennurbs_viewport.h:1131
unsigned char m_reserved1
Definition opennurbs_viewport.h:1107
int m_port_bottom
Definition opennurbs_viewport.h:1157
ON_3dVector m_CamY
Definition opennurbs_viewport.h:1137
ON_3dVector m_CamZ
Definition opennurbs_viewport.h:1138
void SetMinNearOverFar(double)
bool m_bLockCamUp
Definition opennurbs_viewport.h:1126
double m_frus_left
Definition opennurbs_viewport.h:1145
ON_UUID m_viewport_id
Definition opennurbs_viewport.h:1179
ON_Xform m_clip_mods
Definition opennurbs_viewport.h:1196
double m_frus_bottom
Definition opennurbs_viewport.h:1146
double MinNearOverFar() const
int m_port_far
Definition opennurbs_viewport.h:1163
unsigned char m_frustum_symmetry_flags
Definition opennurbs_viewport.h:1129
bool m_bValidCamera
Definition opennurbs_viewport.h:1104
ON_Xform m_clip_mods_inverse
Definition opennurbs_viewport.h:1197
ON_3dVector m_CamUp
Definition opennurbs_viewport.h:1133
int m_port_left
Definition opennurbs_viewport.h:1156
bool m_bValidPort
Definition opennurbs_viewport.h:1106
double m__MIN_NEAR_DIST
Definition opennurbs_viewport.h:1201
static const ON_3dVector Default3dCameraDirection
Definition opennurbs_viewport.h:36
ON_OBJECT_DECLARE(ON_Viewport)
bool m_bValidFrustum
Definition opennurbs_viewport.h:1105
Base class for all projection tools.
Definition Projection.js:18
#define ON_DECL
Definition opennurbs_defines.h:92
#define ON_CLASS
Definition opennurbs_defines.h:91
#define NULL
Definition opennurbs_system.h:256
int ON_BOOL32
Definition opennurbs_system.h:362
ON_DECL bool ON_GetViewportRotationAngles(const ON_3dVector &, const ON_3dVector &, const ON_3dVector &, double *, double *, double *)
Definition opennurbs_viewport.cpp:92
ON_DECL bool ON_IntersectViewFrustumPlane(const ON_Viewport &vp, const ON_PlaneEquation &plane_equation, ON_SimpleArray< ON_3dPoint > &points)
Definition opennurbs_viewport.cpp:3611
ON_DECL bool ON_ViewportFromRhinoView(ON::view_projection, const ON_3dPoint &, double, double, double, double, double, int, int, ON_Viewport &)
Definition opennurbs_viewport.cpp:1837