|
|
|||
File indexing completed on 2026-09-11 09:16:49
0001 // Created on: 1996-12-11 0002 // Created by: Robert COUBLANC 0003 // Copyright (c) 1996-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _AIS_HeaderFile 0018 #define _AIS_HeaderFile 0019 0020 #include <Prs3d_Presentation.hxx> 0021 #include <Standard.hxx> 0022 #include <Standard_DefineAlloc.hxx> 0023 0024 //! Application Interactive Services provide the means to create links between an application GUI 0025 //! viewer and the packages which are used to manage selection and presentation. The tools AIS 0026 //! defined in order to do this include different sorts of entities: both the selectable viewable 0027 //! objects themselves and the context and attribute managers to define their selection and display. 0028 //! To orient the user as he works in a modeling environment, views and selections must be 0029 //! comprehensible. There must be several different sorts of selectable and viewable object defined. 0030 //! These must also be interactive, that is, connecting graphic representation and the underlying 0031 //! reference geometry. These entities are called Interactive Objects, and are divided into four 0032 //! types: 0033 //! - the Datum 0034 //! - the Relation 0035 //! - the Object 0036 //! - None. 0037 //! The Datum groups together the construction elements such as lines, circles, points, trihedra, 0038 //! plane trihedra, planes and axes. The Relation is made up of constraints on one or more 0039 //! interactive shapes and the corresponding reference geometry. For example, you might want to 0040 //! constrain two edges in a parallel relation. This constraint is considered as an object in its 0041 //! own right, and is shown as a sensitive primitive. This takes the graphic form of a perpendicular 0042 //! arrow marked with the || symbol and lying between the two edges. The Object type includes 0043 //! topological shapes, and connections between shapes. None, in order not to eliminate the object, 0044 //! tells the application to look further until it finds an object definition in its generation 0045 //! which is accepted. Inside these categories, you have the possibility of an additional 0046 //! characterization by means of a signature. The signature provides an index to the further 0047 //! characterization. By default, the Interactive Object has a None type and a signature of 0 0048 //! (equivalent to None.) If you want to give a particular type and signature to your interactive 0049 //! object, you must redefine the two virtual methods: Type and Signature. In the C++ inheritance 0050 //! structure of the package, each class representing a specific Interactive Object inherits 0051 //! AIS_InteractiveObject. Among these inheriting classes, PrsDim_Relation functions as the abstract 0052 //! mother class for tinheriting classes defining display of specific relational constraints and 0053 //! types of dimension. Some of these include: 0054 //! - display of constraints based on relations of symmetry, tangency, parallelism and 0055 //! concentricity 0056 //! - display of dimensions for angles, offsets, diameters, radii and chamfers. 0057 //! No viewer can show everything at once with any coherence or clarity. 0058 //! Views must be managed carefully both sequentially and at any given instant. 0059 //! Another function of the view is that of a context to carry out design in. 0060 //! The design changes are applied to the objects in the view and then extended to the underlying 0061 //! reference geometry by a solver. To make sense of this complicated visual data, several display 0062 //! and selection tools are required. To facilitate management, each object and each construction 0063 //! element has a selection priority. There are also means to modify the default priority. To define 0064 //! an environment of dynamic detection, you can use standard filter classes or create your own. A 0065 //! filter questions the owner of the sensitive primitive to determine if it has the desired 0066 //! qualities. If it answers positively, it is kept. If not, it is rejected. The standard filters 0067 //! supplied in AIS include: 0068 //! - AIS_AttributeFilter 0069 //! - AIS_SignatureFilter 0070 //! - AIS_TypeFilter. 0071 //! A set of functions allows you to choose the interactive objects which you want to act on, the 0072 //! selection modes which you want to activate. An interactive object can have a certain number of 0073 //! graphic attributes which are specific to it, such as visualization mode, color, and material. By 0074 //! the same token, the interactive context has a set of graphic attributes, the Drawer which is 0075 //! valid by default for the objects it controls. When an interactive object is visualized, the 0076 //! required graphic attributes are first taken from the object's own Drawer if one exists, or from 0077 //! the context drawer for the others. 0078 class AIS 0079 { 0080 public: 0081 DEFINE_STANDARD_ALLOC 0082 }; 0083 0084 #endif // _AIS_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|