Spr1の使い方/マニュアル

Spr::Vec3f ( Spr::TVec3<float> ) / Spr::Vec3d ( Spr::TVec3<double> )

Spr::Vec3f vec(x, y, z); //初期化。
Spr::Vec3f vec= Spr::Vec3f(x, y, z); //上と同じ意味。
vec[0]= x2; //各要素に代入。添え字は0,1,2。
Spr::Vec3f vec2= vec+Spr::Vec3f(x, y, z); //足し算とか。

Spr::Affinef ( Spr::TAffine<float> )

Spr::Affinef trn= Spr::Affinef::Trn(x, y, z); //平行移動を表すAffine行列。
Spr::Affinef rot= Spr::Affinef::Rot(rad, 'x'); //X軸周りの回転を表すAffine行列。
Spr::Affinef aff= trn*rot; //Affine行列同士の掛け算。
aff.Pos()= Spr::Vec3f(x, y, z); //平行移動成分に代入。
aff[0][0]= 1.0; //各要素に代入。添え字は0,1,2,3。
Spr::Vec3f vec1= …;
Spr::Vec3f vec2= aff*vec1; //Affine行列×3次ベクトル。

Spr::UTRef<T>

Spr::SGFrame

  • http://springhead.info/src/html/ja/classSpr_1_1SGFrame.html
  • シーングラフのFrameに対応。
  • 仮想世界の中の「モノ」を表す。入れ子にして、モノをグループ化したりもできる。
  • SetPosture() / GetPosture()
    • 親フレームに対する相対的な姿勢(位置+角度)をAffinefで設定/取得する。
    • PHSolidを使っているときは、SetPosture()を使ってはいけない。

Spr::PHSolid

  • http://springhead.info/src/html/ja/classSpr_1_1PHSolid.html
  • シーングラフのSolidに対応。
  • 特定のFrameの物理的な性質(質量、速度など)を表す。
  • SetVelocity() / GetVelocity()
    • 質量中心の速度をVec3dで設定/取得。
  • AddForce()
    • 質量中心にVec3dで指定された力を加える。
  • 他にも色々。