386 static std::pair<Position, Position> key;
387 static std::pair<Position, Position> indices;
390 static const Position edge_indices[12][2]
391 = {{1, 0}, {1, 2}, {2, 3}, {0, 3}, {5, 4}, {5, 6},
392 {6, 7}, {4, 7}, {0, 4}, {1, 5}, {2, 6}, {3, 7}
398 = {2, 0, 2, 0, 2, 0, 2, 0, 1, 1, 1, 1};
408 Size vertex_counter = 0;
423 Index facet_index = facet_data[topology][i];
426 if (facet_index != -1)
431 Position edge = edge_axis[facet_index];
433 indices.first = edge_indices[facet_index][0];
434 indices.second = edge_indices[facet_index][1];
435 key.first = cube.
getIndex(indices.first);
436 key.second = cube.
getIndex(indices.second);
447 const double& d1 = cube.
values[indices.first];
448 const double& d2 = cube.
values[indices.second];
452 triangle_vertices[vertex_counter++] =
vertex.size();
460 static Vector3 null_normal(0.0, 0.0, 0.0);
461 normal.push_back(null_normal);
470 if (vertex_counter == 3)
473 t.v1 = triangle_vertices.
x;
474 t.v2 = triangle_vertices.
y;
475 t.v3 = triangle_vertices.
z;
487 h1.
z * h2.
x - h2.
z * h1.
x,
488 h1.
x * h2.
y - h1.
y * h2.
x);
489 normal[t.v1] += current_normal;
490 normal[t.v2] += current_normal;
491 normal[t.v3] += current_normal;