1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
|
// File generated by CPPExt (Transient)
//
//
// Copyright (C) 1991 - 2000 by
// Matra Datavision SA. All rights reserved.
//
// Copyright (C) 2001 - 2004 by
// Open CASCADE SA. All rights reserved.
//
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA 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 rights and limitations under the
// License.
#ifndef _BRepFill_PipeShell_HeaderFile
#define _BRepFill_PipeShell_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Handle_BRepFill_PipeShell_HeaderFile
#include <Handle_BRepFill_PipeShell.hxx>
#endif
#ifndef _TopoDS_Wire_HeaderFile
#include <TopoDS_Wire.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _BRepFill_SequenceOfSection_HeaderFile
#include <BRepFill_SequenceOfSection.hxx>
#endif
#ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
#include <TopTools_DataMapOfShapeListOfShape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Law_Function_HeaderFile
#include <Handle_Law_Function.hxx>
#endif
#ifndef _Handle_BRepFill_LocationLaw_HeaderFile
#include <Handle_BRepFill_LocationLaw.hxx>
#endif
#ifndef _Handle_BRepFill_SectionLaw_HeaderFile
#include <Handle_BRepFill_SectionLaw.hxx>
#endif
#ifndef _Handle_TopTools_HArray2OfShape_HeaderFile
#include <Handle_TopTools_HArray2OfShape.hxx>
#endif
#ifndef _GeomFill_Trihedron_HeaderFile
#include <GeomFill_Trihedron.hxx>
#endif
#ifndef _BRepFill_TransitionStyle_HeaderFile
#include <BRepFill_TransitionStyle.hxx>
#endif
#ifndef _GeomFill_PipeError_HeaderFile
#include <GeomFill_PipeError.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class Law_Function;
class BRepFill_LocationLaw;
class BRepFill_SectionLaw;
class TopTools_HArray2OfShape;
class Standard_DomainError;
class StdFail_NotDone;
class TopoDS_Wire;
class gp_Ax2;
class gp_Dir;
class TopoDS_Shape;
class TopoDS_Vertex;
class TopTools_ListOfShape;
class BRepFill_Section;
class BRepFill_Sweep;
//! Perform general sweeping construction <br>
class BRepFill_PipeShell : public MMgt_TShared {
public:
// Methods PUBLIC
//
//! Set an sweep's mode <br>
//! If no mode are setted, the mode use in MakePipe is used <br>
Standard_EXPORT BRepFill_PipeShell(const TopoDS_Wire& Spine);
//! Set an Frenet or an CorrectedFrenet trihedron <br>
//! to perform the sweeping <br>
Standard_EXPORT void Set(const Standard_Boolean Frenet = Standard_False) ;
//! Set an fixed trihedron to perform the sweeping <br>
//! all sections will be parallel. <br>
Standard_EXPORT void Set(const gp_Ax2& Axe) ;
//! Set an fixed BiNormal direction to perform <br>
//! the sweeping <br>
Standard_EXPORT void Set(const gp_Dir& BiNormal) ;
//! Set support to the spine to define the BiNormal <br>
//! at the spine, like the normal the surfaces. <br>
//! Warning: To be effective, Each edge of the <spine> must <br>
//! have an representaion on one face of<SpineSupport> <br>
Standard_EXPORT Standard_Boolean Set(const TopoDS_Shape& SpineSupport) ;
//! Set an auxiliary spine to define the Normal <br>
//! For each Point of the Spine P, an Point Q is evalued <br>
//! on <AuxiliarySpine> <br>
//! If <CurvilinearEquivalence> <br>
//! Q split <AuxiliarySpine> with the same length ratio <br>
//! than P split <Spline>. <br>
//! Else the plan define by P and the tangent to the <Spine> <br>
//! intersect <AuxiliarySpine> in Q. <br>
//! If <KeepContact> the Normal is defined to assume like the sweeped <br>
//! section is in contact to the <AuxiliarySpine> <br>
//! Else the Normal is defined by the vector PQ. <br>//! Give section to sweep. <br>
//! Possibilities are : <br>
//! - Give one or sevral profile <br>
//! - Give one profile and an homotetic law. <br>
//! - Automatic compute of correspondance beetween profile, and section <br>
//! on the sweeped shape <br>
//! - correspondance beetween profile, and section on the sweeped shape <br>
//! defined by a vertex of the spine <br>
Standard_EXPORT void Set(const TopoDS_Wire& AuxiliarySpine,const Standard_Boolean CurvilinearEquivalence = Standard_True,const Standard_Boolean KeepContact = Standard_False) ;
//! Set an section. The corespondance with the spine, will <br>
//! be automaticaly performed. <br>
Standard_EXPORT void Add(const TopoDS_Shape& Profile,const Standard_Boolean WithContact = Standard_False,const Standard_Boolean WithCorrection = Standard_False) ;
//! Set an section. The corespondance with the spine, is <br>
//! given by <Location> <br>
Standard_EXPORT void Add(const TopoDS_Shape& Profile,const TopoDS_Vertex& Location,const Standard_Boolean WithContact = Standard_False,const Standard_Boolean WithCorrection = Standard_False) ;
//! Set an section and an homotetic law. <br>
//! The homotetie's centers is given by point on the <Spine>. <br>
Standard_EXPORT void SetLaw(const TopoDS_Shape& Profile,const Handle(Law_Function)& L,const Standard_Boolean WithContact = Standard_False,const Standard_Boolean WithCorrection = Standard_False) ;
//! Set an section and an homotetic law. <br>
//! The homotetie center is given by point on the <Spine> <br>
Standard_EXPORT void SetLaw(const TopoDS_Shape& Profile,const Handle(Law_Function)& L,const TopoDS_Vertex& Location,const Standard_Boolean WithContact = Standard_False,const Standard_Boolean WithCorrection = Standard_False) ;
//! Delete an section. <br>
Standard_EXPORT void Delete(const TopoDS_Shape& Profile) ;
//! Say if <me> is ready to build the shape <br>
//! return False if <me> do not have section definition <br>
Standard_EXPORT Standard_Boolean IsReady() const;
//! Get a status, when Simulate or Build failed. <br>
Standard_EXPORT GeomFill_PipeError GetStatus() const;
Standard_EXPORT void SetTolerance(const Standard_Real Tol3d = 1.0e-4,const Standard_Real BoundTol = 1.0e-4,const Standard_Real TolAngular = 1.0e-2) ;
//! Set the Transition Mode to manage discontinuities <br>
//! on the sweep. <br>
Standard_EXPORT void SetTransition(const BRepFill_TransitionStyle Mode = BRepFill_Modified,const Standard_Real Angmin = 1.0e-2,const Standard_Real Angmax = 6.0) ;
//! Perform simulation of the sweep : <br>
//! Somes Section are returned. <br>
Standard_EXPORT void Simulate(const Standard_Integer NumberOfSection,TopTools_ListOfShape& Sections) ;
//! Builds the resulting shape (redefined from MakeShape). <br>
Standard_EXPORT Standard_Boolean Build() ;
//! Transform the sweeping Shell in Solid. <br>
//! If the section are not closed returns False <br>
Standard_EXPORT Standard_Boolean MakeSolid() ;
//! Returns the result Shape. <br>
Standard_EXPORT const TopoDS_Shape& Shape() const;
//! Returns the TopoDS Shape of the bottom of the sweep. <br>
Standard_EXPORT const TopoDS_Shape& FirstShape() const;
//! Returns the TopoDS Shape of the top of the sweep. <br>
Standard_EXPORT const TopoDS_Shape& LastShape() const;
//! Returns the list of shapes generated from the <br>
//! shape <S>. <br>
Standard_EXPORT void Generated(const TopoDS_Shape& S,TopTools_ListOfShape& L) ;
//Standard_EXPORT ~BRepFill_PipeShell();
// Type management
//
Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
//Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
protected:
// Methods PROTECTED
//
// Fields PROTECTED
//
private:
// Methods PRIVATE
//
Standard_EXPORT void Prepare() ;
Standard_EXPORT void Place(const BRepFill_Section& Sec,TopoDS_Wire& W,Standard_Real& param) ;
Standard_EXPORT void ResetLoc() ;
Standard_EXPORT void BuildHistory(const BRepFill_Sweep& theSweep) ;
// Fields PRIVATE
//
TopoDS_Wire mySpine;
TopoDS_Shape myFirst;
TopoDS_Shape myLast;
TopoDS_Shape myShape;
BRepFill_SequenceOfSection mySeq;
TopTools_DataMapOfShapeListOfShape myGenMap;
Standard_Real myTol3d;
Standard_Real myBoundTol;
Standard_Real myTolAngular;
Standard_Real angmin;
Standard_Real angmax;
Handle_Law_Function myLaw;
Handle_BRepFill_LocationLaw myLocation;
Handle_BRepFill_SectionLaw mySection;
Handle_TopTools_HArray2OfShape myFaces;
GeomFill_Trihedron myTrihedron;
BRepFill_TransitionStyle myTransition;
GeomFill_PipeError myStatus;
};
// other Inline functions and methods (like "C++: function call" methods)
//
#endif
|