Back to home page

EIC code displayed by LXR

 
 

    


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