完全なシミュレーション昇降プロセス、初期状態 - >から腕 - >ダウンスリング - >垂直リフティング - >水平回転 - >オブジェクトを下げる - >収縮スリング。
OSG :: ref_ptr <OSG ::ノード> createSimple() { OSG :: ref_ptr <OSG ::のGeode>ジオード= 新しいOSG ::のGeode。 OSG :: ref_ptr <OSG ::幾何学>地理= 新しいOSG ::ジオメトリ。 // 申请一些顶点 OSG :: ref_ptr <OSG :: Vec3Array> VERS = 新しいOSG :: Vec3Array。 地理 - > setVertexArray(VERS。取得()); #ifの 1個の GEO - > addPrimitiveSet(新しい OSG :: DrawArrays(OSG :: PrimitiveSet :: LINE_LOOP、0、4))。// 创建一个线圈 の#else 地理 - > addPrimitiveSet(新:: DrawArrays OSG(OSGは:: ::プリミティブをクワッド- 、0、4。 )); // 作成正方形 #endifの // 設けられた頂点 のVers>一back(OSG :: Vec3( - 15、3.0、 - 15 ))。 VERS - >一back(OSG :: Vec3(15、3.0、 - 15 )); VERS - >一back(OSG :: Vec3(15、3.0、15 )); VERS - >一back(OSG :: Vec3( - 15、3.0、15 )); // アプリケーション色 OSG :: ref_ptr <OSG :: Vec4Array>色= 新しいOSG :: Vec4Array()。 色 - >一back(OSG :: Vec4(1.0、0.0、0.0、0.5 ))。 色 - >一back(OSG :: Vec4(0.0、1.0、0.0、0.5 ))。 色 - >一back(OSG :: Vec4(0.0、0.0、1.0、0.5 ))。 色 - >一back(OSG :: Vec4(1.0、1.0、0.0、0.5 ))。 //色を設定 ジオ> setColorArray(色は。GET ()); GEO - > setColorBinding(OSG幾何学:: :: :: BIND_PER_VERTEXをAttributeBinding); // 色のバインド設定 // 明るい画面当分の間、通常の設定を :: ref_ptr OSG <OSG :: Vec3Arrayがある> NORM = 新しい新しいOSG Vec3Arrayが::で、 GEO - > setNormalArray(NORM); GEO - > setNormalBinding(OSG AttributeBinding :: :: :: BIND_OVERALLジオメトリ); NORM - >一back(OSG: :Vec3(0.0 - 1.0、0.0 )); // オープン透明 ジオ> getOrCreateStateSet() - > SETMODE(GL_BLEND、OSG :: ::がstateAttribute ON); //设置线宽 OSG :: ref_ptr <OSG ::のLineWidth> =ワット新しいOSG ::のLineWidth。 W - >にsetWidth(5.0 )。 地理 - > getOrCreateStateSet() - > setAttributeAndModes(ワット得る;()、OSG ::がstateAttribute :: ON) ジオード - > addDrawable(GEO 取得()); リターンジオード。 }
//代码参考ます。https://blog.csdn.net/wb175208/article/details/80513775