libsurf
Programmer's Documentation

iges128.h (r6227/r5385)
1 
2 /* Copyright (C) 2015 David Eller <david@larosterna.com>
3  *
4  * Commercial License Usage
5  * Licensees holding valid commercial licenses may use this file in accordance
6  * with the terms contained in their respective non-exclusive license agreement.
7  * For further information contact david@larosterna.com .
8  *
9  * GNU General Public License Usage
10  * Alternatively, this file may be used under the terms of the GNU General
11  * Public License version 3.0 as published by the Free Software Foundation and
12  * appearing in the file gpl.txt included in the packaging of this file.
13  */
14 
15 #ifndef SURF_IGES128_H
16 #define SURF_IGES128_H
17 
18 #include "igesentity.h"
19 #include <genua/dvector.h>
20 #include <genua/point.h>
21 
35 {
36  public:
37 
39  IgesSplineSurface() : IgesEntity(128), uclosed(0), vclosed(0),
40  polynomial(1), uperiodic(0), vperiodic(0),
41  ustart(0.0), uend(1.0), vstart(0.0), vend(1.0) {}
42 
44  void setup(int ncpu, int ncpv, int udegree, int vdegree,
45  const double ukts[], const double vkts[], const double cp[]);
46 
48  void setup(int ncpu, int ncpv, int udegree, int vdegree,
49  const double ukts[], const double vkts[],
50  const double wgt[], const double cp[]);
51 
53  void flagClosed(bool ucl, bool vcl) {
54  uclosed = ucl ? 1 : 0;
55  vclosed = vcl ? 1 : 0;
56  }
57 
59  void definition(IgesFile & file);
60 
62  uint parse(const std::string & pds, const Indices & vpos);
63 
64  public:
65 
67  int ku, kv, mu, mv;
68 
70  int uclosed, vclosed, polynomial, uperiodic, vperiodic;
71 
73  Vector uknots, vknots;
74 
76  Matrix weights;
77 
80 
82  double ustart, uend, vstart, vend;
83 };
84 
85 #endif // IGES128_H
void definition(IgesFile &file)
assemble definition
Definition: iges128.cpp:47
Base class for entities in IGES files.
Definition: igesentity.h:32
double ustart
domain for parameter values
Definition: iges128.h:82
uint parse(const std::string &pds, const Indices &vpos)
parse entity data
Definition: iges128.cpp:82
Main interface to IGES files.
Definition: igesfile.h:32
Matrix weights
weights, if surface is rational, else empty
Definition: iges128.h:76
void flagClosed(bool ucl, bool vcl)
change closed flag
Definition: iges128.h:53
int uclosed
shape flags
Definition: iges128.h:70
Vector uknots
pointers to knots, weights and control points
Definition: iges128.h:73
void setup(int ncpu, int ncpv, int udegree, int vdegree, const double ukts[], const double vkts[], const double cp[])
pass data for polynomial spline curve
Definition: iges128.cpp:18
int ku
number of control points minus one, degree
Definition: iges128.h:67
IGES 128 : Rational spline surface.
Definition: iges128.h:34
PointGrid< 3 > cpoints
control points
Definition: iges128.h:79
IgesSplineSurface()
create undefined
Definition: iges128.h:39
Generated on Wed Jan 19 2022 03:03:15 for libsurf by   doxygen 1.8.5