FineKernelToolKit  3.1.0
IndexFace_CLI.h
[詳解]
1 // IndexFace_CLI.h
2 
3 #pragma once
4 
5 #include <FK/IndexFace.h>
6 #include "Shape_CLI.h"
7 #include "Vector_CLI.h"
8 #include "BVHMotion_CLI.h"
9 
10 namespace FK_CLI
11 {
12  using namespace System::Collections::Generic;
13 
14  ref class fk_Solid;
16  public enum class fk_IFType {
17  NONE,
18  TRIANGLES,
19  QUADS,
20  POLYGON
21  };
22 
24 
75  public ref class fk_IndexFaceSet : fk_Shape {
76  internal:
77  ::fk_IndexFaceSet * GetP(void);
78 
79  public:
80 #ifndef FK_DOXYGEN_USER_PROCESS
81  fk_IndexFaceSet(bool argNewFlg);
82 #endif
83 
86 
88  ~fk_IndexFaceSet();
89 
91  !fk_IndexFaceSet();
92 
94 
97  property int PosSize {
98  int get();
99  }
100 
102 
105  property int FaceSize {
106  int get();
107  }
108 
110 
113  property fk_IFType^ FaceType {
114  fk_IFType^ get();
115  }
116 
118 
125  property double AnimationTime {
126  void set(double);
127  }
128 
130 
135  property fk_BVHMotion^ BVHMotion {
136  void set(fk_BVHMotion^);
137  }
138 
140 
141 
143 
150  bool ReadSMFFile(String^ name);
151 
153 
186  bool ReadVRMLFile(String^ name, bool materialFlg, bool solidFlg);
187 
189 
219  bool ReadVRMLFile(String^ name, bool materialFlg);
220 
222 
247  bool ReadVRMLFile(String^ name);
248 
250 
273  bool ReadSTLFile(String^ name, bool solidFlg, double tolerance);
274 
276 
297  bool ReadSTLFile(String^ name, bool solidFlg);
298 
300 
315  bool ReadSTLFile(String^ name);
316 
317 
319 
326  bool ReadHRCFile(String^ name);
327 
329 
342  bool ReadRDSFile(String^ name, bool solidFlg);
343 
345 
354  bool ReadRDSFile(String^ name);
355 
357 
369  bool ReadDXFFile(String^ name, bool solidFlg);
370 
371 
373 
382  bool ReadDXFFile(String^ name);
383 
385 
423  bool ReadMQOFile(String^ fileName, String^ objName,
424  bool solidFlg, bool contFlg, bool materialFlg);
425 
427 
464  bool ReadMQOFile(String^ fileName, String^ objName, bool solidFlg, bool contFlg);
465 
467 
493  bool ReadMQOFile(String^ fileName, String^ objName, bool solidFlg);
494 
496 
517  bool ReadMQOFile(String^ fileName, String^ objName);
518 
520 
565  bool ReadMQOFile(String^ fileName, String^ objName,
566  int materialID, bool solidFlg, bool contFlg, bool materialFlg);
567 
569 
613  bool ReadMQOFile(String^ fileName, String^ objName,
614  int materialID, bool solidFlg, bool contFlg);
615 
617 
651  bool ReadMQOFile(String^ fileName, String^ objName,
652  int materialID, bool solidFlg);
653 
655 
683  bool ReadMQOFile(String^ fileName, String^ objName, int materialID);
684 
686 
728  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName,
729  bool solidFlg, bool contFlg, bool materialFlg);
730 
732 
773  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName, bool solidFlg, bool contFlg);
774 
776 
807  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName, bool solidFlg);
808 
810 
835  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName);
836 
838 
886  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName,
887  int materialID, bool solidFlg, bool contFlg, bool materialFlg);
888 
890 
937  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName,
938  int materialID, bool solidFlg, bool contFlg);
939 
941 
978  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName, int materialID, bool solidFlg);
979 
981 
1012  bool ReadMQOData(IEnumerable<Byte>^ buffer, String^ objName, int materialID);
1013 
1015 
1043  bool ReadD3DXFile(String^ fileName, String^ objName, bool solidFlg);
1044 
1046 
1071  bool ReadD3DXFile(String^ fileName, String^ objName);
1072 
1074 
1108  bool ReadD3DXFile(String^ fileName, String^ objName, int materialID, bool solidFlg);
1109 
1111 
1142  bool ReadD3DXFile(String^ fileName, String^ objName, int materialID);
1143 
1145 
1147 
1148 
1150 
1164  bool WriteVRMLFile(String^ fileName, fk_Material^ material, bool triFlg);
1165 
1167 
1181  bool WriteVRMLFile(String^ fileName, fk_Material^ material);
1182 
1184 
1194  bool WriteVRMLFile(String^ fileName);
1195 
1197 
1220  bool WriteVRMLFile(String^ fileName, IEnumerable<double>^ time,
1221  IEnumerable<fk_Vector^>^ pos, fk_Material^ material, bool triFlg);
1222 
1224 
1249  bool WriteVRMLFile(String^ fileName, IEnumerable<double>^ time,
1250  IEnumerable<fk_Vector^>^ pos, fk_Material^ material);
1251 
1253 
1274  bool WriteVRMLFile(String^ fileName, IEnumerable<double>^ time, IEnumerable<fk_Vector^>^ pos);
1275 
1277 
1284  bool WriteSTLFile(String^ fileName);
1285 
1287 
1298  bool WriteDXFFile(String^ fileName, bool triFlg);
1299 
1301 
1311  bool WriteDXFFile(String^ fileName);
1312 
1314 
1321  bool WriteMQOFile(String^ fileName);
1323 
1325 
1326 
1328 
1339  fk_Vector^ GetPosVec(int vertexID);
1340 
1342 
1351  cli::array<int>^ GetFaceData(int faceID);
1352 
1354 
1369  int GetFaceData(int faceID, int vertexNum);
1370 
1372 
1384  fk_Vector^ GetPNorm(int faceID, int order);
1385 
1387 
1399  fk_Vector^ GetPNorm(int faceID);
1400 
1402 
1414  fk_Vector^ GetVNorm(int vertexID, int order);
1415 
1417 
1429  fk_Vector^ GetVNorm(int vertexID);
1430 
1432 
1444  int GetElemMaterialID(int faceID);
1445 
1447 
1449 
1450 
1452 
1469  bool MoveVPosition(int vertexID, fk_Vector^ pos, int order);
1470 
1472 
1488  bool MoveVPosition(int vertexID, fk_Vector^ pos);
1489 
1490 
1492 
1510  bool MoveVPosition(int vertexID, double x, double y, double z, int order);
1511 
1513 
1531  bool MoveVPosition(int vertexID, double x, double y, double z);
1532 
1534 
1552  bool MoveVPosition(int vertexID, IEnumerable<double>^ array, int order);
1553 
1555 
1573  bool MoveVPosition(int vertexID, IEnumerable<double>^ array);
1574 
1576 
1603  void MakeIFSet(int faceNum, int polyNum, IEnumerable<int>^ IFSet,
1604  int vertexNum, IEnumerable<fk_Vector^>^ posArray, int order);
1605 
1607 
1634  void MakeIFSet(int faceNum, int polyNum, IEnumerable<int>^ IFSet,
1635  int vertexNum, IEnumerable<fk_Vector^>^ posArray);
1636 
1638 
1663  bool SetPNorm(int faceID, fk_Vector^ norm, int order);
1664 
1666 
1691  bool SetPNorm(int faceID, fk_Vector^ norm);
1692 
1694 
1719  bool SetVNorm(int vertexID, fk_Vector^ norm, int order);
1720 
1722 
1747  bool SetVNorm(int vertexID, fk_Vector^ norm);
1748 
1750 
1764  bool SetElemMaterialID(int faceID, int materialID);
1765 
1767 
1782  void Flush(void);
1783 
1785 
1787 
1788 
1790 
1813  void MakeBlock(double x, double y, double z);
1814 
1816 
1828  void SetBlockSize(double x, double y, double z);
1829 
1831 
1845  void SetBlockSize(double length, fk_Axis axis);
1846 
1848 
1858  void SetBlockScale(double scale);
1859 
1861 
1875  void SetBlockScale(double scale, fk_Axis axis);
1876 
1878 
1890  void SetBlockScale(double x, double y, double z);
1892 
1894 
1895 
1897 
1916  void MakeCircle(int div, double rad);
1917 
1919 
1929  void SetCircleRadius(double rad);
1930 
1932 
1942  void SetCircleDivide(int div);
1943 
1945 
1955  void SetCircleScale(double scale);
1957 
1959 
1960 
1962 
1980  void MakeSphere(int div, double rad);
1981 
1983 
1993  void SetSphereRadius(double rad);
1994 
1996 
2006  void SetSphereDivide(int div);
2007 
2009 
2019  void SetSphereScale(double scale);
2021 
2023 
2024 
2026 
2046  void MakePrism(int div, double top, double bottom, double height);
2047 
2048 
2050 
2060  void SetPrismDivide(int div);
2061 
2063 
2073  void SetPrismTopRadius(double top);
2074 
2076 
2086  void SetPrismBottomRadius(double bottom);
2087 
2089 
2099  void SetPrismHeight(double height);
2101 
2103 
2104 
2106 
2125  void MakeCone(int div, double rad, double height);
2126 
2128 
2138  void SetConeDivide(int div);
2139 
2141 
2151  void SetConeRadius(double rad);
2152 
2154 
2164  void SetConeHeight(double height);
2166 
2168 
2169 
2171 
2188  void MakeCapsule(int div, double len, double rad);
2189 
2191 
2202  void SetCapsuleSize(double len, double rad);
2204 
2206 
2207 
2209 
2219  void PutSolid(fk_Solid^ solid);
2220 
2222 
2228  void CloneShape(fk_IndexFaceSet^ ifs);
2230  };
2231 }
2232 
2233 /****************************************************************************
2234  *
2235  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
2236  *
2237  * Redistribution and use in source and binary forms,
2238  * with or without modification, are permitted provided that the
2239  * following conditions are met:
2240  *
2241  * - Redistributions of source code must retain the above
2242  * copyright notice, this list of conditions and the
2243  * following disclaimer.
2244  *
2245  * - Redistributions in binary form must reproduce the above
2246  * copyright notice, this list of conditions and the
2247  * following disclaimer in the documentation and/or
2248  * other materials provided with the distribution.
2249  *
2250  * - Neither the name of the copyright holders nor the names
2251  * of its contributors may be used to endorse or promote
2252  * products derived from this software without specific
2253  * prior written permission.
2254  *
2255  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2256  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2257  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
2258  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
2259  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
2260  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2261  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2262  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2263  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2264  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2265  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2266  * POSSIBILITY OF SUCH DAMAGE.
2267  *
2268  ****************************************************************************/
2269 /****************************************************************************
2270  *
2271  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
2272  *
2273  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
2274  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
2275  *
2276  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
2277  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
2278  *
2279  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
2280  * および下記免責条項を含めること。
2281  *
2282  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
2283  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
2284  * 含めること。
2285  *
2286  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
2287  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
2288  * コントリビューターの名前を使用してはならない。
2289  *
2290  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
2291  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
2292  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
2293  * に限定されない、いかなる保証もないものとします。著作権者もコン
2294  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
2295  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
2296  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
2297  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
2298  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
2299  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
2300  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
2301  * ついて、一切責任を負わないものとします。
2302  *
2303  ****************************************************************************/
インデックスフェースセットによる任意形状を生成、管理するクラス
Definition: IndexFace_CLI.h:75
任意多角形集合
BVH 形式のモーションデータを読み込み、保持するクラス
Definition: BVHMotion_CLI.h:22
半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス
Definition: Solid_CLI.h:64
fk_IFType
インデックスフェースセットの内部データタイプを表す列挙型
Definition: IndexFace_CLI.h:16
fk_Axis
座標軸を表す列挙型
Definition: Vector_CLI.h:12
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
形状用基底クラス
Definition: Shape_CLI.h:28
マテリアル(質感)を管理するクラス
Definition: Material_CLI.h:448
Definition: AppWindow_CLI.h:11