|
||||
File indexing completed on 2025-01-18 10:03:15
0001 // Created on: 1995-09-18 0002 // Created by: Bruno DUMORTIER 0003 // Copyright (c) 1995-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 _BRepOffsetAPI_MakeEvolved_HeaderFile 0018 #define _BRepOffsetAPI_MakeEvolved_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_DefineAlloc.hxx> 0022 0023 #include <BRepFill_Evolved.hxx> 0024 #include <BRepFill_AdvancedEvolved.hxx> 0025 #include <BRepBuilderAPI_MakeShape.hxx> 0026 #include <GeomAbs_JoinType.hxx> 0027 #include <TopTools_ListOfShape.hxx> 0028 class TopoDS_Wire; 0029 class TopoDS_Shape; 0030 0031 0032 //! Describes functions to build evolved shapes. 0033 //! An evolved shape is built from a planar spine (face or 0034 //! wire) and a profile (wire). The evolved shape is the 0035 //! unlooped sweep (pipe) of the profile along the spine. 0036 //! Self-intersections are removed. 0037 //! A MakeEvolved object provides a framework for: 0038 //! - defining the construction of an evolved shape, 0039 //! - implementing the construction algorithm, and 0040 //! - consulting the result. 0041 //! Computes an Evolved by 0042 //! 1 - sweeping a profile along a spine. 0043 //! 2 - removing the self-intersections. 0044 //! 0045 //! The Profile is expected to be planar and can be a line 0046 //! (which lies in infinite number of planes). 0047 //! 0048 //! The profile is defined in a Referential R. The position of 0049 //! the profile at the current point of the spine is given by 0050 //! confusing R and the local referential given by ( D0, D1 0051 //! and the normal of the Spine). 0052 //! 0053 //! The coordinate system is determined by theIsAxeProf argument: 0054 //! - if theIsAxeProf is true, R is the global coordinate system, 0055 //! - if theIsAxeProf is false, R is computed so that: 0056 //! * its origin is given by the point on the spine which is 0057 //! closest to the profile, 0058 //! * its "X Axis" is given by the tangent to the spine at this point, and 0059 //! * its "Z Axis" is the normal to the plane which contains the spine. 0060 //! 0061 //! theJoinType defines the type of pipe generated by the salient 0062 //! vertices of the spine. The default type is GeomAbs_Arc 0063 //! where the vertices generate revolved pipes about the 0064 //! axis passing along the vertex and the normal to the 0065 //! plane of the spine. At present, this is the only 0066 //! construction type implemented. 0067 //! 0068 //! if <theIsSolid> is TRUE the Shape result is completed to be a 0069 //! solid or a compound of solids. 0070 //! 0071 //! If theIsProfOnSpine == TRUE then the profile must connect with the spine. 0072 //! 0073 //! If theIsVolume option is switched on then self-intersections 0074 //! in the result of Pipe-algorithm will be removed by 0075 //! BOPAlgo_MakerVolume algorithm. At that the arguments 0076 //! "theJoinType", "theIsAxeProf", "theIsProfOnSpine" are not used. 0077 0078 class BRepOffsetAPI_MakeEvolved : public BRepBuilderAPI_MakeShape 0079 { 0080 public: 0081 0082 DEFINE_STANDARD_ALLOC 0083 0084 0085 Standard_EXPORT BRepOffsetAPI_MakeEvolved(); 0086 0087 //! Constructs an evolved shape by sweeping the profile 0088 //! (theProfile) along the spine (theSpine). 0089 //! theSpine can be shape only of type wire or face. 0090 //! See description to this class for detailed information. 0091 Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Shape& theSpine, 0092 const TopoDS_Wire& theProfile, 0093 const GeomAbs_JoinType theJoinType = GeomAbs_Arc, 0094 const Standard_Boolean theIsAxeProf = Standard_True, 0095 const Standard_Boolean theIsSolid = Standard_False, 0096 const Standard_Boolean theIsProfOnSpine = Standard_False, 0097 const Standard_Real theTol = 0.0000001, 0098 const Standard_Boolean theIsVolume = Standard_False, 0099 const Standard_Boolean theRunInParallel = Standard_False); 0100 0101 Standard_EXPORT const BRepFill_Evolved& Evolved() const; 0102 0103 //! Builds the resulting shape (redefined from MakeShape). 0104 Standard_EXPORT virtual void Build(const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; 0105 0106 //! Returns the shapes created from a subshape 0107 //! <SpineShape> of the spine and a subshape 0108 //! <ProfShape> on the profile. 0109 Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes (const TopoDS_Shape& SpineShape, const TopoDS_Shape& ProfShape) const; 0110 0111 //! Return the face Top if <Solid> is True in the constructor. 0112 Standard_EXPORT const TopoDS_Shape& Top() const; 0113 0114 //! Return the face Bottom if <Solid> is True in the constructor. 0115 Standard_EXPORT const TopoDS_Shape& Bottom() const; 0116 0117 0118 0119 0120 protected: 0121 0122 0123 0124 0125 0126 private: 0127 0128 0129 BRepFill_Evolved myEvolved; 0130 BRepFill_AdvancedEvolved myVolume; 0131 Standard_Boolean myIsVolume; 0132 0133 }; 0134 0135 0136 0137 0138 0139 0140 0141 #endif // _BRepOffsetAPI_MakeEvolved_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |