一般的な交差点プレーヤーと同様に、ランダムに方向付けられた3D地震線を前後に移動するコードがあります。Petrel 2011では完全に機能しましたが、2012に更新すると壊れたようです。問題は、新しいファセットを設定しようとすると、線の法線方向が小数点以下数桁変化するように見えることです。以下はいくつかのサンプルコードです...
SeismicLine3D line = ...;
double distance = ...;
Direction3 direction = ...;
Direction3 normal = ...;
Facet facet = seismicLine3D.Intersection.Facets.ElementAt(0);
Vector3 offset = Vector3.Multiply(distance, direction.NormalizedVector);
Point3 point = Point3.Add(facet.Plane.DefiningPoint, offset);
Plane3 plane = new Plane3(point, normal);
Facet newFacet = new Facet(plane, new Plane3[] {});
IEnumerable<Facet> facets = new Facet[] {newFacet};
using (ITransaction transaction = DataManager.NewTransaction())
{
transaction.Lock(seismicLine3D);
try { seismicLine3D.Intersection.Facets = facets; }
finally { transaction.Commit(); }
}
// BAD!!!
// seismicLine3D.Intersection.Facets.ElementAt(0).Plane.Normal != normal;
これを引き起こすためにPetrel2011と2012の間で何が変わったのか誰かが知っていますか?また、誰かが可能な回避策を知っていますか?
編集:
通常の向きの変化は、トグルウィンドウで表示すると非常に目立ちます。線が移動すると、視覚化にわずかな「グリッチ」が表示されます。