• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

MIST (Media Integration Standard Toolkit)


Commit MetaInfo

修订版7412d1f7b9e344f4b6596e7a0650af3774e23de4 (tree)
时间2019-02-04 12:12:26
作者yoshihiro13103 <yoshihiro13103@user...>
Commiteryoshihiro13103

Log Message

FIX error: declaration of 'P' shadows template parameter

更改概述

差异

--- a/mist/facet.h
+++ b/mist/facet.h
@@ -1,4 +1,4 @@
1-//
1+?ソ//
22 // Copyright (c) 2003-2011, MIST Project, Nagoya University
33 // All rights reserved.
44 //
@@ -28,7 +28,7 @@
2828
2929 /// @file mist/config/binary.h
3030 //!
31-//! @brief バイナリ演算を行うためのクラス
31+//! @brief 繝舌う繝翫Μ貍皮ョ励r陦後≧縺溘a縺ョ繧ッ繝ゥ繧ケ
3232 //!
3333
3434 #ifndef __INCLUDE_MIST_FACET__
@@ -59,55 +59,55 @@
5959 #include <deque>
6060 #include <algorithm>
6161
62-// mist名前空間の始まり
62+// mist蜷榊燕遨コ髢薙?蟋九∪繧
6363 _MIST_BEGIN
6464
6565
6666 #define __SHOW_FACET_DEBUG_INFORMATION__ 0
6767
68-//! @addtogroup facet_group ポリゴンを扱うクラス
68+//! @addtogroup facet_group 繝昴Μ繧エ繝ウ繧呈桶縺?け繝ゥ繧ケ
6969 //!
70-//! @code 次のヘッダをインクルードする
70+//! @code 谺。縺ョ繝倥ャ繝?繧偵う繝ウ繧ッ繝ォ繝シ繝峨☆繧
7171 //! #include <mist/facet.h>
7272 //! @endcode
7373 //!
7474 //! @{
7575
76-/// @brief ポリゴン(三角形)を扱うクラス
76+/// @brief 繝昴Μ繧エ繝ウ?井ク芽ァ貞ス「?峨r謇ア縺?け繝ゥ繧ケ
7777 //!
78-//! @param T … 内部で用いるデータ型
78+//! @param T 窶ヲ 蜀?Κ縺ァ逕ィ縺?k繝??繧ソ蝙
7979 //!
8080 template < class T >
8181 class facet
8282 {
8383 public:
84- typedef T value_type; ///< @brief MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ
85- typedef size_t size_type; ///< @brief 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
86- typedef ptrdiff_t difference_type; ///< @brief 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
87- typedef vector3< T > vector_type; ///< @brief 頂点などを表す3次元ベクトル型
88- typedef typename float_type< T >::value_type float_type; ///< @brief 長さなどを計算するときに用いる浮動小数点型
84+ typedef T value_type; ///< @brief MIST縺ョ繧ウ繝ウ繝?リ蜀?↓譬シ邏阪☆繧九ョ繝シ繧ソ蝙具シ士ist::array< data > 縺ョ data 縺ィ蜷後§
85+ typedef size_t size_type; ///< @brief 隨ヲ蜿キ縺ェ縺励?謨エ謨ー繧定。ィ縺吝梛?弱さ繝ウ繝?リ蜀??隕∫エ?謨ー繧?シ悟推隕∫エ?繧呈欠螳壹☆繧九→縺阪↑縺ゥ縺ォ蛻ゥ逕ィ縺暦シ悟?驛ィ逧?↓縺ッ size_t 蝙九→蜷後§
86+ typedef ptrdiff_t difference_type; ///< @brief 隨ヲ蜿キ莉倥″縺ョ謨エ謨ー繧定。ィ縺吝梛?弱さ繝ウ繝?リ蜀??隕∫エ?謨ー繧?シ悟推隕∫エ?繧呈欠螳壹☆繧九→縺阪↑縺ゥ縺ォ蛻ゥ逕ィ縺暦シ悟?驛ィ逧?↓縺ッ ptrdiff_t 蝙九→蜷後§
87+ typedef vector3< T > vector_type; ///< @brief 鬆らせ縺ェ縺ゥ繧定。ィ縺?谺。蜈??繧ッ繝医Ν蝙
88+ typedef typename float_type< T >::value_type float_type; ///< @brief 髟キ縺輔↑縺ゥ繧定ィ育ョ励☆繧九→縺阪↓逕ィ縺?k豬ョ蜍募ー乗焚轤ケ蝙
8989
9090 public:
91- vector_type normal; ///< @brief 法線
92- vector_type p1; ///< @brief 座標1
93- vector_type p2; ///< @brief 座標2
94- vector_type p3; ///< @brief 座標3
91+ vector_type normal; ///< @brief 豕慕キ
92+ vector_type p1; ///< @brief 蠎ァ讓?
93+ vector_type p2; ///< @brief 蠎ァ讓?
94+ vector_type p3; ///< @brief 蠎ァ讓?
9595
96- /// @brief デフォルトコンストラクタ(全要素をデフォルト値で初期化する)
96+ /// @brief 繝?ヵ繧ゥ繝ォ繝医さ繝ウ繧ケ繝医Λ繧ッ繧ソ?亥?隕∫エ?繧偵ョ繝輔か繝ォ繝亥?、縺ァ蛻晄悄蛹悶☆繧具シ
9797 facet( ) : normal( 0, 0, 1 ){ }
9898
99- /// @brief 指定した値を用いて初期化する
99+ /// @brief 謖?ョ壹@縺溷?、繧堤畑縺?※蛻晄悄蛹悶☆繧
100100 facet( const vector_type &N, const vector_type &P1, const vector_type &P2, const vector_type &P3 ) : normal( N ), p1( P1 ), p2( P2 ), p3( P3 ){ }
101101
102- /// @brief 指定した値を用いて初期化する(点の並び順は反時計回りを仮定)
102+ /// @brief 謖?ョ壹@縺溷?、繧堤畑縺?※蛻晄悄蛹悶☆繧具シ育せ縺ョ荳ヲ縺ウ鬆??蜿肴凾險亥屓繧翫r莉ョ螳夲シ
103103 facet( const vector_type &P1, const vector_type &P2, const vector_type &P3 ) : normal( ( ( P2 - P1 ).outer( P3 - P1 ) ).unit( ) ), p1( P1 ), p2( P2 ), p3( P3 ){ }
104104
105- /// @brief 他のポリゴンオブジェクトを用いて初期化する
105+ /// @brief 莉悶?繝昴Μ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝医r逕ィ縺?※蛻晄悄蛹悶☆繧
106106 template < class TT >
107107 facet( const facet< TT > &f ) : normal( f.normal ), p1( f.p1 ), p2( f.p2 ), p3( f.p3 ){ }
108108
109109
110- /// @brief 他のポリゴンオブジェクトを代入する
110+ /// @brief 莉悶?繝昴Μ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝医r莉」蜈・縺吶k
111111 template < class TT >
112112 const facet &operator =( const facet< TT > &f )
113113 {
@@ -123,14 +123,14 @@ public:
123123 };
124124
125125
126-/// @brief 指定されたストリームに,ポリゴンオブジェクトを整形して出力する
126+/// @brief 謖?ョ壹&繧後◆繧ケ繝医Μ繝シ繝?縺ォ?後?繝ェ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝医r謨エ蠖「縺励※蜃コ蜉帙☆繧
127127 //!
128-//! @param[in,out] out … 入力と出力を行うストリーム
129-//! @param[in] f … ポリゴンオブジェクト
128+//! @param[in,out] out 窶ヲ 蜈・蜉帙→蜃コ蜉帙r陦後≧繧ケ繝医Μ繝シ繝?
129+//! @param[in] f 窶ヲ 繝昴Μ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝
130130 //!
131-//! @return 入力されたストリーム
131+//! @return 蜈・蜉帙&繧後◆繧ケ繝医Μ繝シ繝?
132132 //!
133-//! @code 出力例
133+//! @code 蜃コ蜉帑セ
134134 //! ( 1, 2, 3, 4 )
135135 //! @endcode
136136 //!
@@ -144,9 +144,9 @@ template < class T > inline std::ostream &operator <<( std::ostream &out, const
144144 }
145145
146146
147-/// @brief ポリゴン(三角形)の集合を扱うクラス
147+/// @brief 繝昴Μ繧エ繝ウ?井ク芽ァ貞ス「?峨?髮?粋繧呈桶縺?け繝ゥ繧ケ
148148 //!
149-//! @param T … 内部で用いるデータ型
149+//! @param T 窶ヲ 蜀?Κ縺ァ逕ィ縺?k繝??繧ソ蝙
150150 //!
151151 template < class T >
152152 class facet_list : public std::vector< facet< T > >
@@ -155,27 +155,27 @@ private:
155155 typedef std::vector< facet< T > > base;
156156
157157 public:
158- typedef facet< T > facet_type; ///< @brief ポリゴンタイプ
159- typedef size_t size_type; ///< @brief 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
160- typedef ptrdiff_t difference_type; ///< @brief 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
161- typedef typename facet_type::vector_type vector_type; ///< @brief 頂点などを表す3次元ベクトル型
162- typedef typename float_type< T >::value_type float_type; ///< @brief 長さなどを計算するときに用いる浮動小数点型
158+ typedef facet< T > facet_type; ///< @brief 繝昴Μ繧エ繝ウ繧ソ繧、繝
159+ typedef size_t size_type; ///< @brief 隨ヲ蜿キ縺ェ縺励?謨エ謨ー繧定。ィ縺吝梛?弱さ繝ウ繝?リ蜀??隕∫エ?謨ー繧?シ悟推隕∫エ?繧呈欠螳壹☆繧九→縺阪↑縺ゥ縺ォ蛻ゥ逕ィ縺暦シ悟?驛ィ逧?↓縺ッ size_t 蝙九→蜷後§
160+ typedef ptrdiff_t difference_type; ///< @brief 隨ヲ蜿キ莉倥″縺ョ謨エ謨ー繧定。ィ縺吝梛?弱さ繝ウ繝?リ蜀??隕∫エ?謨ー繧?シ悟推隕∫エ?繧呈欠螳壹☆繧九→縺阪↑縺ゥ縺ォ蛻ゥ逕ィ縺暦シ悟?驛ィ逧?↓縺ッ ptrdiff_t 蝙九→蜷後§
161+ typedef typename facet_type::vector_type vector_type; ///< @brief 鬆らせ縺ェ縺ゥ繧定。ィ縺?谺。蜈??繧ッ繝医Ν蝙
162+ typedef typename float_type< T >::value_type float_type; ///< @brief 髟キ縺輔↑縺ゥ繧定ィ育ョ励☆繧九→縺阪↓逕ィ縺?k豬ョ蜍募ー乗焚轤ケ蝙
163163
164164 public:
165- std::string name; ///< @brief 法線
165+ std::string name; ///< @brief 豕慕キ
166166
167- /// @brief デフォルトコンストラクタ(全要素をデフォルト値で初期化する)
167+ /// @brief 繝?ヵ繧ゥ繝ォ繝医さ繝ウ繧ケ繝医Λ繧ッ繧ソ?亥?隕∫エ?繧偵ョ繝輔か繝ォ繝亥?、縺ァ蛻晄悄蛹悶☆繧具シ
168168 facet_list( ){ }
169169
170- /// @brief 指定した名前でポリゴン集合を初期化する
170+ /// @brief 謖?ョ壹@縺溷錐蜑阪〒繝昴Μ繧エ繝ウ髮?粋繧貞?譛溷喧縺吶k
171171 facet_list( const std::string &name_ ) : name( name_ ){ }
172172
173- /// @brief 他のポリゴンオブジェクトを用いて初期化する
173+ /// @brief 莉悶?繝昴Μ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝医r逕ィ縺?※蛻晄悄蛹悶☆繧
174174 template < class TT >
175175 facet_list( const facet_list< TT > &f ) : base( f ), name( f.name ){ }
176176
177177
178- /// @brief 他のポリゴンオブジェクトを代入する
178+ /// @brief 莉悶?繝昴Μ繧エ繝ウ繧ェ繝悶ず繧ァ繧ッ繝医r莉」蜈・縺吶k
179179 template < class TT >
180180 const facet_list &operator =( const facet_list< TT > &f )
181181 {
@@ -189,16 +189,16 @@ public:
189189 };
190190
191191
192-/// @brief 3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する
192+/// @brief 3隗貞ス「繝代ャ繝√?髮?粋縺九i鬆らせ髮?粋縺ィ荳芽ァ貞ス「繝代ャ繝√r讒区?縺吶k繧、繝ウ繝?ャ繧ッ繧ケ髮?粋縺ォ螟画鋤縺吶k
193193 //!
194-//! 共通して使用する頂点を全てまとめた頂点集合を作成する.
194+//! 蜈ア騾壹@縺ヲ菴ソ逕ィ縺吶k鬆らせ繧貞?縺ヲ縺セ縺ィ繧√◆鬆らせ髮?粋繧剃ス懈?縺吶k?
195195 //!
196-//! @param[in] facets … 3角形パッチの集合
197-//! @param[in] vertices … 頂点集合
198-//! @param[in] faces … 三角形パッチを構成するインデックス集合
199-//! @param[in] eps … 同一頂点と判定される頂点の距離
196+//! @param[in] facets 窶ヲ 3隗貞ス「繝代ャ繝√?髮?粋
197+//! @param[in] vertices 窶ヲ 鬆らせ髮?粋
198+//! @param[in] faces 窶ヲ 荳芽ァ貞ス「繝代ャ繝√r讒区?縺吶k繧、繝ウ繝?ャ繧ッ繧ケ髮?粋
199+//! @param[in] eps 窶ヲ 蜷御ク?鬆らせ縺ィ蛻、螳壹&繧後k鬆らせ縺ョ霍晞屬
200200 //!
201-//! @return 頂点集合とインデックス集合の作成に成功したかどうか
201+//! @return 鬆らせ髮?粋縺ィ繧、繝ウ繝?ャ繧ッ繧ケ髮?粋縺ョ菴懈?縺ォ謌仙粥縺励◆縺九←縺?°
202202 //!
203203 template < class T, class T1, class T2 >
204204 inline bool convert_to_vertex_face_list( const facet_list< T > &facets, std::vector< vector3< T1 > > &vertices, std::vector< vector3< T2 > > &faces, const double eps = 1.0e-6 )
@@ -223,7 +223,7 @@ inline bool convert_to_vertex_face_list( const facet_list< T > &facets, std::vec
223223
224224 double SCALE = 0.1 / eps;
225225
226- // データをテーブルに登録する
226+ // 繝??繧ソ繧偵ユ繝シ繝悶Ν縺ォ逋サ骭イ縺吶k
227227 for( size_type i = 0 ; i < facets.size( ) ; i++ )
228228 {
229229 const typename facet_list< T >::facet_type &f = facets[ i ];
@@ -267,7 +267,7 @@ inline bool convert_to_vertex_face_list( const facet_list< T > &facets, std::vec
267267 }
268268 }
269269
270- // 頂点を反時計回りに並べる
270+ // 鬆らせ繧貞渚譎りィ亥屓繧翫↓荳ヲ縺ケ繧
271271 if( f.normal.inner( ( v[ 1 ] - v[ 0 ] ).outer( v[ 2 ] - v[ 0 ] ) ) < 0 )
272272 {
273273 size_type tmp = indx[ 1 ];
@@ -427,11 +427,11 @@ namespace __mc__
427427 face_lists.clear( );
428428 face_lists.reserve( faces.size( ) );
429429
430- // ダミーを1つだけ挿入する
430+ // 繝?繝溘?繧?縺、縺?縺第諺蜈・縺吶k
431431 face_lists.push_back( face_type( ) );
432432 edge_lists.push_back( edge_type( ) );
433433
434- // 辺をテーブルに登録する
434+ // 霎コ繧偵ユ繝シ繝悶Ν縺ォ逋サ骭イ縺吶k
435435 for( size_type i = 1 ; i <= faces.size( ) ; i++ )
436436 {
437437 const ivector_type &f = faces[ i - 1 ];
@@ -440,14 +440,14 @@ namespace __mc__
440440 difference_type key23 = create_key( f.y, f.z, vertices.size( ) );
441441 difference_type key31 = create_key( f.z, f.x, vertices.size( ) );
442442
443- // 辺1-2を調べる
443+ // 霎コ1-2繧定ェソ縺ケ繧
444444 iterator ite = table.find( key12 );
445445 if( ite == table.end( ) )
446446 {
447- // 新規に辺と面の対応情報を追加する
447+ // 譁ー隕上↓霎コ縺ィ髱「縺ョ蟇セ蠢懈ュ蝣ア繧定ソス蜉?縺吶k
448448 table[ key12 ] = edge_lists.size( );
449449
450- // エッジを登録する
450+ // 繧ィ繝?ず繧堤匳骭イ縺吶k
451451 if( f.x < f.y )
452452 {
453453 edge_lists.push_back( edge_type( f.x, f.y, i ) );
@@ -470,14 +470,14 @@ namespace __mc__
470470 std::cerr << "Edge may be shared among more than three faces." << std::endl;
471471 }
472472
473- // 辺2-3を調べる
473+ // 霎コ2-3繧定ェソ縺ケ繧
474474 ite = table.find( key23 );
475475 if( ite == table.end( ) )
476476 {
477- // 新規に辺情報を追加する
477+ // 譁ー隕上↓霎コ諠??ア繧定ソス蜉?縺吶k
478478 table[ key23 ] = edge_lists.size( );
479479
480- // エッジを登録する
480+ // 繧ィ繝?ず繧堤匳骭イ縺吶k
481481 if( f.y < f.z )
482482 {
483483 edge_lists.push_back( edge_type( f.y, f.z, i ) );
@@ -500,14 +500,14 @@ namespace __mc__
500500 std::cerr << "Edge may be shared among more than three faces." << std::endl;
501501 }
502502
503- // 辺2-3を調べる
503+ // 霎コ2-3繧定ェソ縺ケ繧
504504 ite = table.find( key31 );
505505 if( ite == table.end( ) )
506506 {
507- // 新規に辺情報を追加する
507+ // 譁ー隕上↓霎コ諠??ア繧定ソス蜉?縺吶k
508508 table[ key31 ] = edge_lists.size( );
509509
510- // エッジを登録する
510+ // 繧ィ繝?ず繧堤匳骭イ縺吶k
511511 if( f.z < f.x )
512512 {
513513 edge_lists.push_back( edge_type( f.z, f.x, i ) );
@@ -531,7 +531,7 @@ namespace __mc__
531531 }
532532 }
533533
534- // 面と辺を関連付ける
534+ // 髱「縺ィ霎コ繧帝未騾」莉倥¢繧
535535 for( size_type i = 1 ; i <= faces.size( ) ; i++ )
536536 {
537537 const ivector_type &F = faces[ i - 1 ];
@@ -541,7 +541,7 @@ namespace __mc__
541541 difference_type key23 = create_key( F.y, F.z, vertices.size( ) );
542542 difference_type key31 = create_key( F.z, F.x, vertices.size( ) );
543543
544- // 辺1-2を調べる
544+ // 霎コ1-2繧定ェソ縺ケ繧
545545 iterator ite = table.find( key12 );
546546 if( ite == table.end( ) )
547547 {
@@ -553,7 +553,7 @@ namespace __mc__
553553 f.eid1 = F.x == e.v1 ? ite->second : -ite->second;
554554 }
555555
556- // 辺2-3を調べる
556+ // 霎コ2-3繧定ェソ縺ケ繧
557557 ite = table.find( key23 );
558558 if( ite == table.end( ) )
559559 {
@@ -565,7 +565,7 @@ namespace __mc__
565565 f.eid2 = F.y == e.v1 ? ite->second : -ite->second;
566566 }
567567
568- // 辺2-3を調べる
568+ // 霎コ2-3繧定ェソ縺ケ繧
569569 ite = table.find( key31 );
570570 if( ite == table.end( ) )
571571 {
@@ -706,18 +706,18 @@ namespace __mc__
706706 double a21 = a( 1, 0 ), a22 = a( 1, 1 ), a23 = a( 1, 2 );
707707 double a31 = a( 2, 0 ), a32 = a( 2, 1 ), a33 = a( 2, 2 );
708708
709- // 共通で利用する係数の計算
709+ // 蜈ア騾壹〒蛻ゥ逕ィ縺吶k菫よ焚縺ョ險育ョ
710710 double _22x33_23x32_ = a22 * a33 - a23 * a32;
711711 double _21x32_22x31_ = a21 * a32 - a22 * a31;
712712 double _23x31_21x33_ = a23 * a31 - a21 * a33;
713713
714- // 行列式を計算
714+ // 陦悟?蠑上r險育ョ
715715 double detA = a11 * _22x33_23x32_ + a13 * _21x32_22x31_ + a12 * _23x31_21x33_;
716716
717- // 逆行列が存在する場合のも逆行列を計算する
717+ // 騾?。悟?縺悟ュ伜惠縺吶k蝣エ蜷医?繧る??。悟?繧定ィ育ョ励☆繧
718718 if( std::abs( detA ) > eps )
719719 {
720- // 各要素の値を計算
720+ // 蜷?ヲ∫エ?縺ョ蛟、繧定ィ育ョ
721721 double A11 = _22x33_23x32_;
722722 double A12 = a13 * a32 - a12 * a33;
723723 double A13 = a12 * a23 - a13 * a22;
@@ -763,7 +763,7 @@ namespace __mc__
763763 typedef Matrix matrix_type;
764764 typedef vector3< T1 > vector_type;
765765
766- // 各頂点の誤差評価行列を求める
766+ // 蜷??らせ縺ョ隱、蟾ョ隧穂セ。陦悟?繧呈アゅa繧
767767 matrix_type QQ = Q[ edge.v1 ] + Q[ edge.v2 ];
768768 matrix_type QQQ = matrix_type::_33( QQ( 0, 0 ), QQ( 0, 1 ), QQ( 0, 2 ),
769769 QQ( 1, 0 ), QQ( 1, 1 ), QQ( 1, 2 ),
@@ -963,7 +963,7 @@ namespace __mc__
963963 }
964964
965965
966- // 法線が入れ替わるかどうかをチェックする
966+ // 豕慕キ壹′蜈・繧梧崛繧上k縺九←縺?°繧偵メ繧ァ繝?け縺吶k
967967 for( typename std::set< difference_type >::iterator ite = face_map1.begin( ) ; ite != face_map1.end( ) ; ++ite )
968968 {
969969 if( *ite != 0 && face_map2.find( *ite ) == face_map2.end( ) )
@@ -1030,25 +1030,25 @@ namespace __mc__
10301030 const edge_type &e = edges[ eid ];
10311031 if( e.v1 == vs && eid1 == 0 )
10321032 {
1033- // vs へ接続する辺
1033+ // vs 縺ク謗・邯壹☆繧玖セコ
10341034 eid1 = eid;
10351035 vv = e.v2;
10361036 }
10371037 else if( e.v2 == vs && eid1 == 0 )
10381038 {
1039- // vs へ接続する辺
1039+ // vs 縺ク謗・邯壹☆繧玖セコ
10401040 eid1 = eid;
10411041 vv = e.v1;
10421042 }
10431043 else if( e.v1 == vt )
10441044 {
1045- // vt へ接続する辺
1045+ // vt 縺ク謗・邯壹☆繧玖セコ
10461046 eid2 = eid;
10471047 vv = e.v2;
10481048 }
10491049 else if( e.v2 == vt )
10501050 {
1051- // vt へ接続する辺
1051+ // vt 縺ク謗・邯壹☆繧玖セコ
10521052 eid2 = eid;
10531053 vv = e.v1;
10541054 }
@@ -1071,7 +1071,7 @@ namespace __mc__
10711071
10721072 if( is_sharp_edge( EDGE ) )
10731073 {
1074- // 縁に接している辺は削除対象外
1074+ // 邵√↓謗・縺励※縺?k霎コ縺ッ蜑企勁蟇セ雎。螟
10751075 return( false );
10761076 }
10771077
@@ -1087,12 +1087,12 @@ namespace __mc__
10871087 const edge_type &e22 = edges[ f2.eid2 < 0 ? -f2.eid2 : f2.eid2 ];
10881088 const edge_type &e23 = edges[ f2.eid3 < 0 ? -f2.eid3 : f2.eid3 ];
10891089
1090- // 面1をチェック
1090+ // 髱「1繧偵メ繧ァ繝?け
10911091 compute_edge_connections( edges, EID, f1.eid1 < 0 ? -f1.eid1 : f1.eid1, vs, vt, vl, eid[ 0 ], eid[ 1 ] );
10921092 compute_edge_connections( edges, EID, f1.eid2 < 0 ? -f1.eid2 : f1.eid2, vs, vt, vl, eid[ 0 ], eid[ 1 ] );
10931093 compute_edge_connections( edges, EID, f1.eid3 < 0 ? -f1.eid3 : f1.eid3, vs, vt, vl, eid[ 0 ], eid[ 1 ] );
10941094
1095- // 面2をチェック
1095+ // 髱「2繧偵メ繧ァ繝?け
10961096 compute_edge_connections( edges, EID, f2.eid1 < 0 ? -f2.eid1 : f2.eid1, vs, vt, vr, eid[ 3 ], eid[ 2 ] );
10971097 compute_edge_connections( edges, EID, f2.eid2 < 0 ? -f2.eid2 : f2.eid2, vs, vt, vr, eid[ 3 ], eid[ 2 ] );
10981098 compute_edge_connections( edges, EID, f2.eid3 < 0 ? -f2.eid3 : f2.eid3, vs, vt, vr, eid[ 3 ], eid[ 2 ] );
@@ -1111,7 +1111,7 @@ namespace __mc__
11111111 {
11121112 if( ite->second == val )
11131113 {
1114- // 削除する
1114+ // 蜑企勁縺吶k
11151115 ite = vertex_edge_map.erase( ite );
11161116 }
11171117 else
@@ -1146,11 +1146,11 @@ namespace __mc__
11461146
11471147 if( is_sharp_edge( EDGE ) )
11481148 {
1149- // 縁に接している辺は削除対象外
1149+ // 邵√↓謗・縺励※縺?k霎コ縺ッ蜑企勁蟇セ雎。螟
11501150 return( true );
11511151 }
11521152
1153- // 処理対象の辺の登録と,テーブル内からの削除等を行う
1153+ // 蜃ヲ逅?ッセ雎。縺ョ霎コ縺ョ逋サ骭イ縺ィ?後ユ繝シ繝悶Ν蜀?°繧峨?蜑企勁遲峨r陦後≧
11541154 difference_type vs = EDGE.v1;
11551155 difference_type vt = EDGE.v2;
11561156 difference_type vl, vr;
@@ -1165,7 +1165,7 @@ namespace __mc__
11651165 return( true );
11661166 }
11671167
1168- // 指定した辺を削除した場合にトポロジーが変化するかどうかをチェックする
1168+ // 謖?ョ壹@縺溯セコ繧貞炎髯、縺励◆蝣エ蜷医↓繝医?繝ュ繧ク繝シ縺悟、牙喧縺吶k縺九←縺?°繧偵メ繧ァ繝?け縺吶k
11691169 if( is_sharp_edge( edges[ eid[ 0 ] ] ) && is_sharp_edge( edges[ eid[ 1 ] ] ) )
11701170 {
11711171 return( true );
@@ -1227,7 +1227,7 @@ namespace __mc__
12271227 {
12281228 if( vertex_list.find( e.v1 ) != vertex_list.end( ) )
12291229 {
1230- // 面の存在しないループを発見
1230+ // 髱「縺ョ蟄伜惠縺励↑縺?Ν繝シ繝励r逋コ隕
12311231 return( true );
12321232 }
12331233 }
@@ -1235,7 +1235,7 @@ namespace __mc__
12351235 {
12361236 if( vertex_list.find( e.v2 ) != vertex_list.end( ) )
12371237 {
1238- // 面の存在しないループを発見
1238+ // 髱「縺ョ蟄伜惠縺励↑縺?Ν繝シ繝励r逋コ隕
12391239 return( true );
12401240 }
12411241 }
@@ -1249,21 +1249,21 @@ namespace __mc__
12491249 }
12501250 }
12511251
1252-/// @brief 3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する
1252+/// @brief 3隗貞ス「繝代ャ繝√?髮?粋縺九i鬆らせ髮?粋縺ィ荳芽ァ貞ス「繝代ャ繝√r讒区?縺吶k繧、繝ウ繝?ャ繧ッ繧ケ髮?粋縺ォ螟画鋤縺吶k
12531253 //!
1254-//! 共通して使用する頂点を全てまとめた頂点集合を作成する.
1254+//! 蜈ア騾壹@縺ヲ菴ソ逕ィ縺吶k鬆らせ繧貞?縺ヲ縺セ縺ィ繧√◆鬆らせ髮?粋繧剃ス懈?縺吶k?
12551255 //!
1256-//! - 参考文献
1256+//! - 蜿り??枚迪ョ
12571257 //! - Michael Garland and Paul S. Heckbert, "Surface Simplification Using Quadric Error Metrics," Proceedings of SIGGRAPH 97, pp.209-216, 1997
12581258 //! - Michael Garland and Paul S. Heckbert, "Simplifying Surfaces with Color and Texture using Quadric Error Metrics," Proceedings of IEEE Visualization conference , pp.263-269, 1998
12591259 //!
1260-//! @param[in] facets … 3角形パッチの集合
1261-//! @param[in] number_of_facets … 削減後の3角形パッチ数
1262-//! @param[in] use_optimal_vertex_placement … 辺削除後に最適な位置に頂点を移動させるかどうか(有効にすると場合によってはきれいなメッシュが得られない場合あり)
1263-//! @param[in] threshold_for_triangle_compactness … 辺削除後に発生する尖った三角形を抑制する(0〜1の間を設定)
1264-//! @param[in] eps … 同一頂点と判定される頂点の距離
1260+//! @param[in] facets 窶ヲ 3隗貞ス「繝代ャ繝√?髮?粋
1261+//! @param[in] number_of_facets 窶ヲ 蜑頑ク帛セ後?3隗貞ス「繝代ャ繝∵焚
1262+//! @param[in] use_optimal_vertex_placement 窶ヲ 霎コ蜑企勁蠕後↓譛?驕ゥ縺ェ菴咲スョ縺ォ鬆らせ繧堤ァサ蜍輔&縺帙k縺九←縺?°?域怏蜉ケ縺ォ縺吶k縺ィ蝣エ蜷医↓繧医▲縺ヲ縺ッ縺阪l縺?↑繝。繝?す繝・縺悟セ励i繧後↑縺??エ蜷医≠繧奇シ
1263+//! @param[in] threshold_for_triangle_compactness 窶ヲ 霎コ蜑企勁蠕後↓逋コ逕溘☆繧句ー悶▲縺滉ク芽ァ貞ス「繧呈椛蛻カ縺吶k??縲?縺ョ髢薙r險ュ螳夲シ
1264+//! @param[in] eps 窶ヲ 蜷御ク?鬆らせ縺ィ蛻、螳壹&繧後k鬆らせ縺ョ霍晞屬
12651265 //!
1266-//! @return 3角形パッチす数の削減に成功したかどうか
1266+//! @return 3隗貞ス「繝代ャ繝√☆謨ー縺ョ蜑頑ク帙↓謌仙粥縺励◆縺九←縺?°
12671267 //!
12681268 template < class T >
12691269 inline bool surface_simplification( facet_list< T > &facets, size_t number_of_facets, bool use_optimal_vertex_placement = true, double threshold_for_triangle_compactness = 0.0, const double eps = 1.0e-3 )
@@ -1284,13 +1284,13 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
12841284 std::vector< face_type > faces;
12851285 edge_list_type edges;
12861286
1287- // 頂点と面のリストに変換する
1287+ // 鬆らせ縺ィ髱「縺ョ繝ェ繧ケ繝医↓螟画鋤縺吶k
12881288 if( !convert_to_vertex_face_list( facets, vertices, face_ids, eps ) )
12891289 {
12901290 return( false );
12911291 }
12921292
1293- // 面情報にエッジ情報を付与する
1293+ // 髱「諠??ア縺ォ繧ィ繝?ず諠??ア繧剃サ倅ク弱☆繧
12941294 if( !convert_to_vertex_face_list( vertices, face_ids, faces, edges ) )
12951295 {
12961296 return( false );
@@ -1300,14 +1300,14 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
13001300 face_ids.clear( );
13011301 }
13021302
1303- // Contraction Error を計算するための行列集合を設定する
1303+ // Contraction Error 繧定ィ育ョ励☆繧九◆繧√?陦悟?髮?粋繧定ィュ螳壹☆繧
13041304 std::vector< matrix_type > Q( vertices.size( ) );
13051305 for( size_type i = 0 ; i < Q.size( ) ; i++ )
13061306 {
13071307 Q[ i ].resize( 4, 4 );
13081308 }
13091309
1310- // 接続する頂点の候補集合を求める
1310+ // 謗・邯壹☆繧矩?らせ縺ョ蛟呵」憺寔蜷医r豎ゅa繧
13111311 for( size_type i = 1 ; i < faces.size( ) ; i++ )
13121312 {
13131313 const face_type &f = faces[ i ];
@@ -1363,7 +1363,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
13631363
13641364 }
13651365
1366- // 頂点とエッジのテーブルを作成する
1366+ // 鬆らせ縺ィ繧ィ繝?ず縺ョ繝??繝悶Ν繧剃ス懈?縺吶k
13671367 typedef __mc__::__edge_comp__< edge_type > edge_compare_type;
13681368 typedef std::set< difference_type, edge_compare_type > edge_map_type;
13691369 typedef std::multimap< size_type, difference_type > vertex_edge_map_type;
@@ -1376,10 +1376,10 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
13761376 {
13771377 edge_type &e = edges[ i ];
13781378
1379- // 削除対象にできるかどうかを判定
1379+ // 蜑企勁蟇セ雎。縺ォ縺ァ縺阪k縺九←縺?°繧貞愛螳
13801380 if( !__mc__::is_sharp_edge( edges[ i ] ) )
13811381 {
1382- // 各頂点の誤差評価を行う
1382+ // 蜷??らせ縺ョ隱、蟾ョ隧穂セ。繧定。後≧
13831383 __mc__::update_edge( vertices, Q, edges[ i ], use_optimal_vertex_placement );
13841384 edge_map.insert( i );
13851385 }
@@ -1390,7 +1390,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
13901390
13911391 size_t num_facets = faces.size( ) - 1;
13921392
1393- // 頂点をコスト順に削減する
1393+ // 鬆らせ繧偵さ繧ケ繝磯??↓蜑頑ク帙☆繧
13941394 for( ; num_facets - 2 >= number_of_facets && !edge_map.empty( ) ; num_facets -= 2 )
13951395 {
13961396 typename edge_map_type::iterator mite = edge_map.end( );
@@ -1405,7 +1405,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14051405 }
14061406 else if( !__mc__::check_topology_change( vertex_edge_map, faces, edges, *ite ) )
14071407 {
1408- // 削除可能な辺を発見
1408+ // 蜑企勁蜿ッ閭ス縺ェ霎コ繧堤匱隕
14091409 mite = ite;
14101410 break;
14111411 }
@@ -1417,7 +1417,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14171417
14181418 if( mite == edge_map.end( ) )
14191419 {
1420- // 削除できる辺が見つからなかったので終了する
1420+ // 蜑企勁縺ァ縺阪k霎コ縺瑚ヲ九▽縺九i縺ェ縺九▲縺溘?縺ァ邨ゆコ?☆繧
14211421 break;
14221422 }
14231423
@@ -1428,10 +1428,10 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14281428 std::cout << "Contraction [" << num_facets << "] : #" << EID << " <" << EDGE.v2 << " -> " << EDGE.v1 << ">" << std::endl;
14291429 #endif
14301430
1431- // 辺を削除する
1431+ // 霎コ繧貞炎髯、縺吶k
14321432 edge_map.erase( mite );
14331433
1434- // 処理対象の辺の登録と,テーブル内からの削除等を行う
1434+ // 蜃ヲ逅?ッセ雎。縺ョ霎コ縺ョ逋サ骭イ縺ィ?後ユ繝シ繝悶Ν蜀?°繧峨?蜑企勁遲峨r陦後≧
14351435 difference_type vs = EDGE.v1;
14361436 difference_type vt = EDGE.v2;
14371437 difference_type vl, vr;
@@ -1442,21 +1442,21 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14421442 break;
14431443 }
14441444
1445- // 面を削除する
1445+ // 髱「繧貞炎髯、縺吶k
14461446 face_type &f1 = faces[ EDGE.fid1 ];
14471447 face_type &f2 = faces[ EDGE.fid2 ];
14481448 f1.flag = false;
14491449 f2.flag = false;
14501450
1451- // 頂点を移動させる
1451+ // 鬆らせ繧堤ァサ蜍輔&縺帙k
14521452 vertices[ EDGE.v1 ] = EDGE.v;
14531453 vertices[ EDGE.v2 ] = EDGE.v;
14541454
1455- // 辺の付け替えを行う
1455+ // 霎コ縺ョ莉倥¢譖ソ縺医r陦後≧
14561456 __mc__::contract_edges( edges, faces, eid[ 0 ], eid[ 1 ], EID, EDGE.fid1, EDGE.fid1 );
14571457 __mc__::contract_edges( edges, faces, eid[ 3 ], eid[ 2 ], EID, EDGE.fid2, EDGE.fid2 );
14581458
1459- // 誤差計算行列を更新する
1459+ // 隱、蟾ョ險育ョ苓。悟?繧呈峩譁ー縺吶k
14601460 matrix_type QQQ = Q[ EDGE.v1 ] + Q[ EDGE.v2 ];
14611461 Q[ EDGE.v1 ] = QQQ;
14621462 Q[ EDGE.v2 ] = QQQ;
@@ -1471,7 +1471,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14711471 {
14721472 if( ite->second == EID )
14731473 {
1474- // 削除する
1474+ // 蜑企勁縺吶k
14751475 ite = vertex_edge_map.erase( ite );
14761476 }
14771477 else
@@ -1492,7 +1492,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
14921492 {
14931493 if( ite->second == EID )
14941494 {
1495- // 削除する
1495+ // 蜑企勁縺吶k
14961496 ite = vertex_edge_map.erase( ite );
14971497 }
14981498 else
@@ -1523,15 +1523,15 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
15231523 }
15241524 }
15251525
1526- // 不要な辺をすべて削除する
1526+ // 荳崎ヲ√↑霎コ繧偵☆縺ケ縺ヲ蜑企勁縺吶k
15271527 __mc__::remove_edge_from_map( vertex_edge_map, vl, eid[ 1 ] );
15281528 __mc__::remove_edge_from_map( vertex_edge_map, vr, eid[ 2 ] );
15291529
1530- // 処理対象の枝からも除外する
1530+ // 蜃ヲ逅?ッセ雎。縺ョ譫昴°繧峨b髯、螟悶☆繧
15311531 __mc__::remove_edge_from_set( edge_map, eid[ 1 ] );
15321532 __mc__::remove_edge_from_set( edge_map, eid[ 2 ] );
15331533
1534- // 変更された辺を再登録する
1534+ // 螟画峩縺輔l縺溯セコ繧貞?逋サ骭イ縺吶k
15351535 for( size_type ii = 0 ; ii < combine_edge.size( ) ; ii++ )
15361536 {
15371537 vertex_edge_map.insert( vertex_edge_map_pair_type( vs, combine_edge[ ii ] ) );
@@ -1539,16 +1539,16 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
15391539 }
15401540 }
15411541
1542- // 各頂点を共有するエッジを更新する
1543- // ただし,統合して領域の端に接した場合は以降の対象から除く
1542+ // 蜷??らせ繧貞?譛峨☆繧九お繝?ず繧呈峩譁ー縺吶k
1543+ // 縺溘□縺暦シ檎オア蜷医@縺ヲ鬆伜沺縺ョ遶ッ縺ォ謗・縺励◆蝣エ蜷医?莉・髯阪?蟇セ雎。縺九i髯、縺
15441544 for( typename std::set< difference_type >::iterator ite = emap.begin( ) ; ite != emap.end( ) ; ++ite )
15451545 {
15461546 __mc__::remove_edge_from_set( edge_map, *ite );
15471547
1548- // 縁に接しているかどうかを判定する
1548+ // 邵√↓謗・縺励※縺?k縺九←縺?°繧貞愛螳壹☆繧
15491549 if( !__mc__::is_sharp_edge( edges[ *ite ] ) )
15501550 {
1551- // 各辺の評価値を更新する
1551+ // 蜷?セコ縺ョ隧穂セ。蛟、繧呈峩譁ー縺吶k
15521552 __mc__::update_edge( vertices, Q, edges[ *ite ], use_optimal_vertex_placement );
15531553 __mc__::apply_penalties( vertex_edge_map, vertices, faces, edges, *ite, threshold_for_triangle_compactness );
15541554 edge_map.insert( *ite );
@@ -1583,7 +1583,7 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
15831583 }
15841584 }
15851585
1586- // 面の接続関係が正しく保たれているかどうかをチェックする
1586+ // 髱「縺ョ謗・邯夐未菫ゅ′豁」縺励¥菫昴◆繧後※縺?k縺九←縺?°繧偵メ繧ァ繝?け縺吶k
15871587 for( size_type i = 1 ; i < faces.size( ) ; i++ )
15881588 {
15891589 const face_type &f = faces[ i ];
@@ -1731,12 +1731,12 @@ inline bool surface_simplification( facet_list< T > &facets, size_t number_of_fa
17311731 return( true );
17321732 }
17331733
1734-/// @brief 3角形パッチの集合から最大の連結領域のみを取り出し,他を全て削除する
1734+/// @brief 3隗貞ス「繝代ャ繝√?髮?粋縺九i譛?螟ァ縺ョ騾」邨宣?伜沺縺ョ縺ソ繧貞叙繧雁?縺暦シ御サ悶r蜈ィ縺ヲ蜑企勁縺吶k
17351735 //!
1736-//! @param[in] facets … 3角形パッチの集合
1737-//! @param[in] eps … 同一頂点と判定される頂点の距離
1736+//! @param[in] facets 窶ヲ 3隗貞ス「繝代ャ繝√?髮?粋
1737+//! @param[in] eps 窶ヲ 蜷御ク?鬆らせ縺ィ蛻、螳壹&繧後k鬆らせ縺ョ霍晞屬
17381738 //!
1739-//! @return 最大領域の抽出に成功したかどうか
1739+//! @return 譛?螟ァ鬆伜沺縺ョ謚ス蜃コ縺ォ謌仙粥縺励◆縺九←縺?°
17401740 //!
17411741 template < class T >
17421742 inline bool maximum_connected_region( facet_list< T > &facets, const double eps = 1.0e-3 )
@@ -1755,14 +1755,14 @@ inline bool maximum_connected_region( facet_list< T > &facets, const double eps
17551755 std::vector< vector_type > vertices;
17561756 std::vector< ivector_type > faces;
17571757
1758- // 頂点と面のリストに変換する
1758+ // 鬆らせ縺ィ髱「縺ョ繝ェ繧ケ繝医↓螟画鋤縺吶k
17591759 if( !convert_to_vertex_face_list( facets, vertices, faces, eps ) )
17601760 {
17611761 return( false );
17621762 }
17631763
17641764
1765- // 頂点と面のテーブルを作成する
1765+ // 鬆らせ縺ィ髱「縺ョ繝??繝悶Ν繧剃ス懈?縺吶k
17661766 typedef std::multimap< size_type, difference_type > vertex_face_map_type;
17671767 typedef typename std::multimap< size_type, difference_type >::iterator iterator;
17681768 typedef std::pair< size_type, difference_type > vertex_face_map_pair_type;
@@ -1785,7 +1785,7 @@ inline bool maximum_connected_region( facet_list< T > &facets, const double eps
17851785 gmap.insert( group_map_type_pair_type( i, i ) );
17861786 }
17871787
1788- // 各面をグルーピングしていく
1788+ // 蜷?擇繧偵げ繝ォ繝シ繝斐Φ繧ー縺励※縺?¥
17891789 for( size_type i = 0 ; i < faces.size( ) ; i++ )
17901790 {
17911791 ivector_type &f = faces[ i ];
@@ -1994,10 +1994,10 @@ inline bool maximum_connected_region( facet_list< T > &facets, const double eps
19941994 }
19951995
19961996 /// @}
1997-// Marching Cubesグループの終わり
1997+// Marching Cubes繧ー繝ォ繝シ繝励?邨ゅo繧
19981998
19991999
2000-// mist名前空間の終わり
2000+// mist蜷榊燕遨コ髢薙?邨ゅo繧
20012001 _MIST_END
20022002
20032003
--- a/mist/marching_cubes.h
+++ b/mist/marching_cubes.h
@@ -1,4 +1,4 @@
1-//
1+?ソ//
22 // Copyright (c) 2003-2011, MIST Project, Nagoya University
33 // All rights reserved.
44 //
@@ -28,7 +28,7 @@
2828
2929 /// @file mist/marching_cubes.h
3030 //!
31-//! @brief Marching Cubes のためのライブラリ
31+//! @brief Marching Cubes 縺ョ縺溘a縺ョ繝ゥ繧、繝悶Λ繝ェ
3232 //!
3333
3434 #ifndef __INCLUDE_MARCHING_CUBES_H__
@@ -56,16 +56,16 @@
5656 #endif
5757
5858
59-// mist名前空間の始まり
59+// mist蜷榊燕遨コ髢薙?蟋九∪繧
6060 _MIST_BEGIN
6161
6262 namespace __mc__
6363 {
64- /// @brief cubeの頂点ノードを扱うためのクラス( marching_cubes クラスの内部でのみ利用 )
64+ /// @brief cube縺ョ鬆らせ繝弱?繝峨r謇ア縺?◆繧√?繧ッ繝ゥ繧ケ? marching_cubes 繧ッ繝ゥ繧ケ縺ョ蜀?Κ縺ァ縺ョ縺ソ蛻ゥ逕ィ ?
6565 //!
66- //! @param V … 頂点の値の型
67- //! @param P … 頂点の座標の型
68- //! @param N … 頂点の法線ベクトルの型
66+ //! @param V 窶ヲ 鬆らせ縺ョ蛟、縺ョ蝙
67+ //! @param P 窶ヲ 鬆らせ縺ョ蠎ァ讓吶?蝙
68+ //! @param N 窶ヲ 鬆らせ縺ョ豕慕キ壹?繧ッ繝医Ν縺ョ蝙
6969 //!
7070 template< class V, class P >
7171 struct node
@@ -81,10 +81,10 @@ namespace __mc__
8181 node( const value_type &vv, const point_type &pp, const point_type &nn ) : v( vv ), p( pp ), n( nn ) { }
8282 };
8383
84- /// @brief 等値面生成結果から3角形パッチの数を計算
84+ /// @brief 遲牙?、髱「逕滓?邨先棡縺九i3隗貞ス「繝代ャ繝√?謨ー繧定ィ育ョ
8585 //!
86- //! @param[in] sv … サイズ集合(等値面生成結果の1つ)
87- //! @return 3角形パッチ数
86+ //! @param[in] sv 窶ヲ 繧オ繧、繧コ髮?粋?育ュ牙?、髱「逕滓?邨先棡縺ョ1縺、?
87+ //! @return 3隗貞ス「繝代ャ繝∵焚
8888 //!
8989 template< typename T >
9090 inline size_t number_of_triangles( const std::vector< T > &sv )
@@ -307,70 +307,70 @@ namespace __mc__
307307
308308 //! @addtogroup marching_cubes_group Marching Cubes
309309 //!
310-//! @code 次のヘッダをインクルードする
310+//! @code 谺。縺ョ繝倥ャ繝?繧偵う繝ウ繧ッ繝ォ繝シ繝峨☆繧
311311 //! #include <mist/marching_cubes.h>
312312 //! @endcode
313313 //!
314314 //! @{
315315
316-/// @brief ボリュームデータから等値面を生成するためのクラス
316+/// @brief 繝懊Μ繝・繝シ繝?繝??繧ソ縺九i遲牙?、髱「繧堤函謌舌☆繧九◆繧√?繧ッ繝ゥ繧ケ
317317 //!
318-//! 区間の集合から2分木を構築し、通常O(n)かかる探索時間をO(log_2(n))に削減する.
319-//! 線分や面分の重なり判定などに有効.
318+//! 蛹コ髢薙?髮?粋縺九i2蛻?惠繧呈ァ狗ッ峨@縲??壼ククO(n)縺九°繧区爾邏「譎る俣繧丹(log_2(n))縺ォ蜑頑ク帙☆繧具シ
319+//! 邱壼?繧?擇蛻??驥阪↑繧雁愛螳壹↑縺ゥ縺ォ譛牙柑?
320320 //!
321-//! @attention mist::arra3< 算術型 > 型を入力とする.
322-//! @attention ポリゴンの各頂点座標( mist::vector3< 算術型 >型 ),各頂点の法線ベクトル( mist::vector3< 算術型 > 型 ),各ポリゴンの頂点数( size_t 型 )の3つのstd::vectorを等値面生成結果の出力とする.
323-//! @attention ポリゴンの各頂点座標と各頂点の法線ベクトルは OpenGL の頂点配列として利用可能( GL_POLYGON や GL_TRIANGLE_FAN 等に使える).
321+//! @attention mist::arra3< 邂苓。灘梛 > 蝙九r蜈・蜉帙→縺吶k?
322+//! @attention 繝昴Μ繧エ繝ウ縺ョ蜷??らせ蠎ァ讓呻シ mist::vector3< 邂苓。灘梛 >蝙 ?会シ悟推鬆らせ縺ョ豕慕キ壹?繧ッ繝医Ν? mist::vector3< 邂苓。灘梛 > 蝙 ?会シ悟推繝昴Μ繧エ繝ウ縺ョ鬆らせ謨ー? size_t 蝙 ?峨?3縺、縺ョstd::vector繧堤ュ牙?、髱「逕滓?邨先棡縺ョ蜃コ蜉帙→縺吶k?
323+//! @attention 繝昴Μ繧エ繝ウ縺ョ蜷??らせ蠎ァ讓吶→蜷??らせ縺ョ豕慕キ壹?繧ッ繝医Ν縺ッ OpenGL 縺ョ鬆らせ驟榊?縺ィ縺励※蛻ゥ逕ィ蜿ッ閭ス? GL_POLYGON 繧 GL_TRIANGLE_FAN 遲峨↓菴ソ縺医k?会シ
324324 //!
325-//! @param ARRAY3 … ボリュームデータの型
326-//! @param P … 等値面ポリゴンの頂点座標の要素の型
325+//! @param ARRAY3 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ蝙
326+//! @param P 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?隕∫エ?縺ョ蝙
327327 //!
328-//! @code 使用例
329-//! // ボリュームデータの用意
328+//! @code 菴ソ逕ィ萓
329+//! // 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ逕ィ諢
330330 //! mist::array3< int > va;
331331 //! /*
332-//! * ボリュームデータの作成処理
332+//! * 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ菴懈?蜃ヲ逅
333333 //! */
334334 //!
335-//! // 等値面生成結果を格納するためのオブジェクトの準備
336-//! std::vector< mist::vector3< double > > pv; // double 型の要素を持つ頂点座標の集合
337-//! std::vector< mist::vector3< double > > nv; // double 型の要素を持つ法線ベクトルの集合
338-//! std::vector< size_t > sv; // 各ポリゴンのサイズ(頂点数)の集合
335+//! // 遲牙?、髱「逕滓?邨先棡繧呈?シ邏阪☆繧九◆繧√?繧ェ繝悶ず繧ァ繧ッ繝医?貅門y
336+//! std::vector< mist::vector3< double > > pv; // double 蝙九?隕∫エ?繧呈戟縺、鬆らせ蠎ァ讓吶?髮?粋
337+//! std::vector< mist::vector3< double > > nv; // double 蝙九?隕∫エ?繧呈戟縺、豕慕キ壹?繧ッ繝医Ν縺ョ髮?粋
338+//! std::vector< size_t > sv; // 蜷??繝ェ繧エ繝ウ縺ョ繧オ繧、繧コ?磯?らせ謨ー?峨?髮?粋
339339 //!
340-//! // ボリュームデータの要素が int 型で,
341-//! // 得られる等値面ポリゴンの頂点座標の要素と法線ベクトルが double 型の
342-//! // marching_cubes オブジェクトを作成
340+//! // 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ隕∫エ?縺 int 蝙九〒?
341+//! // 蠕励i繧後k遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?隕∫エ?縺ィ豕慕キ壹?繧ッ繝医Ν縺 double 蝙九?
342+//! // marching_cubes 繧ェ繝悶ず繧ァ繧ッ繝医r菴懈?
343343 //! mist::marching_cubes< mist::array3< int >, double > mcs;
344344 //!
345-//! // パラメータ設定( 頂点座標のオフセット値,拡大率,等値面生成のための閾値 )
345+//! // 繝代Λ繝。繝シ繧ソ險ュ螳夲シ 鬆らせ蠎ァ讓吶?繧ェ繝輔そ繝?ヨ蛟、?梧僑螟ァ邇?シ檎ュ牙?、髱「逕滓?縺ョ縺溘a縺ョ髢セ蛟、 ?
346346 //! mcs.offset( 0.0, 0.0, 0.0 );
347347 //! mcs.scale( 1.0, 1.0, 1.0 );
348348 //! mcs.threshold( 0.0 );
349349 //!
350-//! // 上記のパラメータで va から等値面ポリゴンを生成し,結果を pv, nv, sv に格納
350+//! // 荳願ィ倥?繝代Λ繝。繝シ繧ソ縺ァ va 縺九i遲牙?、髱「繝昴Μ繧エ繝ウ繧堤函謌舌@?檎オ先棡繧 pv, nv, sv 縺ォ譬シ邏
351351 //! mcs.isosurfacing( va, pv, nv, sv );
352352 //! @endcode
353353 //!
354-template< typename ARRAY3, typename P = double >
354+template< typename ARRAY3, typename VT = double >
355355 class marching_cubes
356356 {
357357 public:
358- typedef ARRAY3 image_type; ///< @brief ボリュームデータの要素の型
359- typedef typename image_type::value_type value_type; ///< @brief ボリュームデータの要素の型
360- typedef vector3< short > ivector_type; ///< @brief cube の頂点座標の型
361- typedef vector3< P > vector_type; ///< @brief ポリゴンの頂点座標の型
362- typedef typename vector_type::value_type float_type; ///< @brief ポリゴンの頂点の法汚染ベクトルの型
363- typedef size_t size_type; ///< @brief 各ポリゴンのサイズ(頂点数)の型
364- typedef ptrdiff_t difference_type; ///< @brief 各ポリゴンのサイズ(頂点数)の型
365-
366- typedef std::vector< vector_type > vector_list_type; ///< @brief 3次元ベクトルリストを扱う型
367- typedef __mc__::node< value_type, ivector_type > node_type; ///< @brief cube の頂点情報を保持する型
358+ typedef ARRAY3 image_type; ///< @brief 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ隕∫エ?縺ョ蝙
359+ typedef typename image_type::value_type value_type; ///< @brief 繝懊Μ繝・繝シ繝?繝??繧ソ縺ョ隕∫エ?縺ョ蝙
360+ typedef vector3< short > ivector_type; ///< @brief cube 縺ョ鬆らせ蠎ァ讓吶?蝙
361+ typedef vector3< VT > vector_type; ///< @brief 繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?蝙
362+ typedef typename vector_type::value_type float_type; ///< @brief 繝昴Μ繧エ繝ウ縺ョ鬆らせ縺ョ豕墓ア壽沒繝吶け繝医Ν縺ョ蝙
363+ typedef size_t size_type; ///< @brief 蜷??繝ェ繧エ繝ウ縺ョ繧オ繧、繧コ?磯?らせ謨ー?峨?蝙
364+ typedef ptrdiff_t difference_type; ///< @brief 蜷??繝ェ繧エ繝ウ縺ョ繧オ繧、繧コ?磯?らせ謨ー?峨?蝙
365+
366+ typedef std::vector< vector_type > vector_list_type; ///< @brief 3谺。蜈??繧ッ繝医Ν繝ェ繧ケ繝医r謇ア縺?梛
367+ typedef __mc__::node< value_type, ivector_type > node_type; ///< @brief cube 縺ョ鬆らせ諠??ア繧剃ソ晄戟縺吶k蝙
368368 typedef size_t ( * func_type )( const node_type *, vector_type *, vector_type *,
369- size_type *, float_type, const vector_type &, const vector_type & ); ///< @brief cube 単位での等値面生成関数の型
369+ size_type *, float_type, const vector_type &, const vector_type & ); ///< @brief cube 蜊倅ス阪〒縺ョ遲牙?、髱「逕滓?髢「謨ー縺ョ蝙
370370
371- typedef tagged_section< value_type, size_type > section_type; ///< @brief Interval-tree 用いる区間の型
372- typedef typename section_type::min_max_type min_max_type; ///< @brief 区間の最大値,最小値の型
373- typedef typename section_type::tag_type tag_type; ///< @brief 区間のタグ情報の型
371+ typedef tagged_section< value_type, size_type > section_type; ///< @brief Interval-tree 逕ィ縺?k蛹コ髢薙?蝙
372+ typedef typename section_type::min_max_type min_max_type; ///< @brief 蛹コ髢薙?譛?螟ァ蛟、?梧怙蟆丞?、縺ョ蝙
373+ typedef typename section_type::tag_type tag_type; ///< @brief 蛹コ髢薙?繧ソ繧ー諠??ア縺ョ蝙
374374
375375 private:
376376 func_type fa_[ 256 ];
@@ -388,73 +388,73 @@ private:
388388 vector_type o_;
389389 vector_type s_;
390390
391-public: // コンストラクタとプロパティ関連
392- /// @brief コンストラクタ
391+public: // 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ィ繝励Ο繝代ユ繧」髢「騾」
392+ /// @brief 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ
393393 marching_cubes( ) : is_preprocessed_( false ), th_( 0 ), o_( 0, 0, 0 ), s_( 1, 1, 1 )
394394 {
395395 init_function_array( );
396396 }
397397
398- /// @brief デストラクタ
398+ /// @brief 繝?せ繝医Λ繧ッ繧ソ
399399 ~marching_cubes( )
400400 {
401401 }
402402
403- /// @brief 前処理されたデータの有無を返す
403+ /// @brief 蜑榊?逅?&繧後◆繝??繧ソ縺ョ譛臥┌繧定ソ斐☆
404404 //!
405- //! @return … 前処理が終了していれば真を返す
405+ //! @return 窶ヲ 蜑榊?逅?′邨ゆコ?@縺ヲ縺?l縺ー逵溘r霑斐☆
406406 //!
407407 bool is_preprocessed( ) const { return is_preprocessed_; }
408408
409- /// @brief しきい値パラメータを設定
409+ /// @brief 縺励″縺??、繝代Λ繝。繝シ繧ソ繧定ィュ螳
410410 //!
411- //! @param[in] th … 閾値
411+ //! @param[in] th 窶ヲ 髢セ蛟、
412412 //!
413413 void threshold( float_type th ) { th_ = th; }
414414
415- /// @brief しきい値パラメータを取得設定
415+ /// @brief 縺励″縺??、繝代Λ繝。繝シ繧ソ繧貞叙蠕苓ィュ螳
416416 //!
417- //! @return しきい値を取得する
417+ //! @return 縺励″縺??、繧貞叙蠕励☆繧
418418 //!
419419 float_type threshold( ) const { return( th_ ); }
420420
421- /// @brief オフセットパラメータを設定
421+ /// @brief 繧ェ繝輔そ繝?ヨ繝代Λ繝。繝シ繧ソ繧定ィュ螳
422422 //!
423- //! @param[in] ox … x 方向オフセット
424- //! @param[in] oy … y 方向オフセット
425- //! @param[in] oz … z 方向オフセット
423+ //! @param[in] ox 窶ヲ x 譁ケ蜷代が繝輔そ繝?ヨ
424+ //! @param[in] oy 窶ヲ y 譁ケ蜷代が繝輔そ繝?ヨ
425+ //! @param[in] oz 窶ヲ z 譁ケ蜷代が繝輔そ繝?ヨ
426426 //!
427427 void offset( float_type ox, float_type oy, float_type oz ) { o_.x = ox; o_.y = oy; o_.z = oz; }
428428
429- /// @brief オフセットパラメータを取得設定
429+ /// @brief 繧ェ繝輔そ繝?ヨ繝代Λ繝。繝シ繧ソ繧貞叙蠕苓ィュ螳
430430 //!
431- //! @return オフセット値を取得する
431+ //! @return 繧ェ繝輔そ繝?ヨ蛟、繧貞叙蠕励☆繧
432432 //!
433433 vector_type offset( ) const { return( o_ ); }
434434
435- /// @brief スケールパラメータを設定
435+ /// @brief 繧ケ繧ア繝シ繝ォ繝代Λ繝。繝シ繧ソ繧定ィュ螳
436436 //!
437- //! @param[in] sx … x 方向スケール
438- //! @param[in] sy … y 方向スケール
439- //! @param[in] sz … z 方向スケール
437+ //! @param[in] sx 窶ヲ x 譁ケ蜷代せ繧ア繝シ繝ォ
438+ //! @param[in] sy 窶ヲ y 譁ケ蜷代せ繧ア繝シ繝ォ
439+ //! @param[in] sz 窶ヲ z 譁ケ蜷代せ繧ア繝シ繝ォ
440440 //!
441441 void scale( float_type sx, float_type sy, float_type sz ) { s_.x = sx; s_.y = sy; s_.z = sz; }
442442
443- /// @brief スケールパラメータを取得設定
443+ /// @brief 繧ケ繧ア繝シ繝ォ繝代Λ繝。繝シ繧ソ繧貞叙蠕苓ィュ螳
444444 //!
445- //! @return スケール値を取得する
445+ //! @return 繧ケ繧ア繝シ繝ォ蛟、繧貞叙蠕励☆繧
446446 //!
447447 vector_type scale( ) const { return( s_ ); }
448448
449449
450-public: // 操作関数
450+public: // 謫堺ス憺未謨ー
451451
452- /// @brief 等値面生成(前処理の有無で等値面生成処理を分ける)
452+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅??譛臥┌縺ァ遲牙?、髱「逕滓?蜃ヲ逅?r蛻?¢繧具シ
453453 //!
454- //! @param[in] va … ボリュームデータ
455- //! @param[out] pv … 等値面ポリゴンの頂点座標の集合
456- //! @param[out] nv … 等値面ポリゴンの頂点の法線ベクトルの集合
457- //! @param[out] sv … 等値面ポリゴンのサイズの集合
454+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
455+ //! @param[out] pv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?髮?粋
456+ //! @param[out] nv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ縺ョ豕慕キ壹?繧ッ繝医Ν縺ョ髮?粋
457+ //! @param[out] sv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ繧オ繧、繧コ縺ョ髮?粋
458458 //!
459459 void isosurfacing( const image_type &va, vector_list_type &pv, vector_list_type &nv, std::vector< size_type > &sv )
460460 {
@@ -468,10 +468,10 @@ public: //
468468 }
469469 }
470470
471- /// @brief 等値面生成(前処理の有無で等値面生成処理を分ける)
471+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅??譛臥┌縺ァ遲牙?、髱「逕滓?蜃ヲ逅?r蛻?¢繧具シ
472472 //!
473- //! @param[in] va … ボリュームデータ
474- //! @param[out] facets … 等値面ポリゴンの集合
473+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
474+ //! @param[out] facets 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ髮?粋
475475 //!
476476 template < class T >
477477 void isosurfacing( const image_type &va, facet_list< T > &facets )
@@ -486,12 +486,12 @@ public: //
486486 }
487487 }
488488
489- /// @brief 等値面生成(前処理有り)
489+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅?怏繧奇シ
490490 //!
491- //! @param[in] va … ボリュームデータ
492- //! @param[out] pv … 等値面ポリゴンの頂点座標の集合
493- //! @param[out] nv … 等値面ポリゴンの頂点の法線ベクトルの集合
494- //! @param[out] sv … 等値面ポリゴンのサイズの集合
491+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
492+ //! @param[out] pv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?髮?粋
493+ //! @param[out] nv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ縺ョ豕慕キ壹?繧ッ繝医Ν縺ョ髮?粋
494+ //! @param[out] sv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ繧オ繧、繧コ縺ョ髮?粋
495495 //!
496496 void isosurfacing_with_preprocess( const image_type &va, vector_list_type &pv, vector_list_type &nv, std::vector< size_type > &sv )
497497 {
@@ -515,12 +515,12 @@ public: //
515515 }
516516 }
517517
518- /// @brief 等値面生成(前処理無し)
518+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅?┌縺暦シ
519519 //!
520- //! @param[in] va … ボリュームデータ
521- //! @param[out] pv … 等値面ポリゴンの頂点座標の集合
522- //! @param[out] nv … 等値面ポリゴンの頂点の法線ベクトルの集合
523- //! @param[out] sv … 等値面ポリゴンのサイズの集合
520+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
521+ //! @param[out] pv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ蠎ァ讓吶?髮?粋
522+ //! @param[out] nv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ鬆らせ縺ョ豕慕キ壹?繧ッ繝医Ν縺ョ髮?粋
523+ //! @param[out] sv 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ繧オ繧、繧コ縺ョ髮?粋
524524 //!
525525 void isosurfacing_without_preprocess( const image_type &va, vector_list_type &pv, vector_list_type &nv, std::vector< size_type > &sv )
526526 {
@@ -547,10 +547,10 @@ public: //
547547 }
548548
549549
550- /// @brief 等値面生成(前処理有り)
550+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅?怏繧奇シ
551551 //!
552- //! @param[in] va … ボリュームデータ
553- //! @param[out] facets … 等値面ポリゴンの集合
552+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
553+ //! @param[out] facets 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ髮?粋
554554 //!
555555 template < class T >
556556 void isosurfacing_with_preprocess( const image_type &va, facet_list< T > &facets )
@@ -574,10 +574,10 @@ public: //
574574 }
575575 }
576576
577- /// @brief 等値面生成(前処理無し)
577+ /// @brief 遲牙?、髱「逕滓??亥燕蜃ヲ逅?┌縺暦シ
578578 //!
579- //! @param[in] va … ボリュームデータ
580- //! @param[out] facets … 等値面ポリゴンの集合
579+ //! @param[in] va 窶ヲ 繝懊Μ繝・繝シ繝?繝??繧ソ
580+ //! @param[out] facets 窶ヲ 遲牙?、髱「繝昴Μ繧エ繝ウ縺ョ髮?粋
581581 //!
582582 template < class T >
583583 void isosurfacing_without_preprocess( const image_type &va, facet_list< T > &facets )
@@ -603,9 +603,9 @@ public: //
603603 }
604604 }
605605
606- /// @brief 前処理(Interval-tree の構築や各格子点の法線ベクトルの計算など)
606+ /// @brief 蜑榊?逅?シ?nterval-tree 縺ョ讒狗ッ峨d蜷??シ蟄千せ縺ョ豕慕キ壹?繧ッ繝医Ν縺ョ險育ョ励↑縺ゥ?
607607 //!
608- //! @param[in] va … 等値面生成処理の対象としているボリュームデータ
608+ //! @param[in] va 窶ヲ 遲牙?、髱「逕滓?蜃ヲ逅??蟇セ雎。縺ィ縺励※縺?k繝懊Μ繝・繝シ繝?繝??繧ソ
609609 //!
610610 bool preprocess( const image_type &va )
611611 {
@@ -626,7 +626,7 @@ public: //
626626 return( is_preprocessed_ );
627627 }
628628
629- /// @brief 前処理で構築されたデータを破棄
629+ /// @brief 蜑榊?逅?〒讒狗ッ峨&繧後◆繝??繧ソ繧堤?エ譽
630630 void de_preprocess( )
631631 {
632632 destruct_point_array( );
@@ -755,7 +755,7 @@ private:
755755 if( N.length( ) > 0.0 )
756756 {
757757 N = N.unit( );
758- // 点の並びが反時計回りになるようにする.
758+ // 轤ケ縺ョ荳ヲ縺ウ縺悟渚譎りィ亥屓繧翫↓縺ェ繧九h縺?↓縺吶k?
759759 if( N.inner( ( p2 - p1 ).outer( p3 - p1 ) ) < 0 )
760760 {
761761 facets.push_back( typename facet_list< T >::facet_type( N, p1, p3, p2 ) );
@@ -1381,9 +1381,9 @@ __MCFUNC12__( f150, y, 2, 0, x, 2, 3, z, 2, 6, x, 1, 0, z, 1, 5, y, 1, 3, z, 4,
13811381
13821382
13831383 /// @}
1384-// Marching Cubesグループの終わり
1384+// Marching Cubes繧ー繝ォ繝シ繝励?邨ゅo繧
13851385
1386-// mist名前空間の終わり
1386+// mist蜷榊燕遨コ髢薙?邨ゅo繧
13871387 _MIST_END
13881388
13891389 #endif // #ifndef __INCLUDE_MARCHING_CUBES_H__