FineKernelToolKit  3.1.0
Modify_CLI.h
[詳解]
1 // Modify_CLI.h
2 
3 #pragma once
4 
5 #include <FK/Modify.h>
6 #include "Operation_CLI.h"
7 
8 namespace FK_CLI
9 {
10  using namespace System::Collections::Generic;
11 
13 
42  public ref class fk_Modify : fk_Operation {
43  internal:
44  ::fk_Modify * GetP(void);
45 
46  public:
47 #ifndef FK_DOXYGEN_USER_PROCESS
48  fk_Modify(bool argNewFlg);
49  ~fk_Modify();
50 #endif
51 
53 
55 
78  fk_Loop^ RemoveVertexInLoop(fk_Vertex ^V);
79 
81 
113  bool ContractEdge(fk_Edge ^E, bool R);
114 
116 
147  bool ContractEdge(fk_Edge ^E);
148 
150 
166  bool ContractEdge(fk_Edge ^E, fk_Vector ^P, bool R);
167 
169 
184  bool ContractEdge(fk_Edge ^E, fk_Vector ^P);
185 
186 
188 
195  bool CheckContract(fk_Edge ^E);
197 
199 
200 
202 
226  fk_Loop^ MakePolygon(IEnumerable<fk_Vector^>^ array, bool openFlg, bool initFlg);
227 
229 
251  fk_Loop^ MakePolygon(IEnumerable<fk_Vector^>^ array, bool openFlg);
252 
254 
276  fk_Loop^ PushPolygon(IEnumerable<fk_Vector^>^ array, bool openFlg);
277 
279 
295  fk_Loop^ PushPolygon(IEnumerable<fk_Vector^>^ array);
296 
298 
312  void PushPolygonVertex(fk_Vector ^pos, bool openFlg);
314 
316 
317 
319 
325  void MakePoint(IEnumerable<fk_Vector^>^ array);
326 
328 
335  fk_Vertex^ PushPointVertex(fk_Vector ^pos);
336 
338 
340 
341 
343 
351  void MakeLines(IEnumerable<fk_Vector^>^ array);
352 
354 
362  fk_Edge^ PushLines(fk_Vector ^pos1, fk_Vector ^pos2);
363 
365 
379  bool SetLinePos(int ID, fk_Vector ^pos);
380 
382 
400  bool SetLinePos(int edgeID, int vertexID, fk_Vector^ pos);
401 
403 
416  bool ChangeLine(int edgeID, fk_Vector^ pos1, fk_Vector^ pos2);
418 
420 
421 
423 
446  void MakeBlock(double x, double y, double z);
447 
449 
461  void SetBlockSize(double x, double y, double z);
462 
464 
478  void SetBlockSize(double length, fk_Axis axis);
479 
481 
491  void SetBlockScale(double scale);
492 
494 
508  void SetBlockScale(double scale, fk_Axis axis);
509 
511 
523  void SetBlockScale(double x, double y, double z);
525 
527 
528 
530 
549  void MakeCircle(int div, double rad);
550 
552 
562  void SetCircleRadius(double rad);
563 
565 
575  void SetCircleDivide(int div);
576 
578 
588  void SetCircleScale(double scale);
590 
592 
593 
595 
612  void MakeSphere(int div, double rad);
613 
615 
625  void SetSphereRadius(double rad);
626 
628 
638  void SetSphereDivide(int div);
639 
641 
651  void SetSphereScale(double scale);
653 
655 
656 
658 
678  void MakePrism(int div, double top, double bottom, double height);
679 
681 
691  void SetPrismDivide(int div);
692 
694 
704  void SetPrismTopRadius(double top);
705 
707 
717  void SetPrismBottomRadius(double bottom);
718 
720 
730  void SetPrismHeight(double height);
732 
734 
735 
737 
756  void MakeCone(int div, double rad, double height);
757 
759 
769  void SetConeDivide(int div);
770 
772 
783  void SetConeRadius(double rad);
785 
795  void SetConeHeight(double height);
797 
799 
800 
802 
813  bool MoveVPosition(int vertexID, fk_Vector ^pos, int order);
814 
816 
826  bool MoveVPosition(int vertexID, fk_Vector ^pos);
827 
829 
842  bool MoveVPosition(int vertexID, double x, double y, double z, int order);
843 
845 
857  bool MoveVPosition(int vertexID, double x, double y, double z);
859 
861 
862 
871  void SubDivShape(int count);
873  };
874 }
875 
876 /****************************************************************************
877  *
878  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
879  *
880  * Redistribution and use in source and binary forms,
881  * with or without modification, are permitted provided that the
882  * following conditions are met:
883  *
884  * - Redistributions of source code must retain the above
885  * copyright notice, this list of conditions and the
886  * following disclaimer.
887  *
888  * - Redistributions in binary form must reproduce the above
889  * copyright notice, this list of conditions and the
890  * following disclaimer in the documentation and/or
891  * other materials provided with the distribution.
892  *
893  * - Neither the name of the copyright holders nor the names
894  * of its contributors may be used to endorse or promote
895  * products derived from this software without specific
896  * prior written permission.
897  *
898  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
899  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
900  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
901  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
902  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
903  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
904  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
905  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
906  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
907  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
908  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
909  * POSSIBILITY OF SUCH DAMAGE.
910  *
911  ****************************************************************************/
912 /****************************************************************************
913  *
914  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
915  *
916  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
917  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
918  *
919  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
920  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
921  *
922  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
923  * および下記免責条項を含めること。
924  *
925  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
926  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
927  * 含めること。
928  *
929  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
930  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
931  * コントリビューターの名前を使用してはならない。
932  *
933  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
934  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
935  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
936  * に限定されない、いかなる保証もないものとします。著作権者もコン
937  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
938  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
939  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
940  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
941  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
942  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
943  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
944  * ついて、一切責任を負わないものとします。
945  *
946  ****************************************************************************/
ソリッドモデルの頂点位相を管理するクラス
Definition: Vertex_CLI.h:26
ソリッドモデルの稜線位相を管理するクラス
Definition: Edge_CLI.h:33
ソリッドモデル変形操作用クラス
Definition: Modify_CLI.h:42
オイラー操作用クラス
Definition: Operation_CLI.h:45
fk_Axis
座標軸を表す列挙型
Definition: Vector_CLI.h:12
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
ソリッドモデルのループ位相を管理するクラス
Definition: Loop_CLI.h:30
Definition: AppWindow_CLI.h:11