Half-Edge structureを使用して2Dの三角形のメッシュを保存するアプリケーションを作成しています。CoreDataのハーフエッジ構造を保存します
メッシュは、ユーザーが画面をタップしてポイントを追加するたびに計算されます。
メッシュをCoreDataに保存したいと考えています。だけでなく、ポイントが、全体メッシュ、それが回復したときに再び再計算する必要がないように)
マイHalfEdge構造は、この(図面は三角形の集合によって構成されており)のようなものです:
Triangle:
- firstHalfEdge (actually, any half-edge of the triangle)
HalfEdge:
- lastVertex (the Vertex in which the Edge ends)
- next (next halfedge in the triangle)
- oposite (the halfedge oposite to this one, which is in another triangle)
- triangle (the triangle which this edge belongs to)
Vertex:
- halfEdge (the edge which the vertex belongs to)
- point (2d coordinates of the vertex)
あなたは、私が非逆関係の警告を避けるためにHalfEdge(必要ありませんが)に、前の属性を追加見ることができるように
:
そして、これは私のCoreDataスキームです。
しかし、私はより多くの警告を得続ける:
- Vertex.pointは逆を持っている必要があります。 (これに問題はありません。別の属性を追加するだけです)
- Vertex.halfEdgeには逆数が必要です。 (これは、この頂点が最初の頂点であるHalfEdgeを意味するため、lastVertexは逆数として行いません)
- HalfEdge.lastVertexには逆数が必要です。 (上記を参照)
- HalfEdge.triangleには逆数が必要です。 (Triangle.firstHalfEdgeは1つのエッジを指していますが、3つのエッジはすべて三角形を参照する必要があります)Triangle.firstHalfEdgeには逆数が必要です。 (上記参照)
どうすればよいですか?私はこれらの逆の関係をいくつか達成しようとしますか(しかし、私はそれが私の構造計算をより複雑にするだろうと思っています)、または私はそれらの警告を無視すべきですか?ところで
誰もが好奇心旺盛であれば、これは私がやっているものです:http://www.youtube.com/watch?v=c2Eg7DXW7-A&feature=feedu
私は考慮すべきことがあることを知っています。私は警告を無効にすることは、あなたの車の中でその点滅するエンジンライトをオフにすることだと思います。おそらく良い考えではないでしょう。 – Odrakir
いずれにしても、反比例関係がないときには最良の選択肢*が存在します。私の場合(私は同じ警告で悩まされています)逆は全く意味を作っていません。おそらく悪いデザインですが、私はより良いものを考えることはできません。 – zrxq