CFx SDK Documentation  2023 SP0
GeRuled.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2019, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Open Design Alliance software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Open Design Alliance Copyright (C) 2002-2019 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 
25 
26 #ifndef OD_GERULED_H
27 #define OD_GERULED_H
29 //
33 #include "Ge/GeSurface.h"
34 #include "Ge/GeInterval.h"
35 #include "OdPlatformSettings.h"
36 
37 class OdGePoint3d;
38 class OdGeVector3d;
39 class OdGeCircArc3d;
40 class OdGeLinearEnt3d;
41 
42 #include "TD_PackPush.h"
43 
44 //If both curves are valid, the parametric equation for this surface is :
45 
46 // P(u, v) = C1(u) + v(C2(u) - C1(u))
47 // If one of the curves is replaced with a point, the equations simplify to one of :
48 
49 // P(u, v) = P1 + v(C2(u) - P1)
50 // P(u, v) = C1(u) + v(P2 - C1(u))
51 // A ruled face with no curves and two points is degenerate and will not be returned.
52 //
53 // FOR INTERNAL USE.
54 //
55 
64 {
65 public:
66 
74 
85  const OdGeCurve3d &pProfileCurve1,
86  const OdGeCurve3d &pProfileCurve2);
87 
98  const OdGeCurve3d &pProfileCurve1,
99  const OdGePoint3d &pPoint2);
100 
111  const OdGePoint3d &pPoint1,
112  const OdGeCurve3d &pProfileCurve2);
114  const OdGeRuled&);
115 
122  void set(const OdGeCurve3d& pProfileCurve1, const OdGeCurve3d& pProfileCurve2);
123 
130  void set(const OdGeCurve3d& pProfileCurve1, const OdGePoint3d& pPoint2);
131 
139  void set(const OdGePoint3d &pPoint1, const OdGeCurve3d& pProfileCurve2);
140 
145  const OdGeRuled& extSurf);
146 
155  OdResult getProfileCurve(const OdUInt8 iIndex, OdGeCurve3d*& pProfileCurve) const;
156 
165  OdResult getPoint(const OdUInt8 iIndex, OdGePoint3d& point) const;
166 
173  bool setEnvelope(const OdGeInterval& intrvlU, const OdGeInterval& intrvlV);
174 
181  void getEnvelope(OdGeInterval& intrvlU, OdGeInterval& intrvlV) const;
182 
186  bool hasFirstProfilePoint() const;
187 
191  bool hasSecondProfilePoint() const;
192 };
193 
194 #include "TD_PackPop.h"
195 
196 #endif // OD_GERULED_H
197 
#define GE_TOOLKIT_EXPORT
Definition: GeExport.h:49
unsigned char OdUInt8
OdResult
Definition: OdResult.h:29
OdGeRuled(const OdGeRuled &)
void set(const OdGeCurve3d &pProfileCurve1, const OdGePoint3d &pPoint2)
void set(const OdGeCurve3d &pProfileCurve1, const OdGeCurve3d &pProfileCurve2)
bool setEnvelope(const OdGeInterval &intrvlU, const OdGeInterval &intrvlV)
OdGeRuled(const OdGeCurve3d &pProfileCurve1, const OdGeCurve3d &pProfileCurve2)
void set(const OdGePoint3d &pPoint1, const OdGeCurve3d &pProfileCurve2)
OdGeRuled(const OdGePoint3d &pPoint1, const OdGeCurve3d &pProfileCurve2)
bool hasSecondProfilePoint() const
OdResult getPoint(const OdUInt8 iIndex, OdGePoint3d &point) const
void getEnvelope(OdGeInterval &intrvlU, OdGeInterval &intrvlV) const
OdResult getProfileCurve(const OdUInt8 iIndex, OdGeCurve3d *&pProfileCurve) const
bool hasFirstProfilePoint() const
OdGeRuled(const OdGeCurve3d &pProfileCurve1, const OdGePoint3d &pPoint2)
OdGeSurface & operator=(const OdGeSurface &surf)