0024428: Implementation of LGPL license
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI_Transform.cdl
1 -- Created on: 1994-12-09
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1994-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
9 -- under the terms of the GNU Lesser General Public 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 class Transform from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI
18
19         ---Purpose: Geometric transformation on a shape.
20         -- The transformation to be applied is defined as a
21         -- gp_Trsf transformation, i.e. a transformation which does
22         -- not modify the underlying geometry of shapes.
23         -- The transformation is applied to:
24         -- -   all curves which support edges of a shape, and
25         -- -   all surfaces which support its faces.
26         -- A Transform object provides a framework for:
27         -- -   defining the geometric transformation to be applied,
28         -- -   implementing the transformation algorithm, and
29         -- -   consulting the results.
30     
31 uses 
32     Trsf              from gp,
33     Location          from TopLoc,
34     Shape             from TopoDS,
35     Face              from TopoDS,
36     ShapeModification from BRepBuilderAPI,
37     ListOfShape       from TopTools
38
39 raises
40  NoSuchObject from Standard    
41 is
42
43     Create(T: Trsf from gp)
44         
45         returns Transform from BRepBuilderAPI;
46         ---Purpose:  Constructs a framework for applying the geometric
47         -- transformation T to a shape. Use the function Perform
48         -- to define the shape to transform.
49
50
51     Create(S: Shape from TopoDS; T: Trsf from gp; 
52            Copy: Boolean from Standard  =  Standard_False)
53
54         returns Transform from BRepBuilderAPI;
55         ---Purpose: Creates a transformation from the gp_Trsf <T>, and
56         --          applies it to the shape <S>. If the transformation
57         --          is  direct   and isometric (determinant  =  1) and
58         --          <Copy> =  Standard_False,  the resulting shape  is
59         --          <S> on   which  a  new  location has    been  set.
60         --          Otherwise,  the   transformation is applied   on a
61         --          duplication of <S>.
62
63
64     Perform(me: in out; S   : Shape   from TopoDS; 
65                         Copy: Boolean from Standard  =  Standard_False)
66
67         ---Purpose: pplies the geometric transformation defined at the
68         -- time of construction of this framework to the shape S.
69         -- - If the transformation T is direct and isometric, in
70         -- other words, if the determinant of the vectorial part
71         -- of T is equal to 1., and if Copy equals false (the
72         -- default value), the resulting shape is the same as
73         -- the original but with a new location assigned to it.
74         -- -   In all other cases, the transformation is applied to a duplicate of S.
75         -- Use the function Shape to access the result.
76         -- Note: this framework can be reused to apply the same
77         -- geometric transformation to other shapes. You only
78         -- need to specify them by calling the function Perform again.
79
80         is static;
81
82     ModifiedShape(me; S: Shape from TopoDS)
83         returns Shape from TopoDS
84         ---Purpose: Returns the modified shape corresponding to <S>.
85         ---C++: return const&
86         raises NoSuchObject from Standard
87                -- if S is not the initial shape or a sub-shape
88                -- of the initial shape.
89     is redefined virtual;
90
91     Modified (me: in out; S : Shape from TopoDS)
92         ---Purpose: Returns the list  of shapes modified from the shape
93         --          <S>. 
94         ---C++: return const & 
95         ---Level: Public
96     returns ListOfShape from TopTools
97     is redefined virtual;
98
99
100 fields
101
102     myTrsf     : Trsf     from gp;
103     myLocation : Location from TopLoc;
104     myUseModif : Boolean  from Standard;
105     
106 end Transform;