geapln3d.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright 2015 Autodesk, Inc. All rights reserved.
  4. //
  5. // Use of this software is subject to the terms of the Autodesk license
  6. // agreement provided at the time of installation or download, or which
  7. // otherwise accompanies this software in either electronic or hard copy form.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. //
  11. // DESCRIPTION:
  12. //
  13. // This file contains the class AcGeAugPolyline3d - A mathematical entity
  14. // used to represent a different types of spline curves in 3-space.
  15. #ifndef AC_GEAPLN3D_H
  16. #define AC_GEAPLN3D_H
  17. #include "gecurv3d.h"
  18. #include "gekvec.h"
  19. #include "gept3dar.h"
  20. #include "gevc3dar.h"
  21. #include "gevec3d.h"
  22. #include "gepnt3d.h"
  23. #include "geplin3d.h"
  24. #pragma pack (push, 8)
  25. class
  26. GE_DLLEXPIMPORT
  27. AcGeAugPolyline3d : public AcGePolyline3d
  28. {
  29. public:
  30. AcGeAugPolyline3d();
  31. AcGeAugPolyline3d(const AcGeAugPolyline3d& apline);
  32. AcGeAugPolyline3d(const AcGeKnotVector& knots,
  33. const AcGePoint3dArray& cntrlPnts,
  34. const AcGeVector3dArray& vecBundle);
  35. AcGeAugPolyline3d(const AcGePoint3dArray& cntrlPnts,
  36. const AcGeVector3dArray& vecBundle);
  37. // Approximation constructor
  38. //
  39. AcGeAugPolyline3d(const AcGeCurve3d& curve,
  40. double fromParam, double toParam,
  41. double apprEps);
  42. // Assignment operator.
  43. //
  44. AcGeAugPolyline3d& operator = (const AcGeAugPolyline3d& apline);
  45. // Points
  46. //
  47. AcGePoint3d getPoint(int idx) const;
  48. AcGeAugPolyline3d& setPoint(int idx, AcGePoint3d pnt);
  49. void getPoints(AcGePoint3dArray& pnts) const;
  50. // Tangent bundle
  51. //
  52. AcGeVector3d getVector(int idx) const;
  53. AcGeAugPolyline3d& setVector(int idx, AcGeVector3d pnt);
  54. void getD1Vectors(AcGeVector3dArray& tangents) const;
  55. // D2 Tangent bundle
  56. //
  57. AcGeVector3d getD2Vector(int idx) const;
  58. AcGeAugPolyline3d& setD2Vector(int idx, AcGeVector3d pnt);
  59. void getD2Vectors(AcGeVector3dArray& d2Vectors) const;
  60. // Approximation tolerance
  61. //
  62. double approxTol () const;
  63. AcGeAugPolyline3d& setApproxTol (double approxTol);
  64. };
  65. #pragma pack (pop)
  66. #endif