zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
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
/////////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). 
// All rights reserved. 
// 
// This software and its documentation and related materials are owned by 
// the Alliance. The software may only be incorporated into application 
// programs owned by members of the Alliance, subject to a signed 
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable  
// trade secrets of the Alliance and its suppliers. The software is also 
// protected by copyright law and international treaty provisions. Application  
// programs incorporating this software must include the following statement 
// with their copyright notices:
//   
//   This application incorporates Teigha(R) software pursuant to a license 
//   agreement with Open Design Alliance.
//   Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. 
//   All rights reserved.
//
// By use of this software, its documentation or related materials, you 
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
 
 
#ifndef _DbSweptSurface_h_Included_
#define _DbSweptSurface_h_Included_
 
#include "TD_PackPush.h"
#include "DbSurface.h"
#include "DbSweepOptions.h"
 
/** \details
This class implements a three-dimensional swept surface entity.
 
\sa
TD_Db
 
<group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbSweptSurface : public OdDbSurface
{
public:
  OdDbSweptSurface ();
  ODDB_DECLARE_MEMBERS(OdDbSweptSurface);
 
  /** \details
  Creates a swept surface by sweeping a specified curve, region, or planar surface along a specified path curve.
 
 
  \param pSweepEnt    [in] A pointer to the curve, region, or planar surface to be swept.
  \param pPathEnt     [in] A pointer to the curve entity that specifies the sweeping path along which a specified entity should to be swept.
  \param sweepOptions [in] Additional sweep options.
  
  \returns  Returns eOk if a surface was successfully created or eFail for other modelers. 
  If specified sweep information is not valid, returns eInvalidInput.
  Returns eFail if the surface cannot be created.
  
  \remarks 
  Additional parameters, such as a draft angle, can be set through the sweepOptions parameter.
  */
  virtual OdResult createSweptSurface ( OdDbEntity* pSweepEnt, OdDbEntity* pPathEnt, OdDbSweepOptions& sweepOptions, const OdStreamBuf *pSat = 0 );
 
  /** \details
  Returns the sweep entity that describes the surface.
  */
  OdDbEntityPtr getSweepEntity() const;
  
  /** \details
  Returns the sweep path used when the surface was created.
  */
  OdDbEntityPtr getPathEntity() const;
 
  /** \details
  Returns the sweep options applied when the surface was created.
  
  \param sweepOptions [out]  A passed-in parameter for returning the current sweep options object.
  */
  void getSweepOptions ( OdDbSweepOptions& sweepOptions ) const;
  
  /** \details
  Sets the new sweep option values for the surface.
  
  \param sweepOptions [in]  New options object to be set.
  
  \remarks
  This method is implemented only for Spatial modeler and returns eNotImplementedYet status
  for other modelers. 
  */
  void setSweepOptions ( const OdDbSweepOptions& sweepOptions );
 
  /** \details
  Returns the length of the path curve entity. 
 
  \param len [out]  A passed-in parameter for returning the length of the path curve.
  
  \returns Returns eOk if successful or eFail otherwise.
  */
  OdResult getPathLength ( double& len ) const;
 
  virtual OdResult subTransformBy(
    const OdGeMatrix3d& xfm );
 
  // OdDbObject methods
 
  virtual OdResult dwgInFields(
    OdDbDwgFiler* pFiler);
 
  virtual void dwgOutFields(
    OdDbDwgFiler* pFiler) const;
 
  virtual OdResult dxfInFields(
    OdDbDxfFiler* pFiler);
 
  virtual void dxfOutFields(
    OdDbDxfFiler* pFiler) const;
 
  virtual OdResult subGetClassID(
    void* pClsid) const;
 
  virtual bool isDependent() const { return false; }
};
 
typedef OdSmartPtr<OdDbSweptSurface> OdDbSweptSurfacePtr;
 
#include "TD_PackPop.h"
#endif //_DbSweptSurface_h_Included_