0025624: Visualization - selection is incorrect in perspective mode in a specific...
[occt.git] / src / StdSelect / StdSelect.cdl
1 -- Created on: 1995-03-08
2 -- Created by: Mister rmi
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 --Modified by ROB : Add ShapeFilters.
18 --            GG  : 5/10/99 BUC60576 Add Cone to TypeOfFace enum
19
20
21 package StdSelect 
22
23         ---Purpose: The StdSelect package provides the following services
24         -- -   the definition of selection modes for topological shapes
25         -- -   the definition of several concrete filtertandard
26         --   Selection2d.ap classes
27         -- -   2D and 3D viewer selectors.
28         --  Note that each new Interactive Object must have all
29         -- its selection modes defined.
30         --        Standard Classes is useful to build
31         --          3D Selectable Objects, and to process
32         --          3D Selections:
33         --          
34         --          - Implementation of View Selector for dynamic selection
35         --            in Views from V3d.
36         --          
37         --          - Implementation of Tool class to decompose 3D BRep Objects
38         --            into sensitive Primitives for every desired mode of selection
39         --            (selection of vertex,edges,wires,faces,...)
40         --            
41         --          -  Implementation of dedicated Sensitives Entities:
42         --             Text for 2D Views (linked to Specific 2D projectors.)
43 uses
44     MMgt,
45     Standard,
46     TCollection,
47     TopLoc,
48     TopoDS,
49     SelectMgr,
50     TopAbs,
51     TColStd,
52     gp,
53     Select3D,
54     Graphic3d,Visual3d,
55     Quantity,
56     Prs3d,
57     V3d,
58     PrsMgr,
59     SelectBasics,
60     TopTools,
61     Bnd,
62     Geom, 
63     TColgp
64
65 is
66
67     enumeration TypeOfResult is TOR_SIMPLE,TOR_MULTIPLE
68     end TypeOfResult;
69         ---Purpose: Provides values for type of result.
70         -- These are used to specify whether the result is to
71         -- be simple or whether it may be multiple.
72         
73     enumeration DisplayMode is DM_Wireframe,DM_Shading,DM_HLR
74     end DisplayMode;
75     
76 --    enumeration TypeOfFace is AnyFace,Plane,Cylinder,Sphere,Torus,Revol;
77     enumeration TypeOfFace is AnyFace,Plane,Cylinder,Sphere,Torus,Revol,Cone;
78         ---Purpose: Provides values for different types of faces. These
79         -- values are used to filter faces in frameworks inheriting
80         -- StdSelect_FaceFilter.
81     
82     enumeration TypeOfEdge is AnyEdge,Line,Circle;
83         ---Purpose: Provides values for different types of edges. These
84         -- values are used to filter edges in frameworks
85         -- inheriting StdSelect_EdgeFilter.
86     
87     enumeration SensitivityMode is SM_WINDOW, SM_VIEW;
88         ---Purpose: Selection sensitivity mode. SM_WINDOW mode uses the
89         -- specified pixel tolerance to compute the sensitivity value,
90         -- SM_VIEW mode allows to define the sensitivity manually.
91
92
93     class ViewerSelector3d;
94
95     class BRepSelectionTool;
96
97     class BRepOwner;
98
99
100     ---Category: Shape Filters
101
102     class EdgeFilter;
103     class FaceFilter;
104     class ShapeTypeFilter;
105
106     ---Category: Private Classes
107
108     private class Prs;
109
110     private class Shape;
111
112     private class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection
113     (EntityOwner from SelectBasics,Prs from StdSelect,MapTransientHasher from TColStd);
114
115     GetProjector (aView: View from V3d) returns Projector from Select3D;
116         ---Purpose: Returns the 3D projector for the view aView.
117     SetDrawerForBRepOwner(aSelection: Selection from SelectMgr;
118                           aDrawer   : Drawer from Prs3d);
119         ---Purpose: puts The same drawer in every BRepOwner Of SensitivePrimitive
120         --          Used Only for hilight Of BRepOwner...
121                         
122
123 end StdSelect;