0025099: Visualization - Option to show vertices of a shape
[occt.git] / src / Prs3d / Prs3d.cdl
old mode 100755 (executable)
new mode 100644 (file)
index 7052450..6a33d3e
@@ -1,39 +1,34 @@
 -- Created on: 1992-08-26
 -- Created by: Jean Louis FRENKEL
 -- Copyright (c) 1992-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
+-- Copyright (c) 1999-2014 OPEN CASCADE SAS
 --
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
+-- This file is part of Open CASCADE Technology software library.
 --
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+-- 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.
 --
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
+-- Alternatively, this file may be used under the terms of Open CASCADE
+-- commercial license or contractual agreement.
 
 package Prs3d
 
-       ---Purpose: The Prs3d package provides the following services
-       -- -   a presentation object (the context for all
-       --   modifications to the display, its presentation will be
-       --   displayed in every view of an active viewer)
-       -- -   an attribute manager governing how objects such
-       --   as color, width, and type of line are displayed;
-       --   these are generic objects, whereas those in
-       --   StdPrs are specific geometries and topologies.
-       -- -   generic   algorithms providing default settings for
-       --   objects such as points, curves, surfaces and shapes
-       -- -   a root object which provides the abstract
-       --   framework for the DsgPrs definitions at work in
-       --   display of dimensions, relations and trihedra.
+      ---Purpose: The Prs3d package provides the following services
+  -- -   a presentation object (the context for all
+  --   modifications to the display, its presentation will be
+  --   displayed in every view of an active viewer)
+  -- -   an attribute manager governing how objects such
+  --   as color, width, and type of line are displayed;
+  --   these are generic objects, whereas those in
+  --   StdPrs are specific geometries and topologies.
+  -- -   generic   algorithms providing default settings for
+  --   objects such as points, curves, surfaces and shapes
+  -- -   a root object which provides the abstract
+  --   framework for the DsgPrs definitions at work in
+  --   display of dimensions, relations and trihedra.
     
 uses
   Graphic3d,
@@ -97,63 +92,47 @@ is
   -- DAO_Fit      - arrows oriented inside if value label with arrowtips fit the dimension line,
   --                otherwise - externally
 
+  enumeration VertexDrawMode is VDM_Isolated, VDM_All, VDM_Inherited;
+  ---Purpose: Describes supported modes of visualization of the shape's vertices:
+  -- VDM_Isolated  - only isolated vertices (not belonging to a face) are displayed.
+  -- VDM_All       - all vertices of the shape are displayed.
+  -- VDM_Inherited - the global settings are inherited and applied to the shape's presentation.
+
   class Presentation;
-  ---Purpose: defines the presentation object. This object can be
-  --          displayed, highlighted, erased, etc... The output
-  --          of the presentation algorithms are sent in a
-  --          presentation object. A presentation object is attached
-  --          to a given Viewer.
 
-       ---Category: Aspect classes.
-       ---Purpose: The aspect classes qualifies how to represent
-       --          a given kind of object.
-       --          
+  ---Category: Aspect classes.
 
   deferred class BasicAspect;  
   class PointAspect;
   class LineAspect;
-       class ShadingAspect;
-       class TextAspect;
+  class ShadingAspect;
+  class TextAspect;
   class IsoAspect;
   class ArrowAspect;
-       class PlaneAspect;
+  class PlaneAspect;
   class DimensionAspect;
-       class DatumAspect;
+  class DatumAspect;
   imported DimensionUnits;
 
   class Drawer;
-       ---Purpose: qualifies how the presentation algorithms compute
-       --          the presentation of a specific kind of object. 
-       --          This includes for example color, width and type
-       --          of lines, maximal chordial deviation, etc...
-       --          A drawer includes an instance of the Aspect classes
-       --          with particular default values.
-       
+
   class Projector;
-       ---Purpose: defines the projection parameters for the hidden
-       --          lines removal algorithm.
-       
+
   class PlaneSet;
-       ---Purpose: defines a set of planes used for a presentation
-       --          by sections.
-       -- 
 
   deferred class Root;
-       ---Purpose: defines the root of the presentation algorithms.
 
   ---Category: Basis construction elements.
 
-       class Text;
+  class Text;
 
         ---Category: Class signatures.
 
-       class ShapeTool;
-       ---Purpose: describes the behaviour requested for a wireframe
-       --          shape presentation.
+  class ShapeTool;
 
   class Arrow;
-       ---Purpose: draws an arrow at a given location, with respect
-       --          to a given direction. 
+  ---Purpose: draws an arrow at a given location, with respect
+  --          to a given direction.
 
   imported NListOfSequenceOfPnt; 
   imported NListIteratorListOfSequenceOfPnt;
@@ -161,8 +140,22 @@ is
   imported WFShape;
   
   MatchSegment(X,Y,Z: Length from Quantity;
-                   aDistance: Length from Quantity;
-                         p1,p2: Pnt from gp;
+              aDistance: Length from Quantity;
+              p1,p2: Pnt from gp;
               dist: out Length from Quantity)
-       returns Boolean from Standard;
+  returns Boolean from Standard;
+
+  GetDeflection (theShape  : Shape from TopoDS;
+                 theDrawer : Drawer from Prs3d)
+  returns Real from Standard;
+  ---Purpose: Computes the absolute deflection value depending on
+  -- the type of deflection in theDrawer:
+  -- <ul>
+  -- <li><b>Aspect_TOD_RELATIVE</b>: the absolute deflection is computed using the relative
+  --   deviation coefficient from theDrawer and the shape's bounding box;</li>
+  -- <li><b>Aspect_TOD_ABSOLUTE</b>: the maximal chordial deviation from theDrawer is returned.</li>
+  -- </ul>
+  -- This function should always be used to compute the deflection value for building
+  -- discrete representations of the shape (triangualtion, wireframe) to avoid incosistencies
+  -- between different representations of the shape and undesirable visual artifacts.
 end Prs3d;