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