0024830: Remove redundant keyword 'mutable' in CDL declarations
[occt.git] / src / HLRBRep / HLRBRep_Algo.cdl
CommitLineData
b311480e 1-- Created on: 1994-08-03
2-- Created by: Christophe MARION
3-- Copyright (c) 1994-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17class Algo from HLRBRep inherits InternalAlgo from HLRBRep
18
19 ---Purpose: A framework to compute a shape as seen in a projection plane. This is done by
20 -- calculating the visible and the hidden parts of the shape.
21 -- HLRBRep_Algo works with three types of entity:
22 -- - shapes to be visualized
23 -- - edges in these shapes (these edges are
24 -- the basic entities which will be visualized or hidden), and
25 -- - faces in these shapes which hide the edges.
26 -- HLRBRep_Algo is based on the principle of comparing each edge of the shape to be
27 -- visualized with each of its faces, and calculating the visible and the hidden parts of each edge.
28 -- For a given projection, HLRBRep_Algo calculates a set of lines characteristic of the
29 -- object being represented. It is also used in conjunction with the
30 -- HLRBRep_HLRToShape extraction utilities, which reconstruct a new, simplified shape
31 -- from a selection of calculation results. This new shape is made up of edges, which
32 -- represent the shape visualized in the projection.
33 -- HLRBRep_Algo takes the shape itself into account whereas HLRBRep_PolyAlgo
34 -- works with a polyhedral simplification of the shape. When you use HLRBRep_Algo, you
35 -- obtain an exact result, whereas, when you use HLRBRep_PolyAlgo, you reduce
36 -- computation time but obtain polygonal segments. In the case of complicated
37 -- shapes, HLRBRep_Algo may be time-consuming.
38 -- An HLRBRep_Algo object provides a framework for:
39 -- - defining the point of view
40 -- - identifying the shape or shapes to be visualized
41 -- - calculating the outlines
42 -- - calculating the visible and hidden lines of the shape.
43 -- Warning
44 -- - Superimposed lines are not eliminated by this algorithm.
45 -- - There must be no unfinished objects inside the shape you wish to visualize.
46 -- - Points are not treated.
47 -- - Note that this is not the sort of algorithm used in generating shading, which
48 -- calculates the visible and hidden parts of each face in a shape to be visualized by
49 -- comparing each face in the shape with every other face in the same shape.
50
51uses
52 TShared from MMgt,
53 Shape from TopoDS
54
55is
6e33d3ce 56 Create returns Algo from HLRBRep;
7fd59977 57 ---Purpose: Constructs an empty framework for the
58 -- calculation of visible and hidden lines of a shape in a projection.
59 -- Use the function:
60 -- - Projector to define the point of view
61 -- - Add to select the shape or shapes to be visualized
62 -- - Update to compute the outlines of the shape, and
63 -- - Hide to compute the visible and hidden lines of the shape.
64
6e33d3ce 65 Create(A : Algo from HLRBRep) returns Algo from HLRBRep;
7fd59977 66
67 Add(me : mutable; S : Shape from TopoDS;
68 SData : TShared from MMgt;
69 nbIso : Integer from Standard = 0)
70 ---Purpose: add the Shape <S>.
71 is static;
72
73 Add(me : mutable; S : Shape from TopoDS;
74 nbIso : Integer from Standard = 0)
75 ---Purpose: Adds the shape S to this framework, and
76 -- specifies the number of isoparameters nbiso desired in visualizing S.
77 -- You may add as many shapes as you wish. Use the function Add once for each shape.
78 is static;
79
80 Index(me : mutable; S : Shape from TopoDS)
81 returns Integer from Standard
82 ---Purpose: return the index of the Shape <S> and
83 -- return 0 if the Shape <S> is not found.
84 is static;
85
86 OutLinedShapeNullify(me : mutable)
87 ---Purpose: nullify all the results of OutLiner from HLRTopoBRep.
88 is static;
89
90end Algo;