- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

データ構造 | 関数
ポリゴンを扱うクラス

## データ構造
class | mist::facet< T >
| ポリゴン（三角形）を扱うクラス [詳細]
class | mist::facet_list< T >
| ポリゴン（三角形）の集合を扱うクラス [詳細]

## 関数
template<class T >
std::ostream & | mist::operator<< (std::ostream &out, const facet< T > &f)
| 指定されたストリームに，ポリゴンオブジェクトを整形して出力する
template<class T , class T1 , class T2 >
bool | mist::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)
| 3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する
template<class T >
bool | mist::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)
| 3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する
template<class T >
bool | mist::maximum_connected_region (facet_list< T > &facets, const double eps=1.0e-3)
| 3角形パッチの集合から最大の連結領域のみを取り出し，他を全て削除する

## 説明

次のヘッダをインクルードする
#include <mist/facet.h>

## 関数

template<class T , class T1 , class T2 >

bool mist::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`
| ) |  |
| inline

3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する

共通して使用する頂点を全てまとめた頂点集合を作成する．

引数

  [in] | facets | … 3角形パッチの集合
  [in] | vertices | … 頂点集合
  [in] | faces | … 三角形パッチを構成するインデックス集合
  [in] | eps | … 同一頂点と判定される頂点の距離

戻り値
  頂点集合とインデックス集合の作成に成功したかどうか

参照先 mist::array2< T, Allocator >::clear(), mist::vector3< T >::inner(), mist::facet< T >::normal, mist::facet< T >::p1, mist::facet< T >::p2, と mist::facet< T >::p3.

参照元 mist::maximum_connected_region(), と mist::surface_simplification().

template<class T >

bool mist::maximum_connected_region | ( | facet_list< T > & | facets,
|  | const double | eps = `1.0e-3`
| ) |  |
| inline

3角形パッチの集合から最大の連結領域のみを取り出し，他を全て削除する

引数

  [in] | facets | … 3角形パッチの集合
  [in] | eps | … 同一頂点と判定される頂点の距離

戻り値
  最大領域の抽出に成功したかどうか

参照先 mist::convert_to_vertex_face_list().

template<class T >

std::ostream& mist::operator<< | ( | std::ostream & | out,
|  | const facet< T > & | f
| ) |  |
| inline

指定されたストリームに，ポリゴンオブジェクトを整形して出力する

引数

  [in,out] | out | … 入力と出力を行うストリーム
  [in] | f | … ポリゴンオブジェクト

戻り値
  入力されたストリーム

出力例
( 1, 2, 3, 4 )
template<class T >

bool mist::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`
| ) |  |
| inline

3角形パッチの集合から頂点集合と三角形パッチを構成するインデックス集合に変換する

共通して使用する頂点を全てまとめた頂点集合を作成する．

- 参考文献
  - Michael Garland and Paul S. Heckbert, "Surface Simplification Using Quadric Error Metrics," Proceedings of SIGGRAPH 97, pp.209-216, 1997
  - 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

引数

  [in] | facets | … 3角形パッチの集合
  [in] | number_of_facets | … 削減後の3角形パッチ数
  [in] | use_optimal_vertex_placement | … 辺削除後に最適な位置に頂点を移動させるかどうか（有効にすると場合によってはきれいなメッシュが得られない場合あり）
  [in] | threshold_for_triangle_compactness | … 辺削除後に発生する尖った三角形を抑制する（0〜1の間を設定）
  [in] | eps | … 同一頂点と判定される頂点の距離

戻り値
  3角形パッチす数の削減に成功したかどうか

参照先 mist::convert_to_vertex_face_list().