mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections. 1) Getting rid of ProjectionShift and Center property: - Removed ProjectionShift property of Graphic3d_Camera. - Removed confusing Center property of V3d_View (related to projection shift). - Removed redundant code related to the Center property of V3d_View. - Removed WindowLimit method of Graphic3d_Camera - no more used. 2) Improvements of fit all and selector: - Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly. - Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices. - Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised. - Take into account graphical boundaries of infinite structure on ZFitAll. 3) Improvements of camera: - Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode. - Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model. - Moved camera ZNear, ZFar validity checks to V3d_View level. - Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll. - Use Standard_Real type for camera projection and orientation matrices. - Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters. Correcting picking tests for perspective view Modify v3d face test cases for 1px changes in face picking Modified test cases for new arguments of vviewparams DRAWEXE command
97 lines
2.5 KiB
Plaintext
97 lines
2.5 KiB
Plaintext
-- Created on: 1995-02-22
|
|
-- Created by: Mister rmi
|
|
-- Copyright (c) 1995-1999 Matra Datavision
|
|
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
--
|
|
-- This file is part of Open CASCADE Technology software library.
|
|
--
|
|
-- This library is free software; you can redistribute it and/or modify it under
|
|
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
|
-- by the Free Software Foundation, with special exception defined in the file
|
|
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
-- distribution for complete text of the license and disclaimer of any warranty.
|
|
--
|
|
-- Alternatively, this file may be used under the terms of Open CASCADE
|
|
-- commercial license or contractual agreement.
|
|
|
|
--Modified by Rob Jan 13 th 98 : Compute Depth on EyeLine for
|
|
-- Each Kind of SensitiveEntity.
|
|
-- (Deferred Method to be implemented)
|
|
|
|
|
|
package Select3D
|
|
|
|
---Purpose: The Select3D package provides the following services
|
|
-- - definition of standard 3D sensitive primitives such as points, curves and faces.
|
|
-- - recovery of the bounding boxes in the 2D graphic selection space, if required.
|
|
-- - a 3D-2D projector.
|
|
|
|
uses
|
|
Standard,
|
|
TCollection,
|
|
TColStd,
|
|
TColgp,
|
|
gp,
|
|
Bnd,
|
|
Poly,
|
|
TopLoc,
|
|
Geom,
|
|
SelectBasics,
|
|
V3d,
|
|
Graphic3d
|
|
|
|
is
|
|
|
|
---Category: sensitive entities
|
|
|
|
enumeration TypeOfSensitivity is TOS_INTERIOR,TOS_BOUNDARY
|
|
end TypeOfSensitivity;
|
|
---Purpose: Provides values for type of sensitivity in 3D.
|
|
-- These are used to specify whether it is the interior,
|
|
-- the boundary, or the exterior of a 3D sensitive entity which is sensitive.
|
|
|
|
deferred class SensitiveEntity;
|
|
|
|
deferred class SensitivePoly;
|
|
|
|
class SensitivePoint;
|
|
|
|
class SensitiveSegment;
|
|
|
|
class SensitiveCircle;
|
|
|
|
class SensitiveCurve;
|
|
|
|
class SensitiveTriangle;
|
|
|
|
class SensitiveTriangulation;
|
|
|
|
class SensitiveFace;
|
|
|
|
class SensitiveBox;
|
|
|
|
class SensitiveWire;
|
|
|
|
class SensitiveGroup;
|
|
|
|
class SensitiveEntitySequence instantiates Sequence from TCollection
|
|
(SensitiveEntity from Select3D);
|
|
|
|
---Category: selectors/projectors
|
|
|
|
class Projector;
|
|
|
|
|
|
class ListOfSensitiveTriangle instantiates List from TCollection
|
|
(SensitiveTriangle from Select3D);
|
|
|
|
class ListOfSensitive instantiates List from TCollection
|
|
(SensitiveEntity from Select3D);
|
|
|
|
imported Pnt;
|
|
imported Pnt2d;
|
|
imported Box2d;
|
|
imported PointData;
|
|
|
|
end Select3D;
|