Хранить структуру Half-Edge в CoreData - PullRequest
0 голосов
/ 11 ноября 2011

Я создаю приложение, в котором используется структура Half-Edge для хранения сетки двухмерных треугольников.

Сетка рассчитывается каждый раз, когда пользователь касается экрана и добавляет точку.

Я хочу иметь возможность сохранить сетку в 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)

И это моя схема CoreData: enter image description here

Как вы можете видеть, я добавил предыдущий атрибут в HalfEdge (хотя он и не нужен), чтобы избежать получения предупреждения для не обратных отношений.

Но я продолжаю получать больше предупреждений:

  • Vertex.point должен иметь обратную. (с этим проблем нет, я просто добавлю еще один атрибут)
  • Vertex.halfEdge должен иметь обратную сторону. (это относится к HalfEdge, для которого эта вершина является первой, так что lastVertex не будет работать как обратная)
  • HalfEdge.lastVertex должен иметь обратную. (см. выше)
  • HalfEdge.triangle должен иметь обратную. (Triangle.firstHalfEdge ссылается только на одно ребро, любое, но все 3 ребра должны ссылаться на треугольник) Triangle.firstHalfEdge должен иметь обратное значение. (см. выше)

Итак, что мне делать? Должен ли я каким-то образом попытаться выполнить эти обратные отношения (хотя, я думаю, это усложнит мой расчет структуры) или я должен игнорировать эти предупреждения?

Кстати, если кому-то интересно, вот что я делаю: http://www.youtube.com/watch?v=c2Eg7DXW7-A&feature=feedu

1 Ответ

1 голос
/ 23 января 2012

Вы можете отключить предупреждения, установив MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS в редакторе конфигурации проекта (категория «Компилятор версии модели данных - Предупреждения» в Xcode 4.1) на YES ( снимок экрана ).

Тем не менее, есть вещей, которые следует учитывать , прежде чем сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...