Topologic  0.8.9
NurbsSurface.h
1 // This file is part of Topologic software library.
2 // Copyright(C) 2019, Cardiff University and University College London
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
13 //
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <https://www.gnu.org/licenses/>.
16 
17 #pragma once
18 
19 #include "Surface.h"
20 
21 #include <TopologicCore/include/NurbsSurface.h>
22 
23 using namespace System;
24 using namespace System::Collections::Generic;
25 
28 namespace Topologic {
29  ref class Vertex;
30 
33  public ref class NurbsSurface : Surface
34  {
35  public:
36 
37  property int UDegree
38  {
39  int get();
40  }
41 
42  property int VDegree
43  {
44  int get();
45  }
46 
47  property bool IsURational
48  {
49  bool get();
50  }
51 
52  property bool IsVRational
53  {
54  bool get();
55  }
56 
57  property int NumOfUControlVertices
58  {
59  int get();
60  }
61 
62  property int NumOfVControlVertices
63  {
64  int get();
65  }
66 
67  Vertex^ ControlVertex(int u, int v);
68 
69  property List<double>^ UKnots
70  {
71  List<double>^ get();
72  }
73 
74  property List<double>^ VKnots
75  {
76  List<double>^ get();
77  }
78 
79  /*property bool IsPeriodic
80  {
81  bool get();
82  }
83 
84  property List<Vertex^>^ ControlVertices
85  {
86  List<Vertex^>^ get();
87  }*/
88 
89  public protected:
90  NurbsSurface(const std::shared_ptr<TopologicCore::NurbsSurface>& kpCoreNurbsSurface);
91  virtual ~NurbsSurface();
92 
93  protected:
94  std::shared_ptr<TopologicCore::NurbsSurface>* m_pCoreNurbsSurface;
95  };
96 }
A Vertex is a zero-dimensional entity equivalent to a geometry point.
Definition: Vertex.h:31
Definition: NurbsSurface.h:33
Definition: Surface.h:30
Topologic is an open-source software modelling library enabling hierarchical and topological represen...
Definition: About.h:23