Я пытаюсь установить значения для 2-го и 3-го углов на трех объектах класса треугольника. Если сделано явно, это выглядит так:
triangle_mesh[0].set_vector_point2(vector_anchors[1]);
triangle_mesh[1].set_vector_point3(vector_anchors[1]);
triangle_mesh[1].set_vector_point2(vector_anchors[2]);
triangle_mesh[2].set_vector_point3(vector_anchors[2]);
triangle_mesh[2].set_vector_point2(vector_anchors[3]);
triangle_mesh[0].set_vector_point3(vector_anchors[3]);
и это работает ! Печатая эти треугольники, я получаю (н.б. первый угол уже установлен - это не проблема):
triangle0 is ( 0, 0, -1) (1, 0, 0) (-0.5, -0.866025, 0)
triangle1 is ( 0, 0, -1) (-0.5, 0.866025, 0) (1, 0, 0)
triangle2 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, 0.866025, 0)
Во-первых, хотя это уродливо, а во-вторых, оно должно распространяться на случаи, когда у меня есть более трех треугольников. Мой код для этого:
for (int longitude = 0; longitude < num_longitudes; longitude++){
SurfaceVector current_anchor = vector_anchors[1 + longitude];
triangle_mesh[longitude].set_vector_point2(current_anchor);
triangle_mesh[(longitude + 1) % num_longitudes].set_vector_point3(current_anchor);
}
* n.b. num_longitude 3 *
Я проверил все Я могу думать, но теперь, когда я распечатываю свои треугольники, я получаю:
triangle0 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
triangle1 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
triangle2 is ( 0, 0, -1) (-0.5, -0.866025, 0) (-0.5, -0.866025, 0)
Кто-нибудь знает, что может пойти не так?!
EDIT
Переменные vector_point в треугольнике являются указателями и задаются следующим образом:
void set_vector_point1(SurfaceVector vector_point) { vector_point1 = &vector_point; }