MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
SBRepVecTP.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #ifndef _MGSBRepVecTP_HH_
6 #define _MGSBRepVecTP_HH_
7 
8 #include <assert.h>
9 #include "mg/Pvector.h"
10 #include "mg/LBRep.h"
11 #include "mg/SBRepTP.h"
12 
13 // MGSBRepVecTP.h
14 //
15 
16 class MGSurface;
17 class MGLBRep;
18 class MGOfstream;
19 class MGIfstream;
20 
26 
35 class MG_DLL_DECLR MGSBRepVecTP{
36 
37 public:
38 
40 MG_DLL_DECLR friend std::ostream& operator<< (std::ostream& ostrm, const MGSBRepVecTP& vectp);
41 
43 
46 
50 MGSBRepVecTP(const MGSBRepVecTP& vectp2);
51 
53 MGSBRepVecTP(const MGSBRepTP& tp2);
54 
56 
57 //~MGSBRepVecTP();
58 
60 
64 MGSBRepVecTP& operator=(const MGSBRepVecTP& vectp2);
65 
67 
69 void change_range(
70  bool along_u,
71  double t0,
72  double t1
73 );
74 
76 void change_range(
77  bool along_u,
78  const MGInterval& prange
79 );
80 
85 bool eval(
86  int i,
87  double t,
89 )const;
90 
95 double get_perimeters_max_cos(
96  const MGPvector<MGLBRep>& deris,
97  double taumax[4],
98  double cosmax[4]
99 )const;
100 
106 double get_perimeters_max_sin(
107  const MGSurface& srf,
108  double taumax[4],
109  double sinmax[4],
110  bool* eval=0
111 )const;
113 
117 bool specified(int i) const{assert(i<4); return m_TP[i].size()>0;};
118 
120 void set_TP_null(int i);
121 
125 void set_TP(
126  int i,
127  MGPvector<MGLBRep>& vectp,
128  const MGInterval& prange
129 );
130 
134 void set_TP(
135  int i,
136  std::vector<MGLBRep*>& vectp,
137  const MGInterval& prange
138 );
139 
141 const MGPvector<MGLBRep>& vecTP(int i) const{assert(i<4);return m_TP[i];}
142 MGPvector<MGLBRep>& vecTP(int i) {assert(i<4);return m_TP[i];}
143 
144 MGPvector<MGLBRep>* vecTP(){return m_TP;};
145 
146 private:
148  MGPvector<MGLBRep> m_TP[4];
149 
156  MGInterval m_prange[4];
157 
158  bool m_to_SE[8];
159 };
164  // end of GEORelated group
166 #endif
MGPvector< MGLBRep > & vecTP(int i)
Definition: SBRepVecTP.h:142
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
Defines Tangent Plane Line B-Representation Class.
Definition: SBRepVecTP.h:35
MGLBRep is a class for B-SPline representation.
Definition: LBRep.h:41
Vector of a general n space dimension.
Definition: Vector.h:26
Interval of 1 dimension, i.e. MGInterval is a real line.
Definition: Interval.h:22
MGSurface is an abstract class of 3D surface.
Definition: Surface.h:54
MGSBRepVecTP()
Default Constructor, will be set as no TPs' are specified.
Definition: SBRepVecTP.h:45
const MGPvector< MGLBRep > & vecTP(int i) const
Return i-th perimeter's TP.
Definition: SBRepVecTP.h:141
MGPvector< MGLBRep > * vecTP()
Definition: SBRepVecTP.h:144
MGOfstream is a class to serialize all of the subclasses of MGGel.
Definition: Ofstream.h:31
bool specified(int i) const
Definition: SBRepVecTP.h:117
Defines Tangent Plane Line B-Representation Class.
Definition: SBRepTP.h:28