問題タブ [coin3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
texture-mapping - Open Inventor で直方体の面全体にテクスチャが引き伸ばされる
長方形の立方体にテクスチャを適用する小さなスクリプトを作成しようとしています。これを実現するために、シーングラフを実行し、SoIndexedFaceSet ノードを見つけたら、その前に SoTexture2 ノードを挿入します。画像ファイルを SoTexture2 ノードに配置しました。私が直面している問題は、テクスチャが YZ 平面の 2 つの面 (face1 と face2 など) に正しく適用されていることですが、他の 4 つの面では、2 つの面の境界でテクスチャが引き伸ばされるだけです (1および 2)。
こんな感じです。
正面は本来あるべき姿ですが、ご覧のとおり、他の 2 つの面では、正面の角の値を推定しているだけです。なぜこれが起こっているのか、これを回避する方法はありますか?
c++ - OpenCascade で STEP ファイルをインポートし、coin3d で正しい色で表示するにはどうすればよいですか?
OpenCascade を使用して STEP ファイルをインポートし、Open Inventor 互換の coin3d ライブラリを使用して画面に表示しようとしています。残念ながら、私は常に色が機能しているか、ジオメトリが正しいかのいずれかになります。正しい色でパーツを正しく配置しても機能しないようです。
OpenCascadeフォーラムで見つけたように、複数の形状がある場合に備えて複合形状を作成しようとしましたが、違いはありません。
一般に、ネットで見つかった単純な STEP ファイルは正常にインポートされますが (パーツが 1 つしかないと仮定します)、ソリッド作品からエクスポートされたより複雑な複数パーツのオブジェクトは、正しいジオメトリまたは正しい色のいずれかで提供されますが、両方が提供されることはありません。
問題の部分はここにあります:
IsFree(aLabel) を使用すると、すべてのジオメトリが正しくなりますが、インポートされる色はほとんどありません。
if (!Assembly->IsFree(aLabel) ) を使用してそれを否定すると、インポートされたジオメトリはいたるところにあり、回転、変換されますが、正しい色になります。
ifを完全に削除すると、両方の状況がアクティブになり、すべてが二重にインポートされます.1回目は正しいジオで色なし、2回目はどこかで翻訳および回転され、正しい色でインポートされます.
私の考えでは、変換された/回転した色のオブジェクトには、変換された場所で無視される変換/回転情報があるかもしれませんが、形状の Transformation() 情報を出力すると、場所と回転はすべて 0 になります。
インポートされた形状をポリゴン オブジェクトに実際に変換して表示するコードの残りの部分は次のとおりです。
私は何を間違っていますか?オブジェクトが 2 倍になっているのはなぜですか?
c++ - Coin3d/OpenInventor を使用して任意の数のエンジン出力を追加する方法
Coin3d ライブラリ (OpenInventor と同じコード ベースに基づく) を使用して大規模なデータ セットを視覚化するアプリケーションを作成しています。私はしばらくこの問題に取り組んできましたが、満足のいく解決策を見つけられませんでした。
データは可変数の「ストリップ」でSoEngine
提供されます。視覚化するデータを収集し、それを多数の出力に送信し、SoQuadMesh
レンダリングのために各ストリップに接続する を作成しました。
ここでエンジンを使用している理由は、データがデータ ソースからフェッチされ、ユーザーがナビゲートすると視覚化が更新されるためです。つまり、ユーザーがズームインおよびズームアウトすると、画像の解像度が変更されます (Google マップによる)。データはバックグラウンド スレッドで取得され (1 ~ 2 秒かかります)、エンジン出力の更新に使用されます。
問題は、任意の数の を作成する方法がないように見えることです。SoEngineOutput
それらはすべて、SO_ENGINE_ADD_OUTPUT
マクロを使用してエンジンに追加する前に、クラス定義で宣言する必要があります。
Coin のソース コードを分析することで、マクロの背後にあるコードをSO_ENGINE_ADD_OUTPUT
わずかに変更した形式で実装することで、これを回避しようとしましたが、最終的には失敗しました (または神経を失いSoEngine::outputdata
ました)。内部の実装全体の詳細を知らずに、再初期化の結果を危険にさらしたくありませんでした。
私が現在取り組んでいる解決策は、ヘッダーのように、すべての出力を可能な最大値まで宣言することです。
次に、Engine コンストラクターで、各出力をエンジンの出力リストに追加します。
これは機能しますが、 Engine クラスが 100 に設定されている場合、約 20 秒インスタンス化されるとパフォーマンスが低下します。MAX_NUM_SAMPLE_SETS
これは 600 の宣言を意味しSoEngineOutputs
ます。MAX_NUM_SAMPLE_SETS = 100
は可能な限り最大です - ほとんどの視覚化ではこれよりもはるかに少ない (10 未満) 必要があるため、実行時に出力の数を決定できるようにしたいと考えています。
だから私の質問は:
SoEngineOutput
実行時に Coin3d に任意の数の s を追加する方法はありますか?- `SoEngineOutput の宣言の数がこれほど多いのはなぜですか? (これは、別の質問を作成する一般的な C++ の質問であるか、Coin3d の問題である可能性があります)
- これに対する解決策を実装するためのより良い方法はありますか?
c++ - 静的メソッドからオブジェクトのプロパティにアクセスする
静的コールバック関数を必要とする外部ライブラリに対してプログラミングしています。コールバックを静的として宣言しましたが、このコールバックで変更したいオブジェクト プロパティへのアクセスが失われました。
現在のオブジェクト プロパティにアクセスしながら静的コールバックを作成する方法はありますか? 私が使用するライブラリは openInventor ライブラリです。コールバックの接続は、次のコードで行われます。
graphics - Open Inventor 3D Graphics API で線を描画するにはどうすればよいですか?
Open Inventor 3D Graphics API は初めてで、指定された 3D 座標との間に線を引きたいだけです。最初の点が 0,0,0 で、2 番目の点が 1,1,1 だとします。この API のドキュメントと例は本当にひどいもので、うまく説明できません。私はVisual Studioを使用しています。
c++ - Qt5, Coin3D and SoQt
I'm trying to work with Qt5, SoQt (Version 1.5.0) and Coin3D (3.1.3). I used instructions found on this website to install Coin3D. I tried to install SoQt as well (Instructions found here). I had to change those export commands a little bit:
I tried four different versions of the export INCLUDE since i'm clueless about its purpose and i am not sure if this is the reason for the errors i'm getting:
This is where errormessages appear: (Shorter summary below)
I might be wrong but it seems like he is looking for Qt4 and not Qt5 because of
It also reads
That's why i tried using qt5/QtCore instead of qt5 as path because there is a qglobal.h located within QtCore but it doesn't change anything.
Did anyone else face similar problems when setting up SoQt with Qt5 and can help me out?
Thanks in advance!